4783 lines
126 KiB
YAML
4783 lines
126 KiB
YAML
- alias: 'Bedroom: AC watertank'
|
|
id: 7267672f-0076-4d66-aa19-637bbb23275a
|
|
trigger:
|
|
- platform: state
|
|
id: sensor
|
|
entity_id:
|
|
- binary_sensor.water_bedroom_ac_water_leak
|
|
from: 'off'
|
|
to: 'on'
|
|
action:
|
|
- service: homeassistant.turn_off
|
|
target:
|
|
entity_id: climate.air_conditioner
|
|
- service: notify.castle_log
|
|
data:
|
|
title: AC Sovrum
|
|
message: Slog av AC pga full vattentank
|
|
- alias: 'Bedroom: Turn on AC if warm'
|
|
id: 1b84349e-0c7c-4984-8561-6b3e7a4c80a1
|
|
trigger:
|
|
- platform: time
|
|
id: time
|
|
at: input_datetime.ac_turn_on
|
|
condition:
|
|
- condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_away
|
|
state: 'off'
|
|
- condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_summer
|
|
state: 'on'
|
|
- condition: state
|
|
entity_id:
|
|
- binary_sensor.water_bedroom_ac_water_leak
|
|
state: 'off'
|
|
- condition: numeric_state
|
|
entity_id:
|
|
- sensor.bedroom_temperature
|
|
above: 21
|
|
action:
|
|
- service: homeassistant.turn_on
|
|
target:
|
|
entity_id: climate.air_conditioner
|
|
- service: notify.castle_log
|
|
data:
|
|
title: AC Sovrum
|
|
message: Slog på AC:n
|
|
- alias: 'Bedroom: AC plug'
|
|
id: 33837bc5-0c32-42a0-be69-cd35810213f9
|
|
trigger:
|
|
- platform: state
|
|
entity_id: switch.bedroom_ac_plug
|
|
to: 'off'
|
|
action:
|
|
- service: notify.castle
|
|
data:
|
|
title: Plug AC Sovrum
|
|
message: Strömmen stängdes av till AC:n
|
|
- alias: 'House: ambience lights'
|
|
id: 8d47c436-0dd0-4db2-a25c-9c020717e11a
|
|
mode: queued
|
|
triggers:
|
|
- trigger: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- trigger: state
|
|
entity_id:
|
|
- input_boolean.house_mode_bright_inside
|
|
- input_boolean.house_mode_bright_hallway
|
|
- trigger: time
|
|
at:
|
|
- input_datetime.time_goodmorning
|
|
- input_datetime.time_goodnight
|
|
variables:
|
|
labels_on: "{% set l = [] %} {% if today_at(states('input_datetime.time_goodmorning'))\
|
|
\ < now() and today_at(states('input_datetime.time_goodnight')) > now() %}\n\
|
|
\ {% if states('input_boolean.house_mode_bright_inside') == \"off\" %}\n \
|
|
\ {% set l = l + ['ambience', 'ambience_night'] %}\n {% endif %}\n {% if\
|
|
\ states('input_boolean.house_mode_bright_hallway') == \"off\" %}\n {% set\
|
|
\ l = l + ['ambience_extra'] %}\n {% endif %}\n{% else %}\n {% if states('input_boolean.house_mode_bright_inside')\
|
|
\ == \"off\" %}\n {% set l = l + ['ambience_night'] %}\n {% endif %}\n{%\
|
|
\ endif %} {{l}}\n"
|
|
labels_off: '{% set all_labels = [''ambience'', ''ambience_extra'', ''ambience_night'']%}
|
|
{{ set(all_labels).difference(labels_on)|list }}
|
|
|
|
'
|
|
actions:
|
|
- variables:
|
|
labels: '{{ labels_on }}'
|
|
to_state: 'on'
|
|
from_state: 'off'
|
|
- &id001
|
|
action: light.turn_{{to_state}}
|
|
data:
|
|
transition: 5
|
|
target:
|
|
entity_id: "{% set floors = ['nere', 'uppe'] %} {% set ns = namespace(e=[],\
|
|
\ l=[]) %} {% for l in labels %}\n {% set ns.l = ns.l + label_entities(l)\
|
|
\ %}\n{% endfor %} {% for floor in floors %}\n {% for area in floor_areas(floor)\
|
|
\ %}\n {%- if states('input_boolean.noauto_'+area) == 'unknown' or states('input_boolean.noauto_'+area)\
|
|
\ == \"off\" %}\n {% for entity in set(area_entities(area)).intersection(ns.l\n\
|
|
\ | select('match', 'light.'))\n | select('is_state', from_state)\
|
|
\ %}\n {% set ns.e = ns.e + [entity] -%}\n {% endfor %}\n {%-\
|
|
\ endif -%}\n {% endfor %}\n{% endfor %} {{ns.e}}\n"
|
|
- variables:
|
|
labels: '{{ labels_off }}'
|
|
to_state: 'off'
|
|
from_state: 'on'
|
|
- *id001
|
|
- alias: 'Annie: error'
|
|
id: b3c00dc3-b327-498e-9076-8ab6ed4fb3b7
|
|
mode: queued
|
|
trace:
|
|
stored_traces: 10
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- sensor.am430x_status_id
|
|
to:
|
|
- '7'
|
|
not_from:
|
|
- unknown
|
|
- unavailable
|
|
- '0'
|
|
action:
|
|
- delay:
|
|
seconds: 1
|
|
- service: notify.castle_log
|
|
data:
|
|
title: 'Annie: {{states(''sensor.am430x_status'')}}'
|
|
message: '{{ states(''input_text.annie_last_substatus'') if states(''sensor.am430x_substatus'')
|
|
== '''' else states(''sensor.am430x_substatus'') }}'
|
|
data:
|
|
location:
|
|
latitude: '{{state_attr(''device_tracker.am430x_gps'', ''latitude'')}}'
|
|
longitude: '{{state_attr(''device_tracker.am430x_gps'', ''longitude'')}}'
|
|
- alias: 'Annie: set last substatus'
|
|
id: 0819562f-9de5-4c95-990f-f44f88e0e381
|
|
mode: queued
|
|
trace:
|
|
stored_traces: 10
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- sensor.am430x_substatus
|
|
action:
|
|
service: input_text.set_value
|
|
target:
|
|
entity_id: input_text.annie_last_substatus
|
|
data:
|
|
value: '{{ trigger.from_state.state }}'
|
|
- alias: 'Annie: park when wet'
|
|
id: 00520d65-1bb5-425b-8743-ee58d488653e
|
|
trace:
|
|
stored_traces: 10
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- binary_sensor.gw3000a_rain_state_piezo
|
|
from: 'off'
|
|
to: 'on'
|
|
actions:
|
|
- action: button.press
|
|
data: {}
|
|
target:
|
|
entity_id: button.am430x_eod
|
|
- alias: 'Annie: resume mowing when dry'
|
|
id: f248b77a-854a-4099-9485-b816045b90fa
|
|
trace:
|
|
stored_traces: 10
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- binary_sensor.gw3000a_rain_state_piezo
|
|
from: 'on'
|
|
to: 'off'
|
|
for:
|
|
minutes: 60
|
|
actions:
|
|
- action: button.press
|
|
data: {}
|
|
target:
|
|
entity_id: button.am430x_auto
|
|
- alias: 'AutoBackup: Daily Backup'
|
|
id: 96256f87-9a45-4f2c-bb83-23b983a93afc
|
|
trigger:
|
|
platform: time
|
|
at: 02:30:00
|
|
condition:
|
|
condition: time
|
|
weekday:
|
|
- tue
|
|
- wed
|
|
- thu
|
|
- fri
|
|
- sat
|
|
- sun
|
|
action:
|
|
service: auto_backup.backup_full
|
|
data:
|
|
name: 'DailyBackup: {{ now().strftime(''%a, %Y-%m-%d'') }}'
|
|
keep_days: 7
|
|
location: backup
|
|
- alias: 'AutoBackup: Weekly Backup'
|
|
id: a3f0c772-b3c1-4a71-a7ca-0e246c1b5df7
|
|
trigger:
|
|
platform: time
|
|
at: 02:30:00
|
|
condition:
|
|
condition: time
|
|
weekday:
|
|
- mon
|
|
action:
|
|
service: auto_backup.backup_full
|
|
data:
|
|
name: 'WeeklyBackup: {{ now().strftime(''%a, %Y-%m-%d'') }}'
|
|
keep_days: 28
|
|
location: backup
|
|
- alias: 'Bedroom: lights'
|
|
id: 48d8b685-cc44-4b54-bf1b-bbaf4a088413
|
|
trace:
|
|
stored_traces: 25
|
|
triggers:
|
|
- trigger: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- scene_reloaded
|
|
- trigger: state
|
|
entity_id:
|
|
- event.bedroom_remote_right_action
|
|
- event.bedroom_remote_left_action
|
|
- event.bedroom_remote_wall_action
|
|
not_from: unavailable
|
|
id: remote
|
|
- trigger: state
|
|
entity_id:
|
|
- input_boolean.house_mode_away
|
|
- input_boolean.house_mode_sleep
|
|
- input_boolean.house_mode_bright_inside
|
|
- input_boolean.bedroom_nightlight
|
|
- trigger: state
|
|
id: auto_off
|
|
entity_id:
|
|
- binary_sensor.presence_bedroom_occupancy
|
|
to: 'off'
|
|
for:
|
|
minutes: 10
|
|
- trigger: time
|
|
id: reset
|
|
at:
|
|
- input_datetime.house_reset_settings
|
|
- input_datetime.house_reset_settings_day
|
|
- trigger: time
|
|
id: wakeup
|
|
at: input_datetime.wakeup_time
|
|
- trigger: time
|
|
id: goodnight
|
|
at:
|
|
- input_datetime.time_goodnight
|
|
actions:
|
|
- choose:
|
|
- conditions:
|
|
- condition: trigger
|
|
id: auto_off
|
|
sequence:
|
|
- choose:
|
|
- conditions:
|
|
- condition: state
|
|
entity_id:
|
|
- light.bedroom_ceiling
|
|
state: 'on'
|
|
sequence:
|
|
- action: light.turn_off
|
|
target:
|
|
entity_id: light.bedroom_ceiling
|
|
data:
|
|
transition: 5
|
|
- conditions:
|
|
- condition: trigger
|
|
id: remote
|
|
sequence:
|
|
- variables:
|
|
action: '{{ trigger.to_state.attributes.event_type }}'
|
|
- alias: Remote buttons
|
|
choose:
|
|
- alias: Big bulb pressed
|
|
conditions: '{{ action in [''big-press'', ''on'', ''brightness_up_click'']
|
|
}}'
|
|
sequence:
|
|
- choose:
|
|
- conditions:
|
|
- alias: if ceiling light is off
|
|
condition: state
|
|
entity_id:
|
|
- light.bedroom_ceiling
|
|
state: 'off'
|
|
sequence:
|
|
- alias: turn on ceiling light
|
|
action: light.turn_on
|
|
target:
|
|
entity_id: light.bedroom_ceiling
|
|
data:
|
|
brightness: 255
|
|
default:
|
|
- alias: turn off ceiling light
|
|
action: light.turn_off
|
|
target:
|
|
entity_id: light.bedroom_ceiling
|
|
- alias: Small bulb pressed
|
|
conditions: '{{ action in [''small-press'', ''off'', ''brightness_down_click'']
|
|
}}'
|
|
sequence:
|
|
- alias: toggle ambience lights
|
|
action: light.toggle
|
|
target:
|
|
entity_id: "{{ \n expand(area_entities(\"bedroom\") \n | select('match',\
|
|
\ 'light')) \n | selectattr('entity_id', 'in', label_entities('ambience'))\
|
|
\ \n | map(attribute='entity_id')\n | list \n}}\n"
|
|
- alias: Left pressed
|
|
conditions: '{{ action in [''left-press'', ''arrow_left_click''] }}'
|
|
sequence:
|
|
- alias: toggle left bed lamp
|
|
action: light.toggle
|
|
target:
|
|
entity_id: light.bedroom_left
|
|
- alias: Right pressed
|
|
conditions: '{{ action in [''right-press'', ''arrow_right_click''] }}'
|
|
sequence:
|
|
- alias: toggle right bed lamp
|
|
action: light.toggle
|
|
target:
|
|
entity_id: light.bedroom_right
|
|
- alias: Small bulb press hold
|
|
conditions: '{{ action in [''small-hold'', ''brightness_move_down''] }}'
|
|
sequence:
|
|
- alias: turn off ambience
|
|
action: light.turn_off
|
|
target:
|
|
entity_id: "{{ \n expand(area_entities(\"bedroom\") \n | select('match',\
|
|
\ 'light')) \n | selectattr('entity_id', 'in', label_entities('ambience'))\
|
|
\ \n | map(attribute='entity_id')\n | list \n}}\n"
|
|
- conditions:
|
|
- condition: trigger
|
|
id: goodnight
|
|
sequence:
|
|
- alias: if night light mode is off
|
|
choose:
|
|
conditions: '{{ states(''input_boolean.bedroom_nightlight'') == ''off''
|
|
}}'
|
|
sequence:
|
|
- action: light.turn_off
|
|
target:
|
|
area_id: bedroom
|
|
label_id: ambience
|
|
data:
|
|
transition: 5
|
|
- alias: 'Conservatory: lights'
|
|
id: eaf0b151-07e3-4af2-9a95-e493122a915e
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- scene_reloaded
|
|
- platform: state
|
|
entity_id:
|
|
- input_boolean.house_mode_bright_inside
|
|
- platform: time
|
|
at:
|
|
- input_datetime.time_goodmorning
|
|
- input_datetime.time_goodnight
|
|
action:
|
|
choose:
|
|
- conditions:
|
|
- condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_bright_inside
|
|
state: 'on'
|
|
sequence:
|
|
- &id002
|
|
service: light.turn_off
|
|
target:
|
|
entity_id:
|
|
- light.conservatory_ceiling
|
|
data:
|
|
transition: 5
|
|
- conditions:
|
|
- condition: time
|
|
after: input_datetime.time_goodmorning
|
|
before: input_datetime.time_goodnight
|
|
- condition: state
|
|
entity_id: light.conservatory_ceiling
|
|
state: 'off'
|
|
sequence:
|
|
- service: light.turn_on
|
|
target:
|
|
entity_id:
|
|
- light.conservatory_ceiling
|
|
data:
|
|
transition: 5
|
|
brightness: 120
|
|
default:
|
|
- *id002
|
|
- alias: 'Entre: lights'
|
|
id: 2467611a-12d7-4a8d-8650-e18e25e5082b
|
|
triggers:
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- scene_reloaded
|
|
- trigger: state
|
|
entity_id:
|
|
- input_boolean.house_mode_daylight
|
|
- input_boolean.house_mode_outside_work
|
|
- trigger: state
|
|
id: movement
|
|
entity_id: input_boolean.front_movement
|
|
from: 'off'
|
|
to: 'on'
|
|
- trigger: state
|
|
id: movement_off
|
|
entity_id: input_boolean.front_movement
|
|
from: 'on'
|
|
to: 'off'
|
|
actions:
|
|
choose:
|
|
- alias: activate outdoor work mode
|
|
conditions:
|
|
- alias: when outside work mode is on
|
|
condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_outside_work
|
|
state: 'on'
|
|
sequence:
|
|
- alias: activate outside work scene
|
|
action: scene.turn_on
|
|
target:
|
|
entity_id: scene.outdoor_work_entre
|
|
data:
|
|
transition: 2
|
|
- conditions:
|
|
- condition: trigger
|
|
id: movement
|
|
- condition: state
|
|
entity_id:
|
|
- light.entre
|
|
state: 'on'
|
|
sequence:
|
|
- action: scene.turn_on
|
|
target:
|
|
entity_id: scene.outdoor_entre_movement
|
|
data:
|
|
transition: 2
|
|
- conditions:
|
|
condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_daylight
|
|
state: 'off'
|
|
sequence:
|
|
- action: scene.turn_on
|
|
target:
|
|
entity_id: scene.outdoor_entre_lights_default
|
|
data:
|
|
transition: 5
|
|
default:
|
|
- action: light.turn_off
|
|
target:
|
|
entity_id: light.entre
|
|
data:
|
|
transition: 5
|
|
- alias: 'Family room: lights'
|
|
id: 8b53f10d-df56-421e-9e89-08cb39f16c7d
|
|
triggers:
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- scene_reloaded
|
|
- trigger: state
|
|
entity_id:
|
|
- input_boolean.house_mode_bright_inside
|
|
- trigger: time
|
|
at:
|
|
- input_datetime.time_goodmorning
|
|
- input_datetime.time_goodnight
|
|
- trigger: state
|
|
entity_id: event.family_room_remote_action
|
|
not_from: unavailable
|
|
id: remote
|
|
- trigger: state
|
|
id: senile
|
|
entity_id:
|
|
- binary_sensor.motion_familyroom_occupancy
|
|
from: 'on'
|
|
to: 'off'
|
|
for:
|
|
minutes: '{{ states(''input_number.family_room_timeout'')|int }}'
|
|
actions:
|
|
choose:
|
|
- conditions:
|
|
- condition: trigger
|
|
id: remote
|
|
sequence:
|
|
- variables:
|
|
action: '{{ trigger.to_state.attributes.event_type }}'
|
|
- choose:
|
|
- conditions: '{{ action in [''on''] }}'
|
|
sequence:
|
|
- choose:
|
|
- conditions: '{{ states(''light.family_room_ceiling'') == ''off'' }}'
|
|
sequence:
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id:
|
|
- light.family_room_ceiling
|
|
data:
|
|
brightness: 255
|
|
default:
|
|
- action: light.turn_off
|
|
target:
|
|
entity_id:
|
|
- light.family_room_ceiling
|
|
- conditions: '{{ action in [''brightness_move_up''] }}'
|
|
sequence:
|
|
- choose:
|
|
- conditions: '{{ state_attr(''light.family_room_ceiling'', ''brightness'')
|
|
in [none, 255] }}'
|
|
sequence:
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id:
|
|
- light.family_room_ceiling
|
|
data:
|
|
brightness: 120
|
|
transition: 1
|
|
default:
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id:
|
|
- light.family_room_ceiling
|
|
data:
|
|
brightness: 255
|
|
transition: 1
|
|
- conditions: '{{ action in [''off''] }}'
|
|
sequence:
|
|
- choose:
|
|
- conditions: '{{ states(''light.julgranen'') == ''off'' }}'
|
|
sequence:
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id:
|
|
- light.julgranen
|
|
default:
|
|
- action: light.turn_off
|
|
target:
|
|
entity_id:
|
|
- light.julgranen
|
|
- conditions:
|
|
- condition: trigger
|
|
id: senile
|
|
sequence:
|
|
- action: light.turn_off
|
|
entity_id:
|
|
- light.family_room_ceiling
|
|
- conditions:
|
|
- condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_bright_inside
|
|
state: 'on'
|
|
sequence:
|
|
- &id003
|
|
action: light.turn_off
|
|
target:
|
|
entity_id:
|
|
- light.family_room_window_1
|
|
- light.mushroom_lamp
|
|
data:
|
|
transition: 5
|
|
- conditions:
|
|
- condition: or
|
|
conditions:
|
|
- condition: and
|
|
conditions:
|
|
- condition: time
|
|
after: input_datetime.time_goodmorning
|
|
before: input_datetime.time_goodnight
|
|
sequence:
|
|
- action: scene.turn_on
|
|
target:
|
|
entity_id:
|
|
- scene.family_room_ambience_lights_cozy
|
|
- scene.family_room_window_lights_cozy
|
|
data:
|
|
transition: 5
|
|
default:
|
|
- *id003
|
|
- alias: 'garage: lights'
|
|
id: b10a0b7d-74bb-48f7-aee5-6233c82149ab
|
|
mode: queued
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.motion_garage_occupancy
|
|
from: 'off'
|
|
to: 'on'
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.motion_garage_occupancy
|
|
from: 'on'
|
|
to: 'off'
|
|
for:
|
|
seconds: 120
|
|
action:
|
|
- choose:
|
|
- alias: when triggered
|
|
conditions:
|
|
- alias: and motion is detected
|
|
condition: state
|
|
entity_id:
|
|
- binary_sensor.motion_garage_occupancy
|
|
state: 'on'
|
|
- alias: and we are home (intruder alert?!)
|
|
condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_away
|
|
state: 'off'
|
|
sequence:
|
|
- alias: doom
|
|
service: script.turn_on
|
|
target:
|
|
entity_id: script.garage_doom
|
|
- alias: 'Green house: door'
|
|
id: 7f5de8d7-4089-4876-9779-ef756fb850f2
|
|
triggers:
|
|
- trigger: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- trigger: state
|
|
entity_id:
|
|
- binary_sensor.greenhouse_door_contact
|
|
for: 00:05:00
|
|
- trigger: numeric_state
|
|
entity_id:
|
|
- sensor.gw3000a_wh31_ch1_temperature
|
|
below: 15
|
|
for: 00:05:00
|
|
actions:
|
|
choose:
|
|
- alias: when triggered
|
|
conditions:
|
|
- alias: and the door has been open for a while
|
|
condition: state
|
|
entity_id:
|
|
- binary_sensor.greenhouse_door_contact
|
|
state: 'on'
|
|
for: 00:05:00
|
|
- alias: and whenever the temperature is too low
|
|
condition: numeric_state
|
|
entity_id:
|
|
- sensor.gw3000a_wh31_ch1_temperature
|
|
below: 15
|
|
sequence:
|
|
- action: notify.castle
|
|
data:
|
|
title: Växthuset
|
|
message: 'Dags att stänga dörren (temperatur: {{ states("sensor.gw3000a_wh31_ch1_temperature")|float(1)
|
|
}}C)'
|
|
- alias: 'greenhouse: lights'
|
|
id: 7216dadf-1188-4654-b46d-065efd0ad292
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- scene_reloaded
|
|
- platform: state
|
|
entity_id:
|
|
- input_boolean.house_mode_daylight
|
|
action:
|
|
choose:
|
|
- conditions:
|
|
- condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_daylight
|
|
state: 'off'
|
|
sequence:
|
|
- service: homeassistant.turn_on
|
|
target:
|
|
entity_id:
|
|
- light.greenhouse_plug
|
|
default:
|
|
- service: homeassistant.turn_off
|
|
target:
|
|
entity_id:
|
|
- light.greenhouse_plug
|
|
- alias: 'Guestroom: lights'
|
|
id: 16c47581-b4c4-4e37-8063-212582316df1
|
|
triggers:
|
|
- trigger: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- trigger: state
|
|
entity_id: event.guestroom_remote_action
|
|
not_from: unavailable
|
|
id: remote
|
|
conditions: []
|
|
actions:
|
|
choose:
|
|
- conditions:
|
|
- condition: trigger
|
|
id: remote
|
|
sequence:
|
|
- variables:
|
|
action: '{{ trigger.to_state.attributes.event_type }}'
|
|
- choose:
|
|
- conditions: '{{ action == ''toggle'' }}'
|
|
sequence:
|
|
- action: light.toggle
|
|
target:
|
|
entity_id: light.guestroom_ceiling
|
|
- conditions: '{{ action == ''brightness_up_click'' }}'
|
|
sequence:
|
|
- action: light.toggle
|
|
target:
|
|
entity_id: light.guestroom_plug
|
|
- conditions: '{{ action == ''brightness_down_click'' }}'
|
|
sequence:
|
|
- action: light.toggle
|
|
target:
|
|
entity_id: light.rabbit_lamp
|
|
- conditions: '{{ action == ''hold'' }}'
|
|
sequence:
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id: light.guestroom_ceiling
|
|
data:
|
|
brightness: 255
|
|
rgb_color:
|
|
- 255
|
|
- 227
|
|
- 165
|
|
- conditions: '{{ action == ''arrow_left_click'' }}'
|
|
sequence:
|
|
- action: input_select.select_previous
|
|
target:
|
|
entity_id: input_select.rgb_lo
|
|
data:
|
|
cycle: true
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id: light.guestroom_ceiling
|
|
data:
|
|
rgb_color: '{{ states(''input_select.rgb_lo'').split('':'')[1] }}'
|
|
- conditions: '{{ action == ''arrow_right_click'' }}'
|
|
sequence:
|
|
- action: input_select.select_next
|
|
target:
|
|
entity_id: input_select.rgb_lo
|
|
data:
|
|
cycle: true
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id: light.guestroom_ceiling
|
|
data:
|
|
rgb_color: '{{ states(''input_select.rgb_lo'').split('':'')[1] }}'
|
|
- alias: 'Hallway downstairs: lights'
|
|
id: 55d4084a-e61b-4e2e-acaf-edc15146b8c8
|
|
triggers:
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- scene_reloaded
|
|
- trigger: state
|
|
entity_id:
|
|
- input_boolean.house_mode_bright_hallway
|
|
- trigger: time
|
|
at:
|
|
- input_datetime.time_goodmorning
|
|
- input_datetime.time_goodnight
|
|
- trigger: state
|
|
id: movement
|
|
entity_id:
|
|
- input_boolean.hallway_downstairs_movement
|
|
- trigger: state
|
|
id: media
|
|
entity_id:
|
|
- media_player.shield_cinema
|
|
to: playing
|
|
actions:
|
|
choose:
|
|
- conditions:
|
|
- condition: state
|
|
entity_id:
|
|
- input_boolean.hallway_downstairs_manual_mode
|
|
state: 'on'
|
|
sequence: []
|
|
- conditions:
|
|
- condition: trigger
|
|
id:
|
|
- movement
|
|
- media
|
|
sequence:
|
|
- choose:
|
|
- conditions:
|
|
- condition: state
|
|
entity_id:
|
|
- input_boolean.hallway_downstairs_movement
|
|
state: 'on'
|
|
- condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_bright_hallway
|
|
state: 'off'
|
|
sequence:
|
|
- choose:
|
|
- conditions:
|
|
- or:
|
|
- and:
|
|
- condition: state
|
|
entity_id:
|
|
- media_player.shield_cinema
|
|
state: playing
|
|
- condition: time
|
|
after: '20:00'
|
|
before: 06:00
|
|
- condition: time
|
|
after: '23:00'
|
|
before: 06:00
|
|
sequence:
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id: light.hallen
|
|
data:
|
|
brightness: 60
|
|
transition: 1
|
|
default:
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id: light.hallen
|
|
data:
|
|
brightness: 255
|
|
transition: 1
|
|
default:
|
|
- action: light.turn_off
|
|
target:
|
|
entity_id: light.hallen
|
|
data:
|
|
transition: 5
|
|
- conditions:
|
|
- condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_bright_hallway
|
|
state: 'on'
|
|
sequence:
|
|
- &id004
|
|
action: light.turn_off
|
|
target:
|
|
entity_id:
|
|
- light.hallway_downstairs_bench
|
|
data:
|
|
transition: 5
|
|
- conditions:
|
|
- condition: or
|
|
conditions:
|
|
- condition: and
|
|
conditions:
|
|
- condition: time
|
|
after: input_datetime.time_goodmorning
|
|
before: input_datetime.time_goodnight
|
|
- condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_bright_hallway
|
|
state: 'off'
|
|
sequence:
|
|
- action: scene.turn_on
|
|
target:
|
|
entity_id:
|
|
- scene.hallway_downstairs_ambience_lights_cozy
|
|
default:
|
|
- *id004
|
|
- alias: 'Hallway upstairs: lights'
|
|
id: 009d2374-2031-4d2d-b19d-349a5ac5c52f
|
|
mode: queued
|
|
triggers:
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- scene_reloaded
|
|
- trigger: state
|
|
entity_id:
|
|
- input_boolean.house_mode_bright_inside
|
|
- trigger: time
|
|
at:
|
|
- input_datetime.time_goodmorning
|
|
- input_datetime.time_goodnight
|
|
- trigger: state
|
|
id: no_movement
|
|
entity_id:
|
|
- binary_sensor.motion_hallway_upstairs_occupancy
|
|
from: 'on'
|
|
to: 'off'
|
|
for:
|
|
minutes: '{{ states(''input_number.hallway_upstairs_timeout'')|int }}'
|
|
- trigger: state
|
|
id: night_or_away
|
|
entity_id:
|
|
- input_boolean.house_mode_sleep
|
|
- input_boolean.house_mode_away
|
|
from: 'off'
|
|
to: 'on'
|
|
- trigger: state
|
|
entity_id: event.remote_hallway_upstairs_1_action
|
|
not_from: unavailable
|
|
id: remote
|
|
actions:
|
|
choose:
|
|
- conditions:
|
|
- condition: trigger
|
|
id: remote
|
|
sequence:
|
|
- variables:
|
|
action: '{{ trigger.to_state.attributes.event_type }}'
|
|
- choose:
|
|
- alias: on pressed
|
|
conditions: '{{ action in [''on''] }}'
|
|
sequence:
|
|
- choose:
|
|
- conditions: '{{ states(''light.hallway_upstairs_2'') == ''off'' }}'
|
|
sequence:
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id:
|
|
- light.hallway_upstairs_2
|
|
data:
|
|
brightness: 255
|
|
default:
|
|
- action: light.turn_off
|
|
target:
|
|
entity_id:
|
|
- light.hallway_upstairs_2
|
|
- alias: off pressed
|
|
conditions: '{{ action in [''off''] }}'
|
|
sequence:
|
|
- choose:
|
|
- conditions: '{{ states(''light.hallway_upstairs_1'') == ''off'' }}'
|
|
sequence:
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id:
|
|
- light.hallway_upstairs_1
|
|
data:
|
|
brightness: 255
|
|
default:
|
|
- action: light.turn_off
|
|
target:
|
|
entity_id:
|
|
- light.hallway_upstairs_1
|
|
- conditions:
|
|
- condition: trigger
|
|
id:
|
|
- no_movement
|
|
- night_or_away
|
|
sequence:
|
|
- action: light.turn_off
|
|
target:
|
|
entity_id:
|
|
- light.hallway_upstairs_1
|
|
- light.hallway_upstairs_2
|
|
data:
|
|
transition: 5
|
|
- conditions:
|
|
- condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_bright_inside
|
|
state: 'on'
|
|
sequence:
|
|
- &id005
|
|
action: light.turn_off
|
|
target:
|
|
entity_id:
|
|
- light.hallway_upstairs_window
|
|
data:
|
|
transition: 5
|
|
- conditions:
|
|
- condition: or
|
|
conditions:
|
|
- condition: and
|
|
conditions:
|
|
- condition: time
|
|
after: input_datetime.time_goodmorning
|
|
before: input_datetime.time_goodnight
|
|
sequence:
|
|
- action: scene.turn_on
|
|
target:
|
|
entity_id:
|
|
- scene.hallway_upstairs_window_lights_cozy
|
|
default:
|
|
- *id005
|
|
- alias: 'House: door update trigger'
|
|
id: 3daa6225-7b3d-4c85-9353-5cf4a482e9f7
|
|
trigger:
|
|
- platform: state
|
|
id: away
|
|
entity_id:
|
|
- input_boolean.house_mode_away
|
|
from: 'off'
|
|
to: 'on'
|
|
- platform: time_pattern
|
|
id: schedule
|
|
minutes: '1'
|
|
action:
|
|
- choose:
|
|
- conditions:
|
|
- condition: trigger
|
|
id: away
|
|
sequence:
|
|
- service: button.press
|
|
target:
|
|
entity_id: button.front_door_wake
|
|
- conditions:
|
|
- condition: trigger
|
|
id: schedule
|
|
- condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_away
|
|
state: 'off'
|
|
sequence:
|
|
- service: button.press
|
|
target:
|
|
entity_id: button.front_door_wake
|
|
- alias: 'House: door'
|
|
id: a0dd5741-07ea-4c5c-99ee-b94fe07b755e
|
|
trace:
|
|
stored_traces: 25
|
|
mode: restart
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- input_boolean.house_mode_away
|
|
from: 'off'
|
|
to: 'on'
|
|
for:
|
|
minutes: 1
|
|
variables:
|
|
action_lock: '{{ ''LOCK_'' ~ trigger.context_id }}'
|
|
action:
|
|
- choose:
|
|
conditions:
|
|
- condition: state
|
|
entity_id:
|
|
- lock.front_door
|
|
state: unlocked
|
|
sequence:
|
|
- alias: notify everyone
|
|
service: notify.family
|
|
data:
|
|
title: Ytterdörren
|
|
message: Dörren är olåst!
|
|
data:
|
|
tag: frontdoor
|
|
actions:
|
|
- action: '{{ action_lock }}'
|
|
title: Lås dörren
|
|
- alias: wait for respons
|
|
wait_for_trigger:
|
|
- platform: event
|
|
event_type: mobile_app_notification_action
|
|
event_data:
|
|
action: '{{ action_lock }}'
|
|
- alias: perform actions
|
|
choose:
|
|
- conditions: '{{ wait.trigger.event.data.action == action_lock }}'
|
|
sequence:
|
|
- service: lock.lock
|
|
target:
|
|
entity_id: lock.front_door
|
|
- alias: 'Kitchen: lights'
|
|
id: 12efc75c-0603-4bd2-91d9-3cffa6159a82
|
|
triggers:
|
|
- trigger: state
|
|
id: movement
|
|
entity_id:
|
|
- input_boolean.kitchen_movement
|
|
- trigger: state
|
|
id: nightaway
|
|
entity_id:
|
|
- input_boolean.house_mode_away
|
|
- input_boolean.house_mode_sleep
|
|
from: 'off'
|
|
to: 'on'
|
|
- trigger: state
|
|
entity_id:
|
|
- event.kitchen_remote_action
|
|
- event.kitchen_remote_2_action
|
|
not_from: unavailable
|
|
id: remote
|
|
- trigger: state
|
|
id: senile
|
|
entity_id:
|
|
- input_boolean.kitchen_movement
|
|
from: 'on'
|
|
to: 'off'
|
|
for:
|
|
minutes: '{{ states(''input_number.kitchen_timeout'')|int }}'
|
|
actions:
|
|
choose:
|
|
- conditions:
|
|
- condition: trigger
|
|
id: movement
|
|
sequence:
|
|
- choose:
|
|
- conditions: '{{ states("input_boolean.kitchen_movement") == "on" }}'
|
|
sequence:
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id: light.kitchen_sink
|
|
data:
|
|
brightness: 255
|
|
default:
|
|
- action: light.turn_off
|
|
target:
|
|
entity_id: light.kitchen_sink
|
|
data:
|
|
transition: 5
|
|
- conditions:
|
|
- condition: trigger
|
|
id: senile
|
|
sequence:
|
|
- action: light.turn_off
|
|
entity_id:
|
|
- light.kitchen_island
|
|
- light.kitchen_table
|
|
- conditions:
|
|
- condition: trigger
|
|
id: remote
|
|
sequence:
|
|
- variables:
|
|
action: '{{ trigger.to_state.attributes.event_type }}'
|
|
- choose:
|
|
- alias: big pressed
|
|
conditions: '{{ action in [''big-press'', ''on'', ''brightness_up_click'']
|
|
}}'
|
|
sequence:
|
|
- choose:
|
|
- conditions: '{{ states(''light.kitchen_table'') == ''off'' }}'
|
|
sequence:
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id:
|
|
- light.kitchen_table
|
|
data:
|
|
brightness: 255
|
|
default:
|
|
- action: light.turn_off
|
|
target:
|
|
entity_id:
|
|
- light.kitchen_table
|
|
- alias: small pressed
|
|
conditions: '{{ action in [''small-press'', ''off'', ''brightness_down_click'']
|
|
}}'
|
|
sequence:
|
|
- action: light.toggle
|
|
target:
|
|
entity_id: light.kitchen_island
|
|
- alias: left pressed
|
|
conditions: '{{ action in [''left-press'', ''arrow_left_click''] }}'
|
|
sequence:
|
|
- action: light.toggle
|
|
target:
|
|
entity_id: light.kitchen_bench
|
|
- alias: right pressed
|
|
conditions: '{{ action in [''right-press'', ''arrow_right_click''] }}'
|
|
sequence:
|
|
- action: light.toggle
|
|
target:
|
|
entity_id: light.conservatory_ceiling
|
|
- conditions:
|
|
- condition: trigger
|
|
id: nightaway
|
|
sequence:
|
|
- action: light.turn_off
|
|
target:
|
|
entity_id:
|
|
- light.kitchen_sink
|
|
- light.kitchen_table
|
|
- light.kitchen_island
|
|
default:
|
|
- action: light.turn_off
|
|
target:
|
|
entity_id:
|
|
- light.kitchen_table
|
|
- light.kitchen_island
|
|
data:
|
|
transition: 5
|
|
- alias: 'Movement: kitchen'
|
|
id: 7600e21e-5142-4dd0-8439-2fe4416ad473
|
|
trace:
|
|
stored_traces: 10
|
|
triggers:
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- trigger: state
|
|
id: movement
|
|
entity_id:
|
|
- binary_sensor.motion_kitchen_occupancy
|
|
- binary_sensor.presence_kitchen_occupancy
|
|
from: 'off'
|
|
to: 'on'
|
|
- trigger: state
|
|
entity_id:
|
|
- binary_sensor.motion_kitchen_occupancy
|
|
- binary_sensor.presence_kitchen_occupancy
|
|
from: 'on'
|
|
to: 'off'
|
|
for:
|
|
minutes: 1
|
|
condition: []
|
|
action:
|
|
choose:
|
|
- alias: activate movement mode
|
|
conditions:
|
|
- alias: when movement is detected
|
|
condition: trigger
|
|
id: movement
|
|
sequence:
|
|
- alias: turn on helper
|
|
action: input_boolean.turn_on
|
|
target:
|
|
entity_id: input_boolean.kitchen_movement
|
|
default:
|
|
- choose:
|
|
conditions:
|
|
- condition: state
|
|
entity_id:
|
|
- binary_sensor.presence_kitchen_occupancy
|
|
- binary_sensor.motion_kitchen_occupancy
|
|
state: 'off'
|
|
sequence:
|
|
- alias: turn off helper
|
|
action: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.kitchen_movement
|
|
- alias: 'Laundry room: lights'
|
|
id: ca853bcb-c701-4090-af6b-0aa888c17562
|
|
trace:
|
|
stored_traces: 25
|
|
triggers:
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- scene_reloaded
|
|
- trigger: state
|
|
id: movement
|
|
entity_id:
|
|
- input_boolean.laundryroom_movement
|
|
conditions: []
|
|
actions:
|
|
choose:
|
|
- conditions:
|
|
- condition: trigger
|
|
id: button
|
|
sequence:
|
|
- choose:
|
|
- conditions:
|
|
- alias: if ceiling light is off
|
|
condition: state
|
|
entity_id:
|
|
- switch.laundry_room_channel_1
|
|
state: 'off'
|
|
sequence:
|
|
- &id006
|
|
alias: turn on the lights
|
|
action: switch.turn_on
|
|
target:
|
|
entity_id: switch.laundry_room_channel_1
|
|
- &id007
|
|
alias: turn on bench light
|
|
action: light.turn_on
|
|
target:
|
|
entity_id: light.laundry_room_bench
|
|
data:
|
|
brightness: 120
|
|
transition: 1
|
|
default:
|
|
- &id008
|
|
alias: turn off the lights
|
|
action: homeassistant.turn_off
|
|
target:
|
|
entity_id:
|
|
- switch.laundry_room_channel_1
|
|
- light.laundry_room_bench
|
|
- conditions:
|
|
- alias: turn on lights when entering the room
|
|
condition: and
|
|
conditions:
|
|
- alias: if movement detected
|
|
condition: state
|
|
entity_id:
|
|
- input_boolean.laundryroom_movement
|
|
state: 'on'
|
|
sequence:
|
|
- choose:
|
|
- conditions:
|
|
- alias: if time is between
|
|
condition: time
|
|
after: 07:30:00
|
|
before: '22:00:00'
|
|
sequence:
|
|
- *id006
|
|
- *id007
|
|
default:
|
|
- *id007
|
|
default:
|
|
- *id008
|
|
- alias: 'Movement: laundryroom'
|
|
id: bc7852b3-a205-4a37-a2d3-946e33baee6f
|
|
trace:
|
|
stored_traces: 10
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- platform: state
|
|
id: movement
|
|
entity_id:
|
|
- binary_sensor.motion_laundry_room_occupancy
|
|
from: 'off'
|
|
to: 'on'
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.motion_laundry_room_occupancy
|
|
from: 'on'
|
|
to: 'off'
|
|
for:
|
|
minutes: 3
|
|
condition: []
|
|
action:
|
|
choose:
|
|
- alias: activate movement mode
|
|
conditions:
|
|
- alias: when movement is detected
|
|
condition: trigger
|
|
id: movement
|
|
sequence:
|
|
- alias: turn on helper
|
|
service: input_boolean.turn_on
|
|
target:
|
|
entity_id: input_boolean.laundryroom_movement
|
|
default:
|
|
- alias: turn off helper
|
|
service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.laundryroom_movement
|
|
- alias: 'Livingroom: lights'
|
|
id: 426174fb-2fc8-41e3-8e92-62f37ef26c54
|
|
triggers:
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- scene_reloaded
|
|
- trigger: state
|
|
entity_id:
|
|
- input_boolean.house_mode_bright_inside
|
|
- trigger: state
|
|
entity_id: event.livingroom_remote_action
|
|
not_from: unavailable
|
|
id: remote
|
|
- trigger: state
|
|
id: night_or_away
|
|
entity_id:
|
|
- input_boolean.house_mode_sleep
|
|
- input_boolean.house_mode_away
|
|
from: 'off'
|
|
to: 'on'
|
|
- trigger: time
|
|
at:
|
|
- input_datetime.time_goodmorning
|
|
- input_datetime.time_goodnight
|
|
actions:
|
|
choose:
|
|
- conditions:
|
|
- condition: trigger
|
|
id: remote
|
|
sequence:
|
|
- variables:
|
|
action: '{{ trigger.to_state.attributes.event_type }}'
|
|
- choose:
|
|
- conditions: '{{ action == ''on'' }}'
|
|
sequence:
|
|
- action: light.toggle
|
|
target:
|
|
entity_id: light.livingroom_front_1
|
|
- conditions: '{{ action == ''off'' }}'
|
|
sequence:
|
|
- action: light.toggle
|
|
target:
|
|
entity_id: light.livingroom_back_3
|
|
- conditions: '{{ action == ''brightness_move_up'' }}'
|
|
sequence:
|
|
- action: light.toggle
|
|
target:
|
|
entity_id: light.vardagsrum_framre
|
|
- conditions: '{{ action == ''brightness_move_down'' }}'
|
|
sequence:
|
|
- action: light.toggle
|
|
target:
|
|
entity_id: light.vardagsrum_bakre
|
|
default:
|
|
- delay:
|
|
milliseconds: 1
|
|
- conditions:
|
|
- condition: trigger
|
|
id: night_or_away
|
|
sequence:
|
|
- action: light.turn_off
|
|
target:
|
|
entity_id:
|
|
- light.vardagsrum_framre
|
|
- light.vardagsrum_bakre
|
|
- light.floor_lamp
|
|
- conditions:
|
|
- condition: or
|
|
conditions:
|
|
- condition: and
|
|
conditions:
|
|
- condition: time
|
|
after: input_datetime.time_goodmorning
|
|
before: input_datetime.time_goodnight
|
|
- condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_bright_inside
|
|
state: 'off'
|
|
sequence:
|
|
- action: scene.turn_on
|
|
target:
|
|
entity_id:
|
|
- scene.livingroom_ambience_lights_cozy
|
|
- scene.livingroom_window_lights_cozy
|
|
data:
|
|
transition: 5
|
|
- conditions:
|
|
- condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_bright_inside
|
|
state: 'on'
|
|
sequence:
|
|
- &id009
|
|
action: light.turn_off
|
|
target:
|
|
entity_id:
|
|
- light.floor_lamp
|
|
- light.livingroom_window_1
|
|
data:
|
|
transition: 5
|
|
default:
|
|
- *id009
|
|
- alias: 'livingroom: air cleaner'
|
|
id: 61dc9746-9143-4d5e-8bc5-d282cad4391b
|
|
mode: queued
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- platform: state
|
|
entity_id:
|
|
- input_boolean.house_mode_away
|
|
- input_boolean.house_mode_sleep
|
|
action:
|
|
choose:
|
|
- conditions:
|
|
- condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_guests
|
|
state: 'off'
|
|
- condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_sleep
|
|
state: 'on'
|
|
sequence:
|
|
- service: fan.set_percentage
|
|
target:
|
|
entity_id: fan.livingroom_starkvind
|
|
data:
|
|
percentage: 55
|
|
- conditions:
|
|
- condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_away
|
|
state: 'on'
|
|
sequence:
|
|
- service: fan.set_percentage
|
|
target:
|
|
entity_id: fan.livingroom_starkvind
|
|
data:
|
|
percentage: 55
|
|
default:
|
|
- service: fan.set_percentage
|
|
target:
|
|
entity_id: fan.livingroom_starkvind
|
|
data:
|
|
percentage: 11
|
|
- alias: 'staircase: lights'
|
|
id: b735976f-ca85-42bb-a5eb-6cd714297d7b
|
|
triggers:
|
|
- trigger: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- trigger: state
|
|
entity_id:
|
|
- binary_sensor.motion_staircase_occupancy
|
|
from: 'off'
|
|
to: 'on'
|
|
- trigger: state
|
|
id: nomotion
|
|
entity_id:
|
|
- binary_sensor.motion_staircase_occupancy
|
|
from: 'on'
|
|
to: 'off'
|
|
for:
|
|
seconds: 180
|
|
action:
|
|
- choose:
|
|
- conditions:
|
|
- condition: state
|
|
entity_id:
|
|
- binary_sensor.motion_staircase_occupancy
|
|
state: 'on'
|
|
- condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_away
|
|
state: 'off'
|
|
- condition: time
|
|
before: input_datetime.time_goodmorning
|
|
after: input_datetime.time_goodnight
|
|
sequence:
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id: light.staircase
|
|
data:
|
|
brightness: 20
|
|
- conditions:
|
|
- condition: trigger
|
|
id: nomotion
|
|
- condition: time
|
|
before: input_datetime.time_goodmorning
|
|
after: input_datetime.time_goodnight
|
|
sequence:
|
|
- action: light.turn_off
|
|
target:
|
|
entity_id: light.staircase
|
|
- alias: 'Movement: techroom'
|
|
id: 4a346b19-87e7-4d09-99ec-019d7ec05237
|
|
trace:
|
|
stored_traces: 10
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- platform: state
|
|
id: movement
|
|
entity_id:
|
|
- binary_sensor.motion_techroom_occupancy
|
|
from: 'off'
|
|
to: 'on'
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.motion_techroom_occupancy
|
|
from: 'on'
|
|
to: 'off'
|
|
for:
|
|
minutes: 10
|
|
condition: []
|
|
action:
|
|
choose:
|
|
- alias: activate movement mode
|
|
conditions:
|
|
- alias: when movement is detected
|
|
condition: trigger
|
|
id: movement
|
|
sequence:
|
|
- alias: turn on helper
|
|
service: input_boolean.turn_on
|
|
target:
|
|
entity_id: input_boolean.techroom_movement
|
|
default:
|
|
- alias: turn off helper
|
|
service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.techroom_movement
|
|
- alias: 'Terrace: lights'
|
|
id: 3b25b5a0-8281-4d08-b624-aa37eaa7db56
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- scene_reloaded
|
|
- platform: state
|
|
entity_id:
|
|
- input_boolean.house_mode_daylight
|
|
action:
|
|
choose:
|
|
- conditions:
|
|
- condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_daylight
|
|
state: 'off'
|
|
sequence:
|
|
- service: light.turn_on
|
|
target:
|
|
entity_id:
|
|
- light.terrace
|
|
data:
|
|
transition: 5
|
|
- conditions:
|
|
- condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_daylight
|
|
state: 'on'
|
|
sequence:
|
|
- &id010
|
|
service: light.turn_off
|
|
target:
|
|
entity_id:
|
|
- light.terrace
|
|
data:
|
|
transition: 5
|
|
default:
|
|
- *id010
|
|
- alias: 'toilet: lights'
|
|
id: d4e1013c-70e8-432c-a3fc-7923bd3f0639
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.motion_toilet_occupancy
|
|
from: 'off'
|
|
to: 'on'
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.motion_toilet_occupancy
|
|
from: 'on'
|
|
to: 'off'
|
|
for:
|
|
seconds: 180
|
|
action:
|
|
- choose:
|
|
- alias: when triggered
|
|
conditions:
|
|
- alias: and motion is detected
|
|
condition: state
|
|
entity_id:
|
|
- binary_sensor.motion_toilet_occupancy
|
|
state: 'on'
|
|
- alias: and we are home (cat's can poop in the dark)
|
|
condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_away
|
|
state: 'off'
|
|
sequence:
|
|
- choose:
|
|
- conditions:
|
|
- alias: if it's night
|
|
condition: time
|
|
after: input_datetime.time_goodnight
|
|
before: input_datetime.time_goodmorning
|
|
sequence:
|
|
- alias: turn on the lights at low level
|
|
service: light.turn_on
|
|
target:
|
|
entity_id: light.upper_toilet
|
|
data:
|
|
brightness: 70
|
|
default:
|
|
- alias: turn on the lights
|
|
service: light.turn_on
|
|
target:
|
|
entity_id: light.upper_toilet
|
|
data:
|
|
brightness: 250
|
|
default:
|
|
- alias: turn off the lights
|
|
service: light.turn_off
|
|
target:
|
|
entity_id: light.upper_toilet
|
|
- alias: Notify when Bahnhof changes the price
|
|
id: 3383e3b4-bbfe-4542-94f8-879e188762f3
|
|
triggers:
|
|
trigger: state
|
|
entity_id: sensor.servanet_bahnhof_price
|
|
not_from:
|
|
- none
|
|
- unknown
|
|
- unavailable
|
|
- 'null'
|
|
not_to:
|
|
- none
|
|
- unknown
|
|
- unavailable
|
|
- 'null'
|
|
action:
|
|
- choose:
|
|
- conditions: '{% set ignore = [''unknown'', ''unavailable'', ''none'', '''',
|
|
null] %} {{ trigger.from_state.state not in ignore and trigger.to_state.state
|
|
not in ignore and trigger.to_state.state != trigger.from_state.state }}
|
|
|
|
'
|
|
sequence:
|
|
- action: notify.castle_log
|
|
data:
|
|
title: Bahnhof
|
|
message: 'Priset har ändrats från {{trigger.from_state.state}}kr till {{trigger.to_state.state}}kr
|
|
|
|
'
|
|
- alias: 'livingroom: turn off cinema if we leave the house'
|
|
id: 9dd4d185-e6d1-4cb7-80ba-bb32fc3968ca
|
|
mode: queued
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- input_boolean.house_mode_away
|
|
to: 'on'
|
|
action:
|
|
choose:
|
|
- conditions:
|
|
- condition: state
|
|
entity_id:
|
|
- media_player.home_theater
|
|
state:
|
|
- 'on'
|
|
- playing
|
|
sequence:
|
|
- service: homeassistant.turn_off
|
|
target:
|
|
entity_id: media_player.home_theater
|
|
- service: notify.castle_log
|
|
data:
|
|
title: Hemmabion
|
|
message: Stängde av då ingen är hemma
|
|
default: []
|
|
- alias: 'livingroom: turn off window lights when watching tv'
|
|
id: f70a86c9-a93f-41c0-96c7-d89108586cf0
|
|
mode: queued
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- media_player.home_theater
|
|
- input_boolean.house_mode_bright_inside
|
|
- trigger: state
|
|
entity_id: media_player.android_tv_10_5_50_73
|
|
actions:
|
|
choose:
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: media_player.home_theater
|
|
state: 'on'
|
|
- condition: state
|
|
entity_id: media_player.android_tv_10_5_50_73
|
|
state: playing
|
|
- condition: state
|
|
entity_id: input_boolean.house_mode_bright_inside
|
|
state: 'off'
|
|
sequence:
|
|
- action: light.turn_off
|
|
target:
|
|
entity_id: light.livingroom_window_1
|
|
data:
|
|
transition: 5
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: input_boolean.house_mode_bright_inside
|
|
state: 'off'
|
|
- condition: time
|
|
before: input_datetime.time_goodnight
|
|
after: input_datetime.time_goodmorning_weekend
|
|
sequence:
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id: light.livingroom_window_1
|
|
data:
|
|
transition: 5
|
|
default: []
|
|
- alias: 'Kitchen: Coffee water level meter'
|
|
id: 20fa1fcc-eae1-4428-9e2b-cfea2619e154
|
|
triggers:
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- trigger: state
|
|
entity_id: sensor.coffee_maker_state
|
|
condition: []
|
|
action:
|
|
- choose:
|
|
conditions:
|
|
- condition: state
|
|
entity_id: sensor.coffee_maker_state
|
|
state: 'off'
|
|
sequence:
|
|
- action: light.turn_off
|
|
target:
|
|
entity_id: light.coffeemaker_water_level_light
|
|
default:
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id: light.coffeemaker_water_level_light
|
|
- choose:
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: light.kitchen_bench
|
|
state: 'off'
|
|
- condition: state
|
|
entity_id: input_boolean.house_mode_bright_hallway
|
|
state: 'off'
|
|
sequence:
|
|
action: light.turn_on
|
|
target:
|
|
entity_id: light.kitchen_bench
|
|
- alias: 'Kitchen: conservatory door'
|
|
id: cc0a71fe-be26-4d54-b926-f146380f4487
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.conservatory_door_contact
|
|
for: 00:10:00
|
|
- platform: state
|
|
entity_id:
|
|
- sensor.conservatory_temperature
|
|
- sensor.kitchen_temperature
|
|
action:
|
|
choose:
|
|
- alias: when triggered
|
|
conditions:
|
|
- alias: and the door has been open for a while
|
|
condition: state
|
|
entity_id:
|
|
- binary_sensor.conservatory_door_contact
|
|
state: 'on'
|
|
for: 00:10:00
|
|
- alias: and the temperature difference is above the limit
|
|
condition: template
|
|
value_template: '{{ ((states("sensor.kitchen_temperature")|float(0) - states("sensor.conservatory_temperature")|float(0))
|
|
> 4) and states("sensor.kitchen_temperature")|float(0) < 20 }}'
|
|
sequence:
|
|
- service: notify.family
|
|
data:
|
|
title: Uterummet
|
|
message: Dags att stänga dörren ({{ (states("sensor.kitchen_temperature")|float(0)
|
|
- states("sensor.conservatory_temperature")|float(0))|round(1) }}C kallare
|
|
än inne)
|
|
- alias: Notify when CTC releases new software
|
|
id: 4729a25a-8eef-421d-8460-b932bc27d4ce
|
|
triggers:
|
|
trigger: state
|
|
entity_id: sensor.ctc_software_version
|
|
not_from:
|
|
- none
|
|
- unknown
|
|
- unavailable
|
|
- 'null'
|
|
not_to:
|
|
- none
|
|
- unknown
|
|
- unavailable
|
|
- 'null'
|
|
actions:
|
|
- choose:
|
|
- conditions: '{% set ignore = [''unknown'', ''unavailable'', ''none'', '''',
|
|
null] %} {{ trigger.from_state.state not in ignore and trigger.to_state.state
|
|
not in ignore and trigger.to_state.state != trigger.from_state.state }}
|
|
|
|
'
|
|
sequence:
|
|
- action: notify.castle_log
|
|
data:
|
|
title: CTC
|
|
message: 'CTC har släppt en ny mjukvaruversion: {{trigger.to_state.state}}
|
|
(gamla: {{trigger.from_state.state}})
|
|
|
|
'
|
|
- alias: 'Dishwasher: reminder'
|
|
id: 6c309c9c-d7d0-440a-a49f-fc4e97dcfa76
|
|
trace:
|
|
stored_traces: 20
|
|
trigger:
|
|
- platform: state
|
|
id: start
|
|
entity_id:
|
|
- sensor.012050386564014027_bsh_common_status_operationstate
|
|
from:
|
|
- BSH.Common.EnumType.OperationState.Ready
|
|
- BSH.Common.EnumType.OperationState.DelayedStart
|
|
to: BSH.Common.EnumType.OperationState.Run
|
|
- platform: state
|
|
id: finished
|
|
entity_id:
|
|
- sensor.012050386564014027_bsh_common_status_operationstate
|
|
from: BSH.Common.EnumType.OperationState.Run
|
|
to: BSH.Common.EnumType.OperationState.Finished
|
|
action:
|
|
choose:
|
|
- conditions:
|
|
- condition: trigger
|
|
id: start
|
|
sequence:
|
|
- service: input_number.set_value
|
|
target:
|
|
entity_id: input_number.dishwasher_start
|
|
data:
|
|
value: '{{ states(''sensor.shelly_dishwasher_energy'')|float(0) }}'
|
|
- conditions:
|
|
- condition: trigger
|
|
id: finished
|
|
sequence:
|
|
- variables:
|
|
consumption: '{{ (states(''sensor.shelly_dishwasher_energy'')|float(0) -
|
|
states(''input_number.dishwasher_start'')|float(0))|round(2) }}'
|
|
- service: notify.castle
|
|
data:
|
|
title: Diskmaskinen
|
|
message: 'Disken klar! (förbrukning: {{consumption}}kWh)'
|
|
- alias: 'Dishwasher: intelligent start'
|
|
id: c2d665a4-53ca-4456-ae99-be0a6a37dc8e
|
|
trace:
|
|
stored_traces: 20
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.012050386564014027_bsh_common_status_remotecontrolstartallowed
|
|
from: 'off'
|
|
to: 'on'
|
|
action:
|
|
choose:
|
|
- conditions:
|
|
and:
|
|
- condition: state
|
|
entity_id:
|
|
- binary_sensor.012050386564014027_bsh_common_status_remotecontrolstartallowed
|
|
state: 'on'
|
|
sequence:
|
|
- service: notify.castle
|
|
data:
|
|
title: Diskmaskinen
|
|
message: 'Kommer starta diskmaskinen {{ as_timestamp(states(''sensor.el_next_cheapest_hour''))|timestamp_custom(''%d/%m
|
|
%H:%M'') }}
|
|
|
|
'
|
|
- service: tts.google_translate_say
|
|
data:
|
|
entity_id: media_player.kitchen_display
|
|
language: sv
|
|
message: "{% set add = '' %} {% if (as_datetime(states('sensor.el_next_cheapest_hour')).day\
|
|
\ == now().day) %}\n {% if (as_datetime(states('sensor.el_next_cheapest_hour')).hour\
|
|
\ > 18) %}\n {% set add = 'ikväll' %}\n {% endif %}\n{% else %}\n\
|
|
\ {% set add = 'i morgon' %}\n {% if (as_datetime(states('sensor.el_next_cheapest_hour')).hour\
|
|
\ < 6) %}\n {% set add = 'inatt' %}\n {% endif %}\n{% endif %} \"\
|
|
Kommer starta diskmaskinen klockan {{ as_datetime(states('sensor.el_next_cheapest_hour')).hour\
|
|
\ }} {{add}}\"\n"
|
|
- service: home_connect_alt.start_program
|
|
data:
|
|
device_id: 7b6022c5a26eda9e5f48679e4274a490
|
|
program_key: Dishcare.Dishwasher.Program.Kurz60
|
|
options:
|
|
- key: BSH.Common.Option.StartInRelative
|
|
value: '{{ (as_datetime(states(''sensor.el_next_cheapest_hour''))-now()).seconds
|
|
}}'
|
|
- alias: 'Boiler room: door'
|
|
id: c17f73fe-8285-494b-b502-e7d42c39c832
|
|
mode: queued
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type: automation_reloaded
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.boiler_room_door_contact
|
|
from: 'off'
|
|
to: 'on'
|
|
for:
|
|
minutes: 10
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.boiler_room_door_contact
|
|
from: 'on'
|
|
to: 'off'
|
|
- platform: time
|
|
at: '21:00:00'
|
|
condition: []
|
|
variables:
|
|
anchors:
|
|
- &id012
|
|
service: notify.family
|
|
data:
|
|
title: Pannrumet
|
|
message: Dörren är öppen!
|
|
data:
|
|
tag: boilerroom
|
|
- service: notify.family
|
|
data:
|
|
title: Pannrummet
|
|
message: Tack!
|
|
data:
|
|
tag: boilerroom
|
|
timeout: 900
|
|
- &id014
|
|
service: notify.family
|
|
data:
|
|
message: clear_notification
|
|
data:
|
|
tag: boilerroom
|
|
- &id011
|
|
service: persistent_notification.create
|
|
data:
|
|
title: Pannrummet
|
|
message: Pannrumsdörren är öppen!
|
|
notification_id: feed_boilerroom
|
|
- &id013
|
|
service: persistent_notification.dismiss
|
|
data:
|
|
notification_id: feed_boilerroom
|
|
action:
|
|
- choose:
|
|
- conditions:
|
|
condition: state
|
|
entity_id:
|
|
- binary_sensor.boiler_room_door_contact
|
|
state: 'on'
|
|
sequence:
|
|
- *id011
|
|
- *id012
|
|
default:
|
|
- *id013
|
|
- *id014
|
|
- alias: 'House: door bell'
|
|
id: 54036205-5324-4d60-aa95-e24f9ff99a34
|
|
trace:
|
|
stored_traces: 25
|
|
mode: single
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.wardrobe_terrace_bt_proxy_door_bell
|
|
- binary_sensor.front_door_doorbell_ding
|
|
from: 'off'
|
|
to: 'on'
|
|
variables:
|
|
anchors:
|
|
- &id015
|
|
service: notify.family
|
|
data:
|
|
title: Dörrklockan
|
|
message: Det ringer på dörrklockan!
|
|
data:
|
|
tag: door_bell
|
|
timeout: 900
|
|
action:
|
|
choose:
|
|
conditions:
|
|
- condition: state
|
|
entity_id: input_boolean.house_mode_away
|
|
state: 'off'
|
|
sequence:
|
|
- *id015
|
|
default:
|
|
- *id015
|
|
- alias: 'eHub: system state'
|
|
id: e0e5220c-f753-4adb-9a48-d574928ada9c
|
|
mode: queued
|
|
trace:
|
|
stored_traces: 10
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- sensor.ferroamp_xl28_system_state
|
|
not_from:
|
|
- none
|
|
- unknown
|
|
- unavailable
|
|
not_to:
|
|
- none
|
|
- unknown
|
|
- unavailable
|
|
action:
|
|
choose:
|
|
- conditions: '{{ trigger.to_state.state|int > 0 }}'
|
|
sequence:
|
|
- service: notify.castle_log
|
|
data:
|
|
title: Ferroamp ehub
|
|
message: "{% set e = trigger.to_state.state|string %} {% set x = ('0x'+e)|int(base=16,\
|
|
\ default=0) %} {% set v = 1 %} {% set f = namespace(ecodes=[])%} {% for\
|
|
\ i in range(0,100) %}\n {% set v = (2**i) %}\n {% if x|bitwise_and(v)\
|
|
\ == v %}\n {% set f.ecodes = f.ecodes + [i+1] %}\n {% endif %}\n\
|
|
{% endfor %} {{trigger.to_state.name}}: {{trigger.to_state.state}} (codes:\
|
|
\ {{f.ecodes}})\n"
|
|
default:
|
|
- service: notify.castle_log
|
|
data:
|
|
title: Ferroamp ehub
|
|
message: '{{trigger.to_state.name}} rapporterar state ''0''
|
|
|
|
'
|
|
- alias: Spot price change
|
|
id: 0fc03d6f-62ca-4a0f-b8a6-52873e84d2d5
|
|
trace:
|
|
stored_traces: 25
|
|
mode: single
|
|
triggers:
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- trigger: state
|
|
entity_id:
|
|
- sensor.nordpool_se2
|
|
actions:
|
|
- action: input_number.set_value
|
|
target:
|
|
entity_id: input_number.electricity_price_level
|
|
data:
|
|
value: "{% set s = states('sensor.nordpool_se2')|float %}\n{% if s > 2.5 %}\
|
|
\ {% set p = 5 %} {% elif s > 1.5 %} {% set p = 4 %} {% elif s > 0.5 %} {%\
|
|
\ set p = 3 %} {% elif s >= 0 %} {% set p = 2 %} {% elif s < 0 %} {% set p\
|
|
\ = 1 %} {% endif %} {% if states('sensor.momentary_active_export')|float\
|
|
\ > 1 and p <= 2 %}\n {% set p = p - 1 %}\n{% endif %} {{p}}\n"
|
|
- alias: 'boiler: bottom reminder'
|
|
id: a8a350a1-44dc-4a92-b272-7336812df8e4
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id: sensor.boiler_climate_acc_tank_bottom
|
|
below: 40
|
|
for:
|
|
minutes: 15
|
|
action:
|
|
- service: notify.family
|
|
data:
|
|
title: Vedpannan
|
|
message: 'Dags att elda! (Acktank botten: {{ states(''sensor.boiler_climate_acc_tank_bottom'')
|
|
}}C)'
|
|
data:
|
|
tag: boiler
|
|
sticky: true
|
|
push:
|
|
badge: 1
|
|
- alias: 'boiler: middle reminder'
|
|
id: db5a1105-9962-4ed3-8959-aa2f97e37b31
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id: sensor.boiler_climate_acc_tank_mid
|
|
below: 60
|
|
for:
|
|
minutes: 15
|
|
action:
|
|
- service: notify.family
|
|
data:
|
|
title: Vedpannan
|
|
message: 'Hög till att elda! (Acktank mitten: {{ states(''sensor.boiler_climate_acc_tank_mid'')
|
|
}}C)'
|
|
data:
|
|
tag: boiler
|
|
sticky: true
|
|
push:
|
|
badge: 2
|
|
- alias: 'boiler: reset'
|
|
id: e2b1fa65-55e5-47a1-8420-1b0e4cda14e4
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id: sensor.boiler_climate_acc_tank_bottom
|
|
above: 40
|
|
for:
|
|
minutes: 15
|
|
action:
|
|
- service: notify.family
|
|
data:
|
|
message: clear_notification
|
|
data:
|
|
tag: boiler
|
|
- alias: 'boiler: add wood'
|
|
id: b810302f-435f-4c2e-a69b-fbc1321d56f8
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id:
|
|
- sensor.boiler_climate_wood_boiler_supply
|
|
below: 80
|
|
condition:
|
|
- condition: numeric_state
|
|
entity_id:
|
|
- sensor.boiler_climate_acc_tank_bottom
|
|
below: 70
|
|
action:
|
|
- service: notify.family
|
|
data:
|
|
title: Vedpannan
|
|
message: 'Dags att lägga i mera ved! (Acktank botten: {{ states(''sensor.boiler_climate_acc_tank_bottom'')
|
|
}}C)'
|
|
data:
|
|
tag: boiler
|
|
sticky: true
|
|
push:
|
|
badge: 3
|
|
- alias: 'Shower: start floor heating when shower starts'
|
|
id: 818c0f02-8d9c-4859-bfc2-ecf54897bace
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id:
|
|
- sensor.shower_derivative
|
|
above: 50
|
|
action:
|
|
- choose:
|
|
- conditions:
|
|
- alias: when spot price is too high
|
|
condition: numeric_state
|
|
entity_id: input_number.electricity_price_level
|
|
above: 3
|
|
sequence:
|
|
- service: notify.castle_log
|
|
data:
|
|
title: Duschen
|
|
message: Någon har duschat, men för dyr el för att starta golvvärmen!
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.laundry_room_channel_2
|
|
- conditions:
|
|
condition: state
|
|
entity_id:
|
|
- switch.laundry_room_channel_2
|
|
state: 'off'
|
|
sequence:
|
|
- service: notify.castle_log
|
|
data:
|
|
title: Duschen
|
|
message: 'Någon har duschat, startar golvvärmen (derivat: {{trigger.to_state.state}})'
|
|
- service: switch.turn_on
|
|
target:
|
|
entity_id: switch.laundry_room_channel_2
|
|
- service: input_datetime.set_datetime
|
|
target:
|
|
entity_id: input_datetime.shower_last_detected
|
|
data:
|
|
timestamp: '{{ now().timestamp() }}'
|
|
- alias: 'Shower: turn off floor heating'
|
|
id: decdc5d9-5bd0-41ab-bf91-7e77a38e49b3
|
|
mode: queued
|
|
trace:
|
|
stored_traces: 25
|
|
trigger:
|
|
- platform: template
|
|
id: endtime
|
|
value_template: '{{ now().timestamp() - states.input_datetime.shower_last_detected.attributes.timestamp
|
|
> 7200 }}'
|
|
- platform: numeric_state
|
|
id: endder
|
|
entity_id:
|
|
- sensor.shower_derivative
|
|
below: 50
|
|
for:
|
|
minutes: 120
|
|
- platform: state
|
|
id: motion
|
|
entity_id:
|
|
- binary_sensor.motion_bathroom_upstairs_occupancy
|
|
- platform: time_pattern
|
|
id: time
|
|
minutes: '5'
|
|
action:
|
|
choose:
|
|
- conditions:
|
|
condition: or
|
|
conditions:
|
|
- condition: and
|
|
conditions:
|
|
- condition: trigger
|
|
id:
|
|
- motion
|
|
- time
|
|
- condition: state
|
|
entity_id:
|
|
- switch.laundry_room_channel_2
|
|
state: 'on'
|
|
for:
|
|
minutes: 240
|
|
- condition: and
|
|
conditions:
|
|
- condition: trigger
|
|
id:
|
|
- endtime
|
|
- endder
|
|
- condition: state
|
|
entity_id:
|
|
- switch.laundry_room_channel_2
|
|
state: 'on'
|
|
sequence:
|
|
- service: notify.castle_log
|
|
data:
|
|
title: Duschen
|
|
message: 'Stängde av golvvärmen nu efter {{ (now().timestamp() - states.switch.laundry_room_channel_2.last_changed.timestamp())|timestamp_custom(''%-Ht%-Mm'',
|
|
false) }} (trigger: {{trigger.id}})'
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.laundry_room_channel_2
|
|
- alias: Freezer temperature alarm
|
|
id: e473c7d9-772e-4084-a3aa-9ad6b20781d7
|
|
triggers:
|
|
- trigger: numeric_state
|
|
entity_id:
|
|
- sensor.laundry_freezer_temperature
|
|
- sensor.garage_freezer_temperature
|
|
above: -15
|
|
for:
|
|
minutes: 1
|
|
actions:
|
|
- action: notify.family
|
|
data_template:
|
|
title: Frysen
|
|
message: "{% set mapper = {\n 'sensor.freezer_kitchen_temperature' : 'frysen\
|
|
\ i köket',\n 'sensor.laundry_freezer_temperature' : 'frysen i tvättstugan',\n\
|
|
\ 'sensor.garage_freezer_temperature' : 'frysen i garaget'\n} %} \"För hög\
|
|
\ temperatur i {{ mapper[trigger.entity_id] }}! ({{ trigger.to_state.state\
|
|
\ }}C)\"\n"
|
|
data:
|
|
tag: freezer
|
|
sticky: true
|
|
- alias: Freezer critical temperature alarm
|
|
id: 434a2b9a-4da7-4bd2-9229-b755ce7d3379
|
|
triggers:
|
|
- trigger: numeric_state
|
|
entity_id:
|
|
- sensor.laundry_freezer_temperature
|
|
- sensor.garage_freezer_temperature
|
|
above: -10
|
|
for:
|
|
minutes: 1
|
|
actions:
|
|
- repeat:
|
|
while:
|
|
- condition: template
|
|
value_template: '{{ trigger.to_state.state > -10 }}'
|
|
sequence:
|
|
- action: notify.family
|
|
data_template:
|
|
title: Frysen kritisk!
|
|
message: "{% set mapper = {\n 'sensor.freezer_kitchen_temperature' : 'frysen\
|
|
\ i köket',\n 'sensor.laundry_freezer_temperature' : 'frysen i tvättstugan',\n\
|
|
\ 'sensor.garage_freezer_temperature' : 'frysen i garaget'\n} %} \"Kritisk\
|
|
\ temperatur i {{ mapper[trigger.entity_id] }}! ({{ trigger.to_state.state\
|
|
\ }}C)\"\n"
|
|
data:
|
|
tag: freezer
|
|
sticky: true
|
|
ttl: 0
|
|
priority: high
|
|
channel: alarm_stream
|
|
- delay:
|
|
minutes: 15
|
|
- alias: 'Driveway: objects'
|
|
id: 694696c1-1ef4-49a4-a340-9edfe3e84652
|
|
trace:
|
|
stored_traces: 10
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- sensor.driveway_bus_count
|
|
- sensor.driveway_car_count
|
|
- sensor.driveway_cat_count
|
|
- sensor.driveway_horse_count
|
|
- sensor.driveway_bike_count
|
|
- sensor.driveway_person_count
|
|
not_from:
|
|
- unknown
|
|
- unavailable
|
|
- none
|
|
action:
|
|
- choose:
|
|
- conditions: '{{ trigger.to_state.state > trigger.from_state.state }}'
|
|
sequence:
|
|
- variables:
|
|
object: '{{ trigger.entity_id.split(''_'')[1] }}'
|
|
- service: counter.increment
|
|
target:
|
|
entity_id: counter.driveway_{{object}}
|
|
- alias: 'frigate: improve contrast'
|
|
id: 01e2891c-1639-4188-9b6e-6f85a5fe3ef8
|
|
trace:
|
|
stored_traces: 10
|
|
triggers:
|
|
trigger: time
|
|
at:
|
|
- 02:35
|
|
actions:
|
|
- action: mqtt.publish
|
|
data:
|
|
topic: frigate/restart
|
|
payload: justdoit
|
|
- alias: 'frigate: improve contrast'
|
|
id: 1ceb3ae2-9210-4eb2-8006-be665ee1bcad
|
|
trace:
|
|
stored_traces: 10
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- platform: state
|
|
entity_id: input_boolean.house_mode_daylight
|
|
action:
|
|
choose:
|
|
conditions:
|
|
condition: state
|
|
entity_id: input_boolean.house_mode_daylight
|
|
state: 'on'
|
|
sequence:
|
|
repeat:
|
|
for_each: &id016
|
|
- barn
|
|
- driveway
|
|
- parking
|
|
- parking_barn
|
|
- parking_house
|
|
sequence:
|
|
- service: mqtt.publish
|
|
data:
|
|
qos: 0
|
|
topic: frigate/{{repeat.item}}/improve_contrast/set
|
|
payload: 'OFF'
|
|
default:
|
|
repeat:
|
|
for_each: *id016
|
|
sequence:
|
|
- service: mqtt.publish
|
|
data:
|
|
qos: 0
|
|
topic: frigate/{{repeat.item}}/improve_contrast/set
|
|
payload: 'ON'
|
|
- alias: 'grid: voltage'
|
|
id: 5bc946bf-8ab1-4791-bb9b-dbcebf2282dd
|
|
triggers:
|
|
- trigger: numeric_state
|
|
entity_id:
|
|
- sensor.voltage_phase_1
|
|
- sensor.voltage_phase_2
|
|
- sensor.voltage_phase_3
|
|
below: 200
|
|
id: low_voltage
|
|
variables:
|
|
data: &id017
|
|
importance: high
|
|
ttl: 0
|
|
tag: grid
|
|
sticky: true
|
|
visibility: public
|
|
actions:
|
|
- choose:
|
|
- conditions:
|
|
- condition: trigger
|
|
id: low_voltage
|
|
sequence:
|
|
- action: notify.family
|
|
data_template:
|
|
title: Nätanslutning!
|
|
message: Spänningen på {{ trigger.entity_id }} är {{ trigger.to_state.state
|
|
}}V
|
|
data: *id017
|
|
- action: notify.castle
|
|
data:
|
|
title: Nätanslutning!
|
|
message: Spänningen på {{ trigger.entity_id }} är {{ trigger.to_state.state
|
|
}}V
|
|
- alias: Report version on startup
|
|
id: 1faad88f-0758-4ef9-820e-d31df12a46b2
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
action:
|
|
- service: rest_command.report_ha_version
|
|
data:
|
|
user: secret ha_report_user
|
|
- alias: Notify on new HA version
|
|
id: f98ff89c-0513-4993-a404-8e72f01da65a
|
|
trigger:
|
|
platform: state
|
|
id: version
|
|
entity_id: sensor.latest_ha_version
|
|
not_from:
|
|
- none
|
|
- unknown
|
|
- unavailable
|
|
- 'null'
|
|
not_to:
|
|
- none
|
|
- unknown
|
|
- unavailable
|
|
- 'null'
|
|
action:
|
|
- choose:
|
|
- conditions: '{% set ignore = [''unknown'', ''unavailable'', ''none'', '''',
|
|
null] %} {{ trigger.from_state.state not in ignore and trigger.to_state.state
|
|
not in ignore and trigger.to_state.state != trigger.from_state.state }}
|
|
|
|
'
|
|
sequence:
|
|
- service: notify.mobile_app_kb2003
|
|
data:
|
|
title: New HA release
|
|
message: 'version: {{ states(''sensor.latest_ha_version'') }}'
|
|
- alias: 'House: floor heat circulation pump'
|
|
id: 30e75135-6044-4d14-bc8c-75ba60c7fe0e
|
|
trace:
|
|
stored_traces: 25
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- platform: state
|
|
entity_id:
|
|
- sensor.ctc_hs1_status
|
|
condition: []
|
|
action:
|
|
- choose:
|
|
- conditions:
|
|
- condition: state
|
|
entity_id:
|
|
- sensor.ctc_hs1_status
|
|
state: '0'
|
|
sequence:
|
|
- service: switch.turn_off
|
|
target:
|
|
entity_id: switch.floor_heating_circulation_pump
|
|
default:
|
|
- service: switch.turn_on
|
|
target:
|
|
entity_id:
|
|
- switch.floor_heating_circulation_pump
|
|
- alias: 'House: vvc'
|
|
id: 9108277c-4a52-47f6-8481-32813b096a0f
|
|
mode: queued
|
|
trace:
|
|
stored_traces: 25
|
|
triggers:
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- trigger: state
|
|
entity_id:
|
|
- input_boolean.house_mode_away
|
|
- input_boolean.house_mode_sleep
|
|
- zone.home
|
|
- input_number.electricity_price_level
|
|
- input_boolean.house_vvc_preheat
|
|
- trigger: time
|
|
at:
|
|
- 06:00:00
|
|
- '21:00:00'
|
|
- 06:30:00
|
|
- 08:00:00
|
|
- '10:45:00'
|
|
- '11:30:00'
|
|
- '16:00:00'
|
|
- '18:00:00'
|
|
condition: []
|
|
actions:
|
|
choose:
|
|
- conditions:
|
|
- alias: when house mode is set to
|
|
condition: or
|
|
conditions:
|
|
- alias: away
|
|
condition: state
|
|
entity_id: input_boolean.house_mode_away
|
|
state: 'on'
|
|
- alias: sleeping
|
|
condition: state
|
|
entity_id: input_boolean.house_mode_sleep
|
|
state: 'on'
|
|
sequence:
|
|
- &id018
|
|
alias: turn off vvc
|
|
action: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.house_vvc
|
|
- conditions:
|
|
- alias: when preheat is active
|
|
condition: state
|
|
entity_id: input_boolean.house_vvc_preheat
|
|
state: 'on'
|
|
sequence:
|
|
- &id019
|
|
alias: turn on vvc
|
|
action: input_boolean.turn_on
|
|
target:
|
|
entity_id: input_boolean.house_vvc
|
|
- conditions:
|
|
- alias: when spot price is too high
|
|
condition: numeric_state
|
|
entity_id: input_number.electricity_price_level
|
|
above: 3
|
|
sequence:
|
|
- *id018
|
|
- conditions: '{{ (states(''zone.home'')|int(0) == 1 and state_attr(''zone.home'',
|
|
''persons'')[0] == ''person.linus'' and states(''input_boolean.workday_linus'')
|
|
== ''on'') and states(''input_number.electricity_price_level'')|float(3) >
|
|
2 }}'
|
|
sequence:
|
|
- choose:
|
|
- conditions:
|
|
- condition: or
|
|
conditions:
|
|
- condition: time
|
|
after: 06:30:00
|
|
before: 08:00:00
|
|
- condition: time
|
|
after: '10:45:00'
|
|
before: '11:30:00'
|
|
- condition: time
|
|
after: '16:00:00'
|
|
before: '18:00:00'
|
|
sequence:
|
|
- *id019
|
|
default:
|
|
- *id018
|
|
- conditions:
|
|
- condition: time
|
|
after: 06:00:00
|
|
before: '21:00:00'
|
|
sequence:
|
|
- *id019
|
|
default:
|
|
- *id018
|
|
- alias: 'House: vvc switch'
|
|
id: b755328d-ad0c-4f7f-94e4-50d583e06639
|
|
mode: queued
|
|
triggers:
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- trigger: state
|
|
entity_id:
|
|
- input_boolean.house_vvc
|
|
- input_boolean.house_vvc_block
|
|
- input_boolean.boilerroom_manual_mode
|
|
- input_number.vvc_stop
|
|
- input_number.vvc_diff
|
|
- trigger: numeric_state
|
|
id: vvc_start
|
|
entity_id:
|
|
- sensor.wardrobe_house_hot_water_supply
|
|
below: 0
|
|
value_template: '{% set offset = states(''input_number.vvc_stop'')|float(0) -
|
|
states(''input_number.vvc_diff'')|float(0) %} {{ states(''sensor.wardrobe_house_hot_water_supply'')|float(0)
|
|
- offset }}
|
|
|
|
'
|
|
- trigger: numeric_state
|
|
id: vvc_stop
|
|
entity_id:
|
|
- sensor.wardrobe_house_hot_water_supply
|
|
above: input_number.vvc_stop
|
|
conditions: []
|
|
actions:
|
|
choose:
|
|
- conditions:
|
|
- alias: if block switch is active
|
|
condition: state
|
|
entity_id:
|
|
- input_boolean.house_vvc_block
|
|
state: 'on'
|
|
sequence:
|
|
alias: always turn off vvc
|
|
action: switch.turn_off
|
|
target:
|
|
entity_id: switch.vvc_pump
|
|
- conditions:
|
|
condition: and
|
|
conditions:
|
|
- alias: if vvc should be on
|
|
condition: state
|
|
entity_id:
|
|
- input_boolean.house_vvc
|
|
state: 'on'
|
|
- alias: and manual mode is off
|
|
condition: state
|
|
entity_id:
|
|
- input_boolean.boilerroom_manual_mode
|
|
state: 'off'
|
|
sequence:
|
|
- choose:
|
|
- conditions:
|
|
- condition: numeric_state
|
|
entity_id:
|
|
- sensor.wardrobe_house_hot_water_supply
|
|
below: input_number.vvc_stop
|
|
sequence:
|
|
action: switch.turn_on
|
|
target:
|
|
entity_id: switch.vvc_pump
|
|
default:
|
|
- &id020
|
|
action: switch.turn_off
|
|
target:
|
|
entity_id: switch.vvc_pump
|
|
default:
|
|
- *id020
|
|
- alias: 'House: vvc preheat'
|
|
id: d7bb04cd-922f-4515-8eba-90c59f2e37c8
|
|
triggers:
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- trigger: state
|
|
entity_id:
|
|
- input_boolean.house_vvc_preheat
|
|
from: 'off'
|
|
to: 'on'
|
|
for: 00:10:00
|
|
actions:
|
|
- action: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.house_vvc_preheat
|
|
- alias: 'Boiler room: heatpump add heater active'
|
|
id: 2bafd69e-6ba4-47b6-a2cb-e11aa6585759
|
|
mode: queued
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type: automation_reloaded
|
|
- platform: numeric_state
|
|
id: heater
|
|
entity_id:
|
|
- sensor.ctc_power_immersion_heater_upper
|
|
- sensor.ctc_power_immersion_heater_lower
|
|
above: 0
|
|
condition: []
|
|
variables:
|
|
anchors:
|
|
- &id022
|
|
service: notify.family
|
|
data:
|
|
title: Pannrummet
|
|
message: Värmepumpen går på tillsatsvärme!
|
|
data:
|
|
tag: ctc
|
|
- service: notify.family
|
|
data:
|
|
title: Pannrummet
|
|
message: Tack!
|
|
data:
|
|
tag: ctc
|
|
timeout: 900
|
|
- &id024
|
|
service: notify.family
|
|
data:
|
|
message: clear_notification
|
|
data:
|
|
tag: ctc
|
|
- &id021
|
|
service: persistent_notification.create
|
|
data:
|
|
title: Pannrummet
|
|
message: Värmepumpen går på tillsatsvärme!
|
|
notification_id: feed_ctc
|
|
- &id023
|
|
service: persistent_notification.dismiss
|
|
data:
|
|
notification_id: feed_ctc
|
|
action:
|
|
- choose:
|
|
- alias: if consumption goes above 0
|
|
conditions:
|
|
condition: trigger
|
|
id: heater
|
|
sequence:
|
|
- *id021
|
|
- *id022
|
|
- alias: if current consumption alredy above 0
|
|
conditions:
|
|
condition: numeric_state
|
|
entity_id:
|
|
- sensor.ctc_power_immersion_heater_upper
|
|
- sensor.ctc_power_immersion_heater_lower
|
|
above: 0
|
|
sequence:
|
|
- *id021
|
|
- *id022
|
|
default:
|
|
- *id023
|
|
- *id024
|
|
- alias: 'Boiler room: heatpump select circuit for utility meters'
|
|
id: 20a9b1ed-82fb-4207-9e38-47e5483bb15a
|
|
mode: queued
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type: automation_reloaded
|
|
- platform: state
|
|
id: hotwater
|
|
entity_id:
|
|
- sensor.ctc_status
|
|
condition: []
|
|
action:
|
|
- service: select.select_option
|
|
target:
|
|
entity_id:
|
|
- select.heatpump_circuit_daily_energy
|
|
- select.heatpump_circuit_weekly_energy
|
|
- select.heatpump_circuit_monthly_energy
|
|
- select.heatpump_circuit_yearly_energy
|
|
- select.heatpump_circuit_energy
|
|
data:
|
|
option: '{{ ''for_hw'' if is_state(''sensor.ctc_status'', ''5'') else ''for_hs''
|
|
}}'
|
|
- alias: 'E2013: press identify to keep alive'
|
|
id: 47f449a4-9745-4d9f-b9ca-80b681f42fad
|
|
trace:
|
|
stored_traces: 10
|
|
triggers:
|
|
- trigger: time_pattern
|
|
minutes: /10
|
|
conditions: []
|
|
actions:
|
|
- action: button.press
|
|
target:
|
|
entity_id:
|
|
- button.conservatory_slidewindow_1_identify
|
|
- button.conservatory_slidewindow_2_identify
|
|
- button.conservatory_slidewindow_3_identify
|
|
- button.conservatory_ext_door_identify
|
|
- button.terrace_slidewindows_identify
|
|
- alias: 'krisinformation: notify'
|
|
id: 867a2339-c168-4721-8dff-627547df2e02
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- sensor.krisinformation_vasternorrlands_lan
|
|
id: kris
|
|
not_to: '0'
|
|
variables:
|
|
data:
|
|
importance: high
|
|
ttl: 0
|
|
tag: kris
|
|
sticky: true
|
|
visibility: public
|
|
actions:
|
|
- choose:
|
|
- conditions:
|
|
- condition: trigger
|
|
id: kris
|
|
sequence:
|
|
- action: notify.castle
|
|
data:
|
|
title: '{{ state_attr(''sensor.krisinformation_vasternorrlands_lan'', ''alerts'')[0][''alerts'']
|
|
}}'
|
|
message: '[{{ state_attr(''sensor.krisinformation_vasternorrlands_lan'',
|
|
''alerts'')[0][''severity''] }}] {{ state_attr(''sensor.krisinformation_vasternorrlands_lan'',
|
|
''alerts'')[0][''description''] }}'
|
|
- alias: 'lightning: notify'
|
|
id: 2d6264bb-66c5-45c5-9749-ad22b6eec0f5
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- sensor.blitzortung_lightning_counter
|
|
id: lightning
|
|
not_to: '0'
|
|
variables:
|
|
data:
|
|
importance: high
|
|
ttl: 0
|
|
tag: lightning
|
|
sticky: true
|
|
visibility: public
|
|
actions:
|
|
- choose:
|
|
- conditions:
|
|
- condition: trigger
|
|
id: lightning
|
|
- condition: numeric_state
|
|
entity_id: sensor.blitzortung_lightning_distance
|
|
below: 3
|
|
sequence:
|
|
- action: notify.castle
|
|
data:
|
|
title: Blixtnedslag
|
|
message: '{% set direction = [''N'',''NNE'',''NE'',''ENE'',''E'',''ESE'',''SE'',''SSE'',''S'',''SSW'',''SW'',''WSW'',''W'',''WNW'',''NW'',''NNW'',''N'']
|
|
%} {% set degree = states(''sensor.blitzortung_lightning_azimuth'')|float
|
|
%} {% set dir = direction[((degree+11.25)/22.5)|int] %} "Blixtnerslag
|
|
{{ states(''sensor.blitzortung_lightning_distance'')}}km åt {{dir}}"
|
|
|
|
'
|
|
- alias: 'bathroom downstairs: lights'
|
|
id: 2f16522d-300d-4c7f-8a5c-d00d283b9438
|
|
mode: queued
|
|
triggers:
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- trigger: state
|
|
entity_id:
|
|
- binary_sensor.motion_bathroom_downstairs_occupancy
|
|
from: 'off'
|
|
to: 'on'
|
|
- trigger: state
|
|
entity_id:
|
|
- binary_sensor.motion_bathroom_downstairs_occupancy
|
|
from: 'on'
|
|
to: 'off'
|
|
for:
|
|
seconds: 120
|
|
actions:
|
|
- choose:
|
|
- alias: when triggered
|
|
conditions:
|
|
- alias: and motion is detected
|
|
condition: state
|
|
entity_id:
|
|
- binary_sensor.motion_bathroom_downstairs_occupancy
|
|
state: 'on'
|
|
- alias: and we are home (cat's can poop in the dark)
|
|
condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_away
|
|
state: 'off'
|
|
sequence:
|
|
- alias: turn on the lights
|
|
action: light.turn_on
|
|
target:
|
|
entity_id: light.bathroom_downstairs_mirror
|
|
data:
|
|
brightness: 255
|
|
default:
|
|
- action: light.turn_off
|
|
target:
|
|
entity_id: light.bathroom_downstairs_mirror
|
|
- alias: 'Laundry room: Update washer state'
|
|
id: 498fd292-2419-447b-9dec-36d9cbf81a65
|
|
triggers:
|
|
- trigger: state
|
|
id: centrifugate
|
|
entity_id: sensor.washer_state
|
|
to: centrifugate
|
|
for:
|
|
seconds: 10
|
|
- trigger: state
|
|
id: rinsing
|
|
entity_id: sensor.washer_state
|
|
from:
|
|
- 'off'
|
|
- idle
|
|
- centrifugate
|
|
- washing
|
|
to: rinsing
|
|
for:
|
|
seconds: 10
|
|
- trigger: state
|
|
id: 'off'
|
|
entity_id: sensor.washer_state
|
|
to: 'off'
|
|
for:
|
|
seconds: 60
|
|
- trigger: state
|
|
id: washing
|
|
entity_id: sensor.washer_state
|
|
to: washing
|
|
for:
|
|
seconds: 10
|
|
conditions: []
|
|
actions:
|
|
- choose:
|
|
- conditions:
|
|
- condition: trigger
|
|
id: washing
|
|
sequence:
|
|
- action: input_select.select_option
|
|
target:
|
|
entity_id: input_select.washer_state
|
|
data:
|
|
option: washing
|
|
- conditions:
|
|
- condition: trigger
|
|
id: centrifugate
|
|
sequence:
|
|
- action: input_select.select_option
|
|
target:
|
|
entity_id: input_select.washer_state
|
|
data:
|
|
option: centrifugate
|
|
- conditions:
|
|
- condition: trigger
|
|
id: 'off'
|
|
- condition: state
|
|
entity_id: input_select.washer_state
|
|
state:
|
|
- rinsing
|
|
- centrifugate
|
|
sequence:
|
|
- action: input_select.select_option
|
|
target:
|
|
entity_id: input_select.washer_state
|
|
data:
|
|
option: 'off'
|
|
- conditions:
|
|
- condition: trigger
|
|
id: rinsing
|
|
sequence:
|
|
- action: input_select.select_option
|
|
target:
|
|
entity_id: input_select.washer_state
|
|
data:
|
|
option: rinsing
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: sensor.washer_state
|
|
state: washing
|
|
sequence:
|
|
- action: input_select.select_option
|
|
target:
|
|
entity_id: input_select.washer_state
|
|
data:
|
|
option: washing
|
|
- alias: 'Laundry room: Washer notification'
|
|
id: 72a747af-989c-4843-9a35-10793047c0fe
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: input_select.washer_state
|
|
to: 'off'
|
|
from:
|
|
- centrifugate
|
|
- washing
|
|
- rinsing
|
|
conditions: []
|
|
actions:
|
|
- action: notify.family
|
|
data:
|
|
title: Tvättmaskinen
|
|
message: Tvätten är klar
|
|
data:
|
|
tag: laundry
|
|
- alias: 'Laundry room: Dryer'
|
|
id: ed556d71-7706-408f-9223-fda6f14d3768
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: sensor.dryer_state
|
|
to: 'off'
|
|
from: drying
|
|
for:
|
|
seconds: 30
|
|
conditions: []
|
|
actions:
|
|
- action: notify.family
|
|
data:
|
|
title: Torktumlaren
|
|
message: Tvätten är torr
|
|
data:
|
|
tag: laundry
|
|
- alias: 'House: mailbox'
|
|
id: ae403d31-d120-47cb-ba66-ac401b08d8e2
|
|
mode: queued
|
|
trigger:
|
|
- platform: state
|
|
id: flap
|
|
entity_id:
|
|
- binary_sensor.mailbox_flap_contact
|
|
from: 'off'
|
|
to: 'on'
|
|
- platform: state
|
|
id: door
|
|
entity_id:
|
|
- binary_sensor.mailbox_door_contact
|
|
from: 'off'
|
|
to: 'on'
|
|
action:
|
|
- choose:
|
|
- conditions:
|
|
condition: trigger
|
|
id: flap
|
|
sequence:
|
|
- service: input_number.increment
|
|
target:
|
|
entity_id:
|
|
- input_number.mailbox_deliveries
|
|
- choose:
|
|
- conditions:
|
|
condition: numeric_state
|
|
entity_id:
|
|
- input_number.mailbox_deliveries
|
|
above: 1
|
|
sequence:
|
|
- service: notify.family
|
|
data:
|
|
title: Postlådan
|
|
message: 'Mera post, töm postlådan! (lev: {{states(''input_number.mailbox_deliveries'')|int}})'
|
|
data:
|
|
tag: mailbox
|
|
- service: persistent_notification.create
|
|
data:
|
|
message: 'Mera post, töm postlådan! (lev: {{states(''input_number.mailbox_deliveries'')|int}})'
|
|
title: Postlådan
|
|
notification_id: feed_mail
|
|
default:
|
|
- service: notify.family
|
|
data:
|
|
title: Postlådan
|
|
message: Kom och töm mig på post!
|
|
data:
|
|
tag: mailbox
|
|
- service: persistent_notification.create
|
|
data:
|
|
message: Töm postlådan
|
|
title: Postlådan
|
|
notification_id: feed_mail
|
|
- conditions:
|
|
- condition: trigger
|
|
id: door
|
|
sequence:
|
|
- service: input_number.set_value
|
|
target:
|
|
entity_id:
|
|
- input_number.mailbox_deliveries
|
|
data:
|
|
value: 0
|
|
- service: notify.family
|
|
data:
|
|
title: Postlådan
|
|
message: Tack!
|
|
data:
|
|
tag: mailbox
|
|
timeout: 900
|
|
- service: persistent_notification.dismiss
|
|
data:
|
|
notification_id: feed_mail
|
|
- alias: 'House: away mode'
|
|
id: 100921f5-d234-470f-903a-e27a5e51f169
|
|
mode: queued
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type: automation_reloaded
|
|
- platform: state
|
|
entity_id:
|
|
- group.family
|
|
action:
|
|
- alias: Should we active away mode or not
|
|
choose:
|
|
- alias: Turn on
|
|
conditions:
|
|
- not:
|
|
- or:
|
|
- alias: when we are detected as away
|
|
condition: state
|
|
entity_id:
|
|
- group.family
|
|
state: home
|
|
- alias: when guests are detected as away
|
|
condition: state
|
|
entity_id:
|
|
- group.guests
|
|
state: home
|
|
sequence:
|
|
- alias: Turn on away mode
|
|
service: input_boolean.turn_on
|
|
target:
|
|
entity_id: input_boolean.house_mode_away
|
|
default:
|
|
- alias: Turn off away mode
|
|
service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.house_mode_away
|
|
- alias: 'House: bright hallway mode'
|
|
id: d5b4e5d2-06db-456d-baef-32a8942e8deb
|
|
mode: queued
|
|
trigger:
|
|
- platform: event
|
|
event_type: automation_reloaded
|
|
- platform: numeric_state
|
|
id: lightlevel_day
|
|
entity_id:
|
|
- sensor.motion_hallway_downstairs_illuminance
|
|
above: input_number.lightlevel_limit_hallway
|
|
for:
|
|
minutes: 5
|
|
- platform: numeric_state
|
|
id: lightlevel_night
|
|
entity_id:
|
|
- sensor.motion_hallway_downstairs_illuminance
|
|
below: input_number.lightlevel_limit_hallway
|
|
for:
|
|
minutes: 5
|
|
- platform: state
|
|
entity_id:
|
|
- input_number.lightlevel_limit_hallway
|
|
condition: []
|
|
action:
|
|
choose:
|
|
- conditions:
|
|
- condition: numeric_state
|
|
entity_id:
|
|
- sensor.motion_hallway_downstairs_illuminance
|
|
above: input_number.lightlevel_limit_hallway
|
|
sequence:
|
|
- service: input_boolean.turn_on
|
|
target:
|
|
entity_id: input_boolean.house_mode_bright_hallway
|
|
default:
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.house_mode_bright_hallway
|
|
- alias: 'House: bright inside mode'
|
|
id: 44bed364-c081-4720-b8f5-60aaae177d4f
|
|
mode: queued
|
|
trigger:
|
|
- platform: event
|
|
event_type: automation_reloaded
|
|
- platform: state
|
|
entity_id:
|
|
- input_number.sun_elevation_limit
|
|
- platform: numeric_state
|
|
id: sun
|
|
entity_id:
|
|
- sun.sun
|
|
attribute: elevation
|
|
above: input_number.sun_elevation_limit
|
|
- platform: numeric_state
|
|
id: lightlevel_day
|
|
entity_id:
|
|
- sensor.outdoor_illuminance_min
|
|
above: input_number.lightlevel_limit_indoor
|
|
for:
|
|
minutes: 5
|
|
- platform: numeric_state
|
|
id: lightlevel_night
|
|
entity_id:
|
|
- sensor.outdoor_illuminance_min
|
|
below: input_number.lightlevel_limit_indoor
|
|
for:
|
|
minutes: 5
|
|
condition: []
|
|
action:
|
|
choose:
|
|
- conditions:
|
|
- condition: numeric_state
|
|
entity_id:
|
|
- sensor.sun_elevation
|
|
above: input_number.sun_elevation_limit
|
|
- condition: numeric_state
|
|
entity_id:
|
|
- sensor.outdoor_illuminance_min
|
|
above: input_number.lightlevel_limit_indoor
|
|
sequence:
|
|
- service: input_boolean.turn_on
|
|
target:
|
|
entity_id: input_boolean.house_mode_bright_inside
|
|
default:
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.house_mode_bright_inside
|
|
- alias: 'House: daylight mode'
|
|
id: 076988f1-1e78-4cdd-96fd-83ff83431e1c
|
|
mode: queued
|
|
trace:
|
|
stored_traces: 25
|
|
trigger:
|
|
- platform: event
|
|
event_type: automation_reloaded
|
|
- platform: state
|
|
entity_id:
|
|
- input_number.sun_elevation_limit
|
|
- platform: numeric_state
|
|
id: sun_up
|
|
entity_id:
|
|
- sun.sun
|
|
attribute: elevation
|
|
above: input_number.sun_elevation_limit
|
|
- platform: numeric_state
|
|
id: lightlevel_day
|
|
entity_id:
|
|
- sensor.outdoor_illuminance_min
|
|
above: input_number.lightlevel_limit_outdoor
|
|
for:
|
|
minutes: 5
|
|
- platform: numeric_state
|
|
id: lightlevel_night
|
|
entity_id:
|
|
- sensor.outdoor_illuminance_min
|
|
below: input_number.lightlevel_limit_outdoor
|
|
for:
|
|
minutes: 5
|
|
condition: []
|
|
action:
|
|
choose:
|
|
- conditions:
|
|
- condition: numeric_state
|
|
entity_id:
|
|
- sensor.sun_elevation
|
|
above: input_number.sun_elevation_limit
|
|
- condition: numeric_state
|
|
entity_id:
|
|
- sensor.outdoor_illuminance_min
|
|
above: input_number.lightlevel_limit_outdoor
|
|
sequence:
|
|
- service: input_boolean.turn_on
|
|
target:
|
|
entity_id: input_boolean.house_mode_daylight
|
|
default:
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.house_mode_daylight
|
|
- alias: 'House: guest mode'
|
|
id: b480b798-c2f5-4ec9-ab4e-da96fe5590f9
|
|
mode: queued
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type: automation_reloaded
|
|
- platform: state
|
|
id: tracker
|
|
entity_id:
|
|
- group.guests
|
|
action:
|
|
- choose:
|
|
- conditions:
|
|
condition: state
|
|
entity_id:
|
|
- group.guests
|
|
state: home
|
|
sequence:
|
|
- service: input_boolean.turn_on
|
|
target:
|
|
entity_id: input_boolean.house_mode_guests
|
|
default:
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.house_mode_guests
|
|
- alias: 'Manual mode: turn off at defined time'
|
|
id: 624c2596-32a1-44f7-864b-f56728145498
|
|
trigger:
|
|
- platform: time
|
|
id: reset
|
|
at:
|
|
- input_datetime.house_reset_settings
|
|
- input_datetime.house_reset_settings_day
|
|
action:
|
|
choose:
|
|
- conditions:
|
|
- condition: trigger
|
|
id: reset
|
|
sequence:
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id:
|
|
- input_boolean.parking_manual_mode
|
|
- input_boolean.kitchen_manual_mode
|
|
- input_boolean.livingroom_manual_mode
|
|
- input_boolean.hallway_downstairs_manual_mode
|
|
- alias: 'Manual mode: turn off after active for X minutes'
|
|
id: ee354ef8-d169-4b44-ac27-83a19e418111
|
|
trigger:
|
|
- platform: state
|
|
entity_id: input_boolean.hallway_downstairs_manual_mode
|
|
to: 'on'
|
|
for:
|
|
minutes: 60
|
|
action:
|
|
choose:
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: input_boolean.hallway_downstairs_manual_mode
|
|
state: 'on'
|
|
sequence:
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id:
|
|
- input_boolean.hallway_downstairs_manual_mode
|
|
- alias: 'House: sleep mode'
|
|
id: 2c24e58c-fb5f-4b5d-bcf1-6598c26125a1
|
|
mode: queued
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type: automation_reloaded
|
|
- platform: time
|
|
id: time
|
|
at: input_datetime.house_reset_settings
|
|
- platform: state
|
|
id: manual
|
|
entity_id:
|
|
- input_boolean.bedroom_manual_mode
|
|
- input_boolean.kitchen_manual_mode
|
|
- input_boolean.livingroom_manual_mode
|
|
from: 'off'
|
|
to: 'on'
|
|
- platform: state
|
|
entity_id:
|
|
- lock.front_door
|
|
from: locked
|
|
to: unlocked
|
|
- platform: state
|
|
id: phone
|
|
entity_id:
|
|
- sensor.kb2003_charger_type
|
|
from:
|
|
- ac
|
|
- usb
|
|
to: none
|
|
variables:
|
|
anchors:
|
|
- &id025
|
|
service: input_boolean.turn_on
|
|
target:
|
|
entity_id: input_boolean.house_mode_sleep
|
|
- &id026
|
|
service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.house_mode_sleep
|
|
action:
|
|
- choose:
|
|
- conditions:
|
|
condition: trigger
|
|
id: time
|
|
sequence:
|
|
- *id025
|
|
- conditions:
|
|
- condition: and
|
|
conditions:
|
|
- condition: trigger
|
|
id: phone
|
|
- condition: time
|
|
after: 05:00:00
|
|
before: 09:00:00
|
|
sequence:
|
|
- *id026
|
|
- conditions:
|
|
condition: trigger
|
|
id: manual
|
|
sequence:
|
|
- *id026
|
|
default:
|
|
- *id026
|
|
- alias: 'House: workday mode'
|
|
id: b54de7c4-ee5f-497f-8dbc-af5c953bea46
|
|
mode: queued
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type: automation_reloaded
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.workday_today
|
|
action:
|
|
choose:
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: binary_sensor.workday_today
|
|
state: 'on'
|
|
sequence:
|
|
- service: input_boolean.turn_on
|
|
target:
|
|
entity_id: input_boolean.house_mode_workday
|
|
default:
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.house_mode_workday
|
|
- alias: 'Movement: hallway downstairs'
|
|
id: aa2a22c1-e965-4222-9068-f136ac898dd4
|
|
trace:
|
|
stored_traces: 10
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- platform: state
|
|
id: movement
|
|
entity_id:
|
|
- binary_sensor.motion_hallway_downstairs_occupancy
|
|
from: 'off'
|
|
to: 'on'
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.motion_hallway_downstairs_occupancy
|
|
from: 'on'
|
|
to: 'off'
|
|
for:
|
|
minutes: '{{ states(''input_number.hallway_downstairs_timeout'')|int }}'
|
|
condition: []
|
|
action:
|
|
choose:
|
|
- alias: activate movement mode
|
|
conditions:
|
|
- alias: when movement is detected
|
|
condition: trigger
|
|
id: movement
|
|
sequence:
|
|
- alias: turn on helper
|
|
service: input_boolean.turn_on
|
|
target:
|
|
entity_id: input_boolean.hallway_downstairs_movement
|
|
default:
|
|
- alias: turn off helper
|
|
service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.hallway_downstairs_movement
|
|
- alias: 'Nordpool: reload when hung'
|
|
id: a7d69bb8-8f5b-46d2-860e-3bcfb9c2cc2d
|
|
trace:
|
|
stored_traces: 10
|
|
trigger:
|
|
- platform: time_pattern
|
|
hours: '*'
|
|
variables:
|
|
np_update: "{% set np_list = ['sensor.nordpool_se1', 'sensor.nordpool_se2', 'sensor.nordpool_se3',\
|
|
\ 'sensor.nordpool_se4'] %} {% set np_data = namespace(entities=[]) %} {% for\
|
|
\ s in np_list %}\n {% if (as_timestamp(now()) - as_timestamp(states[s].last_updated)\
|
|
\ > 7200) %}\n {% set np_data.entities = np_data.entities + [s] %}\n {%\
|
|
\ endif %}\n{% endfor %} {{ np_data.entities }}\n"
|
|
condition: []
|
|
action:
|
|
- choose:
|
|
- conditions: '{{ np_update is defined and np_update|length>0 }}'
|
|
sequence:
|
|
- service: homeassistant.reload_config_entry
|
|
target:
|
|
entity_id: '{{ np_update }}'
|
|
- service: notify.castle_log
|
|
data:
|
|
title: nordpool
|
|
message: Laddar om {{np_update|map('regex_replace', '^.+_')|join(', ')}}
|
|
- alias: Reload Nordpool after midnight if tomorrow_valid is true
|
|
trigger:
|
|
platform: time
|
|
at: 00:05:00
|
|
variables:
|
|
np_update: "{% set np_list = ['sensor.nordpool_se1', 'sensor.nordpool_se2', 'sensor.nordpool_se3',\
|
|
\ 'sensor.nordpool_se4'] %} {% set np_data = namespace(entities=[]) %} {% for\
|
|
\ s in np_list %}\n {% if (states[s].attributes.tomorrow_valid == true ) %}\n\
|
|
\ {% set np_data.entities = np_data.entities + [s] %}\n {% endif %}\n{%\
|
|
\ endfor %} {{ np_data.entities }}\n"
|
|
action:
|
|
- choose:
|
|
- conditions: '{{ np_update is defined and np_update|length>0 }}'
|
|
sequence:
|
|
- service: homeassistant.reload_config_entry
|
|
target:
|
|
entity_id: '{{ np_update }}'
|
|
- service: notify.castle_log
|
|
data:
|
|
title: nordpool
|
|
message: tomorrow_valid=true, laddar om {{np_update|map('regex_replace',
|
|
'^.+_')|join(', ')}}
|
|
- alias: Flash some lights on driveway motion
|
|
id: 63fe107f-06f0-44ad-b430-e2ff493272f7
|
|
trigger:
|
|
- platform: state
|
|
entity_id: binary_sensor.motion_driveway_occupancy
|
|
from: 'off'
|
|
to: 'on'
|
|
action:
|
|
- alias: when motion detected
|
|
choose:
|
|
- conditions:
|
|
condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_daylight
|
|
state: 'on'
|
|
sequence:
|
|
- service: light.turn_on
|
|
target:
|
|
entity_id: light.floor_lamp
|
|
- delay:
|
|
seconds: 2
|
|
- service: light.turn_off
|
|
target:
|
|
entity_id: light.floor_lamp
|
|
- conditions:
|
|
condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_daylight
|
|
state: 'off'
|
|
sequence:
|
|
- service: light.turn_off
|
|
target:
|
|
entity_id: light.floor_lamp
|
|
- delay:
|
|
seconds: 2
|
|
- service: scene.turn_on
|
|
target:
|
|
entity_id: scene.livingroom_ambience_lights_cozy
|
|
data:
|
|
transition: 1
|
|
- alias: 'House: outdoor lights'
|
|
id: 628f6bc0-9b4a-461f-878f-92b8de65fa7d
|
|
mode: queued
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- scene_reloaded
|
|
- platform: state
|
|
entity_id:
|
|
- input_boolean.house_mode_outside_work
|
|
- platform: state
|
|
id: daylight
|
|
entity_id:
|
|
- input_boolean.house_mode_daylight
|
|
- platform: state
|
|
id: movement
|
|
entity_id: group.motion_parking
|
|
from:
|
|
- 'on'
|
|
- 'off'
|
|
to:
|
|
- 'on'
|
|
- 'off'
|
|
action:
|
|
choose:
|
|
- alias: activate outdoor work mode
|
|
conditions:
|
|
- alias: when outside work mode is on
|
|
condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_outside_work
|
|
state: 'on'
|
|
sequence:
|
|
- alias: activate outside work scene
|
|
service: scene.turn_on
|
|
target:
|
|
entity_id: scene.outdoor_work
|
|
data:
|
|
transition: 2
|
|
- alias: activate outdoor lights
|
|
conditions:
|
|
- alias: when triggered
|
|
condition: trigger
|
|
id: daylight
|
|
- alias: and it turned off
|
|
condition: state
|
|
entity_id: input_boolean.house_mode_daylight
|
|
state: 'off'
|
|
sequence:
|
|
- alias: turn on lights
|
|
service: scene.turn_on
|
|
target:
|
|
entity_id: scene.outdoor_lights_default
|
|
data:
|
|
transition: 5
|
|
- conditions:
|
|
- alias: if daylight is off
|
|
condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_daylight
|
|
state: 'off'
|
|
sequence:
|
|
- choose:
|
|
- conditions:
|
|
- alias: movement is on
|
|
condition: state
|
|
entity_id:
|
|
- group.motion_parking
|
|
state: 'on'
|
|
sequence:
|
|
- alias: turn on movement mode
|
|
service: scene.turn_on
|
|
target:
|
|
entity_id: scene.outdoor_parking_movement
|
|
data:
|
|
transition: 2
|
|
default:
|
|
- alias: turn on default mode
|
|
service: scene.turn_on
|
|
target:
|
|
entity_id: scene.outdoor_parking_default
|
|
data:
|
|
transition: 5
|
|
default:
|
|
- service: light.turn_off
|
|
target:
|
|
entity_id: light.utomhuslampor
|
|
data:
|
|
transition: 5
|
|
- alias: 'Movement: driveway'
|
|
id: c5479364-0da7-4fb2-82ac-53c2e7c5be5c
|
|
trace:
|
|
stored_traces: 10
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- platform: state
|
|
id: movement
|
|
entity_id:
|
|
- binary_sensor.motion_driveway_occupancy
|
|
from: 'off'
|
|
to: 'on'
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.motion_driveway_occupancy
|
|
from: 'on'
|
|
to: 'off'
|
|
for:
|
|
minutes: 1
|
|
condition: []
|
|
action:
|
|
choose:
|
|
- alias: activate movement mode
|
|
conditions:
|
|
- alias: when movement is detected at driveway
|
|
condition: trigger
|
|
id: movement
|
|
sequence:
|
|
- alias: turn on helper
|
|
service: input_boolean.turn_on
|
|
target:
|
|
entity_id: input_boolean.driveway_movement
|
|
default:
|
|
- alias: turn off helper
|
|
service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.driveway_movement
|
|
- alias: 'Movement: barn'
|
|
id: eca6bdb4-acd6-4238-a307-3edaa4ac3bd4
|
|
trace:
|
|
stored_traces: 10
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- platform: state
|
|
id: movement
|
|
entity_id:
|
|
- binary_sensor.motion_barn_occupancy
|
|
from: 'off'
|
|
to: 'on'
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.motion_barn_occupancy
|
|
from: 'on'
|
|
to: 'off'
|
|
for:
|
|
minutes: 1
|
|
condition: []
|
|
action:
|
|
choose:
|
|
- alias: activate movement mode
|
|
conditions:
|
|
- alias: when movement is detected at driveway
|
|
condition: trigger
|
|
id: movement
|
|
sequence:
|
|
- alias: turn on helper
|
|
service: input_boolean.turn_on
|
|
target:
|
|
entity_id: input_boolean.barn_movement
|
|
default:
|
|
- alias: turn off helper
|
|
service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.barn_movement
|
|
- alias: 'Movement: front'
|
|
id: 6a3641d9-0135-407a-8e06-66c3d8115d9e
|
|
trace:
|
|
stored_traces: 10
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- platform: state
|
|
id: movement
|
|
entity_id:
|
|
- binary_sensor.motion_front_occupancy
|
|
from: 'off'
|
|
to: 'on'
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.motion_front_occupancy
|
|
from: 'on'
|
|
to: 'off'
|
|
for:
|
|
minutes: 1
|
|
condition: []
|
|
action:
|
|
choose:
|
|
- alias: activate movement mode
|
|
conditions:
|
|
- alias: when movement is detected at entrence
|
|
condition: trigger
|
|
id: movement
|
|
sequence:
|
|
- alias: turn on helper
|
|
service: input_boolean.turn_on
|
|
target:
|
|
entity_id: input_boolean.front_movement
|
|
default:
|
|
- alias: turn off helper
|
|
service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.front_movement
|
|
- alias: 'Garage: port'
|
|
id: a7711621-6c74-47f5-b04c-b6cd382f673f
|
|
mode: queued
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type: automation_reloaded
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.garage_port_contact
|
|
from: 'on'
|
|
to: 'off'
|
|
- platform: time
|
|
at: '21:00:00'
|
|
condition: []
|
|
variables:
|
|
anchors:
|
|
- &id028
|
|
service: notify.family
|
|
data:
|
|
title: Garaget
|
|
message: Garageporten är öppen!
|
|
data:
|
|
tag: garage
|
|
- service: notify.family
|
|
data:
|
|
title: Garaget
|
|
message: Tack!
|
|
data:
|
|
tag: garage
|
|
timeout: 900
|
|
- &id030
|
|
service: notify.family
|
|
data:
|
|
message: clear_notification
|
|
data:
|
|
tag: garage
|
|
- &id027
|
|
service: persistent_notification.create
|
|
data:
|
|
title: Garaget
|
|
message: Garageporten är öppen!
|
|
notification_id: feed_garage
|
|
- &id029
|
|
service: persistent_notification.dismiss
|
|
data:
|
|
notification_id: feed_garage
|
|
action:
|
|
- choose:
|
|
- conditions:
|
|
- condition: state
|
|
entity_id:
|
|
- binary_sensor.garage_port_contact
|
|
state: 'on'
|
|
- condition: time
|
|
after: '21:00:00'
|
|
sequence:
|
|
- *id027
|
|
- *id028
|
|
default:
|
|
- *id029
|
|
- *id030
|
|
- alias: 'techroom: presence'
|
|
id: 7981014b-9e4b-4e0b-ba5b-a32147cf0e2a
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- platform: state
|
|
id: engage
|
|
entity_id:
|
|
- input_boolean.techroom_movement
|
|
from: 'off'
|
|
to: 'on'
|
|
- platform: state
|
|
entity_id:
|
|
- input_boolean.techroom_movement
|
|
from: 'on'
|
|
to: 'off'
|
|
action:
|
|
choose:
|
|
conditions:
|
|
- condition: or
|
|
conditions:
|
|
- condition: trigger
|
|
id: engage
|
|
- condition: state
|
|
entity_id: input_boolean.techroom_movement
|
|
state: 'on'
|
|
sequence:
|
|
choose:
|
|
conditions:
|
|
condition: state
|
|
entity_id: binary_sensor.tech_monitors
|
|
state: 'off'
|
|
sequence:
|
|
- service: shell_command.monitor_on
|
|
- service: command_line.reload
|
|
- service: shell_command.borg_ambience
|
|
default:
|
|
choose:
|
|
conditions:
|
|
condition: state
|
|
entity_id: binary_sensor.tech_monitors
|
|
state: 'on'
|
|
sequence:
|
|
- service: shell_command.monitor_off
|
|
- service: command_line.reload
|
|
- alias: 'Human: parking'
|
|
id: 99f7a23a-2164-44f5-b021-71405162ed5e
|
|
trace:
|
|
stored_traces: 10
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- platform: state
|
|
id: person
|
|
entity_id:
|
|
- binary_sensor.parking_person_occupancy
|
|
from: 'off'
|
|
to: 'on'
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.parking_person_occupancy
|
|
from: 'on'
|
|
to: 'off'
|
|
for:
|
|
minutes: 1
|
|
condition: []
|
|
action:
|
|
choose:
|
|
- alias: activate detect mode
|
|
conditions:
|
|
- alias: when person is detected on parking
|
|
condition: trigger
|
|
id: person
|
|
sequence:
|
|
- alias: turn on helper
|
|
service: input_boolean.turn_on
|
|
target:
|
|
entity_id: input_boolean.parking_human
|
|
default:
|
|
- alias: turn off helper
|
|
service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.parking_human
|
|
- alias: 'Human: propery'
|
|
id: 0c09b67d-0cf4-4f6f-9ce2-7338d0171090
|
|
trace:
|
|
stored_traces: 10
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- platform: state
|
|
id: person
|
|
entity_id:
|
|
- group.property_humans
|
|
from: 'off'
|
|
to: 'on'
|
|
- platform: state
|
|
entity_id:
|
|
- group.property_humans
|
|
from: 'on'
|
|
to: 'off'
|
|
for:
|
|
minutes: 1
|
|
condition: []
|
|
action:
|
|
choose:
|
|
- alias: activate detect mode
|
|
conditions:
|
|
- alias: when person is detected somewhere
|
|
condition: trigger
|
|
id: person
|
|
sequence:
|
|
- alias: turn on helper
|
|
service: input_boolean.turn_on
|
|
target:
|
|
entity_id: input_boolean.property_human
|
|
default:
|
|
- alias: turn off helper
|
|
service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.property_human
|
|
- alias: Rat trap
|
|
id: 6fb0de3f-e185-4a95-ab77-ca3215f6dac1
|
|
triggers:
|
|
trigger: state
|
|
entity_id:
|
|
- binary_sensor.rat_trap_2_contact
|
|
- binary_sensor.rat_trap_3_contact
|
|
from: 'off'
|
|
to: 'on'
|
|
conditions:
|
|
condition: template
|
|
value_template: '{% set trap = trigger.entity_id.split(''.'')[1].replace(''_contact'',
|
|
'''') %} {{ is_state(''input_boolean.''+trap+''_armed'', ''on'') }}
|
|
|
|
'
|
|
actions:
|
|
- action: counter.increment
|
|
entity_id:
|
|
- counter.rat_trap
|
|
- action: input_boolean.turn_off
|
|
data_template:
|
|
entity_id: input_boolean.{{ trigger.entity_id.split('.')[1].replace('_contact',
|
|
'') }}_armed
|
|
- action: notify.family
|
|
data_template:
|
|
title: Råttfångarn
|
|
message: "{% set mapper = {\n 'binary_sensor.rat_trap_1' : 'krypgrunden',\n\
|
|
\ 'binary_sensor.rat_trap_2_contact' : 'garderoben nere',\n 'binary_sensor.rat_trap_3_contact'\
|
|
\ : 'väggen uppe'\n} %} Råttjävul fångad i {{ mapper[trigger.entity_id] }}!\
|
|
\ (Fångade hittills: {{ states('counter.rat_trap') }})\n"
|
|
data:
|
|
tag: rat_trap
|
|
sticky: true
|
|
- alias: 'SSO: faultcode'
|
|
id: 46d44938-1a8c-43df-9ef5-9d36d424bb95
|
|
mode: queued
|
|
trace:
|
|
stored_traces: 10
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- sensor.ferroamp_xl28_sso_east_32_faultcode
|
|
- sensor.ferroamp_xl28_sso_22010644_faultcode
|
|
- sensor.ferroamp_xl28_sso_21090039_faultcode
|
|
- sensor.ferroamp_xl28_sso_21090135_faultcode
|
|
- sensor.ferroamp_xl28_sso_21090071_faultcode
|
|
- sensor.ferroamp_xl28_sso_west_32_faultcode
|
|
not_from:
|
|
- none
|
|
- unknown
|
|
- unavailable
|
|
- '400'
|
|
not_to:
|
|
- none
|
|
- unknown
|
|
- unavailable
|
|
- '400'
|
|
action:
|
|
choose:
|
|
- conditions: '{{ trigger.to_state.state|int > 0 }}'
|
|
sequence:
|
|
- service: notify.castle_log
|
|
data:
|
|
title: Ferroamp SSO
|
|
message: "{% set f = namespace(errors=[]) %} {% for a in trigger.to_state.attributes|reject('in',\
|
|
\ ['icon', 'friendly_name']) %}\n {% set f.errors = f.errors + [trigger.to_state.attributes[a]]\
|
|
\ %}\n{% endfor %} {{trigger.to_state.name}} rapporterar felkod: {{trigger.to_state.state}}\
|
|
\ ({{f.errors|join('| ')}})\n"
|
|
default:
|
|
- service: notify.castle_log
|
|
data:
|
|
title: Ferroamp SSO
|
|
message: '{{trigger.to_state.name}} rapporterar normalt läge igen
|
|
|
|
'
|
|
- alias: 'Garage: handle stereo'
|
|
id: 7edf8e18-0ec4-44cb-9d03-dc49c0fd7a0c
|
|
mode: queued
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type: automation_reloaded
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.garage_port_contact
|
|
from:
|
|
- 'on'
|
|
- 'off'
|
|
to:
|
|
- 'on'
|
|
- 'off'
|
|
- platform: state
|
|
id: no_motion
|
|
entity_id: binary_sensor.motion_garage_occupancy
|
|
from: 'on'
|
|
to: 'off'
|
|
for:
|
|
minutes: 15
|
|
condition: []
|
|
action:
|
|
- choose:
|
|
- alias: turn on the stereo
|
|
conditions:
|
|
- alias: if the port is open
|
|
condition: state
|
|
entity_id:
|
|
- binary_sensor.garage_port_contact
|
|
state: 'on'
|
|
sequence:
|
|
- alias: turn on the stereo
|
|
service: switch.turn_on
|
|
target:
|
|
entity_id: switch.garage_plug
|
|
- alias: turn off the stereo
|
|
conditions:
|
|
- alias: if the port is closed
|
|
condition: state
|
|
entity_id:
|
|
- binary_sensor.garage_port_contact
|
|
state: 'off'
|
|
- alias: and the stereo is on
|
|
condition: state
|
|
entity_id: switch.garage_plug
|
|
state: 'on'
|
|
- alias: and no motion has been detected for a while
|
|
condition: state
|
|
entity_id: binary_sensor.motion_garage_occupancy
|
|
state: 'off'
|
|
for:
|
|
minutes: 15
|
|
sequence:
|
|
- alias: turn off the stereo
|
|
service: switch.turn_off
|
|
target:
|
|
entity_id: switch.garage_plug
|
|
default:
|
|
- alias: nothing to do
|
|
delay:
|
|
milliseconds: 1
|
|
- alias: 'Hallway upstairs: terrace door'
|
|
id: 69068a0a-fdf1-4601-b8a8-cd9e8deec8f6
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.terrace_door_contact
|
|
for: 00:05:00
|
|
- platform: state
|
|
entity_id:
|
|
- sensor.terrace_temperature
|
|
- sensor.bedroom_temperature
|
|
action:
|
|
choose:
|
|
- alias: when triggered
|
|
conditions:
|
|
- alias: and the door has been open for a while
|
|
condition: state
|
|
entity_id:
|
|
- binary_sensor.terrace_door_contact
|
|
state: 'on'
|
|
for: 00:05:00
|
|
- alias: and whenever the temperature getting...
|
|
condition: or
|
|
conditions:
|
|
- alias: too cold
|
|
condition: template
|
|
value_template: '{{ ((states("sensor.bedroom_temperature")|float(0) - states("sensor.terrace_temperature")|float(0))
|
|
> 4) and states("sensor.bedroom_temperature")|float(0) < 19 }}'
|
|
- alias: too warm
|
|
condition: template
|
|
value_template: '{{ (states("sensor.bedroom_temperature")|float(0) < states("sensor.terrace_temperature")|float(0))
|
|
and states("sensor.bedroom_temperature")|float(0) > 19 }}'
|
|
sequence:
|
|
- alias: send a notification
|
|
service: notify.family
|
|
data:
|
|
title: Uterummet uppe
|
|
message: 'Dags att stänga dörren (inne: {{ states("sensor.bedroom_temperature")|float(0)
|
|
}}C ute: {{ states("sensor.terrace_temperature")|float(0) }}C)'
|
|
- alias: test multiple remotes
|
|
id: 64070baf-8273-4617-b223-4295f9e1db5b
|
|
mode: queued
|
|
trace:
|
|
stored_traces: 20
|
|
trigger:
|
|
- platform: time_pattern
|
|
hours: '*'
|
|
- platform: state
|
|
id: remote
|
|
entity_id: sensor.bedroom_remote_wall_action
|
|
action:
|
|
- service: system_log.write
|
|
data:
|
|
message: 'trigger: {{ trigger }}'
|
|
- alias: 'waze: announce arrival time'
|
|
id: 9d40e5cb-f8fb-45e3-87d8-dd848b670bb9
|
|
trace:
|
|
stored_traces: 10
|
|
trigger:
|
|
- platform: zone
|
|
entity_id:
|
|
- person.bella
|
|
zone: zone.hemmets_hus
|
|
event: leave
|
|
- platform: zone
|
|
entity_id:
|
|
- person.linus
|
|
zone: zone.norra_berget
|
|
event: leave
|
|
- platform: zone
|
|
entity_id:
|
|
- person.bella
|
|
zone: zone.hemmets_hus
|
|
event: enter
|
|
variables:
|
|
event: '{{ ''lämnade'' if trigger.event == ''leave'' else ''kom fram till'' }}'
|
|
person: '{{ trigger.to_state.attributes.friendly_name }}'
|
|
sensor: sensor.{{trigger.to_state.attributes.id}}_waze_travel_time
|
|
zone: '{{ trigger.zone.attributes.friendly_name }}'
|
|
action:
|
|
- if: '{{ trigger.event == ''leave'' }}'
|
|
then:
|
|
- variables:
|
|
arrival: '{% set t = states(sensor)|int %} {{ (now().timestamp() + (t*60))
|
|
| timestamp_custom(''%H:%M'') }}
|
|
|
|
'
|
|
- service: notify.castle_log
|
|
data:
|
|
title: Resa
|
|
message: '{{person}} {{event}} {{zone}} (kommer vara hemma ungefär {{arrival}})'
|
|
else:
|
|
- service: notify.castle_log
|
|
data:
|
|
title: Resa
|
|
message: '{{person}} {{event}} {{zone}}'
|
|
- alias: 'Techroom: ups changed status'
|
|
id: 811aa378-4a4e-4b52-a63f-ed63ea9a4172
|
|
mode: queued
|
|
trace:
|
|
stored_traces: 10
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: sensor.techups_status
|
|
not_to:
|
|
- unknown
|
|
- unavailable
|
|
not_from:
|
|
- unknown
|
|
- unavailable
|
|
actions:
|
|
- action: notify.castle
|
|
data:
|
|
title: UPS teknikrum
|
|
message: 'Status: {{states(''sensor.techups_status'')}}'
|
|
- alias: Vac-it Ralph (uppe)
|
|
id: c5ae7db7-0bf6-4cd9-99fc-797126b13efd
|
|
trace:
|
|
stored_traces: 10
|
|
triggers:
|
|
- trigger: time
|
|
id: start_upstairs
|
|
at: input_datetime.time_vacuum_upstairs
|
|
- trigger: template
|
|
id: start_upstairs_notif
|
|
value_template: '{{ now().strftime(''%H:%M:%S'') == (state_attr(''input_datetime.time_vacuum_upstairs'',
|
|
''timestamp'')|as_datetime - timedelta(minutes=15)).strftime(''%H:%M:%S'') }}'
|
|
condition: []
|
|
variables:
|
|
anchors:
|
|
- &id031
|
|
action: notify.family
|
|
data:
|
|
title: Vac-it Ralph
|
|
message: Dags för städning om 15min!
|
|
data:
|
|
tag: vacuum_ralph
|
|
timeout: 900
|
|
actions:
|
|
choose:
|
|
- alias: if we got guests at home
|
|
conditions:
|
|
- condition: state
|
|
entity_id: input_boolean.house_mode_guests
|
|
state: 'on'
|
|
sequence: []
|
|
- alias: decide if we want to do something
|
|
conditions:
|
|
- condition: and
|
|
conditions:
|
|
- alias: triggered by start time
|
|
condition: trigger
|
|
id:
|
|
- start_upstairs_notif
|
|
- start_upstairs
|
|
- alias: and weekday is on schedule
|
|
condition: time
|
|
weekday:
|
|
- mon
|
|
- wed
|
|
- fri
|
|
sequence:
|
|
- variables:
|
|
trigger: '{{ trigger.id }}'
|
|
- alias: choose what to do
|
|
choose:
|
|
- alias: if heads up was triggered
|
|
conditions: '{{ trigger == ''start_upstairs_notif'' }}'
|
|
sequence:
|
|
- *id031
|
|
- alias: if actual start time was triggered
|
|
conditions: '{{ trigger == ''start_upstairs'' }}'
|
|
sequence:
|
|
alias: start to clean
|
|
action: vacuum.start
|
|
target:
|
|
entity_id:
|
|
- vacuum.vac_it_ralph
|
|
- alias: Vac-it Ralph - disable map when not running
|
|
id: e7961fc1-6cee-4ffe-936c-8c49fc49642b
|
|
trace:
|
|
stored_traces: 10
|
|
mode: restart
|
|
triggers:
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- trigger: state
|
|
entity_id: vacuum.vac_it_ralph
|
|
condition: []
|
|
actions:
|
|
- action: "{% if states('vacuum.vac_it_ralph') in [\"unavailable\", \"unknown\"\
|
|
, \"docked\"] %}\n camera.turn_off\n{% else %}\n camera.turn_on\n{% endif\
|
|
\ %}\n"
|
|
target:
|
|
entity_id: camera.xiaomi_cloud_map_extractor
|
|
- alias: Vac-it Ralph - notify on error
|
|
id: 69b93815-b673-4bff-8e86-68c9586c12f9
|
|
trace:
|
|
stored_traces: 10
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- vacuum.vac_it_ralph
|
|
not_from: unavailable
|
|
to: error
|
|
actions:
|
|
- action: notify.family
|
|
data:
|
|
title: Vac-it Ralph
|
|
message: 'Error: {{state_attr(''vacuum.vac_it_ralph'', ''error'')}}'
|
|
data:
|
|
tag: vacuum_ralph
|
|
- alias: 'bedroom: air cleaner'
|
|
id: 02d47a86-cef3-435a-8471-c07e0b0fb8a3
|
|
mode: queued
|
|
triggers:
|
|
- trigger: homeassistant
|
|
event: start
|
|
- trigger: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- trigger: state
|
|
entity_id:
|
|
- input_boolean.house_mode_away
|
|
- input_datetime.bedroom_vent_on
|
|
- input_datetime.bedroom_vent_off
|
|
- trigger: time
|
|
at:
|
|
- input_datetime.bedroom_vent_on
|
|
- input_datetime.bedroom_vent_off
|
|
actions:
|
|
choose:
|
|
- conditions:
|
|
- condition: time
|
|
before: input_datetime.bedroom_vent_off
|
|
after: input_datetime.bedroom_vent_on
|
|
sequence:
|
|
- action: fan.set_percentage
|
|
target:
|
|
entity_id: fan.bedroom_starkvind
|
|
data:
|
|
percentage: 55
|
|
- conditions:
|
|
- condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_away
|
|
state: 'on'
|
|
sequence:
|
|
- action: fan.set_percentage
|
|
target:
|
|
entity_id: fan.bedroom_starkvind
|
|
data:
|
|
percentage: 55
|
|
default:
|
|
- action: fan.set_percentage
|
|
target:
|
|
entity_id: fan.bedroom_starkvind
|
|
data:
|
|
percentage: 11
|
|
- alias: 'House: water leak'
|
|
id: 995c171e-c998-42b6-9599-d5395bcca1d8
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- platform: state
|
|
id: sensor
|
|
entity_id:
|
|
- binary_sensor.water_sink_water_leak
|
|
- binary_sensor.water_wardrobe_water_leak
|
|
- binary_sensor.water_bedroom_ac_water_leak
|
|
from: 'off'
|
|
to: 'on'
|
|
variables:
|
|
data: &id032
|
|
importance: high
|
|
ttl: 0
|
|
tag: water_leak
|
|
sticky: true
|
|
visibility: public
|
|
msg: "{% if trigger is defined and has_value('trigger.entity_id') %}\n {% set\
|
|
\ e = trigger.entity_id %}\n{% else %}\n {% set e = (\n [\n 'binary_sensor.water_sink_water_leak',\
|
|
\ \n 'binary_sensor.water_wardrobe_water_leak', \n 'binary_sensor.water_bedroom_ac_water_leak'\n\
|
|
\ ]\n | select('is_state', 'on')\n | list)\n %}\n{% endif %} {% set\
|
|
\ mapper = {\n 'binary_sensor.water_sink_water_leak' : ' under diskbänken',\n\
|
|
\ 'binary_sensor.water_wardrobe_water_leak' : ' i garderoben nere',\n 'binary_sensor.water_bedroom_ac_water_leak':\
|
|
\ ', tanken till AC i sovrummet är full'\n} %} Vatten upptäckt{{mapper[e[0]]\
|
|
\ if e else ' någonstans'}}!\n"
|
|
action:
|
|
choose:
|
|
conditions:
|
|
condition: or
|
|
conditions:
|
|
- condition: trigger
|
|
id: sensor
|
|
- condition: state
|
|
entity_id:
|
|
- binary_sensor.water_sink_water_leak
|
|
- binary_sensor.water_wardrobe_water_leak
|
|
- binary_sensor.water_bedroom_ac_water_leak
|
|
state: 'on'
|
|
match: any
|
|
sequence:
|
|
- service: notify.family
|
|
data_template:
|
|
title: Vattenläcka!
|
|
message: '{{msg}}'
|
|
data: *id032
|
|
- service: notify.castle
|
|
data:
|
|
title: Vattenläcka!
|
|
message: '{{msg}}'
|
|
- alias: 'Water meter: flow'
|
|
id: 191c227f-0822-4457-b917-539d9345eb48
|
|
triggers:
|
|
- trigger: numeric_state
|
|
entity_id:
|
|
- sensor.watermeter_water_usage_current
|
|
above: 0
|
|
for:
|
|
minutes: 15
|
|
id: flow_15
|
|
variables:
|
|
data: &id033
|
|
importance: high
|
|
ttl: 0
|
|
tag: water_leak
|
|
sticky: true
|
|
visibility: public
|
|
actions:
|
|
- choose:
|
|
- conditions:
|
|
- condition: trigger
|
|
id: flow_15
|
|
sequence:
|
|
- action: notify.family
|
|
data_template:
|
|
title: Vattenflöde!
|
|
message: Vatten har runnit i över 15min (flöde {{states('sensor.watermeter_water_usage_current')|round(2)}}L/min)
|
|
data: *id033
|
|
- action: notify.castle
|
|
data:
|
|
title: Vattenflöde!
|
|
message: Vatten har runnit i över 15min (flöde {{states('sensor.watermeter_water_usage_current')|round(2)}}L/min)
|
|
- alias: 'Laundry room: window lights'
|
|
id: 3b83edcb-50e2-4af8-8808-5190199d98da
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- scene_reloaded
|
|
- platform: state
|
|
entity_id:
|
|
- input_boolean.house_mode_bright_inside
|
|
- platform: time
|
|
at:
|
|
- input_datetime.time_goodmorning
|
|
- input_datetime.time_goodnight
|
|
- platform: state
|
|
id: night
|
|
entity_id:
|
|
- input_boolean.house_mode_sleep
|
|
from: 'off'
|
|
to: 'on'
|
|
condition: []
|
|
action:
|
|
choose:
|
|
- conditions:
|
|
- condition: state
|
|
entity_id:
|
|
- input_boolean.house_mode_bright_inside
|
|
state: 'on'
|
|
sequence:
|
|
- &id034
|
|
service: light.turn_off
|
|
target:
|
|
entity_id:
|
|
- light.laundry_room_window
|
|
data:
|
|
transition: 5
|
|
- conditions:
|
|
- condition: or
|
|
conditions:
|
|
- condition: and
|
|
conditions:
|
|
- condition: time
|
|
after: input_datetime.time_goodmorning
|
|
before: input_datetime.time_goodnight
|
|
sequence:
|
|
- service: scene.turn_on
|
|
target:
|
|
entity_id:
|
|
- scene.laundry_room_window_lights_cozy
|
|
data:
|
|
transition: 5
|
|
default:
|
|
- *id034
|
|
- alias: 'workday: linus'
|
|
id: 842ed6ce-287d-4156-8b36-1040f1265f12
|
|
trace:
|
|
stored_traces: 10
|
|
trigger:
|
|
- platform: homeassistant
|
|
event: start
|
|
- platform: event
|
|
event_type:
|
|
- automation_reloaded
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.workday_today
|
|
- binary_sensor.vacation_linus
|
|
condition: []
|
|
action:
|
|
- choose:
|
|
- conditions:
|
|
- condition: or
|
|
conditions:
|
|
- condition: state
|
|
entity_id: binary_sensor.vacation_linus
|
|
state: 'on'
|
|
- condition: state
|
|
entity_id: binary_sensor.workday_today
|
|
state: 'off'
|
|
sequence:
|
|
- service: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.workday_linus
|
|
default:
|
|
- service: input_boolean.turn_on
|
|
target:
|
|
entity_id: input_boolean.workday_linus
|
|
- alias: 'Z2M: device leave notification'
|
|
id: 71e990e2-1f77-4985-9b7b-76dc9750d17a
|
|
trace:
|
|
stored_traces: 10
|
|
trigger:
|
|
- platform: mqtt
|
|
topic: zigbee2mqtt/bridge/event
|
|
payload: device_leave
|
|
value_template: '{{ value_json.type}}'
|
|
condition: []
|
|
action:
|
|
- wait_for_trigger:
|
|
- platform: mqtt
|
|
topic: zigbee2mqtt/bridge/event
|
|
payload: device_joined
|
|
value_template: '{{ value_json.type}}'
|
|
timeout:
|
|
hours: 0
|
|
minutes: 1
|
|
seconds: 0
|
|
milliseconds: 0
|
|
- if:
|
|
- condition: template
|
|
value_template: '{{ wait.trigger is none }}'
|
|
then:
|
|
- service: notify.castle
|
|
data:
|
|
title: Zigbee2MQTT
|
|
message: '{{ now().strftime(''%H:%M:%S'') }} - Z2M tappade kontakten med {{
|
|
trigger.payload_json.data.friendly_name }}.'
|
|
- id: zigbee2mqtt_create_notification_on_successful_interview
|
|
alias: Zigbee Device Joined Notification
|
|
triggers:
|
|
trigger: mqtt
|
|
topic: zigbee2mqtt/bridge/event
|
|
conditions:
|
|
condition: template
|
|
value_template: '{{trigger.payload_json.type == "device_interview" and trigger.payload_json.data.status
|
|
== "successful" and trigger.payload_json.data.supported}}'
|
|
actions:
|
|
- action: persistent_notification.create
|
|
data_template:
|
|
title: Device joined the Zigbee2MQTT network
|
|
message: 'Name: {{trigger.payload_json.data.friendly_name}}, Vendor: {{trigger.payload_json.data.definition.vendor}},
|
|
Model: {{trigger.payload_json.data.definition.model}}, Description: {{trigger.payload_json.data.definition.description}}'
|
|
- id: zigbee2mqtt_update_devices_list
|
|
alias: Update Zigbee Devices List
|
|
description: ''
|
|
triggers:
|
|
- trigger: mqtt
|
|
topic: zigbee2mqtt/bridge/event
|
|
- trigger: mqtt
|
|
topic: zigbee2mqtt/bridge/response/device/rename
|
|
- trigger: homeassistant
|
|
event: start
|
|
condition: []
|
|
actions:
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
milliseconds: 0
|
|
- action: input_select.set_options
|
|
metadata: {}
|
|
data:
|
|
options: "{%- set find_integration = 'mqtt' %} {%- set devices = states | map(attribute='entity_id')\
|
|
\ | map('device_id') | unique | reject('eq',None) | list %} {%- set ns = namespace(entities\
|
|
\ = []) %} {%- for device in devices if device_attr(device, 'identifiers')\
|
|
\ %}\n {%- set ids = device_attr(device, 'identifiers') | list | first %}\n\
|
|
\ {%- if ids and ids | length == 2 and ids[0] == find_integration and \"\
|
|
zigbee2mqtt\" in ids[1] %}\n {% set names = device_attr(device, 'name').split('\\\
|
|
n') | list %}\n {%- set ns.entities = ns.entities + names %}\n {%- endif\
|
|
\ %}\n{%- endfor %} {{ ns.entities}}\n"
|
|
target:
|
|
entity_id:
|
|
- input_select.zigbee2mqtt_old_name_select
|
|
- input_select.zigbee2mqtt_remove_select
|
|
- action: input_text.set_value
|
|
metadata: {}
|
|
data:
|
|
value: ''
|
|
target:
|
|
entity_id: input_text.zigbee2mqtt_new_name
|
|
mode: single
|
|
- alias: Zucky Stardust (nere)
|
|
id: 574e8534-e0c3-47b4-b731-15ed8e5e92be
|
|
trace:
|
|
stored_traces: 10
|
|
trigger:
|
|
- platform: time
|
|
id: start_downstairs
|
|
at: input_datetime.time_vacuum_downstairs
|
|
- platform: template
|
|
id: start_downstairs_notif
|
|
value_template: '{{ now().strftime(''%H:%M:%S'') == (state_attr(''input_datetime.time_vacuum_downstairs'',
|
|
''timestamp'')|as_datetime - timedelta(minutes=15)).strftime(''%H:%M:%S'') }}'
|
|
condition: []
|
|
variables:
|
|
anchors:
|
|
- &id035
|
|
service: notify.family
|
|
data:
|
|
title: Zucky Stardust
|
|
message: Dags för städning om 15min!
|
|
data:
|
|
tag: vacuum_zucky
|
|
timeout: 900
|
|
action:
|
|
choose:
|
|
- alias: if we got guests at home
|
|
conditions:
|
|
- condition: state
|
|
entity_id: input_boolean.house_mode_guests
|
|
state: 'on'
|
|
sequence: []
|
|
- alias: decide if we want to do something
|
|
conditions:
|
|
- condition: and
|
|
conditions:
|
|
- alias: triggered by start time
|
|
condition: trigger
|
|
id:
|
|
- start_downstairs_notif
|
|
- start_downstairs
|
|
- alias: and weekday is on schedule
|
|
condition: time
|
|
weekday:
|
|
- mon
|
|
- wed
|
|
- fri
|
|
sequence:
|
|
- variables:
|
|
trigger: '{{ trigger.id }}'
|
|
- alias: choose what to do
|
|
choose:
|
|
- alias: if heads up was triggered
|
|
conditions: '{{ trigger == ''start_downstairs_notif'' }}'
|
|
sequence:
|
|
- *id035
|
|
- alias: if actual start time was triggered
|
|
conditions: '{{ trigger == ''start_downstairs'' }}'
|
|
sequence:
|
|
alias: start to clean
|
|
service: vacuum.start
|
|
target:
|
|
entity_id:
|
|
- vacuum.zucky_stardust
|