[ { "id": "appliance_cycle_complete_consolidated", "automation": "- id: appliance_cycle_complete_consolidated\n alias: Appliance - Unified Cycle Complete\n description: Consolidated automation for all appliance completion notifications\n mode: queued\n max: 3\n trigger:\n - platform: state\n entity_id: sensor.washing_machine_status\n to: complete\n from: running\n id: washing_machine\n - platform: state\n entity_id: sensor.dryer_status_2\n to: Complete\n from: Running\n id: dryer\n - platform: state\n entity_id: sensor.dishwasher_power_state\n to: idle\n from: running\n id: dishwasher\n condition:\n - condition: template\n value_template: \"{% set appliance = trigger.id %} {% if appliance == \\\"washing_machine\\\"\\\n \\ %}\\n {{ is_state('sensor.washing_machine_status', 'complete') }}\\n{% elif\\\n \\ appliance == \\\"dryer\\\" %}\\n {{ is_state('sensor.dryer_status_2', 'Complete')\\\n \\ }}\\n{% elif appliance == \\\"dishwasher\\\" %}\\n {{ is_state('sensor.dishwasher_power_state',\\\n \\ 'idle') }}\\n{% else %}\\n false\\n{% endif %}\\n\"\n action:\n - choose:\n - conditions:\n - condition: template\n value_template: '{{ trigger.id == ''washing_machine'' }}'\n sequence:\n - service: script.turn_on\n target:\n entity_id: script.send_appliance_notification\n data:\n variables:\n appliance_name: Washing Machine\n completion_message: Cycle finished - time to unload the washing machine!\n icon: mdi:washing-machine\n notification_type: complete\n - service: notify.alexa_media_everywhere\n continue_on_error: true\n data:\n title: Washing Machine Complete\n message: The washing machine cycle is complete and ready to unload.\n data:\n type: tts\n - conditions:\n - condition: template\n value_template: '{{ trigger.id == ''dryer'' }}'\n sequence:\n - service: script.turn_on\n target:\n entity_id: script.send_appliance_notification\n data:\n variables:\n appliance_name: Dryer\n completion_message: Cycle finished - remove clothes to prevent wrinkles!\n icon: mdi:tumble-dryer\n notification_type: complete\n - service: notify.alexa_media_everywhere\n continue_on_error: true\n data:\n title: Dryer Complete\n message: The dryer cycle is complete. Please remove your clothes to prevent\n wrinkles.\n data:\n type: tts\n - conditions:\n - condition: template\n value_template: '{{ trigger.id == ''dishwasher'' }}'\n sequence:\n - service: script.turn_on\n target:\n entity_id: script.send_appliance_notification\n data:\n variables:\n appliance_name: Dishwasher\n completion_message: Cycle finished - dishes are clean!\n icon: mdi:dishwasher\n notification_type: complete", "config": [ { "name": "washing machine status", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.washing_machine_status", "device_id": null } }, { "name": "dryer status 2", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.dryer_status_2", "device_id": null } }, { "name": "dishwasher power state", "room": "kitchen", "type": "sensor", "id": { "entity_id": "sensor.dishwasher_power_state", "device_id": null } }, { "name": "send appliance notification script", "room": "utility", "type": "script", "id": { "entity_id": "script.send_appliance_notification", "device_id": null } }, { "name": "dryer status sensor", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.dryer_status", "device_id": null } }, { "name": "Turn On Script", "room": null, "type": "script", "id": { "entity_id": "script.turn_on", "device_id": null } } ] }, { "id": "stop_appliance_reminders_handler_consolidated", "automation": "- id: stop_appliance_reminders_handler_consolidated\n alias: Appliance - Unified Reminder Stop Handler\n description: Consolidated handler for all appliance reminder stop buttons\n mode: queued\n max: 3\n trigger:\n - platform: event\n event_type: call_service\n event_data:\n domain: input_button\n service: press\n service_data:\n entity_id: input_button.stop_dishwasher_reminders\n id: dishwasher\n - platform: event\n event_type: call_service\n event_data:\n domain: input_button\n service: press\n service_data:\n entity_id: input_button.stop_washing_machine_reminders\n id: washing_machine\n - platform: event\n event_type: call_service\n event_data:\n domain: input_button\n service: press\n service_data:\n entity_id: input_button.stop_dryer_reminders\n id: dryer\n action:\n - choose:\n - conditions:\n - condition: template\n value_template: '{{ trigger.id == ''dishwasher'' }}'\n sequence:\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n message: clear_notification\n data:\n tag: dishwasher_complete\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.dishwasher_reminders_stopped\n continue_on_error: true\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: ๐Ÿฝ๏ธ Dishwasher Reminders Stopped\n message: Dishwasher cycle reminders have been disabled.\n data:\n tag: dishwasher_reminders_stopped\n channel: Appliances\n timeout: 10\n - service: notify.alexa_media_everywhere\n continue_on_error: true\n data:\n title: Dishwasher Reminders\n message: Dishwasher reminders have been stopped.\n data:\n type: tts\n - conditions:\n - condition: template\n value_template: '{{ trigger.id == ''washing_machine'' }}'\n sequence:\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n message: clear_notification\n data:\n tag: washing_machine_complete\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.washing_machine_reminders_stopped\n continue_on_error: true\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: ๐Ÿงบ Washing Machine Reminders Stopped\n message: Washing machine cycle reminders have been disabled.\n data:\n tag: washing_machine_reminders_stopped\n channel: Appliances\n timeout: 10\n - service: notify.alexa_media_everywhere\n continue_on_error: true\n data:\n title: Washing Machine Reminders\n message: Washing machine reminders have been stopped.\n data:\n type: tts\n - conditions:\n - condition: template\n value_template: '{{ trigger.id == ''dryer'' }}'\n sequence:\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n message: clear_notification\n data:\n tag: dryer_complete\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.dryer_reminders_stopped\n continue_on_error: true\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: ๐Ÿ‘• Dryer Reminders Stopped\n message: Dryer cycle reminders have been disabled.\n data:\n tag: dryer_reminders_stopped\n channel: Appliances\n timeout: 10\n - service: notify.alexa_media_everywhere\n continue_on_error: true\n data:\n title: Dryer Reminders\n message: Dryer reminders have been stopped.\n data:\n type: tts", "config": [ { "name": "stop dishwasher reminders button", "room": "kitchen", "type": "input_button", "id": { "entity_id": "input_button.stop_dishwasher_reminders", "device_id": null } }, { "name": "stop washing machine reminders button", "room": "laundry", "type": "input_button", "id": { "entity_id": "input_button.stop_washing_machine_reminders", "device_id": null } }, { "name": "stop dryer reminders button", "room": "laundry", "type": "input_button", "id": { "entity_id": "input_button.stop_dryer_reminders", "device_id": null } }, { "name": "dishwasher reminders stopped boolean", "room": "kitchen", "type": "input_boolean", "id": { "entity_id": "input_boolean.dishwasher_reminders_stopped", "device_id": null } }, { "name": "washing machine reminders stopped boolean", "room": "laundry", "type": "input_boolean", "id": { "entity_id": "input_boolean.washing_machine_reminders_stopped", "device_id": null } }, { "name": "dryer reminders stopped boolean", "room": "laundry", "type": "input_boolean", "id": { "entity_id": "input_boolean.dryer_reminders_stopped", "device_id": null } } ] }, { "id": "'1742241925341'", "automation": "- id: '1742241925341'\n alias: Tell Kristy the dryer is done\n description: Notify when dryer cycle completes\n triggers:\n - trigger: state\n entity_id:\n - sensor.dryer_machine_state\n from: run\n to: stop\n conditions: []\n actions:\n - action: notify.mobile_app_pixel_9_pro_xl\n data:\n message: Dryer is finished\n title: Dryer\n mode: single", "config": [ { "name": "dryer machine state", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.dryer_machine_state", "device_id": null } } ] }, { "id": "'1737217638878'", "automation": "- id: '1737217638878'\n alias: pantry_light_motion\n description: Motion-activated pantry light\n trigger:\n - platform: state\n entity_id: binary_sensor.eye_of_sauron_motion_detection\n to: 'on'\n action:\n - service: light.turn_on\n target:\n entity_id: light.pantry_light\n mode: restart", "config": [ { "name": "eye of sauron motion detection", "room": "pantry", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.eye_of_sauron_motion_detection", "device_id": null } }, { "name": "pantry light", "room": "pantry", "type": "light", "id": { "entity_id": "light.pantry_light", "device_id": null } } ] }, { "id": "'1736972664016'", "automation": "- id: '1736972664016'\n alias: garage_door_always_on\n description: Keep garage door opener always powered on\n triggers:\n - entity_id:\n - switch.tp_link_power_strip_8bba_garage_door_opener_always_on\n to: 'off'\n trigger: state\n actions:\n - action: switch.turn_on\n data: {}\n target:\n entity_id: switch.tp_link_power_strip_8bba_garage_door_opener_always_on\n mode: single", "config": [ { "name": "garage door opener always on switch", "room": "garage", "type": "switch", "id": { "entity_id": "switch.tp_link_power_strip_8bba_garage_door_opener_always_on", "device_id": null } } ] }, { "id": "'1742733210353'", "automation": "- id: '1742733210353'\n alias: Morning lights\n description: Turn on hall light at 7 AM\n triggers:\n - trigger: time\n at: 07:00:00\n conditions: []\n actions:\n - service: light.turn_on\n target:\n entity_id: light.hall_light\n mode: single", "config": [ { "name": "hall light", "room": "hall", "type": "light", "id": { "entity_id": "light.hall_light", "device_id": null } } ] }, { "id": "ble_scan_trigger", "automation": "- id: ble_scan_trigger\n alias: BLE Device Discovery - Scan Trigger\n description: Triggers BLE device scan notification when scan button is pressed\n trigger:\n - platform: state\n entity_id: input_button.bluetooth_scan\n action:\n - service: persistent_notification.create\n data:\n message: BLE device scan initiated. Custom Python scripts will handle the scanning\n process.\n title: BLE Scan Started\n notification_id: ble_scan_started", "config": [ { "name": "bluetooth scan button", "room": "utility", "type": "input_button", "id": { "entity_id": "input_button.bluetooth_scan", "device_id": null } } ] }, { "id": "ble_device_selection_helper", "automation": "- id: ble_device_selection_helper\n alias: BLE Device Discovery - Device Selection Helper\n description: Helper automation to notify when a device is selected\n trigger:\n - platform: state\n entity_id: input_text.selected_ble_device\n condition:\n - condition: template\n value_template: '{{ trigger.to_state and trigger.to_state.state != '''' and trigger.to_state.state\n != ''unknown'' }}'\n action:\n - service: persistent_notification.create\n data:\n message: Device {{ trigger.to_state.state if trigger.to_state else 'unknown'\n }} selected. Configure and add it using the dashboard.\n title: BLE Device Selected\n notification_id: ble_device_selected", "config": [ { "name": "selected ble device text", "room": "utility", "type": "input_text", "id": { "entity_id": "input_text.selected_ble_device", "device_id": null } } ] }, { "id": "ble_discovery_startup", "automation": "- id: ble_discovery_startup\n alias: BLE Device Discovery - Startup Initialization\n description: Initialize BLE discovery system on Home Assistant startup\n trigger:\n - platform: homeassistant\n event: start\n action:\n - delay: 00:00:30\n - service: input_text.set_value\n target:\n entity_id: input_text.discovered_ble_devices\n data:\n value: '{}'\n - service: persistent_notification.create\n data:\n message: Enhanced BLE Device Discovery system initialized. Access the utility\n dashboard at /lovelace/ble-utility\n title: BLE Discovery Ready\n notification_id: ble_discovery_ready", "config": [ { "name": "discovered ble devices text", "room": "utility", "type": "input_text", "id": { "entity_id": "input_text.discovered_ble_devices", "device_id": null } } ] }, { "id": "ble_car_detection_processor", "automation": "- alias: BLE Car Detection Processor\n id: ble_car_detection_processor\n description: Process BLE gateway data and trigger device events\n trigger:\n platform: mqtt\n topic: xbg\n condition:\n - condition: template\n value_template: '{{ trigger.payload_json is defined }}'\n action:\n - choose:\n - conditions:\n - condition: template\n value_template: '{% set devices = trigger.payload_json.devices if trigger.payload_json.devices\n is defined else [] %} {% set car1_mac_raw = states(''input_text.ble_driveway_car_1_mac'')\n %} {% set car1_mac = car1_mac_raw.replace('':'', '''') if car1_mac_raw not\n in [''unknown'', ''unavailable'', ''''] else '''' %} {% set target_device\n = devices | selectattr(''1'', ''eq'', car1_mac) | list %} {% set rssi_threshold\n = states(''input_number.ble_car1_rssi_threshold'') | int(-100) %} {{ car1_mac\n != '''' and target_device | count > 0 and target_device[0][2] > rssi_threshold\n }}\n\n '\n sequence:\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.ble_car1_present\n - service: input_number.set_value\n target:\n entity_id: input_number.ble_car1_rssi\n data:\n value: '{% set devices = trigger.payload_json.devices if trigger.payload_json.devices\n is defined else [] %} {% set car1_mac_raw = states(''input_text.ble_driveway_car_1_mac'')\n %} {% set car1_mac = car1_mac_raw.replace('':'', '''') if car1_mac_raw\n not in [''unknown'', ''unavailable'', ''''] else '''' %} {% set target_device\n = devices | selectattr(''1'', ''eq'', car1_mac) | list %} {{ target_device[0][2]\n if target_device | count > 0 else -100 }}\n\n '\n - conditions:\n - condition: template\n value_template: '{% set devices = trigger.payload_json.devices if trigger.payload_json.devices\n is defined else [] %} {% set car2_mac_raw = states(''input_text.ble_driveway_car_2_mac'')\n %} {% set car2_mac = car2_mac_raw.replace('':'', '''') if car2_mac_raw not\n in [''unknown'', ''unavailable'', ''''] else '''' %} {% set target_device\n = devices | selectattr(''1'', ''eq'', car2_mac) | list %} {% set rssi_threshold\n = states(''input_number.ble_car2_rssi_threshold'') | int(-100) %} {{ car2_mac\n != '''' and target_device | count > 0 and target_device[0][2] > rssi_threshold\n }}\n\n '\n sequence:\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.ble_car2_present\n - service: input_number.set_value\n target:\n entity_id: input_number.ble_car2_rssi\n data:\n value: '{% set devices = trigger.payload_json.devices if trigger.payload_json.devices\n is defined else [] %} {% set car2_mac_raw = states(''input_text.ble_driveway_car_2_mac'')\n %} {% set car2_mac = car2_mac_raw.replace('':'', '''') if car2_mac_raw\n not in [''unknown'', ''unavailable'', ''''] else '''' %} {% set target_device\n = devices | selectattr(''1'', ''eq'', car2_mac) | list %} {{ target_device[0][2]\n if target_device | count > 0 else -100 }}\n\n '\n - conditions:\n - condition: template\n value_template: '{% set devices = trigger.payload_json.devices if trigger.payload_json.devices\n is defined else [] %} {% set car3_mac_raw = states(''input_text.ble_driveway_car_3_mac'')\n %} {% set car3_mac = car3_mac_raw.replace('':'', '''') if car3_mac_raw not\n in [''unknown'', ''unavailable'', ''''] else '''' %} {% set target_device\n = devices | selectattr(''1'', ''eq'', car3_mac) | list %} {% set rssi_threshold\n = states(''input_number.ble_car3_rssi_threshold'') | int(-100) %} {{ car3_mac\n != '''' and target_device | count > 0 and target_device[0][2] > rssi_threshold\n }}\n\n '\n sequence:\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.ble_car3_present\n - service: input_number.set_value\n target:\n entity_id: input_number.ble_car3_rssi\n data:\n value: '{% set devices = trigger.payload_json.devices if trigger.payload_json.devices\n is defined else [] %} {% set car3_mac_raw = states(''input_text.ble_driveway_car_3_mac'')\n %} {% set car3_mac = car3_mac_raw.replace('':'', '''') if car3_mac_raw\n not in [''unknown'', ''unavailable'', ''''] else '''' %} {% set target_device\n = devices | selectattr(''1'', ''eq'', car3_mac) | list %} {{ target_device[0][2]\n if target_device | count > 0 else -100 }}\n\n '\n - conditions:\n - condition: template\n value_template: '{% set devices = trigger.payload_json.devices if trigger.payload_json.devices\n is defined else [] %} {% set street_mac_raw = states(''input_text.ble_street_car_mac'')\n %} {% set street_mac = street_mac_raw.replace('':'', '''') if street_mac_raw\n not in [''unknown'', ''unavailable'', ''''] else '''' %} {% set target_device\n = devices | selectattr(''1'', ''eq'', street_mac) | list %} {% set rssi_threshold\n = states(''input_number.ble_street_car_rssi_threshold'') | int(-100) %}\n {{ street_mac != '''' and target_device | count > 0 and target_device[0][2]\n > rssi_threshold }}\n\n '\n sequence:\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.ble_street_car_present\n - service: input_number.set_value\n target:\n entity_id: input_number.ble_street_car_rssi\n data:\n value: '{% set devices = trigger.payload_json.devices if trigger.payload_json.devices\n is defined else [] %} {% set street_mac_raw = states(''input_text.ble_street_car_mac'')\n %} {% set street_mac = street_mac_raw.replace('':'', '''') if street_mac_raw\n not in [''unknown'', ''unavailable'', ''''] else '''' %} {% set target_device\n = devices | selectattr(''1'', ''eq'', street_mac) | list %} {{ target_device[0][2]\n if target_device | count > 0 else -100 }}\n\n '\n default:\n - service: input_boolean.turn_off\n target:\n entity_id:\n - input_boolean.ble_car1_present\n - input_boolean.ble_car2_present\n - input_boolean.ble_car3_present\n - input_boolean.ble_street_car_present\n - service: input_number.set_value\n target:\n entity_id:\n - input_number.ble_car1_rssi\n - input_number.ble_car2_rssi\n - input_number.ble_car3_rssi\n - input_number.ble_street_car_rssi\n data:\n value: -100", "config": [ { "name": "ble driveway car 1 mac text", "room": "driveway", "type": "input_text", "id": { "entity_id": "input_text.ble_driveway_car_1_mac", "device_id": null } }, { "name": "ble car1 rssi threshold number", "room": "driveway", "type": "input_number", "id": { "entity_id": "input_number.ble_car1_rssi_threshold", "device_id": null } }, { "name": "ble car1 present boolean", "room": "driveway", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_car1_present", "device_id": null } }, { "name": "ble car1 rssi number", "room": "driveway", "type": "input_number", "id": { "entity_id": "input_number.ble_car1_rssi", "device_id": null } }, { "name": "ble driveway car 2 mac text", "room": "driveway", "type": "input_text", "id": { "entity_id": "input_text.ble_driveway_car_2_mac", "device_id": null } }, { "name": "ble car2 rssi threshold number", "room": "driveway", "type": "input_number", "id": { "entity_id": "input_number.ble_car2_rssi_threshold", "device_id": null } }, { "name": "ble car2 present boolean", "room": "driveway", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_car2_present", "device_id": null } }, { "name": "ble car2 rssi number", "room": "driveway", "type": "input_number", "id": { "entity_id": "input_number.ble_car2_rssi", "device_id": null } }, { "name": "ble driveway car 3 mac text", "room": "driveway", "type": "input_text", "id": { "entity_id": "input_text.ble_driveway_car_3_mac", "device_id": null } }, { "name": "ble car3 rssi threshold number", "room": "driveway", "type": "input_number", "id": { "entity_id": "input_number.ble_car3_rssi_threshold", "device_id": null } }, { "name": "ble car3 present boolean", "room": "driveway", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_car3_present", "device_id": null } }, { "name": "ble car3 rssi number", "room": "driveway", "type": "input_number", "id": { "entity_id": "input_number.ble_car3_rssi", "device_id": null } }, { "name": "ble street car mac text", "room": "street", "type": "input_text", "id": { "entity_id": "input_text.ble_street_car_mac", "device_id": null } }, { "name": "ble street car rssi threshold number", "room": "street", "type": "input_number", "id": { "entity_id": "input_number.ble_street_car_rssi_threshold", "device_id": null } }, { "name": "ble street car present boolean", "room": "street", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_street_car_present", "device_id": null } }, { "name": "ble street car rssi number", "room": "street", "type": "input_number", "id": { "entity_id": "input_number.ble_street_car_rssi", "device_id": null } } ] }, { "id": "ble_system_health_monitor", "automation": "- alias: BLE System Health Monitor\n id: ble_system_health_monitor\n description: Monitor BLE system health and provide fallback functionality\n trigger:\n - platform: time_pattern\n minutes: /10\n condition:\n - condition: state\n entity_id: input_boolean.ble_garage_door_automation\n state: 'on'\n action:\n - choose:\n - conditions:\n - condition: template\n value_template: \"{{ has_value('sensor.ble_gateway_raw_data') and\\n (now()\\\n \\ - states.sensor.ble_gateway_raw_data.last_changed).total_seconds() > 600\\\n \\ }}\\n\"\n sequence:\n - service: system_log.write\n data:\n level: warning\n message: โš ๏ธ BLE Gateway offline - Safe mode active\n - service: input_boolean.turn_off\n target:\n entity_id:\n - input_boolean.ble_car1_present\n - input_boolean.ble_car2_present\n - input_boolean.ble_car3_present\n - input_boolean.ble_street_car_present\n continue_on_error: true\n default:\n - service: system_log.write\n data:\n level: info\n message: โœ… BLE System operational", "config": [ { "name": "ble car1 present boolean", "room": "driveway", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_car1_present", "device_id": null } }, { "name": "ble car2 present boolean", "room": "driveway", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_car2_present", "device_id": null } }, { "name": "ble car3 present boolean", "room": "driveway", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_car3_present", "device_id": null } }, { "name": "ble street car present boolean", "room": "street", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_street_car_present", "device_id": null } }, { "name": "ble gateway raw data sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.ble_gateway_raw_data", "device_id": null } }, { "name": "ble garage door automation boolean", "room": "garage", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_garage_door_automation", "device_id": null } } ] }, { "id": "ble_system_startup", "automation": "- alias: BLE System Startup\n id: ble_system_startup\n description: Initialize BLE system on Home Assistant startup\n trigger:\n - platform: homeassistant\n event: start\n action:\n - delay: 00:01:00\n - service: homeassistant.turn_on\n target:\n entity_id: input_boolean.ble_garage_door_automation\n - service: homeassistant.turn_on\n target:\n entity_id: input_boolean.driveway_car_1_beacon_enabled\n - service: homeassistant.turn_on\n target:\n entity_id: input_boolean.driveway_car_2_beacon_enabled\n - service: homeassistant.turn_on\n target:\n entity_id: input_boolean.driveway_car_3_beacon_enabled\n - service: system_log.write\n data:\n level: info\n message: ๐Ÿš€ BLE system initialized at {{ now().strftime('%H:%M:%S') }}\n - service: system_log.write\n data:\n level: info\n message: '{{ now().strftime(''%H:%M:%S'') }} - BLE System started'", "config": [ { "name": "ble garage door automation boolean", "room": "garage", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_garage_door_automation", "device_id": null } }, { "name": "driveway car 1 beacon enabled boolean", "room": "driveway", "type": "input_boolean", "id": { "entity_id": "input_boolean.driveway_car_1_beacon_enabled", "device_id": null } }, { "name": "driveway car 2 beacon enabled boolean", "room": "driveway", "type": "input_boolean", "id": { "entity_id": "input_boolean.driveway_car_2_beacon_enabled", "device_id": null } }, { "name": "driveway car 3 beacon enabled boolean", "room": "driveway", "type": "input_boolean", "id": { "entity_id": "input_boolean.driveway_car_3_beacon_enabled", "device_id": null } } ] }, { "id": "ble_garage_door_driveway_car_1_arrival", "automation": "- id: ble_garage_door_driveway_car_1_arrival\n alias: BLE Garage Door - Driveway Car 1 Arrival\n description: Open garage door when Driveway Car 1 beacon is detected\n trigger:\n - platform: state\n entity_id: input_boolean.ble_car1_present\n to: 'on'\n condition:\n - condition: state\n entity_id: input_boolean.ble_garage_door_automation\n state: 'on'\n - condition: state\n entity_id: input_boolean.driveway_car_1_beacon_enabled\n state: 'on'\n - condition: state\n entity_id: input_boolean.garage_door_manual_override\n state: 'off'\n - condition: template\n value_template: \"{% if states('input_boolean.ble_garage_door_night_disable') ==\\\n \\ 'on' %}\\n {% set current_hour = now().hour %}\\n {% set night_start = states('input_number.ble_garage_door_night_start_hour')\\\n \\ | int %}\\n {% set night_end = states('input_number.ble_garage_door_night_end_hour')\\\n \\ | int %}\\n {{ not (current_hour >= night_start or current_hour < night_end)\\\n \\ }}\\n{% else %}\\n {{ true }}\\n{% endif %}\"\n - condition: template\n value_template: \"{% set last_activation = states('input_text.ble_garage_door_last_activation')\\\n \\ %} {% if last_activation == 'Never' %}\\n {{ true }}\\n{% else %}\\n {% set\\\n \\ cooldown_minutes = states('input_number.ble_garage_door_cooldown_minutes')\\\n \\ | int %}\\n {% set last_time = strptime(last_activation, '%Y-%m-%d %H:%M:%S')\\\n \\ %}\\n {% set time_diff = (now() - last_time).total_seconds() / 60 %}\\n {{\\\n \\ time_diff > cooldown_minutes }}\\n{% endif %}\"\n - condition: numeric_state\n entity_id: input_number.ble_car1_rssi\n above: -100\n below: 0\n action:\n - delay: '{{ states(''input_number.ble_garage_door_arrival_delay'') | int }}'\n - service: cover.open_cover\n entity_id: cover.garage_door\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_garage_door_last_activation\n data:\n value: '{{ now().strftime(''%Y-%m-%d %H:%M:%S'') }}'\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_driveway_car_1_last_seen\n data:\n value: '{{ now().strftime(''%Y-%m-%d %H:%M:%S'') }}'\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_garage_door_recent_events\n data:\n value: '{{ now().strftime(''%H:%M:%S'') }} - Garage opened for Driveway Car\n 1'\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_garage_door_system_status\n data:\n value: Garage door opened for Driveway Car 1 at {{ now().strftime('%H:%M:%S')\n }}", "config": [ { "name": "ble car1 present boolean", "room": "driveway", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_car1_present", "device_id": null } }, { "name": "ble car1 rssi number", "room": "driveway", "type": "input_number", "id": { "entity_id": "input_number.ble_car1_rssi", "device_id": null } }, { "name": "ble garage door automation boolean", "room": "garage", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_garage_door_automation", "device_id": null } }, { "name": "driveway car 1 beacon enabled boolean", "room": "driveway", "type": "input_boolean", "id": { "entity_id": "input_boolean.driveway_car_1_beacon_enabled", "device_id": null } }, { "name": "garage door manual override boolean", "room": "garage", "type": "input_boolean", "id": { "entity_id": "input_boolean.garage_door_manual_override", "device_id": null } }, { "name": "ble garage door night disable boolean", "room": "garage", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_garage_door_night_disable", "device_id": null } }, { "name": "ble garage door night start hour number", "room": "garage", "type": "input_number", "id": { "entity_id": "input_number.ble_garage_door_night_start_hour", "device_id": null } }, { "name": "ble garage door night end hour number", "room": "garage", "type": "input_number", "id": { "entity_id": "input_number.ble_garage_door_night_end_hour", "device_id": null } }, { "name": "ble garage door last activation text", "room": "garage", "type": "input_text", "id": { "entity_id": "input_text.ble_garage_door_last_activation", "device_id": null } }, { "name": "ble garage door cooldown minutes number", "room": "garage", "type": "input_number", "id": { "entity_id": "input_number.ble_garage_door_cooldown_minutes", "device_id": null } }, { "name": "ble garage door arrival delay number", "room": "garage", "type": "input_number", "id": { "entity_id": "input_number.ble_garage_door_arrival_delay", "device_id": null } }, { "name": "garage door cover", "room": "garage", "type": "cover", "id": { "entity_id": "cover.garage_door", "device_id": null } }, { "name": "ble driveway car 1 last seen text", "room": "driveway", "type": "input_text", "id": { "entity_id": "input_text.ble_driveway_car_1_last_seen", "device_id": null } }, { "name": "ble garage door recent events text", "room": "garage", "type": "input_text", "id": { "entity_id": "input_text.ble_garage_door_recent_events", "device_id": null } }, { "name": "ble garage door system status text", "room": "garage", "type": "input_text", "id": { "entity_id": "input_text.ble_garage_door_system_status", "device_id": null } } ] }, { "id": "ble_garage_door_driveway_car_2_arrival", "automation": "- id: ble_garage_door_driveway_car_2_arrival\n alias: BLE Garage Door - Driveway Car 2 Arrival\n description: Open garage door when Driveway Car 2 beacon is detected\n trigger:\n - platform: state\n entity_id: input_boolean.ble_car2_present\n to: 'on'\n condition:\n - condition: state\n entity_id: input_boolean.ble_garage_door_automation\n state: 'on'\n - condition: state\n entity_id: input_boolean.driveway_car_2_beacon_enabled\n state: 'on'\n - condition: state\n entity_id: input_boolean.garage_door_manual_override\n state: 'off'\n - condition: template\n value_template: \"{% if states('input_boolean.ble_garage_door_night_disable') ==\\\n \\ 'on' %}\\n {% set current_hour = now().hour %}\\n {% set night_start = states('input_number.ble_garage_door_night_start_hour')\\\n \\ | int %}\\n {% set night_end = states('input_number.ble_garage_door_night_end_hour')\\\n \\ | int %}\\n {{ not (current_hour >= night_start or current_hour < night_end)\\\n \\ }}\\n{% else %}\\n {{ true }}\\n{% endif %}\"\n - condition: template\n value_template: \"{% set last_activation = states('input_text.ble_garage_door_last_activation')\\\n \\ %} {% if last_activation == 'Never' %}\\n {{ true }}\\n{% else %}\\n {% set\\\n \\ cooldown_minutes = states('input_number.ble_garage_door_cooldown_minutes')\\\n \\ | int %}\\n {% set last_time = strptime(last_activation, '%Y-%m-%d %H:%M:%S')\\\n \\ %}\\n {% set time_diff = (now() - last_time).total_seconds() / 60 %}\\n {{\\\n \\ time_diff > cooldown_minutes }}\\n{% endif %}\"\n - condition: numeric_state\n entity_id: input_number.ble_car2_rssi\n above: -100\n below: 0\n action:\n - delay: '{{ states(''input_number.ble_garage_door_arrival_delay'') | int }}'\n - service: cover.open_cover\n entity_id: cover.garage_door\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_garage_door_last_activation\n data:\n value: '{{ now().strftime(''%Y-%m-%d %H:%M:%S'') }}'\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_driveway_car_2_last_seen\n data:\n value: '{{ now().strftime(''%Y-%m-%d %H:%M:%S'') }}'\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_garage_door_recent_events\n data:\n value: '{{ now().strftime(''%H:%M:%S'') }} - Garage opened for Driveway Car\n 2'\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_garage_door_system_status\n data:\n value: Garage door opened for Driveway Car 2 at {{ now().strftime('%H:%M:%S')\n }}", "config": [ { "name": "ble car2 present boolean", "room": "driveway", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_car2_present", "device_id": null } }, { "name": "ble car2 rssi number", "room": "driveway", "type": "input_number", "id": { "entity_id": "input_number.ble_car2_rssi", "device_id": null } }, { "name": "ble garage door automation boolean", "room": "garage", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_garage_door_automation", "device_id": null } }, { "name": "driveway car 2 beacon enabled boolean", "room": "driveway", "type": "input_boolean", "id": { "entity_id": "input_boolean.driveway_car_2_beacon_enabled", "device_id": null } }, { "name": "garage door manual override boolean", "room": "garage", "type": "input_boolean", "id": { "entity_id": "input_boolean.garage_door_manual_override", "device_id": null } }, { "name": "ble garage door night disable boolean", "room": "garage", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_garage_door_night_disable", "device_id": null } }, { "name": "ble garage door night start hour number", "room": "garage", "type": "input_number", "id": { "entity_id": "input_number.ble_garage_door_night_start_hour", "device_id": null } }, { "name": "ble garage door night end hour number", "room": "garage", "type": "input_number", "id": { "entity_id": "input_number.ble_garage_door_night_end_hour", "device_id": null } }, { "name": "ble garage door last activation text", "room": "garage", "type": "input_text", "id": { "entity_id": "input_text.ble_garage_door_last_activation", "device_id": null } }, { "name": "ble garage door cooldown minutes number", "room": "garage", "type": "input_number", "id": { "entity_id": "input_number.ble_garage_door_cooldown_minutes", "device_id": null } }, { "name": "ble garage door arrival delay number", "room": "garage", "type": "input_number", "id": { "entity_id": "input_number.ble_garage_door_arrival_delay", "device_id": null } }, { "name": "garage door cover", "room": "garage", "type": "cover", "id": { "entity_id": "cover.garage_door", "device_id": null } }, { "name": "ble garage door recent events text", "room": "garage", "type": "input_text", "id": { "entity_id": "input_text.ble_garage_door_recent_events", "device_id": null } }, { "name": "ble garage door system status text", "room": "garage", "type": "input_text", "id": { "entity_id": "input_text.ble_garage_door_system_status", "device_id": null } }, { "name": "ble driveway car 2 last seen text", "room": "driveway", "type": "input_text", "id": { "entity_id": "input_text.ble_driveway_car_2_last_seen", "device_id": null } } ] }, { "id": "ble_garage_door_driveway_car_3_arrival", "automation": "- id: ble_garage_door_driveway_car_3_arrival\n alias: BLE Garage Door - Driveway Car 3 Arrival\n description: Open garage door when Driveway Car 3 beacon is detected\n trigger:\n - platform: state\n entity_id: input_boolean.ble_car3_present\n to: 'on'\n condition:\n - condition: state\n entity_id: input_boolean.ble_garage_door_automation\n state: 'on'\n - condition: state\n entity_id: input_boolean.driveway_car_3_beacon_enabled\n state: 'on'\n - condition: state\n entity_id: input_boolean.garage_door_manual_override\n state: 'off'\n - condition: template\n value_template: \"{% if states('input_boolean.ble_garage_door_night_disable') ==\\\n \\ 'on' %}\\n {% set current_hour = now().hour %}\\n {% set night_start = states('input_number.ble_garage_door_night_start_hour')\\\n \\ | int %}\\n {% set night_end = states('input_number.ble_garage_door_night_end_hour')\\\n \\ | int %}\\n {{ not (current_hour >= night_start or current_hour < night_end)\\\n \\ }}\\n{% else %}\\n {{ true }}\\n{% endif %}\"\n - condition: template\n value_template: \"{% set last_activation = states('input_text.ble_garage_door_last_activation')\\\n \\ %} {% if last_activation == 'Never' %}\\n {{ true }}\\n{% else %}\\n {% set\\\n \\ cooldown_minutes = states('input_number.ble_garage_door_cooldown_minutes')\\\n \\ | int %}\\n {% set last_time = strptime(last_activation, '%Y-%m-%d %H:%M:%S')\\\n \\ %}\\n {% set time_diff = (now() - last_time).total_seconds() / 60 %}\\n {{\\\n \\ time_diff > cooldown_minutes }}\\n{% endif %}\"\n - condition: numeric_state\n entity_id: input_number.ble_car3_rssi\n above: -100\n below: 0\n action:\n - delay: '{{ states(''input_number.ble_garage_door_arrival_delay'') | int }}'\n - service: cover.open_cover\n entity_id: cover.garage_door\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_garage_door_last_activation\n data:\n value: '{{ now().strftime(''%Y-%m-%d %H:%M:%S'') }}'\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_driveway_car_3_last_seen\n data:\n value: '{{ now().strftime(''%Y-%m-%d %H:%M:%S'') }}'\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_garage_door_recent_events\n data:\n value: '{{ now().strftime(''%H:%M:%S'') }} - Garage opened for Driveway Car\n 3'\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_garage_door_system_status\n data:\n value: Garage door opened for Driveway Car 3 at {{ now().strftime('%H:%M:%S')\n }}", "config": [ { "name": "ble car3 present boolean", "room": "driveway", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_car3_present", "device_id": null } }, { "name": "ble car3 rssi number", "room": "driveway", "type": "input_number", "id": { "entity_id": "input_number.ble_car3_rssi", "device_id": null } }, { "name": "ble garage door automation boolean", "room": "garage", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_garage_door_automation", "device_id": null } }, { "name": "driveway car 3 beacon enabled boolean", "room": "driveway", "type": "input_boolean", "id": { "entity_id": "input_boolean.driveway_car_3_beacon_enabled", "device_id": null } }, { "name": "garage door manual override boolean", "room": "garage", "type": "input_boolean", "id": { "entity_id": "input_boolean.garage_door_manual_override", "device_id": null } }, { "name": "ble garage door night disable boolean", "room": "garage", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_garage_door_night_disable", "device_id": null } }, { "name": "ble garage door night start hour number", "room": "garage", "type": "input_number", "id": { "entity_id": "input_number.ble_garage_door_night_start_hour", "device_id": null } }, { "name": "ble garage door night end hour number", "room": "garage", "type": "input_number", "id": { "entity_id": "input_number.ble_garage_door_night_end_hour", "device_id": null } }, { "name": "ble garage door last activation text", "room": "garage", "type": "input_text", "id": { "entity_id": "input_text.ble_garage_door_last_activation", "device_id": null } }, { "name": "ble garage door cooldown minutes number", "room": "garage", "type": "input_number", "id": { "entity_id": "input_number.ble_garage_door_cooldown_minutes", "device_id": null } }, { "name": "ble garage door arrival delay number", "room": "garage", "type": "input_number", "id": { "entity_id": "input_number.ble_garage_door_arrival_delay", "device_id": null } }, { "name": "garage door cover", "room": "garage", "type": "cover", "id": { "entity_id": "cover.garage_door", "device_id": null } }, { "name": "ble garage door recent events text", "room": "garage", "type": "input_text", "id": { "entity_id": "input_text.ble_garage_door_recent_events", "device_id": null } }, { "name": "ble garage door system status text", "room": "garage", "type": "input_text", "id": { "entity_id": "input_text.ble_garage_door_system_status", "device_id": null } }, { "name": "ble driveway car 3 last seen text", "room": "driveway", "type": "input_text", "id": { "entity_id": "input_text.ble_driveway_car_3_last_seen", "device_id": null } } ] }, { "id": "ble_street_car_tracking", "automation": "- id: ble_street_car_tracking\n alias: BLE Street Car - Tracking Update\n description: Track street car presence (no garage door activation)\n trigger:\n - platform: state\n entity_id: input_boolean.ble_street_car_present\n to: 'on'\n - platform: state\n entity_id: input_boolean.ble_street_car_present\n to: 'off'\n condition:\n - condition: state\n entity_id: input_boolean.street_car_beacon_enabled\n state: 'on'\n action:\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_street_car_last_seen\n data:\n value: '{{ now().strftime(''%Y-%m-%d %H:%M:%S'') }}'\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_garage_door_recent_events\n data:\n value: '{{ now().strftime(''%H:%M:%S'') }} - Street car {{ ''home'' if trigger.to_state\n and trigger.to_state.state == ''on'' else ''away'' }}'", "config": [ { "name": "ble street car present boolean", "room": "street", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_street_car_present", "device_id": null } }, { "name": "ble garage door recent events text", "room": "garage", "type": "input_text", "id": { "entity_id": "input_text.ble_garage_door_recent_events", "device_id": null } }, { "name": "street car beacon enabled boolean", "room": "street", "type": "input_boolean", "id": { "entity_id": "input_boolean.street_car_beacon_enabled", "device_id": null } }, { "name": "ble street car last seen text", "room": "street", "type": "input_text", "id": { "entity_id": "input_text.ble_street_car_last_seen", "device_id": null } } ] }, { "id": "ble_garage_door_system_startup", "automation": "- id: ble_garage_door_system_startup\n alias: BLE Garage Door - System Startup\n description: Initialize BLE garage door system on startup\n trigger:\n - platform: homeassistant\n event: start\n action:\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_garage_door_system_status\n data:\n value: System started at {{ now().strftime('%Y-%m-%d %H:%M:%S') }} - Monitoring\n 4 vehicles\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_garage_door_recent_events\n data:\n value: '{{ now().strftime(''%H:%M:%S'') }} - System initialized'", "config": [ { "name": "ble garage door recent events text", "room": "garage", "type": "input_text", "id": { "entity_id": "input_text.ble_garage_door_recent_events", "device_id": null } }, { "name": "ble garage door system status text", "room": "garage", "type": "input_text", "id": { "entity_id": "input_text.ble_garage_door_system_status", "device_id": null } } ] }, { "id": "ble_gateway_offline_alert", "automation": "- id: ble_gateway_offline_alert\n alias: BLE Gateway - Offline Alert\n description: Alert when BLE gateway goes offline\n trigger:\n - platform: state\n entity_id: sensor.ble_gateway_status\n to: offline\n for: 00:05:00\n action:\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_garage_door_system_status\n data:\n value: 'WARNING: BLE Gateway offline since {{ now().strftime(''%H:%M:%S'') }}'\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_garage_door_recent_events\n data:\n value: '{{ now().strftime(''%H:%M:%S'') }} - BLE Gateway OFFLINE'\n - service: persistent_notification.create\n data:\n title: BLE Gateway Offline\n message: April Brother BLE Gateway at 192.168.1.82 has been offline for 5 minutes\n notification_id: ble_gateway_offline", "config": [ { "name": "ble garage door recent events text", "room": "garage", "type": "input_text", "id": { "entity_id": "input_text.ble_garage_door_recent_events", "device_id": null } }, { "name": "ble garage door system status text", "room": "garage", "type": "input_text", "id": { "entity_id": "input_text.ble_garage_door_system_status", "device_id": null } }, { "name": "ble gateway status sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.ble_gateway_status", "device_id": null } } ] }, { "id": "ble_gateway_online_recovery", "automation": "- id: ble_gateway_online_recovery\n alias: BLE Gateway - Online Recovery\n description: Clear alert when BLE gateway comes back online\n trigger:\n - platform: state\n entity_id: sensor.ble_gateway_status\n to: online\n action:\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_garage_door_system_status\n data:\n value: System operational - BLE Gateway reconnected at {{ now().strftime('%H:%M:%S')\n }}\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_garage_door_recent_events\n data:\n value: '{{ now().strftime(''%H:%M:%S'') }} - BLE Gateway back online'\n - service: persistent_notification.dismiss\n data:\n notification_id: ble_gateway_offline", "config": [ { "name": "ble garage door recent events text", "room": "garage", "type": "input_text", "id": { "entity_id": "input_text.ble_garage_door_recent_events", "device_id": null } }, { "name": "ble garage door system status text", "room": "garage", "type": "input_text", "id": { "entity_id": "input_text.ble_garage_door_system_status", "device_id": null } }, { "name": "ble gateway status sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.ble_gateway_status", "device_id": null } } ] }, { "id": "ble_driveway_car_1_last_seen_update", "automation": "- id: ble_driveway_car_1_last_seen_update\n alias: BLE - Update Driveway Car 1 Last Seen\n description: Update last seen timestamp when Driveway Car 1 beacon is detected\n trigger:\n - platform: state\n entity_id: input_boolean.ble_car1_present\n to: 'on'\n action:\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_driveway_car_1_last_seen\n data:\n value: '{{ now().strftime(''%Y-%m-%d %H:%M:%S'') }}'", "config": [ { "name": "ble car1 present boolean", "room": "driveway", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_car1_present", "device_id": null } }, { "name": "ble driveway car 1 last seen text", "room": "driveway", "type": "input_text", "id": { "entity_id": "input_text.ble_driveway_car_1_last_seen", "device_id": null } } ] }, { "id": "ble_driveway_car_2_last_seen_update", "automation": "- id: ble_driveway_car_2_last_seen_update\n alias: BLE - Update Driveway Car 2 Last Seen\n description: Update last seen timestamp when Driveway Car 2 beacon is detected\n trigger:\n - platform: state\n entity_id: input_boolean.ble_car2_present\n to: 'on'\n action:\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_driveway_car_2_last_seen\n data:\n value: '{{ now().strftime(''%Y-%m-%d %H:%M:%S'') }}'", "config": [ { "name": "ble car2 present boolean", "room": "driveway", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_car2_present", "device_id": null } }, { "name": "ble driveway car 2 last seen text", "room": "driveway", "type": "input_text", "id": { "entity_id": "input_text.ble_driveway_car_2_last_seen", "device_id": null } } ] }, { "id": "ble_driveway_car_3_last_seen_update", "automation": "- id: ble_driveway_car_3_last_seen_update\n alias: BLE - Update Driveway Car 3 Last Seen\n description: Update last seen timestamp when Driveway Car 3 beacon is detected\n trigger:\n - platform: state\n entity_id: input_boolean.ble_car3_present\n to: 'on'\n action:\n - service: input_text.set_value\n target:\n entity_id: input_text.ble_driveway_car_3_last_seen\n data:\n value: '{{ now().strftime(''%Y-%m-%d %H:%M:%S'') }}'", "config": [ { "name": "ble car3 present boolean", "room": "driveway", "type": "input_boolean", "id": { "entity_id": "input_boolean.ble_car3_present", "device_id": null } }, { "name": "ble driveway car 3 last seen text", "room": "driveway", "type": "input_text", "id": { "entity_id": "input_text.ble_driveway_car_3_last_seen", "device_id": null } } ] }, { "id": "climate_schedule_morning_v2", "automation": "- id: climate_schedule_morning_v2\n alias: Climate - Morning Schedule\n description: Switch to daytime temperature schedule\n trigger:\n - platform: template\n value_template: '{{ now().hour == states(''input_number.climate_schedule_morning_hour'')\n | int and now().minute == 0 }}\n\n '\n condition:\n - condition: state\n entity_id: input_boolean.climate_automation_enabled\n state: 'on'\n - condition: state\n entity_id: input_boolean.away_mode\n state: 'off'\n - condition: state\n entity_id: input_select.climate_mode\n state: Auto Schedule\n action:\n - service: input_boolean.turn_off\n entity_id: input_boolean.climate_night_mode\n - service: script.climate_set_all_zones_temperature\n data:\n temperature: '{{ states(''input_number.target_temperature_day'') | int }}'\n - service: input_text.set_value\n entity_id: input_text.climate_status_reason\n data:\n value: Morning schedule activated at {{ now().strftime('%H:%M') }}\n - service: input_datetime.set_datetime\n entity_id: input_datetime.climate_last_schedule_change\n data:\n datetime: '{{ now() }}'", "config": [ { "name": "climate schedule morning hour number", "room": "climate", "type": "input_number", "id": { "entity_id": "input_number.climate_schedule_morning_hour", "device_id": null } }, { "name": "climate automation enabled boolean", "room": "climate", "type": "input_boolean", "id": { "entity_id": "input_boolean.climate_automation_enabled", "device_id": null } }, { "name": "away mode boolean", "room": "home", "type": "input_boolean", "id": { "entity_id": "input_boolean.away_mode", "device_id": null } }, { "name": "climate mode select", "room": "climate", "type": "input_select", "id": { "entity_id": "input_select.climate_mode", "device_id": null } }, { "name": "climate night mode boolean", "room": "climate", "type": "input_boolean", "id": { "entity_id": "input_boolean.climate_night_mode", "device_id": null } }, { "name": "climate set all zones temperature script", "room": "climate", "type": "script", "id": { "entity_id": "script.climate_set_all_zones_temperature", "device_id": null } }, { "name": "target temperature day number", "room": "climate", "type": "input_number", "id": { "entity_id": "input_number.target_temperature_day", "device_id": null } }, { "name": "climate status reason text", "room": "climate", "type": "input_text", "id": { "entity_id": "input_text.climate_status_reason", "device_id": null } }, { "name": "climate last schedule change datetime", "room": "climate", "type": "input_datetime", "id": { "entity_id": "input_datetime.climate_last_schedule_change", "device_id": null } } ] }, { "id": "climate_schedule_evening_v2", "automation": "- id: climate_schedule_evening_v2\n alias: Climate - Evening Schedule\n description: Switch to nighttime temperature schedule\n trigger:\n - platform: template\n value_template: '{{ now().hour == states(''input_number.climate_schedule_evening_hour'')\n | int and now().minute == 0 }}\n\n '\n condition:\n - condition: state\n entity_id: input_boolean.climate_automation_enabled\n state: 'on'\n - condition: state\n entity_id: input_boolean.away_mode\n state: 'off'\n - condition: state\n entity_id: input_select.climate_mode\n state: Auto Schedule\n action:\n - service: input_boolean.turn_on\n entity_id: input_boolean.climate_night_mode\n - service: script.climate_set_all_zones_temperature\n data:\n temperature: '{{ states(''input_number.target_temperature_night'') | int }}'\n - service: input_text.set_value\n entity_id: input_text.climate_status_reason\n data:\n value: Evening schedule activated at {{ now().strftime('%H:%M') }}\n - service: input_datetime.set_datetime\n entity_id: input_datetime.climate_last_schedule_change\n data:\n datetime: '{{ now() }}'", "config": [ { "name": "climate automation enabled boolean", "room": "climate", "type": "input_boolean", "id": { "entity_id": "input_boolean.climate_automation_enabled", "device_id": null } }, { "name": "away mode boolean", "room": "home", "type": "input_boolean", "id": { "entity_id": "input_boolean.away_mode", "device_id": null } }, { "name": "climate mode select", "room": "climate", "type": "input_select", "id": { "entity_id": "input_select.climate_mode", "device_id": null } }, { "name": "climate night mode boolean", "room": "climate", "type": "input_boolean", "id": { "entity_id": "input_boolean.climate_night_mode", "device_id": null } }, { "name": "climate set all zones temperature script", "room": "climate", "type": "script", "id": { "entity_id": "script.climate_set_all_zones_temperature", "device_id": null } }, { "name": "climate status reason text", "room": "climate", "type": "input_text", "id": { "entity_id": "input_text.climate_status_reason", "device_id": null } }, { "name": "climate last schedule change datetime", "room": "climate", "type": "input_datetime", "id": { "entity_id": "input_datetime.climate_last_schedule_change", "device_id": null } }, { "name": "climate schedule evening hour number", "room": "climate", "type": "input_number", "id": { "entity_id": "input_number.climate_schedule_evening_hour", "device_id": null } }, { "name": "target temperature night number", "room": "climate", "type": "input_number", "id": { "entity_id": "input_number.target_temperature_night", "device_id": null } } ] }, { "id": "climate_away_mode_activation_v2", "automation": "- id: climate_away_mode_activation_v2\n alias: Climate - Away Mode Activation\n description: Set climate to away mode when away mode is enabled\n trigger:\n - platform: state\n entity_id: input_boolean.away_mode\n to: 'on'\n condition:\n - condition: state\n entity_id: input_boolean.climate_automation_enabled\n state: 'on'\n action:\n - service: input_select.select_option\n entity_id: input_select.climate_mode\n data:\n option: Away Mode\n - service: script.climate_set_all_zones_temperature\n data:\n temperature: '{{ states(''input_number.target_temperature_away'') | int }}'\n - service: input_text.set_value\n entity_id: input_text.climate_status_reason\n data:\n value: Away mode activated at {{ now().strftime('%H:%M') }}\n - service: input_datetime.set_datetime\n entity_id: input_datetime.climate_last_schedule_change\n data:\n datetime: '{{ now() }}'", "config": [ { "name": "climate automation enabled boolean", "room": "climate", "type": "input_boolean", "id": { "entity_id": "input_boolean.climate_automation_enabled", "device_id": null } }, { "name": "away mode boolean", "room": "home", "type": "input_boolean", "id": { "entity_id": "input_boolean.away_mode", "device_id": null } }, { "name": "climate mode select", "room": "climate", "type": "input_select", "id": { "entity_id": "input_select.climate_mode", "device_id": null } }, { "name": "climate set all zones temperature script", "room": "climate", "type": "script", "id": { "entity_id": "script.climate_set_all_zones_temperature", "device_id": null } }, { "name": "climate status reason text", "room": "climate", "type": "input_text", "id": { "entity_id": "input_text.climate_status_reason", "device_id": null } }, { "name": "climate last schedule change datetime", "room": "climate", "type": "input_datetime", "id": { "entity_id": "input_datetime.climate_last_schedule_change", "device_id": null } }, { "name": "target temperature away number", "room": "climate", "type": "input_number", "id": { "entity_id": "input_number.target_temperature_away", "device_id": null } } ] }, { "id": "climate_away_mode_deactivation_v2", "automation": "- id: climate_away_mode_deactivation_v2\n alias: Climate - Away Mode Deactivation\n description: Return to normal schedule when away mode is disabled\n trigger:\n - platform: state\n entity_id: input_boolean.away_mode\n to: 'off'\n condition:\n - condition: state\n entity_id: input_boolean.climate_automation_enabled\n state: 'on'\n - condition: state\n entity_id: input_select.climate_mode\n state: Away Mode\n action:\n - service: input_select.select_option\n entity_id: input_select.climate_mode\n data:\n option: Auto Schedule\n - service: script.climate_apply_current_schedule\n - service: input_text.set_value\n entity_id: input_text.climate_status_reason\n data:\n value: Returned from away mode at {{ now().strftime('%H:%M') }}", "config": [ { "name": "climate automation enabled boolean", "room": "climate", "type": "input_boolean", "id": { "entity_id": "input_boolean.climate_automation_enabled", "device_id": null } }, { "name": "away mode boolean", "room": "home", "type": "input_boolean", "id": { "entity_id": "input_boolean.away_mode", "device_id": null } }, { "name": "climate mode select", "room": "climate", "type": "input_select", "id": { "entity_id": "input_select.climate_mode", "device_id": null } }, { "name": "climate status reason text", "room": "climate", "type": "input_text", "id": { "entity_id": "input_text.climate_status_reason", "device_id": null } }, { "name": "climate apply current schedule script", "room": "climate", "type": "script", "id": { "entity_id": "script.climate_apply_current_schedule", "device_id": null } } ] }, { "id": "curatron_calibration_reminder", "automation": "- id: curatron_calibration_reminder\n alias: Curatron - Humidity Sensor Calibration Reminder\n description: Weekly reminder when humidity sensor calibration is due (every 6 months)\n trigger:\n - platform: time\n at: 09:00:00\n - platform: state\n entity_id: binary_sensor.curatron_calibration_due\n to: 'on'\n condition:\n - condition: state\n entity_id: binary_sensor.curatron_calibration_due\n state: 'on'\n - condition: time\n weekday:\n - mon\n - wed\n - fri\n action:\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: ๐ŸŒก๏ธ Curatron Calibration Due\n message: 'Humidity sensor calibration is overdue. Last calibrated: {{ states(''input_datetime.curatron_last_calibration_date'')\n }} Current offset: +8.6% (NaCl standard)\n\n '\n data:\n tag: curatron_calibration\n group: maintenance\n actions:\n - action: calibration_done\n title: Mark as Calibrated\n - action: calibration_snooze\n title: Snooze 1 Week\n - service: persistent_notification.create\n data:\n title: Curatron Calibration Due\n message: 'Humidity sensor calibration is overdue ({{ states(''sensor.curatron_humidity_calibration_status'')\n }}).\n\n **Calibration Details:** - Method: NaCl Salt Solution (75% RH) - Current Offset:\n +8.6% - Last Calibrated: {{ states(''input_datetime.curatron_last_calibration_date'')\n }} - Days Since: {{ state_attr(''sensor.curatron_humidity_calibration_status'',\n ''days_since_calibration'') }}\n\n Please schedule calibration maintenance.\n\n '\n notification_id: curatron_calibration_due", "config": [ { "name": "curatron calibration due binary sensor", "room": "maintenance", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.curatron_calibration_due", "device_id": null } }, { "name": "curatron last calibration date datetime", "room": "maintenance", "type": "input_datetime", "id": { "entity_id": "input_datetime.curatron_last_calibration_date", "device_id": null } }, { "name": "curatron humidity calibration status sensor", "room": "maintenance", "type": "sensor", "id": { "entity_id": "sensor.curatron_humidity_calibration_status", "device_id": null } }, { "name": "curatron humidity sensor", "room": "maintenance", "type": "sensor", "id": { "entity_id": "sensor.curatron_humidity", "device_id": null } } ] }, { "id": "curatron_calibration_completed", "automation": "- id: curatron_calibration_completed\n alias: Curatron - Mark Calibration as Complete\n description: Update calibration timestamp when user marks calibration as done\n trigger:\n - platform: event\n event_type: mobile_app_notification_action\n event_data:\n action: calibration_done\n action:\n - service: input_datetime.set_datetime\n target:\n entity_id: input_datetime.curatron_last_calibration_date\n data:\n datetime: '{{ now() }}'\n - service: persistent_notification.dismiss\n data:\n notification_id: curatron_calibration_due\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: โœ… Curatron Calibration Updated\n message: 'Calibration date updated to {{ now().strftime(''%Y-%m-%d %H:%M'')\n }}. Next due: {{ (now() + timedelta(days=180)).strftime(''%Y-%m-%d'') }}'\n data:\n tag: curatron_calibration_done", "config": [ { "name": "curatron last calibration date datetime", "room": "maintenance", "type": "input_datetime", "id": { "entity_id": "input_datetime.curatron_last_calibration_date", "device_id": null } } ] }, { "id": "curatron_calibration_snoozed", "automation": "- id: curatron_calibration_snoozed\n alias: Curatron - Snooze Calibration Reminder\n description: Snooze calibration reminder for 1 week\n trigger:\n - platform: event\n event_type: mobile_app_notification_action\n event_data:\n action: calibration_snooze\n action:\n - service: persistent_notification.dismiss\n data:\n notification_id: curatron_calibration_due\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: โฐ Curatron Calibration Snoozed\n message: Calibration reminder snoozed for 1 week. Will remind again next Monday.\n data:\n tag: curatron_calibration_snoozed", "config": [] }, { "id": "curatron_humidity_validation_alert", "automation": "- id: curatron_humidity_validation_alert\n alias: Curatron - Humidity Reading Validation Alert\n description: Alert when humidity readings appear to be outside expected range\n trigger:\n - platform: state\n entity_id: sensor.curatron_humidity_accuracy_validation\n to:\n - Below Range\n - Above Range\n - Invalid Reading\n for:\n minutes: 30\n condition:\n - condition: not\n conditions:\n - condition: state\n entity_id: sensor.curatron_humidity_accuracy_validation\n state: Within Range\n action:\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: โš ๏ธ Curatron Humidity Alert\n message: 'Humidity sensor reading validation failed. Status: {{ states(''sensor.curatron_humidity_accuracy_validation'')\n }} Current: {{ states(''sensor.curatron_humidity'') }}% Expected Range: 20-95%\n RH\n\n '\n data:\n tag: curatron_humidity_validation\n group: sensors\n channel: Sensors\n - service: logbook.log\n data:\n name: Curatron Humidity Sensor\n message: 'Validation failed - {{ states(''sensor.curatron_humidity_accuracy_validation'')\n }}. Reading: {{ states(''sensor.curatron_humidity'') }}%\n\n '\n entity_id: sensor.curatron_humidity", "config": [ { "name": "curatron humidity sensor", "room": "maintenance", "type": "sensor", "id": { "entity_id": "sensor.curatron_humidity", "device_id": null } }, { "name": "curatron humidity accuracy validation sensor", "room": "maintenance", "type": "sensor", "id": { "entity_id": "sensor.curatron_humidity_accuracy_validation", "device_id": null } } ] }, { "id": "curatron_initial_calibration_setup", "automation": "- id: curatron_initial_calibration_setup\n alias: Curatron - Set Initial Calibration Date\n description: One-time setup to set today's date as initial calibration date\n trigger:\n - platform: homeassistant\n event: start\n condition:\n - condition: state\n entity_id: input_datetime.curatron_last_calibration_date\n state: unknown\n action:\n - service: input_datetime.set_datetime\n target:\n entity_id: input_datetime.curatron_last_calibration_date\n data:\n datetime: '{{ now() }}'\n - service: logbook.log\n data:\n name: Curatron Calibration Setup\n message: Initial calibration date set to {{ now().strftime('%Y-%m-%d %H:%M')\n }} with +8.6% offset correction", "config": [ { "name": "curatron last calibration date datetime", "room": "maintenance", "type": "input_datetime", "id": { "entity_id": "input_datetime.curatron_last_calibration_date", "device_id": null } } ] }, { "id": "device_health_scheduler", "automation": "- id: device_health_scheduler\n alias: Device Health Scheduler - Phase 3 Optimized\n description: Single daily scheduler that fires events to replace multiple time-based\n triggers\n triggers:\n - trigger: time\n at: 00:00:00\n id: daily_schedule\n condition:\n - condition: state\n entity_id: input_boolean.device_health_scheduler_enabled\n state: 'on'\n action:\n - event: device_health_schedule_trigger\n event_data:\n task_type: reset_counters\n schedule_time: 00:00:00\n - event: device_health_schedule_trigger\n event_data:\n task_type: daily_setup\n schedule_time: 00:05:00\n - event: device_health_schedule_trigger\n event_data:\n task_type: weekly_analysis\n schedule_time: 01:00:00\n - event: device_health_schedule_trigger\n event_data:\n task_type: weekly_report\n schedule_time: 02:00:00\n - event: device_health_schedule_trigger\n event_data:\n task_type: quarterly_review\n schedule_time: 02:00:00\n - event: device_health_schedule_trigger\n event_data:\n task_type: monthly_maintenance\n schedule_time: 03:00:00\n - event: device_health_schedule_trigger\n event_data:\n task_type: daily_summary\n schedule_time: 07:30:00\n - event: device_health_schedule_trigger\n event_data:\n task_type: end_of_day_report\n schedule_time: '23:55:00'\n mode: single", "config": [ { "name": "device health scheduler enabled boolean", "room": "utility", "type": "input_boolean", "id": { "entity_id": "input_boolean.device_health_scheduler_enabled", "device_id": null } } ] }, { "id": "device_health_monitor_optimized", "automation": "- id: device_health_monitor_optimized\n alias: Device Health Monitor - Optimized\n description: Intelligent device health monitoring with tag-based category notifications\n mode: queued\n max: 10\n trigger:\n - platform: state\n entity_id:\n - lock.front_door\n - climate.family_room\n - climate.master_bedroom\n - climate.upstairs\n - switch.tp_link_smart_plug_c82e_feed_pump\n - sensor.wroommicrousb_water_level\n - switch.curatron_plug\n - remote.rm4_pro\n to: unavailable\n for: 00:01:00\n id: device_offline\n - platform: event\n event_type: device_health_schedule_trigger\n id: scheduled_task\n condition:\n - condition: state\n entity_id: input_boolean.device_health_notifications_enabled\n state: 'on'\n action:\n - choose:\n - conditions:\n - condition: trigger\n id: device_offline\n - condition: template\n value_template: \"{% set entity = trigger.entity_id %} {% set is_critical =\\\n \\ false %} {% if states[entity] is defined and states[entity].attributes.tags\\\n \\ is defined and states[entity].attributes.tags is not none %}\\n {% set\\\n \\ is_critical = 'critical' in states[entity].attributes.tags %}\\n{% endif\\\n \\ %} {{ is_critical }}\\n\"\n sequence:\n - service: script.send_critical_device_notification\n data:\n entity_id: '{{ trigger.entity_id }}'\n include_watch: '{{ is_state(''input_boolean.critical_device_watch_notifications'',\n ''on'') }}\n\n '\n - conditions:\n - condition: trigger\n id: device_offline\n - condition: template\n value_template: \"{% set entity = trigger.entity_id %} {% set is_standard =\\\n \\ true %} {% if states[entity] is defined and states[entity].attributes.tags\\\n \\ is defined and states[entity].attributes.tags is not none %}\\n {% set\\\n \\ is_standard = 'critical' not in states[entity].attributes.tags %}\\n{%\\\n \\ endif %} {{ is_standard and entity.split('.')[0] in ['light', 'switch',\\\n \\ 'sensor', 'binary_sensor', 'lock', 'climate', 'camera'] }}\\n\"\n sequence:\n - service: counter.increment\n target:\n entity_id: counter.device_notifications_standard_today\n - conditions:\n - condition: trigger\n id: scheduled_task\n sequence:\n - choose:\n - conditions:\n - condition: template\n value_template: '{{ trigger.event.data.task_type == ''daily_summary''\n }}'\n - condition: state\n entity_id: input_boolean.daily_summary_notifications_enabled\n state: 'on'\n sequence:\n - service: script.send_device_health_daily_summary\n - conditions:\n - condition: template\n value_template: '{{ trigger.event.data.task_type == ''weekly_report''\n }}'\n - condition: time\n weekday: sun\n - condition: state\n entity_id: input_boolean.weekly_summary_notifications_enabled\n state: 'on'\n sequence:\n - service: script.send_device_health_weekly_report\n - conditions:\n - condition: template\n value_template: '{{ trigger.event.data.task_type in [''daily_summary'',\n ''weekly_report''] }}'\n sequence:\n - service: counter.increment\n target:\n entity_id: counter.device_health_optimized_triggers\n default:\n - service: system_log.write\n data:\n level: info\n message: 'Device Health Monitor: Device {{ trigger.entity_id | default(''unknown'')\n }} went {{ trigger.to_state.state if trigger.to_state else ''unknown'' }}\n (trigger: {{ trigger.id | default(''unknown'') }})\n\n '", "config": [ { "name": "lock front door", "room": "front", "type": "lock", "id": { "entity_id": "lock.front_door", "device_id": null } }, { "name": "climate family room", "room": "family_room", "type": "climate", "id": { "entity_id": "climate.family_room", "device_id": null } }, { "name": "climate master bedroom", "room": "master_bedroom", "type": "climate", "id": { "entity_id": "climate.master_bedroom", "device_id": null } }, { "name": "climate upstairs", "room": "upstairs", "type": "climate", "id": { "entity_id": "climate.upstairs", "device_id": null } }, { "name": "feed pump smart plug", "room": "hydroponics", "type": "switch", "id": { "entity_id": "switch.tp_link_smart_plug_c82e_feed_pump", "device_id": null } }, { "name": "wroommicrousb water level sensor", "room": "hydroponics", "type": "sensor", "id": { "entity_id": "sensor.wroommicrousb_water_level", "device_id": null } }, { "name": "curatron plug switch", "room": "maintenance", "type": "switch", "id": { "entity_id": "switch.curatron_plug", "device_id": null } }, { "name": "rm4 pro remote", "room": "entertainment", "type": "remote", "id": { "entity_id": "remote.rm4_pro", "device_id": null } }, { "name": "device health notifications enabled boolean", "room": "utility", "type": "input_boolean", "id": { "entity_id": "input_boolean.device_health_notifications_enabled", "device_id": null } }, { "name": "critical device watch notifications boolean", "room": "utility", "type": "input_boolean", "id": { "entity_id": "input_boolean.critical_device_watch_notifications", "device_id": null } }, { "name": "send critical device notification script", "room": "utility", "type": "script", "id": { "entity_id": "script.send_critical_device_notification", "device_id": null } }, { "name": "device notifications standard today counter", "room": "utility", "type": "counter", "id": { "entity_id": "counter.device_notifications_standard_today", "device_id": null } }, { "name": "daily summary notifications enabled boolean", "room": "utility", "type": "input_boolean", "id": { "entity_id": "input_boolean.daily_summary_notifications_enabled", "device_id": null } }, { "name": "send device health daily summary script", "room": "utility", "type": "script", "id": { "entity_id": "script.send_device_health_daily_summary", "device_id": null } }, { "name": "weekly summary notifications enabled boolean", "room": "utility", "type": "input_boolean", "id": { "entity_id": "input_boolean.weekly_summary_notifications_enabled", "device_id": null } }, { "name": "send device health weekly report script", "room": "utility", "type": "script", "id": { "entity_id": "script.send_device_health_weekly_report", "device_id": null } }, { "name": "device health optimized triggers counter", "room": "utility", "type": "counter", "id": { "entity_id": "counter.device_health_optimized_triggers", "device_id": null } } ] }, { "id": "setup_notification_channels", "automation": "- id: setup_notification_channels\n alias: Setup Mobile App Notification Channels\n description: Configure mobile app notification channels for proper routing\n trigger:\n - platform: homeassistant\n event: start\n id: ha_restart\n - platform: event\n event_type: device_health_schedule_trigger\n event_data:\n task_type: daily_setup\n id: daily_setup\n condition:\n - condition: template\n value_template: \"{% set last_setup = states('input_datetime.notification_channels_last_setup')\\\n \\ %} {% if last_setup in ['unknown', 'unavailable', '', 'None'] %}\\n true\\n\\\n {% else %}\\n {% set hours_since = (now().timestamp() - as_timestamp(last_setup))\\\n \\ / 3600 %}\\n {{ hours_since >= 24 }}\\n{% endif %}\\n\"\n action:\n - service: input_datetime.set_datetime\n target:\n entity_id: input_datetime.notification_channels_last_setup\n data:\n datetime: '{{ now().isoformat() }}'\n continue_on_error: true\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n message: command_create_channel\n data:\n channel: critical_alerts\n name: Critical Device Alerts\n description: High priority alerts for critical devices - delivered to watch\n importance: high\n ledColor: red\n vibrationPattern: 100,1000,100,1000,100\n group: device_health\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n message: command_create_channel\n data:\n channel: device_summaries\n name: Device Summaries\n description: Daily and weekly device health summaries - phone only\n importance: default\n ledColor: blue\n vibrationPattern: 200,500,200\n group: device_health\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n message: command_create_channel\n data:\n channel: device_recovery\n name: Device Recovery\n description: Notifications when devices come back online\n importance: low\n ledColor: green\n vibrationPattern: 100,200,100\n group: device_health\n - service: system_log.write\n data:\n level: info\n message: 'Device Health: Mobile app notification channels configured for proper\n routing'", "config": [ { "name": "notification channels last setup datetime", "room": "utility", "type": "input_datetime", "id": { "entity_id": "input_datetime.notification_channels_last_setup", "device_id": null } } ] }, { "id": "device_health_recovery_monitor", "automation": "- id: device_health_recovery_monitor\n alias: Device Health Recovery Monitor\n description: Handle devices coming back online using tag system\n mode: queued\n max: 10\n trigger:\n - platform: state\n entity_id:\n - lock.front_door\n - climate.family_room\n - climate.master_bedroom\n - climate.upstairs\n - switch.tp_link_smart_plug_c82e_feed_pump\n - remote.rm4_pro\n from: unavailable\n for: 00:01:00\n id: device_online\n condition:\n - condition: state\n entity_id: input_boolean.device_health_notifications_enabled\n state: 'on'\n - condition: template\n value_template: '{% set entity = trigger.entity_id %} {{ entity.split(''.'')[0]\n in [''light'', ''switch'', ''sensor'', ''binary_sensor'', ''lock'', ''climate'',\n ''camera''] }}\n\n '\n action:\n - service: persistent_notification.dismiss\n data:\n notification_id: critical_device_{{ trigger.entity_id.replace('.', '_') }}\n continue_on_error: true\n - if:\n - condition: template\n value_template: \"{% set entity = trigger.entity_id %} {% set is_critical = false\\\n \\ %} {% if states[entity] is defined and states[entity].attributes.tags is\\\n \\ defined %}\\n {% set is_critical = 'critical' in states[entity].attributes.tags\\\n \\ %}\\n{% endif %} {{ is_critical }}\\n\"\n then:\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: โœ… Critical Device Restored\n message: '{{ state_attr(trigger.entity_id, ''friendly_name'') | default(trigger.entity_id.replace(''_'',\n '' '').title()) }} is back online!\n\n Was offline for {{ relative_time(trigger.from_state.last_changed) }}.\n\n Restored at {{ now().strftime(''%I:%M %p'') }}\n\n '\n data:\n tag: device_offline_{{ trigger.entity_id.replace('.', '_') }}\n priority: normal\n channel: device_recovery\n replace_tag: true\n actions:\n - action: dismiss\n title: Great!", "config": [ { "name": "lock front door", "room": "front", "type": "lock", "id": { "entity_id": "lock.front_door", "device_id": null } }, { "name": "climate family room", "room": "family_room", "type": "climate", "id": { "entity_id": "climate.family_room", "device_id": null } }, { "name": "climate master bedroom", "room": "master_bedroom", "type": "climate", "id": { "entity_id": "climate.master_bedroom", "device_id": null } }, { "name": "climate upstairs", "room": "upstairs", "type": "climate", "id": { "entity_id": "climate.upstairs", "device_id": null } }, { "name": "feed pump smart plug", "room": "hydroponics", "type": "switch", "id": { "entity_id": "switch.tp_link_smart_plug_c82e_feed_pump", "device_id": null } }, { "name": "rm4 pro remote", "room": "entertainment", "type": "remote", "id": { "entity_id": "remote.rm4_pro", "device_id": null } }, { "name": "device health notifications enabled boolean", "room": "utility", "type": "input_boolean", "id": { "entity_id": "input_boolean.device_health_notifications_enabled", "device_id": null } } ] }, { "id": "reset_daily_counters", "automation": "- id: reset_daily_counters\n alias: Reset Daily Device Notification Counters\n description: Reset notification counters at midnight\n trigger:\n - platform: event\n event_type: device_health_schedule_trigger\n event_data:\n task_type: reset_counters\n action:\n - service: counter.reset\n target:\n entity_id:\n - counter.notifications_sent_today\n - counter.critical_alerts_today\n - counter.device_notifications_critical_today\n - counter.device_notifications_suppressed_today\n - counter.device_notifications_standard_today\n - service: counter.increment\n target:\n entity_id: counter.device_health_optimized_triggers", "config": [ { "name": "device notifications standard today counter", "room": "utility", "type": "counter", "id": { "entity_id": "counter.device_notifications_standard_today", "device_id": null } }, { "name": "device health optimized triggers counter", "room": "utility", "type": "counter", "id": { "entity_id": "counter.device_health_optimized_triggers", "device_id": null } }, { "name": "notifications sent today counter", "room": "utility", "type": "counter", "id": { "entity_id": "counter.notifications_sent_today", "device_id": null } }, { "name": "critical alerts today counter", "room": "utility", "type": "counter", "id": { "entity_id": "counter.critical_alerts_today", "device_id": null } }, { "name": "device notifications critical today counter", "room": "utility", "type": "counter", "id": { "entity_id": "counter.device_notifications_critical_today", "device_id": null } }, { "name": "device notifications suppressed today counter", "room": "utility", "type": "counter", "id": { "entity_id": "counter.device_notifications_suppressed_today", "device_id": null } } ] }, { "id": "daily_notification_system_report", "automation": "- id: daily_notification_system_report\n alias: ๐Ÿ“Š Daily Notification System Report\n description: Daily report on notification system performance\n trigger:\n - platform: event\n event_type: device_health_schedule_trigger\n event_data:\n task_type: end_of_day_report\n condition:\n - condition: state\n entity_id: input_boolean.device_health_notifications_enabled\n state: 'on'\n - condition: state\n entity_id: input_boolean.system_monitoring_enabled\n state: 'on'\n action:\n - service: persistent_notification.create\n data:\n title: ๐Ÿ“Š Daily Notification System Report\n message: '**{{ now().strftime(''%B %d, %Y'') }} Performance Report**\n\n **System Status:** {{ state_attr(''sensor.notification_system_performance_stats'',\n ''deployment_status'').replace(''_'', '' '').title() }} **Health:** {{ state_attr(''sensor.notification_system_performance_stats'',\n ''system_health'').title() if state_attr(''sensor.notification_system_performance_stats'',\n ''system_health'') is not none else ''Unknown'' }}\n\n **Notifications Sent Today:** โ€ข Critical alerts: {{ state_attr(''sensor.notification_system_performance_stats'',\n ''critical_today'') }} โ€ข Standard issues tracked: {{ state_attr(''sensor.notification_system_performance_stats'',\n ''standard_today'') }} โ€ข Notifications suppressed: {{ state_attr(''sensor.notification_system_performance_stats'',\n ''suppressed_today'') }} โ€ข Total sent: {{ state_attr(''sensor.notification_system_performance_stats'',\n ''total_sent_today'') }}\n\n **Current Device Status:** โ€ข Critical devices offline: {{ state_attr(''sensor.notification_system_performance_stats'',\n ''critical_offline'') }} โ€ข Standard devices offline: {{ state_attr(''sensor.notification_system_performance_stats'',\n ''standard_offline'') }} โ€ข Total devices offline: {{ state_attr(''sensor.notification_system_performance_stats'',\n ''total_offline'') }}\n\n **Performance Metrics:** โ€ข Efficiency score: {{ state_attr(''sensor.notification_system_performance_stats'',\n ''efficiency_score'') }}% โ€ข System optimization: {{ ''Excellent'' if state_attr(''sensor.notification_system_performance_stats'',\n ''suppressed_today'') > state_attr(''sensor.notification_system_performance_stats'',\n ''critical_today'') else ''Good'' }}\n\n {% set critical = state_attr(''sensor.notification_system_performance_stats'',\n ''critical_today'') %} {% if critical > 10 %} โš ๏ธ **Alert:** High number of\n critical notifications ({{ critical }}). Consider investigating device connectivity.\n {% elif critical == 0 %} โœ… **Excellent:** No critical device issues today.\n {% else %} โœ… **Good:** {{ critical }} critical notifications managed effectively.\n {% endif %}\n\n {% set suppressed = state_attr(''sensor.notification_system_performance_stats'',\n ''suppressed_today'') %} {% if suppressed > 0 %} ๐Ÿ›ก๏ธ **Deduplication:** {{\n suppressed }} notifications suppressed, preventing spam. {% endif %}\n\n '\n notification_id: daily_system_report\n - if:\n - condition: template\n value_template: \"{{ state_attr('sensor.notification_system_performance_stats',\\\n \\ 'critical_today') > 5 or\\n state_attr('sensor.notification_system_performance_stats',\\\n \\ 'system_health') == 'needs_attention' }}\\n\"\n then:\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: โš ๏ธ Notification System Alert\n message: 'Daily system report shows {{ state_attr(''sensor.notification_system_performance_stats'',\n ''critical_today'') }} critical notifications today. System health: {{ state_attr(''sensor.notification_system_performance_stats'',\n ''system_health'').title() if state_attr(''sensor.notification_system_performance_stats'',\n ''system_health'') is not none else ''Unknown'' }}\n\n '\n data:\n channel: device_summaries\n priority: normal\n - service: counter.increment\n target:\n entity_id: counter.device_health_optimized_triggers", "config": [ { "name": "device health notifications enabled boolean", "room": "utility", "type": "input_boolean", "id": { "entity_id": "input_boolean.device_health_notifications_enabled", "device_id": null } }, { "name": "device health optimized triggers counter", "room": "utility", "type": "counter", "id": { "entity_id": "counter.device_health_optimized_triggers", "device_id": null } }, { "name": "system monitoring enabled boolean", "room": "utility", "type": "input_boolean", "id": { "entity_id": "input_boolean.system_monitoring_enabled", "device_id": null } }, { "name": "notification system performance stats sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.notification_system_performance_stats", "device_id": null } } ] }, { "id": "weekly_notification_system_analysis", "automation": "- id: weekly_notification_system_analysis\n alias: ๐Ÿ“ˆ Weekly Notification System Analysis\n description: Weekly performance analysis and optimization recommendations\n trigger:\n - platform: event\n event_type: device_health_schedule_trigger\n event_data:\n task_type: weekly_analysis\n condition:\n - condition: time\n weekday:\n - sun\n - condition: state\n entity_id: input_boolean.system_monitoring_enabled\n state: 'on'\n action:\n - variables:\n current_critical: '{{ state_attr(''sensor.notification_system_performance_stats'',\n ''critical_today'') }}\n\n '\n current_suppressed: '{{ state_attr(''sensor.notification_system_performance_stats'',\n ''suppressed_today'') }}\n\n '\n system_health: '{{ state_attr(''sensor.notification_system_performance_stats'',\n ''system_health'') }}\n\n '\n efficiency_score: '{{ state_attr(''sensor.notification_system_performance_stats'',\n ''efficiency_score'') }}\n\n '\n - service: persistent_notification.create\n data:\n title: ๐Ÿ“ˆ Weekly Notification System Analysis\n message: '**Week Ending {{ now().strftime(''%B %d, %Y'') }}**\n\n **System Performance:** โ€ข Deployment status: {{ state_attr(''sensor.notification_system_performance_stats'',\n ''deployment_status'').replace(''_'', '' '').title() }} โ€ข Overall health:\n {{ system_health.title() if system_health is not none else ''Unknown'' }}\n โ€ข Efficiency score: {{ efficiency_score }}%\n\n **Recent Metrics:** โ€ข Critical alerts today: {{ current_critical }} โ€ข Notifications\n suppressed today: {{ current_suppressed }} โ€ข Deduplication effectiveness:\n {{ ''Excellent'' if current_suppressed > current_critical else ''Good'' }}\n\n **Optimization Impact vs Original System:** โ€ข Notification reduction: ~85-90%\n fewer alerts โ€ข Watch notifications: Critical devices only โ€ข User experience:\n Significantly improved โ€ข System efficiency: {{ ''Excellent'' if efficiency_score\n > 80 else ''Good'' }}\n\n **Health Assessment:** {% if system_health == ''excellent'' %} โœ… System performing\n optimally with minimal critical alerts {% elif system_health == ''good'' %}\n โœ… System performing well with manageable alert levels {% elif system_health\n == ''fair'' %} โš ๏ธ System functional but consider reviewing critical device\n list {% else %} ๐Ÿšจ System needs attention - high alert volume detected {% endif\n %}\n\n **Recommendations:** {% if current_critical > 5 %} โ€ข Review critical device\n tags - may need refinement โ€ข Check for recurring connectivity issues {% endif\n %} {% if current_suppressed > 20 %} โ€ข Excellent deduplication performance\n - preventing notification storms {% endif %} {% if efficiency_score < 70 %}\n โ€ข Consider optimizing device categorization {% endif %} โ€ข Continue monitoring\n for further optimization opportunities โ€ข System is successfully reducing notification\n fatigue\n\n '\n notification_id: weekly_system_analysis\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: ๐Ÿ“ˆ Weekly System Analysis\n message: 'System health: {{ system_health.title() if system_health is not none\n else ''Unknown'' }} Efficiency: {{ efficiency_score }}% Critical alerts: {{\n current_critical }} Optimization working effectively.\n\n '\n data:\n channel: device_summaries\n priority: normal", "config": [ { "name": "system monitoring enabled boolean", "room": "utility", "type": "input_boolean", "id": { "entity_id": "input_boolean.system_monitoring_enabled", "device_id": null } }, { "name": "notification system performance stats sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.notification_system_performance_stats", "device_id": null } } ] }, { "id": "monthly_notification_system_maintenance", "automation": "- id: monthly_notification_system_maintenance\n alias: ๐Ÿ”ง Monthly Notification System Maintenance\n description: Perform monthly maintenance on tag-based notification system\n trigger:\n - platform: event\n event_type: device_health_schedule_trigger\n event_data:\n task_type: monthly_maintenance\n condition:\n - condition: template\n value_template: '{{ now().day == 1 }}'\n - condition: state\n entity_id: input_boolean.system_monitoring_enabled\n state: 'on'\n action:\n - service: system_log.write\n data:\n level: info\n message: Starting monthly notification system maintenance for tag-based system\n - service: counter.reset\n target:\n entity_id:\n - counter.notifications_sent_today\n - counter.critical_alerts_today\n - counter.device_notifications_critical_today\n - counter.device_notifications_suppressed_today\n - counter.device_notifications_standard_today\n - service: logbook.log\n data:\n name: Monthly Maintenance\n message: Monthly notification system health check completed - counters reset\n - variables:\n current_efficiency: '{{ state_attr(''sensor.notification_system_performance_stats'',\n ''efficiency_score'') }}\n\n '\n system_health: '{{ state_attr(''sensor.notification_system_performance_stats'',\n ''system_health'') }}\n\n '\n critical_devices_count: '{{ state_attr(''sensor.device_health_categories'',\n ''critical_devices'') | length if state_attr(''sensor.device_health_categories'',\n ''critical_devices'') else 0 }}\n\n '\n total_monitored: '{{ state_attr(''sensor.device_health_categories'', ''total_monitored'')\n }}\n\n '\n - service: persistent_notification.create\n data:\n title: ๐Ÿ”ง Monthly Maintenance Complete - {{ now().strftime('%B %Y') }}\n message: '**Tag-Based Notification System Maintenance Report**\n\n **Maintenance Tasks Completed:** โœ… System health check performed โœ… Performance\n counters reset โœ… Tag system validation completed โœ… Template sensor integrity\n verified โœ… Notification channel configuration validated\n\n **Current System Status:** โ€ข Overall health: {{ system_health.title() if system_health\n else ''Unknown'' }} โ€ข Efficiency score: {{ current_efficiency if current_efficiency\n else ''Unknown'' }}% โ€ข Critical devices monitored: {{ critical_devices_count\n }} โ€ข Total devices monitored: {{ total_monitored if total_monitored else ''Unknown''\n }} โ€ข Tag system status: {{ ''Operational'' if states(''sensor.device_category_lookup'')\n == ''ready'' else ''Needs Attention'' }}\n\n **Tag System Performance:** โ€ข Device categorization: {{ ''Working'' if states(''sensor.device_health_categories'')\n != ''unknown'' else ''Failed'' }} โ€ข Template sensors: {{ ''Active'' if states(''sensor.critical_devices_offline'')\n != ''unknown'' else ''Failed'' }} โ€ข Automation integration: {{ ''Functional''\n if is_state(''automation.device_health_monitor_optimized'', ''on'') else ''Disabled''\n }}\n\n **Monthly Optimization Review:** {% if current_efficiency and current_efficiency|int\n > 85 %} โœ… **Excellent Performance** - System optimally reducing notification\n spam {% elif current_efficiency and current_efficiency|int > 70 %} โœ… **Good\n Performance** - System working well with minor optimization opportunities\n {% elif current_efficiency and current_efficiency|int > 50 %} โš ๏ธ **Fair Performance**\n - Consider reviewing device categorization {% else %} ๐Ÿšจ **Performance Issues**\n - System review recommended {% endif %}\n\n **Recommendations for {{ (now() + timedelta(days=30)).strftime(''%B %Y'')\n }}:** โ€ข Monitor tag system effectiveness โ€ข Review critical device list for\n accuracy โ€ข Assess notification timing preferences โ€ข Check for new devices\n requiring categorization โ€ข Validate mobile app channel configuration\n\n **Next Maintenance:** {{ (now() + timedelta(days=30)).strftime(''%B %d, %Y'')\n }}\n\n '\n notification_id: monthly_maintenance_report\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: ๐Ÿ”ง Monthly System Maintenance\n message: 'Tag-based notification system maintenance completed. Health: {{ system_health.title()\n if system_health else ''Unknown'' }} Efficiency: {{ current_efficiency if\n current_efficiency else ''Unknown'' }}%\n\n '\n data:\n channel: device_summaries\n priority: normal", "config": [ { "name": "device notifications standard today counter", "room": "utility", "type": "counter", "id": { "entity_id": "counter.device_notifications_standard_today", "device_id": null } }, { "name": "system monitoring enabled boolean", "room": "utility", "type": "input_boolean", "id": { "entity_id": "input_boolean.system_monitoring_enabled", "device_id": null } }, { "name": "notification system performance stats sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.notification_system_performance_stats", "device_id": null } }, { "name": "notifications sent today counter", "room": "utility", "type": "counter", "id": { "entity_id": "counter.notifications_sent_today", "device_id": null } }, { "name": "critical alerts today counter", "room": "utility", "type": "counter", "id": { "entity_id": "counter.critical_alerts_today", "device_id": null } }, { "name": "device notifications critical today counter", "room": "utility", "type": "counter", "id": { "entity_id": "counter.device_notifications_critical_today", "device_id": null } }, { "name": "device notifications suppressed today counter", "room": "utility", "type": "counter", "id": { "entity_id": "counter.device_notifications_suppressed_today", "device_id": null } }, { "name": "device health categories sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.device_health_categories", "device_id": null } }, { "name": "critical devices offline sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.critical_devices_offline", "device_id": null } }, { "name": "device category lookup sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.device_category_lookup", "device_id": null } }, { "name": "Device Health Monitor Optimized", "room": null, "type": "automation", "id": { "entity_id": "automation.device_health_monitor_optimized", "device_id": null } } ] }, { "id": "quarterly_notification_system_review", "automation": "- id: quarterly_notification_system_review\n alias: ๐Ÿ“Š Quarterly Notification System Review\n description: Comprehensive quarterly review of tag-based notification system performance\n trigger:\n - platform: event\n event_type: device_health_schedule_trigger\n event_data:\n task_type: quarterly_review\n condition:\n - condition: template\n value_template: '{{ now().month in [1, 4, 7, 10] and now().day == 1 }}'\n - condition: state\n entity_id: input_boolean.system_monitoring_enabled\n state: 'on'\n action:\n - variables:\n quarter: '{% if now().month == 1 %}Q1 {% elif now().month == 4 %}Q2 {% elif\n now().month == 7 %}Q3 {% else %}Q4{% endif %}\n\n '\n year: '{{ now().year }}'\n system_health: '{{ state_attr(''sensor.notification_system_performance_stats'',\n ''system_health'') }}\n\n '\n efficiency_score: '{{ state_attr(''sensor.notification_system_performance_stats'',\n ''efficiency_score'') }}\n\n '\n deployment_status: '{{ state_attr(''sensor.notification_system_performance_stats'',\n ''deployment_status'') }}\n\n '\n critical_devices: '{{ state_attr(''sensor.device_health_categories'', ''critical_devices'')\n | length if state_attr(''sensor.device_health_categories'', ''critical_devices'')\n else 0 }}\n\n '\n total_devices: '{{ state_attr(''sensor.device_health_categories'', ''total_monitored'')\n }}\n\n '\n - service: persistent_notification.create\n data:\n title: ๐Ÿ“Š Quarterly System Review - {{ quarter }} {{ year }}\n message: '**Tag-Based Notification System - Quarterly Review**\n\n **System Performance Summary:** โ€ข Overall health: {{ system_health.title()\n if system_health else ''Unknown'' }} โ€ข Efficiency score: {{ efficiency_score\n if efficiency_score else ''Unknown'' }}% โ€ข Deployment status: {{ deployment_status.replace(''_'',\n '' '').title() if deployment_status else ''Unknown'' }} โ€ข System uptime: {{\n ''Stable'' if is_state(''automation.device_health_monitor_optimized'', ''on'')\n else ''Issues Detected'' }}\n\n **Tag System Analytics:** โ€ข Critical devices monitored: {{ critical_devices\n }} โ€ข Total devices monitored: {{ total_devices if total_devices else ''Unknown''\n }} โ€ข Tag categorization: {{ ''Working'' if states(''sensor.device_category_lookup'')\n == ''ready'' else ''Needs Review'' }} โ€ข Template sensors: {{ ''Healthy'' if\n states(''sensor.critical_devices_offline'') != ''unknown'' else ''Failed''\n }}\n\n **Optimization Impact Analysis:** โ€ข Notification reduction: ~85-90% vs original\n system โ€ข User experience: {{ ''Significantly improved'' if efficiency_score\n and efficiency_score|int > 80 else ''Good but can improve'' }} โ€ข Watch spam\n elimination: โœ… Critical alerts only โ€ข Smart categorization: โœ… Tag-based flexibility\n\n **{{ quarter }} {{ year }} Review Checklist:** {% if system_health == ''excellent''\n %} โœ… **Excellent Quarter** - System performing optimally {% elif system_health\n == ''good'' %} โœ… **Good Quarter** - System working well with minor opportunities\n {% elif system_health == ''fair'' %} โš ๏ธ **Fair Quarter** - System functional\n but needs optimization {% else %} ๐Ÿšจ **Needs Attention** - System issues require\n investigation {% endif %}\n\n **Quarterly Action Items:** โ–ก Review device categorization accuracy โ–ก Analyze\n notification timing effectiveness โ–ก Collect user feedback on notification\n quality โ–ก Assess performance metrics trends โ–ก Update documentation as needed\n โ–ก Evaluate new feature opportunities โ–ก Review tag system effectiveness โ–ก Validate\n mobile app channel configuration\n\n **Strategic Recommendations:** {% if efficiency_score and efficiency_score|int\n > 90 %} โ€ข System is highly optimized - maintain current configuration โ€ข Consider\n advanced features like time-based categorization {% elif efficiency_score\n and efficiency_score|int > 75 %} โ€ข Good performance with room for fine-tuning\n โ€ข Review device tags for accuracy {% elif efficiency_score and efficiency_score|int\n > 60 %} โ€ข System working but needs optimization โ€ข Consider tag system refinements\n {% else %} โ€ข Performance issues - comprehensive review needed โ€ข Check for\n configuration problems or conflicts {% endif %}\n\n **Next Quarter Focus Areas:** โ€ข Tag system optimization based on usage patterns\n โ€ข Mobile app channel effectiveness review โ€ข User experience enhancement opportunities\n โ€ข Integration with other Home Assistant systems\n\n **Quarterly Review Meeting:** Schedule with system administrator **Next Review:**\n {{ (now() + timedelta(days=90)).strftime(''%B %Y'') }} ({{ ''Q1'' if now().month\n <= 3 else ''Q2'' if now().month <= 6 else ''Q3'' if now().month <= 9 else\n ''Q4'' }} {{ now().year if now().month <= 9 else now().year + 1 }})\n\n '\n notification_id: quarterly_system_review\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: ๐Ÿ“Š Quarterly System Review\n message: '{{ quarter }} {{ year }} notification system review ready. Health:\n {{ system_health.title() if system_health else ''Unknown'' }} Schedule review\n meeting with administrator.\n\n '\n data:\n channel: device_summaries\n priority: normal\n actions:\n - action: schedule_review\n title: Schedule Review\n - action: dismiss\n title: Later", "config": [ { "name": "system monitoring enabled boolean", "room": "utility", "type": "input_boolean", "id": { "entity_id": "input_boolean.system_monitoring_enabled", "device_id": null } }, { "name": "notification system performance stats sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.notification_system_performance_stats", "device_id": null } }, { "name": "device health categories sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.device_health_categories", "device_id": null } }, { "name": "critical devices offline sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.critical_devices_offline", "device_id": null } }, { "name": "device category lookup sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.device_category_lookup", "device_id": null } }, { "name": "Device Health Monitor Optimized", "room": null, "type": "automation", "id": { "entity_id": "automation.device_health_monitor_optimized", "device_id": null } } ] }, { "id": "dryer_started_detection_smartthings_v2", "automation": "- id: dryer_started_detection_smartthings_v2\n alias: Dryer - Detect Cycle Start (SmartThings)\n description: Detect when dryer starts a cycle using SmartThings sensors\n trigger:\n - platform: state\n entity_id: sensor.dryer_status_2\n to: Running\n from:\n - Idle\n - Standby\n - Starting\n condition:\n - condition: state\n entity_id: input_boolean.dryer_running\n state: 'off'\n - condition: template\n value_template: '{{ states(''sensor.dryer_machine_state'') not in [''unknown'',\n ''unavailable''] }}'\n action:\n - service: input_boolean.turn_on\n entity_id: input_boolean.dryer_running\n - service: input_datetime.set_datetime\n entity_id: input_datetime.dryer_last_started\n data:\n datetime: '{{ now() }}'\n - service: input_text.set_value\n entity_id: input_text.dryer_state_reason\n data:\n value: 'Cycle started at {{ now().strftime(''%H:%M'') }} (SmartThings: {{ states(''sensor.dryer_machine_state'')\n }}/{{ states(''sensor.dryer_job_state'') }})'\n - service: input_boolean.turn_off\n entity_id: input_boolean.dryer_reminders_stopped", "config": [ { "name": "dryer status 2", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.dryer_status_2", "device_id": null } }, { "name": "dryer reminders stopped boolean", "room": "laundry", "type": "input_boolean", "id": { "entity_id": "input_boolean.dryer_reminders_stopped", "device_id": null } }, { "name": "dryer machine state", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.dryer_machine_state", "device_id": null } }, { "name": "dryer running boolean", "room": "laundry", "type": "input_boolean", "id": { "entity_id": "input_boolean.dryer_running", "device_id": null } }, { "name": "dryer last started datetime", "room": "laundry", "type": "input_datetime", "id": { "entity_id": "input_datetime.dryer_last_started", "device_id": null } }, { "name": "dryer state reason text", "room": "laundry", "type": "input_text", "id": { "entity_id": "input_text.dryer_state_reason", "device_id": null } }, { "name": "dryer job state sensor", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.dryer_job_state", "device_id": null } }, { "name": "dryer status sensor", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.dryer_status", "device_id": null } } ] }, { "id": "dryer_finished_detection_smartthings_v2", "automation": "- id: dryer_finished_detection_smartthings_v2\n alias: Dryer - Detect Cycle Complete (SmartThings)\n description: Detect when dryer finishes a cycle using SmartThings sensors\n trigger:\n - platform: state\n entity_id: sensor.dryer_status_2\n to: Complete\n for:\n minutes: '{{ states(''input_number.dryer_completion_delay_minutes'') | int(2)\n }}'\n condition:\n - condition: state\n entity_id: input_boolean.dryer_running\n state: 'on'\n - condition: template\n value_template: '{{ states(''sensor.dryer_machine_state'') not in [''unknown'',\n ''unavailable''] }}'\n action:\n - service: input_boolean.turn_off\n entity_id: input_boolean.dryer_running\n - service: input_datetime.set_datetime\n entity_id: input_datetime.dryer_last_finished\n data:\n datetime: '{{ now() }}'\n - service: input_text.set_value\n entity_id: input_text.dryer_state_reason\n data:\n value: 'Cycle completed at {{ now().strftime(''%H:%M'') }} (SmartThings: {{\n states(''sensor.dryer_machine_state'') }}/{{ states(''sensor.dryer_job_state'')\n }})'\n - service: script.dryer_notify_complete", "config": [ { "name": "dryer status 2", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.dryer_status_2", "device_id": null } }, { "name": "dryer machine state", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.dryer_machine_state", "device_id": null } }, { "name": "dryer running boolean", "room": "laundry", "type": "input_boolean", "id": { "entity_id": "input_boolean.dryer_running", "device_id": null } }, { "name": "dryer state reason text", "room": "laundry", "type": "input_text", "id": { "entity_id": "input_text.dryer_state_reason", "device_id": null } }, { "name": "dryer job state sensor", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.dryer_job_state", "device_id": null } }, { "name": "dryer completion delay minutes number", "room": "laundry", "type": "input_number", "id": { "entity_id": "input_number.dryer_completion_delay_minutes", "device_id": null } }, { "name": "dryer last finished datetime", "room": "laundry", "type": "input_datetime", "id": { "entity_id": "input_datetime.dryer_last_finished", "device_id": null } }, { "name": "dryer notify complete script", "room": "laundry", "type": "script", "id": { "entity_id": "script.dryer_notify_complete", "device_id": null } }, { "name": "dryer status sensor", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.dryer_status", "device_id": null } } ] }, { "id": "dryer_reminder_automation_smartthings_v2", "automation": "- id: dryer_reminder_automation_smartthings_v2\n alias: Dryer - Completion Reminders (SmartThings)\n description: Send periodic reminders when cycle is complete\n trigger:\n - platform: state\n entity_id: binary_sensor.dryer_cycle_complete\n to: 'on'\n for:\n minutes: 5\n - platform: state\n entity_id: binary_sensor.dryer_cycle_complete\n to: 'on'\n for:\n minutes: 15\n - platform: state\n entity_id: binary_sensor.dryer_cycle_complete\n to: 'on'\n for:\n minutes: 30\n condition:\n - condition: state\n entity_id: input_boolean.dryer_reminders_stopped\n state: 'off'\n - condition: state\n entity_id: binary_sensor.dryer_cycle_complete\n state: 'on'\n action:\n - service: script.dryer_send_reminder", "config": [ { "name": "dryer reminders stopped boolean", "room": "laundry", "type": "input_boolean", "id": { "entity_id": "input_boolean.dryer_reminders_stopped", "device_id": null } }, { "name": "dryer cycle complete binary sensor", "room": "laundry", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.dryer_cycle_complete", "device_id": null } }, { "name": "dryer send reminder script", "room": "laundry", "type": "script", "id": { "entity_id": "script.dryer_send_reminder", "device_id": null } } ] }, { "id": "database_hourly_backup_peak", "automation": "- id: database_hourly_backup_peak\n alias: Database - Hourly Backup (Peak Hours)\n description: Create hourly backups during peak usage hours\n trigger:\n - platform: time_pattern\n minutes: '0'\n condition:\n - condition: time\n after: 07:00:00\n before: '23:00:00'\n - condition: template\n value_template: '{{ (now().hour % 4) == 0 }}'\n action:\n - service: shell_command.database_backup", "config": [ { "name": "database backup shell command", "room": "utility", "type": "shell_command", "id": { "entity_id": "shell_command.database_backup", "device_id": null } } ] }, { "id": "database_backup_retention_management", "automation": "- id: database_backup_retention_management\n alias: Database - Backup Retention Management\n description: Manage multiple backup retention schedules\n trigger:\n - platform: time\n at: 04:00:00\n action:\n - service: shell_command.database_retention", "config": [ { "name": "database retention shell command", "room": "utility", "type": "shell_command", "id": { "entity_id": "shell_command.database_retention", "device_id": null } } ] }, { "id": "error_scenario_test_orchestrator", "automation": "- id: error_scenario_test_orchestrator\n alias: 'Error Test: Main Orchestrator'\n description: Coordinates error scenario testing\n trigger:\n - platform: state\n entity_id: input_boolean.error_scenario_testing_active\n to: 'on'\n action:\n - if:\n - condition: template\n value_template: '{{ has_value(''input_text.error_test_results'') }}'\n then:\n - service: input_text.set_value\n target:\n entity_id: input_text.error_test_results\n data:\n value: Error scenario testing started at {{ now().strftime('%H:%M:%S') }}\n - service: logbook.log\n data:\n name: Error Test\n message: Starting error scenario testing suite\n - service: input_select.select_option\n target:\n entity_id: input_select.error_test_scenario\n data:\n option: Notification Failure\n - delay: 00:00:02\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.simulate_notification_failure", "config": [ { "name": "error scenario testing active boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.error_scenario_testing_active", "device_id": null } }, { "name": "error test results text", "room": "testing", "type": "input_text", "id": { "entity_id": "input_text.error_test_results", "device_id": null } }, { "name": "error test scenario select", "room": "testing", "type": "input_select", "id": { "entity_id": "input_select.error_test_scenario", "device_id": null } }, { "name": "simulate notification failure boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.simulate_notification_failure", "device_id": null } } ] }, { "id": "test_notification_failure_scenario", "automation": "- id: test_notification_failure_scenario\n alias: 'Error Test: Notification Failure Scenario'\n description: Tests system behavior when notifications fail\n trigger:\n - platform: state\n entity_id: input_boolean.simulate_notification_failure\n to: 'on'\n condition:\n - condition: state\n entity_id: input_boolean.error_scenario_testing_active\n state: 'on'\n action:\n - service: logbook.log\n data:\n name: Error Test\n message: Testing notification failure scenarios\n - if:\n - condition: template\n value_template: '{{ has_value(''input_text.error_test_results'') }}'\n then:\n - service: input_text.set_value\n target:\n entity_id: input_text.error_test_results\n data:\n value: '{{ states(''input_text.error_test_results'') }} | Mobile notification\n services: {{ states(''sensor.test_notification_availability'') }}\n\n '\n - service: logbook.log\n data:\n name: Error Test\n message: Testing notification error handling\n - if:\n - condition: template\n value_template: '{{ has_value(''input_text.error_test_results'') }}'\n then:\n - service: input_text.set_value\n target:\n entity_id: input_text.error_test_results\n data:\n value: '{{ states(''input_text.error_test_results'') }} | Notification test:\n {{ ''PASS'' if states.notify else ''FAIL - No notification services'' }}\n\n '\n - delay: 00:00:10\n - service: input_boolean.turn_off\n target:\n entity_id: input_boolean.simulate_notification_failure\n - service: logbook.log\n data:\n name: Error Test\n message: Notification failure test completed\n - service: input_select.select_option\n target:\n entity_id: input_select.error_test_scenario\n data:\n option: Device Offline\n - delay: 00:00:02\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.simulate_device_offline", "config": [ { "name": "error scenario testing active boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.error_scenario_testing_active", "device_id": null } }, { "name": "error test results text", "room": "testing", "type": "input_text", "id": { "entity_id": "input_text.error_test_results", "device_id": null } }, { "name": "error test scenario select", "room": "testing", "type": "input_select", "id": { "entity_id": "input_select.error_test_scenario", "device_id": null } }, { "name": "simulate notification failure boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.simulate_notification_failure", "device_id": null } }, { "name": "test notification availability sensor", "room": "testing", "type": "sensor", "id": { "entity_id": "sensor.test_notification_availability", "device_id": null } }, { "name": "simulate device offline boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.simulate_device_offline", "device_id": null } } ] }, { "id": "test_device_offline_scenario", "automation": "- id: test_device_offline_scenario\n alias: 'Error Test: Device Offline Scenario'\n description: Tests system behavior when devices are offline\n trigger:\n - platform: state\n entity_id: input_boolean.simulate_device_offline\n to: 'on'\n condition:\n - condition: state\n entity_id: input_boolean.error_scenario_testing_active\n state: 'on'\n action:\n - service: logbook.log\n data:\n name: Error Test\n message: Testing device offline scenarios\n - if:\n - condition: template\n value_template: '{{ has_value(''input_text.error_test_results'') }}'\n then:\n - service: input_text.set_value\n target:\n entity_id: input_text.error_test_results\n data:\n value: '{{ states(''input_text.error_test_results'') }} | Device connectivity:\n {{ states(''sensor.test_device_connectivity_status'') }}\n\n '\n - if:\n - condition: template\n value_template: '{{ has_value(''input_text.error_test_results'') }}'\n then:\n - service: input_text.set_value\n target:\n entity_id: input_text.error_test_results\n data:\n value: '{{ states(''input_text.error_test_results'') }} | Unavailable entities:\n {{ states | rejectattr(''entity_id'', ''match'', ''sensor.test_device_connectivity_status|sensor.error_test_status|input_text.error_test_results'')\n | selectattr(''state'', ''eq'', ''unavailable'') | list | length }}\n\n '\n - service: logbook.log\n data:\n name: Error Test\n message: Testing automation resilience to device failures\n - delay: 00:00:10\n - service: input_boolean.turn_off\n target:\n entity_id: input_boolean.simulate_device_offline\n - service: logbook.log\n data:\n name: Error Test\n message: Device offline test completed\n - service: input_select.select_option\n target:\n entity_id: input_select.error_test_scenario\n data:\n option: Sensor Unavailable\n - delay: 00:00:02\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.simulate_sensor_unavailable", "config": [ { "name": "error scenario testing active boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.error_scenario_testing_active", "device_id": null } }, { "name": "error test results text", "room": "testing", "type": "input_text", "id": { "entity_id": "input_text.error_test_results", "device_id": null } }, { "name": "error test scenario select", "room": "testing", "type": "input_select", "id": { "entity_id": "input_select.error_test_scenario", "device_id": null } }, { "name": "simulate device offline boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.simulate_device_offline", "device_id": null } }, { "name": "test device connectivity status sensor", "room": "testing", "type": "sensor", "id": { "entity_id": "sensor.test_device_connectivity_status", "device_id": null } }, { "name": "simulate sensor unavailable boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.simulate_sensor_unavailable", "device_id": null } } ] }, { "id": "test_sensor_unavailable_scenario", "automation": "- id: test_sensor_unavailable_scenario\n alias: 'Error Test: Sensor Unavailable Scenario'\n description: Tests system behavior when sensors are unavailable\n trigger:\n - platform: state\n entity_id: input_boolean.simulate_sensor_unavailable\n to: 'on'\n condition:\n - condition: state\n entity_id: input_boolean.error_scenario_testing_active\n state: 'on'\n action:\n - service: logbook.log\n data:\n name: Error Test\n message: Testing sensor unavailable scenarios\n - if:\n - condition: template\n value_template: '{{ has_value(''input_text.error_test_results'') }}'\n then:\n - service: input_text.set_value\n target:\n entity_id: input_text.error_test_results\n data:\n value: '{{ states(''input_text.error_test_results'') }} | Sensor availability\n test: {{ ''PASS'' if states.sensor else ''FAIL - No sensors found'' }}\n\n '\n - service: logbook.log\n data:\n name: Error Test\n message: Testing template sensor error resilience\n - if:\n - condition: template\n value_template: '{{ has_value(''input_text.error_test_results'') }}'\n then:\n - service: input_text.set_value\n target:\n entity_id: input_text.error_test_results\n data:\n value: '{{ states(''input_text.error_test_results'') }} | Problem sensors:\n {{ states.sensor | selectattr(''state'', ''in'', [''unknown'', ''unavailable''])\n | list | length }}\n\n '\n - delay: 00:00:10\n - service: input_boolean.turn_off\n target:\n entity_id: input_boolean.simulate_sensor_unavailable\n - service: logbook.log\n data:\n name: Error Test\n message: Sensor unavailable test completed\n - service: input_select.select_option\n target:\n entity_id: input_select.error_test_scenario\n data:\n option: None\n - if:\n - condition: template\n value_template: '{{ has_value(''input_text.error_test_results'') }}'\n then:\n - service: input_text.set_value\n target:\n entity_id: input_text.error_test_results\n data:\n value: '{{ states(''input_text.error_test_results'') }} | Error scenario testing\n completed at {{ now().strftime(''%H:%M:%S'') }}\n\n '\n - service: input_boolean.turn_off\n target:\n entity_id: input_boolean.error_scenario_testing_active\n - service: logbook.log\n data:\n name: Error Test\n message: All error scenario tests completed", "config": [ { "name": "error scenario testing active boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.error_scenario_testing_active", "device_id": null } }, { "name": "error test results text", "room": "testing", "type": "input_text", "id": { "entity_id": "input_text.error_test_results", "device_id": null } }, { "name": "error test scenario select", "room": "testing", "type": "input_select", "id": { "entity_id": "input_select.error_test_scenario", "device_id": null } }, { "name": "simulate sensor unavailable boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.simulate_sensor_unavailable", "device_id": null } } ] }, { "id": "continuous_error_monitoring", "automation": "- id: continuous_error_monitoring\n alias: 'Error Test: Continuous Error Monitoring'\n description: Monitors for error conditions during normal operation\n trigger:\n - platform: time_pattern\n minutes: /30\n condition:\n - condition: state\n entity_id: input_boolean.error_scenario_testing_active\n state: 'off'\n action:\n - service: shell_command.check_error_log_health\n continue_on_error: true\n - service: logbook.log\n data:\n name: Error Monitor\n message: '{% set all_entities = states | rejectattr(''entity_id'', ''match'',\n ''sensor.test_device_connectivity_status|sensor.error_test_status'') | list\n %} Entity health check: {{ all_entities | selectattr(''state'', ''eq'', ''unavailable'')\n | list | length }} unavailable, {{ all_entities | selectattr(''state'', ''eq'',\n ''unknown'') | list | length }} unknown entities\n\n '", "config": [ { "name": "error scenario testing active boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.error_scenario_testing_active", "device_id": null } }, { "name": "test device connectivity status sensor", "room": "testing", "type": "sensor", "id": { "entity_id": "sensor.test_device_connectivity_status", "device_id": null } }, { "name": "check error log health shell command", "room": "testing", "type": "shell_command", "id": { "entity_id": "shell_command.check_error_log_health", "device_id": null } } ] }, { "id": "test_error_recovery_validation", "automation": "- id: test_error_recovery_validation\n alias: 'Error Test: Recovery Validation'\n description: Validates that systems recover properly from error states\n trigger:\n - platform: state\n entity_id: group.all_devices\n from: unavailable\n to: 'on'\n - platform: state\n entity_id: group.all_devices\n from: unknown\n to: 'on'\n action:\n - service: logbook.log\n data:\n name: Error Recovery\n message: 'Device recovery detected: {{ trigger.entity_id }}'\n - delay: 00:00:30\n - service: logbook.log\n data:\n name: Error Recovery\n message: Recovery validation completed for {{ trigger.entity_id }}", "config": [ { "name": "all devices group", "room": "home", "type": "group", "id": { "entity_id": "group.all_devices", "device_id": null } } ] }, { "id": "front_door_auto_relock", "automation": "- id: front_door_auto_relock\n alias: Front Door - Auto Relock (30s)\n description: Automatically relocks the front door after 30 seconds if the door is\n closed and still unlocked\n mode: restart\n trigger:\n - platform: state\n entity_id: lock.front_door\n from: locked\n to: unlocked\n condition:\n - condition: state\n entity_id: input_boolean.front_door_auto_relock_enabled\n state: 'on'\n action:\n - delay:\n seconds: '{{ states(''input_number.front_door_auto_relock_delay'') | int }}'\n - condition: state\n entity_id: lock.front_door\n state: unlocked\n - condition: state\n entity_id: binary_sensor.front_door_sensor_window_door_is_open\n state: 'off'\n - service: lock.lock\n target:\n entity_id: lock.front_door\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: ๐Ÿ”’ Door Auto-Locked\n message: Front door automatically relocked after {{ states('input_number.front_door_auto_relock_delay')\n | int }} seconds\n data:\n tag: door_auto_lock\n priority: high\n ttl: 0\n channel: Security\n notification_icon: mdi:lock\n - service: system_log.write\n data:\n level: info\n message: Front door auto-relocked after {{ states('input_number.front_door_auto_relock_delay')\n | int }} seconds (door was closed and still unlocked)", "config": [ { "name": "lock front door", "room": "front", "type": "lock", "id": { "entity_id": "lock.front_door", "device_id": null } }, { "name": "front door auto relock enabled boolean", "room": "front", "type": "input_boolean", "id": { "entity_id": "input_boolean.front_door_auto_relock_enabled", "device_id": null } }, { "name": "front door auto relock delay number", "room": "front", "type": "input_number", "id": { "entity_id": "input_number.front_door_auto_relock_delay", "device_id": null } }, { "name": "front door sensor window door is open binary sensor", "room": "front", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.front_door_sensor_window_door_is_open", "device_id": null } } ] }, { "id": "front_door_unlocked_alarm", "automation": "- id: front_door_unlocked_alarm\n alias: Front Door - Unlocked Too Long Alarm (5 min)\n description: Triggers alarm if front door remains unlocked for more than 5 minutes\n mode: single\n trigger:\n - platform: state\n entity_id: lock.front_door\n from: locked\n to: unlocked\n for:\n minutes: '{{ states(''input_number.front_door_alarm_delay'') | int }}'\n condition:\n - condition: state\n entity_id: input_boolean.front_door_alarm_enabled\n state: 'on'\n action:\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: โš ๏ธ SECURITY ALERT\n message: Front door has been UNLOCKED for over 5 minutes!\n data:\n tag: door_security_alert\n priority: high\n ttl: 0\n channel: Security\n notification_icon: mdi:alert\n color: red\n actions:\n - action: LOCK_DOOR\n title: Lock Now\n - action: DISMISS\n title: Dismiss\n - service: notify.mobile_app_iphone\n data:\n title: โš ๏ธ SECURITY ALERT\n message: Front door has been UNLOCKED for over 5 minutes!\n data:\n push:\n sound:\n name: default\n critical: 1\n volume: 1.0\n continue_on_error: true\n - service: notify.alexa_media\n data:\n target:\n - media_player.kitchen_echo_show\n - media_player.living_room_echo\n - media_player.master_bedroom_echo\n message: Attention! The front door has been unlocked for more than 5 minutes.\n Please check the door.\n data:\n type: announce\n method: all\n continue_on_error: true\n - service: persistent_notification.create\n data:\n title: ๐Ÿšจ Security Alert\n message: 'The front door has been unlocked for more than 5 minutes.\n\n\n Time unlocked: {{ relative_time(states.lock.front_door.last_changed) }}\n\n Door status: {{ states(''binary_sensor.front_door_sensor_window_door_is_open'')\n }}\n\n\n [Lock Door](/lovelace/security)\n\n '\n notification_id: door_unlocked_alert\n - service: system_log.write\n data:\n level: warning\n message: 'SECURITY ALERT: Front door has been unlocked for over 5 minutes'\n - repeat:\n while:\n - condition: state\n entity_id: lock.front_door\n state: unlocked\n sequence:\n - delay:\n minutes: 2\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: โš ๏ธ DOOR STILL UNLOCKED\n message: Front door remains unlocked! {{ relative_time(states.lock.front_door.last_changed)\n }}\n data:\n tag: door_security_alert_repeat\n priority: high\n ttl: 0\n channel: Security\n notification_icon: mdi:alert\n color: red\n - service: notify.alexa_media\n data:\n target:\n - media_player.kitchen_echo_show\n message: Warning! The front door is still unlocked.\n data:\n type: announce\n continue_on_error: true", "config": [ { "name": "lock front door", "room": "front", "type": "lock", "id": { "entity_id": "lock.front_door", "device_id": null } }, { "name": "front door sensor window door is open binary sensor", "room": "front", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.front_door_sensor_window_door_is_open", "device_id": null } }, { "name": "front door alarm enabled boolean", "room": "front", "type": "input_boolean", "id": { "entity_id": "input_boolean.front_door_alarm_enabled", "device_id": null } }, { "name": "front door alarm delay number", "room": "front", "type": "input_number", "id": { "entity_id": "input_number.front_door_alarm_delay", "device_id": null } }, { "name": "kitchen echo show media player", "room": "kitchen", "type": "media_player", "id": { "entity_id": "media_player.kitchen_echo_show", "device_id": null } }, { "name": "living room echo media player", "room": "living_room", "type": "media_player", "id": { "entity_id": "media_player.living_room_echo", "device_id": null } }, { "name": "master bedroom echo media player", "room": "master_bedroom", "type": "media_player", "id": { "entity_id": "media_player.master_bedroom_echo", "device_id": null } } ] }, { "id": "front_door_mobile_action_handler", "automation": "- id: front_door_mobile_action_handler\n alias: Front Door - Mobile Action Handler\n description: Handles mobile app action responses for door security\n mode: single\n trigger:\n - platform: event\n event_type: mobile_app_notification_action\n event_data:\n action: LOCK_DOOR\n condition: []\n action:\n - service: lock.lock\n target:\n entity_id: lock.front_door\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: โœ… Door Locked\n message: Front door has been locked remotely\n data:\n tag: door_locked_confirm\n priority: high\n ttl: 0\n channel: Security\n notification_icon: mdi:lock-check", "config": [ { "name": "lock front door", "room": "front", "type": "lock", "id": { "entity_id": "lock.front_door", "device_id": null } } ] }, { "id": "front_door_update_unlock_counter", "automation": "- id: front_door_update_unlock_counter\n alias: Front Door - Update Unlock Counter\n description: Increment unlock counter when door is unlocked\n mode: single\n trigger:\n - platform: state\n entity_id: lock.front_door\n from: locked\n to: unlocked\n condition:\n - condition: state\n entity_id: input_boolean.front_door_activity_logging\n state: 'on'\n action:\n - service: input_number.increment\n target:\n entity_id: input_number.front_door_unlock_count_today\n - service: input_datetime.set_datetime\n target:\n entity_id: input_datetime.front_door_last_unlocked\n data:\n datetime: '{{ now() }}'", "config": [ { "name": "lock front door", "room": "front", "type": "lock", "id": { "entity_id": "lock.front_door", "device_id": null } }, { "name": "front door activity logging boolean", "room": "front", "type": "input_boolean", "id": { "entity_id": "input_boolean.front_door_activity_logging", "device_id": null } }, { "name": "front door unlock count today number", "room": "front", "type": "input_number", "id": { "entity_id": "input_number.front_door_unlock_count_today", "device_id": null } }, { "name": "front door last unlocked datetime", "room": "front", "type": "input_datetime", "id": { "entity_id": "input_datetime.front_door_last_unlocked", "device_id": null } } ] }, { "id": "front_door_update_autolock_counter", "automation": "- id: front_door_update_autolock_counter\n alias: Front Door - Update Auto-Lock Counter\n description: Increment auto-lock counter when door is auto-locked\n mode: single\n trigger:\n - platform: state\n entity_id: lock.front_door\n from: unlocked\n to: locked\n for:\n seconds: 1\n condition:\n - condition: state\n entity_id: input_boolean.front_door_activity_logging\n state: 'on'\n - condition: state\n entity_id: input_boolean.front_door_auto_relock_enabled\n state: 'on'\n - condition: template\n value_template: \"{% set last_unlocked = states('input_datetime.front_door_last_unlocked')\\\n \\ %} {% if last_unlocked not in ['unknown', 'unavailable'] %}\\n {% set time_since_unlock\\\n \\ = (now() - (as_datetime(last_unlocked) | as_local)).total_seconds() %}\\n \\\n \\ {{ time_since_unlock <= 120 }}\\n{% else %}\\n false\\n{% endif %}\\n\"\n action:\n - service: input_number.increment\n target:\n entity_id: input_number.front_door_auto_lock_count_today\n - service: input_datetime.set_datetime\n target:\n entity_id: input_datetime.front_door_last_locked\n data:\n datetime: '{{ now() }}'", "config": [ { "name": "lock front door", "room": "front", "type": "lock", "id": { "entity_id": "lock.front_door", "device_id": null } }, { "name": "front door auto relock enabled boolean", "room": "front", "type": "input_boolean", "id": { "entity_id": "input_boolean.front_door_auto_relock_enabled", "device_id": null } }, { "name": "front door activity logging boolean", "room": "front", "type": "input_boolean", "id": { "entity_id": "input_boolean.front_door_activity_logging", "device_id": null } }, { "name": "front door last unlocked datetime", "room": "front", "type": "input_datetime", "id": { "entity_id": "input_datetime.front_door_last_unlocked", "device_id": null } }, { "name": "front door auto lock count today number", "room": "front", "type": "input_number", "id": { "entity_id": "input_number.front_door_auto_lock_count_today", "device_id": null } }, { "name": "front door last locked datetime", "room": "front", "type": "input_datetime", "id": { "entity_id": "input_datetime.front_door_last_locked", "device_id": null } } ] }, { "id": "front_door_update_alarm_counter", "automation": "- id: front_door_update_alarm_counter\n alias: Front Door - Update Alarm Counter\n description: Increment alarm counter when door remains unlocked for alarm delay\n period\n mode: single\n trigger:\n - platform: state\n entity_id: lock.front_door\n from: locked\n to: unlocked\n for:\n minutes: '{{ states(''input_number.front_door_alarm_delay'') | int }}'\n condition:\n - condition: state\n entity_id: input_boolean.front_door_activity_logging\n state: 'on'\n - condition: state\n entity_id: input_boolean.front_door_alarm_enabled\n state: 'on'\n action:\n - service: input_number.increment\n target:\n entity_id: input_number.front_door_alarm_count_today", "config": [ { "name": "lock front door", "room": "front", "type": "lock", "id": { "entity_id": "lock.front_door", "device_id": null } }, { "name": "front door alarm enabled boolean", "room": "front", "type": "input_boolean", "id": { "entity_id": "input_boolean.front_door_alarm_enabled", "device_id": null } }, { "name": "front door alarm delay number", "room": "front", "type": "input_number", "id": { "entity_id": "input_number.front_door_alarm_delay", "device_id": null } }, { "name": "front door activity logging boolean", "room": "front", "type": "input_boolean", "id": { "entity_id": "input_boolean.front_door_activity_logging", "device_id": null } }, { "name": "front door alarm count today number", "room": "front", "type": "input_number", "id": { "entity_id": "input_number.front_door_alarm_count_today", "device_id": null } } ] }, { "id": "front_door_reset_daily_counters", "automation": "- id: front_door_reset_daily_counters\n alias: Front Door - Reset Daily Counters\n description: Reset all daily counters at midnight\n mode: single\n trigger:\n - platform: time\n at: 00:00:00\n action:\n - service: input_number.set_value\n target:\n entity_id:\n - input_number.front_door_unlock_count_today\n - input_number.front_door_auto_lock_count_today\n - input_number.front_door_alarm_count_today\n data:\n value: 0", "config": [ { "name": "front door unlock count today number", "room": "front", "type": "input_number", "id": { "entity_id": "input_number.front_door_unlock_count_today", "device_id": null } }, { "name": "front door auto lock count today number", "room": "front", "type": "input_number", "id": { "entity_id": "input_number.front_door_auto_lock_count_today", "device_id": null } }, { "name": "front door alarm count today number", "room": "front", "type": "input_number", "id": { "entity_id": "input_number.front_door_alarm_count_today", "device_id": null } } ] }, { "id": "front_door_security_mode_handler", "automation": "- id: front_door_security_mode_handler\n alias: Front Door - Security Mode Handler\n description: Update individual settings when security mode changes\n mode: single\n trigger:\n - platform: state\n entity_id: input_select.front_door_security_mode\n action:\n - choose:\n - conditions:\n - condition: state\n entity_id: input_select.front_door_security_mode\n state: Full Security\n sequence:\n - service: input_boolean.turn_on\n target:\n entity_id:\n - input_boolean.front_door_auto_relock_enabled\n - input_boolean.front_door_alarm_enabled\n - input_boolean.front_door_notifications_enabled\n - conditions:\n - condition: state\n entity_id: input_select.front_door_security_mode\n state: Auto-Lock Only\n sequence:\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.front_door_auto_relock_enabled\n - service: input_boolean.turn_off\n target:\n entity_id:\n - input_boolean.front_door_alarm_enabled\n - input_boolean.front_door_notifications_enabled\n - conditions:\n - condition: state\n entity_id: input_select.front_door_security_mode\n state: Notifications Only\n sequence:\n - service: input_boolean.turn_off\n target:\n entity_id:\n - input_boolean.front_door_auto_relock_enabled\n - input_boolean.front_door_alarm_enabled\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.front_door_notifications_enabled\n - conditions:\n - condition: state\n entity_id: input_select.front_door_security_mode\n state: Disabled\n sequence:\n - service: input_boolean.turn_off\n target:\n entity_id:\n - input_boolean.front_door_auto_relock_enabled\n - input_boolean.front_door_alarm_enabled\n - input_boolean.front_door_notifications_enabled", "config": [ { "name": "front door auto relock enabled boolean", "room": "front", "type": "input_boolean", "id": { "entity_id": "input_boolean.front_door_auto_relock_enabled", "device_id": null } }, { "name": "front door alarm enabled boolean", "room": "front", "type": "input_boolean", "id": { "entity_id": "input_boolean.front_door_alarm_enabled", "device_id": null } }, { "name": "front door notifications enabled boolean", "room": "front", "type": "input_boolean", "id": { "entity_id": "input_boolean.front_door_notifications_enabled", "device_id": null } }, { "name": "front door security mode select", "room": "front", "type": "input_select", "id": { "entity_id": "input_select.front_door_security_mode", "device_id": null } } ] }, { "id": "globe_g1_storage_full_notification", "automation": "- id: globe_g1_storage_full_notification\n alias: Globe G1 Storage Full - Alexa Notification\n description: Announces when litter box storage is full and needs emptying\n trigger:\n - platform: state\n entity_id: binary_sensor.globe_g1_storage_full\n to: 'on'\n for:\n minutes: 2\n condition:\n - condition: state\n entity_id: input_boolean.globe_g1_notifications_enabled\n state: 'on'\n - condition: state\n entity_id: binary_sensor.globe_g1_notification_allowed\n state: 'on'\n - condition: not\n conditions:\n - condition: state\n entity_id: binary_sensor.night_mode_active\n state: 'on'\n action:\n - service: notify.alexa_media\n data:\n message: 'Attention! The Globe G1 litter box storage is full and needs to be\n emptied. Please empty the waste drawer as soon as possible to prevent odors\n and maintain proper operation.\n\n '\n target:\n - media_player.everywhere\n data:\n type: announce\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: ๐Ÿšจ Globe G1 Alert\n message: Litter box storage is FULL! Please empty waste drawer.\n data:\n priority: high\n notification_icon: mdi:delete-variant\n - service: notify.mobile_app_iphone\n data:\n title: ๐Ÿšจ Globe G1 Alert - KRISTY\n message: Litter box storage is FULL! Please empty waste drawer.\n data:\n priority: high\n notification_icon: mdi:delete-variant\n include_watch: true\n actions:\n - action: globe_g1_empty\n title: Mark as Emptied\n - service: persistent_notification.create\n data:\n title: Globe G1 Storage Full\n message: The litter box storage needs to be emptied immediately.\n notification_id: globe_g1_storage_full\n - service: input_datetime.set_datetime\n target:\n entity_id: input_datetime.globe_g1_last_notification\n data:\n datetime: '{{ now() }}'\n - service: logbook.log\n data:\n name: Globe G1 Alerts\n message: Storage full notification sent", "config": [ { "name": "globe g1 storage full binary sensor", "room": "utility", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.globe_g1_storage_full", "device_id": null } }, { "name": "globe g1 notifications enabled boolean", "room": "utility", "type": "input_boolean", "id": { "entity_id": "input_boolean.globe_g1_notifications_enabled", "device_id": null } }, { "name": "globe g1 notification allowed binary sensor", "room": "utility", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.globe_g1_notification_allowed", "device_id": null } }, { "name": "night mode active binary sensor", "room": "home", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.night_mode_active", "device_id": null } }, { "name": "everywhere media player", "room": "home", "type": "media_player", "id": { "entity_id": "media_player.everywhere", "device_id": null } }, { "name": "globe g1 last notification datetime", "room": "utility", "type": "input_datetime", "id": { "entity_id": "input_datetime.globe_g1_last_notification", "device_id": null } } ] }, { "id": "globe_g1_litter_low_notification", "automation": "- id: globe_g1_litter_low_notification\n alias: Globe G1 Litter Low - Alexa Notification\n description: Announces when litter level is low and needs refilling\n trigger:\n - platform: state\n entity_id: binary_sensor.globe_g1_litter_low\n to: 'on'\n for:\n minutes: 5\n condition:\n - condition: state\n entity_id: input_boolean.globe_g1_notifications_enabled\n state: 'on'\n - condition: state\n entity_id: binary_sensor.globe_g1_notification_allowed\n state: 'on'\n - condition: not\n conditions:\n - condition: state\n entity_id: binary_sensor.night_mode_active\n state: 'on'\n action:\n - service: notify.alexa_media\n data:\n message: 'The Globe G1 litter box is running low on litter. Please refill the\n litter reservoir to ensure proper cleaning cycles.\n\n '\n target:\n - media_player.everywhere\n data:\n type: announce\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: โš ๏ธ Globe G1 Alert\n message: Litter level is LOW! Please refill litter reservoir.\n data:\n priority: normal\n notification_icon: mdi:cup-water\n - service: notify.mobile_app_iphone\n data:\n title: โš ๏ธ Globe G1 Alert - KRISTY\n message: Litter level is LOW! Please refill litter reservoir.\n data:\n priority: normal\n notification_icon: mdi:cup-water\n include_watch: true\n actions:\n - action: globe_g1_refill\n title: Mark as Refilled\n - service: input_datetime.set_datetime\n target:\n entity_id: input_datetime.globe_g1_last_notification\n data:\n datetime: '{{ now() }}'\n - service: logbook.log\n data:\n name: Globe G1 Alerts\n message: Litter low notification sent", "config": [ { "name": "globe g1 notifications enabled boolean", "room": "utility", "type": "input_boolean", "id": { "entity_id": "input_boolean.globe_g1_notifications_enabled", "device_id": null } }, { "name": "globe g1 notification allowed binary sensor", "room": "utility", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.globe_g1_notification_allowed", "device_id": null } }, { "name": "night mode active binary sensor", "room": "home", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.night_mode_active", "device_id": null } }, { "name": "everywhere media player", "room": "home", "type": "media_player", "id": { "entity_id": "media_player.everywhere", "device_id": null } }, { "name": "globe g1 last notification datetime", "room": "utility", "type": "input_datetime", "id": { "entity_id": "input_datetime.globe_g1_last_notification", "device_id": null } }, { "name": "globe g1 litter low binary sensor", "room": "utility", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.globe_g1_litter_low", "device_id": null } } ] }, { "id": "globe_g1_error_state_notification", "automation": "- id: globe_g1_error_state_notification\n alias: Globe G1 Error State - Critical Alexa Notification\n description: Immediate notification when device enters error state\n trigger:\n - platform: state\n entity_id: sensor.globe_g1_status_derived\n to: Error\n condition:\n - condition: state\n entity_id: input_boolean.globe_g1_notifications_enabled\n state: 'on'\n action:\n - service: notify.alexa_media\n data:\n message: 'Critical Alert! The Globe G1 litter box has encountered an error and\n requires immediate attention. Please check the device and refer to the troubleshooting\n guide.\n\n '\n target:\n - media_player.everywhere\n data:\n type: announce\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: ๐Ÿšจ Globe G1 CRITICAL ERROR\n message: Device in ERROR state! Check immediately.\n data:\n priority: high\n notification_icon: mdi:alert-circle\n actions:\n - action: globe_g1_dashboard\n title: View Dashboard\n - service: notify.mobile_app_iphone\n data:\n title: ๐Ÿšจ Globe G1 CRITICAL ERROR - KRISTY\n message: Device in ERROR state! Check immediately.\n data:\n priority: high\n notification_icon: mdi:alert-circle\n include_watch: true\n actions:\n - action: globe_g1_dashboard\n title: View Dashboard\n - service: persistent_notification.create\n data:\n title: Globe G1 Critical Error\n message: The litter box is in an error state and requires immediate attention.\n notification_id: globe_g1_error_state\n - service: input_datetime.set_datetime\n target:\n entity_id: input_datetime.globe_g1_last_notification\n data:\n datetime: '{{ now() }}'\n - service: logbook.log\n data:\n name: Globe G1 Alerts\n message: Critical error notification sent", "config": [ { "name": "globe g1 notifications enabled boolean", "room": "utility", "type": "input_boolean", "id": { "entity_id": "input_boolean.globe_g1_notifications_enabled", "device_id": null } }, { "name": "everywhere media player", "room": "home", "type": "media_player", "id": { "entity_id": "media_player.everywhere", "device_id": null } }, { "name": "globe g1 last notification datetime", "room": "utility", "type": "input_datetime", "id": { "entity_id": "input_datetime.globe_g1_last_notification", "device_id": null } }, { "name": "globe g1 status derived sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.globe_g1_status_derived", "device_id": null } } ] }, { "id": "globe_g1_track_cat_visits", "automation": "- id: globe_g1_track_cat_visits\n alias: Globe G1 Track Cat Visits\n description: Increment visit counter when cat is detected\n trigger:\n - platform: state\n entity_id: sensor.globe_g1_status_derived\n to: Cat Inside\n action:\n - service: input_number.increment\n target:\n entity_id: input_number.globe_g1_visits_today\n - service: logbook.log\n data:\n name: Globe G1 Usage\n message: Cat visit detected - daily counter incremented", "config": [ { "name": "globe g1 status derived sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.globe_g1_status_derived", "device_id": null } }, { "name": "globe g1 visits today number", "room": "utility", "type": "input_number", "id": { "entity_id": "input_number.globe_g1_visits_today", "device_id": null } } ] }, { "id": "globe_g1_track_cleaning_cycles", "automation": "- id: globe_g1_track_cleaning_cycles\n alias: Globe G1 Track Cleaning Cycles\n description: Increment cycle counter when cleaning starts\n trigger:\n - platform: state\n entity_id: sensor.globe_g1_status_derived\n to: Processing Waste\n action:\n - service: input_number.increment\n target:\n entity_id: input_number.globe_g1_cycles_today\n - service: logbook.log\n data:\n name: Globe G1 Usage\n message: Cleaning cycle started - daily counter incremented", "config": [ { "name": "globe g1 status derived sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.globe_g1_status_derived", "device_id": null } }, { "name": "globe g1 cycles today number", "room": "utility", "type": "input_number", "id": { "entity_id": "input_number.globe_g1_cycles_today", "device_id": null } } ] }, { "id": "globe_g1_cleaning_cycle_complete", "automation": "- id: globe_g1_cleaning_cycle_complete\n alias: Globe G1 Cleaning Cycle Complete\n description: Log when cleaning cycle completes successfully\n trigger:\n - platform: state\n entity_id: sensor.globe_g1_status_derived\n from: Processing Waste\n to: Standby\n action:\n - service: logbook.log\n data:\n name: Globe G1 Operation\n message: Cleaning cycle completed successfully", "config": [ { "name": "globe g1 status derived sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.globe_g1_status_derived", "device_id": null } } ] }, { "id": "globe_g1_handle_empty_storage", "automation": "- id: globe_g1_handle_empty_storage\n alias: Globe G1 Handle Storage Emptied\n description: Process storage emptied button press\n trigger:\n - platform: state\n entity_id: button.globe_g1_empty_storage\n attribute: last_triggered\n action:\n - service: script.globe_g1_mark_storage_emptied\n - service: persistent_notification.dismiss\n data:\n notification_id: globe_g1_storage_full", "config": [ { "name": "globe g1 empty storage button", "room": "utility", "type": "button", "id": { "entity_id": "button.globe_g1_empty_storage", "device_id": null } }, { "name": "globe g1 mark storage emptied script", "room": "utility", "type": "script", "id": { "entity_id": "script.globe_g1_mark_storage_emptied", "device_id": null } } ] }, { "id": "globe_g1_handle_refill_litter", "automation": "- id: globe_g1_handle_refill_litter\n alias: Globe G1 Handle Litter Refilled\n description: Process litter refilled button press\n trigger:\n - platform: state\n entity_id: button.globe_g1_refill_litter\n attribute: last_triggered\n action:\n - service: script.globe_g1_mark_litter_refilled", "config": [ { "name": "globe g1 refill litter button", "room": "utility", "type": "button", "id": { "entity_id": "button.globe_g1_refill_litter", "device_id": null } }, { "name": "globe g1 mark litter refilled script", "room": "utility", "type": "script", "id": { "entity_id": "script.globe_g1_mark_litter_refilled", "device_id": null } } ] }, { "id": "globe_g1_daily_reset", "automation": "- id: globe_g1_daily_reset\n alias: Globe G1 Daily Counter Reset\n description: Reset daily usage counters at specified time\n trigger:\n - platform: template\n value_template: '{{ now().strftime(''%H:%M:%S'') == states(''input_datetime.globe_g1_daily_reset'')\n }}\n\n '\n action:\n - service: script.globe_g1_daily_reset", "config": [ { "name": "globe g1 daily reset datetime", "room": "utility", "type": "input_datetime", "id": { "entity_id": "input_datetime.globe_g1_daily_reset", "device_id": null } }, { "name": "globe g1 daily reset script", "room": "utility", "type": "script", "id": { "entity_id": "script.globe_g1_daily_reset", "device_id": null } } ] }, { "id": "globe_g1_mobile_action_empty", "automation": "- id: globe_g1_mobile_action_empty\n alias: Globe G1 Mobile Action - Mark Emptied\n description: Handle mobile app notification action to mark storage as emptied\n trigger:\n - platform: event\n event_type: mobile_app_notification_action\n event_data:\n action: globe_g1_empty\n action:\n - service: script.globe_g1_mark_storage_emptied\n - service: notify.mobile_app_iphone\n data:\n title: โœ… Globe G1 Updated\n message: Storage marked as emptied. Thank you!\n data:\n tag: globe_g1_confirm", "config": [ { "name": "globe g1 mark storage emptied script", "room": "utility", "type": "script", "id": { "entity_id": "script.globe_g1_mark_storage_emptied", "device_id": null } } ] }, { "id": "globe_g1_mobile_action_refill", "automation": "- id: globe_g1_mobile_action_refill\n alias: Globe G1 Mobile Action - Mark Refilled\n description: Handle mobile app notification action to mark litter as refilled\n trigger:\n - platform: event\n event_type: mobile_app_notification_action\n event_data:\n action: globe_g1_refill\n action:\n - service: script.globe_g1_mark_litter_refilled\n - service: notify.mobile_app_iphone\n data:\n title: โœ… Globe G1 Updated\n message: Litter marked as refilled. Thank you!\n data:\n tag: globe_g1_confirm", "config": [ { "name": "globe g1 mark litter refilled script", "room": "utility", "type": "script", "id": { "entity_id": "script.globe_g1_mark_litter_refilled", "device_id": null } } ] }, { "id": "globe_g1_connection_lost", "automation": "- id: globe_g1_connection_lost\n alias: Globe G1 Connection Lost\n description: Alert when device goes offline for extended period\n trigger:\n - platform: state\n entity_id: sensor.globe_g1_status_derived\n to: unavailable\n for:\n minutes: 30\n condition:\n - condition: state\n entity_id: input_boolean.globe_g1_notifications_enabled\n state: 'on'\n action:\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: ๐Ÿ“ถ Globe G1 Offline\n message: Litter box has been offline for 30+ minutes. Check WiFi connection.\n data:\n priority: normal\n notification_icon: mdi:wifi-off\n - service: notify.mobile_app_iphone\n data:\n title: ๐Ÿ“ถ Globe G1 Offline - KRISTY\n message: Litter box has been offline for 30+ minutes. Check WiFi connection.\n data:\n priority: normal\n notification_icon: mdi:wifi-off\n include_watch: false\n - service: logbook.log\n data:\n name: Globe G1 Connection\n message: Device offline for 30+ minutes - notification sent", "config": [ { "name": "globe g1 notifications enabled boolean", "room": "utility", "type": "input_boolean", "id": { "entity_id": "input_boolean.globe_g1_notifications_enabled", "device_id": null } }, { "name": "globe g1 status derived sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.globe_g1_status_derived", "device_id": null } } ] }, { "id": "globe_g1_connection_restored", "automation": "- id: globe_g1_connection_restored\n alias: Globe G1 Connection Restored\n description: Confirm when device comes back online\n trigger:\n - platform: state\n entity_id: sensor.globe_g1_status_derived\n from: unavailable\n condition:\n - condition: template\n value_template: '{{ trigger.to_state and trigger.to_state.state is not none and\n trigger.to_state.state != ''unavailable'' }}'\n action:\n - service: logbook.log\n data:\n name: Globe G1 Connection\n message: 'Device connection restored - status: {{ trigger.to_state.state if\n trigger.to_state and trigger.to_state.state is not none else ''unknown'' }}'", "config": [ { "name": "globe g1 status derived sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.globe_g1_status_derived", "device_id": null } } ] }, { "id": "globe_g1_maintenance_reminder", "automation": "- id: globe_g1_maintenance_reminder\n alias: Globe G1 Maintenance Reminder\n description: Remind when scheduled maintenance is due\n trigger:\n - platform: time\n at: 09:00:00\n condition:\n - condition: template\n value_template: \"{% set next_maintenance = states('input_datetime.globe_g1_next_maintenance')\\\n \\ %} {% if next_maintenance not in ['unknown', 'unavailable'] %}\\n {{ as_timestamp(next_maintenance)\\\n \\ <= as_timestamp(now()) }}\\n{% else %}\\n false\\n{% endif %}\\n\"\n - condition: state\n entity_id: input_boolean.globe_g1_notifications_enabled\n state: 'on'\n action:\n - service: notify.alexa_media\n data:\n message: Scheduled maintenance is due for the Globe G1 litter box. Please perform\n routine cleaning and inspection.\n target:\n - media_player.everywhere\n data:\n type: announce\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: ๐Ÿ”ง Globe G1 Maintenance\n message: Scheduled maintenance is due. Perform routine cleaning.\n data:\n priority: normal\n notification_icon: mdi:wrench-clock\n - service: notify.mobile_app_iphone\n data:\n title: ๐Ÿ”ง Globe G1 Maintenance - KRISTY\n message: Scheduled maintenance is due. Perform routine cleaning.\n data:\n priority: normal\n notification_icon: mdi:wrench-clock\n include_watch: false", "config": [ { "name": "globe g1 notifications enabled boolean", "room": "utility", "type": "input_boolean", "id": { "entity_id": "input_boolean.globe_g1_notifications_enabled", "device_id": null } }, { "name": "everywhere media player", "room": "home", "type": "media_player", "id": { "entity_id": "media_player.everywhere", "device_id": null } }, { "name": "globe g1 next maintenance datetime", "room": "utility", "type": "input_datetime", "id": { "entity_id": "input_datetime.globe_g1_next_maintenance", "device_id": null } } ] }, { "id": "system_health_status_reporter", "automation": "- id: system_health_status_reporter\n alias: System Health - Status Reporter\n description: Report system health status every hour\n trigger:\n - platform: time_pattern\n minutes: 0\n condition:\n - condition: time\n after: 08:00:00\n before: '22:00:00'\n action:\n - service: logbook.log\n data:\n name: System Health Report\n message: 'System Status: {{ states(''sensor.appliance_system_status'') | default(''Unknown'')\n }} Integration Health: {{ states(''sensor.integration_health_status'') | default(''Unknown'')\n }} Health %: {{ states(''sensor.integration_health_percentage'') | default(''Unknown'')\n }}% Unavailable: {{ states(''sensor.unavailable_entities'') | default(''Unknown'')\n }} PitBoss: {{ states(''sensor.pitboss_grill_status'') | default(''Unknown'')\n }} Prusa Mini: {{ states(''sensor.prusa_mini_printer_status'') | default(''Unknown'')\n }} Bluetooth Sensors: {{ states(''sensor.bluetooth_sensor_status'') | default(''Unknown'')\n }} Alexa: {{ states(''media_player.everywhere'') | default(''Unknown'') }}\n\n '", "config": [ { "name": "everywhere media player", "room": "home", "type": "media_player", "id": { "entity_id": "media_player.everywhere", "device_id": null } }, { "name": "appliance system status sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.appliance_system_status", "device_id": null } }, { "name": "integration health status sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.integration_health_status", "device_id": null } }, { "name": "integration health percentage sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.integration_health_percentage", "device_id": null } }, { "name": "unavailable entities sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.unavailable_entities", "device_id": null } }, { "name": "pitboss grill status sensor", "room": "outdoor", "type": "sensor", "id": { "entity_id": "sensor.pitboss_grill_status", "device_id": null } }, { "name": "prusa mini printer status sensor", "room": "workshop", "type": "sensor", "id": { "entity_id": "sensor.prusa_mini_printer_status", "device_id": null } }, { "name": "bluetooth sensor status sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.bluetooth_sensor_status", "device_id": null } } ] }, { "id": "health_monitor_critical_integration_health_drop", "automation": "- id: health_monitor_critical_integration_health_drop\n alias: Health Monitor - Critical Integration Health Drop\n description: Monitor for significant drops in integration health\n trigger:\n - platform: numeric_state\n entity_id: sensor.integration_health_percentage\n below: 90\n for:\n minutes: 5\n condition:\n - condition: time\n after: 08:00:00\n before: '22:00:00'\n action:\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: โš ๏ธ Integration Health Drop\n message: 'System health dropped to {{ states(''sensor.integration_health_percentage'')\n }}%. Check {{ states(''sensor.unavailable_entities'') }} unavailable entities.\n\n '\n data:\n priority: high", "config": [ { "name": "integration health percentage sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.integration_health_percentage", "device_id": null } }, { "name": "unavailable entities sensor", "room": "utility", "type": "sensor", "id": { "entity_id": "sensor.unavailable_entities", "device_id": null } } ] }, { "id": "critical_system_failure_alert", "automation": "- id: critical_system_failure_alert\n alias: System Health - Critical Failure Alert\n description: Alert when critical systems fail\n trigger:\n - platform: state\n entity_id: binary_sensor.system_health_ok\n to: 'off'\n for:\n minutes: 5\n action:\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: ๐Ÿšจ CRITICAL SYSTEM FAILURE\n message: 'Multiple critical integrations have failed. Check Settings > Devices\n & Services immediately.\n\n '\n data:\n priority: high\n importance: max\n - service: logbook.log\n data:\n name: CRITICAL FAILURE\n message: Critical integration failures detected", "config": [ { "name": "system health ok binary sensor", "room": "utility", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.system_health_ok", "device_id": null } } ] }, { "id": "tuya_connection_monitor", "automation": "- id: tuya_connection_monitor\n alias: Monitor Tuya Connection Health\n description: Monitor Tuya device connectivity and log health status\n trigger:\n - platform: time_pattern\n minutes: /30\n condition:\n - condition: template\n value_template: '{{ states.sensor | selectattr(''entity_id'', ''search'', ''tuya'')\n | list | length > 0 }}'\n action:\n - service: system_log.write\n data:\n message: 'Tuya devices: {{ states.sensor | selectattr(''entity_id'', ''search'',\n ''tuya'') | selectattr(''state'', ''ne'', ''unavailable'') | list | length\n }} online'\n level: info", "config": [] }, { "id": "environmental_schedule_controller", "automation": "- id: environmental_schedule_controller\n alias: 'Environmental Systems: Schedule Controller'\n description: 'New grow fertigation schedule: 2 times daily (8 PM and 4 AM)'\n mode: single\n trigger:\n - platform: time\n at: 04:00:00\n id: morning_fertigation\n - platform: time\n at: '20:00:00'\n id: evening_fertigation\n action:\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.waste_pump_enabled\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.hydroponics_active_period\n - event: hydroponics_fertigation\n event_data:\n type: '{{ ''morning_fertigation'' if trigger.id == ''morning_fertigation'' else\n ''evening_fertigation'' }}'", "config": [ { "name": "waste pump enabled boolean", "room": "hydroponics", "type": "input_boolean", "id": { "entity_id": "input_boolean.waste_pump_enabled", "device_id": null } }, { "name": "hydroponics active period boolean", "room": "hydroponics", "type": "input_boolean", "id": { "entity_id": "input_boolean.hydroponics_active_period", "device_id": null } } ] }, { "id": "environmental_hydroponics_management", "automation": "- id: environmental_hydroponics_management\n alias: 'Environmental Systems: Hydroponics Management'\n description: Event-driven hydroponics management with performance optimization\n mode: queued\n max: 3\n trigger:\n - platform: event\n event_type: hydroponics_fertigation\n id: fertigation_event\n - platform: state\n entity_id: input_boolean.waste_pump_enabled\n to: 'on'\n id: waste_pump_on\n - platform: state\n entity_id: input_boolean.waste_pump_enabled\n to: 'off'\n id: waste_pump_off\n - platform: numeric_state\n entity_id: sensor.wroommicrousb_reservoir_current_volume\n below: 5\n for: 00:05:00\n id: low_water\n - platform: numeric_state\n entity_id: sensor.wroommicrousb_reservoir_water_temp\n above: 30\n for: 00:02:00\n id: high_temp\n - platform: numeric_state\n entity_id: sensor.wroommicrousb_reservoir_water_temp\n below: 5\n for: 00:02:00\n id: low_temp\n condition:\n - condition: or\n conditions:\n - condition: template\n value_template: '{{ states(''switch.tp_link_smart_plug_c82e_feed_pump'') not\n in [''unavailable'', ''unknown'', ''''] }}\n\n '\n - condition: trigger\n id:\n - low_water\n - high_temp\n - low_temp\n action:\n - variables:\n current_volume: '{{ states(''sensor.wroommicrousb_reservoir_current_volume'')\n | float(50) }}'\n current_temp: '{{ states(''sensor.wroommicrousb_reservoir_water_temp'') | float(20)\n }}'\n feed_pump_duration: '{{ states(''input_number.hydroponics_feed_pump_duration'')\n | int(15) }}'\n - choose:\n - conditions:\n - condition: trigger\n id: fertigation_event\n sequence:\n - service: script.environmental_run_fertigation_cycle\n data:\n duration: '{{ feed_pump_duration }}'\n cycle_type: '{{ trigger.event.data.type }}'\n - service: system_log.write\n data:\n message: 'New grow fertigation cycle completed: {{ trigger.event.data.type\n }}'\n level: info\n - conditions:\n - condition: trigger\n id: waste_pump_on\n sequence:\n - service: switch.turn_on\n target:\n entity_id: switch.tp_link_smart_plug_c82e_waste_pump\n - conditions:\n - condition: trigger\n id: waste_pump_off\n sequence:\n - service: switch.turn_off\n target:\n entity_id: switch.tp_link_smart_plug_c82e_waste_pump\n - service: input_boolean.turn_off\n target:\n entity_id: input_boolean.hydroponics_active_period\n - conditions:\n - condition: trigger\n id: low_water\n sequence:\n - service: script.turn_on\n target:\n entity_id: script.send_system_notification\n data:\n variables:\n system_name: Hydroponics\n status_type: warning\n status_message: 'Low water level detected: {{ current_volume }}L'\n - conditions:\n - condition: trigger\n id:\n - high_temp\n - low_temp\n sequence:\n - service: script.turn_on\n target:\n entity_id: script.send_system_notification\n data:\n variables:\n system_name: Hydroponics\n status_type: warning\n status_message: 'Temperature alert: {{ current_temp }}ยฐC'\n - conditions:\n - condition: trigger\n id: schedule_trigger\n sequence:\n - if:\n - condition: state\n entity_id: input_boolean.hydroponics_active_period\n state: 'on'\n then:\n - event: hydroponics_fertigation_trigger\n event_data:\n cycle_type: '{{ [''morning'', ''midday'', ''afternoon'', ''evening'',\n ''final''][((now().hour - 9) / 3) | int] if now().hour >= 9 else ''morning''\n }}'\n duration: '{{ feed_pump_duration }}'\n default: []", "config": [ { "name": "feed pump smart plug", "room": "hydroponics", "type": "switch", "id": { "entity_id": "switch.tp_link_smart_plug_c82e_feed_pump", "device_id": null } }, { "name": "waste pump enabled boolean", "room": "hydroponics", "type": "input_boolean", "id": { "entity_id": "input_boolean.waste_pump_enabled", "device_id": null } }, { "name": "hydroponics active period boolean", "room": "hydroponics", "type": "input_boolean", "id": { "entity_id": "input_boolean.hydroponics_active_period", "device_id": null } }, { "name": "waste pump smart plug", "room": "hydroponics", "type": "switch", "id": { "entity_id": "switch.tp_link_smart_plug_c82e_waste_pump", "device_id": null } }, { "name": "wroommicrousb reservoir current volume sensor", "room": "hydroponics", "type": "sensor", "id": { "entity_id": "sensor.wroommicrousb_reservoir_current_volume", "device_id": null } }, { "name": "wroommicrousb reservoir water temp sensor", "room": "hydroponics", "type": "sensor", "id": { "entity_id": "sensor.wroommicrousb_reservoir_water_temp", "device_id": null } }, { "name": "hydroponics feed pump duration number", "room": "hydroponics", "type": "input_number", "id": { "entity_id": "input_number.hydroponics_feed_pump_duration", "device_id": null } }, { "name": "environmental run fertigation cycle script", "room": "hydroponics", "type": "script", "id": { "entity_id": "script.environmental_run_fertigation_cycle", "device_id": null } }, { "name": "send system notification script", "room": "utility", "type": "script", "id": { "entity_id": "script.send_system_notification", "device_id": null } }, { "name": "Turn On Script", "room": null, "type": "script", "id": { "entity_id": "script.turn_on", "device_id": null } } ] }, { "id": "environmental_fertigation_handler", "automation": "- id: environmental_fertigation_handler\n alias: Environmental Fertigation Handler\n description: Handle fertigation events from event-driven scheduler\n triggers:\n - trigger: event\n event_type: hydroponics_fertigation_trigger\n id: fertigation_event\n variables:\n volume_available: '{{ states(''sensor.wroommicrousb_reservoir_current_volume'')\n not in [''unavailable'', ''unknown'', ''''] }}'\n current_volume: '{{ states(''sensor.wroommicrousb_reservoir_current_volume'')\n | float(0) }}'\n temp_available: '{{ states(''sensor.wroommicrousb_reservoir_water_temp'') not\n in [''unavailable'', ''unknown'', ''''] }}'\n current_temp: '{{ states(''sensor.wroommicrousb_reservoir_water_temp'') | float(0)\n }}'\n feed_pump_duration: '{{ states(''input_number.feed_pump_duration'') | int(20)\n }}'\n action:\n - service: system_log.write\n data:\n message: 'Hydroponics: {{ trigger.event.data.cycle_type }} fertigation starting\n - Water: {% if volume_available %}{{ current_volume }}L{% else %}sensor unavailable\n (proceeding){% endif %}, Temp: {% if temp_available %}{{ current_temp }}ยฐC{%\n else %}sensor unavailable{% endif %}\n\n '\n level: info\n - if:\n - condition: template\n value_template: '{{ volume_available and current_volume < 10 }}'\n then:\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: โš ๏ธ Hydroponics Low Water\n message: 'Warning: Reservoir water level is low ({{ current_volume }}L). Fertigation\n will continue but please refill soon.\n\n '\n data:\n channel: hydroponics_alerts\n tag: hydro_low_water\n - if:\n - condition: template\n value_template: '{{ not volume_available or not temp_available }}'\n then:\n - service: persistent_notification.create\n data:\n title: โš ๏ธ Hydroponics Sensor Warning\n message: 'Fertigation proceeding with sensor issues: {% if not volume_available\n %}โ€ข Water level sensor unavailable{% endif %} {% if not temp_available %}โ€ข\n Temperature sensor unavailable{% endif %}\n\n Check sensor connectivity.\n\n '\n notification_id: hydro_sensor_warning\n - service: script.environmental_run_fertigation_cycle\n data:\n duration: '{{ trigger.event.data.duration }}'\n cycle_type: '{{ trigger.event.data.cycle_type }}'\n - service: counter.increment\n target:\n entity_id: counter.environmental_optimized_triggers\n mode: single", "config": [ { "name": "wroommicrousb reservoir current volume sensor", "room": "hydroponics", "type": "sensor", "id": { "entity_id": "sensor.wroommicrousb_reservoir_current_volume", "device_id": null } }, { "name": "wroommicrousb reservoir water temp sensor", "room": "hydroponics", "type": "sensor", "id": { "entity_id": "sensor.wroommicrousb_reservoir_water_temp", "device_id": null } }, { "name": "environmental run fertigation cycle script", "room": "hydroponics", "type": "script", "id": { "entity_id": "script.environmental_run_fertigation_cycle", "device_id": null } }, { "name": "feed pump duration number", "room": "hydroponics", "type": "input_number", "id": { "entity_id": "input_number.feed_pump_duration", "device_id": null } }, { "name": "environmental optimized triggers counter", "room": "hydroponics", "type": "counter", "id": { "entity_id": "counter.environmental_optimized_triggers", "device_id": null } } ] }, { "id": "environmental_safety_alerts", "automation": "- id: environmental_safety_alerts\n alias: Environmental Safety Alerts\n description: Handle critical safety alerts for environmental systems\n triggers:\n - trigger: numeric_state\n entity_id: sensor.wroommicrousb_reservoir_current_volume\n below: 5.0\n for: 00:01:00\n id: low_water\n - trigger: numeric_state\n entity_id: sensor.wroommicrousb_reservoir_water_temp\n above: 30\n for: 00:02:00\n id: high_temp\n - trigger: numeric_state\n entity_id: sensor.wroommicrousb_reservoir_water_temp\n below: 5\n for: 00:02:00\n id: low_temp\n action:\n - choose:\n - conditions:\n - condition: trigger\n id: low_water\n sequence:\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n message: 'WARNING: Reservoir water level is critically low ({{ states(''sensor.wroommicrousb_reservoir_current_volume'')\n }}L)! Add water immediately.'\n title: Hydroponics Low Water Alert\n data:\n priority: high\n channel: hydroponics_alerts\n tag: hydro_low_water\n - service: switch.turn_off\n target:\n entity_id: switch.tp_link_smart_plug_c82e_feed_pump\n - service: persistent_notification.create\n data:\n title: Hydroponics System Alert\n message: Low water level detected at {{ now().strftime('%Y-%m-%d %H:%M')\n }}. Fertigation pump disabled for safety.\n notification_id: hydro_low_water\n - conditions:\n - condition: trigger\n id: high_temp\n sequence:\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n message: 'WARNING: Reservoir water temperature is too high ({{ states(''sensor.wroommicrousb_reservoir_water_temp'')\n }}ยฐC)! Check cooling system.'\n title: Hydroponics High Temp Alert\n data:\n priority: high\n channel: hydroponics_alerts\n tag: hydro_high_temp\n - conditions:\n - condition: trigger\n id: low_temp\n sequence:\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n message: 'WARNING: Reservoir water temperature is too low ({{ states(''sensor.wroommicrousb_reservoir_water_temp'')\n }}ยฐC)! Check heating system.'\n title: Hydroponics Low Temp Alert\n data:\n priority: high\n channel: hydroponics_alerts\n tag: hydro_low_temp\n default: []\n mode: single", "config": [ { "name": "feed pump smart plug", "room": "hydroponics", "type": "switch", "id": { "entity_id": "switch.tp_link_smart_plug_c82e_feed_pump", "device_id": null } }, { "name": "wroommicrousb reservoir current volume sensor", "room": "hydroponics", "type": "sensor", "id": { "entity_id": "sensor.wroommicrousb_reservoir_current_volume", "device_id": null } }, { "name": "wroommicrousb reservoir water temp sensor", "room": "hydroponics", "type": "sensor", "id": { "entity_id": "sensor.wroommicrousb_reservoir_water_temp", "device_id": null } } ] }, { "id": "environmental_grow_light_scheduler", "automation": "- id: environmental_grow_light_scheduler\n alias: Environmental Grow Light Scheduler\n description: Event-driven grow light control to replace time-based triggers\n triggers:\n - trigger: time\n at: 06:00:00\n id: daily_schedule\n condition:\n - condition: state\n entity_id: input_boolean.environmental_systems_enabled\n state: 'on'\n action:\n - event: environmental_grow_lights_control\n event_data:\n action: 'on'\n schedule_time: 07:00:00\n - event: environmental_grow_lights_control\n event_data:\n action: 'off'\n schedule_time: '19:00:00'\n mode: single", "config": [ { "name": "environmental systems enabled boolean", "room": "hydroponics", "type": "input_boolean", "id": { "entity_id": "input_boolean.environmental_systems_enabled", "device_id": null } } ] }, { "id": "environmental_grow_light_handler", "automation": "- id: environmental_grow_light_handler\n alias: Environmental Grow Light Handler\n description: Handle grow light events from scheduler\n triggers:\n - trigger: event\n event_type: environmental_grow_lights_control\n id: grow_light_event\n action:\n - wait_template: '{{ now().strftime(''%H:%M:%S'') == trigger.event.data.schedule_time\n }}'\n timeout: 01:00:00\n continue_on_timeout: false\n - choose:\n - conditions:\n - condition: template\n value_template: '{{ trigger.event.data.action == ''on'' }}'\n sequence:\n - service: switch.turn_on\n target:\n label_id: grow_lights\n - service: system_log.write\n data:\n message: 'Environmental: Grow lights turned on via event scheduler'\n level: info\n - conditions:\n - condition: template\n value_template: '{{ trigger.event.data.action == ''off'' }}'\n sequence:\n - service: switch.turn_off\n target:\n label_id: grow_lights\n - service: system_log.write\n data:\n message: 'Environmental: Grow lights turned off via event scheduler'\n level: info\n mode: queued\n max: 5", "config": [] }, { "id": "integration_test_orchestrator", "automation": "- id: integration_test_orchestrator\n alias: 'Integration Test: Main Orchestrator'\n description: Coordinates cross-domain integration testing\n trigger:\n - platform: state\n entity_id: input_boolean.integration_testing_active\n to: 'on'\n action:\n - service: input_text.set_value\n target:\n entity_id: input_text.integration_test_results\n data:\n value: Integration testing started at {{ now().strftime('%H:%M:%S') }}\n - service: logbook.log\n data:\n name: Integration Test\n message: Starting cross-domain integration tests\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.test_appliance_lighting_coordination", "config": [ { "name": "integration testing active boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.integration_testing_active", "device_id": null } }, { "name": "integration test results text", "room": "testing", "type": "input_text", "id": { "entity_id": "input_text.integration_test_results", "device_id": null } }, { "name": "test appliance lighting coordination boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.test_appliance_lighting_coordination", "device_id": null } } ] }, { "id": "test_appliance_lighting_coordination", "automation": "- id: test_appliance_lighting_coordination\n alias: 'Integration Test: Appliance-Lighting Coordination'\n description: Tests that appliance events properly trigger lighting responses\n trigger:\n - platform: state\n entity_id: input_boolean.test_appliance_lighting_coordination\n to: 'on'\n condition:\n - condition: state\n entity_id: input_boolean.integration_testing_active\n state: 'on'\n action:\n - service: logbook.log\n data:\n name: Integration Test\n message: Testing appliance-lighting coordination\n - service: logbook.log\n data:\n name: Integration Test\n message: Simulating dishwasher completion event\n - service: input_text.set_value\n target:\n entity_id: input_text.integration_test_results\n data:\n value: '{{ states(''input_text.integration_test_results'') }} | Pre-test Kitchen\n lights: {{ states(''light.kitchen_lights'') if states(''light.kitchen_lights'')\n != ''unknown'' else ''N/A'' }}\n\n '\n - delay: 00:00:15\n - service: input_text.set_value\n target:\n entity_id: input_text.integration_test_results\n data:\n value: '{{ states(''input_text.integration_test_results'') }} | Post-event Kitchen\n lights: {{ states(''light.kitchen_lights'') if states(''light.kitchen_lights'')\n != ''unknown'' else ''N/A'' }}\n\n '\n - service: input_boolean.turn_off\n target:\n entity_id: input_boolean.test_appliance_lighting_coordination\n - service: logbook.log\n data:\n name: Integration Test\n message: Appliance-lighting coordination test completed\n - delay: 00:00:02\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.test_environmental_notification_flow", "config": [ { "name": "integration testing active boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.integration_testing_active", "device_id": null } }, { "name": "integration test results text", "room": "testing", "type": "input_text", "id": { "entity_id": "input_text.integration_test_results", "device_id": null } }, { "name": "test appliance lighting coordination boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.test_appliance_lighting_coordination", "device_id": null } }, { "name": "kitchen lights", "room": "kitchen", "type": "light", "id": { "entity_id": "light.kitchen_lights", "device_id": null } }, { "name": "test environmental notification flow boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.test_environmental_notification_flow", "device_id": null } } ] }, { "id": "test_environmental_notification_flow", "automation": "- id: test_environmental_notification_flow\n alias: 'Integration Test: Environmental Notification Flow'\n description: Tests environmental automation notification delivery\n trigger:\n - platform: state\n entity_id: input_boolean.test_environmental_notification_flow\n to: 'on'\n condition:\n - condition: state\n entity_id: input_boolean.integration_testing_active\n state: 'on'\n action:\n - service: logbook.log\n data:\n name: Integration Test\n message: Testing environmental notification flow\n - service: input_text.set_value\n target:\n entity_id: input_text.integration_test_results\n data:\n value: \"{{ states('input_text.integration_test_results') }} | Notification services\\\n \\ available: {% if states.notify %}\\n {{ states.notify | list | length }}\\\n \\ services\\n{% else %}\\n 0 services\\n{% endif %}\\n\"\n - service: logbook.log\n data:\n name: Integration Test\n message: Simulating environmental alert scenario\n - service: input_text.set_value\n target:\n entity_id: input_text.integration_test_results\n data:\n value: '{{ states(''input_text.integration_test_results'') }} | Mobile notification\n test: {{ ''Available'' if ''notify.mobile_app'' in states.notify else ''Not\n configured'' }}\n\n '\n - delay: 00:00:10\n - service: input_boolean.turn_off\n target:\n entity_id: input_boolean.test_environmental_notification_flow\n - service: logbook.log\n data:\n name: Integration Test\n message: Environmental notification flow test completed\n - service: input_text.set_value\n target:\n entity_id: input_text.integration_test_results\n data:\n value: '{{ states(''input_text.integration_test_results'') }} | Integration\n testing completed at {{ now().strftime(''%H:%M:%S'') }}\n\n '\n - service: input_boolean.turn_off\n target:\n entity_id: input_boolean.integration_testing_active\n - service: logbook.log\n data:\n name: Integration Test\n message: All integration tests completed successfully", "config": [ { "name": "integration testing active boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.integration_testing_active", "device_id": null } }, { "name": "integration test results text", "room": "testing", "type": "input_text", "id": { "entity_id": "input_text.integration_test_results", "device_id": null } }, { "name": "test environmental notification flow boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.test_environmental_notification_flow", "device_id": null } } ] }, { "id": "test_cross_domain_dependencies", "automation": "- id: test_cross_domain_dependencies\n alias: 'Integration Test: Cross-Domain Dependencies'\n description: Validates that domain packages can communicate with each other\n trigger:\n - platform: time\n at: 03:30:00\n condition:\n - condition: state\n entity_id: input_boolean.integration_testing_active\n state: 'off'\n action:\n - service: logbook.log\n data:\n name: Integration Test\n message: Running automated dependency validation\n - service: logbook.log\n data:\n name: Integration Test\n message: Cross-domain entity validation simulated - {{ states | length }} total\n entities validated\n - service: shell_command.validate_automation_conflicts", "config": [ { "name": "integration testing active boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.integration_testing_active", "device_id": null } }, { "name": "validate automation conflicts shell command", "room": "testing", "type": "shell_command", "id": { "entity_id": "shell_command.validate_automation_conflicts", "device_id": null } } ] }, { "id": "lighting_scheduler", "automation": "- id: lighting_scheduler\n alias: Lighting Scheduler - Phase 3 Optimized\n description: Single daily scheduler that fires events to replace multiple time-based\n triggers\n triggers:\n - trigger: time\n at: 00:00:00\n id: daily_schedule\n condition:\n - condition: state\n entity_id: input_boolean.lighting_scheduler_enabled\n state: 'on'\n action:\n - event: lighting_schedule_trigger\n event_data:\n task_type: morning_startup\n schedule_time: 07:00:00\n - event: lighting_schedule_trigger\n event_data:\n task_type: evening_lighting\n schedule_time: '19:00:00'\n - event: lighting_schedule_trigger\n event_data:\n task_type: zwave_night_mode\n schedule_time: '22:00:00'\n - event: lighting_schedule_trigger\n event_data:\n task_type: night_lighting\n schedule_time: '23:00:00'\n - event: lighting_schedule_trigger\n event_data:\n task_type: zwave_day_mode\n schedule_time: 07:00:00\n mode: single", "config": [ { "name": "lighting scheduler enabled boolean", "room": "lighting", "type": "input_boolean", "id": { "entity_id": "input_boolean.lighting_scheduler_enabled", "device_id": null } } ] }, { "id": "lighting_manual_override_handler", "automation": "- id: lighting_manual_override_handler\n alias: 'Lighting: Manual Override Handler'\n description: Handle manual lighting changes and set override state\n trigger:\n - platform: state\n entity_id:\n - light.kitchen_led_strips\n - light.rgbcw_lightbulb1\n - light.rgbcw_lightbulb2\n - light.rgbcw_lightbulb3\n - light.rgbcw_lightbulb4\n - light.rgbcw_lightbulb5\n - light.rgbcw_lightbulb6\n - light.rgbcw_lightbulb7\n - light.rgbcw_lightbulb8\n - light.rgbcw_lightbulb9\n - light.rgbcw_lightbulb10\n - light.rgbcw_lightbulb11\n attribute: brightness\n - platform: state\n entity_id:\n - light.kitchen_led_strips\n - light.rgbcw_lightbulb1\n - light.rgbcw_lightbulb2\n - light.rgbcw_lightbulb3\n - light.rgbcw_lightbulb4\n - light.rgbcw_lightbulb5\n - light.rgbcw_lightbulb6\n - light.rgbcw_lightbulb7\n - light.rgbcw_lightbulb8\n - light.rgbcw_lightbulb9\n - light.rgbcw_lightbulb10\n - light.rgbcw_lightbulb11\n attribute: color_temp\n condition:\n - condition: template\n value_template: \"{{ trigger.to_state.context.user_id is not none or\\n trigger.to_state.context.parent_id\\\n \\ is not none }}\\n\"\n action:\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.manual_lighting_override\n - service: system_log.write\n data:\n message: 'Manual lighting override detected: {{ trigger.entity_id }}'\n level: info\n mode: parallel", "config": [ { "name": "manual lighting override boolean", "room": "lighting", "type": "input_boolean", "id": { "entity_id": "input_boolean.manual_lighting_override", "device_id": null } }, { "name": "kitchen led strips", "room": "kitchen", "type": "light", "id": { "entity_id": "light.kitchen_led_strips", "device_id": null } }, { "name": "rgbcw lightbulb 1", "room": "living_room", "type": "light", "id": { "entity_id": "light.rgbcw_lightbulb1", "device_id": null } }, { "name": "rgbcw lightbulb 2", "room": "living_room", "type": "light", "id": { "entity_id": "light.rgbcw_lightbulb2", "device_id": null } }, { "name": "rgbcw lightbulb 3", "room": "living_room", "type": "light", "id": { "entity_id": "light.rgbcw_lightbulb3", "device_id": null } }, { "name": "rgbcw lightbulb 4", "room": "living_room", "type": "light", "id": { "entity_id": "light.rgbcw_lightbulb4", "device_id": null } }, { "name": "rgbcw lightbulb 5", "room": "living_room", "type": "light", "id": { "entity_id": "light.rgbcw_lightbulb5", "device_id": null } }, { "name": "rgbcw lightbulb 6", "room": "living_room", "type": "light", "id": { "entity_id": "light.rgbcw_lightbulb6", "device_id": null } }, { "name": "rgbcw lightbulb 7", "room": "living_room", "type": "light", "id": { "entity_id": "light.rgbcw_lightbulb7", "device_id": null } }, { "name": "rgbcw lightbulb 8", "room": "living_room", "type": "light", "id": { "entity_id": "light.rgbcw_lightbulb8", "device_id": null } }, { "name": "rgbcw lightbulb 9", "room": "living_room", "type": "light", "id": { "entity_id": "light.rgbcw_lightbulb9", "device_id": null } }, { "name": "rgbcw lightbulb 10", "room": "living_room", "type": "light", "id": { "entity_id": "light.rgbcw_lightbulb10", "device_id": null } }, { "name": "rgbcw lightbulb 11", "room": "living_room", "type": "light", "id": { "entity_id": "light.rgbcw_lightbulb11", "device_id": null } } ] }, { "id": "scheduled_lights_control", "automation": "- id: scheduled_lights_control\n alias: 'Lighting: Scheduled Light Control'\n description: Controls all scheduled lights based on time with enhanced error handling\n trigger:\n - platform: event\n event_type: lighting_schedule_trigger\n event_data:\n task_type: morning_startup\n id: morning\n - platform: event\n event_type: lighting_schedule_trigger\n event_data:\n task_type: evening_lighting\n id: evening\n - platform: event\n event_type: lighting_schedule_trigger\n event_data:\n task_type: night_lighting\n id: night\n - event: sunset\n id: sunset\n platform: sun\n - event: sunrise\n id: sunrise\n offset: +00:15:00\n platform: sun\n - platform: template\n value_template: '{{ now().strftime(''%H:%M'') == states(''input_datetime.grow_lights_winter_on_time'')[0:5]\n }}'\n id: winter_on\n - platform: template\n value_template: '{{ now().strftime(''%H:%M'') == states(''input_datetime.grow_lights_winter_off_time'')[0:5]\n }}'\n id: winter_off\n condition:\n - condition: template\n value_template: '{{ states(''sun.sun'') not in [''unavailable'', ''unknown'',\n ''''] }}\n\n '\n action:\n - choose:\n - conditions:\n - condition: trigger\n id: morning\n sequence:\n - target:\n label_id: morning_lights_2\n data:\n brightness_pct: 80\n service: light.turn_on\n - service: script.led_strips_rf_power_on\n data: {}\n - service: persistent_notification.create\n data:\n title: Good Morning\n message: All morning lights and kitchen LED strips activated at {{ now().strftime('%H:%M')\n }}.\n notification_id: morning_lights\n - conditions:\n - condition: trigger\n id: evening\n sequence: []\n - conditions:\n - condition: trigger\n id: night\n sequence:\n - target:\n label_id: night_lights_2\n service: light.turn_off\n - service: script.led_strips_rf_power_off\n data: {}\n - service: persistent_notification.create\n data:\n title: Good Night\n message: Night lights and kitchen LED strips turned off at {{ now().strftime('%H:%M')\n }}.\n notification_id: night_lights\n - conditions:\n - condition: trigger\n id: sunset\n sequence:\n - target:\n entity_id: light.porch_light\n data:\n brightness_pct: 80\n service: light.turn_on\n - target:\n entity_id: light.hall_light\n data:\n brightness_pct: 70\n service: light.turn_on\n - target:\n entity_id: switch.tp_link_smart_plug_5e5b_walkway\n service: switch.turn_on\n - condition: state\n entity_id: input_boolean.grow_lights_winter_override\n state: 'off'\n - target:\n label_id: grow_lights\n service: switch.turn_off\n - conditions:\n - condition: trigger\n id: sunrise\n sequence:\n - target:\n entity_id: light.porch_light\n service: light.turn_off\n - target:\n entity_id: light.hall_light\n service: light.turn_off\n - target:\n entity_id: switch.tp_link_smart_plug_5e5b_walkway\n service: switch.turn_off\n - condition: state\n entity_id: input_boolean.grow_lights_winter_override\n state: 'off'\n - target:\n label_id: grow_lights\n service: switch.turn_on\n - conditions:\n - condition: trigger\n id: winter_on\n - condition: state\n entity_id: input_boolean.grow_lights_winter_override\n state: 'on'\n sequence:\n - target:\n label_id: grow_lights\n service: switch.turn_on\n - service: persistent_notification.create\n data:\n title: Winter Grow Lights\n message: Grow lights activated at {{ now().strftime('%H:%M') }} (Winter\n Schedule).\n notification_id: winter_grow_lights_on\n - conditions:\n - condition: trigger\n id: winter_off\n - condition: state\n entity_id: input_boolean.grow_lights_winter_override\n state: 'on'\n sequence:\n - target:\n label_id: grow_lights\n service: switch.turn_off\n - service: persistent_notification.create\n data:\n title: Winter Grow Lights\n message: Grow lights deactivated at {{ now().strftime('%H:%M') }} (Winter\n Schedule).\n notification_id: winter_grow_lights_off\n - service: system_log.write\n data:\n message: Light schedule triggered at {{ now().strftime('%Y-%m-%d %H:%M:%S')\n }} by {{ trigger.id }}\n level: info\n - if:\n - condition: trigger\n id:\n - morning\n - evening\n - night\n then:\n - service: counter.increment\n target:\n entity_id: counter.lighting_optimized_triggers\n mode: single", "config": [ { "name": "hall light", "room": "hall", "type": "light", "id": { "entity_id": "light.hall_light", "device_id": null } }, { "name": "led strips rf power on script", "room": "lighting", "type": "script", "id": { "entity_id": "script.led_strips_rf_power_on", "device_id": null } }, { "name": "led strips rf power off script", "room": "lighting", "type": "script", "id": { "entity_id": "script.led_strips_rf_power_off", "device_id": null } }, { "name": "porch light", "room": "porch", "type": "light", "id": { "entity_id": "light.porch_light", "device_id": null } }, { "name": "walkway smart plug", "room": "outdoor", "type": "switch", "id": { "entity_id": "switch.tp_link_smart_plug_5e5b_walkway", "device_id": null } }, { "name": "grow lights winter override boolean", "room": "hydroponics", "type": "input_boolean", "id": { "entity_id": "input_boolean.grow_lights_winter_override", "device_id": null } }, { "name": "grow lights winter on time datetime", "room": "hydroponics", "type": "input_datetime", "id": { "entity_id": "input_datetime.grow_lights_winter_on_time", "device_id": null } }, { "name": "grow lights winter off time datetime", "room": "hydroponics", "type": "input_datetime", "id": { "entity_id": "input_datetime.grow_lights_winter_off_time", "device_id": null } }, { "name": "lighting optimized triggers counter", "room": "lighting", "type": "counter", "id": { "entity_id": "counter.lighting_optimized_triggers", "device_id": null } }, { "name": "Sun", "room": null, "type": "sun", "id": { "entity_id": "sun.sun", "device_id": null } } ] }, { "id": "led_strips_button_power_on", "automation": "- id: led_strips_button_power_on\n alias: LED Strips Button - Power On\n description: Activates LED strips via RF remote when power on button is pressed\n trigger:\n - platform: state\n entity_id: input_button.led_strips_power_on\n condition:\n - condition: state\n entity_id: remote.rm4_pro\n state: 'on'\n action:\n - service: script.led_strips_rf_power_on", "config": [ { "name": "rm4 pro remote", "room": "entertainment", "type": "remote", "id": { "entity_id": "remote.rm4_pro", "device_id": null } }, { "name": "led strips rf power on script", "room": "lighting", "type": "script", "id": { "entity_id": "script.led_strips_rf_power_on", "device_id": null } }, { "name": "led strips power on button", "room": "lighting", "type": "input_button", "id": { "entity_id": "input_button.led_strips_power_on", "device_id": null } } ] }, { "id": "led_strips_button_power_off", "automation": "- id: led_strips_button_power_off\n alias: LED Strips Button - Power Off\n description: Deactivates LED strips via RF remote when power off button is pressed\n trigger:\n - platform: state\n entity_id: input_button.led_strips_power_off\n condition:\n - condition: state\n entity_id: remote.rm4_pro\n state: 'on'\n action:\n - service: script.led_strips_rf_power_off", "config": [ { "name": "rm4 pro remote", "room": "entertainment", "type": "remote", "id": { "entity_id": "remote.rm4_pro", "device_id": null } }, { "name": "led strips rf power off script", "room": "lighting", "type": "script", "id": { "entity_id": "script.led_strips_rf_power_off", "device_id": null } }, { "name": "led strips power off button", "room": "lighting", "type": "input_button", "id": { "entity_id": "input_button.led_strips_power_off", "device_id": null } } ] }, { "id": "led_strips_button_brightness_up", "automation": "- id: led_strips_button_brightness_up\n alias: LED Strips Button - Brightness Up\n description: Increases LED strip brightness via RF remote and updates brightness\n tracking\n trigger:\n - platform: state\n entity_id: input_button.led_strips_brightness_up\n condition:\n - condition: state\n entity_id: remote.rm4_pro\n state: 'on'\n action:\n - service: script.led_strips_rf_brightness_up", "config": [ { "name": "rm4 pro remote", "room": "entertainment", "type": "remote", "id": { "entity_id": "remote.rm4_pro", "device_id": null } }, { "name": "led strips brightness up button", "room": "lighting", "type": "input_button", "id": { "entity_id": "input_button.led_strips_brightness_up", "device_id": null } }, { "name": "led strips rf brightness up script", "room": "lighting", "type": "script", "id": { "entity_id": "script.led_strips_rf_brightness_up", "device_id": null } } ] }, { "id": "led_strips_button_brightness_down", "automation": "- id: led_strips_button_brightness_down\n alias: LED Strips Button - Brightness Down\n description: Decreases LED strip brightness via RF remote and updates brightness\n tracking\n trigger:\n - platform: state\n entity_id: input_button.led_strips_brightness_down\n condition:\n - condition: state\n entity_id: remote.rm4_pro\n state: 'on'\n action:\n - service: script.led_strips_rf_brightness_down", "config": [ { "name": "rm4 pro remote", "room": "entertainment", "type": "remote", "id": { "entity_id": "remote.rm4_pro", "device_id": null } }, { "name": "led strips brightness down button", "room": "lighting", "type": "input_button", "id": { "entity_id": "input_button.led_strips_brightness_down", "device_id": null } }, { "name": "led strips rf brightness down script", "room": "lighting", "type": "script", "id": { "entity_id": "script.led_strips_rf_brightness_down", "device_id": null } } ] }, { "id": "led_strips_button_warmer", "automation": "- id: led_strips_button_warmer\n alias: LED Strips Button - Warmer\n description: Makes LED strips warmer color temperature via RF remote\n trigger:\n - platform: state\n entity_id: input_button.led_strips_warmer\n condition:\n - condition: state\n entity_id: remote.rm4_pro\n state: 'on'\n action:\n - service: script.led_strips_rf_warmer", "config": [ { "name": "rm4 pro remote", "room": "entertainment", "type": "remote", "id": { "entity_id": "remote.rm4_pro", "device_id": null } }, { "name": "led strips warmer button", "room": "lighting", "type": "input_button", "id": { "entity_id": "input_button.led_strips_warmer", "device_id": null } }, { "name": "led strips rf warmer script", "room": "lighting", "type": "script", "id": { "entity_id": "script.led_strips_rf_warmer", "device_id": null } } ] }, { "id": "led_strips_button_cooler", "automation": "- id: led_strips_button_cooler\n alias: LED Strips Button - Cooler\n description: Makes LED strips cooler color temperature via RF remote\n trigger:\n - platform: state\n entity_id: input_button.led_strips_cooler\n condition:\n - condition: state\n entity_id: remote.rm4_pro\n state: 'on'\n action:\n - service: script.led_strips_rf_cooler", "config": [ { "name": "rm4 pro remote", "room": "entertainment", "type": "remote", "id": { "entity_id": "remote.rm4_pro", "device_id": null } }, { "name": "led strips cooler button", "room": "lighting", "type": "input_button", "id": { "entity_id": "input_button.led_strips_cooler", "device_id": null } }, { "name": "led strips rf cooler script", "room": "lighting", "type": "script", "id": { "entity_id": "script.led_strips_rf_cooler", "device_id": null } } ] }, { "id": "led_strips_button_warm_white", "automation": "- id: led_strips_button_warm_white\n alias: LED Strips Button - Warm White\n description: Sets LED strips to warm white preset color via RF remote\n trigger:\n - platform: state\n entity_id: input_button.led_strips_warm_white\n condition:\n - condition: state\n entity_id: remote.rm4_pro\n state: 'on'\n action:\n - service: script.led_strips_rf_warm_white", "config": [ { "name": "rm4 pro remote", "room": "entertainment", "type": "remote", "id": { "entity_id": "remote.rm4_pro", "device_id": null } }, { "name": "led strips warm white button", "room": "lighting", "type": "input_button", "id": { "entity_id": "input_button.led_strips_warm_white", "device_id": null } }, { "name": "led strips rf warm white script", "room": "lighting", "type": "script", "id": { "entity_id": "script.led_strips_rf_warm_white", "device_id": null } } ] }, { "id": "led_strips_button_neutral_white", "automation": "- id: led_strips_button_neutral_white\n alias: LED Strips Button - Neutral White\n description: Sets LED strips to neutral white preset color via RF remote\n trigger:\n - platform: state\n entity_id: input_button.led_strips_neutral_white\n condition:\n - condition: state\n entity_id: remote.rm4_pro\n state: 'on'\n action:\n - service: script.led_strips_rf_neutral_white", "config": [ { "name": "rm4 pro remote", "room": "entertainment", "type": "remote", "id": { "entity_id": "remote.rm4_pro", "device_id": null } }, { "name": "led strips neutral white button", "room": "lighting", "type": "input_button", "id": { "entity_id": "input_button.led_strips_neutral_white", "device_id": null } }, { "name": "led strips rf neutral white script", "room": "lighting", "type": "script", "id": { "entity_id": "script.led_strips_rf_neutral_white", "device_id": null } } ] }, { "id": "led_strips_button_cool_white", "automation": "- id: led_strips_button_cool_white\n alias: LED Strips Button - Cool White\n description: Sets LED strips to cool white preset color via RF remote\n trigger:\n - platform: state\n entity_id: input_button.led_strips_cool_white\n condition:\n - condition: state\n entity_id: remote.rm4_pro\n state: 'on'\n action:\n - service: script.led_strips_rf_cool_white", "config": [ { "name": "rm4 pro remote", "room": "entertainment", "type": "remote", "id": { "entity_id": "remote.rm4_pro", "device_id": null } }, { "name": "led strips cool white button", "room": "lighting", "type": "input_button", "id": { "entity_id": "input_button.led_strips_cool_white", "device_id": null } }, { "name": "led strips rf cool white script", "room": "lighting", "type": "script", "id": { "entity_id": "script.led_strips_rf_cool_white", "device_id": null } } ] }, { "id": "led_strips_morning_startup", "automation": "- id: led_strips_morning_startup\n alias: LED Strips - Morning Startup\n description: Automatically turn on LED strips every morning at 7 AM with adaptive\n lighting\n trigger:\n - platform: event\n event_type: lighting_schedule_trigger\n event_data:\n task_type: morning_startup\n condition:\n - condition: state\n entity_id: remote.rm4_pro\n state: 'on'\n action:\n - service: script.led_strips_rf_power_on\n - service: counter.increment\n target:\n entity_id: counter.lighting_optimized_triggers", "config": [ { "name": "rm4 pro remote", "room": "entertainment", "type": "remote", "id": { "entity_id": "remote.rm4_pro", "device_id": null } }, { "name": "led strips rf power on script", "room": "lighting", "type": "script", "id": { "entity_id": "script.led_strips_rf_power_on", "device_id": null } }, { "name": "lighting optimized triggers counter", "room": "lighting", "type": "counter", "id": { "entity_id": "counter.lighting_optimized_triggers", "device_id": null } } ] }, { "id": "led_strips_manual_override_detection", "automation": "- id: led_strips_manual_override_detection\n alias: LED Strips - Manual Override Detection\n description: Detect when LED strips are manually controlled via RF remote and temporarily\n disable adaptive lighting\n trigger:\n - platform: state\n entity_id:\n - input_number.led_strips_brightness_level\n - input_number.led_strips_color_temp\n condition:\n - condition: template\n value_template: '{{ trigger.to_state.context.user_id is not none }}'\n - condition: state\n entity_id: input_boolean.led_strips_power_status\n state: 'on'\n action:\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.manual_lighting_override\n - service: system_log.write\n data:\n message: LED strips manual override detected\n level: info\n mode: restart", "config": [ { "name": "manual lighting override boolean", "room": "lighting", "type": "input_boolean", "id": { "entity_id": "input_boolean.manual_lighting_override", "device_id": null } }, { "name": "led strips brightness level number", "room": "lighting", "type": "input_number", "id": { "entity_id": "input_number.led_strips_brightness_level", "device_id": null } }, { "name": "led strips color temp number", "room": "lighting", "type": "input_number", "id": { "entity_id": "input_number.led_strips_color_temp", "device_id": null } }, { "name": "led strips power status boolean", "room": "lighting", "type": "input_boolean", "id": { "entity_id": "input_boolean.led_strips_power_status", "device_id": null } } ] }, { "id": "zwave_led_night_mode_on", "automation": "- id: zwave_led_night_mode_on\n alias: Z-Wave LEDs - Night Mode On\n description: Turns off selected Z-Wave switch LEDs at night (10 PM)\n trigger:\n - platform: event\n event_type: lighting_schedule_trigger\n event_data:\n task_type: zwave_night_mode\n action:\n - repeat:\n for_each:\n - light.hobby_light\n - light.gavin_light\n - light.pantry_light\n - light.master_light\n - light.nook_light\n - light.guest_light\n - light.porch_light\n - light.hall_light\n - light.linda_light\n sequence:\n - variables:\n light_entity: '{{ repeat.item }}'\n input_boolean_entity: input_boolean.zwave_led_darken_{{ repeat.item.split('.')[1]\n }}\n - if:\n - condition: template\n value_template: '{{ is_state(input_boolean_entity, ''on'') }}'\n - condition: template\n value_template: '{{ states(light_entity) not in [''unavailable'', ''unknown'']\n }}'\n then:\n - service: zwave_js.set_config_parameter\n target:\n entity_id: '{{ light_entity }}'\n data:\n parameter: 7\n value: 0\n continue_on_error: true\n - repeat:\n for_each:\n - fan.hobby_fan\n - fan.master_fan\n - fan.linda_fan\n - fan.guest_fan\n - fan.gavin_fan\n sequence:\n - variables:\n fan_entity: '{{ repeat.item }}'\n input_boolean_entity: input_boolean.zwave_led_darken_{{ repeat.item.split('.')[1]\n }}\n - if:\n - condition: template\n value_template: '{{ is_state(input_boolean_entity, ''on'') }}'\n - condition: template\n value_template: '{{ states(fan_entity) not in [''unavailable'', ''unknown'']\n }}'\n then:\n - service: zwave_js.set_config_parameter\n target:\n entity_id: '{{ fan_entity }}'\n data:\n parameter: 3\n value: 0\n continue_on_error: true\n - service: counter.increment\n target:\n entity_id: counter.lighting_optimized_triggers", "config": [ { "name": "pantry light", "room": "pantry", "type": "light", "id": { "entity_id": "light.pantry_light", "device_id": null } }, { "name": "hall light", "room": "hall", "type": "light", "id": { "entity_id": "light.hall_light", "device_id": null } }, { "name": "porch light", "room": "porch", "type": "light", "id": { "entity_id": "light.porch_light", "device_id": null } }, { "name": "lighting optimized triggers counter", "room": "lighting", "type": "counter", "id": { "entity_id": "counter.lighting_optimized_triggers", "device_id": null } }, { "name": "hobby light", "room": "hobby", "type": "light", "id": { "entity_id": "light.hobby_light", "device_id": null } }, { "name": "gavin light", "room": "gavin", "type": "light", "id": { "entity_id": "light.gavin_light", "device_id": null } }, { "name": "master light", "room": "master_bedroom", "type": "light", "id": { "entity_id": "light.master_light", "device_id": null } }, { "name": "nook light", "room": "nook", "type": "light", "id": { "entity_id": "light.nook_light", "device_id": null } }, { "name": "guest light", "room": "guest", "type": "light", "id": { "entity_id": "light.guest_light", "device_id": null } }, { "name": "linda light", "room": "linda", "type": "light", "id": { "entity_id": "light.linda_light", "device_id": null } }, { "name": "hobby fan", "room": "hobby", "type": "fan", "id": { "entity_id": "fan.hobby_fan", "device_id": null } }, { "name": "master fan", "room": "master_bedroom", "type": "fan", "id": { "entity_id": "fan.master_fan", "device_id": null } }, { "name": "linda fan", "room": "linda", "type": "fan", "id": { "entity_id": "fan.linda_fan", "device_id": null } }, { "name": "guest fan", "room": "guest", "type": "fan", "id": { "entity_id": "fan.guest_fan", "device_id": null } }, { "name": "gavin fan", "room": "gavin", "type": "fan", "id": { "entity_id": "fan.gavin_fan", "device_id": null } } ] }, { "id": "zwave_led_day_mode_on", "automation": "- id: zwave_led_day_mode_on\n alias: Z-Wave LEDs - Day Mode On\n description: Restores Z-Wave switch LEDs to normal operation (7 AM)\n trigger:\n - platform: event\n event_type: lighting_schedule_trigger\n event_data:\n task_type: zwave_day_mode\n action:\n - service: logbook.log\n data:\n name: Z-Wave LED Day Mode\n message: Starting LED restoration for available devices\n - repeat:\n for_each:\n - light.hobby_light\n - light.gavin_light\n - light.pantry_light\n - light.master_light\n - light.nook_light\n - light.guest_light\n - light.porch_light\n - light.hall_light\n - light.linda_light\n sequence:\n - variables:\n light_entity: '{{ repeat.item }}'\n - if:\n - condition: template\n value_template: '{{ states(light_entity) not in [''unavailable'', ''unknown'']\n }}'\n then:\n - service: zwave_js.set_config_parameter\n target:\n entity_id: '{{ light_entity }}'\n data:\n parameter: 7\n value: 1\n continue_on_error: true\n - service: logbook.log\n data:\n name: Z-Wave LED\n message: Restored LED for {{ light_entity }}\n else:\n - service: logbook.log\n data:\n name: Z-Wave LED\n message: 'Skipped unavailable device: {{ light_entity }}'\n - repeat:\n for_each:\n - fan.hobby_fan\n - fan.master_fan\n - fan.linda_fan\n - fan.guest_fan\n - fan.gavin_fan\n sequence:\n - variables:\n fan_entity: '{{ repeat.item }}'\n - if:\n - condition: template\n value_template: '{{ states(fan_entity) not in [''unavailable'', ''unknown'']\n }}'\n then:\n - service: zwave_js.set_config_parameter\n target:\n entity_id: '{{ fan_entity }}'\n data:\n parameter: 3\n value: 1\n continue_on_error: true\n - service: logbook.log\n data:\n name: Z-Wave LED\n message: Restored LED for {{ fan_entity }}\n else:\n - service: logbook.log\n data:\n name: Z-Wave LED\n message: 'Skipped unavailable device: {{ fan_entity }}'\n - service: counter.increment\n target:\n entity_id: counter.lighting_optimized_triggers", "config": [ { "name": "pantry light", "room": "pantry", "type": "light", "id": { "entity_id": "light.pantry_light", "device_id": null } }, { "name": "hall light", "room": "hall", "type": "light", "id": { "entity_id": "light.hall_light", "device_id": null } }, { "name": "porch light", "room": "porch", "type": "light", "id": { "entity_id": "light.porch_light", "device_id": null } }, { "name": "lighting optimized triggers counter", "room": "lighting", "type": "counter", "id": { "entity_id": "counter.lighting_optimized_triggers", "device_id": null } }, { "name": "hobby light", "room": "hobby", "type": "light", "id": { "entity_id": "light.hobby_light", "device_id": null } }, { "name": "gavin light", "room": "gavin", "type": "light", "id": { "entity_id": "light.gavin_light", "device_id": null } }, { "name": "master light", "room": "master_bedroom", "type": "light", "id": { "entity_id": "light.master_light", "device_id": null } }, { "name": "nook light", "room": "nook", "type": "light", "id": { "entity_id": "light.nook_light", "device_id": null } }, { "name": "guest light", "room": "guest", "type": "light", "id": { "entity_id": "light.guest_light", "device_id": null } }, { "name": "linda light", "room": "linda", "type": "light", "id": { "entity_id": "light.linda_light", "device_id": null } }, { "name": "hobby fan", "room": "hobby", "type": "fan", "id": { "entity_id": "fan.hobby_fan", "device_id": null } }, { "name": "master fan", "room": "master_bedroom", "type": "fan", "id": { "entity_id": "fan.master_fan", "device_id": null } }, { "name": "linda fan", "room": "linda", "type": "fan", "id": { "entity_id": "fan.linda_fan", "device_id": null } }, { "name": "guest fan", "room": "guest", "type": "fan", "id": { "entity_id": "fan.guest_fan", "device_id": null } }, { "name": "gavin fan", "room": "gavin", "type": "fan", "id": { "entity_id": "fan.gavin_fan", "device_id": null } } ] }, { "id": "zwave_led_manual_control", "automation": "- id: zwave_led_manual_control\n alias: Z-Wave LEDs - Manual Control\n description: Immediately applies LED changes when manual toggles are changed during\n night hours\n trigger:\n - platform: state\n entity_id:\n - input_boolean.zwave_led_darken_hobby_light\n - input_boolean.zwave_led_darken_gavin_light\n - input_boolean.zwave_led_darken_pantry_light\n - input_boolean.zwave_led_darken_master_light\n - input_boolean.zwave_led_darken_nook_light\n - input_boolean.zwave_led_darken_guest_light\n - input_boolean.zwave_led_darken_porch_light\n - input_boolean.zwave_led_darken_hall_light\n - input_boolean.zwave_led_darken_dining_light\n - input_boolean.zwave_led_darken_linda_light\n - input_boolean.zwave_led_darken_hobby_fan\n - input_boolean.zwave_led_darken_master_fan\n - input_boolean.zwave_led_darken_linda_fan\n - input_boolean.zwave_led_darken_guest_fan\n - input_boolean.zwave_led_darken_gavin_fan\n condition:\n - condition: time\n after: '22:00:00'\n before: 07:00:00\n action:\n - service: script.zwave_led_apply_setting\n data:\n input_boolean: '{{ trigger.entity_id }}'\n new_state: '{{ trigger.to_state.state if trigger.to_state else ''unknown'' }}'\n mode: parallel\n max: 20", "config": [ { "name": "zwave led darken hobby light boolean", "room": "hobby", "type": "input_boolean", "id": { "entity_id": "input_boolean.zwave_led_darken_hobby_light", "device_id": null } }, { "name": "zwave led darken gavin light boolean", "room": "gavin", "type": "input_boolean", "id": { "entity_id": "input_boolean.zwave_led_darken_gavin_light", "device_id": null } }, { "name": "zwave led darken pantry light boolean", "room": "pantry", "type": "input_boolean", "id": { "entity_id": "input_boolean.zwave_led_darken_pantry_light", "device_id": null } }, { "name": "zwave led darken master light boolean", "room": "master_bedroom", "type": "input_boolean", "id": { "entity_id": "input_boolean.zwave_led_darken_master_light", "device_id": null } }, { "name": "zwave led darken nook light boolean", "room": "nook", "type": "input_boolean", "id": { "entity_id": "input_boolean.zwave_led_darken_nook_light", "device_id": null } }, { "name": "zwave led darken guest light boolean", "room": "guest", "type": "input_boolean", "id": { "entity_id": "input_boolean.zwave_led_darken_guest_light", "device_id": null } }, { "name": "zwave led darken porch light boolean", "room": "porch", "type": "input_boolean", "id": { "entity_id": "input_boolean.zwave_led_darken_porch_light", "device_id": null } }, { "name": "zwave led darken hall light boolean", "room": "hall", "type": "input_boolean", "id": { "entity_id": "input_boolean.zwave_led_darken_hall_light", "device_id": null } }, { "name": "zwave led darken dining light boolean", "room": "dining", "type": "input_boolean", "id": { "entity_id": "input_boolean.zwave_led_darken_dining_light", "device_id": null } }, { "name": "zwave led darken linda light boolean", "room": "linda", "type": "input_boolean", "id": { "entity_id": "input_boolean.zwave_led_darken_linda_light", "device_id": null } }, { "name": "zwave led darken hobby fan boolean", "room": "hobby", "type": "input_boolean", "id": { "entity_id": "input_boolean.zwave_led_darken_hobby_fan", "device_id": null } }, { "name": "zwave led darken master fan boolean", "room": "master_bedroom", "type": "input_boolean", "id": { "entity_id": "input_boolean.zwave_led_darken_master_fan", "device_id": null } }, { "name": "zwave led darken linda fan boolean", "room": "linda", "type": "input_boolean", "id": { "entity_id": "input_boolean.zwave_led_darken_linda_fan", "device_id": null } }, { "name": "zwave led darken guest fan boolean", "room": "guest", "type": "input_boolean", "id": { "entity_id": "input_boolean.zwave_led_darken_guest_fan", "device_id": null } }, { "name": "zwave led darken gavin fan boolean", "room": "gavin", "type": "input_boolean", "id": { "entity_id": "input_boolean.zwave_led_darken_gavin_fan", "device_id": null } }, { "name": "zwave led apply setting script", "room": "lighting", "type": "script", "id": { "entity_id": "script.zwave_led_apply_setting", "device_id": null } } ] }, { "id": "lighting_zwave_led_preset_handler", "automation": "- id: lighting_zwave_led_preset_handler\n alias: Z-Wave LED - Preset Handler\n description: Applies LED presets when input_select changes\n trigger:\n - platform: state\n entity_id: input_select.zwave_led_night_mode_preset\n action:\n - service: script.zwave_led_apply_preset\n data:\n preset: '{{ trigger.to_state.state if trigger.to_state else ''unknown'' }}'\n mode: single", "config": [ { "name": "zwave led night mode preset select", "room": "lighting", "type": "input_select", "id": { "entity_id": "input_select.zwave_led_night_mode_preset", "device_id": null } }, { "name": "zwave led apply preset script", "room": "lighting", "type": "script", "id": { "entity_id": "script.zwave_led_apply_preset", "device_id": null } } ] }, { "id": "zwave_led_night_mode_coordination", "automation": "- id: zwave_led_night_mode_coordination\n alias: 'Lighting: Z-Wave LED Night Mode Coordination'\n description: Coordinate Z-Wave LED night mode with adaptive lighting\n trigger:\n - platform: state\n entity_id: binary_sensor.night_mode_active\n condition:\n - condition: template\n value_template: '{{ trigger.from_state.state != trigger.to_state.state }}'\n action:\n - choose:\n - conditions:\n - condition: state\n entity_id: binary_sensor.night_mode_active\n state: 'on'\n sequence:\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.sleep_mode\n - service: persistent_notification.create\n data:\n title: Night Mode Active\n message: Night mode is now active. LED indicators dimmed and adaptive lighting\n in sleep mode.\n notification_id: zwave_led_night_mode\n - conditions:\n - condition: state\n entity_id: binary_sensor.night_mode_active\n state: 'off'\n sequence:\n - service: input_boolean.turn_off\n target:\n entity_id: input_boolean.sleep_mode\n - service: persistent_notification.create\n data:\n title: Day Mode Active\n message: Day mode is now active. Normal lighting restored.\n notification_id: zwave_led_day_mode\n - delay: 00:05:00\n - service: persistent_notification.dismiss\n data:\n notification_id: zwave_led_day_mode", "config": [ { "name": "night mode active binary sensor", "room": "home", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.night_mode_active", "device_id": null } }, { "name": "sleep mode boolean", "room": "home", "type": "input_boolean", "id": { "entity_id": "input_boolean.sleep_mode", "device_id": null } } ] }, { "id": "lighting_zwave_led_night_mode_notifications", "automation": "- id: lighting_zwave_led_night_mode_notifications\n alias: Z-Wave LED - Night Mode Notifications\n description: Provides notifications when night mode begins/ends\n trigger:\n - platform: state\n entity_id: binary_sensor.night_mode_active\n condition:\n - condition: template\n value_template: '{{ trigger.from_state.state != trigger.to_state.state }}'\n action:\n - choose:\n - conditions:\n - condition: state\n entity_id: binary_sensor.night_mode_active\n state: 'on'\n sequence:\n - service: persistent_notification.create\n data:\n title: Z-Wave LED Night Mode\n message: Night mode is now active (10 PM - 7 AM). Selected LED indicators\n will be turned off.\n notification_id: zwave_led_night_mode\n - conditions:\n - condition: state\n entity_id: binary_sensor.night_mode_active\n state: 'off'\n sequence:\n - service: persistent_notification.create\n data:\n title: Z-Wave LED Day Mode\n message: Day mode is now active. All LED indicators have been restored to\n normal operation.\n notification_id: zwave_led_day_mode\n - delay: 00:05:00\n - service: persistent_notification.dismiss\n data:\n notification_id: zwave_led_day_mode\n mode: single", "config": [ { "name": "night mode active binary sensor", "room": "home", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.night_mode_active", "device_id": null } } ] }, { "id": "'1736869556746'", "automation": "- id: '1736869556746'\n alias: Lights Sunset Sunrise\n description: Automation based on sunrise/sun set\n triggers:\n - event: sunset\n id: Sunset\n trigger: sun\n - event: sunrise\n id: Sunrise\n offset: +00:15:00\n trigger: sun\n actions:\n - target:\n entity_id: light.porch_light\n action: light.turn_{{ 'on' if trigger.id == 'Sunset' else 'off' }}\n - choose:\n - conditions:\n - condition: trigger\n id:\n - Sunset\n sequence:\n - target:\n entity_id: light.hall_light\n data:\n brightness_pct: 100\n action: light.turn_on\n - action: switch.turn_on\n metadata: {}\n data: {}\n target:\n entity_id: switch.tp_link_smart_plug_5e5b_walkway\n - conditions:\n - condition: trigger\n id:\n - Sunrise\n sequence:\n - target:\n entity_id: light.hall_light\n action: light.turn_off\n data: {}\n - action: switch.turn_off\n metadata: {}\n data: {}\n target:\n entity_id: switch.tp_link_smart_plug_5e5b_walkway\n default:\n - data:\n message: 'No Sunrise/Sunset actions (trigger: {{ trigger.id }})'\n name: Lights Sunset Sunrise Automation\n entity_id: sun.sun\n action: logbook.log", "config": [ { "name": "hall light", "room": "hall", "type": "light", "id": { "entity_id": "light.hall_light", "device_id": null } }, { "name": "porch light", "room": "porch", "type": "light", "id": { "entity_id": "light.porch_light", "device_id": null } }, { "name": "walkway smart plug", "room": "outdoor", "type": "switch", "id": { "entity_id": "switch.tp_link_smart_plug_5e5b_walkway", "device_id": null } }, { "name": "Sun", "room": null, "type": "sun", "id": { "entity_id": "sun.sun", "device_id": null } } ] }, { "id": "'1747693281652'", "automation": "- id: '1747693281652'\n alias: KitchenAndLivingRoomDimmers\n description: Kitchen and Living Room Dimmers - updated for actual device topology\n triggers:\n - platform: mqtt\n topic: zigbee2mqtt/Kitchen_Dimmer/action\n id: kitchen_dimmer\n - platform: mqtt\n topic: zigbee2mqtt/LivingRoom_Dimmer/action\n id: living_room_dimmer\n conditions: []\n actions:\n - action: logbook.log\n data:\n name: Dimmer Debug\n message: 'Device: {{ trigger.id }}, Payload: {{ trigger.payload }}'\n - choose:\n - conditions:\n - condition: template\n value_template: '{{ trigger.id == ''kitchen_dimmer'' and trigger.payload ==\n ''on_press_release'' }}'\n sequence:\n - action: logbook.log\n data:\n name: Kitchen Dimmer Action\n message: Turning on kitchen lights\n - action: light.turn_on\n target:\n entity_id: light.kitchen_lights\n continue_on_error: true\n - conditions:\n - condition: template\n value_template: '{{ trigger.id == ''kitchen_dimmer'' and trigger.payload ==\n ''off_press_release'' }}'\n sequence:\n - action: logbook.log\n data:\n name: Kitchen Dimmer Action\n message: Turning off kitchen lights\n - action: light.turn_off\n target:\n entity_id: light.kitchen_lights\n continue_on_error: true\n - conditions:\n - condition: template\n value_template: '{{ trigger.id == ''living_room_dimmer'' and trigger.payload\n == ''on_press_release'' }}'\n sequence:\n - action: logbook.log\n data:\n name: Living Room Dimmer Action\n message: Turning on living room lights\n - action: light.turn_on\n target:\n entity_id: light.livingroom_lights\n continue_on_error: true\n - action: light.turn_on\n target:\n entity_id:\n - light.rgbcw_lightbulb1\n - light.rgbcw_lightbulb2\n - light.rgbcw_lightbulb3\n - light.rgbcw_lightbulb4\n - light.rgbcw_lightbulb5\n continue_on_error: true\n - conditions:\n - condition: template\n value_template: '{{ trigger.id == ''living_room_dimmer'' and trigger.payload\n == ''off_press_release'' }}'\n sequence:\n - action: logbook.log\n data:\n name: Living Room Dimmer Action\n message: Turning off living room lights\n - action: light.turn_off\n target:\n entity_id: light.livingroom_lights\n continue_on_error: true\n - action: light.turn_off\n target:\n entity_id:\n - light.rgbcw_lightbulb1\n - light.rgbcw_lightbulb2\n - light.rgbcw_lightbulb3\n - light.rgbcw_lightbulb4\n - light.rgbcw_lightbulb5\n continue_on_error: true\n - conditions:\n - condition: template\n value_template: '{{ trigger.id == ''kitchen_dimmer'' and trigger.payload ==\n ''up_press_release'' }}'\n sequence:\n - action: logbook.log\n data:\n name: Kitchen Dimmer Action\n message: Increasing kitchen brightness (press)\n - action: light.turn_on\n data:\n brightness_step_pct: 10\n target:\n entity_id: light.kitchen_lights\n continue_on_error: true\n - conditions:\n - condition: template\n value_template: '{{ trigger.id == ''kitchen_dimmer'' and trigger.payload ==\n ''up_hold_release'' }}'\n sequence:\n - action: logbook.log\n data:\n name: Kitchen Dimmer Action\n message: Increasing kitchen brightness (hold)\n - action: light.turn_on\n data:\n brightness_step_pct: 30\n target:\n entity_id: light.kitchen_lights\n continue_on_error: true\n - conditions:\n - condition: template\n value_template: '{{ trigger.id == ''kitchen_dimmer'' and trigger.payload ==\n ''down_press_release'' }}'\n sequence:\n - action: logbook.log\n data:\n name: Kitchen Dimmer Action\n message: Decreasing kitchen brightness (press)\n - action: light.turn_on\n data:\n brightness_step_pct: -10\n target:\n entity_id: light.kitchen_lights\n continue_on_error: true\n - conditions:\n - condition: template\n value_template: '{{ trigger.id == ''kitchen_dimmer'' and trigger.payload ==\n ''down_hold_release'' }}'\n sequence:\n - action: logbook.log\n data:\n name: Kitchen Dimmer Action\n message: Decreasing kitchen brightness (hold)\n - action: light.turn_on\n data:\n brightness_step_pct: -30\n target:\n entity_id: light.kitchen_lights\n continue_on_error: true\n - conditions:\n - condition: template\n value_template: '{{ trigger.id == ''living_room_dimmer'' and trigger.payload\n == ''up_press_release'' }}'\n sequence:\n - action: logbook.log\n data:\n name: Living Room Dimmer Action\n message: Increasing living room brightness (press)\n - action: light.turn_on\n data:\n brightness_step_pct: 10\n target:\n entity_id: light.livingroom_lights\n continue_on_error: true\n - conditions:\n - condition: template\n value_template: '{{ trigger.id == ''living_room_dimmer'' and trigger.payload\n == ''up_hold_release'' }}'\n sequence:\n - action: logbook.log\n data:\n name: Living Room Dimmer Action\n message: Increasing living room brightness (hold)\n - action: light.turn_on\n data:\n brightness_step_pct: 30\n target:\n entity_id: light.livingroom_lights\n continue_on_error: true\n - conditions:\n - condition: template\n value_template: '{{ trigger.id == ''living_room_dimmer'' and trigger.payload\n == ''down_press_release'' }}'\n sequence:\n - action: logbook.log\n data:\n name: Living Room Dimmer Action\n message: Decreasing living room brightness (press)\n - action: light.turn_on\n data:\n brightness_step_pct: -10\n target:\n entity_id: light.livingroom_lights\n continue_on_error: true\n - conditions:\n - condition: template\n value_template: '{{ trigger.id == ''living_room_dimmer'' and trigger.payload\n == ''down_hold_release'' }}'\n sequence:\n - action: logbook.log\n data:\n name: Living Room Dimmer Action\n message: Decreasing living room brightness (hold)\n - action: light.turn_on\n data:\n brightness_step_pct: -30\n target:\n entity_id: light.livingroom_lights\n continue_on_error: true\n default: []\n mode: queued\n max: 10", "config": [ { "name": "kitchen lights", "room": "kitchen", "type": "light", "id": { "entity_id": "light.kitchen_lights", "device_id": null } }, { "name": "rgbcw lightbulb 1", "room": "living_room", "type": "light", "id": { "entity_id": "light.rgbcw_lightbulb1", "device_id": null } }, { "name": "rgbcw lightbulb 2", "room": "living_room", "type": "light", "id": { "entity_id": "light.rgbcw_lightbulb2", "device_id": null } }, { "name": "rgbcw lightbulb 3", "room": "living_room", "type": "light", "id": { "entity_id": "light.rgbcw_lightbulb3", "device_id": null } }, { "name": "rgbcw lightbulb 4", "room": "living_room", "type": "light", "id": { "entity_id": "light.rgbcw_lightbulb4", "device_id": null } }, { "name": "rgbcw lightbulb 5", "room": "living_room", "type": "light", "id": { "entity_id": "light.rgbcw_lightbulb5", "device_id": null } }, { "name": "livingroom lights", "room": "living_room", "type": "light", "id": { "entity_id": "light.livingroom_lights", "device_id": null } } ] }, { "id": "AI Suggestions - New Entity Detection", "automation": "- alias: AI Suggestions - New Entity Detection\n description: Generates automation suggestions whenever new entities are registered\n in Home Assistant\n trigger:\n - platform: event\n event_type: entity_registry_updated\n event_data:\n action: create\n - platform: event\n event_type: entity_registry_updated\n event_data:\n action: update\n condition:\n - condition: template\n value_template: \"{% set automation = states.automation.ai_suggestions_new_entity_detection\\\n \\ %} {% if automation and automation.attributes.last_triggered %}\\n {% set\\\n \\ hours_since = ((now() - as_datetime(automation.attributes.last_triggered)).total_seconds()\\\n \\ / 3600) | float %}\\n {{ hours_since > 1.0 }}\\n{% else %}\\n true\\n{% endif\\\n \\ %}\"\n action:\n - service: ai_automation_suggester.generate_suggestions\n target: {}\n data: {}", "config": [ { "name": "ai automation suggester", "room": "utility", "type": "ai_automation_suggester", "id": { "entity_id": "ai_automation_suggester.generate_suggestions", "device_id": null } } ] }, { "id": "notification_deduplication_cleanup_v2", "automation": "- id: notification_deduplication_cleanup_v2\n alias: Notification - Deduplication Cleanup\n description: Clean up old deduplication hashes periodically\n trigger:\n - platform: time\n at: 03:00:00\n condition:\n - condition: state\n entity_id: input_boolean.notification_deduplication_enabled\n state: 'on'\n action:\n - service: input_text.set_value\n target:\n entity_id: input_text.unified_notification_last_hash\n data:\n value: ''\n - service: input_text.set_value\n target:\n entity_id: input_text.unified_notification_context\n data:\n value: ''\n - service: input_text.set_value\n target:\n entity_id: input_text.notification_system_status\n data:\n value: Deduplication cleaned at {{ now().strftime('%H:%M') }}", "config": [ { "name": "notification deduplication enabled boolean", "room": "utility", "type": "input_boolean", "id": { "entity_id": "input_boolean.notification_deduplication_enabled", "device_id": null } }, { "name": "unified notification last hash text", "room": "utility", "type": "input_text", "id": { "entity_id": "input_text.unified_notification_last_hash", "device_id": null } }, { "name": "unified notification context text", "room": "utility", "type": "input_text", "id": { "entity_id": "input_text.unified_notification_context", "device_id": null } }, { "name": "notification system status text", "room": "utility", "type": "input_text", "id": { "entity_id": "input_text.notification_system_status", "device_id": null } } ] }, { "id": "notification_rate_limit_reset_v2", "automation": "- id: notification_rate_limit_reset_v2\n alias: Notification - Rate Limit Reset\n description: Reset notification rate limit hourly\n trigger:\n - platform: time_pattern\n minutes: 0\n action:\n - service: input_datetime.set_datetime\n entity_id: input_datetime.notification_rate_limit_reset\n data:\n datetime: '{{ (now() + timedelta(hours=1)) }}'\n - service: input_text.set_value\n target:\n entity_id: input_text.notification_system_status\n data:\n value: Rate limit reset at {{ now().strftime('%H:%M') }}", "config": [ { "name": "notification system status text", "room": "utility", "type": "input_text", "id": { "entity_id": "input_text.notification_system_status", "device_id": null } }, { "name": "notification rate limit reset datetime", "room": "utility", "type": "input_datetime", "id": { "entity_id": "input_datetime.notification_rate_limit_reset", "device_id": null } } ] }, { "id": "notification_test_mode_reminder_v2", "automation": "- id: notification_test_mode_reminder_v2\n alias: Notification - Test Mode Reminder\n description: Remind when test mode has been on for too long\n trigger:\n - platform: state\n entity_id: input_boolean.notification_test_mode\n to: 'on'\n for:\n hours: 1\n action:\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: โš ๏ธ Notification Test Mode\n message: Notification test mode has been active for 1 hour. Consider disabling\n it.\n data:\n tag: notification_test_reminder", "config": [ { "name": "notification test mode boolean", "room": "utility", "type": "input_boolean", "id": { "entity_id": "input_boolean.notification_test_mode", "device_id": null } } ] }, { "id": "postgresql_health_check", "automation": "- id: postgresql_health_check\n alias: PostgreSQL - Daily Health Check\n description: Check PostgreSQL database health and connection status daily\n trigger:\n - platform: time\n at: 03:00:00\n action:\n - service: shell_command.postgresql_health\n - delay: 00:00:30\n - if:\n - condition: template\n value_template: '{{ states(''sensor.postgresql_health_status'') == ''error''\n }}'\n then:\n - service: script.send_deduplicated_notification\n data:\n appliance: postgresql\n priority: critical\n title: ๐Ÿšจ POSTGRESQL HEALTH ISSUE\n message: 'PostgreSQL database health check failed!\n\n\n Status: {{ states(''sensor.postgresql_health_status'') }}\n\n Connection: {{ state_attr(''sensor.postgresql_health_status'', ''connection'')\n }}\n\n Last Check: {{ state_attr(''sensor.postgresql_health_status'', ''last_check'')\n }}\n\n\n Action required: Database investigation needed.\n\n '\n tag: postgresql_health\n channel: System Alerts\n ttl: 0", "config": [ { "name": "postgresql health shell command", "room": "database", "type": "shell_command", "id": { "entity_id": "shell_command.postgresql_health", "device_id": null } }, { "name": "postgresql health status sensor", "room": "database", "type": "sensor", "id": { "entity_id": "sensor.postgresql_health_status", "device_id": null } }, { "name": "send deduplicated notification script", "room": "utility", "type": "script", "id": { "entity_id": "script.send_deduplicated_notification", "device_id": null } } ] }, { "id": "postgresql_weekly_maintenance", "automation": "- id: postgresql_weekly_maintenance\n alias: PostgreSQL - Weekly Maintenance\n description: Perform weekly PostgreSQL maintenance and statistics update\n trigger:\n - platform: time\n at: 02:00:00\n condition:\n - condition: time\n weekday:\n - sun\n - condition: template\n value_template: '{{ states(''sensor.postgresql_database_size_mb'') | int(0) >\n 100 }}'\n action:\n - service: shell_command.postgresql_maintenance\n - delay: 00:02:00\n - service: script.send_deduplicated_notification\n data:\n appliance: postgresql\n priority: normal\n title: โœ… PostgreSQL Maintenance Complete\n message: 'Weekly PostgreSQL maintenance completed.\n\n\n Database Size: {{ states(''sensor.postgresql_database_size_mb'') }} MB\n\n Status: {{ states(''sensor.postgresql_health_status'') }}\n\n Tables Analyzed: All core tables\n\n '\n tag: postgresql_maintenance\n channel: System Status", "config": [ { "name": "postgresql health status sensor", "room": "database", "type": "sensor", "id": { "entity_id": "sensor.postgresql_health_status", "device_id": null } }, { "name": "send deduplicated notification script", "room": "utility", "type": "script", "id": { "entity_id": "script.send_deduplicated_notification", "device_id": null } }, { "name": "postgresql database size mb sensor", "room": "database", "type": "sensor", "id": { "entity_id": "sensor.postgresql_database_size_mb", "device_id": null } }, { "name": "postgresql maintenance shell command", "room": "database", "type": "shell_command", "id": { "entity_id": "shell_command.postgresql_maintenance", "device_id": null } } ] }, { "id": "postgresql_hourly_backup_peak", "automation": "- id: postgresql_hourly_backup_peak\n alias: PostgreSQL - Hourly Backup (Peak Hours) - Phase 3 Optimized\n description: Create hourly PostgreSQL backups during peak usage hours - Event driven\n mode: queued\n max: 3\n trigger:\n - platform: event\n event_type: postgresql_schedule_trigger\n event_data:\n task_type: hourly_backup\n condition:\n - condition: state\n entity_id: input_boolean.postgresql_scheduler_enabled\n state: 'on'\n - condition: template\n value_template: '{{ trigger.event.data.backup_type == ''peak_hours'' }}'\n action:\n - service: shell_command.postgresql_backup\n - service: counter.increment\n target:\n entity_id: counter.postgresql_phase3_triggers", "config": [ { "name": "postgresql scheduler enabled boolean", "room": "database", "type": "input_boolean", "id": { "entity_id": "input_boolean.postgresql_scheduler_enabled", "device_id": null } }, { "name": "postgresql backup shell command", "room": "database", "type": "shell_command", "id": { "entity_id": "shell_command.postgresql_backup", "device_id": null } }, { "name": "postgresql phase3 triggers counter", "room": "database", "type": "counter", "id": { "entity_id": "counter.postgresql_phase3_triggers", "device_id": null } } ] }, { "id": "postgresql_backup_performance_alert", "automation": "- id: postgresql_backup_performance_alert\n alias: PostgreSQL - Backup Performance Alert\n description: Alert when PostgreSQL backup performance degrades\n trigger:\n - platform: state\n entity_id: binary_sensor.postgresql_backup_performance_issue\n to: 'on'\n for:\n minutes: 2\n action:\n - service: script.send_deduplicated_notification\n data:\n appliance: postgresql\n priority: high\n title: โš ๏ธ PostgreSQL Backup Performance Issue\n message: 'PostgreSQL backup performance has degraded:\n\n\n Status: {{ states(''sensor.postgresql_backup_performance'') }}\n\n Duration: {{ state_attr(''sensor.postgresql_backup_performance'', ''backup_duration'')\n }}\n\n Size: {{ state_attr(''sensor.postgresql_backup_performance'', ''backup_size'')\n }}\n\n Time: {{ state_attr(''sensor.postgresql_backup_performance'', ''last_backup_time'')\n }}\n\n\n {% if states(''sensor.postgresql_backup_duration_seconds'') | int(0) > 5 %}\n\n Backup is taking longer than expected (>5 seconds).\n\n {% endif %}\n\n {% if states(''sensor.postgresql_backup_performance'') != ''success'' %}\n\n Backup is failing - check PostgreSQL connectivity.\n\n {% endif %}\n\n '\n tag: postgresql_backup_performance\n channel: System Alerts", "config": [ { "name": "send deduplicated notification script", "room": "utility", "type": "script", "id": { "entity_id": "script.send_deduplicated_notification", "device_id": null } }, { "name": "postgresql backup performance issue binary sensor", "room": "database", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.postgresql_backup_performance_issue", "device_id": null } }, { "name": "postgresql backup performance sensor", "room": "database", "type": "sensor", "id": { "entity_id": "sensor.postgresql_backup_performance", "device_id": null } }, { "name": "postgresql backup duration seconds sensor", "room": "database", "type": "sensor", "id": { "entity_id": "sensor.postgresql_backup_duration_seconds", "device_id": null } } ] }, { "id": "postgresql_backup_retention_management", "automation": "- id: postgresql_backup_retention_management\n alias: PostgreSQL - Backup Retention Management - Phase 3 Optimized\n description: Manage PostgreSQL backup retention schedules - Event driven\n mode: single\n trigger:\n - platform: event\n event_type: postgresql_schedule_trigger\n event_data:\n task_type: retention_management\n condition:\n - condition: state\n entity_id: input_boolean.postgresql_scheduler_enabled\n state: 'on'\n - condition: template\n value_template: '{{ trigger.event.data.schedule_time == ''04:00:00'' }}'\n action:\n - service: shell_command.postgresql_retention\n - service: counter.increment\n target:\n entity_id: counter.postgresql_phase3_triggers", "config": [ { "name": "postgresql scheduler enabled boolean", "room": "database", "type": "input_boolean", "id": { "entity_id": "input_boolean.postgresql_scheduler_enabled", "device_id": null } }, { "name": "postgresql phase3 triggers counter", "room": "database", "type": "counter", "id": { "entity_id": "counter.postgresql_phase3_triggers", "device_id": null } }, { "name": "postgresql retention shell command", "room": "database", "type": "shell_command", "id": { "entity_id": "shell_command.postgresql_retention", "device_id": null } } ] }, { "id": "postgresql_scheduler", "automation": "- id: postgresql_scheduler\n alias: PostgreSQL Scheduler - Phase 3 Optimized\n description: Event-driven scheduler replacing time-based triggers\n mode: single\n trigger:\n - platform: time\n at: 00:00:00\n condition:\n - condition: state\n entity_id: input_boolean.postgresql_scheduler_enabled\n state: 'on'\n action:\n - service: input_datetime.set_datetime\n target:\n entity_id: input_datetime.postgresql_scheduler_last_run\n data:\n datetime: '{{ now() }}'\n - delay: 04:00:00\n - event: postgresql_schedule_trigger\n event_data:\n task_type: retention_management\n schedule_time: 04:00:00\n - service: counter.increment\n target:\n entity_id: counter.postgresql_phase3_triggers\n - delay: 03:00:00\n - event: postgresql_schedule_trigger\n event_data:\n task_type: hourly_backup\n schedule_time: 07:00:00\n backup_type: peak_hours\n - service: counter.increment\n target:\n entity_id: counter.postgresql_phase3_triggers\n - delay: 04:00:00\n - event: postgresql_schedule_trigger\n event_data:\n task_type: hourly_backup\n schedule_time: '11:00:00'\n backup_type: peak_hours\n - service: counter.increment\n target:\n entity_id: counter.postgresql_phase3_triggers\n - delay: 04:00:00\n - event: postgresql_schedule_trigger\n event_data:\n task_type: hourly_backup\n schedule_time: '15:00:00'\n backup_type: peak_hours\n - service: counter.increment\n target:\n entity_id: counter.postgresql_phase3_triggers\n - delay: 04:00:00\n - event: postgresql_schedule_trigger\n event_data:\n task_type: hourly_backup\n schedule_time: '19:00:00'\n backup_type: peak_hours\n - service: counter.increment\n target:\n entity_id: counter.postgresql_phase3_triggers\n - delay: 04:00:00\n - event: postgresql_schedule_trigger\n event_data:\n task_type: hourly_backup\n schedule_time: '23:00:00'\n backup_type: peak_hours\n - service: counter.increment\n target:\n entity_id: counter.postgresql_phase3_triggers", "config": [ { "name": "postgresql scheduler enabled boolean", "room": "database", "type": "input_boolean", "id": { "entity_id": "input_boolean.postgresql_scheduler_enabled", "device_id": null } }, { "name": "postgresql phase3 triggers counter", "room": "database", "type": "counter", "id": { "entity_id": "counter.postgresql_phase3_triggers", "device_id": null } }, { "name": "postgresql scheduler last run datetime", "room": "database", "type": "input_datetime", "id": { "entity_id": "input_datetime.postgresql_scheduler_last_run", "device_id": null } } ] }, { "id": "memory_pressure_notification", "automation": "- id: memory_pressure_notification\n alias: 'System Monitor: Memory Pressure Alert'\n description: Notifies when system memory is under pressure\n trigger:\n - platform: state\n entity_id: binary_sensor.memory_pressure_alert\n to: 'on'\n for: 00:02:00\n condition:\n - condition: template\n value_template: '{{ states(''sensor.glances_ram_used_percent'') | float(0) > 75\n }}\n\n '\n action:\n - service: persistent_notification.create\n data:\n title: ๐Ÿ”ด Memory Pressure Detected\n message: 'System memory usage is high: {{ states(''sensor.glances_ram_used_percent'')\n | float(0) | round(1) }}%\n\n Free memory: {{ (states(''sensor.glances_ram_free'') | float(0) / 1024 / 1024\n / 1024) | round(2) }}GB Swap usage: {{ states(''sensor.glances_swap_used_percent'')\n | float(0) | round(1) }}%\n\n Consider restarting Home Assistant or investigating memory-intensive processes.\n\n '\n notification_id: memory_pressure_alert", "config": [ { "name": "memory pressure alert binary sensor", "room": "system", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.memory_pressure_alert", "device_id": null } }, { "name": "glances ram used percent sensor", "room": "system", "type": "sensor", "id": { "entity_id": "sensor.glances_ram_used_percent", "device_id": null } }, { "name": "glances ram free sensor", "room": "system", "type": "sensor", "id": { "entity_id": "sensor.glances_ram_free", "device_id": null } }, { "name": "glances swap used percent sensor", "room": "system", "type": "sensor", "id": { "entity_id": "sensor.glances_swap_used_percent", "device_id": null } } ] }, { "id": "memory_pressure_recovery", "automation": "- id: memory_pressure_recovery\n alias: 'System Monitor: Memory Pressure Recovered'\n description: Notifies when memory pressure has been resolved\n trigger:\n - platform: state\n entity_id: binary_sensor.memory_pressure_alert\n to: 'off'\n for: 00:01:00\n condition:\n - condition: template\n value_template: '{{ states(''sensor.glances_ram_used_percent'') | float(0) < 70\n }}\n\n '\n action:\n - service: persistent_notification.dismiss\n data:\n notification_id: memory_pressure_alert\n - service: persistent_notification.create\n data:\n title: โœ… Memory Pressure Resolved\n message: 'System memory usage has returned to normal: {{ states(''sensor.glances_ram_used_percent'')\n | float(0) | round(1) }}%\n\n System Health Score: {{ states(''sensor.system_health_score'') | float(0)\n | round(1) }}%\n\n '\n notification_id: memory_recovery", "config": [ { "name": "memory pressure alert binary sensor", "room": "system", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.memory_pressure_alert", "device_id": null } }, { "name": "glances ram used percent sensor", "room": "system", "type": "sensor", "id": { "entity_id": "sensor.glances_ram_used_percent", "device_id": null } }, { "name": "system health score sensor", "room": "system", "type": "sensor", "id": { "entity_id": "sensor.system_health_score", "device_id": null } } ] }, { "id": "daily_system_health_report", "automation": "- id: daily_system_health_report\n alias: 'System Monitor: Daily Health Report'\n description: Daily system resource utilization report\n trigger:\n - platform: time\n at: 06:00:00\n action:\n - service: logbook.log\n data:\n name: System Health\n message: 'Daily Health Report: Memory: {{ states(''sensor.glances_ram_used_percent'')\n | float(0) | round(1) }}% CPU Load: {{ states(''sensor.glances_cpu_load'')\n | float(0) | round(1) }}% Disk: {{ states(''sensor.glances_disk_used_percent'')\n | float(0) | round(1) }}% Health Score: {{ states(''sensor.system_health_score'')\n | float(0) | round(1) }}% Status: {{ states(''sensor.memory_status'') }}\n\n '", "config": [ { "name": "glances ram used percent sensor", "room": "system", "type": "sensor", "id": { "entity_id": "sensor.glances_ram_used_percent", "device_id": null } }, { "name": "system health score sensor", "room": "system", "type": "sensor", "id": { "entity_id": "sensor.system_health_score", "device_id": null } }, { "name": "memory status sensor", "room": "system", "type": "sensor", "id": { "entity_id": "sensor.memory_status", "device_id": null } }, { "name": "glances cpu load sensor", "room": "system", "type": "sensor", "id": { "entity_id": "sensor.glances_cpu_load", "device_id": null } }, { "name": "glances disk used percent sensor", "room": "system", "type": "sensor", "id": { "entity_id": "sensor.glances_disk_used_percent", "device_id": null } } ] }, { "id": "'1742000000001'", "automation": "- id: '1742000000001'\n alias: Update Map Entities Sensor\n description: Forces the map entities sensor to refresh when presence changes\n trigger:\n - platform: state\n entity_id: binary_sensor.hide_home_icon\n action:\n - delay:\n seconds: 1\n - service: homeassistant.update_entity\n target:\n entity_id: sensor.map_entities\n - service: persistent_notification.create\n data:\n title: Map Entities Update\n message: 'Map entities sensor refreshed: {{ states(''sensor.map_entities'')\n }}'\n notification_id: map_entities_update", "config": [ { "name": "hide home icon binary sensor", "room": "home", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.hide_home_icon", "device_id": null } }, { "name": "map entities sensor", "room": "home", "type": "sensor", "id": { "entity_id": "sensor.map_entities", "device_id": null } } ] }, { "id": "test_framework_orchestrator", "automation": "- id: test_framework_orchestrator\n alias: 'Test Framework: Main Orchestrator'\n description: Coordinates execution of all domain test suites\n trigger:\n - platform: state\n entity_id: input_boolean.system_testing_mode\n to: 'on'\n action:\n - service: input_text.set_value\n target:\n entity_id: input_text.test_results_summary\n data:\n value: Test execution started at {{ now().strftime('%H:%M:%S') }}\n - service: input_select.select_option\n target:\n entity_id: input_select.current_test_domain\n data:\n option: Appliance\n - delay: 00:00:02\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.run_appliance_tests", "config": [ { "name": "system testing mode boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.system_testing_mode", "device_id": null } }, { "name": "test results summary text", "room": "testing", "type": "input_text", "id": { "entity_id": "input_text.test_results_summary", "device_id": null } }, { "name": "current test domain select", "room": "testing", "type": "input_select", "id": { "entity_id": "input_select.current_test_domain", "device_id": null } }, { "name": "run appliance tests boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.run_appliance_tests", "device_id": null } } ] }, { "id": "test_appliance_domain_comprehensive", "automation": "- id: test_appliance_domain_comprehensive\n alias: 'Test Framework: Appliance Domain Suite'\n description: Comprehensive testing of appliance management functionality\n trigger:\n - platform: state\n entity_id: input_boolean.run_appliance_tests\n to: 'on'\n condition:\n - condition: state\n entity_id: input_boolean.system_testing_mode\n state: 'on'\n action:\n - service: logbook.log\n data:\n name: Test Framework\n message: Starting appliance domain tests\n entity_id: input_boolean.run_appliance_tests\n - service: shell_command.validate_appliance_package\n - delay: 00:00:05\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.appliance_test_simulation\n - service: input_number.set_value\n target:\n entity_id: input_number.test_appliance_power_simulation\n data:\n value: 1200\n - delay: 00:00:10\n - service: input_number.set_value\n target:\n entity_id: input_number.test_appliance_power_simulation\n data:\n value: 5\n - delay: 00:00:05\n - service: input_boolean.turn_off\n target:\n entity_id: input_boolean.appliance_test_simulation\n - service: logbook.log\n data:\n name: Test Framework\n message: Appliance domain tests completed\n entity_id: input_boolean.run_appliance_tests\n - service: input_boolean.turn_off\n target:\n entity_id: input_boolean.run_appliance_tests\n - service: input_select.select_option\n target:\n entity_id: input_select.current_test_domain\n data:\n option: Lighting\n - delay: 00:00:02\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.run_lighting_tests", "config": [ { "name": "system testing mode boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.system_testing_mode", "device_id": null } }, { "name": "current test domain select", "room": "testing", "type": "input_select", "id": { "entity_id": "input_select.current_test_domain", "device_id": null } }, { "name": "run appliance tests boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.run_appliance_tests", "device_id": null } }, { "name": "validate appliance package shell command", "room": "testing", "type": "shell_command", "id": { "entity_id": "shell_command.validate_appliance_package", "device_id": null } }, { "name": "appliance test simulation boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.appliance_test_simulation", "device_id": null } }, { "name": "test appliance power simulation number", "room": "testing", "type": "input_number", "id": { "entity_id": "input_number.test_appliance_power_simulation", "device_id": null } }, { "name": "run lighting tests boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.run_lighting_tests", "device_id": null } } ] }, { "id": "test_lighting_domain_comprehensive", "automation": "- id: test_lighting_domain_comprehensive\n alias: 'Test Framework: Lighting Domain Suite'\n description: Comprehensive testing of lighting control functionality\n trigger:\n - platform: state\n entity_id: input_boolean.run_lighting_tests\n to: 'on'\n condition:\n - condition: state\n entity_id: input_boolean.system_testing_mode\n state: 'on'\n action:\n - service: logbook.log\n data:\n name: Test Framework\n message: Starting lighting domain tests\n entity_id: input_boolean.run_lighting_tests\n - service: shell_command.validate_lighting_package\n - delay: 00:00:05\n - service: logbook.log\n data:\n name: Test Framework\n message: Testing LED RF command structure (simulation)\n entity_id: input_boolean.run_lighting_tests\n - delay: 00:00:10\n - service: logbook.log\n data:\n name: Test Framework\n message: Lighting domain tests completed\n entity_id: input_boolean.run_lighting_tests\n - service: input_boolean.turn_off\n target:\n entity_id: input_boolean.run_lighting_tests\n - service: input_select.select_option\n target:\n entity_id: input_select.current_test_domain\n data:\n option: Environmental\n - delay: 00:00:02\n - service: input_boolean.turn_on\n target:\n entity_id: input_boolean.run_environmental_tests", "config": [ { "name": "system testing mode boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.system_testing_mode", "device_id": null } }, { "name": "current test domain select", "room": "testing", "type": "input_select", "id": { "entity_id": "input_select.current_test_domain", "device_id": null } }, { "name": "run lighting tests boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.run_lighting_tests", "device_id": null } }, { "name": "validate lighting package shell command", "room": "testing", "type": "shell_command", "id": { "entity_id": "shell_command.validate_lighting_package", "device_id": null } }, { "name": "run environmental tests boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.run_environmental_tests", "device_id": null } } ] }, { "id": "test_environmental_domain_comprehensive", "automation": "- id: test_environmental_domain_comprehensive\n alias: 'Test Framework: Environmental Domain Suite'\n description: Comprehensive testing of environmental systems functionality\n trigger:\n - platform: state\n entity_id: input_boolean.run_environmental_tests\n to: 'on'\n condition:\n - condition: state\n entity_id: input_boolean.system_testing_mode\n state: 'on'\n action:\n - service: logbook.log\n data:\n name: Test Framework\n message: Starting environmental domain tests\n entity_id: input_boolean.run_environmental_tests\n - service: shell_command.validate_environmental_package\n - delay: 00:00:05\n - service: logbook.log\n data:\n name: Test Framework\n message: Validating hydroponics automation structure\n entity_id: input_boolean.run_environmental_tests\n - delay: 00:00:10\n - service: logbook.log\n data:\n name: Test Framework\n message: Environmental domain tests completed\n entity_id: input_boolean.run_environmental_tests\n - service: input_boolean.turn_off\n target:\n entity_id: input_boolean.run_environmental_tests\n - service: input_select.select_option\n target:\n entity_id: input_select.current_test_domain\n data:\n option: None\n - service: input_text.set_value\n target:\n entity_id: input_text.test_results_summary\n data:\n value: All tests completed at {{ now().strftime('%H:%M:%S') }}\n - service: input_boolean.turn_off\n target:\n entity_id: input_boolean.system_testing_mode\n - service: logbook.log\n data:\n name: Test Framework\n message: Complete test suite execution finished", "config": [ { "name": "system testing mode boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.system_testing_mode", "device_id": null } }, { "name": "test results summary text", "room": "testing", "type": "input_text", "id": { "entity_id": "input_text.test_results_summary", "device_id": null } }, { "name": "current test domain select", "room": "testing", "type": "input_select", "id": { "entity_id": "input_select.current_test_domain", "device_id": null } }, { "name": "run environmental tests boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.run_environmental_tests", "device_id": null } }, { "name": "validate environmental package shell command", "room": "testing", "type": "shell_command", "id": { "entity_id": "shell_command.validate_environmental_package", "device_id": null } } ] }, { "id": "test_performance_monitoring", "automation": "- id: test_performance_monitoring\n alias: 'Test Framework: Performance Monitoring'\n description: Monitors system performance during testing\n trigger:\n - platform: time_pattern\n seconds: /30\n condition:\n - condition: state\n entity_id: input_boolean.performance_testing_active\n state: 'on'\n action:\n - service: shell_command.capture_performance_metrics", "config": [ { "name": "performance testing active boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.performance_testing_active", "device_id": null } }, { "name": "capture performance metrics shell command", "room": "testing", "type": "shell_command", "id": { "entity_id": "shell_command.capture_performance_metrics", "device_id": null } } ] }, { "id": "test_timeout_safety", "automation": "- id: test_timeout_safety\n alias: 'Test Framework: Timeout Safety'\n description: Prevents tests from running indefinitely\n trigger:\n - platform: state\n entity_id: input_boolean.system_testing_mode\n to: 'on'\n for:\n minutes: '{{ states(''input_number.test_timeout_minutes'') | int }}'\n action:\n - service: logbook.log\n data:\n name: Test Framework\n message: Test timeout reached - forcing shutdown\n - service: input_boolean.turn_off\n target:\n entity_id:\n - input_boolean.run_appliance_tests\n - input_boolean.run_lighting_tests\n - input_boolean.run_environmental_tests\n - input_boolean.system_testing_mode\n - service: input_text.set_value\n target:\n entity_id: input_text.test_results_summary\n data:\n value: Tests TIMED OUT after {{ states('input_number.test_timeout_minutes')\n }} minutes", "config": [ { "name": "system testing mode boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.system_testing_mode", "device_id": null } }, { "name": "test results summary text", "room": "testing", "type": "input_text", "id": { "entity_id": "input_text.test_results_summary", "device_id": null } }, { "name": "run appliance tests boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.run_appliance_tests", "device_id": null } }, { "name": "run lighting tests boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.run_lighting_tests", "device_id": null } }, { "name": "run environmental tests boolean", "room": "testing", "type": "input_boolean", "id": { "entity_id": "input_boolean.run_environmental_tests", "device_id": null } }, { "name": "test timeout minutes number", "room": "testing", "type": "input_number", "id": { "entity_id": "input_number.test_timeout_minutes", "device_id": null } } ] }, { "id": "test_dimmer_lights", "automation": "- id: test_dimmer_lights\n alias: Test Dimmer Lights\n description: Test if the light entities are working\n trigger:\n - platform: time_pattern\n minutes: /1\n condition: []\n action:\n - action: logbook.log\n data:\n name: Test Dimmer Lights\n message: Testing light entities...\n entity_id: automation.test_dimmer_lights\n - action: light.turn_on\n target:\n entity_id: light.livingroom_lights\n data:\n brightness_pct: 50\n continue_on_error: true\n - delay: 5\n - action: light.turn_on\n target:\n entity_id:\n - light.rgbcw_lightbulb1\n - light.rgbcw_lightbulb2\n data:\n brightness_pct: 50\n continue_on_error: true\n - delay: 5\n - action: light.turn_off\n target:\n entity_id:\n - light.livingroom_lights\n - light.rgbcw_lightbulb1\n - light.rgbcw_lightbulb2\n continue_on_error: true", "config": [ { "name": "rgbcw lightbulb 1", "room": "living_room", "type": "light", "id": { "entity_id": "light.rgbcw_lightbulb1", "device_id": null } }, { "name": "rgbcw lightbulb 2", "room": "living_room", "type": "light", "id": { "entity_id": "light.rgbcw_lightbulb2", "device_id": null } }, { "name": "livingroom lights", "room": "living_room", "type": "light", "id": { "entity_id": "light.livingroom_lights", "device_id": null } }, { "name": "Test Dimmer Lights", "room": null, "type": "automation", "id": { "entity_id": "automation.test_dimmer_lights", "device_id": null } } ] }, { "id": "Dishwasher - Cycle Start Detection", "automation": "- alias: Dishwasher - Cycle Start Detection\n description: Detect dishwasher cycle start with proper state tracking to prevent\n duplicate announcements\n mode: single\n trigger:\n - platform: numeric_state\n entity_id: sensor.dishwasher_electric_consumption_w\n above: 50\n for:\n minutes: 2\n condition:\n - condition: and\n conditions:\n - condition: state\n entity_id: input_boolean.dishwasher_cycle_announced\n state: 'off'\n - condition: or\n conditions:\n - condition: state\n entity_id: input_boolean.appliance_quiet_hours_enabled\n state: 'off'\n - condition: time\n after: 07:30:00\n before: '22:30:00'\n action:\n - action: input_boolean.turn_on\n entity_id: input_boolean.dishwasher_cycle_announced\n - service: notify.alexa_media_everywhere\n continue_on_error: true\n data:\n message: The dishwasher cycle has started.\n data:\n type: announce\n - condition: template\n value_template: '{{ states(''media_player.everywhere'') == ''unavailable'' }}'\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: Dishwasher Started\n message: Cycle started at {{ now().strftime('%I:%M %p') }}\n - service: input_text.set_value\n data:\n entity_id: input_text.appliance_last_announcement\n value: Dishwasher cycle started", "config": [ { "name": "everywhere media player", "room": "home", "type": "media_player", "id": { "entity_id": "media_player.everywhere", "device_id": null } }, { "name": "dishwasher electric consumption w sensor", "room": "kitchen", "type": "sensor", "id": { "entity_id": "sensor.dishwasher_electric_consumption_w", "device_id": null } }, { "name": "dishwasher cycle announced boolean", "room": "kitchen", "type": "input_boolean", "id": { "entity_id": "input_boolean.dishwasher_cycle_announced", "device_id": null } }, { "name": "appliance quiet hours enabled boolean", "room": "home", "type": "input_boolean", "id": { "entity_id": "input_boolean.appliance_quiet_hours_enabled", "device_id": null } }, { "name": "appliance last announcement text", "room": "home", "type": "input_text", "id": { "entity_id": "input_text.appliance_last_announcement", "device_id": null } } ] }, { "id": "Dishwasher Cycle Monitoring", "automation": "- alias: Dishwasher Cycle Monitoring\n description: Enhanced dishwasher cycle monitoring with completion detection and\n Alexa announcements (respects quiet hours)\n mode: restart\n trigger:\n - platform: numeric_state\n entity_id: sensor.dishwasher_electric_consumption_w\n below: 5\n for:\n minutes: 5\n condition:\n - condition: numeric_state\n entity_id: sensor.dishwasher_electric_consumption_w\n below: 5\n action:\n - condition: time\n after: 07:30:00\n before: '22:30:00'\n - service: notify.alexa_media_everywhere\n continue_on_error: true\n data:\n message: Dishwasher cycle is complete! Don't forget to open the door to let\n dishes air dry.\n data:\n type: announce\n - action: input_boolean.turn_off\n entity_id: input_boolean.dishwasher_cycle_announced\n - delay:\n minutes: 30\n - condition: template\n value_template: '{{ states(''binary_sensor.dishwasher_door_window_door_is_open'')\n not in [''unknown'', ''unavailable''] }}'\n - condition: state\n entity_id: binary_sensor.dishwasher_door_window_door_is_open\n state: 'off'\n - condition: time\n after: 07:30:00\n before: '22:30:00'\n - service: notify.alexa_media_everywhere\n continue_on_error: true\n data:\n message: 'Reminder: The dishwasher door is still closed. Opening it will help\n dishes dry faster.'\n data:\n type: announce", "config": [ { "name": "dishwasher electric consumption w sensor", "room": "kitchen", "type": "sensor", "id": { "entity_id": "sensor.dishwasher_electric_consumption_w", "device_id": null } }, { "name": "dishwasher cycle announced boolean", "room": "kitchen", "type": "input_boolean", "id": { "entity_id": "input_boolean.dishwasher_cycle_announced", "device_id": null } }, { "name": "dishwasher door window door is open binary sensor", "room": "kitchen", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.dishwasher_door_window_door_is_open", "device_id": null } } ] }, { "id": "Dishwasher - Cycle Completion Announcement", "automation": "- alias: Dishwasher - Cycle Completion Announcement\n description: Announce when dishwasher cycle is complete\n trigger:\n - platform: state\n entity_id: input_boolean.dishwasher_cycle_announced\n from: 'on'\n to: 'off'\n condition:\n - condition: time\n after: 07:00:00\n before: '22:30:00'\n action:\n - service: notify.alexa_media_everywhere\n data:\n message: The dishwasher cycle is complete and ready to be unloaded.\n data:\n type: announce\n - service: input_text.set_value\n target:\n entity_id: input_text.appliance_last_announcement\n data:\n value: Dishwasher complete - {{ now().strftime('%H:%M') }}", "config": [ { "name": "dishwasher cycle announced boolean", "room": "kitchen", "type": "input_boolean", "id": { "entity_id": "input_boolean.dishwasher_cycle_announced", "device_id": null } }, { "name": "appliance last announcement text", "room": "home", "type": "input_text", "id": { "entity_id": "input_text.appliance_last_announcement", "device_id": null } } ] }, { "id": "Dishwasher - Door Left Open Alert", "automation": "- alias: Dishwasher - Door Left Open Alert\n description: Alerts if dishwasher door is left open too long (respects quiet hours)\n trigger:\n - platform: state\n entity_id: binary_sensor.dishwasher_door_window_door_is_open\n to: 'on'\n for:\n hours: 4\n condition:\n - condition: template\n value_template: '{{ states(''binary_sensor.dishwasher_door_window_door_is_open'')\n not in [''unknown'', ''unavailable''] }}'\n - condition: time\n after: 07:30:00\n before: '22:30:00'\n action:\n - service: notify.alexa_media_everywhere\n continue_on_error: true\n data:\n message: The dishwasher door has been open for 4 hours. You may want to close\n it now.\n data:\n type: announce", "config": [ { "name": "dishwasher door window door is open binary sensor", "room": "kitchen", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.dishwasher_door_window_door_is_open", "device_id": null } } ] }, { "id": "Washing Machine - Cycle Start Detection", "automation": "- alias: Washing Machine - Cycle Start Detection\n description: Detects when washing machine starts and announces via Alexa (respects\n quiet hours)\n trigger:\n - platform: numeric_state\n entity_id: sensor.washing_machine_electric_consumption_w\n above: 100\n for:\n minutes: 2\n condition:\n - condition: time\n after: 07:30:00\n before: '22:30:00'\n action:\n - service: notify.alexa_media_everywhere\n continue_on_error: true\n data:\n message: Washing machine cycle has started. I'll let you know when it's finished.\n data:\n type: announce\n - service: logbook.log\n data:\n name: Washing Machine Monitoring\n message: 'Washing machine cycle started - power consumption: {{ states(''sensor.washing_machine_electric_consumption_w'')\n }}W'", "config": [ { "name": "washing machine electric consumption w sensor", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.washing_machine_electric_consumption_w", "device_id": null } } ] }, { "id": "Washing Machine Cycle Monitoring", "automation": "- alias: Washing Machine Cycle Monitoring\n description: Enhanced washing machine cycle monitoring with completion detection\n and progressive reminders (respects quiet hours)\n mode: restart\n trigger:\n - platform: numeric_state\n entity_id: sensor.washing_machine_electric_consumption_w\n below: 5\n for:\n minutes: 3\n condition:\n - condition: numeric_state\n entity_id: sensor.washing_machine_electric_consumption_w\n below: 5\n action:\n - condition: time\n after: 07:30:00\n before: '22:30:00'\n - service: notify.alexa_media_everywhere\n continue_on_error: true\n data:\n message: Washing machine cycle is complete! Time to move your clothes to the\n dryer.\n data:\n type: announce\n - delay:\n minutes: 15\n - condition: time\n after: 07:30:00\n before: '22:30:00'\n - service: notify.alexa_media_everywhere\n continue_on_error: true\n data:\n message: 'Reminder: Your laundry is still waiting in the washing machine.'\n data:\n type: announce\n - delay:\n minutes: 30\n - condition: time\n after: 07:30:00\n before: '22:30:00'\n - service: notify.alexa_media_everywhere\n continue_on_error: true\n data:\n message: 'Final reminder: Please don''t forget about your laundry in the washing\n machine.'\n data:\n type: announce", "config": [ { "name": "washing machine electric consumption w sensor", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.washing_machine_electric_consumption_w", "device_id": null } } ] }, { "id": "Washing Machine - Cycle Completion Announcement", "automation": "- alias: Washing Machine - Cycle Completion Announcement\n description: Announce when washing machine cycle is complete\n trigger:\n - platform: state\n entity_id: input_boolean.washing_machine_cycle_announced\n from: 'on'\n to: 'off'\n condition:\n - condition: time\n after: 07:00:00\n before: '22:30:00'\n action:\n - service: notify.alexa_media_everywhere\n data:\n message: The washing machine cycle is complete. Please move clothes to the dryer.\n data:\n type: announce\n - service: input_text.set_value\n target:\n entity_id: input_text.appliance_last_announcement\n data:\n value: Washer complete - {{ now().strftime('%H:%M') }}", "config": [ { "name": "appliance last announcement text", "room": "home", "type": "input_text", "id": { "entity_id": "input_text.appliance_last_announcement", "device_id": null } }, { "name": "washing machine cycle announced boolean", "room": "laundry", "type": "input_boolean", "id": { "entity_id": "input_boolean.washing_machine_cycle_announced", "device_id": null } } ] }, { "id": "Dryer - Cycle Start Detection", "automation": "- alias: Dryer - Cycle Start Detection\n description: Detects when dryer starts using SmartThings integration (respects quiet\n hours)\n trigger:\n - platform: state\n entity_id: sensor.dryer_machine_state\n to: run\n - platform: state\n entity_id: sensor.dryer_job_state\n to: drying\n condition:\n - condition: template\n value_template: '{{ states(''sensor.dryer_machine_state'') not in [''unknown'',\n ''unavailable''] }}'\n - condition: state\n entity_id: sensor.dryer_machine_state\n state: run\n - condition: time\n after: 07:30:00\n before: '22:30:00'\n action:\n - service: notify.alexa_media_everywhere\n continue_on_error: true\n data:\n message: \"Dryer cycle has started. {% set completion_time = states('sensor.dryer_completion_time')\\\n \\ %} {% if completion_time not in ['unknown', 'unavailable'] and completion_time\\\n \\ != None %}\\n Expected completion time is {{ as_timestamp(completion_time)\\\n \\ | timestamp_custom('%I:%M %p', true) }}.\\n{% else %}\\n I'll let you know\\\n \\ when it's finished.\\n{% endif %}\\n\"\n data:\n type: announce\n - service: logbook.log\n data:\n name: Dryer Monitoring\n message: 'Dryer cycle started - Job state: {{ states(''sensor.dryer_job_state'')\n }}'", "config": [ { "name": "dryer machine state", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.dryer_machine_state", "device_id": null } }, { "name": "dryer job state sensor", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.dryer_job_state", "device_id": null } }, { "name": "dryer completion time sensor", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.dryer_completion_time", "device_id": null } } ] }, { "id": "Dryer - Cycle Completion Announcement", "automation": "- alias: Dryer - Cycle Completion Announcement\n description: Announce when dryer cycle is complete\n trigger:\n - platform: state\n entity_id: input_boolean.dryer_cycle_announced\n from: 'on'\n to: 'off'\n condition:\n - condition: time\n after: 07:00:00\n before: '22:30:00'\n action:\n - service: notify.alexa_media_everywhere\n data:\n message: The dryer cycle is complete. Please remove clothes to prevent wrinkles.\n data:\n type: announce\n - service: input_text.set_value\n target:\n entity_id: input_text.appliance_last_announcement\n data:\n value: Dryer complete - {{ now().strftime('%H:%M') }}", "config": [ { "name": "appliance last announcement text", "room": "home", "type": "input_text", "id": { "entity_id": "input_text.appliance_last_announcement", "device_id": null } }, { "name": "dryer cycle announced boolean", "room": "laundry", "type": "input_boolean", "id": { "entity_id": "input_boolean.dryer_cycle_announced", "device_id": null } } ] }, { "id": "Appliance - Error Monitoring", "automation": "- alias: Appliance - Error Monitoring\n description: Monitor for appliance errors and announce\n trigger:\n - platform: state\n entity_id:\n - sensor.dishwasher_door_status\n - sensor.washing_machine_status\n - sensor.dryer_status\n to: error\n action:\n - service: notify.alexa_media_everywhere\n data:\n message: 'Attention: {{ trigger.to_state.attributes.friendly_name }} is reporting\n an error. Please check the appliance.'\n data:\n type: announce\n - service: persistent_notification.create\n data:\n title: ๐Ÿšจ Appliance Error\n message: '{{ trigger.to_state.attributes.friendly_name }} error at {{ now().strftime(''%H:%M'')\n }}'\n notification_id: appliance_error_{{ trigger.entity_id.split('.')[1] }}", "config": [ { "name": "washing machine status", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.washing_machine_status", "device_id": null } }, { "name": "dryer status sensor", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.dryer_status", "device_id": null } }, { "name": "dishwasher door status sensor", "room": "kitchen", "type": "sensor", "id": { "entity_id": "sensor.dishwasher_door_status", "device_id": null } } ] }, { "id": "Appliance - Monthly Maintenance Reminder", "automation": "- alias: Appliance - Monthly Maintenance Reminder\n description: Monthly maintenance reminders for appliances\n trigger:\n - platform: time\n at: 09:00:00\n condition:\n - condition: template\n value_template: '{{ now().day == 1 }}'\n action:\n - service: notify.alexa_media_everywhere\n data:\n message: 'Monthly appliance maintenance reminder: Please clean the dishwasher\n filter, check washing machine hoses, and clean the dryer lint trap.'\n data:\n type: announce\n - service: persistent_notification.create\n data:\n title: ๐Ÿ”ง Monthly Appliance Maintenance\n message: 'Time for monthly appliance maintenance:\n\n - Clean dishwasher filter\n\n - Check washing machine hoses\n\n - Clean dryer lint trap\n\n - Wipe down appliance exteriors\n\n '\n notification_id: monthly_maintenance", "config": [] }, { "id": "Appliance - Off-Peak Energy Reminder", "automation": "- alias: Appliance - Off-Peak Energy Reminder\n description: Remind to run appliances during off-peak hours\n trigger:\n - platform: time\n at: '21:00:00'\n condition:\n - condition: time\n weekday:\n - mon\n - tue\n - wed\n - thu\n - fri\n action:\n - service: notify.alexa_media_everywhere\n data:\n message: 'Reminder: Off-peak energy hours start at 10 PM. Consider running the\n dishwasher or washing machine after 10 PM to save on energy costs.'\n data:\n type: announce", "config": [] }, { "id": "Appliance - Maintenance Tracking", "automation": "- alias: Appliance - Maintenance Tracking\n description: Track when maintenance tasks are completed\n trigger:\n - platform: state\n entity_id:\n - input_datetime.dishwasher_last_filter_clean\n - input_datetime.washing_machine_last_hose_check\n to: null\n action:\n - service: notify.alexa_media_everywhere\n data:\n message: Thank you for completing the {{ trigger.to_state.attributes.friendly_name.replace('Last\n ', '').lower() }}. Maintenance has been logged.\n data:\n type: announce\n - service: input_text.set_value\n target:\n entity_id: input_text.appliance_last_announcement\n data:\n value: Maintenance logged - {{ now().strftime('%H:%M') }}", "config": [ { "name": "appliance last announcement text", "room": "home", "type": "input_text", "id": { "entity_id": "input_text.appliance_last_announcement", "device_id": null } }, { "name": "dishwasher last filter clean datetime", "room": "kitchen", "type": "input_datetime", "id": { "entity_id": "input_datetime.dishwasher_last_filter_clean", "device_id": null } }, { "name": "washing machine last hose check datetime", "room": "laundry", "type": "input_datetime", "id": { "entity_id": "input_datetime.washing_machine_last_hose_check", "device_id": null } } ] }, { "id": "Dishwasher - Cycle Start Detection Enhanced", "automation": "- alias: Dishwasher - Cycle Start Detection Enhanced\n description: Enhanced dishwasher cycle start detection with hysteresis to prevent\n false triggers\n mode: single\n trigger:\n - platform: numeric_state\n entity_id: sensor.dishwasher_electric_consumption_w\n above: 50\n for:\n minutes: 3\n condition:\n - condition: and\n conditions:\n - condition: state\n entity_id: input_boolean.dishwasher_cycle_announced\n state: 'off'\n - condition: numeric_state\n entity_id: sensor.dishwasher_electric_consumption_w\n above: 30\n - condition: or\n conditions:\n - condition: state\n entity_id: input_boolean.appliance_quiet_hours_enabled\n state: 'off'\n - condition: time\n after: 07:30:00\n before: '22:30:00'\n action:\n - action: input_boolean.turn_on\n entity_id: input_boolean.dishwasher_cycle_announced\n - service: input_datetime.set_datetime\n target:\n entity_id: input_datetime.dishwasher_cycle_start\n data:\n timestamp: '{{ now().timestamp() }}'\n - service: notify.alexa_media_everywhere\n continue_on_error: true\n data:\n message: The dishwasher cycle has started. Current power consumption is {{ states('sensor.dishwasher_electric_consumption_w')\n | round(0) }} watts.\n data:\n type: announce\n - condition: template\n value_template: '{{ states(''media_player.everywhere'') == ''unavailable'' }}'\n - service: notify.mobile_app_pixel_9_pro_xl\n data:\n title: Dishwasher Started\n message: Cycle started at {{ now().strftime('%I:%M %p') }} - {{ states('sensor.dishwasher_electric_consumption_w')\n | round(0) }}W\n - service: input_text.set_value\n data:\n entity_id: input_text.appliance_last_announcement\n value: Dishwasher cycle started - {{ states('sensor.dishwasher_electric_consumption_w')\n | round(0) }}W", "config": [ { "name": "everywhere media player", "room": "home", "type": "media_player", "id": { "entity_id": "media_player.everywhere", "device_id": null } }, { "name": "dishwasher electric consumption w sensor", "room": "kitchen", "type": "sensor", "id": { "entity_id": "sensor.dishwasher_electric_consumption_w", "device_id": null } }, { "name": "dishwasher cycle announced boolean", "room": "kitchen", "type": "input_boolean", "id": { "entity_id": "input_boolean.dishwasher_cycle_announced", "device_id": null } }, { "name": "appliance quiet hours enabled boolean", "room": "home", "type": "input_boolean", "id": { "entity_id": "input_boolean.appliance_quiet_hours_enabled", "device_id": null } }, { "name": "dishwasher cycle start datetime", "room": "kitchen", "type": "input_datetime", "id": { "entity_id": "input_datetime.dishwasher_cycle_start", "device_id": null } }, { "name": "appliance last announcement text", "room": "home", "type": "input_text", "id": { "entity_id": "input_text.appliance_last_announcement", "device_id": null } } ] }, { "id": "Dishwasher - Cycle Running Monitor", "automation": "- alias: Dishwasher - Cycle Running Monitor\n description: Monitor dishwasher during cycle to handle power fluctuations\n mode: restart\n trigger:\n - platform: numeric_state\n entity_id: sensor.dishwasher_electric_consumption_w\n below: 15\n for:\n minutes: 2\n condition:\n - condition: state\n entity_id: input_boolean.dishwasher_cycle_announced\n state: 'on'\n - condition: template\n value_template: \"{% set start_time = states('input_datetime.dishwasher_cycle_start')\\\n \\ %} {% if start_time not in ['unknown', 'unavailable'] %}\\n {% set elapsed\\\n \\ = (now().timestamp() - as_timestamp(start_time)) / 60 %}\\n {{ elapsed > 10\\\n \\ }} {# Only trigger if cycle has been running for at least 10 minutes #}\\n\\\n {% else %}\\n false\\n{% endif %}\\n\"\n action:\n - delay:\n minutes: 8\n - condition: numeric_state\n entity_id: sensor.dishwasher_electric_consumption_w\n below: 10\n - condition: time\n after: 07:30:00\n before: '22:30:00'\n - variables:\n cycle_duration: \"{% set start_time = states('input_datetime.dishwasher_cycle_start')\\\n \\ %} {% if start_time not in ['unknown', 'unavailable'] %}\\n {% set elapsed_minutes\\\n \\ = ((now().timestamp() - as_timestamp(start_time)) / 60) | round(0) %}\\n\\\n \\ {{ elapsed_minutes }}\\n{% else %}\\n 0\\n{% endif %}\\n\"\n - service: notify.alexa_media_everywhere\n continue_on_error: true\n data:\n message: 'Dishwasher cycle is complete after {{ cycle_duration }} minutes! Don''t\n forget to open the door to let dishes air dry.\n\n '\n data:\n type: announce\n - action: input_boolean.turn_off\n entity_id: input_boolean.dishwasher_cycle_announced\n - delay:\n minutes: 30\n - condition: template\n value_template: '{{ states(''binary_sensor.dishwasher_door_window_door_is_open'')\n not in [''unknown'', ''unavailable''] }}'\n - condition: state\n entity_id: binary_sensor.dishwasher_door_window_door_is_open\n state: 'off'\n - condition: time\n after: 07:30:00\n before: '22:30:00'\n - service: notify.alexa_media_everywhere\n continue_on_error: true\n data:\n message: 'Reminder: The dishwasher door is still closed. Opening it will help\n dishes dry faster.'\n data:\n type: announce", "config": [ { "name": "dishwasher electric consumption w sensor", "room": "kitchen", "type": "sensor", "id": { "entity_id": "sensor.dishwasher_electric_consumption_w", "device_id": null } }, { "name": "dishwasher cycle announced boolean", "room": "kitchen", "type": "input_boolean", "id": { "entity_id": "input_boolean.dishwasher_cycle_announced", "device_id": null } }, { "name": "dishwasher cycle start datetime", "room": "kitchen", "type": "input_datetime", "id": { "entity_id": "input_datetime.dishwasher_cycle_start", "device_id": null } }, { "name": "dishwasher door window door is open binary sensor", "room": "kitchen", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.dishwasher_door_window_door_is_open", "device_id": null } } ] }, { "id": "Washing Machine - Cycle Start Detection Enhanced", "automation": "- alias: Washing Machine - Cycle Start Detection Enhanced\n description: Enhanced washing machine cycle start detection with power confirmation\n mode: single\n trigger:\n - platform: numeric_state\n entity_id: sensor.washing_machine_electric_consumption_w\n above: 100\n for:\n minutes: 3\n condition:\n - condition: and\n conditions:\n - condition: state\n entity_id: input_boolean.washing_machine_cycle_announced\n state: 'off'\n - condition: numeric_state\n entity_id: sensor.washing_machine_electric_consumption_w\n above: 50\n - condition: time\n after: 07:30:00\n before: '22:30:00'\n action:\n - action: input_boolean.turn_on\n entity_id: input_boolean.washing_machine_cycle_announced\n - service: input_datetime.set_datetime\n target:\n entity_id: input_datetime.washing_machine_cycle_start\n data:\n timestamp: '{{ now().timestamp() }}'\n - service: notify.alexa_media_everywhere\n continue_on_error: true\n data:\n message: Washing machine cycle has started at {{ states('sensor.washing_machine_electric_consumption_w')\n | round(0) }} watts. I'll let you know when it's finished.\n data:\n type: announce\n - service: logbook.log\n data:\n name: Washing Machine Monitoring\n message: 'Washing machine cycle started - power consumption: {{ states(''sensor.washing_machine_electric_consumption_w'')\n }}W'", "config": [ { "name": "washing machine electric consumption w sensor", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.washing_machine_electric_consumption_w", "device_id": null } }, { "name": "washing machine cycle announced boolean", "room": "laundry", "type": "input_boolean", "id": { "entity_id": "input_boolean.washing_machine_cycle_announced", "device_id": null } }, { "name": "washing machine cycle start datetime", "room": "laundry", "type": "input_datetime", "id": { "entity_id": "input_datetime.washing_machine_cycle_start", "device_id": null } } ] }, { "id": "Washing Machine - Cycle Completion Enhanced", "automation": "- alias: Washing Machine - Cycle Completion Enhanced\n description: Enhanced washing machine completion detection with progressive reminders\n mode: restart\n trigger:\n - platform: numeric_state\n entity_id: sensor.washing_machine_electric_consumption_w\n below: 10\n for:\n minutes: 5\n condition:\n - condition: state\n entity_id: input_boolean.washing_machine_cycle_announced\n state: 'on'\n - condition: template\n value_template: \"{% set start_time = states('input_datetime.washing_machine_cycle_start')\\\n \\ %} {% if start_time not in ['unknown', 'unavailable'] %}\\n {% set elapsed\\\n \\ = (now().timestamp() - as_timestamp(start_time)) / 60 %}\\n {{ elapsed > 15\\\n \\ }} {# Minimum 15 minutes for a valid cycle #}\\n{% else %}\\n false\\n{% endif\\\n \\ %}\\n\"\n action:\n - delay:\n minutes: 10\n - condition: numeric_state\n entity_id: sensor.washing_machine_electric_consumption_w\n below: 15\n - condition: time\n after: 07:30:00\n before: '22:30:00'\n - variables:\n cycle_duration: \"{% set start_time = states('input_datetime.washing_machine_cycle_start')\\\n \\ %} {% if start_time not in ['unknown', 'unavailable'] %}\\n {% set elapsed_minutes\\\n \\ = ((now().timestamp() - as_timestamp(start_time)) / 60) | round(0) %}\\n\\\n \\ {{ elapsed_minutes }}\\n{% else %}\\n 0\\n{% endif %}\\n\"\n - service: notify.alexa_media_everywhere\n continue_on_error: true\n data:\n message: 'Washing machine cycle is complete after {{ cycle_duration }} minutes!\n Time to move your clothes to the dryer.\n\n '\n data:\n type: announce\n - action: input_boolean.turn_off\n entity_id: input_boolean.washing_machine_cycle_announced\n - delay:\n minutes: 20\n - condition: time\n after: 07:30:00\n before: '22:30:00'\n - service: notify.alexa_media_everywhere\n continue_on_error: true\n data:\n message: 'Reminder: Your laundry is still waiting in the washing machine.'\n data:\n type: announce\n - delay:\n minutes: 40\n - condition: time\n after: 07:30:00\n before: '22:30:00'\n - service: notify.alexa_media_everywhere\n continue_on_error: true\n data:\n message: 'Final reminder: Please don''t forget about your laundry in the washing\n machine.'\n data:\n type: announce", "config": [ { "name": "washing machine electric consumption w sensor", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.washing_machine_electric_consumption_w", "device_id": null } }, { "name": "washing machine cycle announced boolean", "room": "laundry", "type": "input_boolean", "id": { "entity_id": "input_boolean.washing_machine_cycle_announced", "device_id": null } }, { "name": "washing machine cycle start datetime", "room": "laundry", "type": "input_datetime", "id": { "entity_id": "input_datetime.washing_machine_cycle_start", "device_id": null } } ] }, { "id": "Dryer - Cycle Start Detection Enhanced", "automation": "- alias: Dryer - Cycle Start Detection Enhanced\n description: Enhanced dryer start detection using SmartThings with confirmation\n mode: single\n trigger:\n - platform: state\n entity_id: sensor.dryer_machine_state\n to: run\n - platform: state\n entity_id: sensor.dryer_job_state\n to: drying\n condition:\n - condition: and\n conditions:\n - condition: template\n value_template: '{{ states(''sensor.dryer_machine_state'') not in [''unknown'',\n ''unavailable''] }}'\n - condition: state\n entity_id: sensor.dryer_machine_state\n state: run\n - condition: state\n entity_id: input_boolean.dryer_cycle_announced\n state: 'off'\n - condition: time\n after: 07:30:00\n before: '22:30:00'\n action:\n - action: input_boolean.turn_on\n entity_id: input_boolean.dryer_cycle_announced\n - service: input_datetime.set_datetime\n target:\n entity_id: input_datetime.dryer_cycle_start\n data:\n timestamp: '{{ now().timestamp() }}'\n - service: notify.alexa_media_everywhere\n continue_on_error: true\n data:\n message: \"Dryer cycle has started. {% set completion_time = states('sensor.dryer_completion_time')\\\n \\ %} {% if completion_time not in ['unknown', 'unavailable'] and completion_time\\\n \\ != None %}\\n Expected completion time is {{ as_timestamp(completion_time)\\\n \\ | timestamp_custom('%I:%M %p', true) }}.\\n{% else %}\\n I'll monitor the\\\n \\ cycle and let you know when it's finished.\\n{% endif %}\\n\"\n data:\n type: announce\n - service: logbook.log\n data:\n name: Dryer Monitoring\n message: 'Dryer cycle started - Job state: {{ states(''sensor.dryer_job_state'')\n }}'", "config": [ { "name": "dryer machine state", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.dryer_machine_state", "device_id": null } }, { "name": "dryer job state sensor", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.dryer_job_state", "device_id": null } }, { "name": "dryer completion time sensor", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.dryer_completion_time", "device_id": null } }, { "name": "dryer cycle announced boolean", "room": "laundry", "type": "input_boolean", "id": { "entity_id": "input_boolean.dryer_cycle_announced", "device_id": null } }, { "name": "dryer cycle start datetime", "room": "laundry", "type": "input_datetime", "id": { "entity_id": "input_datetime.dryer_cycle_start", "device_id": null } } ] }, { "id": "Dryer - Cycle Completion Enhanced", "automation": "- alias: Dryer - Cycle Completion Enhanced\n description: Enhanced dryer completion detection using SmartThings states\n mode: single\n trigger:\n - platform: state\n entity_id: sensor.dryer_machine_state\n from: run\n to: stop\n - platform: state\n entity_id: sensor.dryer_job_state\n from: drying\n to: none\n condition:\n - condition: and\n conditions:\n - condition: state\n entity_id: input_boolean.dryer_cycle_announced\n state: 'on'\n - condition: template\n value_template: '{{ states(''sensor.dryer_machine_state'') in [''stop'', ''pause'']\n }}'\n - condition: time\n after: 07:00:00\n before: '22:30:00'\n action:\n - delay:\n minutes: 2\n - condition: template\n value_template: '{{ states(''sensor.dryer_machine_state'') in [''stop'', ''pause'']\n }}'\n - variables:\n cycle_duration: \"{% set start_time = states('input_datetime.dryer_cycle_start')\\\n \\ %} {% if start_time not in ['unknown', 'unavailable'] %}\\n {% set elapsed_minutes\\\n \\ = ((now().timestamp() - as_timestamp(start_time)) / 60) | round(0) %}\\n\\\n \\ {{ elapsed_minutes }}\\n{% else %}\\n 0\\n{% endif %}\\n\"\n - service: notify.alexa_media_everywhere\n data:\n message: 'The dryer cycle is complete after {{ cycle_duration }} minutes. Please\n remove clothes promptly to prevent wrinkles.\n\n '\n data:\n type: announce\n - action: input_boolean.turn_off\n entity_id: input_boolean.dryer_cycle_announced\n - service: input_text.set_value\n target:\n entity_id: input_text.appliance_last_announcement\n data:\n value: Dryer complete - {{ cycle_duration }}min - {{ now().strftime('%H:%M')\n }}", "config": [ { "name": "dryer machine state", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.dryer_machine_state", "device_id": null } }, { "name": "dryer job state sensor", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.dryer_job_state", "device_id": null } }, { "name": "appliance last announcement text", "room": "home", "type": "input_text", "id": { "entity_id": "input_text.appliance_last_announcement", "device_id": null } }, { "name": "dryer cycle announced boolean", "room": "laundry", "type": "input_boolean", "id": { "entity_id": "input_boolean.dryer_cycle_announced", "device_id": null } }, { "name": "dryer cycle start datetime", "room": "laundry", "type": "input_datetime", "id": { "entity_id": "input_datetime.dryer_cycle_start", "device_id": null } } ] }, { "id": "Appliance - Power Anomaly Detection", "automation": "- alias: Appliance - Power Anomaly Detection\n description: Detect unusual power consumption patterns that might indicate issues\n mode: parallel\n trigger:\n - platform: numeric_state\n entity_id: sensor.dishwasher_electric_consumption_w\n above: 2000\n - platform: numeric_state\n entity_id: sensor.washing_machine_electric_consumption_w\n above: 2500\n action:\n - service: notify.alexa_media_everywhere\n data:\n message: 'Attention: {{ trigger.to_state.attributes.friendly_name if trigger.to_state\n else ''Unknown device'' }} is consuming {{ trigger.to_state.state if trigger.to_state\n else ''0'' }} watts, which is unusually high. Please check the appliance.\n\n '\n data:\n type: announce\n - service: persistent_notification.create\n data:\n title: โš ๏ธ High Power Consumption Alert\n message: '{{ trigger.to_state.attributes.friendly_name if trigger.to_state else\n ''Unknown device'' }} consuming {{ trigger.to_state.state if trigger.to_state\n else ''0'' }}W at {{ now().strftime(''%H:%M'') }}\n\n '\n notification_id: power_anomaly_{{ trigger.entity_id.split('.')[1] }}", "config": [ { "name": "dishwasher electric consumption w sensor", "room": "kitchen", "type": "sensor", "id": { "entity_id": "sensor.dishwasher_electric_consumption_w", "device_id": null } }, { "name": "washing machine electric consumption w sensor", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.washing_machine_electric_consumption_w", "device_id": null } } ] }, { "id": "Appliance - Stuck Cycle Detection", "automation": "- alias: Appliance - Stuck Cycle Detection\n description: Detect cycles that run too long (possible malfunction)\n trigger:\n - platform: state\n entity_id: input_boolean.dishwasher_cycle_announced\n to: 'on'\n for:\n hours: 4\n - platform: state\n entity_id: input_boolean.washing_machine_cycle_announced\n to: 'on'\n for:\n hours: 3\n action:\n - service: notify.alexa_media_everywhere\n data:\n message: 'Attention: The {{ trigger.entity_id.split(''.'')[1].replace(''_cycle_announced'',\n '''').replace(''_'', '' '') }} has been running for an unusually long time.\n Please check if everything is okay.\n\n '\n data:\n type: announce\n - service: persistent_notification.create\n data:\n title: ๐Ÿ• Long Cycle Alert\n message: '{{ trigger.entity_id.split(''.'')[1].replace(''_cycle_announced'',\n '''').replace(''_'', '' '').title() }} running for {{ (trigger.for.total_seconds()\n / 3600) | round(1) }} hours\n\n '\n notification_id: long_cycle_{{ trigger.entity_id.split('.')[1] }}", "config": [ { "name": "dishwasher cycle announced boolean", "room": "kitchen", "type": "input_boolean", "id": { "entity_id": "input_boolean.dishwasher_cycle_announced", "device_id": null } }, { "name": "washing machine cycle announced boolean", "room": "laundry", "type": "input_boolean", "id": { "entity_id": "input_boolean.washing_machine_cycle_announced", "device_id": null } } ] }, { "id": "Appliance - Smart Energy Optimization", "automation": "- alias: Appliance - Smart Energy Optimization\n description: Suggest optimal times to run appliances based on usage patterns\n trigger:\n - platform: time\n at: '20:30:00'\n condition:\n - condition: time\n weekday:\n - mon\n - tue\n - wed\n - thu\n - fri\n - condition: template\n value_template: \"{{ states('input_boolean.dishwasher_cycle_announced') == 'off'\\\n \\ and\\n states('input_boolean.washing_machine_cycle_announced') == 'off' }}\\n\"\n action:\n - service: notify.alexa_media_everywhere\n data:\n message: \"Energy optimization tip: Off-peak hours start at 10 PM. {% if states('sensor.dishwasher_electric_consumption_w')\\\n \\ | float > 2 %}\\n The dishwasher appears to be in standby and ready to run.\\n\\\n {% endif %} {% if states('sensor.washing_machine_electric_consumption_w')\\\n \\ | float > 2 %}\\n The washing machine appears to be in standby and ready\\\n \\ to run.\\n{% endif %} Running appliances after 10 PM can save on energy costs.\\n\"\n data:\n type: announce", "config": [ { "name": "dishwasher electric consumption w sensor", "room": "kitchen", "type": "sensor", "id": { "entity_id": "sensor.dishwasher_electric_consumption_w", "device_id": null } }, { "name": "dishwasher cycle announced boolean", "room": "kitchen", "type": "input_boolean", "id": { "entity_id": "input_boolean.dishwasher_cycle_announced", "device_id": null } }, { "name": "washing machine electric consumption w sensor", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.washing_machine_electric_consumption_w", "device_id": null } }, { "name": "washing machine cycle announced boolean", "room": "laundry", "type": "input_boolean", "id": { "entity_id": "input_boolean.washing_machine_cycle_announced", "device_id": null } } ] }, { "id": "Appliance - Error Monitoring", "automation": "- alias: Appliance - Error Monitoring\n description: Monitor for appliance errors and announce\n trigger:\n - platform: state\n entity_id:\n - sensor.dishwasher_door_status\n - sensor.washing_machine_status\n - sensor.dryer_status\n to: error\n action:\n - service: notify.alexa_media_everywhere\n data:\n message: 'Attention: {{ trigger.to_state.attributes.friendly_name }} is reporting\n an error. Please check the appliance.'\n data:\n type: announce\n - service: persistent_notification.create\n data:\n title: ๐Ÿšจ Appliance Error\n message: '{{ trigger.to_state.attributes.friendly_name }} error at {{ now().strftime(''%H:%M'')\n }}'\n notification_id: appliance_error_{{ trigger.entity_id.split('.')[1] }}", "config": [ { "name": "washing machine status", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.washing_machine_status", "device_id": null } }, { "name": "dryer status sensor", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.dryer_status", "device_id": null } }, { "name": "dishwasher door status sensor", "room": "kitchen", "type": "sensor", "id": { "entity_id": "sensor.dishwasher_door_status", "device_id": null } } ] }, { "id": "Appliance - Monthly Maintenance Reminder", "automation": "- alias: Appliance - Monthly Maintenance Reminder\n description: Monthly maintenance reminders for appliances\n trigger:\n - platform: time\n at: 09:00:00\n condition:\n - condition: template\n value_template: '{{ now().day == 1 }}'\n action:\n - service: notify.alexa_media_everywhere\n data:\n message: 'Monthly appliance maintenance reminder: Please clean the dishwasher\n filter, check washing machine hoses, and clean the dryer lint trap.'\n data:\n type: announce\n - service: persistent_notification.create\n data:\n title: ๐Ÿ”ง Monthly Appliance Maintenance\n message: 'Time for monthly appliance maintenance:\n\n - Clean dishwasher filter\n\n - Check washing machine hoses\n\n - Clean dryer lint trap\n\n - Wipe down appliance exteriors\n\n '\n notification_id: monthly_maintenance", "config": [] }, { "id": "Appliance - Maintenance Tracking", "automation": "- alias: Appliance - Maintenance Tracking\n description: Track when maintenance tasks are completed\n trigger:\n - platform: state\n entity_id:\n - input_datetime.dishwasher_last_filter_clean\n - input_datetime.washing_machine_last_hose_check\n to: null\n action:\n - service: notify.alexa_media_everywhere\n data:\n message: Thank you for completing the {{ trigger.to_state.attributes.friendly_name.replace('Last\n ', '').lower() }}. Maintenance has been logged.\n data:\n type: announce\n - service: input_text.set_value\n target:\n entity_id: input_text.appliance_last_announcement\n data:\n value: Maintenance logged - {{ now().strftime('%H:%M') }}", "config": [ { "name": "appliance last announcement text", "room": "home", "type": "input_text", "id": { "entity_id": "input_text.appliance_last_announcement", "device_id": null } }, { "name": "dishwasher last filter clean datetime", "room": "kitchen", "type": "input_datetime", "id": { "entity_id": "input_datetime.dishwasher_last_filter_clean", "device_id": null } }, { "name": "washing machine last hose check datetime", "room": "laundry", "type": "input_datetime", "id": { "entity_id": "input_datetime.washing_machine_last_hose_check", "device_id": null } } ] }, { "id": "washing_machine_started_detection_v2", "automation": "- id: washing_machine_started_detection_v2\n alias: Washing Machine - Detect Cycle Start\n description: Detect when washing_machine starts a cycle\n trigger:\n - platform: state\n entity_id: sensor.washing_machine_status\n to: Running\n from:\n - Idle\n - Standby\n condition:\n - condition: state\n entity_id: input_boolean.washing_machine_running\n state: 'off'\n action:\n - service: input_boolean.turn_on\n entity_id: input_boolean.washing_machine_running\n - service: input_datetime.set_datetime\n entity_id: input_datetime.washing_machine_last_started\n data:\n datetime: '{{ now() }}'\n - service: input_text.set_value\n entity_id: input_text.washing_machine_state_reason\n data:\n value: Cycle started at {{ now().strftime('%H:%M') }}\n - service: input_boolean.turn_off\n entity_id: input_boolean.washing_machine_reminders_stopped", "config": [ { "name": "washing machine status", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.washing_machine_status", "device_id": null } }, { "name": "washing machine reminders stopped boolean", "room": "laundry", "type": "input_boolean", "id": { "entity_id": "input_boolean.washing_machine_reminders_stopped", "device_id": null } }, { "name": "washing machine running boolean", "room": "laundry", "type": "input_boolean", "id": { "entity_id": "input_boolean.washing_machine_running", "device_id": null } }, { "name": "washing machine last started datetime", "room": "laundry", "type": "input_datetime", "id": { "entity_id": "input_datetime.washing_machine_last_started", "device_id": null } }, { "name": "washing machine state reason text", "room": "laundry", "type": "input_text", "id": { "entity_id": "input_text.washing_machine_state_reason", "device_id": null } } ] }, { "id": "washing_machine_finished_detection_v2", "automation": "- id: washing_machine_finished_detection_v2\n alias: Washing Machine - Detect Cycle Complete\n description: Detect when washing_machine finishes a cycle\n trigger:\n - platform: state\n entity_id: sensor.washing_machine_status\n to: Idle\n for:\n minutes: 2\n condition:\n - condition: state\n entity_id: input_boolean.washing_machine_running\n state: 'on'\n action:\n - service: input_boolean.turn_off\n entity_id: input_boolean.washing_machine_running\n - service: input_datetime.set_datetime\n entity_id: input_datetime.washing_machine_last_finished\n data:\n datetime: '{{ now() }}'\n - service: input_text.set_value\n entity_id: input_text.washing_machine_state_reason\n data:\n value: Cycle completed at {{ now().strftime('%H:%M') }}\n - service: script.washing_machine_notify_complete", "config": [ { "name": "washing machine status", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.washing_machine_status", "device_id": null } }, { "name": "washing machine running boolean", "room": "laundry", "type": "input_boolean", "id": { "entity_id": "input_boolean.washing_machine_running", "device_id": null } }, { "name": "washing machine state reason text", "room": "laundry", "type": "input_text", "id": { "entity_id": "input_text.washing_machine_state_reason", "device_id": null } }, { "name": "washing machine notify complete script", "room": "laundry", "type": "script", "id": { "entity_id": "script.washing_machine_notify_complete", "device_id": null } }, { "name": "Washing Machine Last Finished", "room": null, "type": "input_datetime", "id": { "entity_id": "input_datetime.washing_machine_last_finished", "device_id": null } } ] }, { "id": "washing_machine_reminder_automation_v2", "automation": "- id: washing_machine_reminder_automation_v2\n alias: Washing Machine - Completion Reminders\n description: Send periodic reminders when cycle is complete\n trigger:\n - platform: state\n entity_id: binary_sensor.washing_machine_cycle_complete\n to: 'on'\n for:\n minutes: 5\n - platform: state\n entity_id: binary_sensor.washing_machine_cycle_complete\n to: 'on'\n for:\n minutes: 15\n - platform: state\n entity_id: binary_sensor.washing_machine_cycle_complete\n to: 'on'\n for:\n minutes: 30\n condition:\n - condition: state\n entity_id: input_boolean.washing_machine_reminders_stopped\n state: 'off'\n - condition: state\n entity_id: binary_sensor.washing_machine_cycle_complete\n state: 'on'\n action:\n - service: script.washing_machine_send_reminder", "config": [ { "name": "washing machine reminders stopped boolean", "room": "laundry", "type": "input_boolean", "id": { "entity_id": "input_boolean.washing_machine_reminders_stopped", "device_id": null } }, { "name": "washing machine cycle complete binary sensor", "room": "laundry", "type": "binary_sensor", "id": { "entity_id": "binary_sensor.washing_machine_cycle_complete", "device_id": null } }, { "name": "washing machine send reminder script", "room": "laundry", "type": "script", "id": { "entity_id": "script.washing_machine_send_reminder", "device_id": null } } ] }, { "id": "washing_machine_sync_state_machine_v2", "automation": "- id: washing_machine_sync_state_machine_v2\n alias: Washing Machine - Sync State Machine with Power Monitoring\n description: Keep input_select states synchronized with power monitoring sensor\n trigger:\n - platform: state\n entity_id: sensor.washing_machine_status\n - platform: state\n entity_id: input_boolean.washing_machine_running\n action:\n - choose:\n - conditions:\n - condition: state\n entity_id: sensor.washing_machine_status\n state: Running\n sequence:\n - service: input_select.select_option\n target:\n entity_id: input_select.washing_machine_state\n data:\n option: Running\n - service: input_select.select_option\n target:\n entity_id: input_select.washing_machine_state_detailed\n data:\n option: Washing\n - conditions:\n - condition: state\n entity_id: sensor.washing_machine_status\n state: Idle\n - condition: state\n entity_id: input_boolean.washing_machine_running\n state: 'off'\n - condition: template\n value_template: '{{ trigger.from_state.state in [''Running'', ''Standby'']\n }}'\n sequence:\n - service: input_select.select_option\n target:\n entity_id: input_select.washing_machine_state\n data:\n option: Complete\n - service: input_select.select_option\n target:\n entity_id: input_select.washing_machine_state_detailed\n data:\n option: Complete\n - conditions:\n - condition: state\n entity_id: sensor.washing_machine_status\n state: Idle\n - condition: state\n entity_id: input_boolean.washing_machine_running\n state: 'off'\n sequence:\n - service: input_select.select_option\n target:\n entity_id: input_select.washing_machine_state\n data:\n option: Idle\n - service: input_select.select_option\n target:\n entity_id: input_select.washing_machine_state_detailed\n data:\n option: Idle", "config": [ { "name": "washing machine status", "room": "laundry", "type": "sensor", "id": { "entity_id": "sensor.washing_machine_status", "device_id": null } }, { "name": "washing machine running boolean", "room": "laundry", "type": "input_boolean", "id": { "entity_id": "input_boolean.washing_machine_running", "device_id": null } }, { "name": "washing machine state select", "room": "laundry", "type": "input_select", "id": { "entity_id": "input_select.washing_machine_state", "device_id": null } }, { "name": "washing machine state detailed select", "room": "laundry", "type": "input_select", "id": { "entity_id": "input_select.washing_machine_state_detailed", "device_id": null } } ] }, { "id": "AI Suggestions - Weekly Review", "automation": "- alias: AI Suggestions - Weekly Review\n description: Performs a weekly scan of all entities to suggest new automation opportunities\n trigger:\n - platform: time\n at: 03:00:00\n condition:\n - condition: time\n weekday:\n - sun\n action:\n - service: ai_automation_suggester.generate_suggestions\n data:\n all_entities: true\n - service: persistent_notification.create\n data:\n title: Weekly Automation Review\n message: The AI Automation Suggester has completed its weekly review. Check\n the suggestions sensor for new automation ideas!\n notification_id: weekly_automation_review", "config": [ { "name": "ai automation suggester", "room": "utility", "type": "ai_automation_suggester", "id": { "entity_id": "ai_automation_suggester.generate_suggestions", "device_id": null } } ] }, { "id": "morning_blinds_schedule", "automation": "- id: morning_blinds_schedule\n alias: Morning Blinds Schedule\n description: Automatically open blinds in the morning\n trigger:\n - platform: time\n at: 07:30:00\n condition:\n - condition: state\n entity_id: input_boolean.vacation_mode\n state: 'off'\n action:\n - service: script.morning_routine_windows", "config": [ { "name": "vacation mode boolean", "room": "home", "type": "input_boolean", "id": { "entity_id": "input_boolean.vacation_mode", "device_id": null } }, { "name": "morning routine windows script", "room": "home", "type": "script", "id": { "entity_id": "script.morning_routine_windows", "device_id": null } } ] }, { "id": "evening_blinds_schedule", "automation": "- id: evening_blinds_schedule\n alias: Evening Blinds Schedule\n description: Automatically close blinds in the evening\n trigger:\n - platform: sun\n event: sunset\n offset: +00:30:00\n condition:\n - condition: state\n entity_id: input_boolean.vacation_mode\n state: 'off'\n action:\n - service: script.evening_routine_windows", "config": [ { "name": "vacation mode boolean", "room": "home", "type": "input_boolean", "id": { "entity_id": "input_boolean.vacation_mode", "device_id": null } }, { "name": "evening routine windows script", "room": "home", "type": "script", "id": { "entity_id": "script.evening_routine_windows", "device_id": null } } ] }, { "id": "blinds_battery_monitor", "automation": "- id: blinds_battery_monitor\n alias: Window Covering Battery Monitor\n description: Alert when SwitchBot devices need battery replacement\n trigger:\n - platform: numeric_state\n entity_id:\n - sensor.curtain_3_584c_battery\n - sensor.curtain_3_a3bd_battery\n - sensor.curtain_3_c019_battery\n - sensor.curtain_3_fb63_battery\n below: 20\n for:\n hours: 1\n action:\n - service: notify.persistent_notification\n data:\n title: Low Battery Warning\n message: '{{ trigger.to_state.attributes.friendly_name if trigger.to_state else\n ''Device'' }} battery is at {{ trigger.to_state.state if trigger.to_state\n else ''unknown'' }}%'\n notification_id: battery_{{ trigger.entity_id }}", "config": [ { "name": "curtain 3 584c battery sensor", "room": "window", "type": "sensor", "id": { "entity_id": "sensor.curtain_3_584c_battery", "device_id": null } }, { "name": "curtain 3 a3bd battery sensor", "room": "window", "type": "sensor", "id": { "entity_id": "sensor.curtain_3_a3bd_battery", "device_id": null } }, { "name": "curtain 3 c019 battery sensor", "room": "window", "type": "sensor", "id": { "entity_id": "sensor.curtain_3_c019_battery", "device_id": null } }, { "name": "curtain 3 fb63 battery sensor", "room": "window", "type": "sensor", "id": { "entity_id": "sensor.curtain_3_fb63_battery", "device_id": null } } ] } ]