feat: add litter box alert and kiosk dashboard automations

Add new automation files to the Home Assistant configuration:

- 02a_litter_box_alerts.yaml: Notifications for multiple litter boxes
  (Poop Box, Triple Threat, Cat Crapper 3000, The Deuce, and Luma
  Smart) covering waste bin full, low litter level, door error, and
  deodorant empty alerts, leveraging shared notification blueprints
- 06a_kiosk_dashboards.yaml: Automations for managing kiosk dashboards

These automations centralize pet-care and maintenance notifications
so alerts are triggered consistently across devices.
This commit is contained in:
Joshua King
2026-10-08 14:47:08 -04:00
parent 2f4108eab5
commit 35d815de79
15 changed files with 458 additions and 502 deletions
@@ -0,0 +1,48 @@
- id: ac_controls_matter_plugs
alias: AC controls Matter plugs
description: Reconcile each plug with current cooling activity after HVAC changes, startup, reload and plug recovery. Keep existing plug states if climate status is unknown.
mode: restart
triggers:
- trigger: state
entity_id: climate.meat_heater
attribute: hvac_action
to: null
- trigger: state
entity_id: climate.meat_heater
to: null
- trigger: state
entity_id:
- switch.smart_wi_fi_plug
- switch.smart_wi_fi_plug_2
- switch.smart_wi_fi_plug_3
- switch.smart_wi_fi_plug_4
to: null
- trigger: homeassistant
event: start
- trigger: event
event_type: automation_reloaded
conditions: []
actions:
- condition: template
value_template: >-
{{ has_value('climate.meat_heater')
and (is_state('climate.meat_heater', 'off')
or state_attr('climate.meat_heater', 'hvac_action')
not in [none, 'unknown', 'unavailable', '']) }}
- variables:
desired_state: "{{ 'on' if is_state_attr('climate.meat_heater', 'hvac_action', 'cooling') and not is_state('climate.meat_heater', 'off') else 'off' }}"
- repeat:
for_each:
- switch.smart_wi_fi_plug
- switch.smart_wi_fi_plug_2
- switch.smart_wi_fi_plug_3
- switch.smart_wi_fi_plug_4
sequence:
- if:
- condition: template
value_template: "{{ has_value(repeat.item) and not is_state(repeat.item, desired_state) }}"
then:
- action: "{{ 'switch.turn_on' if desired_state == 'on' else 'switch.turn_off' }}"
continue_on_error: true
target:
entity_id: "{{ repeat.item }}"
@@ -0,0 +1,25 @@
- id: dehumidifier_tank_full_shutoff
alias: Dehumidifier Tank Full - Shut Off Parents Window Fan
description: Keep the outlet off while wet and report whether shutdown was confirmed.
use_blueprint:
path: local/tank_full_interlock.yaml
input:
moisture_sensor: binary_sensor.water_leak_sensor_moisture
outlet: switch.parents_window_fan
title: Dehumidifier tank is full
equipment_name: Dehumidifier
- id: dehumidifier_tank_sensor_low_battery
alias: Dehumidifier Tank Sensor Low Battery
description: Alert when the dehumidifier tank level sensor battery is at 10% or lower.
mode: single
triggers:
- trigger: numeric_state
entity_id: sensor.water_leak_sensor_battery
below: 10.1
conditions: []
actions:
- action: script.notify_events_alerts
data:
title: Dehumidifier tank sensor battery low
message: Dehumidifier tank level sensor battery is at {{ states('sensor.water_leak_sensor_battery') }}%. Replace soon.
@@ -0,0 +1,29 @@
- id: ac_tank_full_shutoff
alias: AC Tank Full
description: Alert when the AC tank sensor is wet. This does not switch an outlet.
mode: single
triggers:
- trigger: state
entity_id: binary_sensor.ac_tank_sensor_moisture
to: "on"
conditions: []
actions:
- action: script.notify_events_alerts
data:
title: AC tank is full
message: AC tank sensor detected water.
- id: ac_tank_sensor_low_battery
alias: AC Tank Sensor Low Battery
description: Alert when the AC tank sensor battery is at 10% or lower.
mode: single
triggers:
- trigger: numeric_state
entity_id: sensor.ac_tank_sensor_battery
below: 10.1
conditions: []
actions:
- action: script.notify_events_alerts
data:
title: AC tank sensor battery low
message: AC Tank Sensor battery is at {{ states('sensor.ac_tank_sensor_battery') }}%. Replace soon.