[ { "id": "a86036e6-5023-4298-b809-defcbb4d6df9", "automation": "- id: a86036e6-5023-4298-b809-defcbb4d6df9\n alias: LIDL button play area\n mode: restart\n triggers:\n - alias: Play area LIDL button pressed\n trigger: state\n entity_id: event.knop_speelhoek_action\n not_from: unavailable\n variables:\n event: '{{ trigger.to_state.attributes.event_type | default(''unknown'', true)\n }}'\n actions:\n - alias: Which click type\n choose:\n - conditions:\n - alias: Short\n condition: template\n value_template: '{{ event == ''on'' }}'\n sequence:\n - alias: toggle light\n action: light.toggle\n target:\n entity_id: light.groep_speelhoek\n - conditions:\n - alias: Double\n condition: template\n value_template: '{{ event == ''off'' }}'\n sequence:\n - alias: Toggle bookcase light\n action: light.toggle\n target:\n entity_id: light.boekenkast", "config": [ { "name": "Play area LIDL button", "room": "play_area", "type": "event", "id": { "entity_id": "event.knop_speelhoek_action", "device_id": null } }, { "name": "Play area light group", "room": "play_area", "type": "light", "id": { "entity_id": "light.groep_speelhoek", "device_id": null } }, { "name": "Bookcase light", "room": "play_area", "type": "light", "id": { "entity_id": "light.boekenkast", "device_id": null } }, { "name": "Groep", "room": null, "type": "light", "id": { "entity_id": "light.groep_", "device_id": null } } ] }, { "id": "3b350cdb-4a8e-4ce9-b239-fc2e329f931d", "automation": "- id: 3b350cdb-4a8e-4ce9-b239-fc2e329f931d\n alias: Activate Guest Mode when Guest Wifi is used\n triggers:\n - trigger: state\n entity_id: sensor.guest_wifi_active\n to: null\n id: 'on'\n - trigger: state\n entity_id: sensor.guest_wifi_active\n to: '0'\n for:\n hours: 2\n id: 'off'\n conditions:\n - \"{{\\n trigger.id == 'off'\\n or\\n (\\n trigger.to_state.state | is_number\\n\\\n \\ and trigger.from_state.state | is_number\\n and trigger.to_state.state\\\n \\ > trigger.from_state.state\\n )\\n}}\\n\"\n actions:\n - alias: Toggle guest mode input boolean\n action: input_boolean.turn_{{ trigger.id }}\n target:\n entity_id: input_boolean.gast\n - if: '{{ trigger.id == ''on'' }}'\n then:\n - variables:\n added: \"{{\\n trigger.to_state.attributes.names\\n | reject('in', trigger.from_state.attributes.names)\\n\\\n \\ | list\\n}}\\n\"\n - alias: Notify about new guests\n repeat:\n for_each: ' {{ added }}'\n sequence:\n - alias: Trigger guest mode notification\n action: script.turn_on\n target:\n entity_id: script.guest_mode_sensor\n data:\n variables:\n guest: ' {{ repeat.item }}'", "config": [ { "name": "Guest WiFi active sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.guest_wifi_active", "device_id": null } }, { "name": "Guest mode input boolean", "room": null, "type": "input_boolean", "id": { "entity_id": "input_boolean.gast", "device_id": null } }, { "name": "Guest mode sensor script", "room": null, "type": "script", "id": { "entity_id": "script.guest_mode_sensor", "device_id": null } } ] }, { "id": "'1718219154509'", "automation": "- id: '1718219154509'\n alias: Luchtreiniger Slaapkamer\n triggers:\n - trigger: time\n at: '21:30:00'\n id: time\n - trigger: state\n entity_id:\n - sensor.house_mode\n to: Slapen\n id: sleep_time\n - trigger: state\n entity_id:\n - sensor.house_mode\n from: Slapen\n id: no_more_sleep_time\n - trigger: state\n entity_id:\n - sensor.luchtreiniger_slaapkamer_air_quality\n not_to:\n - excellent\n - unknown\n id: air_quality\n - trigger: state\n entity_id:\n - sensor.luchtreiniger_slaapkamer_air_quality\n to: excellent\n id: air_quality\n for:\n minutes: 5\n - trigger: time_pattern\n hours: /1\n id: quality_check\n actions:\n - choose:\n - conditions:\n - condition: trigger\n id:\n - air_quality\n - sleep_time\n - quality_check\n - condition: state\n entity_id: sensor.house_mode\n state: Slapen\n - condition: not\n conditions:\n - condition: state\n entity_id: sensor.luchtreiniger_slaapkamer_air_quality\n state: excellent\n sequence:\n - alias: Turn on bedroom air purifier at low speed for sleep mode\n action: fan.turn_on\n data:\n percentage: 11\n target:\n entity_id: fan.luchtreiniger_slaapkamer\n - alias: Turn off bedroom air purifier LED for sleep\n action: switch.turn_off\n target:\n entity_id: switch.luchtreiniger_slaapkamer_led_enable\n - conditions:\n - condition: trigger\n id:\n - time\n - air_quality\n - condition: time\n after: '21:30'\n - condition: not\n conditions:\n - condition: state\n entity_id: sensor.luchtreiniger_slaapkamer_air_quality\n state: excellent\n - condition: numeric_state\n entity_id: zone.home\n above: 0\n sequence:\n - alias: Turn on bedroom air purifier in auto mode\n action: fan.turn_on\n data:\n preset_mode: auto\n target:\n entity_id: fan.luchtreiniger_slaapkamer\n - conditions:\n - condition: trigger\n id:\n - air_quality\n - sleep_time\n - no_more_sleep_time\n - condition: or\n conditions:\n - condition: trigger\n id:\n - no_more_sleep_time\n - condition: and\n conditions:\n - condition: state\n entity_id: sensor.house_mode\n state: Slapen\n - condition: state\n entity_id: sensor.luchtreiniger_slaapkamer_air_quality\n state: excellent\n for:\n minutes: 5\n sequence:\n - alias: Turn off bedroom air purifier when air quality is excellent\n action: fan.turn_off\n target:\n entity_id: fan.luchtreiniger_slaapkamer\n - alias: Turn on bedroom air purifier LED when stopping\n action: switch.turn_on\n target:\n entity_id: switch.luchtreiniger_slaapkamer_led_enable", "config": [ { "name": "House mode sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.house_mode", "device_id": null } }, { "name": "Bedroom air purifier air quality", "room": "bedroom", "type": "sensor", "id": { "entity_id": "sensor.luchtreiniger_slaapkamer_air_quality", "device_id": null } }, { "name": "Bedroom air purifier fan", "room": "bedroom", "type": "fan", "id": { "entity_id": "fan.luchtreiniger_slaapkamer", "device_id": null } }, { "name": "Bedroom air purifier LED switch", "room": "bedroom", "type": "switch", "id": { "entity_id": "switch.luchtreiniger_slaapkamer_led_enable", "device_id": null } }, { "name": "Home zone", "room": null, "type": "zone", "id": { "entity_id": "zone.home", "device_id": null } } ] }, { "id": "06666ef4-abec-4f74-8282-1cf575c64c8f", "automation": "- id: 06666ef4-abec-4f74-8282-1cf575c64c8f\n alias: Turn on light based on trapdoor attic\n triggers:\n - trigger: state\n entity_id: binary_sensor.vlieringluik_contact\n from:\n - 'on'\n - 'off'\n to:\n - 'on'\n - 'off'\n actions:\n - alias: Turn on light\n action: light.turn_{{ trigger.to_state.state }}\n target:\n entity_id: light.vliering_led", "config": [ { "name": "Attic trapdoor contact sensor", "room": "attic", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.vlieringluik_contact", "device_id": null } }, { "name": "Attic LED light", "room": "attic", "type": "light", "id": { "entity_id": "light.vliering_led", "device_id": null } } ] }, { "id": "c9be7372-de6f-4763-b0d0-23665b7f1e9b", "automation": "- id: c9be7372-de6f-4763-b0d0-23665b7f1e9b\n alias: Christmass lights\n mode: parallel\n triggers:\n - trigger: state\n entity_id: light.tuinlampjes\n to:\n - 'on'\n - 'off'\n from:\n - 'on'\n - 'off'\n id: icicles\n - trigger: state\n entity_id: light.eettafel\n to: 'on'\n id: tree_star\n - trigger: state\n entity_id: light.tv_lamp\n to:\n - 'on'\n - 'off'\n from:\n - 'on'\n - 'off'\n id: lantarn\n - trigger: state\n entity_id: event.shelly1_eettafel_shelly1_eettafel\n not_from: unavailable\n id: to_bed\n conditions:\n - alias: Check for long press event on Eettaffel button\n condition: template\n value_template: '{{ trigger.id != to_bed or trigger.to_state.attributes.event_type\n == ''long_press'' }}'\n - alias: It's Chirstmas time\n condition: state\n entity_id: input_boolean.christmas_time\n state: 'on'\n actions:\n - alias: Which action?\n choose:\n - conditions: '{{ trigger.id == ''icicles''}}'\n sequence:\n - alias: Turn icicles on or off\n action: switch.turn_{{ trigger.to_state.state }}\n target:\n entity_id: '{{ ''switch.ijspegels'' }}'\n - conditions: '{{ trigger.id == ''lantarn''}}'\n sequence:\n - alias: Wait until lantarn is available\n wait_template: '{{ states(''switch.kerstlantaarn'') not in [ ''unavailable'',\n ''unknown''] }}'\n - alias: lantarn schakelen met tvlamp\n action: switch.turn_{{ trigger.to_state.state }}\n target:\n entity_id: '{{ ''switch.kerstlantaarn'' }}'\n - conditions: '{{ trigger.id == ''tree_star''}}'\n sequence:\n - alias: Turn christmas tree and star on\n action: switch.turn_on\n target:\n entity_id: '{{[''switch.kerstboom'', ''switch.kerstster'', ''switch.kerstbal'']\n }}'\n - conditions: '{{ trigger.id == ''to_bed''}}'\n sequence:\n - alias: Turn christmas tree and star off\n action: switch.turn_off\n target:\n entity_id: '{{[''switch.kerstboom'', ''switch.kerstster'', ''switch.kerstsbal'']\n }}'", "config": [ { "name": "Garden lights", "room": "garden", "type": "light", "id": { "entity_id": "light.tuinlampjes", "device_id": null } }, { "name": "Dining table light", "room": "dining_room", "type": "light", "id": { "entity_id": "light.eettafel", "device_id": null } }, { "name": "TV lamp", "room": "living_room", "type": "light", "id": { "entity_id": "light.tv_lamp", "device_id": null } }, { "name": "Eettafel Shelly button event", "room": "dining_room", "type": "event", "id": { "entity_id": "event.shelly1_eettafel_shelly1_eettafel", "device_id": null } }, { "name": "Christmas time input boolean", "room": null, "type": "input_boolean", "id": { "entity_id": "input_boolean.christmas_time", "device_id": null } }, { "name": "Icicles switch", "room": null, "type": "switch", "id": { "entity_id": "switch.ijspegels", "device_id": null } }, { "name": "Christmas lantern switch", "room": null, "type": "switch", "id": { "entity_id": "switch.kerstlantaarn", "device_id": null } }, { "name": "Christmas tree switch", "room": null, "type": "switch", "id": { "entity_id": "switch.kerstboom", "device_id": null } }, { "name": "Christmas star switch", "room": null, "type": "switch", "id": { "entity_id": "switch.kerstster", "device_id": null } }, { "name": "Christmas ornament switch", "room": null, "type": "switch", "id": { "entity_id": "switch.kerstbal", "device_id": null } }, { "name": "Christmas ball switch", "room": null, "type": "switch", "id": { "entity_id": "switch.kerstsbal", "device_id": null } }, { "name": "Shelly1 dining table event", "room": "dining_room", "type": "event", "id": { "entity_id": "event.shelly1_eettafel_shelly1_eettafel", "device_id": null } } ] }, { "id": "f540e546-ae22-4535-958f-35693ba636e5", "automation": "- id: f540e546-ae22-4535-958f-35693ba636e5\n alias: Disable and eneable Christmas integrations\n triggers:\n - trigger: state\n entity_id: input_boolean.christmas_time\n to:\n - 'on'\n - 'off'\n actions:\n - action: homeassistant.{{ 'disable' if trigger.to_state.state == 'off' else 'enable'\n }}_config_entry\n data:\n config_entry_id:\n - 48b8951b1855b53bba5a91888055fa5f\n - 924ced5da4fa886ac83bcfdab71dddb6\n - 9118fe1fd50a9108740ac05c000f4f04\n - 29e8c93c5cfff4b86c1e87698d4efe61\n - 082d600e428cc075a9f6575c05ac535a", "config": [ { "name": "Christmas time input boolean", "room": null, "type": "input_boolean", "id": { "entity_id": "input_boolean.christmas_time", "device_id": null } } ] }, { "id": "3d938c95-1b47-4ee3-93ca-56753feb6e94", "automation": "- id: 3d938c95-1b47-4ee3-93ca-56753feb6e94\n alias: Computer Martijn notification actions\n mode: single\n max_exceeded: silent\n triggers:\n - trigger: event\n id: computer_off\n event_type: mobile_app_notification_action\n event_data:\n action: computer_martijn_off\n - trigger: event\n id: computer_on\n event_type: mobile_app_notification_action\n event_data:\n action: computer_martijn_on\n - trigger: time\n id: alert_on\n at: 08:00:00\n actions:\n - alias: Actions computer Martijn alert\n choose:\n - conditions:\n condition: trigger\n id: computer_off\n sequence:\n - alias: Turn off computer after user confirms\n action: switch.turn_off\n target:\n entity_id: switch.computer_zolder\n - conditions:\n condition: trigger\n id: computer_on\n sequence:\n - alias: Turn off computer alert after user says keep on\n action: alert.turn_off\n target:\n entity_id: alert.computer_martijn\n - conditions:\n condition: trigger\n id: alert_on\n sequence:\n - alias: Turn on computer alert at 8 AM\n action: alert.turn_on\n target:\n entity_id: alert.computer_martijn", "config": [ { "name": "Computer Martijn alert", "room": null, "type": "alert", "id": { "entity_id": "alert.computer_martijn", "device_id": null } }, { "name": "Computer zolder switch", "room": "attic", "type": "switch", "id": { "entity_id": "switch.computer_zolder", "device_id": null } } ] }, { "id": "3152abda-e95c-4d49-8314-b6b6a803cc16", "automation": "- id: 3152abda-e95c-4d49-8314-b6b6a803cc16\n alias: Send notification for corrupted database\n triggers:\n - alias: Check if oldest date matches expected date\n trigger: template\n value_template: \"{{\\n 'sensor.oldest_statistics_date' | has_value\\n and states('sensor.oldest_statistics_date')\\\n \\ != '2021-07-07'\\n}}\\n\"\n actions:\n - alias: Send notification\n action: notify.mobile_app_pixel_10_pro\n data:\n title: ๐Ÿšจ Database waarschuwing ๐Ÿšจ\n message: De Home Assistant database is mogelijk corrupt! Controleer de database.\n data:\n channel: Database Warning\n ttl: 0\n priority: high\n notification_icon: mdi:database", "config": [ { "name": "Oldest statistics date sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.oldest_statistics_date", "device_id": null } }, { "name": "Mobile app Pixel 10 Pro", "room": null, "type": "notify", "id": { "entity_id": "notify.mobile_app_pixel_10_pro", "device_id": null } } ] }, { "id": "341786d9-1a4e-4328-be86-1e3d68d5744c", "automation": "- id: 341786d9-1a4e-4328-be86-1e3d68d5744c\n alias: Dishwasher notification\n mode: single\n max_exceeded: silent\n triggers:\n - alias: Dishwasher finished running\n trigger: state\n entity_id: binary_sensor.dishwasher_active\n from: 'on'\n to: 'off'\n id: finished\n actions:\n - alias: Reset dishwasher program to Eco\n action: input_select.select_option\n target:\n entity_id: input_select.dishwasher_program\n data:\n option: Eco\n - alias: Reset dishwasher extra setting to Normal\n action: input_select.select_option\n target:\n entity_id: input_select.dishwasher_program_extra\n data:\n option: Normaal\n - alias: Clear dishwasher delayed start timer\n action: input_number.set_value\n target:\n entity_id: input_number.dishwasher_delayed_start\n data:\n value: 0\n - alias: Notification\n action: notify.all_phones\n data:\n title: ๐Ÿ’ฆ De vaatwasser is klaar\n message: Doe hem snel open zodat hij kan uitwasemen\n data:\n channel: Dishwasher\n ttl: 0\n priority: high\n notification_icon: mdi:dishwasher-alert", "config": [ { "name": "Dishwasher active sensor", "room": "kitchen", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.dishwasher_active", "device_id": null } }, { "name": "Dishwasher program input select", "room": "kitchen", "type": "input_select", "id": { "entity_id": "input_select.dishwasher_program", "device_id": null } }, { "name": "Dishwasher program extra input select", "room": "kitchen", "type": "input_select", "id": { "entity_id": "input_select.dishwasher_program_extra", "device_id": null } }, { "name": "Dishwasher delayed start input number", "room": "kitchen", "type": "input_number", "id": { "entity_id": "input_number.dishwasher_delayed_start", "device_id": null } }, { "name": "All phones notify", "room": null, "type": "notify", "id": { "entity_id": "notify.all_phones", "device_id": null } } ] }, { "id": "afcf34ca-7a3e-4f49-a332-9313d2a2eca5", "automation": "- id: afcf34ca-7a3e-4f49-a332-9313d2a2eca5\n alias: Actions based on doorbell\n triggers:\n - alias: Doorbell button pressed\n trigger: state\n entity_id: binary_sensor.smart_doorbell_button\n to: 'on'\n mode: restart\n max_exceeded: silent\n variables:\n birthday:\n - sensor.anniversary_floris\n - sensor.anniversary_martijn\n - sensor.anniversary_pepijn\n - sensor.anniversary_martijn\n holiday:\n - sensor.anniversary_sinterklaas\n birthday_today: \"{% set m = state_attr('calendar.m_m', 'message') | lower %} {{\\n\\\n \\ '0' in birthday | map('states') | list\\n or\\n (\\n is_state('calendar.m_m',\\\n \\ 'on')\\n and 'verjaardag' in m\\n and m.split(' ')[1] in ['martijn', 'marleen',\\\n \\ 'floris', 'pepijn']\\n )\\n}}\\n\"\n conditions:\n - alias: Prevent running too much\n condition: template\n value_template: '{{ now() - this.attributes.last_triggered | default(0 | as_datetime,\n true) > timedelta(seconds=30) }}'\n actions:\n - alias: Notification for phones\n action: notify.all_phones\n data:\n title: ๐Ÿ”” Ding dong!\n message: Er staat iemand aan de deur!\n data:\n channel: Deurbel\n priority: high\n ttl: 0\n notification_icon: mdi:bell\n - alias: Nvidia Shield active?\n if:\n - not:\n - condition: state\n entity_id: media_player.nvidia_shield\n state: 'off'\n then:\n - alias: Pause Shield\n action: media_player.media_pause\n target:\n entity_id: media_player.nvidia_shield\n - alias: Chime off and someone home?\n choose:\n - conditions:\n - alias: Chime off?\n condition: state\n entity_id: switch.smart_doorbell_chime_active\n state: 'off'\n - alias: Someone home?\n condition: state\n entity_id: sensor.house_mode\n state: Thuis\n sequence:\n - parallel:\n - sequence:\n - variables:\n light_state: '{{ states(''light.voordeur'') }}'\n - alias: Blink front door light\n repeat:\n count: 8\n sequence:\n - action: light.toggle\n target:\n entity_id: light.voordeur\n - delay: 1\n - alias: Restore state\n action: light.turn_{{ light_state }}\n target:\n entity_id: light.voordeur\n - alias: Blink lights using script\n action: script.turn_on\n target:\n entity_id: script.light_blink_alert\n - conditions:\n - alias: Chime not active\n condition: state\n entity_id: switch.smart_doorbell_chime_active\n state: 'off'\n - alias: Nobobdy home?\n condition: state\n entity_id: sensor.house_mode\n state: Afwezig\n sequence:\n - alias: Blink front door light\n action: light.turn_on\n target:\n entity_id: light.voordeur\n data:\n effect: Slow Pulse\n - conditions:\n - alias: Chime active\n condition: state\n entity_id: switch.smart_doorbell_chime_active\n state: 'on'\n - alias: Someone home\n condition: numeric_state\n entity_id: zone.home\n above: 0\n sequence:\n - variables:\n name_a: \"{{\\n expand(birthday)\\n | selectattr('state', 'eq', '0')\\n\\\n \\ | map(attribute='object_id')\\n | map('replace', 'anniversary_',\\\n \\ '')\\n | join\\n}}\\n\"\n name_c: '{% set m = state_attr(''calendar.m_m'', ''message'') %} {{ m.split(''\n '')[1:] | join('' '') }}\n\n '\n name: '{{ name_a or name_c }}'\n sound: '{{ ''roltong.mp3'' if birthday_today else ''dingdong.mp3'' }}'\n message: '{{ (''Is dit misschien visite voor '' ~ name ~ ''?!'') if birthday_today\n else '' '' }}\n\n '\n sat_id: \"{% set reject_list = ['assist_satellite.m5stack_atom_echo_d4e7f8_assist_satellite',\\\n \\ 'assist_satellite.grandstream'] %} {% set reject_list = (reject_list\\\n \\ + ['assist_satellite.pepijn']) if is_state('binary_sensor.pepijn_sleeping',\\\n \\ 'on') else reject_list %} {% set reject_list = (reject_list + ['assist_satellite.floris'])\\\n \\ if is_state('binary_sensor.floris_sleeping', 'on') else reject_list\\\n \\ %} {{\\n states.assist_satellite\\n | map(attribute='entity_id')\\n\\\n \\ | reject('in', reject_list)\\n | list\\n}}\\n\"\n - alias: Make sure soundbar is ready\n if: '{{ ''assist_satellite.woonkamer'' in sat_id }}'\n then:\n - alias: Turn soundbar on in case it wasn't already\n action: media_player.turn_on\n target:\n entity_id: media_player.samsung_soundbar\n - alias: Make sure soundbar is on\n wait_template: '{{ not ''media_player.samsung_soundbar'' | has_value or\n state_attr(''media_player.samsung_soundbar'', ''volume_level'') is not\n none }}'\n - alias: Set soundbar to the correct source\n action: media_player.select_source\n data:\n source: aux\n target:\n entity_id: media_player.samsung_soundbar\n - alias: Store volume level\n variables:\n sb_vol: '{{ state_attr(''media_player.samsung_soundbar'', ''volume_level'')\n | default(0.5, true) }}'\n - alias: Set volume to at least 0.5\n action: media_player.volume_set\n target:\n entity_id: media_player.samsung_soundbar\n data:\n volume_level: '{{ [0.5, sb_vol] | max }}'\n - repeat:\n for_each: '{{ sat_id }}'\n sequence:\n - alias: Use announcement script\n action: script.turn_on\n target:\n entity_id: script.send_announcement_with_volume_setting\n data:\n variables:\n satellite: '{{ repeat.item }}'\n message: '{{ message }}'\n pre_announce_sound: media-source://media_source/local/misc/{{ sound\n }}\n volume: 0.6\n - alias: Restore volume soundbar\n if: '{{ ''assist_satellite.woonkamer'' in sat_id }}'\n then:\n - alias: Set soundbar back to original volume\n action: media_player.volume_set\n target:\n entity_id: media_player.samsung_soundbar\n data:\n volume_level: '{{ sb_vol }}'", "config": [ { "name": "House mode sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.house_mode", "device_id": null } }, { "name": "Home zone", "room": null, "type": "zone", "id": { "entity_id": "zone.home", "device_id": null } }, { "name": "All phones notify", "room": null, "type": "notify", "id": { "entity_id": "notify.all_phones", "device_id": null } }, { "name": "Smart doorbell button", "room": "front_door", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.smart_doorbell_button", "device_id": null } }, { "name": "Nvidia Shield", "room": "living_room", "type": "media_player", "id": { "entity_id": "media_player.nvidia_shield", "device_id": null } }, { "name": "Smart doorbell chime active", "room": "front_door", "type": "switch", "id": { "entity_id": "switch.smart_doorbell_chime_active", "device_id": null } }, { "name": "Front door light", "room": "front_door", "type": "light", "id": { "entity_id": "light.voordeur", "device_id": null } }, { "name": "Light blink alert script", "room": null, "type": "script", "id": { "entity_id": "script.light_blink_alert", "device_id": null } }, { "name": "Calendar M M", "room": null, "type": "calendar", "id": { "entity_id": "calendar.m_m", "device_id": null } }, { "name": "Samsung soundbar", "room": "living_room", "type": "media_player", "id": { "entity_id": "media_player.samsung_soundbar", "device_id": null } }, { "name": "Send announcement with volume setting script", "room": null, "type": "script", "id": { "entity_id": "script.send_announcement_with_volume_setting", "device_id": null } }, { "name": "Anniversary Floris sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.anniversary_floris", "device_id": null } }, { "name": "Anniversary Martijn sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.anniversary_martijn", "device_id": null } }, { "name": "Anniversary Pepijn sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.anniversary_pepijn", "device_id": null } }, { "name": "Anniversary Sinterklaas sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.anniversary_sinterklaas", "device_id": null } }, { "name": "Assist satellite M5Stack Atom Echo", "room": null, "type": "assist_satellite", "id": { "entity_id": "assist_satellite.m5stack_atom_echo_d4e7f8_assist_satellite", "device_id": null } }, { "name": "Assist satellite Grandstream", "room": null, "type": "assist_satellite", "id": { "entity_id": "assist_satellite.grandstream", "device_id": null } }, { "name": "Assist satellite Pepijn", "room": "pepijn_bedroom", "type": "assist_satellite", "id": { "entity_id": "assist_satellite.pepijn", "device_id": null } }, { "name": "Assist satellite Floris", "room": "floris_bedroom", "type": "assist_satellite", "id": { "entity_id": "assist_satellite.floris", "device_id": null } }, { "name": "Pepijn sleeping binary sensor", "room": "pepijn_bedroom", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.pepijn_sleeping", "device_id": null } }, { "name": "Floris sleeping binary sensor", "room": "floris_bedroom", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.floris_sleeping", "device_id": null } }, { "name": "Assist satellite Woonkamer", "room": "living_room", "type": "assist_satellite", "id": { "entity_id": "assist_satellite.woonkamer", "device_id": null } } ] }, { "id": "86f3e0f1-cbaf-4897-a603-cb0e33f76793", "automation": "- id: 86f3e0f1-cbaf-4897-a603-cb0e33f76793\n alias: Turn doorbell sound on and off\n mode: single\n max_exceeded: silent\n triggers:\n - alias: Home Assistant started\n trigger: homeassistant\n event: start\n - alias: Doorbell chime became available\n trigger: state\n entity_id: switch.smart_doorbell_chime_active\n from: unavailable\n - alias: Schedule time for chime control\n trigger: time\n at:\n - 07:00:00\n - '19:00:00'\n actions:\n - alias: Bedtime children?\n choose:\n - conditions:\n - alias: Evening or night?\n condition: time\n after: '19:00:00'\n before: 07:00:00\n sequence:\n - alias: Turn chime off\n action: switch.turn_off\n data:\n entity_id: switch.smart_doorbell_chime_active\n - conditions:\n - alias: Daytime?\n condition: time\n after: 07:00:00\n before: '19:00:00'\n sequence:\n - alias: Turn chime on\n action: switch.turn_on\n data:\n entity_id: switch.smart_doorbell_chime_active", "config": [ { "name": "Smart doorbell chime active", "room": "front_door", "type": "switch", "id": { "entity_id": "switch.smart_doorbell_chime_active", "device_id": null } } ] }, { "id": "3e12aad4-2ddb-46ce-af36-1dbcc14129d9", "automation": "- id: 3e12aad4-2ddb-46ce-af36-1dbcc14129d9\n alias: Turn light stairs closet off and on\n mode: restart\n max_exceeded: silent\n triggers:\n - alias: Stairs closet door state changed\n trigger: state\n entity_id: binary_sensor.deur_trapkast_contact\n actions:\n - alias: Open or closed?\n choose:\n - conditions:\n - alias: Door open?\n condition: state\n entity_id: binary_sensor.deur_trapkast_contact\n state: 'on'\n sequence:\n - alias: Turn stairs closet light on\n action: light.turn_on\n target:\n entity_id: light.trapkast_template\n - alias: Wait 5 minutes before auto-off\n delay:\n minutes: 5\n - alias: Turn stairs closet light off after delay\n action: light.turn_off\n target:\n entity_id: light.trapkast_template\n - conditions:\n - alias: Door closed?\n condition: state\n entity_id: binary_sensor.deur_trapkast_contact\n state: 'off'\n sequence:\n - alias: Turn stairs closet light off immediately\n action: light.turn_off\n target:\n entity_id: light.trapkast_template", "config": [ { "name": "Stairs closet door contact sensor", "room": "stairs_closet", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.deur_trapkast_contact", "device_id": null } }, { "name": "Stairs closet template light", "room": "stairs_closet", "type": "light", "id": { "entity_id": "light.trapkast_template", "device_id": null } }, { "name": "Stairs closet light", "room": "stairs_closet", "type": "light", "id": { "entity_id": "light.trapkast", "device_id": null } } ] }, { "id": "dryer_finished_notification", "automation": "- id: dryer_finished_notification\n alias: Dryer Finished Notification\n description: Notify when dryer finishes based on power consumption below 20W for\n 3 minutes\n triggers:\n - trigger: numeric_state\n alias: Power below threshold\n entity_id: sensor.droger_power\n below: 20\n for:\n minutes: 3\n conditions:\n - condition: template\n alias: Valid power reading\n value_template: '{{ trigger.from_state.state | is_number }}'\n actions:\n - action: rest_command.signal_send_message\n alias: Send dryer finished notification\n data:\n message: ๐Ÿงบ De droger is klaar!\n mode: single", "config": [ { "name": "Dryer power sensor", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.droger_power", "device_id": null } }, { "name": "Rest command signal send message", "room": null, "type": "rest_command", "id": { "entity_id": null, "device_id": "rest_command.signal_send_message" } } ] }, { "id": "e18beec6-b22c-4ac5-88da-05b7c05b9c33", "automation": "- id: e18beec6-b22c-4ac5-88da-05b7c05b9c33\n alias: ECU reset with switch\n triggers:\n - alias: Solar energy output sensor not responding for 5 minutes\n trigger: template\n value_template: '{{ not states(''sensor.solar_total_lifetime_energy_output'')\n | is_number }}'\n for:\n minutes: 5\n id: 'off'\n - alias: ECU reports lower value then current return to grid\n trigger: template\n value_template: \"{{\\n states('sensor.ecu_current_power') | float(0) <\\n states('sensor.electricity_meter_energieproductie')\\\n \\ | float(0)\\n}}\\n\"\n for:\n minutes: 10\n id: 'off'\n - alias: ECU current power didn't change for 15 minutes\n trigger: state\n entity_id: sensor.ecu_current_power\n to: null\n for:\n minutes: 15\n id: stable\n - alias: ECU reset switch turned off for 10 seconds\n trigger: state\n entity_id: switch.ecu_reset\n to: 'off'\n for:\n seconds: 10\n id: 'on'\n - alias: Home Assistant started\n trigger: homeassistant\n event: start\n id: 'on'\n conditions:\n - alias: Check if trigger is not stable or if sun is up with power output\n condition: template\n value_template: \"{{\\n trigger.id != 'stable'\\n or\\n (\\n is_state('sun.sun',\\\n \\ 'above_horizon')\\n and trigger.to_state.state | int(0) > 0\\n )\\n}}\\n\"\n actions:\n - alias: Turn ECU reset switch on or off based on trigger\n action: switch.turn_{{ 'off' if trigger.id == 'stable' else trigger.id }}\n target:\n entity_id: switch.ecu_reset", "config": [ { "name": "Solar total lifetime energy output sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.solar_total_lifetime_energy_output", "device_id": null } }, { "name": "ECU current power sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.ecu_current_power", "device_id": null } }, { "name": "Electricity meter energy production sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.electricity_meter_energieproductie", "device_id": null } }, { "name": "ECU reset switch", "room": null, "type": "switch", "id": { "entity_id": "switch.ecu_reset", "device_id": null } }, { "name": "Sun sun", "room": null, "type": "sun", "id": { "entity_id": "sun.sun", "device_id": null } } ] }, { "id": "376b6b93-e8ed-43cf-89e3-1b915e5ff236", "automation": "- id: 376b6b93-e8ed-43cf-89e3-1b915e5ff236\n alias: Send notification when Martijn or Marleen leaves from work\n mode: parallel\n max_exceeded: silent\n triggers:\n - alias: Marleen left work\n trigger: state\n entity_id: person.marleen\n from: secret work_marleen\n to: not_home\n - alias: Martijn left work\n trigger: state\n entity_id: person.martijn\n from: secret work_martijn\n to: not_home\n - alias: Person status changed (for reset)\n trigger: state\n entity_id:\n - person.martijn\n - person.marleen\n to:\n - home\n - secret work_marleen\n - secret work_martijn\n id: reset\n - alias: Cancel ETA notification for Martijn\n trigger: event\n id: reset\n event_type: mobile_app_notification_action\n event_data:\n action: cancel_eta_martijn\n variables:\n name: martijn\n - alias: Cancel ETA notification for Marleen\n trigger: event\n id: reset\n event_type: mobile_app_notification_action\n event_data:\n action: cancel_eta_marleen\n variables:\n name: marleen\n variables:\n name: '{{ name if name is defined else states[trigger.entity_id].object_id }}'\n notify: '{{ ''notify.mobile_app_pixel_8_marleen'' if name == ''martijn'' else\n ''notify.mobile_app_pixel_10_pro'' }}'\n gender: '{{ ''hij'' if name == ''martijn'' else ''ze'' }}'\n sensor: sensor.{{ name }}_naar_huis\n vehicle: '{{ ''fiets'' if is_state(''input_boolean.martijn_fiets'', ''on'') and\n is_state(''binary_sensor.pixel_10_pro_android_auto'', ''off'') and name == ''martijn''\n else ''auto'' }}'\n eta: '{%- set delta = 40 if vehicle == ''fiets'' else states(sensor) | float %}\n {{ (now() + timedelta(minutes=delta)).strftime(''%H:%M'') }}\n\n '\n work:\n martijn: secret work_martijn\n marleen: secret work_marleen\n actions:\n - if: '{{ trigger.id == ''reset'' }}'\n then:\n - alias: Remove ETA variable\n event: remove_variable\n event_data:\n key: eta_{{ name }}\n else:\n - alias: Update travel time sensor\n action: homeassistant.update_entity\n target:\n entity_id: '{{ sensor }}'\n - alias: Send notification to phone\n action: '{{ notify }}'\n data:\n title: '{{ name | capitalize }} is onderweg {{ ('' met de '' ~ vehicle) if\n name == ''martijn'' else ''''}}'\n message: Als {{ gender }} meteen naar huis komt is {{ gender }} er om {{ eta\n }}\n data:\n channel: ETA\n tag: eta_{{ name }}\n ttl: 0\n priority: high\n notification_icon: '{{ ''mdi:bike'' if vehicle == ''fiets'' else ''mdi:car''}}'\n actions:\n - action: cancel_eta_{{ name }}\n title: Stop updates\n - alias: Set ETA variable\n event: set_variable\n event_data:\n key: eta_{{ name }}\n value: '{{ eta }}'\n set_timestamp: false\n - if: '{{ vehicle == ''auto'' }}'\n then:\n - repeat:\n until: \"{{\\n is_state(trigger.entity_id, [work[name], 'home'])\\n or (state_attr('sensor.variables',\\\n \\ 'variables') | default({}, true)).get('eta_'~name, none) is none\\n}}\\n\"\n sequence:\n - alias: Update travel time sensor in loop\n action: homeassistant.update_entity\n target:\n entity_id: '{{ sensor }}'\n - alias: Calculate updated ETA time\n variables:\n eta: '{{ now() + timedelta(minutes=states(sensor)|float) }}'\n - wait_for_trigger:\n - alias: Person reached destination\n trigger: template\n value_template: '{{ is_state(trigger.entity_id, [work[name], ''home''])\n }}'\n - alias: ETA cancellation requested\n trigger: event\n event_type: mobile_app_notification_action\n event_data:\n action: cancel_eta_{{ name }}\n - alias: ETA delay detected\n trigger: template\n value_template: \"{{\\n (now() + timedelta(minutes=states(sensor) | float))\\\n \\ - as_datetime(eta) > timedelta(minutes=5)\\n}}\\n\"\n id: delay\n - if: '{{ wait.trigger.id == ''delay'' }}'\n then:\n - alias: Calculate delayed ETA time\n variables:\n eta: '{{ (now() + timedelta(minutes=states(sensor) | float)).strftime(''%H:%M'')\n }}'\n - alias: Update ETA variable with new time\n event: set_variable\n event_data:\n key: eta_{{ name }}\n value: '{{ eta }}'\n - alias: Send notification to phone\n action: '{{ notify }}'\n data:\n title: '{{ name | capitalize }} is vertraagd'\n message: '{{ gender | capitalize }} zou er nu rond {{ eta }} moeten\n zijn'\n data:\n channel: ETA\n tag: eta_{{ name }}\n ttl: 0\n priority: high\n notification_icon: mdi:car\n actions:\n - action: cancel_eta_{{ name }}\n title: Stop updates", "config": [ { "name": "Mobile app Pixel 10 Pro", "room": null, "type": "notify", "id": { "entity_id": "notify.mobile_app_pixel_10_pro", "device_id": null } }, { "name": "Person Martijn", "room": null, "type": "person", "id": { "entity_id": "person.martijn", "device_id": null } }, { "name": "Person Marleen", "room": null, "type": "person", "id": { "entity_id": "person.marleen", "device_id": null } }, { "name": "Mobile app Pixel 8 Marleen", "room": null, "type": "notify", "id": { "entity_id": "notify.mobile_app_pixel_8_marleen", "device_id": null } }, { "name": "Martijn bike input boolean", "room": null, "type": "input_boolean", "id": { "entity_id": "input_boolean.martijn_fiets", "device_id": null } }, { "name": "Pixel 10 Pro Android Auto", "room": null, "type": "binary_sensor", "id": { "entity_id": "binary_sensor.pixel_10_pro_android_auto", "device_id": null } }, { "name": "Variables sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.variables", "device_id": null } } ] }, { "id": "6757b053-0f63-4c30-98bd-1038ab57700e", "automation": "- id: 6757b053-0f63-4c30-98bd-1038ab57700e\n alias: Check if Martijn is on his bicycle for ETA calculation\n mode: single\n max_exceeded: silent\n triggers:\n - alias: Martijn detected on bicycle\n trigger: state\n id: on_bike\n entity_id: sensor.pixel_10_pro_detected_activity\n to: on_bicycle\n - alias: Martijn arrived home\n trigger: state\n id: back_home\n entity_id: person.martijn\n to: home\n actions:\n - alias: ๐Ÿšฒ of ๐Ÿก\n choose:\n - conditions:\n - alias: ๐Ÿšฒ\n condition: trigger\n id: on_bike\n sequence:\n - alias: Turn on input_boolean\n action: input_boolean.turn_on\n target:\n entity_id: input_boolean.martijn_fiets\n - conditions:\n - alias: Martijn was on ๐Ÿšฒ?\n condition: state\n entity_id: input_boolean.martijn_fiets\n state: 'on'\n - alias: Back ๐Ÿก\n condition: trigger\n id: back_home\n sequence:\n - alias: Turn off input_boolean\n action: input_boolean.turn_off\n target:\n entity_id: input_boolean.martijn_fiets", "config": [ { "name": "Person Martijn", "room": null, "type": "person", "id": { "entity_id": "person.martijn", "device_id": null } }, { "name": "Martijn bike input boolean", "room": null, "type": "input_boolean", "id": { "entity_id": "input_boolean.martijn_fiets", "device_id": null } }, { "name": "Pixel 10 Pro detected activity sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.pixel_10_pro_detected_activity", "device_id": null } } ] }, { "id": "2068227c-13b2-4bc3-bc1b-50afe8da2deb", "automation": "- id: 2068227c-13b2-4bc3-bc1b-50afe8da2deb\n alias: Marleen is almost home\n mode: single\n max_exceeded: silent\n triggers:\n - alias: Marleen within 4km of home\n trigger: numeric_state\n entity_id: sensor.thuis_marleen_distance\n below: 4000\n conditions:\n - alias: Richting huis?\n condition: state\n entity_id: sensor.thuis_marleen_direction_of_travel\n state: towards\n - alias: Marleen niet thuis?\n condition: state\n entity_id: person.marleen\n state: not_home\n - alias: Martijn wel thuis?\n condition: state\n entity_id: person.martijn\n state: home\n actions:\n - alias: Message to phone Martijn\n action: notify.mobile_app_pixel_10_pro\n data:\n title: Hoera\n message: Marleen is bijna thuis\n data:\n channel: ETA\n ttl: 0\n priority: high\n notification_icon: mdi:party-popper\n - alias: Determine TTS target devices based on Martijn's activity\n variables:\n target: \"{%- \\n if is_state('media_player.martijn', 'playing')\\n or is_state('sensor.location_phone_martijn',\\\n \\ 'Zolder') \\n%}\\n [ 'assist_satellite.keuken', 'assist_satellite.martijn'\\\n \\ ]\\n{%- else %}\\n [ 'assist_satellite.keuken' ]\\n{%- endif %}\\n\"\n - alias: Send TTS\n action: assist_satellite.announce\n target:\n entity_id: '{{ target }}'\n data:\n message: Hoera Marleen is bijna thuis", "config": [ { "name": "Mobile app Pixel 10 Pro", "room": null, "type": "notify", "id": { "entity_id": "notify.mobile_app_pixel_10_pro", "device_id": null } }, { "name": "Person Martijn", "room": null, "type": "person", "id": { "entity_id": "person.martijn", "device_id": null } }, { "name": "Person Marleen", "room": null, "type": "person", "id": { "entity_id": "person.marleen", "device_id": null } }, { "name": "Thuis Marleen distance sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.thuis_marleen_distance", "device_id": null } }, { "name": "Thuis Marleen direction of travel sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.thuis_marleen_direction_of_travel", "device_id": null } }, { "name": "Media player Martijn", "room": "office", "type": "media_player", "id": { "entity_id": "media_player.martijn", "device_id": null } }, { "name": "Location phone Martijn sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.location_phone_martijn", "device_id": null } }, { "name": "Assist satellite Keuken", "room": "kitchen", "type": "assist_satellite", "id": { "entity_id": "assist_satellite.keuken", "device_id": null } }, { "name": "Assist satellite Martijn", "room": "office", "type": "assist_satellite", "id": { "entity_id": "assist_satellite.martijn", "device_id": null } } ] }, { "id": "eb769e97-f6dd-471a-90ee-29d4666e0718", "automation": "- id: eb769e97-f6dd-471a-90ee-29d4666e0718\n alias: Turn everything off when nobody is home\n mode: single\n max_exceeded: silent\n triggers:\n - alias: House mode changed to away for 10 seconds\n trigger: state\n entity_id: sensor.house_mode\n to: Afwezig\n for:\n seconds: 10\n conditions:\n - alias: Niemand thuis?\n condition: state\n entity_id: sensor.house_mode\n state: Afwezig\n actions:\n - alias: TV on\n choose:\n - conditions: '{{ states(''sensor.tv_meubel_power'') | float(0) > 40 }}'\n sequence:\n - alias: Enable guest mode to avoid that they will be in the dark\n action: input_boolean.turn_on\n target:\n entity_id: input_boolean.gast\n default:\n - alias: All lights off\n action: light.turn_off\n target:\n entity_id: light.groep_huis\n - alias: Turn off extractor hood if needed?\n choose:\n - conditions:\n - alias: Extractor hood or light active?\n condition: numeric_state\n entity_id: sensor.afzuigkap_power\n above: 1\n sequence:\n - alias: Turn off plug\n action: switch.turn_off\n target:\n entity_id: switch.afzuigkap\n - alias: Turn off desk Martijn if not active\n choose:\n - conditions:\n - alias: Computer Martijn uit\n condition: state\n entity_id: binary_sensor.computer_zolder\n state: 'off'\n - alias: Laptop werkt uit\n condition: state\n entity_id: binary_sensor.laptop_werk_martijn_lan\n state: 'off'\n - alias: Laptop werkt uit\n condition: state\n entity_id: binary_sensor.laptop_werk_martijn_wifi\n state: 'off'\n sequence:\n - alias: Bureau Martijn uit\n action: switch.turn_off\n target:\n entity_id: switch.bureau_martijn_template", "config": [ { "name": "Guest mode input boolean", "room": null, "type": "input_boolean", "id": { "entity_id": "input_boolean.gast", "device_id": null } }, { "name": "House mode sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.house_mode", "device_id": null } }, { "name": "TV meubel power sensor", "room": "living_room", "type": "sensor", "id": { "entity_id": "sensor.tv_meubel_power", "device_id": null } }, { "name": "Extractor hood power sensor", "room": "kitchen", "type": "sensor", "id": { "entity_id": "sensor.afzuigkap_power", "device_id": null } }, { "name": "Extractor hood switch", "room": "kitchen", "type": "switch", "id": { "entity_id": "switch.afzuigkap", "device_id": null } }, { "name": "Computer zolder binary sensor", "room": "attic", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.computer_zolder", "device_id": null } }, { "name": "Laptop werk Martijn LAN binary sensor", "room": "office", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.laptop_werk_martijn_lan", "device_id": null } }, { "name": "Laptop werk Martijn WIFI binary sensor", "room": "office", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.laptop_werk_martijn_wifi", "device_id": null } }, { "name": "Desk Martijn template switch", "room": "office", "type": "switch", "id": { "entity_id": "switch.bureau_martijn_template", "device_id": null } }, { "name": "Whole house light group", "room": null, "type": "light", "id": { "entity_id": "light.groep_huis", "device_id": null } }, { "name": "Groep", "room": null, "type": "light", "id": { "entity_id": "light.groep_", "device_id": null } } ] }, { "id": "15bc9238-0a61-4448-92bc-854848521572", "automation": "- id: 15bc9238-0a61-4448-92bc-854848521572\n alias: Turn lights outside on and off\n mode: single\n max_exceeded: silent\n triggers:\n - trigger: homeassistant\n event: start\n - trigger: state\n entity_id: sun.sun\n to:\n - above_horizon\n - below_horizon\n - trigger: time\n at:\n - 00:00\n - 06:30\n actions:\n - alias: Midnight, morning or evening?\n choose:\n - conditions:\n - alias: Midnight?\n condition: time\n before: ' 00:15:00'\n sequence:\n - alias: Lights in garden off\n action: light.turn_off\n target:\n entity_id:\n - light.tuinlampjes\n - light.veranda\n - conditions:\n - alias: After sunrise?\n condition: state\n entity_id: sun.sun\n state: above_horizon\n sequence:\n - alias: All outside lights off\n action: light.turn_off\n target:\n entity_id:\n - light.groep_buiten\n - conditions:\n - alias: After sunset\n condition: state\n entity_id: sun.sun\n state: below_horizon\n sequence:\n - alias: Turn front door light and garden lights on\n action: light.turn_on\n target:\n entity_id:\n - light.tuinlampjes\n - light.voordeur\n - alias: Turn porch light on\n action: light.turn_on\n target:\n entity_id: light.veranda\n data:\n brightness: 10\n - alias: Short delay\n delay: 10\n - alias: Another service call to be sure (sometimes it fails)\n action: light.turn_on\n target:\n entity_id: light.veranda\n data:\n brightness: 10", "config": [ { "name": "Garden lights", "room": "garden", "type": "light", "id": { "entity_id": "light.tuinlampjes", "device_id": null } }, { "name": "Front door light", "room": "front_door", "type": "light", "id": { "entity_id": "light.voordeur", "device_id": null } }, { "name": "Sun sun", "room": null, "type": "sun", "id": { "entity_id": "sun.sun", "device_id": null } }, { "name": "Veranda light", "room": "veranda", "type": "light", "id": { "entity_id": "light.veranda", "device_id": null } }, { "name": "Garden outside group", "room": "garden", "type": "light", "id": { "entity_id": "light.groep_buiten", "device_id": null } }, { "name": "Groep", "room": null, "type": "light", "id": { "entity_id": "light.groep_", "device_id": null } } ] }, { "id": "f80d05dd-bdc4-49ec-b5c0-07c9bb3757a0", "automation": "- id: f80d05dd-bdc4-49ec-b5c0-07c9bb3757a0\n alias: Actions for garden sonoff\n mode: parallel\n max_exceeded: silent\n triggers:\n - trigger: state\n entity_id: event.sonoff_tuin_sonoff_tuin\n not_from: unavailable\n actions:\n - alias: Click type?\n choose:\n - conditions:\n - alias: Short?\n condition: template\n value_template: '{{ trigger.to_state.attributes.event_type == ''single_press''\n }}'\n sequence:\n - alias: Toggle light\n action: light.toggle\n target:\n entity_id: light.groep_tuin\n - conditions:\n - alias: Double?\n condition: template\n value_template: '{{ trigger.to_state.attributes.event_type == ''double_press''\n }}'\n sequence:\n - alias: Light on 100%\n action: light.turn_on\n target:\n entity_id: light.veranda\n data:\n brightness: 255\n - conditions:\n - alias: Long?\n condition: template\n value_template: '{{ trigger.to_state.attributes.event_type == ''long_press''\n }}'\n sequence:\n - alias: Toggle veranda cover open/close\n action: cover.{{ 'close' if is_state('cover.veranda', 'open') else 'open'\n }}_cover\n target:\n entity_id: cover.veranda", "config": [ { "name": "Garden light group", "room": "garden", "type": "light", "id": { "entity_id": "light.groep_tuin", "device_id": null } }, { "name": "Veranda light", "room": "veranda", "type": "light", "id": { "entity_id": "light.veranda", "device_id": null } }, { "name": "Veranda cover", "room": "veranda", "type": "cover", "id": { "entity_id": "cover.veranda", "device_id": null } }, { "name": "Garden sonoff event", "room": "garden", "type": "event", "id": { "entity_id": "event.sonoff_tuin_sonoff_tuin", "device_id": null } }, { "name": "Groep", "room": null, "type": "light", "id": { "entity_id": "light.groep_", "device_id": null } } ] }, { "id": "36123179-ef70-4a84-be1a-ea1eb11cfc97", "automation": "- id: 36123179-ef70-4a84-be1a-ea1eb11cfc97\n alias: Open sunshade when needed\n mode: restart\n triggers:\n - alias: The temperature in the living room is rising\n trigger: state\n entity_id: binary_sensor.trend_woonkamer_temp\n to: 'on'\n - alias: The sun is above the horizon\n trigger: state\n entity_id: sun.sun\n to: above_horizon\n - alias: It will be over 18 degrees\n trigger: numeric_state\n entity_id: sensor.weather_combined_max_temp_today\n above: 18\n - alias: Sunny or partly cloudy outside\n trigger: state\n entity_id: weather.combined\n to:\n - sunny\n - partycloudy\n - alias: Currently not raining\n trigger: state\n entity_id: binary_sensor.rain\n to: 'off'\n - alias: Over 20 degrees inside\n trigger: numeric_state\n entity_id: sensor.woonkamer_multi_temperature\n above: 20\n - alias: Time is 16:00\n trigger: time\n at: '16:00:00'\n id: close\n conditions:\n - condition: template\n value_template: \"{{\\n (\\n is_state('cover.veranda', 'open')\\n and trigger.id\\\n \\ == 'close'\\n )\\n or is_state('cover.veranda', 'closed')\\n}}\\n\"\n actions:\n - alias: Check if sun is rising and cover not in manual mode\n if: '{{ state_attr(''sun.sun'', ''rising'') and not is_state(''binary_sensor.screen_veranda_manual'',\n ''on'') }}'\n then:\n - alias: No rain\n condition: state\n entity_id: binary_sensor.rain\n state: 'off'\n - alias: Warm day\n condition: template\n value_template: '{% set temp = states(''sensor.weather_combined_max_temp_today'')\n | float(0) %} {{ temp > 25 or (temp > 18 and now().month in range(4,9)) }}\n\n '\n - alias: Sunny or partly cloudy\n condition: state\n entity_id: weather.combined\n state:\n - sunny\n - partlycloudy\n - alias: Temperature rising\n condition: state\n entity_id: binary_sensor.trend_woonkamer_temp\n state: 'on'\n - alias: Warm inside\n condition: template\n value_template: '{% set temp = states(''sensor.woonkamer_multi_temperature'')\n | float(0) %} {{ temp > 22 or (temp > 20 and now().month in range(4,9)) }}\n\n '\n - alias: Store the current state of the light\n variables:\n light_state: '{{ states(''light.veranda'') }}'\n - alias: Open cover\n action: cover.open_cover\n target:\n entity_id: cover.veranda\n - alias: Wait if the light changes\n wait_template: '{{ not is_state(''light.veranda'', light_state) }}'\n timeout: 00:05:00\n continue_on_timeout: false\n - alias: Restore the light state\n action: light.turn_{{ light_state }}\n target:\n entity_id: light.veranda\n - alias: Check if this is the evening close trigger\n if: '{{ trigger.id == ''close'' }}'\n then:\n - alias: Store the current state of the light\n variables:\n light_state: '{{ states(''light.veranda'') }}'\n - alias: Close cover\n action: cover.close_cover\n target:\n entity_id: cover.veranda\n - alias: Restore the light state\n action: light.turn_{{ light_state }}\n target:\n entity_id: light.veranda", "config": [ { "name": "Weather combined", "room": null, "type": "weather", "id": { "entity_id": "weather.combined", "device_id": null } }, { "name": "Sun sun", "room": null, "type": "sun", "id": { "entity_id": "sun.sun", "device_id": null } }, { "name": "Veranda light", "room": "veranda", "type": "light", "id": { "entity_id": "light.veranda", "device_id": null } }, { "name": "Veranda cover", "room": "veranda", "type": "cover", "id": { "entity_id": "cover.veranda", "device_id": null } }, { "name": "Living room temperature trend", "room": "living_room", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.trend_woonkamer_temp", "device_id": null } }, { "name": "Weather combined max temp today sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.weather_combined_max_temp_today", "device_id": null } }, { "name": "Living room multi temperature sensor", "room": "living_room", "type": "sensor", "id": { "entity_id": "sensor.woonkamer_multi_temperature", "device_id": null } }, { "name": "Rain binary sensor", "room": null, "type": "binary_sensor", "id": { "entity_id": "binary_sensor.rain", "device_id": null } }, { "name": "Screen veranda manual binary sensor", "room": "veranda", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.screen_veranda_manual", "device_id": null } }, { "name": "Trend living room temperature sensor", "room": "living_room", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.trend_woonkamer_temp", "device_id": null } } ] }, { "id": "'1752267977360'", "automation": "- id: '1752267977360'\n alias: Turn off awning light during daytime\n triggers:\n - alias: Veranda light turned on\n trigger: state\n entity_id:\n - light.veranda\n to: 'on'\n conditions:\n - alias: Sun is above horizon (daytime)\n condition: state\n entity_id: sun.sun\n state: above_horizon\n - alias: Light was turned on automatically (not by user)\n condition: template\n value_template: '{{ trigger.to_state.context.parent_id is none and trigger.to_state.context.user_id\n is none }}'\n actions:\n - alias: Turn off veranda light\n action: light.turn_off\n target:\n entity_id: light.veranda\n mode: single", "config": [ { "name": "Sun sun", "room": null, "type": "sun", "id": { "entity_id": "sun.sun", "device_id": null } }, { "name": "Veranda light", "room": "veranda", "type": "light", "id": { "entity_id": "light.veranda", "device_id": null } } ] }, { "id": "6cdd3311-fb90-47ea-a796-f679091021f2", "automation": "- id: 6cdd3311-fb90-47ea-a796-f679091021f2\n alias: Turn on holiday mode and send notification\n mode: queued\n max_exceeded: silent\n triggers:\n - trigger: state\n entity_id: zone.home\n to: '0'\n for: '12:00:00'\n id: boolean_on\n - trigger: event\n id: holiday_on\n event_type: mobile_app_notification_action\n event_data:\n action: vakantie\n - trigger: state\n id: holiday_house\n entity_id: sensor.house_mode\n to: Vakantie\n - trigger: event\n id: no_holiday\n event_type: mobile_app_notification_action\n event_data:\n action: no_holiday\n - trigger: numeric_state\n id: holiday_over\n entity_id: sensor.thuis_martijn_distance\n below: 10000\n actions:\n - alias: Actions holiday mode\n choose:\n - conditions:\n condition: trigger\n id: boolean_on\n sequence:\n - action: input_boolean.turn_on\n target:\n entity_id: input_boolean.op_vakantie\n - conditions:\n condition: trigger\n id: holiday_on\n sequence:\n - action: input_boolean.turn_off\n target:\n entity_id: input_boolean.op_vakantie\n - action: input_boolean.turn_on\n target:\n entity_id: input_boolean.vakantie\n - action: notify.mobile_app_pixel_10_pro\n data:\n title: โ˜€๏ธ Fijne vakantie! โ˜€๏ธ\n message: Vakantiemodus is nu actief\n data:\n channel: Holiday\n ttl: 0\n priority: high\n notification_icon: mdi:sunglasses\n - conditions:\n condition: trigger\n id: holiday_house\n sequence:\n - alias: Placeholder to prevent empty sequence\n delay: 0\n - conditions:\n condition: trigger\n id: no_holiday\n sequence:\n - action: input_boolean.turn_off\n target:\n entity_id: input_boolean.op_vakantie\n - conditions:\n condition: trigger\n id: holiday_over\n sequence:\n - action: input_boolean.turn_off\n target:\n entity_id: input_boolean.vakantie\n - if:\n - alias: No guest\n condition: state\n entity_id: input_boolean.gast\n state: 'off'\n then:\n - variables:\n switches: \"{{\\n integration_entities('esphome')\\n | select('is_state',\\\n \\ 'Detached')\\n | map('replace', 'select', 'switch')\\n | map('replace',\\\n \\ '_button_type', '')\\n | select('has_value')\\n | list\\n}}\\n\"\n - action: switch.turn_on\n target:\n entity_id: '{{ switches }}'\n - delay: 20\n - variables:\n lights: \"{{\\n switches\\n | map('regex_replace', '^switch.shelly1_|^switch.sonoff_',\\\n \\ 'light.')\\n | select('has_value')\\n | list\\n}}\\n\"\n - action: light.turn_off\n target:\n entity_id: '{{ lights }}'", "config": [ { "name": "Guest mode input boolean", "room": null, "type": "input_boolean", "id": { "entity_id": "input_boolean.gast", "device_id": null } }, { "name": "House mode sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.house_mode", "device_id": null } }, { "name": "Home zone", "room": null, "type": "zone", "id": { "entity_id": "zone.home", "device_id": null } }, { "name": "Mobile app Pixel 10 Pro", "room": null, "type": "notify", "id": { "entity_id": "notify.mobile_app_pixel_10_pro", "device_id": null } }, { "name": "On vacation input boolean", "room": null, "type": "input_boolean", "id": { "entity_id": "input_boolean.op_vakantie", "device_id": null } }, { "name": "Vacation input boolean", "room": null, "type": "input_boolean", "id": { "entity_id": "input_boolean.vakantie", "device_id": null } }, { "name": "Thuis Martijn distance sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.thuis_martijn_distance", "device_id": null } } ] }, { "id": "6d6452d1-f65e-49c5-9ed6-3c6c8754911a", "automation": "- id: 6d6452d1-f65e-49c5-9ed6-3c6c8754911a\n alias: Turn on/off lights in the morning during holidays\n mode: single\n max_exceeded: silent\n triggers:\n - trigger: time\n at: 06:30\n conditions:\n - alias: Holiday mode on?\n condition: state\n entity_id: sensor.house_mode\n state: Vakantie\n - alias: Guest mode off\n condition: state\n entity_id: input_boolean.gast\n state: 'off'\n actions:\n - variables:\n light_list:\n - light.floris_template\n - light.pepijn_template\n light_select: '{{ range(0,1) | random }}'\n light_select2: '{{ range(0,1) | random }}'\n - alias: Random delay before lights are turned on\n delay:\n minutes: '{{ range(0,60) | random }}'\n - alias: Turn on light in master bedroom\n action: light.turn_on\n target:\n entity_id: light.slaapkamer_plafond_template\n - alias: Another delay\n delay:\n minutes: '{{ range(3,8) | random }}'\n - alias: Turn light in one of the children bedrooms on\n action: light.turn_on\n target:\n entity_id: '{{ light_list[light_select] }}'\n - alias: Another delay\n delay:\n minutes: '{{ range(2,8) | random }}'\n - alias: Turn on light in other bedroom\n action: light.turn_on\n target:\n entity_id: '{{ light_list[0 if light_select == 1 else 1] }}'\n - alias: Even more delay\n delay:\n minutes: '{{ range(20,30) | random }}'\n - alias: Run morning script\n action: script.turn_on\n target:\n entity_id: script.good_morning_routine\n - alias: Even more delay\n delay:\n minutes: '{{ range(10,25) | random }}'\n - alias: Turn of light in one children bedroom\n action: light.turn_off\n target:\n entity_id: '{{ light_list[light_select2] }}'\n - alias: Delay.. again..\n delay:\n minutes: '{{ range(2,8) | random }}'\n - alias: And turn off the other children bedroom's light\n action: light.turn_off\n target:\n entity_id: '{{ light_list[0 if light_select2 == 1 else 1] }}'\n - alias: STOP WITH THESE DELAYS!\n delay:\n minutes: '{{ range(3,8) | random }}'\n - alias: Turn off master bedroom light\n action: light.turn_off\n target:\n entity_id: light.slaapkamer_plafond_template", "config": [ { "name": "Guest mode input boolean", "room": null, "type": "input_boolean", "id": { "entity_id": "input_boolean.gast", "device_id": null } }, { "name": "House mode sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.house_mode", "device_id": null } }, { "name": "Floris template light", "room": "floris_bedroom", "type": "light", "id": { "entity_id": "light.floris_template", "device_id": null } }, { "name": "Pepijn template light", "room": "pepijn_bedroom", "type": "light", "id": { "entity_id": "light.pepijn_template", "device_id": null } }, { "name": "Master bedroom ceiling template light", "room": "master_bedroom", "type": "light", "id": { "entity_id": "light.slaapkamer_plafond_template", "device_id": null } }, { "name": "Good morning routine script", "room": null, "type": "script", "id": { "entity_id": "script.good_morning_routine", "device_id": null } }, { "name": "Pepijn light", "room": "pepijn_bedroom", "type": "light", "id": { "entity_id": "light.pepijn", "device_id": null } }, { "name": "Floris light", "room": "floris_bedroom", "type": "light", "id": { "entity_id": "light.floris", "device_id": null } } ] }, { "id": "2a73c7ac-123a-4d5b-99dd-9a0bec93e125", "automation": "- id: 2a73c7ac-123a-4d5b-99dd-9a0bec93e125\n alias: Turn lights on/off when it is time to go to bed during holidays\n mode: single\n max_exceeded: silent\n triggers:\n - trigger: time\n at: '22:00'\n conditions:\n - alias: Holiday mode on?\n condition: state\n entity_id: sensor.house_mode\n state: Vakantie\n - alias: Guest mode off\n condition: state\n entity_id: input_boolean.gast\n state: 'off'\n actions:\n - alias: Random delay to turn light on\n delay:\n minutes: '{{ range(0,30) | random }}'\n - alias: Turn light bedroom on\n action: light.turn_on\n target:\n entity_id: light.slaapkamer_plafond_template\n - alias: Random delay to turn light downstairs off\n delay:\n minutes: '{{ range(5,10) | random }}'\n - alias: Turn lights downstairs off\n action: light.turn_off\n target:\n entity_id: light.groep_beneden\n - alias: Turn all lights off\n delay:\n minutes: '{{ range(15,20) | random }}'\n - alias: Alle lampen uit\n action: light.turn_off\n target:\n entity_id: light.groep_huis", "config": [ { "name": "Guest mode input boolean", "room": null, "type": "input_boolean", "id": { "entity_id": "input_boolean.gast", "device_id": null } }, { "name": "House mode sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.house_mode", "device_id": null } }, { "name": "Master bedroom ceiling template light", "room": "master_bedroom", "type": "light", "id": { "entity_id": "light.slaapkamer_plafond_template", "device_id": null } }, { "name": "Downstairs light group", "room": null, "type": "light", "id": { "entity_id": "light.groep_beneden", "device_id": null } }, { "name": "Whole house light group", "room": null, "type": "light", "id": { "entity_id": "light.groep_huis", "device_id": null } }, { "name": "Groep", "room": null, "type": "light", "id": { "entity_id": "light.groep_", "device_id": null } } ] }, { "id": "b2977df5-1481-4b19-b56a-ae79bbf9659d", "automation": "- id: b2977df5-1481-4b19-b56a-ae79bbf9659d\n alias: Lights bedrooms children during holidays\n mode: parallel\n max_exceeded: silent\n triggers:\n - trigger: time\n id: floris_template\n at: '19:00'\n - trigger: time\n id: pepijn_template\n at: '19:15'\n conditions:\n - alias: Holiday mode on?\n condition: state\n entity_id: sensor.house_mode\n state: Vakantie\n - alias: Guest mode off\n condition: state\n entity_id: input_boolean.gast\n state: 'off'\n actions:\n - alias: Random delay to turn light on\n delay:\n minutes: '{{ range(0,30) | random }}'\n - alias: Turn light on\n action: light.turn_on\n target:\n entity_id: light.{{ trigger.id }}\n - alias: Random delay to turn light off\n delay:\n minutes: '{{ range(20,40) | random }}'\n - alias: Turn light off\n action: light.turn_off\n target:\n entity_id: light.{{ trigger.id }}", "config": [ { "name": "Guest mode input boolean", "room": null, "type": "input_boolean", "id": { "entity_id": "input_boolean.gast", "device_id": null } }, { "name": "House mode sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.house_mode", "device_id": null } } ] }, { "id": "d4fa325e-c2b5-4ec8-8c51-e574fa105eca", "automation": "- id: d4fa325e-c2b5-4ec8-8c51-e574fa105eca\n alias: Sunshade outside during holidays\n mode: single\n max_exceeded: silent\n triggers:\n - trigger: time\n id: screen_open\n at: 06:30\n - trigger: time\n id: screen_close\n at: '14:00'\n conditions:\n - alias: Holiday mode on?\n condition: state\n entity_id: sensor.house_mode\n state: Vakantie\n - alias: Guest mode off\n condition: state\n entity_id: input_boolean.gast\n state: 'off'\n actions:\n - alias: In of uit?\n choose:\n - conditions:\n - condition: trigger\n id: screen_open\n - alias: Warm day?\n condition: template\n value_template: '{{ states(''sensor.weather_combined_max_temp_today'') | float(25)\n >= 22 }}'\n - alias: Sunny day?\n condition: template\n value_template: '{{ states(''sensor.weather_combined_daily_condition'') in\n [''partly_cloudy'', ''sunny'', ''unavailable'', ''unknown''] }}\n\n '\n sequence:\n - alias: Random delay\n delay:\n minutes: '{{ range(0, 60) | random }}'\n - alias: Open sunshade\n action: cover.open_cover\n target:\n entity_id: cover.veranda\n - conditions:\n - condition: trigger\n id: screen_close\n sequence:\n - alias: Random delay\n delay:\n minutes: '{{ range(0, 60) | random }}'\n - alias: Close sunshade\n action: cover.close_cover\n target:\n entity_id: cover.veranda", "config": [ { "name": "Guest mode input boolean", "room": null, "type": "input_boolean", "id": { "entity_id": "input_boolean.gast", "device_id": null } }, { "name": "House mode sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.house_mode", "device_id": null } }, { "name": "Veranda cover", "room": "veranda", "type": "cover", "id": { "entity_id": "cover.veranda", "device_id": null } }, { "name": "Weather combined max temp today sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.weather_combined_max_temp_today", "device_id": null } }, { "name": "Weather combined daily condition sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.weather_combined_daily_condition", "device_id": null } } ] }, { "id": "b5652fa9-d044-40b8-b53e-62886309dca8", "automation": "- id: b5652fa9-d044-40b8-b53e-62886309dca8\n alias: Arrive home with guest mode on\n triggers:\n - trigger: state\n entity_id: person.martijn\n from: not_home\n to: home\n conditions:\n - alias: Guest Mode on\n condition: state\n entity_id: input_boolean.gast\n state: 'on'\n actions:\n - alias: Send guest mode notification\n action: notify.mobile_app_pixel_10_pro\n data:\n title: ๐Ÿก Welkom thuis\n message: Mag de gastmodus uit?\n data:\n channel: Guest\n ttl: 0\n priority: high\n notification_icon: mdi:home\n tag: Guest\n actions:\n - action: guest_mode_off\n title: Yep\n - action: guest_mode_on\n title: Nope\n - alias: Wait for user response to guest mode question\n wait_for_trigger:\n - trigger: event\n event_type: mobile_app_notification_action\n event_data:\n action: guest_mode_off\n - trigger: event\n event_type: mobile_app_notification_action\n event_data:\n action: guest_mode_on\n - alias: Turn of guest mode if needed\n choose:\n - conditions: '{{ wait.trigger.event.data.action == ''guest_mode_off'' }}'\n sequence:\n - alias: Turn of guest mode\n action: input_boolean.turn_off\n target:\n entity_id: input_boolean.gast", "config": [ { "name": "Guest mode input boolean", "room": null, "type": "input_boolean", "id": { "entity_id": "input_boolean.gast", "device_id": null } }, { "name": "Mobile app Pixel 10 Pro", "room": null, "type": "notify", "id": { "entity_id": "notify.mobile_app_pixel_10_pro", "device_id": null } }, { "name": "Person Martijn", "room": null, "type": "person", "id": { "entity_id": "person.martijn", "device_id": null } } ] }, { "id": "8efddd53-2d4d-461e-bc80-a630a5ca244c", "automation": "- id: 8efddd53-2d4d-461e-bc80-a630a5ca244c\n alias: Apply correct settings for IKEA lights\n mode: parallel\n max: 50\n max_exceeded: silent\n triggers:\n - trigger: event\n event_type: call_service\n event_data:\n domain: light\n service: turn_on\n id: turn_on\n - trigger: event\n event_type: call_service\n event_data:\n domain: light\n service: toggle\n id: toggle\n variables:\n entity_test: '{{ trigger.event.data.service_data.entity_id }}'\n entities: \"{% set entities = trigger.event.data.service_data.entity_id %} {% set\\\n \\ entities = entities if entities is list else [entities] %} {% set ns = namespace(ikea=[])\\\n \\ %} {% for e in entities if device_id(e) in label_devices('ikea') %}\\n {%\\\n \\ set ns.ikea = ns.ikea + [e] %}\\n{% endfor %} {{ (entities | select('in', label_entities('ikea'))\\\n \\ | list + ns.ikea) | unique | list }}\\n\"\n attr_data: '{{ trigger.event.data.service_data.keys() | reject(''in'', [''transition'',\n ''entity_id'']) | list }}'\n toggle: '{{ trigger.event.data.service == ''toggle'' }}'\n conditions:\n - alias: Check if there is at least one IKEA light targeted, and multiple attributes\n changed\n condition: template\n value_template: '{{ entities | count > 0 and attr_data | count > 1 }}'\n actions:\n - alias: Short delay in case the toggle service call was used to ensure the light\n has time to turn off\n if: '{{ toggle }}'\n then:\n - alias: Short delay\n delay: 0.5\n - alias: Repeat loop to set each attribute to the right value\n repeat:\n for_each: '{{ attr_data }}'\n sequence:\n - alias: Set attribute to variable because repeat.item var will be overwritten\n variables:\n attr: '{{ repeat.item }}'\n - alias: Repeat loop for each light\n repeat:\n for_each: '{{ (entities | select(''is_state'', ''on'') | list) if toggle\n else entities }}\n\n '\n sequence:\n - alias: Check if attribute needs to be changed\n if: '{{ state_attr(repeat.item, attr) != trigger.event.data.service_data[attr]\n }}'\n then:\n - alias: Set light entity to correct attribute value\n action: light.turn_on\n target:\n entity_id: '{{ repeat.item }}'\n data: \"{% set other_attr = attr_data | reject('eq', attr) | list %}\\\n \\ {{\\n dict(\\n trigger.event.data.service_data.items()\\n \\\n \\ | rejectattr('0', 'in', ['entity_id'] + other_attr)\\n \\\n \\ )\\n}}\\n\"\n - alias: Very short delay\n delay:\n seconds: 0.1", "config": [] }, { "id": "ef97c1e3-8e09-4b7c-9973-cc5379d6239d", "automation": "- id: ef97c1e3-8e09-4b7c-9973-cc5379d6239d\n alias: Warn when not all Dutch intents are provided\n triggers:\n - trigger: state\n entity_id: binary_sensor.all_intents_provided\n to: 'off'\n actions:\n - alias: Send message\n action: rest_command.signal_send_message\n data:\n message: 'โญ Nederlands heeft geen ster meer, er zijn dus nieuwe intents bij\n gekomen. Check welke intents missen.\n\n '", "config": [ { "name": "All intents provided binary sensor", "room": null, "type": "binary_sensor", "id": { "entity_id": "binary_sensor.all_intents_provided", "device_id": null } }, { "name": "Rest command signal send message", "room": null, "type": "rest_command", "id": { "entity_id": null, "device_id": "rest_command.signal_send_message" } } ] }, { "id": "7680c082-f8f8-402d-ba9c-dc2064de40b4", "automation": "- id: 7680c082-f8f8-402d-ba9c-dc2064de40b4\n alias: Turn on nightlight for Pepijn and Floris\n triggers:\n - alias: Pepijn's main light turned off\n trigger: state\n entity_id: light.pepijn_template\n to: 'off'\n id: pepijn\n - alias: Pepijn's nightlight enabled\n trigger: state\n entity_id: input_boolean.nachtlampje_pepijn\n to: 'on'\n id: pepijn\n - alias: Floris's main light turned off\n trigger: state\n entity_id: light.floris_template\n to: 'off'\n id: floris\n - alias: Floris's nightlight enabled\n trigger: state\n entity_id: input_boolean.nachtlampje_floris\n to: 'on'\n id: floris\n - alias: Trigger sentence\n trigger: conversation\n command:\n - floris gaat slapen\n id: floris\n conditions:\n - '{{ is_state(''input_boolean.nachtlampje_'' ~ trigger.id, ''on'') }}'\n - '{{ is_state(''binary_sensor.'' ~ trigger.id ~ ''_sleeping'', ''on'') }}'\n - '{{ is_state(''light.groep_'' ~ trigger.id, ''off'') }}'\n actions:\n - if: '{{ trigger.id == ''pepijn'' }}'\n then:\n - alias: Turn on night light Pepijn\n action: light.turn_on\n target:\n entity_id: \"{% set area = 'slaapkamer_pepijn' %} {{ \\n intersect(label_entities('night_light'),\\\n \\ area_entities(area))\\n | select('is_state', 'on')\\n | list\\n}}\\n\"\n else:\n - alias: Turn on night light Floris\n action: light.turn_on\n target:\n entity_id: \"{% set area = 'slaapkamer_floris' %} {{ \\n intersect(label_entities('night_light'),\\\n \\ area_entities(area))\\n | select('is_state', 'on')\\n | list\\n}}\\n\"", "config": [ { "name": "Floris template light", "room": "floris_bedroom", "type": "light", "id": { "entity_id": "light.floris_template", "device_id": null } }, { "name": "Pepijn template light", "room": "pepijn_bedroom", "type": "light", "id": { "entity_id": "light.pepijn_template", "device_id": null } }, { "name": "Pepijn light", "room": "pepijn_bedroom", "type": "light", "id": { "entity_id": "light.pepijn", "device_id": null } }, { "name": "Floris light", "room": "floris_bedroom", "type": "light", "id": { "entity_id": "light.floris", "device_id": null } }, { "name": "Pepijn nightlight input boolean", "room": "pepijn_bedroom", "type": "input_boolean", "id": { "entity_id": "input_boolean.nachtlampje_pepijn", "device_id": null } }, { "name": "Floris nightlight input boolean", "room": "floris_bedroom", "type": "input_boolean", "id": { "entity_id": "input_boolean.nachtlampje_floris", "device_id": null } }, { "name": "Nachtlampje", "room": null, "type": "input_boolean", "id": { "entity_id": "input_boolean.nachtlampje_", "device_id": null } }, { "name": "Groep", "room": null, "type": "light", "id": { "entity_id": "light.groep_", "device_id": null } } ] }, { "id": "d9126ef3-31ed-4058-a8d8-564f6faaf3c5", "automation": "- id: d9126ef3-31ed-4058-a8d8-564f6faaf3c5\n alias: Dim Reading light Floris when used as night light\n triggers:\n - alias: Night lights on, else off\n trigger: state\n entity_id: binary_sensor.dashboard_floris_slaapt\n to: 'on'\n variables:\n target_brightness: 10\n - alias: Parent bedtime\n trigger: state\n entity_id: sensor.house_mode\n to:\n - Slapen\n - Tandenpoetsen\n variables:\n target_brightness: 3\n conditions:\n - alias: Reading light floris is on (as night light)\n condition: state\n entity_id: light.floris_leeslamp\n state: 'on'\n action:\n - alias: Dim the reading light\n action: light.turn_on\n target:\n entity_id: light.floris_leeslamp\n data:\n brightness_pct: '{{ target_brightness }}'", "config": [ { "name": "House mode sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.house_mode", "device_id": null } }, { "name": "Floris light", "room": "floris_bedroom", "type": "light", "id": { "entity_id": "light.floris", "device_id": null } }, { "name": "Floris reading light", "room": "floris_bedroom", "type": "light", "id": { "entity_id": "light.floris_leeslamp", "device_id": null } }, { "name": "Dashboard Floris sleeps binary sensor", "room": "floris_bedroom", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.dashboard_floris_slaapt", "device_id": null } } ] }, { "id": "e03d310f-0611-4d9c-9781-0487993c4976", "automation": "- id: e03d310f-0611-4d9c-9781-0487993c4976\n alias: Xiaomi button kitchen\n triggers:\n - alias: Kitchen button pressed\n trigger: state\n entity_id: event.knop_keuken_action\n not_from: unavailable\n variables:\n event: '{{ trigger.to_state.attributes.event_type | default(''unknown'', true)\n }}'\n actions:\n - alias: Which click type\n choose:\n - conditions: '{{ event == ''single'' }}'\n sequence:\n - alias: Toggle kitchen spots\n action: light.toggle\n data:\n entity_id: light.keukenspotjes\n - conditions: '{{ event == ''double'' }}'\n sequence:\n - alias: Toggle main kitchen light\n action: light.toggle\n target:\n entity_id: light.keuken\n - conditions: '{{ event == ''hold'' }}'\n sequence: []\n - conditions: '{{ event == ''release'' }}'\n sequence: []", "config": [ { "name": "Kitchen light", "room": "kitchen", "type": "light", "id": { "entity_id": "light.keuken", "device_id": null } }, { "name": "Kitchen spots", "room": "kitchen", "type": "light", "id": { "entity_id": "light.keukenspotjes", "device_id": null } }, { "name": "Kitchen button event", "room": "kitchen", "type": "event", "id": { "entity_id": "event.knop_keuken_action", "device_id": null } } ] }, { "id": "fe09f19c-86eb-4bd8-be3f-096bed6308f1", "automation": "- id: fe09f19c-86eb-4bd8-be3f-096bed6308f1\n alias: Espresso machine plug off\n mode: restart\n max_exceeded: silent\n triggers:\n - alias: Espresso machine turned on\n trigger: state\n entity_id: switch.espresso\n from: 'off'\n to: 'on'\n - alias: Home Assistant started\n trigger: homeassistant\n event: start\n - alias: Automations reloaded\n trigger: event\n event_type: automation_reloaded\n - alias: Espresso machine power above 25W\n trigger: numeric_state\n entity_id: sensor.espresso_power\n above: 25\n id: active\n conditions:\n - alias: Espressomachine on?\n condition: state\n entity_id: switch.espresso\n state: 'on'\n actions:\n - alias: Trigger type\n choose:\n - conditions:\n - condition: trigger\n id: active\n sequence:\n - alias: Espresso machine inactive for 31 minutes\n wait_for_trigger:\n - alias: Power dropped below 25W for 31 minutes\n trigger: numeric_state\n entity_id: sensor.espresso_power\n below: 25\n for: 00:31:00\n default:\n - delay:\n minutes: 31\n - alias: Turn plug off\n action: switch.turn_off\n target:\n entity_id: switch.espresso", "config": [ { "name": "Espresso switch", "room": "kitchen", "type": "switch", "id": { "entity_id": "switch.espresso", "device_id": null } }, { "name": "Espresso power sensor", "room": "kitchen", "type": "sensor", "id": { "entity_id": "sensor.espresso_power", "device_id": null } } ] }, { "id": "b776ef0d-e5f7-42d1-8bf8-744fe2b7127b", "automation": "- id: b776ef0d-e5f7-42d1-8bf8-744fe2b7127b\n alias: Extractor hood back on in the morning\n mode: single\n max_exceeded: silent\n triggers:\n - alias: Ground floor lights turned on\n trigger: state\n entity_id: light.groep_beneden\n to: 'on'\n conditions:\n - alias: Extractor hood off?\n condition: state\n entity_id: switch.afzuigkap\n state: 'off'\n - alias: Daytime\n condition: time\n after: ' 06:00:00'\n before: ' 21:00:00'\n actions:\n - alias: Turn plug back on\n action: switch.turn_on\n target:\n entity_id: switch.afzuigkap", "config": [ { "name": "Extractor hood switch", "room": "kitchen", "type": "switch", "id": { "entity_id": "switch.afzuigkap", "device_id": null } }, { "name": "Downstairs light group", "room": null, "type": "light", "id": { "entity_id": "light.groep_beneden", "device_id": null } }, { "name": "Groep", "room": null, "type": "light", "id": { "entity_id": "light.groep_", "device_id": null } } ] }, { "id": "0a454b0d-156e-4938-945e-d2bfb9b3cbd7", "automation": "- alias: Power usage kitchen\n id: 0a454b0d-156e-4938-945e-d2bfb9b3cbd7\n mode: single\n max_exceeded: silent\n triggers:\n - alias: Fridge power high for 10 minutes\n trigger: numeric_state\n entity_id: sensor.koelkast_power\n above: 80\n for: 00:10:00\n conditions:\n - alias: 'Rate limit: only send notification once per hour'\n condition: template\n value_template: '{{ as_timestamp(now()) - as_timestamp(state_attr(''automation.power_usage_kitchen'',\n ''last_triggered''), 0) > 3600 }}\n\n '\n actions:\n - alias: Send fridge power warning notification\n action: notify.mobile_app_pixel_10_pro\n data:\n title: Stroomverbruik koelkast\n message: De koelkast verbruikt verdacht veel stroom, check of hij niet open\n staat\n data:\n channel: Fridge\n ttl: 0\n priority: high\n tag: fridge_alert\n notification_icon: mdi:fridge-alert", "config": [ { "name": "Mobile app Pixel 10 Pro", "room": null, "type": "notify", "id": { "entity_id": "notify.mobile_app_pixel_10_pro", "device_id": null } }, { "name": "Refrigerator power sensor", "room": "kitchen", "type": "sensor", "id": { "entity_id": "sensor.koelkast_power", "device_id": null } } ] }, { "id": "d826bab6-6791-425b-90b6-cae882317c5f", "automation": "- id: d826bab6-6791-425b-90b6-cae882317c5f\n alias: Water kettle plug off\n mode: restart\n max_exceeded: silent\n triggers:\n - alias: Water kettle turned on\n trigger: state\n entity_id: switch.waterkoker\n from: 'off'\n to: 'on'\n - alias: Home Assistant started\n trigger: homeassistant\n event: start\n - alias: Water kettle power above 25W\n trigger: numeric_state\n entity_id: sensor.waterkoker_power\n above: 25\n id: active\n conditions:\n - alias: Kettle on?\n condition: state\n entity_id: switch.waterkoker\n state: 'on'\n actions:\n - alias: Trigger type\n choose:\n - conditions:\n - condition: trigger\n id: active\n sequence:\n - alias: Kettle inactive for 10 minutes\n wait_for_trigger:\n - alias: Power dropped below 25W for 10 minutes\n trigger: numeric_state\n entity_id: sensor.waterkoker_power\n below: 25\n for: 00:10:00\n default:\n - delay:\n minutes: 10\n - alias: Turn plug off\n action: switch.turn_off\n target:\n entity_id: switch.waterkoker", "config": [ { "name": "Water kettle switch", "room": "kitchen", "type": "switch", "id": { "entity_id": "switch.waterkoker", "device_id": null } }, { "name": "Water kettle power sensor", "room": "kitchen", "type": "sensor", "id": { "entity_id": "sensor.waterkoker_power", "device_id": null } } ] }, { "id": "f0fc0c8c-662d-4477-9002-5ec4b49da7ba", "automation": "- id: f0fc0c8c-662d-4477-9002-5ec4b49da7ba\n alias: Change color temperature of lights based on brightness\n mode: parallel\n max_exceeded: silent\n triggers:\n - alias: Light brightness changed\n trigger: state\n entity_id:\n - light.eettafel\n - light.pepijn\n - light.floris\n - light.tv_lamp\n - light.speelhoek\n - light.bedside_lamp\n attribute: brightness\n variables:\n name: '{{ trigger.to_state.object_id }}'\n overrides:\n example_light:\n min_ct: 2000\n max_ct: 6500\n eettafel:\n min_br: 37\n pepijn:\n min_br: 37\n floris:\n min_br: 37\n tv_lamp:\n min_br: 37\n speelhoek:\n min_br: 37\n input_boolean_dimmed: '{{ ''input_boolean.dimmed_'' + name }}'\n light: '{{ trigger.entity_id }}'\n max_ct: '{{ overrides.get(name, {}).get(''max_ct'') | default(state_attr(light,\n ''max_color_temp_kelvin''), true) }}'\n min_ct: '{{ overrides.get(name, {}).get(''min_ct'') | default(state_attr(light,\n ''min_color_temp_kelvin''), true) }}'\n min_br: '{{ overrides.get(name, {}).get(''min_br'') | default(1, true) }}'\n max_br: '{{ overrides.get(name, {}).get(''max_br'') | default(255, true) }}'\n br: '{{ state_attr(trigger.entity_id, ''brightness'') }}'\n color_mode: '{{ state_attr(light, ''color_mode'') | default(''color_temp'', true)\n }}'\n conditions:\n - alias: Light on?\n condition: template\n value_template: '{{ trigger.to_state.state == ''on'' and trigger.from_state.state\n == ''on'' }}'\n - alias: Already dimmed before?\n condition: template\n value_template: '{{ not is_state(input_boolean_dimmed, ''off'') }}'\n - alias: Light on color_temp mode?\n condition: template\n value_template: '{{ color_mode == ''color_temp'' }}'\n - alias: No transition active\n condition: template\n value_template: '{{ state_attr(''group.transition_active'', ''entity_id'') | default([],\n true) | select(''search'', light | replace(''_template'', '''')) | list | count\n == 0 }}'\n actions:\n - alias: Set color temperature based on brightness\n action: light.turn_on\n target:\n entity_id: '{{ light }}'\n data:\n color_temp_kelvin: '{{ [max_ct, min_ct + ((br-min_br) * (max_ct - min_ct) /\n (max_br-min_br)) | int] | min }}\n\n '", "config": [ { "name": "Dining table light", "room": "dining_room", "type": "light", "id": { "entity_id": "light.eettafel", "device_id": null } }, { "name": "TV lamp", "room": "living_room", "type": "light", "id": { "entity_id": "light.tv_lamp", "device_id": null } }, { "name": "Group transition active", "room": null, "type": "group", "id": { "entity_id": "group.transition_active", "device_id": null } }, { "name": "Pepijn light", "room": "pepijn_bedroom", "type": "light", "id": { "entity_id": "light.pepijn", "device_id": null } }, { "name": "Floris light", "room": "floris_bedroom", "type": "light", "id": { "entity_id": "light.floris", "device_id": null } }, { "name": "Speelhoek light", "room": "play_area", "type": "light", "id": { "entity_id": "light.speelhoek", "device_id": null } }, { "name": "Bedside lamp", "room": "master_bedroom", "type": "light", "id": { "entity_id": "light.bedside_lamp", "device_id": null } } ] }, { "id": "5f532453-807b-4170-9a1c-eff2857f73e8", "automation": "- id: 5f532453-807b-4170-9a1c-eff2857f73e8\n alias: Lights off based on lux sensor\n mode: single\n max_exceeded: silent\n triggers:\n - alias: Light level above 100 lux\n trigger: numeric_state\n entity_id: sensor.woonkamer_lux_illuminance_lux\n id: light\n above: 100\n - alias: Light level above 400 lux (very bright)\n trigger: numeric_state\n entity_id: sensor.woonkamer_lux_illuminance_lux\n id: very_light\n above: 400\n conditions:\n - alias: Check if it's daytime (before sunset with offset)\n condition: sun\n before: sunset\n before_offset: 03:00:00\n actions:\n - alias: Light or very light?\n choose:\n - conditions:\n - condition: trigger\n id: light\n sequence:\n - alias: Turn of some lights\n action: light.turn_off\n target:\n entity_id:\n - light.groep_woonkamer\n - light.groep_speelhoek\n - light.keuken\n default:\n - alias: Turn off all lights\n action: light.turn_off\n target:\n entity_id: light.groep_beneden", "config": [ { "name": "Play area light group", "room": "play_area", "type": "light", "id": { "entity_id": "light.groep_speelhoek", "device_id": null } }, { "name": "Downstairs light group", "room": null, "type": "light", "id": { "entity_id": "light.groep_beneden", "device_id": null } }, { "name": "Living room lux illuminance sensor", "room": "living_room", "type": "sensor", "id": { "entity_id": "sensor.woonkamer_lux_illuminance_lux", "device_id": null } }, { "name": "Living room light group", "room": "living_room", "type": "light", "id": { "entity_id": "light.groep_woonkamer", "device_id": null } }, { "name": "Kitchen light", "room": "kitchen", "type": "light", "id": { "entity_id": "light.keuken", "device_id": null } }, { "name": "Groep", "room": null, "type": "light", "id": { "entity_id": "light.groep_", "device_id": null } } ] }, { "id": "3fd99480-be86-44d6-a3dd-678c832d6366", "automation": "- id: 3fd99480-be86-44d6-a3dd-678c832d6366\n alias: Restroom light on and off\n mode: single\n max_exceeded: silent\n triggers:\n - alias: Motion detected in restroom\n trigger: state\n entity_id: binary_sensor.wc_motion_occupancy\n to: 'on'\n from: 'off'\n actions:\n - alias: Turn light on\n action: light.turn_on\n target:\n entity_id: light.wc\n - repeat:\n sequence:\n - alias: Wait until motion sensor triggers again\n wait_for_trigger:\n - alias: Motion detected again\n trigger: state\n entity_id: binary_sensor.wc_motion_occupancy\n to: 'on'\n - alias: Light turned off manually\n trigger: state\n entity_id: light.wc\n to: 'off'\n timeout: 00:06:00\n - if: '{{ wait.trigger is none }}'\n then:\n - alias: Turn light off after timeout\n action: light.turn_off\n target:\n entity_id: light.wc\n until:\n - alias: Check if light is off\n condition: state\n entity_id: light.wc\n state: 'off'", "config": [ { "name": "WC motion occupancy sensor", "room": "restroom", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.wc_motion_occupancy", "device_id": null } }, { "name": "WC light", "room": "restroom", "type": "light", "id": { "entity_id": "light.wc", "device_id": null } } ] }, { "id": "089a1b6a-4dfa-490e-bda3-675de31e1807", "automation": "- id: 089a1b6a-4dfa-490e-bda3-675de31e1807\n alias: LIDL button livingroom\n triggers:\n - alias: LIDL button pressed\n trigger: state\n entity_id: event.knop_tv_hoek_action\n not_from: unavailable\n variables:\n event: '{{ trigger.to_state.attributes.event_type | default(''unknown'', true)\n }}'\n actions:\n - alias: Which click type\n choose:\n - conditions:\n - alias: Short\n condition: template\n value_template: '{{ event == ''on'' }}'\n sequence:\n - alias: toggle led light\n action: light.toggle\n target:\n entity_id: light.tv_lamp\n - conditions:\n - alias: Double press detected\n condition: template\n value_template: '{{ event == ''off'' }}'\n sequence:\n - alias: No action for double press\n stop: Double press - no action configured", "config": [ { "name": "TV lamp", "room": "living_room", "type": "light", "id": { "entity_id": "light.tv_lamp", "device_id": null } }, { "name": "LIDL button livingroom event", "room": "living_room", "type": "event", "id": { "entity_id": "event.knop_tv_hoek_action", "device_id": null } } ] }, { "id": "56046ae8-2eaa-47c0-b6ad-953cd4b5c641", "automation": "- id: 56046ae8-2eaa-47c0-b6ad-953cd4b5c641\n alias: Lights on sunset and arrival home\n mode: single\n max_exceeded: silent\n triggers:\n - alias: It gets dark inside\n trigger: state\n entity_id: binary_sensor.light_inside\n from: 'on'\n to: 'off'\n id: dark\n - alias: House mode changed from away to home\n trigger: state\n entity_id: sensor.house_mode\n from: Afwezig\n to: Thuis\n id: home\n - alias: NVIDIA Shield turned on\n trigger: state\n entity_id: media_player.nvidia_shield\n from: 'off'\n not_to:\n - unavailable\n - unknown\n id: dark\n - alias: Person arrived home\n trigger: state\n entity_id:\n - person.martijn\n - person.marleen\n from: not_home\n to: home\n id: home_while_sleeping\n actions:\n - alias: Arriving home\n choose:\n - conditions:\n - condition: trigger\n id: home_while_sleeping\n - alias: Check if house is in sleep mode\n condition: state\n entity_id: sensor.house_mode\n state: Slapen\n sequence:\n - alias: Turn on dining table light dimmed\n action: light.turn_on\n target:\n entity_id: light.eettafel\n data:\n brightness: 100\n - conditions:\n - condition: trigger\n id: home\n sequence:\n - alias: Turn on extractor hood plug when arriving home\n action: switch.turn_on\n target:\n entity_id: switch.afzuigkap\n - alias: Check if it's not bedtime yet\n condition: time\n after: 06:00\n before: '22:00:00'\n - choose:\n - conditions:\n - condition: trigger\n id:\n - dark\n - shield\n - home\n - alias: Dark inside?\n condition: state\n entity_id: binary_sensor.light_inside\n state: 'off'\n - alias: Check if it's after sunset (with offset)\n condition: sun\n after: sunset\n after_offset: -03:00:00\n - alias: Check if house mode allows lighting\n condition: state\n entity_id: sensor.house_mode\n state:\n - Thuis\n - Gast\n - Vakantie\n sequence:\n - alias: Turn on lights\n action: light.turn_on\n entity_id:\n - light.tv_lamp\n - light.keukenspotjes\n - alias: Turn on play area light\n action: light.turn_on\n entity_id:\n - light.speelhoek\n data:\n brightness: 80\n - alias: Turn on bookcase led\n action: light.turn_on\n entity_id: light.boekenkast\n data:\n brightness_pct: 15\n color_temp_kelvin: 2000\n - alias: TV on, bedtime children or holiday mode\n choose:\n - conditions:\n - alias: After bedtime?\n condition: time\n after: '19:15:00'\n - alias: Check if TV is not on\n not:\n - alias: TV aan?\n condition: state\n entity_id: media_player.nvidia_shield\n state: 'off'\n sequence:\n - alias: Dim some lights\n action: light.turn_on\n target:\n entity_id:\n - light.eettafel\n data:\n brightness: 100", "config": [ { "name": "Bookcase light", "room": "play_area", "type": "light", "id": { "entity_id": "light.boekenkast", "device_id": null } }, { "name": "House mode sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.house_mode", "device_id": null } }, { "name": "Dining table light", "room": "dining_room", "type": "light", "id": { "entity_id": "light.eettafel", "device_id": null } }, { "name": "TV lamp", "room": "living_room", "type": "light", "id": { "entity_id": "light.tv_lamp", "device_id": null } }, { "name": "Nvidia Shield", "room": "living_room", "type": "media_player", "id": { "entity_id": "media_player.nvidia_shield", "device_id": null } }, { "name": "Person Martijn", "room": null, "type": "person", "id": { "entity_id": "person.martijn", "device_id": null } }, { "name": "Person Marleen", "room": null, "type": "person", "id": { "entity_id": "person.marleen", "device_id": null } }, { "name": "Extractor hood switch", "room": "kitchen", "type": "switch", "id": { "entity_id": "switch.afzuigkap", "device_id": null } }, { "name": "Kitchen light", "room": "kitchen", "type": "light", "id": { "entity_id": "light.keuken", "device_id": null } }, { "name": "Light inside binary sensor", "room": null, "type": "binary_sensor", "id": { "entity_id": "binary_sensor.light_inside", "device_id": null } }, { "name": "Kitchen spots", "room": "kitchen", "type": "light", "id": { "entity_id": "light.keukenspotjes", "device_id": null } }, { "name": "Speelhoek light", "room": "play_area", "type": "light", "id": { "entity_id": "light.speelhoek", "device_id": null } } ] }, { "id": "cfeadbfe-57cd-4034-b993-e09a4eb3ce7d", "automation": "- id: cfeadbfe-57cd-4034-b993-e09a4eb3ce7d\n alias: Assist Satellites off when TV turns on\n mode: single\n max_exceeded: silent\n triggers:\n - alias: NVIDIA Shield turned on\n trigger: state\n entity_id: media_player.nvidia_shield\n from: 'off'\n actions:\n - variables:\n playing: \"{{\\n [\\n 'media_player.woonkamer',\\n 'media_player.keuken'\\n\\\n \\ ]\\n | select('is_state', 'playing')\\n | list\\n}}\\n\"\n - if: '{{ playing | count > 0 }}'\n then:\n - alias: Turn off Voice Satellites that are playing\n action: media_player.turn_off\n target:\n entity_id: '{{ playing }}'", "config": [ { "name": "Nvidia Shield", "room": "living_room", "type": "media_player", "id": { "entity_id": "media_player.nvidia_shield", "device_id": null } }, { "name": "Media player Woonkamer", "room": "living_room", "type": "media_player", "id": { "entity_id": "media_player.woonkamer", "device_id": null } } ] }, { "id": "'1752261526546'", "automation": "- id: '1752261526546'\n alias: Set Shield to Launcher on start\n triggers:\n - alias: Shield turned on from off to idle\n trigger: state\n entity_id:\n - media_player.nvidia_shield\n to: idle\n from: 'off'\n actions:\n - alias: Send HOME command to Shield\n action: androidtv.adb_command\n data:\n command: HOME\n target:\n entity_id: media_player.nvidia_shield\n mode: single", "config": [ { "name": "Nvidia Shield", "room": "living_room", "type": "media_player", "id": { "entity_id": "media_player.nvidia_shield", "device_id": null } } ] }, { "id": "95757e21-9bcd-4379-a1c8-a7e2d502d2de", "automation": "- id: 95757e21-9bcd-4379-a1c8-a7e2d502d2de\n alias: Dude, Where's my car\n triggers:\n - alias: Martijn disconnected from Android Auto\n trigger: state\n entity_id: binary_sensor.pixel_10_pro_android_auto\n from: 'on'\n to: 'off'\n id: leave_car\n - alias: Home Assistant started\n trigger: homeassistant\n event: start\n id: ha_start\n variables:\n loc: \"{{\\n states('sensor.pixel_10_pro_geocoded_location')\\n if trigger.id ==\\\n \\ 'leave_car'\\n else state_attr('sensor.variables', 'variables').get('car_location',\\\n \\ {}).get('location')\\n}}\\n\"\n lat: \"{{\\n state_attr('person.martijn', 'latitude')\\n if trigger.id == 'leave_car'\\n\\\n \\ else state_attr('sensor.variables', 'variables').get('car_location', {}).get('latitude')\\n\\\n }}\\n\"\n lon: \"{{\\n state_attr('person.martijn', 'longitude')\\n if trigger.id == 'leave_car'\\n\\\n \\ else state_attr('sensor.variables', 'variables').get('car_location', {}).get('longitude')\\n\\\n }}\\n\"\n actions:\n - if:\n - condition: trigger\n id: leave_car\n then:\n - alias: Store car location in variables\n event: set_variable\n event_data:\n key: car_location\n value:\n location: '{{ loc }}'\n latitude: '{{ lat }}'\n longitude: '{{ lon }}'\n set_timestamp: false\n - alias: Update car device tracker location\n action: device_tracker.see\n data:\n dev_id: car\n host_name: Locatie Auto\n location_name: '{{ loc }}'\n gps:\n - '{{ lat }}'\n - '{{ lon }}'", "config": [ { "name": "Person Martijn", "room": null, "type": "person", "id": { "entity_id": "person.martijn", "device_id": null } }, { "name": "Pixel 10 Pro Android Auto", "room": null, "type": "binary_sensor", "id": { "entity_id": "binary_sensor.pixel_10_pro_android_auto", "device_id": null } }, { "name": "Pixel 10 Pro geocoded location sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.pixel_10_pro_geocoded_location", "device_id": null } }, { "name": "Variables sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.variables", "device_id": null } } ] }, { "id": "e666e5ab-6dda-4c3b-8a1e-980104c2f102", "automation": "- id: e666e5ab-6dda-4c3b-8a1e-980104c2f102\n alias: Actions for music buttons kids\n triggers:\n - alias: Trigger on button press\n trigger: state\n entity_id:\n - event.knop_muziek_pepijn_action\n - event.knop_muziek_floris_action\n not_from: unavailable\n not_to: unavailable\n actions:\n - alias: Define variables\n variables:\n area: '{{ area_id(trigger.entity_id) }}'\n event_type: '{{ trigger.to_state.attributes.event_type | default(none) }}'\n data_mapper:\n slaapkamer_floris:\n playlist: library://playlist/252\n player: media_player.floris\n exclude_lights: []\n slaapkamer_pepijn:\n playlist: library://playlist/251\n player: media_player.pepijn\n exclude_lights:\n - light.pepijn_template\n - light.pepijn\n player: \"{{\\n integration_entities('music_assistant')\\n | select('in', area_entities(area))\\n\\\n \\ | first\\n | default\\n}}\\n\"\n - alias: Perform the right actions based on the button press\n choose:\n - conditions:\n - alias: Light on button short press\n condition: template\n value_template: '{{ event_type == ''on'' }}'\n sequence:\n - alias: Enable party lights\n action: script.party_party\n data:\n party_on: true\n area: '{{ area }}'\n exclude_lights: '{{ data_mapper[area].exclude_lights }}'\n set_by: Music Button\n - alias: Enable shuffle\n action: media_player.shuffle_set\n target:\n entity_id: '{{ data_mapper[area].player }}'\n data:\n shuffle: true\n - alias: Start playlist\n action: music_assistant.play_media\n target:\n entity_id: '{{ data_mapper[area].player }}'\n data:\n enqueue: replace\n media_id: '{{ data_mapper[area].playlist }}'\n - conditions:\n - alias: Light off button short press\n condition: template\n value_template: '{{ event_type == ''off'' }}'\n sequence:\n - alias: Disable party lights\n action: script.party_party\n data:\n party_on: false\n area: '{{ area }}'\n set_by: Music Button\n - alias: Start playlist\n action: media_player.turn_off\n target:\n entity_id: '{{ data_mapper[area].player }}'\n - conditions:\n - alias: Left arrow short press\n condition: template\n value_template: '{{ event_type == ''arrow_left_click'' }}'\n sequence:\n - alias: Previous song\n action: media_player.media_previous_track\n target:\n entity_id: '{{ data_mapper[area].player }}'\n - conditions:\n - alias: Right arrow short press\n condition: template\n value_template: '{{ event_type == ''arrow_right_click'' }}'\n sequence:\n - alias: Next song\n action: media_player.media_next_track\n target:\n entity_id: '{{ data_mapper[area].player }}'\n - conditions:\n - alias: Light on button short press\n condition: template\n value_template: '{{ event_type == ''brightness_move_up'' }}'\n sequence:\n - alias: Enable party lights\n action: script.party_party\n data:\n party_on: true\n area: '{{ area }}'\n exclude_lights: '{{ data_mapper[area].exclude_lights }}'\n set_by: Music Button\n - conditions:\n - alias: Light off button long press\n condition: template\n value_template: '{{ event_type == ''brightness_move_down'' }}'\n sequence:\n - alias: Disable party lights\n action: script.party_party\n data:\n party_on: false\n area: '{{ area }}'\n set_by: Music Button\n - conditions:\n - alias: Left arrow long press\n condition: template\n value_template: '{{ event_type == ''arrow_left_hold'' }}'\n sequence:\n - alias: Start playlist\n action: media_player.turn_off\n target:\n entity_id: '{{ data_mapper[area].player }}'\n - conditions:\n - alias: Right arrow long press\n condition: template\n value_template: '{{ event_type == ''arrow_right_hold'' }}'\n sequence:\n - alias: Enable shuffle\n action: media_player.shuffle_set\n target:\n entity_id: '{{ data_mapper[area].player }}'\n data:\n shuffle: true\n - alias: Start playlist\n action: music_assistant.play_media\n target:\n entity_id: '{{ data_mapper[area].player }}'\n data:\n enqueue: replace\n media_id: '{{ data_mapper[area].playlist }}'", "config": [ { "name": "Pepijn template light", "room": "pepijn_bedroom", "type": "light", "id": { "entity_id": "light.pepijn_template", "device_id": null } }, { "name": "Pepijn light", "room": "pepijn_bedroom", "type": "light", "id": { "entity_id": "light.pepijn", "device_id": null } }, { "name": "Party party script", "room": null, "type": "script", "id": { "entity_id": "script.party_party", "device_id": null } }, { "name": "Pepijn music button event", "room": "pepijn_bedroom", "type": "event", "id": { "entity_id": "event.knop_muziek_pepijn_action", "device_id": null } }, { "name": "Floris music button event", "room": "floris_bedroom", "type": "event", "id": { "entity_id": "event.knop_muziek_floris_action", "device_id": null } }, { "name": "Media player Pepijn", "room": "pepijn_bedroom", "type": "media_player", "id": { "entity_id": "media_player.pepijn", "device_id": null } }, { "name": "Media player Floris", "room": "floris_bedroom", "type": "media_player", "id": { "entity_id": "media_player.floris", "device_id": null } } ] }, { "id": "782ed19b-f497-47b9-adb2-782d538e8e33", "automation": "- id: 782ed19b-f497-47b9-adb2-782d538e8e33\n alias: Disable Printer ingegration\n triggers:\n - alias: Printer connectivity status changed\n trigger: state\n entity_id: binary_sensor.printer\n to:\n - 'on'\n - 'off'\n actions:\n - alias: Toggle printer status monitoring automation\n action: automation.turn_{{ trigger.to_state.state }}\n target:\n entity_id: automation.f2_status_messages_for_printer\n - alias: Enable or disable printer config entries based on connectivity\n action: homeassistant.{{ 'disable' if trigger.to_state.state == 'off' else 'enable'\n }}_config_entry\n data:\n config_entry_id:\n - ca207fdeedd4443f3ffd84b518b1edae\n - 032578ad1a4457ef750d888d0ec9cb47", "config": [ { "name": "Printer binary sensor", "room": null, "type": "binary_sensor", "id": { "entity_id": "binary_sensor.printer", "device_id": null } }, { "name": "F2 status messages for printer automation", "room": null, "type": "automation", "id": { "entity_id": "automation.f2_status_messages_for_printer", "device_id": null } } ] }, { "id": "fab3e0d1-1d3a-46ce-b1c1-5c56e788bf02", "automation": "- id: fab3e0d1-1d3a-46ce-b1c1-5c56e788bf02\n alias: Status messages for printer\n triggers:\n - alias: Toner level dropped below 26%\n trigger: template\n value_template: \"{{\\n 'sensor.dcp_l2530dw_black_toner_remaining' | has_value\\n\\\n \\ and states('sensor.dcp_l2530dw_black_toner_remaining') | float < 26\\n}}\\n\"\n id: toner\n - alias: Toner level dropped below 11% (critical)\n trigger: template\n value_template: \"{{\\n 'sensor.dcp_l2530dw_black_toner_remaining' | has_value\\n\\\n \\ and states('sensor.dcp_l2530dw_black_toner_remaining') | float < 11\\n}}\\n\"\n id: toner\n - alias: Drum life dropped below 26%\n trigger: template\n value_template: \"{{\\n 'sensor.dcp_l2530dw_drum_remaining_life' | has_value\\n\\\n \\ and states('sensor.dcp_l2530dw_drum_remaining_life') | float < 26\\n}}\\n\"\n id: drum\n - alias: Drum life dropped below 11% (critical)\n trigger: template\n value_template: \"{{\\n 'sensor.dcp_l2530dw_drum_remaining_life' | has_value\\n\\\n \\ and states('sensor.dcp_l2530dw_drum_remaining_life') | float < 11\\n}}\\n\"\n id: drum\n conditions:\n - alias: Previous state is not unavailable or unkown\n condition: template\n value_template: '{{ trigger.from_state.state not in [''unavailable'', ''unknown'']\n }}'\n actions:\n - alias: Prepare notification message based on trigger type\n variables:\n message: \"{%- if trigger.id == 'toner' %}\\n \\\"De toner is nog maar voor {{\\\n \\ states('sensor.dcp_l2530dw_black_toner_remaining') }}% vol\\\"\\n{%- else %}\\n\\\n \\ \\\"De levensduur van de drum is nog maar {{ states('sensor.dcp_l2530dw_drum_remaining_life')\\\n \\ }}\\\"\\n{%- endif %}\\n\"\n - alias: Notificatie naar telefoon Martijn\n action: notify.mobile_app_pixel_10_pro\n data:\n title: Printer {{ trigger.id }} status\n message: '{{ message }}'\n data:\n channel: Printer\n ttl: 0\n priority: high\n notification_icon: mdi:printer", "config": [ { "name": "Mobile app Pixel 10 Pro", "room": null, "type": "notify", "id": { "entity_id": "notify.mobile_app_pixel_10_pro", "device_id": null } }, { "name": "DCP L2530DW black toner remaining sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.dcp_l2530dw_black_toner_remaining", "device_id": null } }, { "name": "DCP L2530DW drum remaining life sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.dcp_l2530dw_drum_remaining_life", "device_id": null } } ] }, { "id": "b54906bf-51b0-4e0f-919a-ced9436588d6", "automation": "- id: b54906bf-51b0-4e0f-919a-ced9436588d6\n alias: Xiaomi button Guest Bed\n triggers:\n - trigger: state\n entity_id: event.knop_logeerbed_action\n not_from: unavailable\n variables:\n event: '{{ trigger.to_state.attributes.event_type | default(''unknown'', true)\n }}'\n actions:\n - alias: Which click type\n choose:\n - conditions: '{{ event == ''single'' }}'\n sequence:\n - alias: Toggle office ceiling light with dim warm setting\n action: light.toggle\n target:\n entity_id: light.werkkamer_martijn_plafond\n data:\n brightness: 10\n color_temp_kelvin: 2000\n - conditions: '{{ event == ''hold'' }}'\n sequence:\n - if: '{{ is_state(''light.awtrix_martijn_matrix'', ''off'') }}'\n then:\n - alias: Turn on matrix display with low brightness\n action: light.turn_on\n target:\n entity_id: light.awtrix_martijn_matrix\n data:\n brightness: 10\n - alias: Wait 10 seconds before turning off matrix\n delay: 10\n - alias: Turn off matrix display\n action: light.turn_off\n target:\n entity_id: light.awtrix_martijn_matrix\n - conditions: '{{ event == ''double'' }}'\n sequence:\n - alias: Toggle office ceiling light with bright cool setting\n action: light.toggle\n target:\n entity_id: light.werkkamer_martijn_plafond\n data:\n brightness: 255\n color_temp_kelvin: 6535\n - conditions: '{{ event == ''release'' }}'\n sequence: []", "config": [ { "name": "Guest bed button event", "room": "guest_bedroom", "type": "event", "id": { "entity_id": "event.knop_logeerbed_action", "device_id": null } }, { "name": "Office Martijn ceiling light", "room": "office", "type": "light", "id": { "entity_id": "light.werkkamer_martijn_plafond", "device_id": null } }, { "name": "Martijn matrix display light", "room": "office", "type": "light", "id": { "entity_id": "light.awtrix_martijn_matrix", "device_id": null } } ] }, { "id": "012eb968-e871-4029-8096-a63044a42029", "automation": "- id: 012eb968-e871-4029-8096-a63044a42029\n alias: Turn off desk Martijn switch\n triggers:\n - trigger: state\n entity_id:\n - binary_sensor.computer_zolder\n - binary_sensor.laptop_werk_martijn_lan\n - binary_sensor.laptop_werk_martijn_wifi\n - media_player.martijn\n to:\n - idle\n - 'off'\n for: 00:30:00\n conditions:\n - alias: Everyting off?\n condition: state\n entity_id:\n - binary_sensor.computer_zolder\n - binary_sensor.laptop_werk_martijn_lan\n - binary_sensor.laptop_werk_martijn_wifi\n - media_player.martijn\n state:\n - idle\n - 'off'\n for: 00:30:00\n actions:\n - alias: Turn off desk plug when devices are idle\n action: switch.turn_off\n target:\n entity_id: switch.shelly1pm_bureau_martijn_relay", "config": [ { "name": "Media player Martijn", "room": "office", "type": "media_player", "id": { "entity_id": "media_player.martijn", "device_id": null } }, { "name": "Computer zolder binary sensor", "room": "attic", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.computer_zolder", "device_id": null } }, { "name": "Laptop werk Martijn LAN binary sensor", "room": "office", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.laptop_werk_martijn_lan", "device_id": null } }, { "name": "Laptop werk Martijn WIFI binary sensor", "room": "office", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.laptop_werk_martijn_wifi", "device_id": null } }, { "name": "Shelly1PM bureau Martijn relay", "room": "office", "type": "switch", "id": { "entity_id": "switch.shelly1pm_bureau_martijn_relay", "device_id": null } } ] }, { "id": "43077f87-25be-4516-b241-0db9d1e4ff98", "automation": "- id: 43077f87-25be-4516-b241-0db9d1e4ff98\n alias: Start vacuum cleaner on Tuesday\n triggers:\n - id: vacuum\n trigger: time\n at:\n - 08:00:00\n - 09:00:00\n weekday:\n - tue\n - trigger: event\n event_type: mobile_app_notification_action\n event_data:\n action: not_today\n id: not_today\n conditions:\n - alias: Vacuum working\n condition: state\n entity_id: binary_sensor.vacuum\n state: 'on'\n - condition: not\n conditions:\n - alias: Not on holiday\n condition: state\n entity_id: sensor.house_mode\n state: Vakantie\n - '{{ not is_state(''vacuum.valetudo_brokenachingdragonfly'', [''unavailable'',\n ''unknown'']) }}'\n actions:\n - alias: Action?\n choose:\n - conditions: '{{ trigger.id == ''not_today'' }}'\n sequence:\n - alias: Turn on no vacuum today boolean\n action: input_boolean.turn_on\n target:\n entity_id: input_boolean.no_vacuum_today\n - conditions:\n - alias: Na 9u?\n condition: time\n after: 09:00:00\n sequence:\n - if:\n - alias: Input Boolean off\n condition: state\n entity_id: input_boolean.no_vacuum_today\n state: 'off'\n then:\n - alias: Start vacuum cleaner\n action: vacuum.start\n target:\n entity_id: vacuum.valetudo_brokenachingdragonfly\n else:\n - alias: Turn off no vacuum today boolean\n action: input_boolean.turn_off\n target:\n entity_id: input_boolean.no_vacuum_today\n default:\n - alias: Send vacuum start notification to phones\n action: notify.all_phones\n data:\n message: Is alles van de grond?\n title: De stofzuiger begint om 09:00\n data:\n channel: Vacuum\n ttl: 0\n priority: high\n notification_icon: mdi:robot-vacuum\n actions:\n - action: not_today\n title: Vandaag niet", "config": [ { "name": "House mode sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.house_mode", "device_id": null } }, { "name": "All phones notify", "room": null, "type": "notify", "id": { "entity_id": "notify.all_phones", "device_id": null } }, { "name": "Vacuum cleaner", "room": null, "type": "vacuum", "id": { "entity_id": "vacuum.valetudo_brokenachingdragonfly", "device_id": null } }, { "name": "No vacuum today input boolean", "room": null, "type": "input_boolean", "id": { "entity_id": "input_boolean.no_vacuum_today", "device_id": null } }, { "name": "Vacuum", "room": null, "type": "binary_sensor", "id": { "entity_id": "binary_sensor.vacuum", "device_id": null } } ] }, { "id": "501645e8-f419-4349-9f0b-57a2f915b345", "automation": "- id: 501645e8-f419-4349-9f0b-57a2f915b345\n alias: Notifications vacuum cleaner\n mode: single\n max_exceeded: silent\n triggers:\n - trigger: state\n entity_id: vacuum.valetudo_brokenachingdragonfly\n from: returning\n to: docked\n id: docked\n - trigger: state\n entity_id: vacuum.valetudo_brokenachingdragonfly\n to: error\n id: error\n - trigger: time\n at: '17:00:00'\n id: time\n - trigger: event\n event_type: mobile_app_notification_action\n event_data:\n action: empty_vacuum_bin\n id: empty\n actions:\n - if: '{{ trigger.id == ''docked'' }}'\n then:\n - alias: Increase vacuum dust bin counter\n action: counter.increment\n target:\n entity_id: counter.vacuum_dust_bin\n - choose:\n - conditions: '{{ trigger.id in [''docked'', ''error''] }}'\n sequence:\n - variables:\n title: \"{%- if trigger.id == 'docked' %}\\n Stofzuiger is klaar\\n{%- else\\\n \\ %}\\n Probleem met stofzuiger\\n{%- endif %}\\n\"\n message: \"{%- if trigger.id == 'docked' %}\\n De stofzuiger is klaar en\\\n \\ staat weer op z'n plek. Hij heeft nu {{ states('counter.vacuum_dust_bin')\\\n \\ }} ladingen in z'n bakkie.\\n{%- else %}\\n Er is iets mis met de stofzuiger.\\\n \\ De melding is: {{ states('sensor.valetudo_brokenachingdragonfly_error')\\\n \\ }}\\n{%- endif %}\\n\"\n - alias: Send vacuum status notification to phones\n action: notify.all_phones\n data:\n title: '{{ title }}'\n message: '{{ message }}'\n data:\n channel: Vacuum\n ttl: 0\n priority: high\n tag: vacuum_error\n notification_icon: mdi:robot-vacuum\n - conditions:\n - condition: trigger\n id: time\n - alias: Bin full\n condition: numeric_state\n entity_id: counter.vacuum_dust_bin\n above: 2\n - alias: At home\n condition: state\n entity_id: person.martijn\n state: home\n - alias: Workday\n condition: state\n entity_id: binary_sensor.workday_sensor\n state: 'on'\n sequence:\n - alias: Send vacuum bin full notification to Martijn\n action: notify.mobile_app_pixel_10_pro\n data:\n title: Bakje vol\n message: Maak het bakje van de stofzuiger leeg!\n data:\n channel: Vacuum\n ttl: 0\n priority: high\n notification_icon: mdi:robot-vacuum\n actions:\n - action: empty_vacuum_bin\n title: Done!\n - conditions: '{{ trigger.id == ''empty'' }}'\n sequence:\n - alias: Reset vacuum dust bin counter\n action: counter.reset\n target:\n entity_id: counter.vacuum_dust_bin", "config": [ { "name": "Mobile app Pixel 10 Pro", "room": null, "type": "notify", "id": { "entity_id": "notify.mobile_app_pixel_10_pro", "device_id": null } }, { "name": "All phones notify", "room": null, "type": "notify", "id": { "entity_id": "notify.all_phones", "device_id": null } }, { "name": "Person Martijn", "room": null, "type": "person", "id": { "entity_id": "person.martijn", "device_id": null } }, { "name": "Vacuum cleaner", "room": null, "type": "vacuum", "id": { "entity_id": "vacuum.valetudo_brokenachingdragonfly", "device_id": null } }, { "name": "Vacuum dust bin counter", "room": null, "type": "counter", "id": { "entity_id": "counter.vacuum_dust_bin", "device_id": null } }, { "name": "Valetudo brokenachingdragonfly error sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.valetudo_brokenachingdragonfly_error", "device_id": null } }, { "name": "Workday sensor", "room": null, "type": "binary_sensor", "id": { "entity_id": "binary_sensor.workday_sensor", "device_id": null } } ] }, { "id": "ca0dceb5-ad00-4d9f-b0fc-9453574b1891", "automation": "- id: ca0dceb5-ad00-4d9f-b0fc-9453574b1891\n alias: Actions with Xiaomi Cube\n mode: parallel\n triggers:\n - trigger: state\n entity_id: event.magic_cube_action\n not_from: unavailable\n variables:\n event: '{{ trigger.to_state.attributes.event_type | default(''unknown'', true)\n }}'\n actions:\n - alias: Which action\n choose:\n - alias: Actions with shake\n conditions: '{{ event == ''shake'' }}'\n sequence:\n - alias: Turn on desk power switch\n action: switch.turn_on\n target:\n entity_id: switch.shelly1pm_bureau_martijn_relay\n - alias: Turn on radio if morning on workday\n choose:\n - conditions:\n - alias: Morning\n condition: time\n before: '11:00:00'\n - alias: Workday\n condition: state\n entity_id: binary_sensor.workday_sensor\n state: 'on'\n sequence:\n - alias: Wait for media player to be available\n wait_template: '{{ ''media_player.martijn'' | has_value }}'\n timeout:\n minutes: 3\n continue_on_timeout: false\n - alias: Set media player volume to 50%\n action: media_player.volume_set\n target:\n entity_id: media_player.martijn\n data:\n volume_level: 0.5\n - alias: Start playing Studio Brussel radio\n action: music_assistant.play_media\n target:\n entity_id: media_player.martijn\n data:\n media_id: Studio Brussel\n media_type: radio\n - alias: Actions with rotate\n conditions: '{{ ''rotate'' in event }}'\n sequence:\n - variables:\n volume: '{{ state_attr(''media_player.martijn'', ''volume_level'') }}'\n - if: '{{ volume is not none }}'\n then:\n - alias: Adjust media player volume based on cube rotation\n action: media_player.volume_set\n target:\n entity_id: media_player.martijn\n data:\n volume_level: '{% set c = 0.05 if event == ''rotate_right'' else -0.05\n %} {{ ([ 0, volume + c, 1] | sort)[1] | round(2) }}\n\n '", "config": [ { "name": "Media player Martijn", "room": "office", "type": "media_player", "id": { "entity_id": "media_player.martijn", "device_id": null } }, { "name": "Shelly1PM bureau Martijn relay", "room": "office", "type": "switch", "id": { "entity_id": "switch.shelly1pm_bureau_martijn_relay", "device_id": null } }, { "name": "Workday sensor", "room": null, "type": "binary_sensor", "id": { "entity_id": "binary_sensor.workday_sensor", "device_id": null } }, { "name": "Magic cube action event", "room": null, "type": "event", "id": { "entity_id": "event.magic_cube_action", "device_id": null } } ] }, { "id": "27c39fe7-4505-4e6a-a739-bcc20f8f4c4b", "automation": "- mode: restart\n variables: &id002\n open: \"{{\\n trigger.id == 'open'\\n and \\n (\\n states('sensor.weather_combined_max_temp_tomorrow')\\\n \\ | float(21) <= 20\\n or not is_state('binary_sensor.rain_until_morning',\\\n \\ 'off')\\n or as_local(as_datetime(states('sensor.sun_next_rising'))).time()\\\n \\ > today_at('07:00').time()\\n )\\n}}\\n\"\n triggers: &id003\n - alias: closing time\n trigger: template\n value_template: \"{% set close_time = close_time_workday\\n if is_state('binary_sensor.workday_sensor',\\\n \\ 'on')\\n else close_time_weekend %}\\n{{ now() > today_at(close_time) }}\\n\"\n id: close\n - alias: closing time\n trigger: template\n value_template: '{{ extra_close_time is defined and now() > today_at(extra_close_time)\n }}'\n id: close\n - alias: outside temp above 18\n trigger: numeric_state\n entity_id: sensor.weather_combined_max_temp_today\n above: 18\n id: close\n - alias: currently sunny weather\n trigger: state\n entity_id: weather.combined\n to:\n - sunny\n - partycloudy\n id: close\n - alias: no rain for 15 minutes\n trigger: state\n entity_id: binary_sensor.rain\n to: 'off'\n for:\n minutes: 15\n id: close\n - alias: inside temp above 20\n trigger: template\n value_template: '{{ states(temp) | float(0) >= 22 or (states(temp) | float(0)\n > 20 and now().month in range(4,9)) }}'\n id: close\n - alias: Wait for manual override period to end\n trigger: template\n value_template: '{{ is_state(manual, ''off'') }}'\n - alias: opening time\n trigger: template\n value_template: '{{ now() > today_at(open_time) }}'\n id: open\n conditions: &id004\n - alias: During screen season (March through September)\n condition: template\n value_template: '{{ 3 <= now().month <= 8 }}'\n - condition: or\n conditions:\n - alias: open\n condition: and\n conditions:\n - alias: open trigger\n condition: trigger\n id: open\n - alias: cold day tomorrow or rain expected\n condition: template\n value_template: \"{{\\n trigger.id == 'open'\\n and \\n (\\n \\\n \\ states('sensor.weather_combined_max_temp_tomorrow') | float(21) <= 20\\n\\\n \\ or not is_state('binary_sensor.rain_until_morning', 'off')\\n \\\n \\ )\\n}}\\n\"\n - alias: close\n condition: and\n conditions:\n - alias: close trigger\n condition: trigger\n id: close\n - alias: closing time\n condition: template\n value_template: \"{% set close_time = close_time_workday\\n if is_state('binary_sensor.workday_sensor',\\\n \\ 'on')\\n else close_time_weekend %}\\n{{ today_at(close_time) < now() <\\\n \\ today_at(open_time) }}\\n\"\n - alias: outside temp above 18\n condition: numeric_state\n entity_id: sensor.weather_combined_max_temp_today\n above: 18\n - alias: currently sunny weather\n condition: state\n entity_id: weather.combined\n state:\n - sunny\n - partycloudy\n - alias: no rain for 15 minutes\n condition: state\n entity_id: binary_sensor.rain\n state: 'off'\n - alias: inside temp above 20\n condition: template\n value_template: '{{ states(temp) | float(0) >= 20 }}'\n - alias: not manually opened/closed in the last period\n condition: template\n value_template: \"{{ \\n manual is undefined\\n or not is_state(manual,\\\n \\ 'on')\\n}}\\n\"\n actions: &id005\n - choose:\n - conditions:\n - alias: close trigger\n condition: trigger\n id: close\n - alias: cover is completely open or time is after 11:00\n condition: template\n value_template: \"{% set cleaning = \\n 'floris' in cover\\n and now().weekday()\\\n \\ == 3\\n and extra_close_time is defined\\n and today_at(open_time) < now()\\\n \\ < today_at(extra_close_time)\\n%} {{\\n not is_state_attr(cover, 'cover_position',\\\n \\ 0)\\n and\\n (\\n not cleaning \\n or is_state_attr(cover, 'cover_position',\\\n \\ 100)\\n )\\n}}\\n\"\n sequence:\n - alias: close the cover\n action: cover.close_cover\n target:\n entity_id: '{{ cover }}'\n - conditions:\n - alias: open trigger\n condition: trigger\n id: open\n - alias: cover is not already completely open\n condition: template\n value_template: '{{ not is_state_attr(cover, ''cover_position'', 100) }}'\n sequence:\n - alias: open the cover\n action: cover.open_cover\n target:\n entity_id: '{{ cover }}'\n id: 27c39fe7-4505-4e6a-a739-bcc20f8f4c4b\n alias: Open and close cover Pepijn when needed\n trigger_variables:\n cover: cover.pepijn_template\n temp: sensor.pepijn_temp\n manual: binary_sensor.screen_pepijn_manual\n close_time_workday: 07:30\n close_time_weekend: 08:30\n open_time: '18:00'", "config": [ { "name": "Weather combined", "room": null, "type": "weather", "id": { "entity_id": "weather.combined", "device_id": null } }, { "name": "Weather combined max temp today sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.weather_combined_max_temp_today", "device_id": null } }, { "name": "Rain binary sensor", "room": null, "type": "binary_sensor", "id": { "entity_id": "binary_sensor.rain", "device_id": null } }, { "name": "Pepijn template cover", "room": "pepijn_bedroom", "type": "cover", "id": { "entity_id": "cover.pepijn_template", "device_id": null } }, { "name": "Workday sensor", "room": null, "type": "binary_sensor", "id": { "entity_id": "binary_sensor.workday_sensor", "device_id": null } }, { "name": "Screen Pepijn manual binary sensor", "room": "pepijn_bedroom", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.screen_pepijn_manual", "device_id": null } }, { "name": "Rain until morning binary sensor", "room": null, "type": "binary_sensor", "id": { "entity_id": "binary_sensor.rain_until_morning", "device_id": null } }, { "name": "Pepijn temperature sensor", "room": "pepijn_bedroom", "type": "sensor", "id": { "entity_id": "sensor.pepijn_temp", "device_id": null } }, { "name": "Sun next rising sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.sun_next_rising", "device_id": null } }, { "name": "Weather Combined Max Temp Tomorrow", "room": null, "type": "sensor", "id": { "entity_id": "sensor.weather_combined_max_temp_tomorrow", "device_id": null } } ] }, { "id": "4711e349-f3e2-4e7d-adcb-e3b000162fd8", "automation": "- mode: restart\n variables: *id002\n triggers: *id003\n conditions: *id004\n actions: *id005\n id: 4711e349-f3e2-4e7d-adcb-e3b000162fd8\n alias: Open or close covers Floris when needed\n trigger_variables:\n cover: cover.floris\n temp: sensor.floris_temp\n manual: binary_sensor.screen_floris_manual\n close_time_workday: 07:30\n close_time_weekend: 08:30\n extra_close_time: '11:00'\n open_time: '22:00'", "config": [ { "name": "Floris cover", "room": "floris_bedroom", "type": "cover", "id": { "entity_id": "cover.floris", "device_id": null } }, { "name": "Screen Floris manual binary sensor", "room": "floris_bedroom", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.screen_floris_manual", "device_id": null } }, { "name": "Floris temperature sensor", "room": "floris_bedroom", "type": "sensor", "id": { "entity_id": "sensor.floris_temp", "device_id": null } } ] }, { "id": "dd78d7db-7bd2-48ce-9543-64ee16d98732", "automation": "- mode: restart\n variables: *id002\n triggers: *id003\n conditions: *id004\n actions: *id005\n id: dd78d7db-7bd2-48ce-9543-64ee16d98732\n alias: Open or close covers office Marleen when needed\n trigger_variables:\n cover: cover.werkkamer_marleen\n temp: sensor.werkkamer_marleen_temp\n manual: binary_sensor.screen_werkkamer_marleen_manual\n close_time_workday: 07:30\n close_time_weekend: 08:30\n open_time: '18:00'", "config": [ { "name": "Marleen office cover", "room": "marleen_office", "type": "cover", "id": { "entity_id": "cover.werkkamer_marleen", "device_id": null } }, { "name": "Screen Marleen office manual binary sensor", "room": "marleen_office", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.screen_werkkamer_marleen_manual", "device_id": null } }, { "name": "Marleen office temperature sensor", "room": "marleen_office", "type": "sensor", "id": { "entity_id": "sensor.werkkamer_marleen_temp", "device_id": null } } ] }, { "id": "aab636cd-dac7-4837-82a8-720affe3879f", "automation": "- mode: restart\n variables: *id002\n triggers: *id003\n conditions: *id004\n actions: *id005\n id: aab636cd-dac7-4837-82a8-720affe3879f\n alias: Open or close covers bedroom when needed\n trigger_variables:\n cover: cover.slaapkamer_zolder_template\n temp: sensor.awair_slaapkamer_temperature\n manual: binary_sensor.screen_slaapkamer_manual\n close_time_workday: 07:30\n close_time_weekend: 08:30\n open_time: '21:30'", "config": [ { "name": "Bedroom attic template cover", "room": "master_bedroom", "type": "cover", "id": { "entity_id": "cover.slaapkamer_zolder_template", "device_id": null } }, { "name": "Screen bedroom manual binary sensor", "room": "master_bedroom", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.screen_slaapkamer_manual", "device_id": null } }, { "name": "Awair bedroom temperature sensor", "room": "master_bedroom", "type": "sensor", "id": { "entity_id": "sensor.awair_slaapkamer_temperature", "device_id": null } } ] }, { "id": "04423f6c-4db1-4375-8f94-1b1b4438920d", "automation": "- mode: restart\n variables: *id002\n triggers: *id003\n conditions: *id004\n actions: *id005\n id: 04423f6c-4db1-4375-8f94-1b1b4438920d\n alias: Open or close covers landing when needed\n trigger_variables:\n cover: cover.overloop_zolder_template\n temp: sensor.awair_slaapkamer_temperature\n manual: binary_sensor.screen_overloop_zolder_manual\n close_time_workday: 07:30\n close_time_weekend: 08:30\n open_time: '21:30'", "config": [ { "name": "Landing attic template cover", "room": "landing", "type": "cover", "id": { "entity_id": "cover.overloop_zolder_template", "device_id": null } }, { "name": "Screen landing attic manual binary sensor", "room": "landing", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.screen_overloop_zolder_manual", "device_id": null } }, { "name": "Awair bedroom temperature sensor", "room": "master_bedroom", "type": "sensor", "id": { "entity_id": "sensor.awair_slaapkamer_temperature", "device_id": null } } ] }, { "id": "fa2ca8c5-675c-4d6a-928b-4e0477cfed3", "automation": "- id: fa2ca8c5-675c-4d6a-928b-4e0477cfed3\n alias: Make sure cover is open for cleaning\n mode: restart\n triggers:\n - trigger: state\n entity_id: cover.floris_links\n attribute: current_position\n to: 0\n for:\n minutes: 2\n - trigger: time\n at: 08:30\n conditions:\n - alias: Cleaning time\n condition: time\n after: 08:30:00\n before: '11:00:00'\n weekday:\n - thu\n - alias: cover closed\n condition: state\n entity_id: cover.floris_links\n attribute: current_position\n state: 0\n actions:\n - alias: Set middle cover to 50%\n action: cover.set_cover_position\n target:\n entity_id: cover.floris_links\n data:\n position: 50", "config": [ { "name": "Floris cover", "room": "floris_bedroom", "type": "cover", "id": { "entity_id": "cover.floris", "device_id": null } }, { "name": "Floris left cover", "room": "floris_bedroom", "type": "cover", "id": { "entity_id": "cover.floris_links", "device_id": null } } ] }, { "id": "48718b8b-2768-4e79-9ac6-fa4f3a10cabe", "automation": "- id: 48718b8b-2768-4e79-9ac6-fa4f3a10cabe\n alias: Screens up with upcoming rain\n triggers:\n - trigger: state\n entity_id: binary_sensor.rain\n to: 'on'\n for: 00:00:10\n - alias: Home Assistant startup\n trigger: homeassistant\n event: start\n id: start\n variables:\n screens:\n - cover.floris\n - cover.pepijn_template\n - cover.werkkamer_marleen\n - cover.overloop_zolder_template\n - cover.slaapkamer_zolder_template\n down_entity_id: \"{{\\n screens\\n | select('has_value')\\n | reject('is_state_attr',\\\n \\ 'current_position', 100)\\n | list\\n}}\\n\"\n screens_down: '{{ down_entity_id | map(''state_attr'', ''friendly_name'') | list\n }}'\n screens_unavailable: \"{{\\n screens\\n | reject('has_value')\\n | map('state_attr',\\\n \\ 'friendly_name')\\n | list\\n}}\\n\"\n conditions:\n - or:\n - alias: Screens open?\n condition: template\n value_template: '{{ screens_down | count > 0 }}'\n - alias: Screens unavailable?\n condition: template\n value_template: '{{ screens_unavailable | count > 0 }}'\n - alias: Verify it's currently raining\n condition: state\n entity_id: binary_sensor.rain\n state: 'on'\n for:\n seconds: '{{ 0 if trigger.id == ''start'' else 10 }}'\n actions:\n - alias: Open screens\n choose:\n - conditions: '{{ screens_down | count > 0 }}'\n sequence:\n - alias: Screens up\n action: cover.open_cover\n target:\n entity_id: '{{ down_entity_id }}'\n - alias: Send rain notification to phone Martijn\n action: notify.mobile_app_pixel_10_pro\n data:\n title: \"{%- if screens_unavailable | count > 0 %}\\n \\\"LET OP! Niet alle screens\\\n \\ beschikbaar\\\"\\n{%- else %}\\n \\\"Screens gaan open\\\"\\n{%- endif %}\\n\"\n message: \"{%- if screens_unavailable | count > 0 and screens_down | count >\\\n \\ 0 %}\\n {{ screens_unavailable | join(', ') }} {{ iif(screens_unavailable\\\n \\ | count > 1, 'zijn', 'is') }} niet beschikbaar, deze {{ iff(screens_down\\\n \\ | count > 1, 'gaan', 'gaat') }} open: {{ screens_down | join(', ') }}\\\"\\n\\\n {%- elif screens_unavailable | count > 0 %}\\n {{ screens_unavailable | join(',\\\n \\ ') }} {{ iif(screens_unavailable | count > 1, 'zijn', 'is') }} niet beschikbaar,\\\n \\ er gaan geen screens open\\n{%- else %}\\n Er komt regen aan, deze screens\\\n \\ gaan nu open: {{ screens_down | join(', ') }}\\n{%- endif %}\\n\"\n data:\n channel: Screens\n ttl: 0\n priority: high\n notification_icon: mdi:weather-rainy", "config": [ { "name": "Mobile app Pixel 10 Pro", "room": null, "type": "notify", "id": { "entity_id": "notify.mobile_app_pixel_10_pro", "device_id": null } }, { "name": "Rain binary sensor", "room": null, "type": "binary_sensor", "id": { "entity_id": "binary_sensor.rain", "device_id": null } }, { "name": "Floris cover", "room": "floris_bedroom", "type": "cover", "id": { "entity_id": "cover.floris", "device_id": null } }, { "name": "Pepijn template cover", "room": "pepijn_bedroom", "type": "cover", "id": { "entity_id": "cover.pepijn_template", "device_id": null } }, { "name": "Marleen office cover", "room": "marleen_office", "type": "cover", "id": { "entity_id": "cover.werkkamer_marleen", "device_id": null } }, { "name": "Bedroom attic template cover", "room": "master_bedroom", "type": "cover", "id": { "entity_id": "cover.slaapkamer_zolder_template", "device_id": null } }, { "name": "Landing attic template cover", "room": "landing", "type": "cover", "id": { "entity_id": "cover.overloop_zolder_template", "device_id": null } } ] }, { "id": "767b2b4c-8dc6-4e42-b871-fad275273ebc", "automation": "- id: 767b2b4c-8dc6-4e42-b871-fad275273ebc\n alias: Party Time!\n mode: parallel\n triggers:\n - trigger: state\n entity_id:\n - media_player.floris\n - media_player.pepijn\n - media_player.woonkamer\n for:\n seconds: 1\n variables:\n song_titles:\n - europapa\n artists:\n - snollebollekes\n area_mapper:\n media_player.woonkamer:\n area_list:\n - woonkamer\n - speelhoek\n media_player.pepijn:\n area_list:\n - slaapkamer_pepijn\n exclude_lights:\n - light.pepijn\n media_player.floris:\n area_list:\n - slaapkamer_floris\n party_on: \"{{\\n trigger.to_state.state == 'playing'\\n and\\n (\\n trigger.to_state.attributes.get('media_title')\\\n \\ | lower is search(song_titles | default([]) | join('|') | lower)\\n or\\n\\\n \\ trigger.to_state.attributes.get('media_artist') | lower is search(artists\\\n \\ | default([]) | join('|') | lower)\\n )\\n}}\\n\"\n area_list: '{{ area_mapper[trigger.entity_id].area_list }}'\n exclude_lights: '{{ area_mapper[trigger.entity_id].get(''exclude_lights'', [])\n }}'\n actions:\n - delay: '{{ this.attributes.current * 0.5 }}'\n - repeat:\n for_each: '{{ area_list }}'\n sequence:\n - variables:\n current_state: \"{{\\n ((state_attr('sensor.variables', 'variables') | default({},\\\n \\ true)).get('party_mode', {}).items()\\n | selectattr('0', 'eq', repeat.item)\\n\\\n \\ | map(attribute= '1')\\n | list\\n | first\\n | default({})).get('state',\\\n \\ false)\\n}}\\n\"\n current_set_by: \"{{\\n ((state_attr('sensor.variables', 'variables') | default({},\\\n \\ true)).get('party_mode', {}).items()\\n | selectattr('0', 'eq', repeat.item)\\n\\\n \\ | map(attribute= '1')\\n | list\\n | first\\n | default({})).get('set_by',\\\n \\ 'unknown')\\n}}\\n\"\n - if:\n - '{{ party_on != current_state }}'\n - '{{ current_set_by == ''song'' if not party_on else true }}'\n then:\n - action: script.turn_on\n target:\n entity_id: script.party_party\n data:\n variables:\n area: '{{ repeat.item }}'\n party_on: '{{ party_on }}'\n exclude_lights: '{{ exclude_lights }}'\n set_by: song\n - delay: 0.5", "config": [ { "name": "Media player Woonkamer", "room": "living_room", "type": "media_player", "id": { "entity_id": "media_player.woonkamer", "device_id": null } }, { "name": "Pepijn light", "room": "pepijn_bedroom", "type": "light", "id": { "entity_id": "light.pepijn", "device_id": null } }, { "name": "Party party script", "room": null, "type": "script", "id": { "entity_id": "script.party_party", "device_id": null } }, { "name": "Media player Pepijn", "room": "pepijn_bedroom", "type": "media_player", "id": { "entity_id": "media_player.pepijn", "device_id": null } }, { "name": "Media player Floris", "room": "floris_bedroom", "type": "media_player", "id": { "entity_id": "media_player.floris", "device_id": null } }, { "name": "Variables sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.variables", "device_id": null } } ] }, { "id": "6d0dc8bd-d264-42b8-8488-10e2e44d9393", "automation": "- id: 6d0dc8bd-d264-42b8-8488-10e2e44d9393\n alias: Update device trackers for phone Martijn\n triggers:\n - alias: Martijn's phone location or battery changed\n trigger: state\n entity_id:\n - sensor.location_phone_martijn_bt\n - sensor.pixel_10_pro_battery_level\n from: null\n - alias: Home Assistant started\n trigger: homeassistant\n event: start\n actions:\n - alias: Update Martijn's phone device tracker\n action: device_tracker.see\n data:\n dev_id: phone_martijn_bt\n host_name: Phone Martijn BT\n mac: 0C:C4:13:45:75:85\n battery: '{{ states(''sensor.pixel_10_pro_battery_level'') }}'\n location_name: \"{% if is_state('sensor.location_phone_martijn_bt', 'Niet Thuis')\\\n \\ %}\\n not_home\\n{% elif is_state('sensor.location_phone_martijn_bt', ['unavailable',\\\n \\ 'unknown']) %}\\n {{ states('sensor.location_phone_martijn_bt') }}\\n{% else\\\n \\ %}\\n home\\n{% endif %}\\n\"", "config": [ { "name": "Location phone Martijn sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.location_phone_martijn", "device_id": null } }, { "name": "Pixel 10 Pro location BT sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.location_phone_martijn_bt", "device_id": null } }, { "name": "Pixel 10 Pro battery level sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.pixel_10_pro_battery_level", "device_id": null } } ] }, { "id": "efac28d0-19f8-42d7-928f-04e09d1191a5", "automation": "- id: efac28d0-19f8-42d7-928f-04e09d1191a5\n alias: Send Digid code for kids to Marleen\n triggers:\n - alias: New SMS notification received on Martijn's phone\n trigger: state\n entity_id: sensor.pixel_10_pro_last_notification\n to: null\n conditions:\n - alias: Notification from SMS app\n condition: state\n entity_id: sensor.pixel_10_pro_last_notification\n attribute: package\n state: com.google.android.apps.messaging\n - alias: SMS regarding DigID code\n condition: template\n value_template: '{{ ''Uw DigiD sms-code om in te loggen bij'' in states(''sensor.pixel_10_pro_last_notification'')\n }}\n\n '\n actions:\n - alias: Send notification to Marleen\n action: notify.mobile_app_pixel_8_marleen\n data:\n title: DigiD code\n message: '{{ trigger.to_state.state }}'", "config": [ { "name": "Mobile app Pixel 8 Marleen", "room": null, "type": "notify", "id": { "entity_id": "notify.mobile_app_pixel_8_marleen", "device_id": null } }, { "name": "Pixel 10 Pro last notification sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.pixel_10_pro_last_notification", "device_id": null } } ] }, { "id": "35106a4b-1055-44db-958c-99b9d9cf721b", "automation": "- id: 35106a4b-1055-44db-958c-99b9d9cf721b\n alias: Open music app on phone Martijn on BT connection\n mode: restart\n triggers:\n - alias: Bluetooth connection changed on Martijn's phone\n trigger: state\n entity_id: sensor.pixel_10_pro_bluetooth_connection\n attribute: connected_paired_devices\n variables:\n bt_added: \"{%- set bt_old_list = trigger.from_state.attributes.connected_paired_devices\\\n \\ %} {%- set bt_new_list = trigger.to_state.attributes.connected_paired_devices\\\n \\ %} {{ \\n bt_new_list\\n | reject('in', bt_old_list)\\n | join\\n}}\\n\"\n headphones:\n - 60:AB:D2:3C:85:66 (LE-Big Ears)\n - E0:67:81:01:F7:D3 (Haylou GT3)\n - E8:07:BF:13:99:AB (Soundcore Spirit X)\n actions:\n - if: '{{ bt_added in headphones }}'\n then:\n - alias: Send music app selection notification\n action: notify.mobile_app_pixel_10_pro\n data:\n title: Muziekje?\n message: Wat wil je luisteren\n data:\n tag: music_choose\n ttl: 0\n priority: high\n notification_icon: mdi:music\n actions:\n - action: URI\n title: Spotify\n uri: app://com.spotify.music\n - action: URI\n title: YT Music\n uri: app://com.google.android.apps.youtube.music\n - action: URI\n title: TuneIn\n uri: app://tunein.player\n - alias: Wait before clearing notification\n delay:\n minutes: 10\n - alias: Clear music app selection notification\n action: notify.mobile_app_pixel_10_pro\n data:\n message: clear_notification\n data:\n tag: music_choose", "config": [ { "name": "Mobile app Pixel 10 Pro", "room": null, "type": "notify", "id": { "entity_id": "notify.mobile_app_pixel_10_pro", "device_id": null } }, { "name": "Pixel 10 Pro Bluetooth connection sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.pixel_10_pro_bluetooth_connection", "device_id": null } } ] }, { "id": "e7e51e10-c152-4514-bfc7-393c6d16d468", "automation": "- id: e7e51e10-c152-4514-bfc7-393c6d16d468\n alias: Turn on right sound mode and beacon Martijn based on home proximity\n mode: queued\n triggers:\n - alias: Martijn within 2 km of home\n trigger: numeric_state\n entity_id: sensor.thuis_martijn_distance\n below: 2000\n id: home\n - alias: Martijn outside 2 km of home\n trigger: numeric_state\n entity_id: sensor.thuis_martijn_distance\n above: 2000\n id: not_home\n actions:\n - alias: Home or not?\n if:\n - condition: trigger\n id: home\n then:\n - alias: Set phone to normal sound mode\n action: notify.mobile_app_pixel_10_pro\n data:\n message: command_ringer_mode\n data:\n command: normal\n - action: notify.mobile_app_pixel_10_pro\n data:\n message: command_ble_transmitter\n data:\n command: turn_on\n else:\n - alias: Set phone to vibrate mode\n action: notify.mobile_app_pixel_10_pro\n data:\n message: command_ringer_mode\n data:\n command: vibrate\n - action: notify.mobile_app_pixel_10_pro\n data:\n message: command_ble_transmitter\n data:\n command: turn_off", "config": [ { "name": "Mobile app Pixel 10 Pro", "room": null, "type": "notify", "id": { "entity_id": "notify.mobile_app_pixel_10_pro", "device_id": null } }, { "name": "Thuis Martijn distance sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.thuis_martijn_distance", "device_id": null } } ] }, { "id": "aef85bb7-d7c6-4727-84b7-c15f222d7f71", "automation": "- id: aef85bb7-d7c6-4727-84b7-c15f222d7f71\n alias: Menu for Grandstream\n variables:\n allowed_callers:\n - '**621'\n triggers:\n - alias: SIP call webhook received\n trigger: webhook\n webhook_id: sip_call_webhook_id\n local_only: true\n conditions:\n - alias: Check if webhook is for incoming call\n condition: template\n value_template: '{{ trigger.json.event == ''incoming_call'' }}'\n actions:\n - variables:\n number_calling: '{{ trigger.json.parsed_caller }}'\n - choose:\n - conditions:\n - alias: Check if caller is in allowed caller list\n condition: template\n value_template: \"{{\\n number_calling in allowed_callers\\n if allowed_callers\\\n \\ is defined and allowed_callers | length > 0\\n else true\\n}}\\n\"\n sequence:\n - alias: Start phone menu system\n action: hassio.addon_stdin\n data:\n addon: c7744bff_ha-sip\n input:\n command: answer\n number: '{{ number_calling }}'\n menu:\n message: 'Hallo draai 1 om papa te bellen, 2 om mama te bellen, 3\n om oma van Balloe te bellen en 4 om oma van de Poes te bellen. Draai\n 8 om de alarmdiensten te bellen. Gebruik dit alleen als er echt een\n noodgeval is. Draai 9 om te stoppen.\n\n '\n timeout: 30\n choices:\n '1':\n id: papa\n message: Papa wordt gebeld\n action:\n domain: script\n service: turn_on\n entity_id: script.make_call\n service_data:\n variables:\n to_call: dad\n number_calling: '{{ number_calling }}'\n post_action: noop\n '2':\n id: mama\n message: Mama wordt gebeld\n action:\n domain: script\n service: turn_on\n entity_id: script.make_call\n service_data:\n variables:\n to_call: mom\n number_calling: '{{ number_calling }}'\n post_action: noop\n '3':\n id: grandma_dog\n message: Oma van Balloe wordt gebeld\n action:\n domain: script\n service: turn_on\n entity_id: script.make_call\n service_data:\n variables:\n to_call: grandma_dog\n number_calling: '{{ number_calling }}'\n post_action: noop\n '4':\n id: grandma_dog\n message: Oma van de Poes wordt gebeld\n action:\n domain: script\n service: turn_on\n entity_id: script.make_call\n service_data:\n variables:\n to_call: grandma_cat\n number_calling: '{{ number_calling }}'\n post_action: noop\n '8':\n id: alarm\n message: 112 wordt gebeld\n action:\n domain: script\n service: turn_on\n entity_id: script.make_call\n service_data:\n variables:\n to_call: alarm\n number_calling: '{{ number_calling }}'\n post_action: noop\n '9':\n id: bye\n message: Tot horens\n post_action: hangup\n default:\n id: wrong_code\n message: Dit nummer doet niets, probeer het opnieuw\n post_action: return\n timeout:\n id: timeout\n message: Er is geen keuze gemaakt. Tot horens\n post_action: hangup\n mode: restart", "config": [ { "name": "Make call script", "room": null, "type": "script", "id": { "entity_id": "script.make_call", "device_id": null } } ] }, { "id": "ec867a7d-71bf-4fee-89aa-1ac88a201711", "automation": "- id: ec867a7d-71bf-4fee-89aa-1ac88a201711\n alias: Notify when plants have moisture issues\n triggers:\n - alias: Check every evening\n trigger: time\n at: '20:00:00'\n id: time\n - alias: Check on a state change of the plant problem sensor\n trigger: state\n entity_id: sensor.plant_problems_count\n not_from:\n - unavailable\n - unknown\n not_to:\n - unavailable\n - unknown\n id: sensor\n for:\n hours: 1\n conditions:\n - alias: Check if a message is required\n condition: template\n value_template: \"{{\\n trigger.to_state.state | int > trigger.from_state.state\\\n \\ | int \\n if trigger.id == 'sensor' \\n else states('sensor.plant_problems_count')\\\n \\ | int(0) > 0\\n}}\\n\"\n actions:\n - alias: Assign texts for thirsty and flooded plants\n variables:\n thirsty: \"{%- set ns = namespace(plants=[]) -%}\\n{%- for plant in state_attr('sensor.plant_problems_count',\\\n \\ 'thirsty') -%}\\n {%- set ns.plants = ns.plants + [state_attr(plant, 'friendly_name')\\\n \\ | trim ~ ' in ' ~ area_name(plant)] -%}\\n{%- endfor -%}\\n{%- set plants\\\n \\ = (ns.plants[:-1] | join(', ') ~ ' en ' ~ ns.plants[-1]) if ns.plants |\\\n \\ count > 2 else ns.plants | join(' en ') -%}\\n{{ ('De volgende planten hebben\\\n \\ dorst: ' ~ plants) if plants }}\\n\"\n flooded: \"{%- set ns = namespace(plants=[]) -%} {%- for plant in state_attr('sensor.plant_problems_count',\\\n \\ 'flooded') -%}\\n {%- set ns.plants = ns.plants + [state_attr(plant, 'friendly_name')\\\n \\ | trim ~ ' in ' ~ area_name(plant)] -%}\\n{%- endfor -%} {%- set plants =\\\n \\ (ns.plants[:-1] | join(', ') ~ ' en ' ~ ns.plants[-1]) if ns.plants | count\\\n \\ > 2 else ns.plants | join(' en ') -%} {{ ('De volgende planten hebben te\\\n \\ veel water: ' ~ plants) if plants }}\\n\"\n - alias: Send message\n action: rest_command.signal_send_message\n data:\n message: '{{ [''๐ŸŒฑ Plant Alarm!'', thirsty, flooded] | select() | join(''\\n'')\n }}\n\n '\n mode: single", "config": [ { "name": "Plant problems count sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.plant_problems_count", "device_id": null } }, { "name": "Rest command signal send message", "room": null, "type": "rest_command", "id": { "entity_id": null, "device_id": "rest_command.signal_send_message" } } ] }, { "id": "1dc827cc-4287-48b1-8894-ad2e0202dd94", "automation": "- id: 1dc827cc-4287-48b1-8894-ad2e0202dd94\n alias: Make sure entities which should not be turned off are always on\n triggers:\n - trigger: template\n value_template: '{{ label_entities(''always_on'') | select(''is_state'', ''off'')\n | list | count > 0 }}'\n actions:\n - alias: Turn entity on\n action: homeassistant.turn_on\n target:\n entity_id: '{{ label_entities(''always_on'') | select(''is_state'', ''off'')\n | list }}'", "config": [] }, { "id": "24622ebc-3be8-4ca2-a4ae-0920b97dc11b", "automation": "- alias: Reset bedside lamp Martijn when unavailable\n id: 24622ebc-3be8-4ca2-a4ae-0920b97dc11b\n triggers:\n - trigger: state\n entity_id: light.bedside_lamp\n to: unavailable\n for:\n minutes: 5\n - trigger: time\n at:\n - '21:00:00'\n - 09:00:00\n conditions:\n - condition: state\n entity_id: light.bedside_lamp\n state: unavailable\n - condition: time\n after: 09:00:00\n before: '21:00:01'\n actions:\n - alias: Turn off bedside lamp reset switch\n action: switch.turn_off\n target:\n entity_id: switch.nachtlampje_martijn_reset\n - alias: Wait 10 seconds before turning reset switch back on\n delay:\n seconds: 10\n - alias: Turn on bedside lamp reset switch to complete reset\n action: switch.turn_on\n target:\n entity_id: switch.nachtlampje_martijn_reset", "config": [ { "name": "Bedside lamp", "room": "master_bedroom", "type": "light", "id": { "entity_id": "light.bedside_lamp", "device_id": null } }, { "name": "Bedside lamp reset switch", "room": "master_bedroom", "type": "switch", "id": { "entity_id": "switch.nachtlampje_martijn_reset", "device_id": null } } ] }, { "id": "1021cdb8-6a53-4e31-bc04-5d776323e1c8", "automation": "- id: 1021cdb8-6a53-4e31-bc04-5d776323e1c8\n alias: Actions for stairs closet sonoff\n mode: parallel\n max_exceeded: silent\n triggers:\n - alias: Sonoff stairs closet button pressed\n trigger: state\n entity_id: event.sonoff_trapkast_sonoff_trapkast\n not_from: unavailable\n conditions:\n - alias: Check if button is in detached mode\n condition: state\n entity_id: select.sonoff_trapkast_button_type\n state: Detached\n actions:\n - alias: Check if light entity is available\n if: '{{ ''light.trapkast'' | has_value }}'\n then:\n - alias: Choose action based on press type\n choose:\n - conditions:\n - alias: Single press detected\n condition: template\n value_template: '{{ trigger.to_state.attributes.event_type == ''single_press''\n }}'\n sequence:\n - alias: Toggle stairs closet light\n action: light.toggle\n target:\n entity_id: light.trapkast_template\n - conditions:\n - alias: Double press detected\n condition: template\n value_template: '{{ trigger.to_state.attributes.event_type == ''double_press''\n }}'\n sequence:\n - alias: Toggle stairs closet light to full brightness\n action: light.toggle\n target:\n entity_id: light.trapkast_template\n data:\n brightness: 255\n else:\n - alias: Toggle Sonoff relay as fallback\n action: switch.toggle\n target:\n entity_id: switch.sonoff_trapkast_relay", "config": [ { "name": "Stairs closet template light", "room": "stairs_closet", "type": "light", "id": { "entity_id": "light.trapkast_template", "device_id": null } }, { "name": "Stairs closet sonoff event", "room": "stairs_closet", "type": "event", "id": { "entity_id": "event.sonoff_trapkast_sonoff_trapkast", "device_id": null } }, { "name": "Stairs closet light", "room": "stairs_closet", "type": "light", "id": { "entity_id": "light.trapkast", "device_id": null } }, { "name": "Stairs closet sonoff relay", "room": "stairs_closet", "type": "switch", "id": { "entity_id": "switch.sonoff_trapkast_relay", "device_id": null } }, { "name": "Stairs closet button type select", "room": "stairs_closet", "type": "select", "id": { "entity_id": "select.sonoff_trapkast_button_type", "device_id": null } } ] }, { "id": "2017abca-a756-420b-98fb-228824ce182a", "automation": "- id: 2017abca-a756-420b-98fb-228824ce182a\n alias: Voice - Manage Shield and Soundbar on voice command in living room or kitchen\n mode: parallel\n variables:\n tv_playing: '{{ is_state(''media_player.nvidia_shield'', ''playing'') }}'\n soundbar_source: '{{ state_attr(''media_player.samsung_soundbar'', ''source'')\n | default(''off'', true) }}'\n living: '{{ area_name(trigger.entity_id) == ''Woonkamer'' }}'\n satellite_player: '{{ device_entities(device_id(trigger.entity_id)) | select(''match'',\n ''media_player'') | list | first }}'\n triggers:\n - trigger: state\n entity_id:\n - assist_satellite.woonkamer\n - assist_satellite.keuken\n to: listening\n actions:\n - if: '{{ tv_playing and living }}'\n then:\n - alias: Pause the Shield\n action: media_player.media_pause\n target:\n entity_id: media_player.nvidia_shield\n - if: '{{ tv_playing }}'\n then:\n - alias: Create scene with current soundbar status\n action: scene.create\n data:\n scene_id: soundbar_before\n snapshot_entities:\n - media_player.samsung_soundbar\n - alias: Wait for satellite to enter processing state\n wait_for_trigger:\n - trigger: state\n entity_id:\n - assist_satellite.woonkamer\n - assist_satellite.keuken\n to: processing\n timeout:\n seconds: 10\n - variables:\n living: '{{ area_name(wait.trigger.entity_id) == ''Woonkamer'' }}'\n - if: '{{ wait.trigger is not none }}'\n then:\n - alias: Set volume soundbar\n action: media_player.volume_set\n target:\n entity_id:\n - media_player.samsung_soundbar\n data:\n volume_level: '{{ 0.1 if living else 0.02 }}'\n - alias: Store current volume satellite\n variables:\n sat_vol: '{{ state_attr(satellite_player, ''volume_level'') }}'\n - alias: Set volume voice satellite\n action: media_player.volume_set\n target:\n entity_id: '{{ satellite_player }}'\n data:\n volume_level: 0.7\n - if: '{{ living }}'\n then:\n - alias: Ensure soundbar is on\n action: media_player.turn_on\n target:\n entity_id: media_player.samsung_soundbar\n - alias: Ensure Soundbar is set to aux\n action: media_player.select_source\n data:\n source: aux\n target:\n entity_id: media_player.samsung_soundbar\n - alias: Wait for satellite to return to idle state\n wait_for_trigger:\n - trigger: template\n value_template: '{{ is_state(trigger.entity_id, ''idle'') }}'\n for:\n seconds: 0.5\n - alias: Set volume voice satellite back to old setting\n action: media_player.volume_set\n target:\n entity_id: '{{ satellite_player }}'\n data:\n volume_level: '{{ sat_vol }}'\n - if: '{{ tv_playing }}'\n then:\n - alias: Apply scene with previous soundbar settings\n action: scene.turn_on\n target:\n entity_id: scene.soundbar_before\n - if: '{{ not is_state(''media_player.nvidia_shield'', ''playing'') }}'\n then:\n - alias: Resume playing on Shield\n action: media_player.media_play\n target:\n entity_id: media_player.nvidia_shield\n - if: '{{ not tv_playing and living }}'\n then:\n - variables:\n player: \"{{\\n integration_entities('music_assistant')\\n | select('in',\\\n \\ area_entities(area_id(trigger.entity_id)))\\n | list\\n | first\\n\\\n \\ | default('unknown')\\n}}\\n\"\n - alias: Wait for music to start playing\n wait_template: '{{ is_state(player, ''playing'') }}'\n timeout:\n seconds: 10\n - variables:\n something_played: '{{ wait.completed }}'\n - alias: Wait for music to stop playing\n wait_for_trigger:\n - trigger: template\n value_template: \"{{\\n something_played\\n and not is_state(player, 'playing')\\n\\\n }}\\n\"\n for:\n seconds: 10\n timeout:\n minutes: 5\n - if: '{{ wait.trigger is not none }}'\n then:\n - alias: Turn soundbar off again\n action: media_player.turn_off\n target:\n entity_id: media_player.samsung_soundbar", "config": [ { "name": "Nvidia Shield", "room": "living_room", "type": "media_player", "id": { "entity_id": "media_player.nvidia_shield", "device_id": null } }, { "name": "Samsung soundbar", "room": "living_room", "type": "media_player", "id": { "entity_id": "media_player.samsung_soundbar", "device_id": null } }, { "name": "Assist satellite Keuken", "room": "kitchen", "type": "assist_satellite", "id": { "entity_id": "assist_satellite.keuken", "device_id": null } }, { "name": "Assist satellite Woonkamer", "room": "living_room", "type": "assist_satellite", "id": { "entity_id": "assist_satellite.woonkamer", "device_id": null } }, { "name": "Soundbar before scene", "room": "living_room", "type": "scene", "id": { "entity_id": "scene.soundbar_before", "device_id": null } }, { "name": "Scene create", "room": null, "type": "scene", "id": { "entity_id": null, "device_id": "scene.create" } } ] }, { "id": "bd5c40c0-6c25-4560-9455-8318d1e3924a", "automation": "- id: bd5c40c0-6c25-4560-9455-8318d1e3924a\n alias: Make sure Soundbar is set to right source when something is playing\n triggers:\n - trigger: state\n entity_id:\n - media_player.nvidia_shield\n to: playing\n id: optical\n - trigger: state\n entity_id:\n - media_player.woonkamer\n to: playing\n for:\n seconds: 2\n id: aux\n conditions:\n - alias: Soundbar not on right source\n condition: template\n value_template: '{{ not is_state_attr(''media_player.samsung_soundbar'', ''source'',\n trigger.id) }}'\n actions:\n - if:\n - condition: state\n entity_id: media_player.samsung_soundbar\n state: 'off'\n then:\n - alias: Turn on soundbar\n action: media_player.turn_on\n target:\n entity_id: media_player.samsung_soundbar\n - alias: Wait for soundbar to turn on\n wait_template: '{{ is_state(''media_player.samsung_soundbar'', ''on'') }}'\n - alias: Select correct soundbar source\n action: media_player.select_source\n data:\n source: '{{ trigger.id }}'\n target:\n entity_id: media_player.samsung_soundbar\n mode: single", "config": [ { "name": "Nvidia Shield", "room": "living_room", "type": "media_player", "id": { "entity_id": "media_player.nvidia_shield", "device_id": null } }, { "name": "Samsung soundbar", "room": "living_room", "type": "media_player", "id": { "entity_id": "media_player.samsung_soundbar", "device_id": null } }, { "name": "Media player Woonkamer", "room": "living_room", "type": "media_player", "id": { "entity_id": "media_player.woonkamer", "device_id": null } } ] }, { "id": "5e74e69a-7e31-4769-ad6a-c438fce816dc", "automation": "- id: 5e74e69a-7e31-4769-ad6a-c438fce816dc\n alias: Notifications for new HA version\n mode: parallel\n max_exceeded: silent\n triggers:\n - alias: Home Assistant update available\n trigger: state\n entity_id:\n - update.home_assistant_core_update\n - update.home_assistant_operating_system_update\n to: 'on'\n variables:\n what: '{{ trigger.to_state.attributes.title }}'\n from: '{{ trigger.to_state.attributes.installed_version }}'\n to: '{{ trigger.to_state.attributes.latest_version }}'\n url: \"{%- \\n if what == 'Home Assistant Operating System'\\n or\\n (\\n \\\n \\ (not version(to).beta and version(to).patch == '0' )\\n or\\n \\\n \\ (version(to).beta and version.modifier == 'b0')\\n )\\n%}\\n {{ 'url'\\\n \\ }}\\n{%- else %}\\n https://github.com/home-assistant/core/releases/tag/{{\\\n \\ to }}\\n{%- endif %}\\n\"\n actions:\n - alias: Set up variables for notification actions\n variables:\n action_update: '{{ ''UPDATE_'' ~ context.id }}'\n action_skip: '{{ ''SKIP_'' ~ context.id }}'\n - alias: Send Home Assistant update notification to phone\n action: notify.mobile_app_pixel_10_pro\n data:\n title: 'Update: {{ what }}\n\n '\n message: Versie {{ to }} is nu beschikbaar. Je zit nu op {{ from }}.\n data:\n tag: ha_update_{{ what | slugify }}\n channel: Home Assistant\n ttl: 0\n priority: high\n clickAction: /config/dashboard\n actions:\n - action: URI\n title: Changelog\n uri: '{{ url }}'\n - action: '{{ action_skip }}'\n title: Skip\n - action: '{{ action_update }}'\n title: Update\n - alias: Wait for user response on notification\n wait_for_trigger:\n - alias: Update button pressed\n trigger: event\n event_type: mobile_app_notification_action\n event_data:\n action: '{{ action_update }}'\n - alias: Skip button pressed\n trigger: event\n event_type: mobile_app_notification_action\n event_data:\n action: '{{ action_skip }}'\n - alias: Install or skip update based on user choice\n action: update.{{ 'install' if 'UPDATE' in wait.trigger.event.data.action else\n 'skip' }}\n target:\n entity_id: '{{ trigger.entity_id }}'\n - alias: Set reboot notification flag if update was installed\n if: '{{ wait.trigger.event.data.action == action_update }}'\n then:\n - alias: Write reboot flag to variables sensor\n event: set_variable\n event_data:\n key: reboot_from_notification\n value: true\n set_timestamp: false", "config": [ { "name": "Mobile app Pixel 10 Pro", "room": null, "type": "notify", "id": { "entity_id": "notify.mobile_app_pixel_10_pro", "device_id": null } }, { "name": "Update Home Assistant core update", "room": null, "type": "update", "id": { "entity_id": "update.home_assistant_core_update", "device_id": null } }, { "name": "Update Home Assistant OS update", "room": null, "type": "update", "id": { "entity_id": "update.home_assistant_operating_system_update", "device_id": null } } ] }, { "id": "8034c218-8019-4f21-8921-fabfd38043a8", "automation": "- id: 8034c218-8019-4f21-8921-fabfd38043a8\n alias: Turn on light technical area based on door sensor\n triggers:\n - trigger: state\n entity_id: binary_sensor.technische_ruimte_contact\n from:\n - 'on'\n - 'off'\n to:\n - 'on'\n - 'off'\n actions:\n - alias: Turn on light\n action: light.turn_{{ trigger.to_state.state }}\n target:\n entity_id: light.technische_ruimte", "config": [ { "name": "Technical area contact sensor", "room": "technical_area", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.technische_ruimte_contact", "device_id": null } }, { "name": "Technical area light", "room": "technical_area", "type": "light", "id": { "entity_id": "light.technische_ruimte", "device_id": null } } ] }, { "id": "690cc2c9-f014-4b38-90e8-51217659d49e", "automation": "- id: 690cc2c9-f014-4b38-90e8-51217659d49e\n alias: Notifications for trash containers\n mode: single\n max_exceeded: silent\n triggers:\n - alias: Morning trash reminder (7:00 AM)\n trigger: time\n at: 07:00:00\n variables:\n when_en: today\n when_nl: Vandaag\n - alias: Evening trash reminder (8:00 PM)\n trigger: time\n at: '20:00:00'\n variables:\n when_en: tomorrow\n when_nl: Morgen\n variables:\n sensor: sensor.afvalwijzer_{{ when_en }}\n trash_descr:\n restgft: rest- en GFT-bak\n dhm: papier- en PMD-bak\n papier: papier- en PMD-bak\n kerstbomen: kerstboom\n trash_pickup: '{%- set trash = states(sensor).split('', '') %} {{ trash_descr.items()\n | list | selectattr(''0'', ''in'', trash) | map(attribute=''1'') | list }}\n\n '\n conditions:\n - alias: Notification needed?\n condition: template\n value_template: '{{ states(sensor) != ''geen'' }}'\n actions:\n - alias: Notification phones\n action: notify.all_phones\n data:\n title: \"{%- if trash_pickup | length > 1 %}\\n Denk aan de {{ trash_pickup[:-1]\\\n \\ | join(', ') }} en {{ trash_pickup[-1] }}!\\n{%- else %}\\n Denk aan de {{\\\n \\ trash_pickup[0] }}!\\n{%- endif %}\\n\"\n message: \"{%- if trash_pickup | length > 1 %}\\n {{ when_nl }} moeten de {{\\\n \\ trash_pickup[:-1] | join(', ') }} en {{ trash_pickup[-1] }} buiten.\\n{%-\\\n \\ else %}\\n {{ when_nl }} moet de {{ trash_pickup[0] }} buiten.\\n{%- endif\\\n \\ %}\\n\"\n data:\n channel: Trash\n ttl: 0\n priority: high\n notification_icon: mdi:trash-can-outline", "config": [ { "name": "All phones notify", "room": null, "type": "notify", "id": { "entity_id": "notify.all_phones", "device_id": null } } ] }, { "id": "98e424f3-e458-4061-8562-c9e2700e0c3a", "automation": "- id: 98e424f3-e458-4061-8562-c9e2700e0c3a\n alias: Ulanzi activate or deactivate app\n mode: queued\n triggers:\n - alias: Monitor Ulanzi battery level changes\n trigger: state\n entity_id: sensor.awtrix_martijn_battery\n to: null\n variables:\n show: '{{ trigger.to_state.state = ''100'' }}'\n app: bat\n conditions:\n - alias: Check app is defined and valid\n condition: template\n value_template: '{{ app is defined and app is not none }}'\n - alias: Check update flag is enabled\n condition: template\n value_template: '{{ update | default(true) | bool(true) }}'\n actions:\n - alias: Publish app activation status to MQTT\n action: mqtt.publish\n data:\n qos: 0\n retain: false\n topic: awtrix_martijn/apps\n payload: \"{{\\n [\\n dict(\\n name = app,\\n show = show | default(true)\\\n \\ | bool(true)\\n )\\n ] | to_json\\n}}\\n\"", "config": [ { "name": "Ulanzi Martijn brightness sensor", "room": "office", "type": "sensor", "id": { "entity_id": "sensor.awtrix_martijn_battery", "device_id": null } } ] }, { "id": "52dd10e9-7bf6-4778-b4b7-a8967a4b5fb8", "automation": "- id: 52dd10e9-7bf6-4778-b4b7-a8967a4b5fb8\n alias: Ulanzi indicators\n mode: queued\n triggers:\n - alias: Monitor WhatsApp notification status\n trigger: state\n entity_id: binary_sensor.whatsapp_notification_active\n to: null\n variables:\n action: '{{ trigger.to_state.state }}'\n indicator: 1\n color_name: green\n - alias: Monitor rain data status\n trigger: state\n entity_id: binary_sensor.raindata\n to: null\n variables:\n action: '{{ trigger.to_state.state }}'\n indicator: 2\n color_name: blue\n - alias: Monitor net power consumption status\n trigger: state\n entity_id: binary_sensor.net_power_consumption\n to: null\n variables:\n action: '{{ trigger.to_state.state in [''on'', ''off''] }}'\n indicator: 3\n color_name: '{{ ''yellow'' if trigger.to_state.state == ''off'' else ''purple''\n }}'\n conditions:\n - alias: Check update flag is enabled for indicators\n condition: template\n value_template: '{{ update | default(true) | bool(true) }}'\n actions:\n - if: '{{ action | default(true) | bool(true) }}'\n then:\n - alias: Turn Ulanzi indicator light on\n action: light.turn_on\n target:\n entity_id: light.awtrix_martijn_indicator_{{ indicator | default(1) | int(1)\n }}\n data:\n brightness: '{{ brightness | default(state_attr(''light.matrix'', ''brightness''))\n | int(255) }}'\n color_name: '{{ color_name | default(''white'') }}'\n else:\n - alias: Turn Ulanzi indicator light off\n action: light.turn_off\n target:\n entity_id: light.awtrix_martijn_indicator_{{ indicator }}", "config": [ { "name": "Rain binary sensor", "room": null, "type": "binary_sensor", "id": { "entity_id": "binary_sensor.rain", "device_id": null } }, { "name": "What's App notification active binary sensor", "room": null, "type": "binary_sensor", "id": { "entity_id": "binary_sensor.whatsapp_notification_active", "device_id": null } }, { "name": "Net power consumption binary sensor", "room": null, "type": "binary_sensor", "id": { "entity_id": "binary_sensor.net_power_consumption", "device_id": null } }, { "name": "Raindata binary sensor", "room": null, "type": "binary_sensor", "id": { "entity_id": "binary_sensor.raindata", "device_id": null } } ] }, { "id": "10d5d325-1ed3-47a8-9352-b1b1d121802e", "automation": "- id: 10d5d325-1ed3-47a8-9352-b1b1d121802e\n alias: Ulanzi notificatons and custom apps\n mode: queued\n triggers:\n - alias: Monitor weather changes for display\n trigger: state\n entity_id: weather.combined\n to: null\n variables: &id006\n app: weather\n text: '{{ state_attr(''weather.combined'', ''temperature'') }} ยฐC'\n icon: '{{ states(''weather.combined'') }}'\n update: '{{ state_attr(''weather.combined'', ''temperature'') is not none }}'\n - alias: Monitor weather temperature changes\n trigger: state\n entity_id: weather.combined\n attribute: temperature\n variables: *id006\n - alias: Monitor office temperature and humidity sensors\n trigger: state\n entity_id:\n - sensor.werkkamer_martijn_temp\n - sensor.werkkamer_martijn_vocht\n not_to: unavailable\n variables:\n app: '{{ trigger.to_state.attributes.device_class }}'\n text: '{{ states(trigger.entity_id, with_unit=true) }}'\n icon: \"{% if app == 'humidity' %}\\n humidity\\n{% elif trigger.to_state.state\\\n \\ | float >= 25 %}\\n temp-hot\\n{% elif trigger.to_state.state | float <=\\\n \\ 18 %}\\n temp-cold\\n{% else %}\\n temp-normal\\n{% endif %}\\n\"\n - alias: Monitor phone notification changes\n trigger: state\n entity_id: sensor.pixel_10_pro_last_notification\n to: null\n variables:\n sender_name: secret name_gf\n update: \"{{\\n trigger.to_state.attributes['package'] is defined\\n and trigger.to_state.attributes['package']\\\n \\ == 'com.whatsapp'\\n and trigger.to_state.attributes['android.title'] ==\\\n \\ sender_name\\n and is_state('person.martijn', 'home')\\n}}\\n\"\n icon: whatsapp\n text: \"{%- if trigger.to_state.attributes['android.textLines'] is defined %}\\n\\\n \\ {{ trigger.to_state.attributes['android.textLines'] | last }}\\n{%- else\\\n \\ %}\\n {{ trigger.to_state.attributes['android.text'] }}\\n{%- endif %}\\n\"\n repeat: 2\n textCase: 2\n pushIcon: 2\n - alias: Monitor doorbell button press\n trigger: state\n entity_id: binary_sensor.smart_doorbell_button\n to: 'on'\n variables:\n icon: dingdong\n text: Ding Dong\n background: 4CBEFC\n - alias: Monitor rain data for graph display\n trigger: state\n entity_id: binary_sensor.raindata\n variables:\n update: '{{ trigger.to_state.state in [''on'', ''off''] }}'\n icon: rainy\n graph_max: 8\n graph_data: '{{ trigger.to_state.attributes.raindata.data if trigger.to_state.state\n == ''on'' else none }}'\n graph_type: bar\n graph_color:\n - 0\n - 0\n - 255\n graph_round: ceil\n app: rain\n deactivate: '{{ trigger.to_state.state = ''on'' }}'\n variables:\n plot_graph: '{{ graph_data is defined and graph_data is not string and graph_data\n is iterable }}'\n conditions:\n - alias: Check update flag is enabled for notifications\n condition: template\n value_template: '{{ update | default(true) | bool(true) }}'\n - alias: Check if app deactivation or content is defined\n condition: template\n value_template: '{{ deactivate is defined or plot_graph is defined or text is\n defined }}'\n actions:\n - if: '{{ deactivate | default(false) }}'\n then:\n - alias: Deactivate custom app via MQTT\n action: mqtt.publish\n data:\n qos: 0\n retain: false\n topic: awtrix_martijn/custom/{{ app }}\n payload: ''\n else:\n - alias: Update custom app or send notification via MQTT\n action: mqtt.publish\n data:\n qos: 0\n retain: false\n topic: awtrix_martijn/{{ 'notify' if app | default('notify') == 'notify' else\n ('custom/' ~ app) }}\n payload: \"{%- set graph_type = graph_type | default('bar') %} {%- set graph_round\\\n \\ = graph_round | default('common') %} {%- set grap_round = graph_round\\\n \\ if graph_round in [ 'common', 'ceil', 'floor'] else 'common' %} {%- set\\\n \\ autoscale = not iif(graph_max | default(none)) if plot_graph else none\\\n \\ %} {%- set icon = icon | default() %} {%- set color = graph_color | default(none)\\\n \\ if plot_graph else text_color | default(none) %} {%- set data = (graph_data[:11]\\\n \\ if icon else graph_data[:16]) if plot_graph else [] %} {%- set data =\\\n \\ data\\n | select('is_number')\\n | map('multiply',\\\n \\ 8/graph_max | default(8))\\n | map('round', 0, graph_round)\\n\\\n \\ | map('int')\\n | list\\n%} {%- set graph_data\\\n \\ = { graph_type: (data[:11] if icon else data[:16]) if plot_graph else\\\n \\ none }%} {%- set data = dict(\\n graph_data,\\n \\\n \\ autoscale = autoscale,\\n text = text if not\\\n \\ plot_graph else none,\\n repeat = repeat | default(none),\\n\\\n \\ rainbow = rainbow | default(none),\\n \\\n \\ icon = icon | default(none),\\n pushIcon = pushIcon |\\\n \\ default(none),\\n textCase = textCase | default(none),\\n\\\n \\ color = color | default(none),\\n background\\\n \\ = background | default(none)\\n )\\n%} {%- set data = dict(data.items()\\\n \\ | rejectattr('1', 'none')) %} {{ data | to_json }}\\n\"", "config": [ { "name": "Weather combined", "room": null, "type": "weather", "id": { "entity_id": "weather.combined", "device_id": null } }, { "name": "Smart doorbell button", "room": "front_door", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.smart_doorbell_button", "device_id": null } }, { "name": "Person Martijn", "room": null, "type": "person", "id": { "entity_id": "person.martijn", "device_id": null } }, { "name": "Rain binary sensor", "room": null, "type": "binary_sensor", "id": { "entity_id": "binary_sensor.rain", "device_id": null } }, { "name": "Pixel 10 Pro last notification sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.pixel_10_pro_last_notification", "device_id": null } }, { "name": "Martijn office temperature sensor", "room": "office", "type": "sensor", "id": { "entity_id": "sensor.werkkamer_martijn_temp", "device_id": null } }, { "name": "Martijn office humidity sensor", "room": "office", "type": "sensor", "id": { "entity_id": "sensor.werkkamer_martijn_vocht", "device_id": null } }, { "name": "Raindata binary sensor", "room": null, "type": "binary_sensor", "id": { "entity_id": "binary_sensor.raindata", "device_id": null } } ] }, { "id": "964ca72d-0e82-488d-b6e8-0ac72a5eabc0", "automation": "- id: 964ca72d-0e82-488d-b6e8-0ac72a5eabc0\n alias: Ulanzi turn screen on and off\n mode: queued\n triggers:\n - alias: Monitor house mode changes for screen control\n trigger: state\n entity_id: sensor.house_mode\n to: null\n variables:\n action: \"{{\\n 'off'\\n if is_state('sensor.house_mode', 'Slapen')\\n or now()\\\n \\ > today_at('22:00')\\n or now() < today_at('07:00')\\n else 'on'\\n}}\\n\"\n update: \"{{\\n is_state('person.martijn', 'home')\\n and is_state('switch.shelly1pm_bureau_martijn_relay',\\\n \\ 'on')\\n and is_state('script.computer_martijn_off', 'off')\\n if action\\\n \\ == 'on'\\n else true\\n}}\\n\"\n - alias: Monitor office power switch for screen control\n trigger: state\n entity_id: switch.shelly1pm_bureau_martijn_relay\n to: null\n variables:\n action: '{{ trigger.to_state.state if (not is_state(''sensor.house_mode'', ''Slapen'')\n and is_state(''person.martijn'', ''home'')) else ''off'' }}\n\n '\n update: \"{{\\n is_state('person.martijn', 'home')\\n and is_state('switch.shelly1pm_bureau_martijn_relay',\\\n \\ 'on')\\n and is_state('script.computer_martijn_off', 'off')\\n if action\\\n \\ == 'on'\\n else true\\n}}\\n\"\n - alias: Schedule screen on/off at specific times\n trigger: time\n at:\n - 07:00\n - '22:00'\n variables:\n action: \"{{\\n 'off'\\n if states('sensor.house_mode') == 'Slapen' or not is_state('person.martijn',\\\n \\ 'home')\\n else 'on'\\n}}\\n\"\n update: \"{{\\n is_state('person.martijn', 'home')\\n and is_state('switch.shelly1pm_bureau_martijn_relay',\\\n \\ 'on')\\n and is_state('script.computer_martijn_off', 'off')\\n if action\\\n \\ == 'on'\\n else true\\n}}\\n\"\n - alias: Monitor person presence for screen control\n trigger: state\n entity_id: person.martijn\n to: null\n variables:\n action: '{{ is_state(''person.martijn'', ''home'') }}'\n update: \"{{\\n (is_state('switch.shelly1pm_bureau_martijn_relay', 'on') and\\\n \\ not is_state('sensor.house_mode', 'Slapen'))\\n if action == 'on'\\n else\\\n \\ true\\n}}\\n\"\n conditions:\n - alias: Check update flag is enabled for screen control\n condition: template\n value_template: '{{ update | default(true) | bool(true) }}'\n actions:\n - alias: Turn Ulanzi matrix display on or off\n action: light.turn_{{ iif(action | default(true) | bool(true), 'on', 'off') }}\n target:\n entity_id: light.awtrix_martijn_matrix", "config": [ { "name": "House mode sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.house_mode", "device_id": null } }, { "name": "Person Martijn", "room": null, "type": "person", "id": { "entity_id": "person.martijn", "device_id": null } }, { "name": "Martijn matrix display light", "room": "office", "type": "light", "id": { "entity_id": "light.awtrix_martijn_matrix", "device_id": null } }, { "name": "Shelly1PM bureau Martijn relay", "room": "office", "type": "switch", "id": { "entity_id": "switch.shelly1pm_bureau_martijn_relay", "device_id": null } }, { "name": "Computer Martijn off script", "room": null, "type": "script", "id": { "entity_id": "script.computer_martijn_off", "device_id": null } } ] }, { "id": "630ae4fd-f5fd-41f9-8d83-837e991a08c8", "automation": "- id: 630ae4fd-f5fd-41f9-8d83-837e991a08c8\n alias: Run actions on Awtrix button press\n triggers:\n - alias: Monitor all Awtrix button presses\n trigger: state\n entity_id:\n - binary_sensor.awtrix_martijn_button_left\n - binary_sensor.awtrix_martijn_button_select\n - binary_sensor.awtrix_martijn_button_right\n - binary_sensor.awtrix_floris_button_left\n - binary_sensor.awtrix_floris_button_select\n - binary_sensor.awtrix_floris_button_right\n - binary_sensor.awtrix_pepijn_button_left\n - binary_sensor.awtrix_pepijn_button_select\n - binary_sensor.awtrix_pepijn_button_right\n from: 'off'\n to: 'on'\n actions:\n - alias: Wait 2 seconds for button release\n wait_for_trigger:\n - alias: Check if button is released\n trigger: template\n value_template: '{{ is_state(trigger.entity_id, ''off'') }}'\n timeout:\n seconds: 2\n - alias: Determine if long press or short press\n if: '{{ wait.trigger is none }}'\n then:\n - alias: Send hold event for long press\n event: awtrix_button_event\n event_data:\n area: '{{ area_id(trigger.entity_id) }}'\n button: '{{ trigger.entity_id.split(''_'')[-1] }}'\n click: hold\n else:\n - alias: Handle short press sequence\n repeat:\n sequence:\n - alias: Wait for additional button presses\n wait_for_trigger:\n - alias: Check for new button press\n trigger: template\n value_template: '{{ is_state(trigger.entity_id, ''on'') }}'\n timeout:\n seconds: 0.5\n - alias: Send click event if no additional presses\n if: '{{ wait.trigger is none }}'\n then:\n - alias: Send button click event\n event: awtrix_button_event\n event_data:\n area: '{{ area_id(trigger.entity_id) }}'\n button: '{{ trigger.entity_id.split(''_'')[-1] }}'\n click: '{{ ''single'' if repeat.index == 1 else ''multiple'' }}'\n count: '{{ repeat.index }}'\n until: '{{ wait.trigger is none }}'", "config": [ { "name": "Ulanzi Floris left button", "room": "floris_bedroom", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.awtrix_floris_button_left", "device_id": null } }, { "name": "Ulanzi Floris select button", "room": "floris_bedroom", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.awtrix_floris_button_select", "device_id": null } }, { "name": "Ulanzi Floris right button", "room": "floris_bedroom", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.awtrix_floris_button_right", "device_id": null } }, { "name": "Ulanzi Pepijn left button", "room": "pepijn_bedroom", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.awtrix_pepijn_button_left", "device_id": null } }, { "name": "Ulanzi Pepijn select button", "room": "pepijn_bedroom", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.awtrix_pepijn_button_select", "device_id": null } }, { "name": "Ulanzi Pepijn right button", "room": "pepijn_bedroom", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.awtrix_pepijn_button_right", "device_id": null } }, { "name": "Ulanzi Martijn left button", "room": "office", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.awtrix_martijn_button_left", "device_id": null } }, { "name": "Ulanzi Martijn select button", "room": "office", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.awtrix_martijn_button_select", "device_id": null } }, { "name": "Ulanzi Martijn right button", "room": "office", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.awtrix_martijn_button_right", "device_id": null } } ] }, { "id": "dc9ec434-0886-4fd3-a504-006ca6e8ec40", "automation": "- id: dc9ec434-0886-4fd3-a504-006ca6e8ec40\n alias: Awtrix button Pepijn\n mode: parallel\n max_exceeded: silent\n triggers:\n - trigger: event\n event_type: awtrix_button_event\n event_data:\n area: slaapkamer_pepijn\n variables:\n event: '{{ trigger.event.data.click }}'\n button: '{{ trigger.event.data.button }}'\n actions:\n - alias: Which click type\n choose:\n - conditions: '{{ event == ''single'' }}'\n sequence:\n - action: light.toggle\n target:\n entity_id: \"{%\\n set button_map = \\n {\\n 'left': 'light.wereldbol',\\n\\\n \\ 'select': 'light.bed_pepijn',\\n 'right': 'light.pepijn_leeslamp'\\n\\\n \\ }\\n%} {{ button_map[button] }}\\n\"\n - conditions: '{{ event == ''hold'' }}'\n sequence:\n - alias: Light off\n action: light.turn_off\n target:\n entity_id: \"{{\\n area_entities('slaapkamer_pepijn')\\n | select('in',\\\n \\ label_entities('off_long_press'))\\n | list\\n}}\\n\"\n - conditions: '{{ event == ''double'' }}'\n sequence: []\n - conditions: '{{ event == ''release'' }}'\n sequence: []", "config": [ { "name": "Pepijn light", "room": "pepijn_bedroom", "type": "light", "id": { "entity_id": "light.pepijn", "device_id": null } }, { "name": "Pepijn globe light", "room": "pepijn_bedroom", "type": "light", "id": { "entity_id": "light.wereldbol", "device_id": null } }, { "name": "Pepijn bed light", "room": "pepijn_bedroom", "type": "light", "id": { "entity_id": "light.bed_pepijn", "device_id": null } }, { "name": "Pepijn reading light", "room": "pepijn_bedroom", "type": "light", "id": { "entity_id": "light.pepijn_leeslamp", "device_id": null } } ] }, { "id": "1bb3f63c-c210-4299-a36e-14e70a2e6950", "automation": "- id: 1bb3f63c-c210-4299-a36e-14e70a2e6950\n alias: Update ulanzi Pepijn\n mode: parallel\n triggers:\n - alias: Update Pepijn display every minute\n trigger: time_pattern\n seconds: '0'\n - alias: Pepijn sleeping state changed\n trigger: state\n entity_id: binary_sensor.pepijn_sleeping\n from:\n - 'on'\n - 'off'\n to:\n - 'on'\n - 'off'\n - alias: Pepijn Ulanzi display came back online\n trigger: state\n entity_id: light.awtrix_pepijn_matrix\n from:\n - unavailable\n - alias: Weather or Pepijn clock correction changed\n trigger: state\n entity_id:\n - weather.combined\n - input_number.correction_clock_pepijn\n to: null\n variables:\n correction: '{{ states(''input_number.correction_clock_pepijn'') | float(0) }}'\n actions:\n - if: '{{ is_state(''binary_sensor.pepijn_sleeping'', ''on'') }}'\n then:\n - if: '{{ not is_state(''select.awtrix_pepijn_brightness_mode'', ''Manual'') }}'\n then:\n - alias: Set Pepijn display brightness to manual mode\n action: select.select_option\n data:\n option: Manual\n target:\n entity_id: select.awtrix_pepijn_brightness_mode\n - if: '{{ not is_state_attr(''light.awtrix_pepijn_matrix'', ''brightness'', 2)\n }}'\n then:\n - alias: Dim Pepijn display for nighttime\n action: light.turn_on\n target:\n entity_id: light.awtrix_pepijn_matrix\n data:\n brightness: 2\n - alias: Publish sleep clock display for Pepijn\n action: mqtt.publish\n data:\n qos: 0\n retain: false\n topic: awtrix_pepijn/custom/sleep_clock\n payload: \"{% set n = now() + timedelta(hours=correction) %} {% set awake_time\\\n \\ = today_at(states('input_datetime.pepijn_time_awake')) %} {% set awake_time\\\n \\ = awake_time + timedelta(days=1) if n > awake_time else awake_time %}\\\n \\ {% set qh = ((awake_time - n).total_seconds() / 60 / 15) | round(0, 'ceil')\\\n \\ %} {% set progress = [100 - int((100/24 * qh)), 0] | max if n < awake_time\\\n \\ or n > today_at('19:00') else 100 %} {% set icon = 'star-up' if is_state('sensor.house_mode',\\\n \\ 'Slapen') else 'star-down' %} {{\\n dict(\\n icon = icon,\\n \\\n \\ text = n.strftime('%-I:%M'),\\n color = [160,0,0],\\n progress\\\n \\ = progress,\\n progressC = [0,0,0],\\n progressBC = [160,0,0]\\n\\\n \\ )\\n}}\\n\"\n else:\n - alias: Publish weather clock display for Pepijn\n action: mqtt.publish\n data:\n qos: 0\n retain: false\n topic: awtrix_pepijn/custom/sleep_clock\n payload: \"{{\\n dict(\\n icon = states('weather.combined'),\\n \\\n \\ text = (now() + timedelta(hours=correction)).strftime('%-I:%M')\\n \\\n \\ )\\n}}\\n\"\n - if: '{{ not is_state(''select.awtrix_pepijn_brightness_mode'', ''Auto'') }}'\n then:\n - alias: Set Pepijn display brightness to auto mode\n action: select.select_option\n data:\n option: Auto\n target:\n entity_id: select.awtrix_pepijn_brightness_mode\n - if: '{{ not is_state(''sensor.awtrix_pepijn_current_app'', ''sleep_clock'') }}'\n then:\n - alias: Switch Pepijn display to sleep clock app\n action: mqtt.publish\n data:\n qos: 0\n retain: false\n topic: awtrix_pepijn/switch\n payload: '{{ dict(name = ''sleep_clock'') }}'", "config": [ { "name": "House mode sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.house_mode", "device_id": null } }, { "name": "Weather combined", "room": null, "type": "weather", "id": { "entity_id": "weather.combined", "device_id": null } }, { "name": "Pepijn sleeping binary sensor", "room": "pepijn_bedroom", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.pepijn_sleeping", "device_id": null } }, { "name": "Ulanzi Pepijn matrix light", "room": "pepijn_bedroom", "type": "light", "id": { "entity_id": "light.awtrix_pepijn_matrix", "device_id": null } }, { "name": "Ulanzi Pepijn brightness mode select", "room": "pepijn_bedroom", "type": "select", "id": { "entity_id": "select.awtrix_pepijn_brightness_mode", "device_id": null } }, { "name": "Ulanzi Pepijn current app sensor", "room": "pepijn_bedroom", "type": "sensor", "id": { "entity_id": "sensor.awtrix_pepijn_current_app", "device_id": null } }, { "name": "Pepijn clock correction input number", "room": "pepijn_bedroom", "type": "input_number", "id": { "entity_id": "input_number.correction_clock_pepijn", "device_id": null } }, { "name": "Pepijn wake up time input datetime", "room": "pepijn_bedroom", "type": "input_datetime", "id": { "entity_id": "input_datetime.pepijn_time_awake", "device_id": null } } ] }, { "id": "8c6c0182-b227-47b8-a53b-c88075761b1a", "automation": "- id: 8c6c0182-b227-47b8-a53b-c88075761b1a\n alias: Awtrix button Floris\n triggers:\n - alias: Floris Ulanzi button pressed\n trigger: event\n event_type: awtrix_button_event\n event_data:\n area: slaapkamer_floris\n variables:\n event: '{{ trigger.event.data.click }}'\n button: '{{ trigger.event.data.button }}'\n actions:\n - alias: Which click type\n choose:\n - conditions: '{{ event == ''single'' }}'\n sequence:\n - alias: Toggle selected Floris light based on button pressed\n action: light.toggle\n target:\n entity_id: \"{%\\n set button_map = \\n {\\n 'left': 'light.bedlamp_floris',\\n\\\n \\ 'select': 'light.planeet',\\n 'right': 'light.floris_leeslamp'\\n\\\n \\ }\\n%} {{ button_map[button] }}\\n\"\n - conditions: '{{ event == ''hold'' }}'\n sequence:\n - alias: Light off\n action: light.turn_off\n target:\n entity_id: \"{{\\n area_entities('slaapkamer_floris')\\n | select('in',\\\n \\ label_entities('off_long_press'))\\n | list\\n}}\\n\"\n - conditions: '{{ event == ''double'' }}'\n sequence: []\n - conditions: '{{ event == ''release'' }}'\n sequence: []", "config": [ { "name": "Floris light", "room": "floris_bedroom", "type": "light", "id": { "entity_id": "light.floris", "device_id": null } }, { "name": "Floris reading light", "room": "floris_bedroom", "type": "light", "id": { "entity_id": "light.floris_leeslamp", "device_id": null } }, { "name": "Floris bed lamp", "room": "floris_bedroom", "type": "light", "id": { "entity_id": "light.bedlamp_floris", "device_id": null } }, { "name": "Planet light", "room": "floris_bedroom", "type": "light", "id": { "entity_id": "light.planeet", "device_id": null } } ] }, { "id": "0b959006-4674-4343-b316-ebf1e124f826", "automation": "- id: 0b959006-4674-4343-b316-ebf1e124f826\n alias: Update ulanzi Floris\n mode: parallel\n triggers:\n - alias: Update Floris display every minute\n trigger: time_pattern\n seconds: '0'\n - alias: Floris sleeping state changed\n trigger: state\n entity_id: binary_sensor.floris_sleeping\n from:\n - 'on'\n - 'off'\n to:\n - 'on'\n - 'off'\n - alias: Floris Ulanzi display came back online\n trigger: state\n entity_id: light.awtrix_floris_matrix\n from:\n - unavailable\n - alias: Weather or Floris clock correction changed\n trigger: state\n entity_id:\n - weather.combined\n - input_number.correction_clock_floris\n to: null\n variables:\n correction: '{{ states(''input_number.correction_clock_floris'') | float(0) }}'\n actions:\n - if: '{{ is_state(''binary_sensor.floris_sleeping'', ''on'') }}'\n then:\n - if: '{{ not is_state(''select.awtrix_floris_brightness_mode'', ''Manual'') }}'\n then:\n - alias: Set Floris display brightness to manual mode\n action: select.select_option\n data:\n option: Manual\n target:\n entity_id: select.awtrix_floris_brightness_mode\n - if: '{{ not is_state_attr(''light.awtrix_floris_matrix'', ''brightness'', 2)\n }}'\n then:\n - alias: Dim Floris display for nighttime\n action: light.turn_on\n target:\n entity_id: light.awtrix_floris_matrix\n data:\n brightness: 2\n - alias: Publish sleep clock display for Floris\n action: mqtt.publish\n data:\n qos: 0\n retain: false\n topic: awtrix_floris/custom/sleep_clock\n payload: \"{% set n = now() + timedelta(hours=correction) %} {% set awake_time\\\n \\ = today_at(states('input_datetime.floris_time_awake')) %} {% set awake_time\\\n \\ = awake_time + timedelta(days=1) if n > awake_time else awake_time %}\\\n \\ {% set qh = ((awake_time - n).total_seconds() / 60 / 15) | round(0, 'ceil')\\\n \\ %} {% set progress = [100 - int((100/24 * qh)), 0] | max if n < awake_time\\\n \\ or n > today_at('19:00') else 100 %} {% set icon = 'star-up2' if is_state('sensor.house_mode',\\\n \\ 'Slapen') else 'star-down2' %} {{\\n dict(\\n icon = icon,\\n \\\n \\ text = n.strftime('%-I:%M'),\\n color = [160,0,0],\\n \\\n \\ progress = progress,\\n progressC = [0,0,0],\\n progressBC\\\n \\ = [160,0,0]\\n )\\n}}\\n\"\n else:\n - alias: Publish weather clock display for Floris\n action: mqtt.publish\n data:\n qos: 0\n retain: false\n topic: awtrix_floris/custom/sleep_clock\n payload: \"{{\\n dict(\\n icon = states('weather.combined'),\\n \\\n \\ text = (now() + timedelta(hours=correction)).strftime('%-I:%M')\\n \\\n \\ )\\n}}\\n\"\n - if: '{{ not is_state(''select.awtrix_floris_brightness_mode'', ''Auto'') }}'\n then:\n - alias: Set Floris display brightness to auto mode\n action: select.select_option\n data:\n option: Auto\n target:\n entity_id: select.awtrix_floris_brightness_mode\n - if: '{{ not is_state(''sensor.awtrix_floris_current_app'', ''sleep_clock'') }}'\n then:\n - alias: Switch Floris display to sleep clock app\n action: mqtt.publish\n data:\n qos: 0\n retain: false\n topic: awtrix_floris/switch\n payload: '{{ dict(name = ''sleep_clock'') }}'", "config": [ { "name": "House mode sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.house_mode", "device_id": null } }, { "name": "Weather combined", "room": null, "type": "weather", "id": { "entity_id": "weather.combined", "device_id": null } }, { "name": "Floris sleeping binary sensor", "room": "floris_bedroom", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.floris_sleeping", "device_id": null } }, { "name": "Ulanzi Floris matrix light", "room": "floris_bedroom", "type": "light", "id": { "entity_id": "light.awtrix_floris_matrix", "device_id": null } }, { "name": "Ulanzi Floris brightness mode select", "room": "floris_bedroom", "type": "select", "id": { "entity_id": "select.awtrix_floris_brightness_mode", "device_id": null } }, { "name": "Ulanzi Floris current app sensor", "room": "floris_bedroom", "type": "sensor", "id": { "entity_id": "sensor.awtrix_floris_current_app", "device_id": null } }, { "name": "Floris clock correction input number", "room": "floris_bedroom", "type": "input_number", "id": { "entity_id": "input_number.correction_clock_floris", "device_id": null } }, { "name": "Floris wake up time input datetime", "room": "floris_bedroom", "type": "input_datetime", "id": { "entity_id": "input_datetime.floris_time_awake", "device_id": null } } ] }, { "id": "645ac57b-f743-429e-9765-9a14149a2f4a", "automation": "- id: 645ac57b-f743-429e-9765-9a14149a2f4a\n alias: Bedtime Kids\n triggers:\n - alias: Trigger sentence\n trigger: conversation\n command:\n - (floris|pepijn) gaat naar bed\n - de kinderen gaan naar bed\n actions:\n - variables:\n who: \"{% if 'floris' in trigger.sentence | lower %}\\n Floris\\n{% elif 'pepijn'\\\n \\ in trigger.sentence | lower %}\\n Pepijn\\n{% else %}\\n {{ ['Pepijn', 'Floris']\\\n \\ | shuffle | join(' en ') }}\\n{% endif %}\\n\"\n - alias: Start script for bedtime lights\n action: script.turn_on\n target:\n entity_id: \"{% if ' en ' in who %}\\n [ 'script.bedtime_pepijn_routine', 'script.bedtime_floris_routine'\\\n \\ ]\\n{% else %}\\n script.bedtime_{{ who | lower }}_routine\\n{% endif %}\\n\"\n - alias: Set response\n set_conversation_response: 'Slaap lekker {{ who }}!\n\n '\n mode: single", "config": [ { "name": "Bedtime Pepijn routine script", "room": "pepijn_bedroom", "type": "script", "id": { "entity_id": "script.bedtime_pepijn_routine", "device_id": null } }, { "name": "Bedtime Floris routine script", "room": "floris_bedroom", "type": "script", "id": { "entity_id": "script.bedtime_floris_routine", "device_id": null } } ] }, { "id": "4082634b-2b59-4371-b5c1-82cd3710c865", "automation": "- id: 4082634b-2b59-4371-b5c1-82cd3710c865\n alias: Voice - Get calendar events\n triggers:\n - trigger: conversation\n command:\n - wat staat er op de (agenda|kalender|planning)[[ voor] {query}]\n - wat staat er [voor] {query} op de (agenda|kalender|planning)\n - staat er iets op de (agenda|kalender|planning)[ [voor] {query}]\n - staat er [voor] {query} iets op de (agenda|kalender|planning)\n variables:\n calendars:\n - calendar.thefes\n - calendar.m_m\n - calendar.kids\n conversation_agent: conversation.openai_normaal\n output_language: Dutch\n actions:\n - alias: convert the query to the right format for the calendar.get_events action\n action: conversation.process\n data:\n agent_id: '{{ conversation_agent }}'\n text: 'You are an AI process that transforms a date and time query into a structured\n JSON. The query can be in Dutch or English and can be a part of a day to multiple\n days. In case the request is a weekend or week end, this includes both Saturday\n and Sunday The query is: \"{{ trigger.slots.query | default(\"today\") }}\"\n\n Here is the structured JSON that I expect in response {\"start_date_time\":\n \"start_date\", \"end_date_time\": \"end_date\"} Both \"start_date\" and \"end_date\"\n should be a isoformat datetime string in the format \"YYYY-MM-DD 00:00:00+01:00\"\n The timezone of the datetime string should be the timezone in the Netherlands\n (corrected for Daylight Savings if that is needed)\n\n Output only the json string or \"unknown\" if it is not possible to convert\n the query to datetime values. Note that when the output is \"unknown\", this\n should only be this one word, so not the json string. The output will be used\n in further automtions, so don''t add any additional text or explanation.\n\n '\n response_variable: response\n - alias: set the output to a varialbe\n variables:\n output: '{{ response.response.speech.plain.speech }}'\n - alias: check the calendars for events for these dates\n action: calendar.get_events\n target:\n entity_id: '{{ calendars }}'\n data: '{{ output if output != ''unknown'' else dict(start_date_time=now().isoformat(),\n end_date_time=now().isoformat()) }}'\n response_variable: events\n - alias: create summary of the events\n action: conversation.process\n data:\n agent_id: '{{ conversation_agent }}'\n text: 'Give a short summary of these calendar events: {{ events }} In case there\n are no events for a specific calendar, ignore that calendar. In case there\n are no events at all, mention that there are no events for the time period.\n Combine all events of the calendars in one summary, don''t mention to which\n calendar they belong. Don''t use special characters (as \"*\"\" or \"-\"\") as the\n result will be used in a Text To Speech (TTS) response. Keep it short and\n to the point and respond in {{ output_language }}.\n\n '\n response_variable: summary\n - alias: Set response for voice satellite\n set_conversation_response: '{{ summary.response.speech.plain.speech if output\n != ''unknown'' else ''Ik begrijp niet voor welke datum je de agenda wil weten''\n }}\n\n '", "config": [ { "name": "Calendar M M", "room": null, "type": "calendar", "id": { "entity_id": "calendar.m_m", "device_id": null } }, { "name": "Calendar TheFes", "room": null, "type": "calendar", "id": { "entity_id": "calendar.thefes", "device_id": null } }, { "name": "Calendar Kids", "room": null, "type": "calendar", "id": { "entity_id": "calendar.kids", "device_id": null } } ] }, { "id": "fa1ca856-95ab-4317-bb6e-7681d74f136f", "automation": "- id: fa1ca856-95ab-4317-bb6e-7681d74f136f\n alias: Voice - Remaing time dishwasher\n mode: parallel\n triggers:\n - alias: Trigger sentence\n trigger: conversation\n command:\n - hoe lang moet [de] vaat[wasser] [nog]\n - (wanneer|hoe laat) is de vaat[wasser] klaar\n actions:\n - alias: Set response\n set_conversation_response: \"{%- set time_set = states('sensor.dishwasher_end_time')\\\n \\ | as_datetime %} {%- if now() < time_set and is_state('binary_sensor.dishwasher_active',\\\n \\ 'on') %}\\n {%- set seconds = (time_set - now()).seconds %}\\n {%- set hours\\\n \\ = (seconds / 3600) | int %}\\n {%- set minutes = (((seconds / 3600) - hours)\\\n \\ * 60) | int %}\\n {%- if hours == 0 %}\\n De vaatwasser is over {{ minutes\\\n \\ ~ (' minuut' if minutes == 1 else ' minuten') }} klaar.\\n {%- else %}\\n \\\n \\ De vaatwasser is klaar rond {{ time_set.strftime('%H:%M') }}.\\n {%- endif\\\n \\ %}\\n{%- elif now() < time_set | as_local %}\\n De vaatwasser is nu elk moment\\\n \\ klaar\\n{%- else %}\\n De vaatwasser is niet actief\\n{%- endif %}\\n\"", "config": [ { "name": "Dishwasher active sensor", "room": "kitchen", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.dishwasher_active", "device_id": null } }, { "name": "Dishwasher end time sensor", "room": "kitchen", "type": "sensor", "id": { "entity_id": "sensor.dishwasher_end_time", "device_id": null } } ] }, { "id": "f9e73c28-8d45-4148-8a9c-2b4e5323334b", "automation": "- id: f9e73c28-8d45-4148-8a9c-2b4e5323334b\n alias: Voice - Remaing time washing machine\n mode: parallel\n triggers:\n - alias: Trigger sentence\n trigger: conversation\n command:\n - hoe lang moet [de] was[machine] [nog]\n - (wanneer|hoe laat) is de was[machine] klaar\n actions:\n - alias: Set response\n set_conversation_response: \"{% set delta = as_timedelta(states('sensor.wasmachine_remain_time'))\\\n \\ %} {% if delta is none %}\\n Kan de wasmachine nu niet bereiken\\n{% else %}\\n\\\n \\ {%- set seconds = delta.seconds %}\\n {%- set hours = (seconds / 3600) |\\\n \\ int %}\\n {%- set minutes = (((seconds / 3600) - hours) * 60) | int %}\\n \\\n \\ {%- if seconds == 0 %}\\n De wasmachine is niet actief\\n {%- elif hours\\\n \\ == 0 %}\\n De wasmachine is over {{ minutes ~ (' minuut' if minutes == 1\\\n \\ else ' minuten') }} klaar.\\n {%- else %}\\n De wasmachine is klaar rond\\\n \\ {{ (now() + delta).strftime('%H:%M') }}.\\n {%- endif %}\\n{% endif %}\\n\"", "config": [ { "name": "Washing machine remaining time sensor", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.wasmachine_remain_time", "device_id": null } } ] }, { "id": "fe7ae331-8db2-4470-8e84-14709861edf8", "automation": "- id: fe7ae331-8db2-4470-8e84-14709861edf8\n alias: Enable Party mode for kids\n mode: parallel\n triggers:\n - trigger: state\n entity_id:\n - event.ha_voice_floris_button_press\n - event.ha_voice_pepijn_button_press\n alias: Button press event\n not_from: unavailable\n - alias: Trigger sentence\n trigger: conversation\n command:\n - Tijd voor een (feestje|disco)\n - Zet (disco|feest)[ ](modus|stand) aan\n - Ik wil (disco[{en}]|feesten)\n id: sentence\n conditions:\n - alias: Double press event\n condition: template\n value_template: \"{{\\n trigger.id == 'sentence'\\n or trigger.to_state.attributes.event_type\\\n \\ == 'triple_press'\\n}}\\n\"\n actions:\n - alias: Set response\n set_conversation_response: 'Feestmodus aan!\n\n '\n - variables:\n area: '{{ area_id(trigger.device_id if trigger.id == ''sentence'' else trigger.entity_id)\n }}'\n player: \"{{\\n integration_entities('music_assistant')\\n | select('in', area_entities(area))\\n\\\n \\ | list\\n}}\\n\"\n - alias: Play Music\n action: music_assistant.play_media\n target:\n entity_id: '{{ player }}'\n data:\n media_type: playlist\n media_id: Leuke liedjes Pepijn en Floris\n enqueue: replace\n - alias: Set shuffle\n action: media_player.shuffle_set\n target:\n entity_id: '{{ player }}'\n data:\n shuffle: true\n - alias: Enable Party lights\n action: script.party_party\n data:\n party_on: true\n exclude_lights:\n - light.pepijn_template\n set_by: voice_satellite\n area: '{{ area }}'", "config": [ { "name": "Pepijn template light", "room": "pepijn_bedroom", "type": "light", "id": { "entity_id": "light.pepijn_template", "device_id": null } }, { "name": "Pepijn light", "room": "pepijn_bedroom", "type": "light", "id": { "entity_id": "light.pepijn", "device_id": null } }, { "name": "Party party script", "room": null, "type": "script", "id": { "entity_id": "script.party_party", "device_id": null } }, { "name": "HA Voice Floris button press event", "room": "floris_bedroom", "type": "event", "id": { "entity_id": "event.ha_voice_floris_button_press", "device_id": null } }, { "name": "HA Voice Pepijn button press event", "room": "pepijn_bedroom", "type": "event", "id": { "entity_id": "event.ha_voice_pepijn_button_press", "device_id": null } } ] }, { "id": "c1f376c8-2a14-4d27-b55a-688a8c2635e3", "automation": "- id: c1f376c8-2a14-4d27-b55a-688a8c2635e3\n alias: Voice - ETA Marleen & Martijn\n triggers:\n - alias: Trigger sentence\n trigger: conversation\n command:\n - (wanneer|hoe laat) is (Marleen|Martijn|mama|papa) thuis\n - (wanneer|hoe laat) wordt (Marleen|Martijn|mama|papa) thuis verwacht\n - (wanneer|hoe laat) kan ik (Martijn|Marleen|mama|papa) thuis verwachten\n - '[wat is] [de] ETA [van] (Martijn|Marleen|mama|papa)'\n actions:\n - alias: Set variables for entities\n variables:\n name: '{{ ''Martijn'' if trigger.sentence | lower is search(''martijn|papa'')\n else ''Marleen'' }}\n\n '\n gender: '{{ ''hij'' if name == ''Martijn'' else ''ze'' }}'\n person: person.{{ name | lower }}\n waze: sensor.{{ name | lower }}_naar_huis\n proximity: sensor.thuis_{{ name | lower }}_direction_of_travel\n - alias: Make sure entity states are updated\n action: homeassistant.update_entity\n target:\n entity_id: '{{ [waze,proximity, person] }}'\n - alias: Short delay to make sure updates are done\n delay: 0.5\n - alias: Set response\n set_conversation_response: \"{%- set eta = (now() + timedelta(minutes=2 + states(waze)\\\n \\ | float(0))).strftime('%H:%M') %} {%- if is_state(person, 'home') %}\\n {{\\\n \\ name }} is al thuis\\n{%- elif is_state(waze, 'towards') %}\\n {{ name }} is\\\n \\ om {{ eta }} thuis.\\n{%- elif is_state(proximity, 'away_from') %}\\n {{ name\\\n \\ }} gaat de verkeerde kant op, maar als {{ gender }} nu omdraait is {{ gender\\\n \\ }} om {{ eta }} thuis.\\n{%- else %}\\n {{ name }} is nog niet onderweg, maar\\\n \\ als {{ gender }} nu vertrekt is {{ gender }} om {{ eta }} thuis.\\n{%- endif\\\n \\ %}\\n\"", "config": [] }, { "id": "efce766d-893e-4e59-b09c-a05ff49f1965", "automation": "- id: efce766d-893e-4e59-b09c-a05ff49f1965\n alias: Good morning actions\n triggers:\n - alias: Trigger sentence\n trigger: conversation\n command:\n - '[{unwanted misheard stuff} ]Goe(d|i)e[ ]morgen[ nabu][ {unwanted misheard stuff}]'\n actions:\n - alias: Start script for good morning lights\n action: script.turn_on\n target:\n entity_id: script.good_morning_routine\n data:\n variables:\n area: '{{ area_name(trigger.device_id) }}'\n - alias: Get daily weather forecast\n action: weather.get_forecasts\n data:\n type: daily\n target:\n entity_id: weather.combined\n response_variable: response\n - variables:\n forecast: \"{% set weather_condition = {\\n 'clear': ['en helder', 'zonnige'],\\n\\\n \\ 'clear-night': ['en helder'],\\n 'cloudy': ['en bewolkt', 'grijze'],\\n\\\n \\ 'exceptional': ['en extreem', 'extreme'],\\n 'fog': ['met mist', 'mistige'],\\n\\\n \\ 'hail': ['met hagel', 'hagelachtige'],\\n 'lightning': ['met onweer', 'onweerachtige'],\\n\\\n \\ 'lightning-rainy': ['met onweer en regen', 'onweer- en regenachtige'],\\n\\\n \\ 'partlycloudy': ['en gedeeltelijk bewolkt', 'gedeeltelijk bewolkte'],\\n\\\n \\ 'pouring': ['met stortregen', 'kletsnatte'],\\n 'rainy': ['met regen',\\\n \\ 'regenachtige'],\\n 'snowy': ['met sneeuw', 'besneewude'],\\n 'snowy-rainy':\\\n \\ ['met sneeuw en regen', 'sneeuw- met regenachtige'],\\n 'sunny': ['en zonnig'\\\n \\ 'zonnige'],\\n 'windy': ['met wind', 'winderige'],\\n 'windy-variant': ['met\\\n \\ wind en bewolking', 'winderige en bewolkte']\\n} %} {% set forecast = response['weather.combined'].forecast[0]\\\n \\ %}\\n{% set wind = [\\n dict(speed=12, name='matige wind'),\\n dict(speed=29,\\\n \\ name='vrij krachtige wind'),\\n dict(speed=29, name='krachtige wind'),\\n\\\n \\ dict(speed=49, name='harde wind'),\\n dict(speed=62, name='stormachtige\\\n \\ wind'),\\n dict(speed=75, name='storm'),\\n dict(speed=89, name='zware storm'),\\n\\\n \\ dict(speed=103, name='zeer zware storm'),\\n dict(speed=117, name='orkaan')\\n\\\n ] %}\\nDe huidige weersomstandigheden zijn {{ state_attr('weather.combined',\\\n \\ 'temperature') | round(0) }} graden {{ weather_condition[states('weather.combined')][0]\\\n \\ }}. Vandaag wordt het een {{ weather_condition[forecast.condition][1] }}\\\n \\ dag met een temperatuur tussen de {{ forecast.templow | round(0) }} en\\\n \\ {{ forecast.temperature | round(0) }} graden. {% if forecast.temperature\\\n \\ | round(0) != forecast.apparent_temperature | default(forecast.temperature)\\\n \\ | round(0) %}Het voelt als {{ forecast.apparent_temperature | round(0)\\\n \\ }} graden.{% endif %} {% if forecast.precipitation_probability > 10 %}Er\\\n \\ is {{ forecast.precipitation_probability | round(0) }}% kans op {{ forecast.precipitation\\\n \\ | round(0) }} mm regen, neem voor de zekerheid maar een paraplu mee naar\\\n \\ buiten.{% endif %} {% if forecast.wind_speed >= 12 %}Er is vandaag {{ wind\\\n \\ | selectattr('speed', '>=', forecast.wind_speed) | map(attribute='name')\\\n \\ | list | first }}.{% endif %} {% if forecast.wind_speed >= 62 %}Dus als\\\n \\ je niet weg hoeft, blijf maar beter binnen.{% elif forecast.wind_speed\\\n \\ >= 29 %}Dus zorg dat je {% if forecast.precipitation_probability > 10 %}paraplu\\\n \\ {% endif %}niet weg waait!{% endif %} {% if forecast.uv_index > 3 and forecast.condition\\\n \\ in ['clear', 'partlycloudy'] %}De zon schijnt lekker fel vandaag, zorg\\\n \\ dus dat je je goed insmeert als je naar buiten gaat.{% endif %}\\n\"\n forecast_today: '{{ response[''weather.combined''].forecast[0] }}'\n current_temp: '{{ state_attr(''weather.combined'', ''temperature'') ~ '' ยฐC''\n }}'\n current_state: '{{ state_translated(''weather.combined'') }}'\n - alias: Set response\n set_conversation_response: 'Goedemorgen. {{ forecast }}\n\n '\n mode: single", "config": [ { "name": "Weather combined", "room": null, "type": "weather", "id": { "entity_id": "weather.combined", "device_id": null } }, { "name": "Good morning routine script", "room": null, "type": "script", "id": { "entity_id": "script.good_morning_routine", "device_id": null } } ] }, { "id": "7f409c21-989e-425f-8a8e-1fc73d57b58d", "automation": "- id: 7f409c21-989e-425f-8a8e-1fc73d57b58d\n alias: Initiate call using Assist\n triggers:\n - alias: Trigger sentence to initiate call\n trigger: conversation\n command:\n - (Bel|Telefoneer) [naar|met] {to_call}\n - (Ik wil|Wij willen) [met|naar] {to_call} (bellen|praten|telefoneren|kletsen|babbelen)\n actions:\n - alias: Send search to OpenAI\n action: conversation.process\n data:\n agent_id: conversation.chatgpt_phone_book_helper\n text: '{{ trigger.slots.to_call }}'\n response_variable: response\n - alias: Set variables\n variables:\n supported_devices:\n 582822583c5a151feaca918b1c3e48ae: phone\n dea1020edbc703c3e64857daa55730a4: sattelite\n satellite: '{{ device_entities(trigger.device_id) | select(''match'', ''assist_satellite'')\n | first }}\n\n '\n phone_number: '{{ response.response.speech.plain.speech }}'\n known_number: '{{ phone_number != ''sip:+31000000000@192.168.2.100'' }}'\n - alias: Check if resonse comes from a supported device\n if: '{{ known_number and trigger.device_id in supported_devices }}'\n then:\n - alias: Call script\n action: script.turn_on\n target:\n entity_id: script.make_call_assist\n data:\n variables:\n to_call: '{{ phone_number }}'\n satellite: '{{ satellite }}'\n - alias: Set response\n set_conversation_response: \"{% if known_number and trigger.device_id in supported_devices\\\n \\ %}\\n {{ trigger.slots.to_call }} wordt gebeld {{ 'zodra je de telefoon oplegt'\\\n \\ if supported_devices[trigger.device_id] == 'phone' }}. Neem de hoorn op zodra\\\n \\ de telefoon rinkelt.\\n{% elif trigger.device_id not in supported_devices %}\\n\\\n \\ Vanaf dit apparaat kun je niet bellen, probeer het met een telefoon.\\n{%\\\n \\ else %}\\n Ik heb geen telefoonnummer voor {{ trigger.slots.to_call }}. Probeer\\\n \\ het nog eens met een andere naam.\\n{% endif %}\\n\"\n mode: single", "config": [ { "name": "Make call assist script", "room": null, "type": "script", "id": { "entity_id": "script.make_call_assist", "device_id": null } }, { "name": "Make call script", "room": null, "type": "script", "id": { "entity_id": "script.make_call", "device_id": null } } ] }, { "id": "9df1d5c9-373c-483a-98f4-bf376942dde0", "automation": "- id: 9df1d5c9-373c-483a-98f4-bf376942dde0\n alias: Voice - Next trash pickup\n triggers:\n - alias: Trigger sentence\n trigger: conversation\n command:\n - Welke [afval](container|bak) [moet er [{wanneer}] (buiten|aan [de] straat)]\n - Wanneer moet ([de] [afval](container|bak)|[het] afval) (buiten|aan [de] straat)\n actions:\n - alias: Set response\n set_conversation_response: '{{ state_attr(''sensor.first_trash'', ''pickup'')\n }} moet {{ state_attr(''sensor.first_trash'', ''friendly_name'') }} {{ [''buiten'',\n ''aan straat''] | random }}.\n\n '", "config": [ { "name": "First trash sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.first_trash", "device_id": null } } ] }, { "id": "'1737388853880'", "automation": "- id: '1737388853880'\n alias: Turn off Studio Code Server add-on\n triggers:\n - alias: Mobile app VSCode stop notification received\n trigger: event\n event_type: mobile_app_notification_action\n event_data:\n action: action_vscode_off\n actions:\n - alias: Stop VSCode Server add-on\n action: hassio.addon_stop\n data:\n addon: a0d7b954_vscode\n mode: single", "config": [] }, { "id": "d6878855-2179-46fa-a1f2-069c6311746f", "automation": "- id: d6878855-2179-46fa-a1f2-069c6311746f\n alias: Actions with wall buttons\n mode: parallel\n max_exceeded: silent\n triggers:\n - alias: Trigger on button press event entity\n trigger: state\n entity_id:\n - event.sonof_werkkamer_martijn_plafond\n - event.sonoff_slaapkamer_plafond\n - event.shelly1_werkkamer_marleen_shelly1_werkkamer_marleen\n - event.sonoff_badkamer_zolder\n - event.sonoff_badkamerspiegel_zolder\n - event.shelly1_eettafel_shelly1_eettafel\n - event.dimmer_woonkamer_plafond\n - event.dimmer_overloop\n - event.dimmer_keuken\n - event.dimmer_badkamer_badkamer\n - event.shelly_badkamerspiegel_shelly1_badkamerspiegel\n - event.sonoff_floris_sonoff_floris\n - event.shelly1_pepijn_shelly1_pepijn\n - event.dimmer_zolder_zolder\n - event.sonoff_wasmachinehoek_sonoff_wasmachinehoek\n - event.dimmer_hal_hal\n not_from: unavailable\n variables:\n event: '{{ trigger.to_state.attributes.event_type | default(''unknown'', true)\n }}'\n area: '{{ area_id(trigger.entity_id) }}'\n floor: '{{ floor_id(trigger.entity_id) }}'\n relay: \"{{ device_entities(device_id(trigger.entity_id))\\n | select('search',\\\n \\ '^switch.*_relay')\\n | map('states')\\n | join\\n | default('No\\\n \\ relay')\\n}}\\n\"\n dim_switch: \"{{\\n device_id(trigger.entity_id)\\n | device_entities\\n \\\n \\ | select('search', 'switch.*_dim_down')\\n | join\\n}}\\n\"\n dimmer: \"{{\\n device_entities(device_id(trigger.entity_id))\\n | select('search',\\\n \\ '^light.')\\n | list\\n | count > 0\\n}}\\n\"\n control_light: \"{{\\n dimmer or\\n device_entities(device_id(trigger.entity_id))\\n\\\n \\ | select('search', '^select.*_button_type')\\n | map('states')\\n \\\n \\ | join \\n | default('Detached', true) in ['Detached', 'Events Only']\\n\\\n }}\\n\"\n start_brightness: \"{{\\n device_entities(device_id(trigger.entity_id))\\n \\\n \\ | select('search', 'start_brightness')\\n | map('states')\\n | map('float',\\\n \\ 100)\\n | list\\n | default([100], true)\\n | average\\n}}\\n\"\n scope: \"{{ device_entities(device_id(trigger.entity_id))\\n | select('search',\\\n \\ '^select.*_long_press_scope')\\n | map('states')\\n | join\\n \\\n \\ | default('Area', true)\\n}}\\n\"\n toggle: \"{% set main = device_entities(device_id(trigger.entity_id))\\n |\\\n \\ select('search', '^select.*_connected_light_type')\\n | map('states')\\n\\\n \\ | join\\n | default('Main', true) == 'Main'\\n%} {{ 'main_light' if\\\n \\ main else 'support_light' }}\\n\"\n long_press_entities: \"{% if scope == 'Area' %}\\n {{\\n area_entities(area)\\n\\\n \\ | select('in', label_entities('off_long_press'))\\n | list\\n }}\\n\\\n {% elif scope == 'Floor' %}\\n {{\\n floor_entities(floor)\\n | select('in',\\\n \\ label_entities('off_long_press'))\\n | list\\n }}\\n{% elif scope ==\\\n \\ 'House' %}\\n {{ label_entities('off_long_press') }}\\n{% else %}\\n {{\\n\\\n \\ area_entities(area)\\n | select('in', label_entities(toggle))\\n \\\n \\ | list\\n }}\\n{% endif %}\\n\"\n toggle_lights: \"{{\\n long_press_entities\\n | select('in', area_entities(area))\\n\\\n \\ | select('in', label_entities(toggle))\\n | list\\n}}\\n\"\n actions:\n - alias: Click type?\n choose:\n - alias: Actions on single press event (toggle assigned lights)\n conditions:\n - alias: Short?\n condition: template\n value_template: '{{ event == ''single_press'' and control_light }}'\n sequence:\n - choose:\n - alias: Check if the button has a relay, if the relay is on and if any of\n the assigned lights is available\n conditions: \"{{\\n relay | has_value \\n and\\n (\\n is_state(relay,\\\n \\ 'off')\\n or toggle_lights | select('has_value') | list | count\\\n \\ == 0\\n )\\n}}\\n\"\n sequence:\n - alias: Toggle Relay\n action: switch.toggle\n target:\n entity_id: '{{ relay }}'\n - alias: Check if any of the assigned lights is on\n conditions: '{{ toggle_lights | select(''is_state'', ''on'') | list | count\n > 0 }}'\n sequence:\n - alias: Turn off lights\n action: light.turn_off\n target:\n entity_id: '{{ toggle_lights }}'\n default:\n - alias: Turn on lights\n repeat:\n for_each: '{{ toggle_lights }}'\n sequence:\n - alias: Set correct light settings for each light\n variables:\n data:\n brightness_pct: \"{{\\n start_brightness\\n if repeat.item | has_value\\\n \\ \\n and states[repeat.item].attributes.brightness is defined\\n\\\n \\ else 'na'\\n}}\\n\"\n kelvin: \"{% set kelvin_used = repeat.item | has_value \\n and\\\n \\ states[repeat.item].attributes.min_color_temp_kelvin is defined\\n\\\n %} {% if kelvin_used %}\\n {% set k_min = state_attr(repeat.item,\\\n \\ 'min_color_temp_kelvin') %}\\n {% set k_max = state_attr(repeat.item,\\\n \\ 'max_color_temp_kelvin') %}\\n {{ ((k_max - k_min) * start_brightness\\\n \\ / 100 + k_min) | round(0) }}\\n{% else %}\\n na\\n{% endif %}\\n\"\n - alias: Turn each of the assigned lights on with the correct settings\n action: light.turn_on\n target:\n entity_id: '{{ repeat.item }}'\n data: '{{ dict(data.items() | selectattr(''1'', ''is_number'')) }}'\n - alias: Set dim toggle to either dim down or up\n if: '{{ dim_switch | has_value }}'\n then:\n - alias: Set dim switch\n action: switch.turn_{{ 'on' if start_brightness >= 50 else 'off' }}\n target:\n entity_id: '{{ dim_switch }}'\n - conditions:\n - alias: Actions on double press event (100%)\n condition: template\n value_template: '{{ event == ''double_press'' and control_light }}'\n sequence:\n - alias: Turn each toggle light to 100% (if supported)\n repeat:\n for_each: '{{ toggle_lights }}'\n sequence:\n - alias: Set correct light settings for each light\n variables:\n data:\n brightness_pct: \"{{\\n 100\\n if repeat.item | has_value\\n and\\\n \\ states[repeat.item].attributes.brightness is defined\\n else 'na'\\n\\\n }}\\n\"\n kelvin: \"{{\\n state_attr(repeat.item, 'max_color_temp_kelvin')\\n\\\n \\ if repeat.item | has_value \\n and states[repeat.item].attributes.color_temp_kelvin\\\n \\ is defined\\n else 'na'\\n}}\\n\"\n - alias: Turn on light on 100%\n action: light.turn_on\n target:\n entity_id: '{{ repeat.item }}'\n data: '{{ dict(data.items() | selectattr(''1'', ''is_number'')) }}'\n - alias: Set dim toggle to either dim down\n if: '{{ dim_switch | has_value }}'\n then:\n - alias: Set dim switch\n action: switch.turn_on\n target:\n entity_id: '{{ dim_switch }}'\n - conditions:\n - alias: Actions for long press event (all lights off, or activate 'scene')\n condition: template\n value_template: '{{ event == ''long_press'' }}'\n sequence:\n - if: \"{{\\n scope != 'Custom'\\n and\\n long_press_entities\\n | select('has_value')\\n\\\n \\ | select('is_state', ['on', 'playing'])\\n | list\\n | count >\\\n \\ 0\\n}}\\n\"\n then:\n - alias: Turn off selected entities\n action: homeassistant.turn_off\n target:\n entity_id: '{{ long_press_entities | select(''has_value'') | list }}'\n else:\n - alias: Start script with actions for area\n action: script.turn_on\n target:\n entity_id: script.long_press_button_actions\n data:\n variables:\n area: '{{ area }}'\n floor: '{{ floor }}'\n scope: '{{ scope }}'\n toggle: '{{ toggle }}'\n long_press_entities: '{{ long_press_entities }}'\n - conditions:\n - alias: Actions for short-long press event (Dim lights if supported)\n condition: template\n value_template: '{{ event == ''single_long_press'' and control_light }}'\n sequence:\n - variables:\n dim_down: '{{ is_state(dim_switch, ''on'') }}'\n - if: '{{ dim_down }}'\n then:\n - alias: Press button to dim down\n action: button.press\n target:\n entity_id: \"{{\\n long_press_entities\\n | map('device_id')\\n | map('device_entities')\\n\\\n \\ | flatten\\n | select('search', '^button.*_dim_down')\\n |\\\n \\ list\\n}}\\n\"\n else:\n - alias: Press button to dim down\n action: button.press\n target:\n entity_id: \"{{\\n long_press_entities\\n | map('device_id')\\n | map('device_entities')\\n\\\n \\ | flatten\\n | select('search', '^button.*_dim_up')\\n | list\\n\\\n }}\\n\"\n - alias: Toggle dim switch\n action: switch.toggle\n target:\n entity_id: '{{ dim_switch }}'\n - conditions:\n - alias: Actions for button release event (Stop Dim)\n condition: template\n value_template: '{{ event == ''release'' and control_light }}'\n sequence:\n - alias: Stop dimming\n action: button.press\n target:\n entity_id: \"{{\\n long_press_entities\\n | map('device_id')\\n | map('device_entities')\\n\\\n \\ | flatten\\n | select('search', '^button.*_dim_stop')\\n | list\\n\\\n }}\\n\"", "config": [ { "name": "Eettafel Shelly button event", "room": "dining_room", "type": "event", "id": { "entity_id": "event.shelly1_eettafel_shelly1_eettafel", "device_id": null } }, { "name": "Holiday lights sonoff event", "room": null, "type": "event", "id": { "entity_id": "event.sonoff_wasmachinehoek_sonoff_wasmachinehoek", "device_id": null } }, { "name": "Hall dimmer event", "room": "hall", "type": "event", "id": { "entity_id": "event.dimmer_hal_hal", "device_id": null } }, { "name": "Sonoff workroom Martijn ceiling event", "room": "office", "type": "event", "id": { "entity_id": "event.sonof_werkkamer_martijn_plafond", "device_id": null } }, { "name": "Sonoff bedroom ceiling event", "room": "master_bedroom", "type": "event", "id": { "entity_id": "event.sonoff_slaapkamer_plafond", "device_id": null } }, { "name": "Shelly1 Marleen office event", "room": "marleen_office", "type": "event", "id": { "entity_id": "event.shelly1_werkkamer_marleen_shelly1_werkkamer_marleen", "device_id": null } }, { "name": "Sonoff bathroom attic event", "room": "bathroom_attic", "type": "event", "id": { "entity_id": "event.sonoff_badkamer_zolder", "device_id": null } }, { "name": "Sonoff bathroom mirror attic event", "room": "bathroom_attic", "type": "event", "id": { "entity_id": "event.sonoff_badkamerspiegel_zolder", "device_id": null } }, { "name": "Shelly1 dining table event", "room": "dining_room", "type": "event", "id": { "entity_id": "event.shelly1_eettafel_shelly1_eettafel", "device_id": null } }, { "name": "Living room ceiling dimmer event", "room": "living_room", "type": "event", "id": { "entity_id": "event.dimmer_woonkamer_plafond", "device_id": null } }, { "name": "Landing dimmer event", "room": "landing", "type": "event", "id": { "entity_id": "event.dimmer_overloop", "device_id": null } }, { "name": "Kitchen dimmer event", "room": "kitchen", "type": "event", "id": { "entity_id": "event.dimmer_keuken", "device_id": null } }, { "name": "Bathroom dimmer event", "room": "bathroom", "type": "event", "id": { "entity_id": "event.dimmer_badkamer_badkamer", "device_id": null } }, { "name": "Shelly bathroom mirror event", "room": "bathroom", "type": "event", "id": { "entity_id": "event.shelly_badkamerspiegel_shelly1_badkamerspiegel", "device_id": null } }, { "name": "Sonoff Floris event", "room": "floris_bedroom", "type": "event", "id": { "entity_id": "event.sonoff_floris_sonoff_floris", "device_id": null } }, { "name": "Shelly1 Pepijn event", "room": "pepijn_bedroom", "type": "event", "id": { "entity_id": "event.shelly1_pepijn_shelly1_pepijn", "device_id": null } }, { "name": "Attic dimmer event", "room": "attic", "type": "event", "id": { "entity_id": "event.dimmer_zolder_zolder", "device_id": null } }, { "name": "Sonoff washing machine corner event", "room": "laundry", "type": "event", "id": { "entity_id": "event.sonoff_wasmachinehoek_sonoff_wasmachinehoek", "device_id": null } }, { "name": "Long press button actions script", "room": null, "type": "script", "id": { "entity_id": "script.long_press_button_actions", "device_id": null } } ] }, { "id": "806efebe-1dd4-44c5-9087-c12b6a896bd0", "automation": "- id: 806efebe-1dd4-44c5-9087-c12b6a896bd0\n alias: Change start brightness for light buttons based on House Mode\n triggers:\n - trigger: state\n entity_id: sensor.house_mode\n to: null\n variables:\n house_mode: '{{ trigger.to_state.state }}'\n actions:\n - alias: Set settings for number entities\n variables:\n settings:\n - entity: number.sonof_werkkamer_martijn_plafond_start_brightness\n when: Tandenpoetsen\n percentage: 30\n - entity: number.sonoff_slaapkamer_plafond_start_brightness\n when: Tandenpoetsen\n percentage: 30\n - entity: number.sonoff_badkamer_zolder_start_brightness\n when: Tandenpoetsen\n percentage: 30\n - entity: number.dimmer_woonkamer_plafond_start_brightness\n when: Tandenpoetsen\n percentage: 30\n - entity: number.dimmer_overloop_start_brightness\n when: Tandenpoetsen\n percentage: 30\n - entity: number.dimmer_keuken_start_brightness\n when: Tandenpoetsen\n percentage: 30\n - entity: number.shelly1_eettafel_start_brightness\n when: Tandenpoetsen\n percentage: 40\n - entity: number.dimmer_zolder_start_brightness\n when: Tandenpoetsen\n percentage: 30\n - entity: number.sonoff_wasmachinehoek_start_brightness\n when: Tandenpoetsen\n percentage: 30\n - entity: number.dimmer_hal_start_brightness\n when: Tandenpoetsen\n percentage: 30\n - entity: number.dimmer_badkamer_start_brightness\n when: Slapen\n percentage: 30\n - entity: number.dimmer_badkamer_start_brightness\n when: Opstaan\n percentage: 100\n - alias: Determine which actions to take\n choose:\n - alias: Actions when house mode changes to Thuis (in the morning)\n conditions: '{{ house_mode == ''Thuis''}}'\n sequence:\n - alias: Set all number entities to 100\n action: number.set_value\n target:\n entity_id: '{{ settings | map(attribute=''entity'') | list }}'\n data:\n value: 100\n - alias: Actions when house mode changes to Tandenpoetsen\n conditions: '{{ house_mode == ''Tandenpoetsen''}}'\n sequence:\n - alias: Set the selected number entiteis to the provided percentage\n repeat:\n for_each: '{{ settings | selectattr(''when'', ''eq'', house_mode) | list\n }}'\n sequence:\n - action: number.set_value\n target:\n entity_id: '{{ repeat.item.entity }}'\n data:\n value: '{{ repeat.item.percentage }}'\n - alias: Actions when house mode changes to Slapen\n conditions: '{{ house_mode == ''Slapen''}}'\n sequence:\n - alias: Set the selected number entiteis to the provided percentage\n repeat:\n for_each: '{{ settings | selectattr(''when'', ''eq'', house_mode) | list\n }}'\n sequence:\n - action: number.set_value\n target:\n entity_id: '{{ repeat.item.entity }}'\n data:\n value: '{{ repeat.item.percentage }}'", "config": [ { "name": "House mode sensor", "room": null, "type": "sensor", "id": { "entity_id": "sensor.house_mode", "device_id": null } }, { "name": "Sonoff workroom Martijn ceiling start brightness", "room": "office", "type": "number", "id": { "entity_id": "number.sonof_werkkamer_martijn_plafond_start_brightness", "device_id": null } }, { "name": "Sonoff bedroom ceiling start brightness", "room": "master_bedroom", "type": "number", "id": { "entity_id": "number.sonoff_slaapkamer_plafond_start_brightness", "device_id": null } }, { "name": "Sonoff bathroom attic start brightness", "room": "bathroom_attic", "type": "number", "id": { "entity_id": "number.sonoff_badkamer_zolder_start_brightness", "device_id": null } }, { "name": "Dimmer living room ceiling start brightness", "room": "living_room", "type": "number", "id": { "entity_id": "number.dimmer_woonkamer_plafond_start_brightness", "device_id": null } }, { "name": "Dimmer landing start brightness", "room": "landing", "type": "number", "id": { "entity_id": "number.dimmer_overloop_start_brightness", "device_id": null } }, { "name": "Dimmer kitchen start brightness", "room": "kitchen", "type": "number", "id": { "entity_id": "number.dimmer_keuken_start_brightness", "device_id": null } }, { "name": "Shelly1 dining table start brightness", "room": "dining_room", "type": "number", "id": { "entity_id": "number.shelly1_eettafel_start_brightness", "device_id": null } }, { "name": "Dimmer attic start brightness", "room": "attic", "type": "number", "id": { "entity_id": "number.dimmer_zolder_start_brightness", "device_id": null } }, { "name": "Sonoff washing machine corner start brightness", "room": "laundry", "type": "number", "id": { "entity_id": "number.sonoff_wasmachinehoek_start_brightness", "device_id": null } }, { "name": "Dimmer hall start brightness", "room": "hall", "type": "number", "id": { "entity_id": "number.dimmer_hal_start_brightness", "device_id": null } }, { "name": "Dimmer bathroom start brightness", "room": "bathroom", "type": "number", "id": { "entity_id": "number.dimmer_badkamer_start_brightness", "device_id": null } } ] }, { "id": "4671f017-f0a9-41ad-ac00-360ed28398ae", "automation": "- id: 4671f017-f0a9-41ad-ac00-360ed28398ae\n alias: Change long press lights for kids to ensure night light is kept on\n triggers:\n - trigger: state\n entity_id:\n - input_boolean.nachtlampje_pepijn\n - binary_sensor.pepijn_sleeping\n - input_boolean.nachtlampje_floris\n - binary_sensor.floris_sleeping\n to: null\n actions:\n - alias: Assign variables to be used in action\n variables:\n area: '{{ area_id(trigger.entity_id) }}'\n boolean: \"{{\\n 'input_boolean.nachtlampje_floris'\\n if 'floris' in area\\n\\\n \\ else 'input_boolean.nachtlampje_pepijn'\\n}}\\n\"\n - alias: Add or remove off_long_press label to night light entity\n action: \"{{\\n 'homeassistant.remove_label_from_entity'\\n if\\n trigger.to_state.state\\\n \\ == 'on'\\n and is_state(boolean, 'on')\\n else 'homeassistant.add_label_to_entity'\\n\\\n }}\\n\"\n data:\n label_id:\n - off_long_press\n entity_id: \"{{\\n area_entities(area)\\n | select('in', label_entities('night_light'))\\n\\\n \\ | list\\n}}\\n\"", "config": [ { "name": "Pepijn sleeping binary sensor", "room": "pepijn_bedroom", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.pepijn_sleeping", "device_id": null } }, { "name": "Floris sleeping binary sensor", "room": "floris_bedroom", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.floris_sleeping", "device_id": null } }, { "name": "Pepijn nightlight input boolean", "room": "pepijn_bedroom", "type": "input_boolean", "id": { "entity_id": "input_boolean.nachtlampje_pepijn", "device_id": null } }, { "name": "Floris nightlight input boolean", "room": "floris_bedroom", "type": "input_boolean", "id": { "entity_id": "input_boolean.nachtlampje_floris", "device_id": null } }, { "name": "Nachtlampje", "room": null, "type": "input_boolean", "id": { "entity_id": "input_boolean.nachtlampje_", "device_id": null } } ] }, { "id": "991bfa0a-ba49-462b-b78a-2aed72317903", "automation": "- id: 991bfa0a-ba49-462b-b78a-2aed72317903\n alias: Notifications washing machine\n mode: single\n max_exceeded: silent\n triggers:\n - alias: Washing machine finished (timer reached 0)\n entity_id: sensor.wasmachine_remain_time\n trigger: state\n from: 0:01:00\n to: 0:00:00\n actions:\n - alias: Notification to phones\n action: notify.all_phones\n data:\n title: ๐Ÿ’ฆ Wasmachine is klaar\n message: Haal snel de was er uit voordat het allemaal kreukt.\n data:\n channel: Washing machine\n ttl: 0\n priority: high\n notification_icon: mdi:washing-machine", "config": [ { "name": "All phones notify", "room": null, "type": "notify", "id": { "entity_id": "notify.all_phones", "device_id": null } }, { "name": "Washing machine remaining time sensor", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.wasmachine_remain_time", "device_id": null } } ] }, { "id": "'1732562382351'", "automation": "- id: '1732562382351'\n alias: 'Restart Zigbee2MQTT '\n triggers:\n - alias: MQTT restart needed for 5 minutes\n trigger: state\n entity_id: binary_sensor.mqtt_restart_needed\n to: 'on'\n for:\n hours: 0\n minutes: 5\n seconds: 0\n actions:\n - alias: Restart Zigbee2MQTT addon\n action: hassio.addon_restart\n data:\n addon: 45df7312_zigbee2mqtt\n mode: single", "config": [ { "name": "MQTT restart needed binary sensor", "room": null, "type": "binary_sensor", "id": { "entity_id": "binary_sensor.mqtt_restart_needed", "device_id": null } }, { "name": "Hassio addon restart", "room": null, "type": "hassio", "id": { "entity_id": null, "device_id": "hassio.addon_restart" } } ] } ]