various tidyups
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
#:########################################################################################:#
|
||||
# TP-Link Deco Guest Wi-Fi Package #
|
||||
#:########################################################################################:#
|
||||
#
|
||||
# TITLE:
|
||||
# TP-Link Deco Guest Wi-Fi
|
||||
#
|
||||
# FILE:
|
||||
# packages/tplink_deco_guest_wifi.yaml
|
||||
#
|
||||
# VERSION:
|
||||
# V2.2 2026-08-24
|
||||
#
|
||||
# VERSION HISTORY:
|
||||
# V2.2 2026-08-24
|
||||
# - Replaced passive status sync with router-confirmed enforcement.
|
||||
# - Repeats requests, reconciles at startup and hourly, and alerts when
|
||||
# the Deco cannot confirm the requested state.
|
||||
#
|
||||
# V2.1 2026-08-04
|
||||
# - Added the original router-status sync automation.
|
||||
#
|
||||
# V2.0 2026-08-04
|
||||
# - Switched from Alexa voice commands to the Deco local API.
|
||||
#
|
||||
# PURPOSE:
|
||||
# Enforces the requested TP-Link Deco guest Wi-Fi state and confirms it
|
||||
# against the guest-network sensor reported by the router.
|
||||
#
|
||||
# DEPENDENCIES:
|
||||
# - tplink_deco integration must be configured and connected to the Deco.
|
||||
# - input_boolean.wifi_guest_network represents the requested guest-network
|
||||
# state.
|
||||
# - binary_sensor.data_cupboard_new_sundamage_12_deco_guest_network reports
|
||||
# the actual guest-network state from the router.
|
||||
#
|
||||
#:########################################################################################:#
|
||||
|
||||
automation:
|
||||
- id: enforce_wifi_guest_network_state
|
||||
alias: "Enforce Wifi Guest Network State"
|
||||
description: >
|
||||
Reconciles requested guest Wi-Fi with the Deco's reported state, repeats
|
||||
the request once after 30 seconds, and alerts on an unconfirmed mismatch.
|
||||
mode: restart
|
||||
triggers:
|
||||
- trigger: state
|
||||
entity_id: input_boolean.wifi_guest_network
|
||||
- trigger: state
|
||||
entity_id: binary_sensor.data_cupboard_new_sundamage_12_deco_guest_network
|
||||
- trigger: homeassistant
|
||||
event: start
|
||||
- trigger: time_pattern
|
||||
hours: "*"
|
||||
minutes: "0"
|
||||
conditions:
|
||||
- condition: template
|
||||
value_template: >
|
||||
{{ states('input_boolean.wifi_guest_network') in ['on', 'off']
|
||||
and states('binary_sensor.data_cupboard_new_sundamage_12_deco_guest_network')
|
||||
in ['on', 'off']
|
||||
and states('input_boolean.wifi_guest_network')
|
||||
!= states('binary_sensor.data_cupboard_new_sundamage_12_deco_guest_network') }}
|
||||
actions:
|
||||
- repeat:
|
||||
count: 2
|
||||
sequence:
|
||||
- choose:
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: input_boolean.wifi_guest_network
|
||||
state: "on"
|
||||
sequence:
|
||||
- action: tplink_deco.set_guest_network
|
||||
data:
|
||||
enable: true
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: input_boolean.wifi_guest_network
|
||||
state: "off"
|
||||
sequence:
|
||||
- action: tplink_deco.set_guest_network
|
||||
data:
|
||||
enable: false
|
||||
- wait_template: >
|
||||
{{ states('input_boolean.wifi_guest_network')
|
||||
== states('binary_sensor.data_cupboard_new_sundamage_12_deco_guest_network') }}
|
||||
timeout:
|
||||
seconds: 30
|
||||
continue_on_timeout: true
|
||||
- condition: template
|
||||
value_template: >
|
||||
{{ states('input_boolean.wifi_guest_network')
|
||||
!= states('binary_sensor.data_cupboard_new_sundamage_12_deco_guest_network') }}
|
||||
- action: persistent_notification.create
|
||||
data:
|
||||
notification_id: wifi_guest_network_state_mismatch
|
||||
title: "Guest Wi-Fi state not confirmed"
|
||||
message: >
|
||||
The Deco still reports Guest Wi-Fi as {{ states('binary_sensor.data_cupboard_new_sundamage_12_deco_guest_network') }}
|
||||
after two requests to set it {{ states('input_boolean.wifi_guest_network') }}.
|
||||
Reference in New Issue
Block a user