- id: network_refresh_zigbee_router_lqi_action_scheduled alias: 'Network: Refresh Zigbee router network link qualities on schedule' triggers: - trigger: time_pattern hours: 1 actions: - action: input_boolean.turn_on entity_id: input_boolean.network_refresh_zigbee_router_lqi - id: network_refresh_zigbee_router_lqi_action alias: 'Network: Refresh Zigbee router network link qualities' triggers: - trigger: state entity_id: input_boolean.network_refresh_zigbee_router_lqi from: 'off' to: 'on' actions: - action: mqtt.publish data: topic: zigbee/Driveway Repeater/1/set payload: '{"read":{"attributes":["dateCode","modelId"],"cluster":"genBasic","options":{}}}' - delay: 00:00:01 - action: mqtt.publish data: topic: zigbee/Landing Repeater/1/set payload: '{"read":{"attributes":["dateCode","modelId"],"cluster":"genBasic","options":{}}}' - delay: 00:00:01 - action: mqtt.publish data: topic: zigbee/Garden Repeater/1/set payload: '{"read":{"attributes":["dateCode","modelId"],"cluster":"genBasic","options":{}}}' - delay: 00:00:01 - action: mqtt.publish data: topic: zigbee/Kitchen Fan Outlet/11/set payload: '{"read":{"attributes":["dateCode","modelId"],"cluster":"genBasic","options":{}}}' - delay: 00:00:01 - action: mqtt.publish data: topic: zigbee/Deck Fans Outlet/11/set payload: '{"read":{"attributes":["dateCode","modelId"],"cluster":"genBasic","options":{}}}' - delay: 00:00:01 - action: mqtt.publish data: topic: zigbee/Edwin Wardrobe Outlet/11/set payload: '{"read":{"attributes":["dateCode","modelId"],"cluster":"genBasic","options":{}}}' - delay: 00:00:01 - delay: 00:00:01 - if: - condition: template value_template: "{{ ((states('sensor.driveway_repeater_last_seen') | lower)\ \ in ['unavailable', 'unknown', 'none', 'n/a']) or\n ((as_timestamp(now())\ \ - as_timestamp(states('sensor.driveway_repeater_last_seen'))) > 11) }}" then: - action: mqtt.publish data: topic: zigbee/Driveway Repeater payload: '{ "last_seen": null, "linkquality": 0, "state": null, "update": { "installed_version": null, "latest_version": null, "state": null }, "update_available": false }' - delay: 00:00:01 - if: - condition: template value_template: "{{ ((states('sensor.landing_repeater_last_seen') | lower) in\ \ ['unavailable', 'unknown', 'none', 'n/a']) or\n ((as_timestamp(now())\ \ - as_timestamp(states('sensor.landing_repeater_last_seen'))) > 11) }}" then: - action: mqtt.publish data: topic: zigbee/Landing Repeater payload: '{ "last_seen": null, "linkquality": 0, "state": null, "update": { "installed_version": null, "latest_version": null, "state": null }, "update_available": false }' - delay: 00:00:01 - if: - condition: template value_template: "{{ ((states('sensor.garden_repeater_last_seen') | lower) in\ \ ['unavailable', 'unknown', 'none', 'n/a']) or\n ((as_timestamp(now())\ \ - as_timestamp(states('sensor.garden_repeater_last_seen'))) > 11) }}" then: - action: mqtt.publish data: topic: zigbee/Garden Repeater payload: '{ "last_seen": null, "linkquality": 0, "state": null, "update": { "installed_version": null, "latest_version": null, "state": null }, "update_available": false }' - delay: 00:00:01 - if: - condition: template value_template: "{{ ((states('sensor.kitchen_fan_outlet_last_seen') | lower)\ \ in ['unavailable', 'unknown', 'none', 'n/a']) or\n ((as_timestamp(now())\ \ - as_timestamp(states('sensor.kitchen_fan_outlet_last_seen'))) > 11) }}" then: - action: mqtt.publish data: topic: zigbee/Kitchen Fan Outlet payload: '{ "last_seen": null, "linkquality": 0, "state": null, "update": { "installed_version": null, "latest_version": null, "state": null }, "update_available": false }' - delay: 00:00:01 - if: - condition: template value_template: "{{ ((states('sensor.deck_fans_outlet_last_seen') | lower) in\ \ ['unavailable', 'unknown', 'none', 'n/a']) or\n ((as_timestamp(now())\ \ - as_timestamp(states('sensor.deck_fans_outlet_last_seen'))) > 11) }}" then: - action: mqtt.publish data: topic: zigbee/Deck Fans Outlet payload: '{ "last_seen": null, "linkquality": 0, "state": null, "update": { "installed_version": null, "latest_version": null, "state": null }, "update_available": false }' - delay: 00:00:01 - if: - condition: template value_template: "{{ ((states('sensor.edwin_wardrobe_outlet_last_seen') | lower)\ \ in ['unavailable', 'unknown', 'none', 'n/a']) or\n ((as_timestamp(now())\ \ - as_timestamp(states('sensor.edwin_wardrobe_outlet_last_seen'))) > 11)\ \ }}" then: - action: mqtt.publish data: topic: zigbee/Edwin Wardrobe Outlet payload: '{ "last_seen": null, "linkquality": 0, "state": null, "update": { "installed_version": null, "latest_version": null, "state": null }, "update_available": false }' - action: input_boolean.turn_off entity_id: input_boolean.network_refresh_zigbee_router_lqi - id: lighting_reset_adaptive_lighting_announce alias: 'Lighting: Reset Adaptive Lighting on bulb announce' mode: single triggers: - trigger: mqtt topic: zigbee/bridge/event condition: - condition: template value_template: '{{ trigger.payload_json.data.friendly_name | regex_search(" Bulb 1$") }}' actions: - variables: light: '{{ "light." + (trigger.payload_json.data.friendly_name | regex_replace(" Bulb 1$") | replace(" ", "_") | lower) }}' light_reset: '{{ "input_boolean.lighting_reset_adaptive_lighting_" + (light | replace("light.", "")) }}' - if: - condition: template value_template: '{{ is_state(light_reset, "off") }}' then: - action: input_boolean.turn_on data_template: entity_id: '{{ light_reset }}' else: - action: light.turn_on data_template: color_temp: 366 brightness_pct: 100 entity_id: '{{ light }}' - id: lighting_reset_adaptive_lighting_for_all_lights alias: 'Lighting: Reset Adaptive Lighting for All Lights' mode: single triggers: - trigger: state entity_id: input_boolean.lighting_reset_adaptive_lighting_all from: 'off' to: 'on' actions: - action: switch.turn_off entity_id: switch.adaptive_lighting_task - delay: 00:00:01 - action: switch.turn_on entity_id: switch.adaptive_lighting_task - action: switch.turn_off entity_id: switch.adaptive_lighting_night - delay: 00:00:01 - action: switch.turn_on entity_id: switch.adaptive_lighting_night - action: switch.turn_off entity_id: switch.adaptive_lighting_ambient_narrowband_dimming - delay: 00:00:01 - action: switch.turn_on entity_id: switch.adaptive_lighting_ambient_narrowband_dimming - action: switch.turn_off entity_id: switch.adaptive_lighting_ambient - delay: 00:00:01 - action: switch.turn_on entity_id: switch.adaptive_lighting_ambient - action: switch.turn_off entity_id: switch.adaptive_lighting_ambient_dimming - delay: 00:00:01 - action: switch.turn_on entity_id: switch.adaptive_lighting_ambient_dimming - action: switch.turn_off entity_id: switch.adaptive_lighting_task_narrowband - delay: 00:00:01 - action: switch.turn_on entity_id: switch.adaptive_lighting_task_narrowband - action: input_boolean.turn_off entity_id: input_boolean.lighting_reset_adaptive_lighting_all - id: lighting_reset_adaptive_lighting_ada_lamp alias: 'Lighting: Reset Adaptive Lighting on request of Ada Lamp' triggers: - trigger: state entity_id: input_boolean.lighting_reset_adaptive_lighting_ada_lamp from: 'off' to: 'on' actions: - action: adaptive_lighting.set_manual_control data: entity_id: switch.adaptive_lighting_task lights: light.ada_lamp manual_control: false - delay: 00:00:10 - action: input_boolean.turn_off entity_id: input_boolean.lighting_reset_adaptive_lighting_ada_lamp - id: lighting_reset_adaptive_lighting_edwin_night_light alias: 'Lighting: Reset Adaptive Lighting on request of Edwin Night Light' triggers: - trigger: state entity_id: input_boolean.lighting_reset_adaptive_lighting_edwin_night_light from: 'off' to: 'on' actions: - action: adaptive_lighting.set_manual_control data: entity_id: switch.adaptive_lighting_night lights: light.edwin_night_light manual_control: false - delay: 00:00:10 - action: input_boolean.turn_off entity_id: input_boolean.lighting_reset_adaptive_lighting_edwin_night_light - id: lighting_reset_adaptive_lighting_hallway_main alias: 'Lighting: Reset Adaptive Lighting on request of Hallway Main' triggers: - trigger: state entity_id: input_boolean.lighting_reset_adaptive_lighting_hallway_main from: 'off' to: 'on' actions: - action: adaptive_lighting.set_manual_control data: entity_id: switch.adaptive_lighting_ambient_narrowband_dimming lights: light.hallway_main manual_control: false - delay: 00:00:10 - action: input_boolean.turn_off entity_id: input_boolean.lighting_reset_adaptive_lighting_hallway_main - id: lighting_reset_adaptive_lighting_hallway_sconces alias: 'Lighting: Reset Adaptive Lighting on request of Hallway Sconces' triggers: - trigger: state entity_id: input_boolean.lighting_reset_adaptive_lighting_hallway_sconces from: 'off' to: 'on' actions: - action: adaptive_lighting.set_manual_control data: entity_id: switch.adaptive_lighting_ambient_narrowband_dimming lights: light.hallway_sconces manual_control: false - delay: 00:00:10 - action: input_boolean.turn_off entity_id: input_boolean.lighting_reset_adaptive_lighting_hallway_sconces - id: lighting_reset_adaptive_lighting_dining_main alias: 'Lighting: Reset Adaptive Lighting on request of Dining Main' triggers: - trigger: state entity_id: input_boolean.lighting_reset_adaptive_lighting_dining_main from: 'off' to: 'on' actions: - action: adaptive_lighting.set_manual_control data: entity_id: switch.adaptive_lighting_ambient lights: light.dining_main manual_control: false - delay: 00:00:10 - action: input_boolean.turn_off entity_id: input_boolean.lighting_reset_adaptive_lighting_dining_main - id: lighting_reset_adaptive_lighting_lounge_main alias: 'Lighting: Reset Adaptive Lighting on request of Lounge Main' triggers: - trigger: state entity_id: input_boolean.lighting_reset_adaptive_lighting_lounge_main from: 'off' to: 'on' actions: - action: adaptive_lighting.set_manual_control data: entity_id: switch.adaptive_lighting_ambient lights: light.lounge_main manual_control: false - delay: 00:00:10 - action: input_boolean.turn_off entity_id: input_boolean.lighting_reset_adaptive_lighting_lounge_main - id: lighting_reset_adaptive_lighting_lounge_lamp alias: 'Lighting: Reset Adaptive Lighting on request of Lounge Lamp' triggers: - trigger: state entity_id: input_boolean.lighting_reset_adaptive_lighting_lounge_lamp from: 'off' to: 'on' actions: - action: adaptive_lighting.set_manual_control data: entity_id: switch.adaptive_lighting_task lights: light.lounge_lamp manual_control: false - delay: 00:00:10 - action: input_boolean.turn_off entity_id: input_boolean.lighting_reset_adaptive_lighting_lounge_lamp - id: lighting_reset_adaptive_lighting_parents_main alias: 'Lighting: Reset Adaptive Lighting on request of Parents Main' triggers: - trigger: state entity_id: input_boolean.lighting_reset_adaptive_lighting_parents_main from: 'off' to: 'on' actions: - action: adaptive_lighting.set_manual_control data: entity_id: switch.adaptive_lighting_ambient_dimming lights: light.parents_main manual_control: false - delay: 00:00:10 - action: input_boolean.turn_off entity_id: input_boolean.lighting_reset_adaptive_lighting_parents_main - id: lighting_reset_adaptive_lighting_parents_jane_bedside alias: 'Lighting: Reset Adaptive Lighting on request of Jane Bedside' triggers: - trigger: state entity_id: input_boolean.lighting_reset_adaptive_lighting_parents_jane_bedside from: 'off' to: 'on' actions: - action: adaptive_lighting.set_manual_control data: entity_id: switch.adaptive_lighting_task_narrowband lights: light.parents_jane_bedside manual_control: false - delay: 00:00:10 - action: input_boolean.turn_off entity_id: input_boolean.lighting_reset_adaptive_lighting_parents_jane_bedside - id: lighting_reset_adaptive_lighting_parents_graham_bedside alias: 'Lighting: Reset Adaptive Lighting on request of Graham Bedside' triggers: - trigger: state entity_id: input_boolean.lighting_reset_adaptive_lighting_parents_graham_bedside from: 'off' to: 'on' actions: - action: adaptive_lighting.set_manual_control data: entity_id: switch.adaptive_lighting_task_narrowband lights: light.parents_graham_bedside manual_control: false - delay: 00:00:10 - action: input_boolean.turn_off entity_id: input_boolean.lighting_reset_adaptive_lighting_parents_graham_bedside - id: lighting_reset_adaptive_lighting_study_lamp alias: 'Lighting: Reset Adaptive Lighting on request of Study Lamp' triggers: - trigger: state entity_id: input_boolean.lighting_reset_adaptive_lighting_study_lamp from: 'off' to: 'on' actions: - action: adaptive_lighting.set_manual_control data: entity_id: switch.adaptive_lighting_task lights: light.study_lamp manual_control: false - delay: 00:00:10 - action: input_boolean.turn_off entity_id: input_boolean.lighting_reset_adaptive_lighting_study_lamp - id: lighting_reset_adaptive_lighting_kitchen_main alias: 'Lighting: Reset Adaptive Lighting on request of Kitchen Main' triggers: - trigger: state entity_id: input_boolean.lighting_reset_adaptive_lighting_kitchen_main from: 'off' to: 'on' actions: - action: adaptive_lighting.set_manual_control data: entity_id: switch.adaptive_lighting_ambient lights: light.kitchen_main manual_control: false - delay: 00:00:10 - action: input_boolean.turn_off entity_id: input_boolean.lighting_reset_adaptive_lighting_kitchen_main - id: lighting_reset_adaptive_lighting_laundry_main alias: 'Lighting: Reset Adaptive Lighting on request of Laundry Main' triggers: - trigger: state entity_id: input_boolean.lighting_reset_adaptive_lighting_laundry_main from: 'off' to: 'on' actions: - action: adaptive_lighting.set_manual_control data: entity_id: switch.adaptive_lighting_ambient lights: light.laundry_main manual_control: false - delay: 00:00:10 - action: input_boolean.turn_off entity_id: input_boolean.lighting_reset_adaptive_lighting_laundry_main - id: lighting_reset_adaptive_lighting_pantry_main alias: 'Lighting: Reset Adaptive Lighting on request of Pantry Main' triggers: - trigger: state entity_id: input_boolean.lighting_reset_adaptive_lighting_pantry_main from: 'off' to: 'on' actions: - action: adaptive_lighting.set_manual_control data: entity_id: switch.adaptive_lighting_ambient lights: light.pantry_main manual_control: false - delay: 00:00:10 - action: input_boolean.turn_off entity_id: input_boolean.lighting_reset_adaptive_lighting_pantry_main - id: lighting_reset_adaptive_lighting_office_main alias: 'Lighting: Reset Adaptive Lighting on request of Office Main' triggers: - trigger: state entity_id: input_boolean.lighting_reset_adaptive_lighting_office_main from: 'off' to: 'on' actions: - action: light.turn_on data_template: color_temp: 250 brightness_pct: 100 entity_id: light.office_main - delay: 00:00:10 - action: input_boolean.turn_off entity_id: input_boolean.lighting_reset_adaptive_lighting_office_main - id: lighting_reset_adaptive_lighting_bathroom_main alias: 'Lighting: Reset Adaptive Lighting on request of Bathroom Main' triggers: - trigger: state entity_id: input_boolean.lighting_reset_adaptive_lighting_bathroom_main from: 'off' to: 'on' actions: - action: adaptive_lighting.set_manual_control data: entity_id: switch.adaptive_lighting_ambient_dimming lights: light.bathroom_main manual_control: false - delay: 00:00:10 - action: input_boolean.turn_off entity_id: input_boolean.lighting_reset_adaptive_lighting_bathroom_main - id: lighting_reset_adaptive_lighting_bathroom_sconces alias: 'Lighting: Reset Adaptive Lighting on request of Bathroom Sconces' triggers: - trigger: state entity_id: input_boolean.lighting_reset_adaptive_lighting_bathroom_sconces from: 'off' to: 'on' actions: - action: adaptive_lighting.set_manual_control data: entity_id: switch.adaptive_lighting_task_narrowband lights: light.bathroom_sconces manual_control: false - delay: 00:00:10 - action: input_boolean.turn_off entity_id: input_boolean.lighting_reset_adaptive_lighting_bathroom_sconces - id: lighting_reset_adaptive_lighting_ensuite_main alias: 'Lighting: Reset Adaptive Lighting on request of Ensuite Main' triggers: - trigger: state entity_id: input_boolean.lighting_reset_adaptive_lighting_ensuite_main from: 'off' to: 'on' actions: - action: adaptive_lighting.set_manual_control data: entity_id: switch.adaptive_lighting_ambient_dimming lights: light.ensuite_main manual_control: false - delay: 00:00:10 - action: input_boolean.turn_off entity_id: input_boolean.lighting_reset_adaptive_lighting_ensuite_main - id: lighting_reset_adaptive_lighting_ensuite_sconces alias: 'Lighting: Reset Adaptive Lighting on request of Ensuite Sconces' triggers: - trigger: state entity_id: input_boolean.lighting_reset_adaptive_lighting_ensuite_sconces from: 'off' to: 'on' actions: - action: adaptive_lighting.set_manual_control data: entity_id: switch.adaptive_lighting_task_narrowband lights: light.ensuite_sconces manual_control: false - delay: 00:00:10 - action: input_boolean.turn_off entity_id: input_boolean.lighting_reset_adaptive_lighting_ensuite_sconces - id: lighting_reset_adaptive_lighting_wardrobe_main alias: 'Lighting: Reset Adaptive Lighting on request of Wardrobe Main' triggers: - trigger: state entity_id: input_boolean.lighting_reset_adaptive_lighting_wardrobe_main from: 'off' to: 'on' actions: - action: adaptive_lighting.set_manual_control data: entity_id: switch.adaptive_lighting_ambient lights: light.wardrobe_main manual_control: false - delay: 00:00:10 - action: input_boolean.turn_off entity_id: input_boolean.lighting_reset_adaptive_lighting_wardrobe_main - id: lighting_reset_adaptive_lighting_tree_spotlights alias: 'Lighting: Reset Adaptive Lighting on request of Tree Spotlights' triggers: - trigger: state entity_id: input_boolean.lighting_reset_adaptive_lighting_tree_spotlights from: 'off' to: 'on' actions: - action: light.turn_on data_template: color_temp: 366 brightness_pct: 100 entity_id: light.tree_spotlights - delay: 00:00:10 - action: input_boolean.turn_off entity_id: input_boolean.lighting_reset_adaptive_lighting_tree_spotlights - sonos: media_player: hosts: - 10.0.3.40 - 10.0.3.41 - 10.0.3.42 - 10.0.3.43 - id: routine_water_booster_on alias: 'Water Heating: Turn on water heater booster' mode: single triggers: - trigger: time at: 04:30:00 - trigger: time at: 05:30:00 - trigger: time at: '15:30:00' condition: or: - condition: template value_template: '{{ now().month == 5 }}' - condition: template value_template: '{{ now().month == 6 }}' - condition: template value_template: '{{ now().month == 7 }}' - condition: template value_template: '{{ now().month == 8 }}' actions: - action: switch.turn_on entity_id: switch.ceiling_water_booster_plug - id: routine_water_booster_off mode: single alias: 'Water Heating: Turn off water heater booster' triggers: - trigger: state entity_id: switch.ceiling_water_booster_plug from: 'off' to: 'on' actions: - delay: 00:45:00 - action: switch.turn_off target: entity_id: switch.ceiling_water_booster_plug - id: routine_water_booster_off_failsafe alias: 'Water Heating: Turn off water heater booster fail-safe' mode: single triggers: - trigger: time_pattern minutes: 15 condition: and: - condition: time after: '22:00:00' before: 04:00:00 - condition: state entity_id: switch.ceiling_water_booster_plug state: 'on' actions: - action: switch.turn_off entity_id: switch.ceiling_water_booster_plug - id: routine_coffee_machine_off alias: 'Coffee Machine: Turn off coffee machine' mode: single triggers: - trigger: state entity_id: switch.kitchen_coffee_machine_plug from: 'off' to: 'on' actions: - delay: 00:15:00 - action: switch.turn_off target: entity_id: switch.kitchen_coffee_machine_plug - id: routine_coffee_machine_off_failsafe alias: 'Coffee Machine: Turn off coffee machine fail-safe' mode: single triggers: - trigger: time_pattern minutes: 15 condition: and: - condition: time after: '13:00:00' before: 06:00:00 - condition: state entity_id: switch.kitchen_coffee_machine_plug state: 'on' actions: - action: switch.turn_off entity_id: switch.kitchen_coffee_machine_plug - id: routine_home_sleep_cube alias: 'Routine: Put home to sleep via cube' mode: restart triggers: - trigger: state entity_id: sensor.home_cube_remote_action to: flip90 actions: - action: input_boolean.turn_off entity_id: input_boolean.home_sleep - action: input_boolean.turn_on entity_id: input_boolean.home_sleep - id: routine_home_wakeup_cube alias: 'Routine: Wake home up via cube' mode: restart triggers: - trigger: state entity_id: sensor.home_cube_remote_action to: shake actions: - action: input_boolean.turn_off entity_id: input_boolean.home_sleep - id: routine_home_fans_off alias: 'Routine: Turn fans off' mode: single triggers: - trigger: time at: 03:00:00 action: - service: fan.turn_off target: entity_id: - fan.ada_fan - fan.edwin_fan - fan.parents_fan - fan.lounge_fan - fan.deck_fan - id: routine_init alias: 'Routine: Run init code after startup' mode: single triggers: - trigger: homeassistant event: start actions: - action: input_boolean.turn_on target: entity_id: input_boolean.home_started - action: system_log.write data_template: level: info message: Home Assistant has started! - action: switch.turn_on target: entity_id: - switch.adaptive_lighting_sleep_mode_night - id: routine_home_sleep alias: 'Routine: Put home to sleep' mode: single triggers: - trigger: state entity_id: input_boolean.home_sleep from: 'off' to: 'on' actions: - action: light.turn_off target: entity_id: - light.parents_main - action: media_player.unjoin target: entity_id: media_player.parents_move - action: media_player.volume_mute data: entity_id: media_player.parents_move is_volume_muted: false - action: media_player.volume_set data: entity_id: media_player.parents_move volume_level: '0.3' - action: media_player.turn_off target: entity_id: - media_player.ada_home - media_player.edwin_home - action: media_player.play_media data: media_content_type: music media_content_id: https://nginx.janeandgraham.com/relaxation-sounds/ocean.mp3 target: entity_id: media_player.parents_move - action: media_player.repeat_set data: repeat: all entity_id: media_player.parents_move - id: routine_home_wakeup alias: 'Routine: Wake home up' mode: single triggers: - trigger: state entity_id: input_boolean.home_sleep from: 'on' to: 'off' actions: - action: media_player.media_stop target: entity_id: - media_player.parents_move - action: media_player.volume_set data: entity_id: media_player.parents_move volume_level: '0.2' - action: automation.trigger data: entity_id: automation.lighting_reset_adaptive_lighting_for_all_lights - id: routine_home_reset alias: 'Routine: Reset home to defaults' mode: single triggers: - trigger: state entity_id: input_boolean.home_reset from: 'off' to: 'on' actions: - action: automation.trigger data: entity_id: automation.lighting_reset_adaptive_lighting_for_all_lights - delay: 00:00:01 - action: input_boolean.turn_off entity_id: input_boolean.home_reset - id: routine_home_lights_off alias: 'Routine: Turn night lights off' mode: single triggers: - trigger: time at: 09:00:00 actions: - action: switch.turn_off target: entity_id: - switch.adaptive_lighting_sleep_mode_night - delay: 00:00:05 - action: light.turn_off target: entity_id: - light.ada_lamp - light.edwin_lamp - light.edwin_night_light - light.hallway_sconces - action: number.set_value target: entity_id: - number.ada_fan_light_motion_sense_timeout - number.edwin_fan_light_motion_sense_timeout data: value: 3600 - action: switch.turn_on target: entity_id: - switch.ada_fan_light_return_to_auto - switch.edwin_fan_light_return_to_auto - action: light.turn_on target: entity_id: - light.ada_fan - light.edwin_fan - action: fan.turn_off target: entity_id: - fan.ada_fan - fan.edwin_fan - fan.parents_fan - fan.lounge_fan - fan.deck_fan - id: routine_home_lights_off_weekday alias: 'Routine: Turn night lights off on week days' mode: single triggers: - trigger: time at: 09:00:00 condition: condition: state entity_id: binary_sensor.workday_sensor state: 'on' actions: - action: media_player.turn_off target: entity_id: - media_player.ada_home - media_player.edwin_home - media_player.lounge_home - id: routine_home_lights_off_early alias: 'Routine: Turn early night lights off' mode: single triggers: - trigger: time at: '19:30:00' actions: - action: light.turn_off target: entity_id: - light.hallway_sconces - id: routine_home_lights_on alias: 'Routine: Turn night lights on' mode: single triggers: - trigger: time at: '17:45:00' actions: - action: switch.turn_on target: entity_id: - switch.adaptive_lighting_sleep_mode_night - delay: 00:00:05 - action: light.turn_on target: entity_id: - light.edwin_night_light - light.hallway_sconces - action: number.set_value target: entity_id: - number.ada_fan_light_motion_sense_timeout - number.edwin_fan_light_motion_sense_timeout data: value: 10800 - action: switch.turn_off target: entity_id: - switch.ada_fan_light_return_to_auto - switch.edwin_fan_light_return_to_auto - action: light.turn_off target: entity_id: - light.ada_fan - light.ada_lamp - light.edwin_fan - light.edwin_lamp - action: media_player.volume_set data: entity_id: - media_player.ada_home - media_player.edwin_home volume_level: '0.2' - id: routine_home_movie_on alias: 'Routine: Put home into Movie mode' mode: single triggers: - trigger: state entity_id: input_boolean.home_movie from: 'off' to: 'on' actions: null - id: routine_home_movie_off alias: 'Routine: Take home out of Movie mode' mode: single triggers: - trigger: state entity_id: input_boolean.home_movie from: 'on' to: 'off' actions: null - id: routine_bathroom_rails_on alias: 'Water Heating: Turn on towel rails' mode: single triggers: - trigger: time at: 03:00:00 condition: or: - condition: template value_template: '{{ now().month == 5 }}' - condition: template value_template: '{{ now().month == 6 }}' - condition: template value_template: '{{ now().month == 7 }}' - condition: template value_template: '{{ now().month == 8 }}' actions: - action: switch.turn_on entity_id: switch.bathroom_rails_plug - id: routine_bathroom_rails_off alias: 'Water Heating: Turn off towel rails' mode: single triggers: - trigger: state entity_id: switch.bathroom_rails_plug from: 'off' to: 'on' actions: - delay: 04:00:00 - action: switch.turn_off target: entity_id: switch.bathroom_rails_plug - id: routine_bathroom_rails_off_failsafe alias: 'Water Heating: Turn off towel rails fail-safe' mode: single triggers: - trigger: time_pattern minutes: 15 condition: and: - condition: time after: '22:00:00' before: 02:00:00 - condition: state entity_id: switch.bathroom_rails_plug state: 'on' actions: - action: switch.turn_off entity_id: switch.bathroom_rails_plug - id: routine_home_security_check_on alias: 'Routine: Attempt to put Home into Secure mode at regular intervals' mode: queued triggers: - trigger: time_pattern minutes: 15 actions: - if: - condition: template value_template: '{{ states(''input_boolean.home_security'') == ''off'' }}' then: - action: input_boolean.turn_on entity_id: input_boolean.home_security - id: routine_home_security_on alias: 'Routine: Put Home into Secure mode' mode: queued triggers: - trigger: state entity_id: input_boolean.home_security to: 'on' actions: - if: - condition: template value_template: '{{ states(''lock.back_door_lock'') == ''unlocked'' or states(''lock.front_door_lock'') == ''unlocked'' }}' then: - action: input_boolean.turn_on entity_id: input_boolean.home_security_triggered - delay: 00:00:01 - action: input_boolean.turn_off entity_id: input_boolean.home_security else: - action: input_boolean.turn_off entity_id: input_boolean.home_security_triggered - action: input_boolean.turn_on entity_id: - input_boolean.back_door_lock_security - input_boolean.front_door_lock_security - id: routine_home_security_off alias: 'Routine: Take Home out of Secure mode' mode: queued triggers: - trigger: state entity_id: input_boolean.home_security to: 'off' actions: - if: - condition: template value_template: '{{ states(''input_boolean.home_security_triggered'') == ''on'' }}' then: - action: input_boolean.turn_off entity_id: input_boolean.home_security_triggered else: - action: input_boolean.turn_off entity_id: - input_boolean.back_door_lock_security - input_boolean.front_door_lock_security - id: routine_back_door_state_all_on alias: 'Routine: Back Door State all on' mode: queued triggers: - trigger: state entity_id: binary_sensor.template_back_door_state to: 'on' actions: - if: - condition: template value_template: '{{ states(''binary_sensor.template_back_door_state'') == ''on'' and states(''binary_sensor.template_front_door_state'') == ''on'' }}' then: - action: input_boolean.turn_on entity_id: input_boolean.home_security - id: routine_back_door_state_all_off alias: 'Routine: Back Door State all off' mode: queued triggers: - trigger: state entity_id: binary_sensor.template_back_door_state to: 'off' actions: - action: input_boolean.turn_on entity_id: input_boolean.home_security_triggered - action: input_boolean.turn_off entity_id: input_boolean.home_security - id: routine_front_door_state_all_on alias: 'Routine: Front Door State all on' mode: queued triggers: - trigger: state entity_id: binary_sensor.template_front_door_state to: 'on' actions: - if: - condition: template value_template: '{{ states(''binary_sensor.template_back_door_state'') == ''on'' and states(''binary_sensor.template_front_door_state'') == ''on'' }}' then: - action: input_boolean.turn_on entity_id: input_boolean.home_security - id: routine_front_door_state_all_off alias: 'Routine: Front Door State all off' mode: queued triggers: - trigger: state entity_id: binary_sensor.template_front_door_state to: 'off' actions: - action: input_boolean.turn_on entity_id: input_boolean.home_security_triggered - action: input_boolean.turn_off entity_id: input_boolean.home_security - id: routine_back_door_lock_security_on alias: 'Routine: Put Back Door Lock into Secure mode' mode: queued triggers: - trigger: state entity_id: input_boolean.back_door_lock_security to: 'on' actions: - if: - condition: template value_template: '{{ states(''lock.back_door_lock'') == ''unlocked'' }}' then: - delay: 00:00:01 - action: input_boolean.turn_off entity_id: input_boolean.back_door_lock_security - if: - condition: template value_template: '{{ states(''binary_sensor.template_back_door_sensor_contact_last'') == ''off'' and states(''lock.back_door_lock'') == ''unlocked'' }}' then: - action: lock.lock entity_id: lock.back_door_lock - id: routine_front_door_lock_security_on alias: 'Routine: Put Front Door Lock into Secure mode' mode: queued triggers: - trigger: state entity_id: input_boolean.front_door_lock_security to: 'on' actions: - if: - condition: template value_template: '{{ states(''lock.front_door_lock'') == ''unlocked'' }}' then: - delay: 00:00:01 - action: input_boolean.turn_off entity_id: input_boolean.front_door_lock_security - if: - condition: template value_template: '{{ states(''binary_sensor.template_front_door_sensor_contact_last'') == ''off'' and states(''lock.front_door_lock'') == ''unlocked'' }}' then: - action: lock.lock entity_id: lock.front_door_lock - id: routine_back_door_lock_security_off alias: 'Routine: Take Back Door Lock out of Secure mode' mode: queued triggers: - trigger: state entity_id: input_boolean.back_door_lock_security to: 'off' actions: - if: - condition: template value_template: '{{ states(''lock.back_door_lock'') == ''locked'' }}' then: - action: lock.unlock entity_id: lock.back_door_lock - id: routine_front_door_lock_security_off alias: 'Routine: Take Front Door Lock out of Secure mode' mode: queued triggers: - trigger: state entity_id: input_boolean.front_door_lock_security to: 'off' actions: - if: - condition: template value_template: '{{ states(''lock.front_door_lock'') == ''locked'' }}' then: - action: lock.unlock entity_id: lock.front_door_lock - id: routine_template_back_door_sensor_contact_last_on alias: 'Routine: Template Back Door Sensor Contact Last on' mode: queued triggers: - trigger: state entity_id: binary_sensor.template_back_door_sensor_contact_last to: 'off' actions: - delay: 00:00:01 - if: - condition: template value_template: '{{ states(''binary_sensor.template_back_door_sensor_contact_last'') == ''off'' and states(''lock.back_door_lock'') == ''unlocked'' }}' then: - action: lock.lock entity_id: lock.back_door_lock - delay: 00:00:01 - if: - condition: template value_template: '{{ states(''binary_sensor.template_back_door_sensor_contact_last'') == ''off'' and states(''lock.back_door_lock'') == ''unlocked'' }}' then: - action: lock.lock entity_id: lock.back_door_lock - delay: 00:00:01 - if: - condition: template value_template: '{{ states(''binary_sensor.template_back_door_sensor_contact_last'') == ''off'' and states(''lock.back_door_lock'') == ''unlocked'' }}' then: - action: lock.lock entity_id: lock.back_door_lock - id: routine_template_front_door_sensor_contact_last_on alias: 'Routine: Template Front Door Sensor Contact Last on' mode: queued triggers: - trigger: state entity_id: binary_sensor.template_front_door_sensor_contact_last to: 'off' actions: - delay: 00:00:01 - if: - condition: template value_template: '{{ states(''binary_sensor.template_front_door_sensor_contact_last'') == ''off'' and states(''lock.front_door_lock'') == ''unlocked'' }}' then: - action: lock.lock entity_id: lock.front_door_lock - delay: 00:00:01 - if: - condition: template value_template: '{{ states(''binary_sensor.template_front_door_sensor_contact_last'') == ''off'' and states(''lock.front_door_lock'') == ''unlocked'' }}' then: - action: lock.lock entity_id: lock.front_door_lock - delay: 00:00:01 - if: - condition: template value_template: '{{ states(''binary_sensor.template_front_door_sensor_contact_last'') == ''off'' and states(''lock.front_door_lock'') == ''unlocked'' }}' then: - action: lock.lock entity_id: lock.front_door_lock - id: routine_back_door_state_on alias: 'Routine: Back Door State on' mode: queued triggers: - trigger: state entity_id: binary_sensor.template_back_door_state to: 'on' actions: - action: input_boolean.turn_on entity_id: input_boolean.back_door_lock_security - id: routine_back_door_state_off alias: 'Routine: Back Door State off' mode: queued triggers: - trigger: state entity_id: binary_sensor.template_back_door_state to: 'off' actions: - action: input_boolean.turn_off entity_id: input_boolean.back_door_lock_security - id: routine_front_door_state_on alias: 'Routine: Front Door State on' mode: queued triggers: - trigger: state entity_id: binary_sensor.template_front_door_state to: 'on' actions: - action: input_boolean.turn_on entity_id: input_boolean.front_door_lock_security - id: routine_front_door_state_off alias: 'Routine: Front Door State off' mode: queued triggers: - trigger: state entity_id: binary_sensor.template_front_door_state to: 'off' actions: - action: input_boolean.turn_off entity_id: input_boolean.front_door_lock_security - alias: Update BOM Icons trigger: - event: start platform: homeassistant - entity_id: sun.sun platform: state to: above_horizon - entity_id: sun.sun platform: state to: below_horizon action: - service: homeassistant.update_entity entity_id: sensor.bom_forecast_0, sensor.bom_forecast_1, sensor.bom_forecast_2, sensor.bom_forecast_3, sensor.bom_forecast_4, sensor.bom_forecast_5, sensor.bom_forecast_6 - id: weather_ipdate_bom_icons alias: 'Weather: Update BOM Icons' triggers: - trigger: state entity_id: sun.sun to: above_horizon - trigger: state entity_id: sun.sun to: below_horizon actions: - action: homeassistant.update_entity entity_id: - sensor.bom_forecast_0 - sensor.bom_forecast_1 - sensor.bom_forecast_2 - sensor.bom_forecast_3 - sensor.bom_forecast_4 - sensor.bom_forecast_5 - sensor.bom_forecast_6