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 }}"