various packages
This commit is contained in:
@@ -0,0 +1,178 @@
|
||||
#:########################################################################################:#
|
||||
# Pool Light Operation Package #
|
||||
#:########################################################################################:#
|
||||
#
|
||||
# TITLE:
|
||||
# Pool Light Operation
|
||||
#
|
||||
# FILE:
|
||||
# packages/pool_light_boost_switch.yaml
|
||||
#
|
||||
# VERSION:
|
||||
# V1.1 2026-06-29
|
||||
#
|
||||
# VERSION HISTORY:
|
||||
# V1.1 2026-06-29
|
||||
# - Tidied layout, comments, naming and automation IDs.
|
||||
# - Added structured package header and section comments.
|
||||
# - Fixed likely MQTT topic typo in midnight TIMER automation:
|
||||
# viewroad-commands/poollights-timer/operation
|
||||
# changed to:
|
||||
# viewroad-commands/poollight-timer/operation
|
||||
#
|
||||
# V1.0
|
||||
# - Initial package.
|
||||
# - Provides a Home Assistant UI switch for pool light BOOST / OFF behaviour.
|
||||
# - Sends TIMER mode again at midnight when required.
|
||||
#
|
||||
# PURPOSE:
|
||||
# Provides a Home Assistant UI switch for controlling the pool light timer mode.
|
||||
#
|
||||
# Behaviour:
|
||||
# - Turning the UI switch ON sends BOOST if the real pool light output is currently OFF.
|
||||
# - Turning the UI switch OFF sends OFF if the real pool light output is currently ON.
|
||||
# - If OFF was requested, TIMER mode is sent again at midnight.
|
||||
# - The UI switch follows the real ESPHome output state without sending MQTT.
|
||||
#
|
||||
# MQTT:
|
||||
# Operation topic:
|
||||
# viewroad-commands/poollight-timer/operation
|
||||
#
|
||||
# NOTES:
|
||||
# The input_boolean.timer_light_midnight_pending helper is internal to this package.
|
||||
#
|
||||
#:########################################################################################:#
|
||||
|
||||
#:########################################################################################:#
|
||||
# Home Assistant Customisation #
|
||||
#:########################################################################################:#
|
||||
|
||||
homeassistant:
|
||||
customize:
|
||||
input_boolean.poollights_mode_switch:
|
||||
icon: mdi:light-flood-up
|
||||
|
||||
#:########################################################################################:#
|
||||
# Input Booleans #
|
||||
#:########################################################################################:#
|
||||
|
||||
input_boolean:
|
||||
poollights_mode_switch:
|
||||
name: "Pool Light Operation"
|
||||
initial: false
|
||||
|
||||
timer_light_midnight_pending:
|
||||
name: "Pool Light - Send TIMER at Midnight"
|
||||
initial: false
|
||||
|
||||
#:########################################################################################:#
|
||||
# Automations #
|
||||
#:########################################################################################:#
|
||||
|
||||
automation:
|
||||
- id: pool_light_send_boost_when_ui_switch_on
|
||||
alias: "Pool Light - Send BOOST When UI Switch Turns ON"
|
||||
description: "Sends BOOST to the pool light timer when the UI switch is turned on and the real pool light output is off."
|
||||
mode: single
|
||||
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: input_boolean.poollights_mode_switch
|
||||
to: "on"
|
||||
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: switch.esp_poollightpower2_switch
|
||||
state: "off"
|
||||
|
||||
action:
|
||||
- service: mqtt.publish
|
||||
data:
|
||||
topic: "viewroad-commands/poollight-timer/operation"
|
||||
payload: "BOOST"
|
||||
|
||||
- id: pool_light_send_off_and_schedule_timer_when_ui_switch_off
|
||||
alias: "Pool Light - Send OFF And Schedule TIMER When UI Switch Turns OFF"
|
||||
description: "Sends OFF to the pool light timer and schedules TIMER mode to be restored at midnight."
|
||||
mode: single
|
||||
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: input_boolean.poollights_mode_switch
|
||||
to: "off"
|
||||
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: switch.esp_poollightpower2_switch
|
||||
state: "on"
|
||||
|
||||
action:
|
||||
- service: mqtt.publish
|
||||
data:
|
||||
topic: "viewroad-commands/poollight-timer/operation"
|
||||
payload: "OFF"
|
||||
|
||||
- service: input_boolean.turn_on
|
||||
target:
|
||||
entity_id: input_boolean.timer_light_midnight_pending
|
||||
|
||||
- id: pool_light_send_timer_at_midnight
|
||||
alias: "Pool Light - Send TIMER At Midnight"
|
||||
description: "Restores TIMER mode at midnight if the pool light was manually turned off earlier."
|
||||
mode: single
|
||||
|
||||
trigger:
|
||||
- platform: time
|
||||
at: "00:00:00"
|
||||
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: input_boolean.timer_light_midnight_pending
|
||||
state: "on"
|
||||
|
||||
action:
|
||||
- service: mqtt.publish
|
||||
data:
|
||||
topic: "viewroad-commands/poollight-timer/operation"
|
||||
payload: "TIMER"
|
||||
|
||||
- service: input_boolean.turn_off
|
||||
target:
|
||||
entity_id: input_boolean.timer_light_midnight_pending
|
||||
|
||||
- id: pool_light_sync_ui_switch_with_real_output
|
||||
alias: "Pool Light - Sync UI Switch With Real Output"
|
||||
description: "Keeps the UI switch aligned with the real ESPHome pool light output without sending MQTT commands."
|
||||
mode: restart
|
||||
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: switch.esp_poollightpower2_switch
|
||||
|
||||
action:
|
||||
- choose:
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: switch.esp_poollightpower2_switch
|
||||
state: "on"
|
||||
sequence:
|
||||
- service: input_boolean.turn_on
|
||||
target:
|
||||
entity_id: input_boolean.poollights_mode_switch
|
||||
|
||||
- service: input_boolean.turn_off
|
||||
target:
|
||||
entity_id: input_boolean.timer_light_midnight_pending
|
||||
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: switch.esp_poollightpower2_switch
|
||||
state: "off"
|
||||
sequence:
|
||||
- service: input_boolean.turn_off
|
||||
target:
|
||||
entity_id: input_boolean.poollights_mode_switch
|
||||
|
||||
- service: input_boolean.turn_on
|
||||
target:
|
||||
entity_id: input_boolean.timer_light_midnight_pending
|
||||
Reference in New Issue
Block a user