From ab276c5ac1aff1b33050a6f6daa350e65aead6aa Mon Sep 17 00:00:00 2001 From: Carlo Costanzo Date: Mon, 25 May 2026 17:07:28 -0400 Subject: [PATCH] Add bedroom kiosk recovery package --- config/packages/kiosk_tablet.yaml | 104 ++++++++++++++++++++++++++++++ config/packages/sleepiq.yaml | 4 +- 2 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 config/packages/kiosk_tablet.yaml diff --git a/config/packages/kiosk_tablet.yaml b/config/packages/kiosk_tablet.yaml new file mode 100644 index 00000000..360e9b6b --- /dev/null +++ b/config/packages/kiosk_tablet.yaml @@ -0,0 +1,104 @@ +###################################################################### +# @CCOSTAN - Follow Me on X +# For more info visit https://www.vcloudinfo.com/click-here +# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig +# ------------------------------------------------------------------- +# Bedroom Kiosk Tablet - Fully Kiosk page recovery +# Keeps the Master Bedroom Fire tablet pinned to the kiosk dashboard. +# ------------------------------------------------------------------- +# Notes: Baseline view path is the real typo-like `kiosk_oveview` slug. +# Notes: Uses Fully controls only; does not enable Fully Kiosk lockout mode. +# Notes: Startup reload waits for HA's initial websocket state burst to settle. +# Notes: Brightness recovery only runs when both SleepIQ in-bed sensors are off. +###################################################################### + +automation: + - alias: "Bedroom Kiosk Tablet - Return to Kiosk View" + id: 11e50d2e-f66f-4fd0-86f4-bdca075c3a1c + mode: single + max_exceeded: silent + trigger: + - platform: state + entity_id: switch.alarm_panel_1_screen + to: "on" + for: "00:00:03" + id: wake + - platform: state + entity_id: switch.alarm_panel_1_screensaver + to: "off" + for: "00:00:03" + id: wake + - platform: state + entity_id: + - sensor.alarm_panel_1_current_page + - sensor.alarm_panel_1_foreground_app + - number.alarm_panel_1_screen_brightness + for: "00:00:10" + id: drift + - platform: time_pattern + minutes: "/1" + id: periodic + - platform: homeassistant + event: start + id: startup + + condition: + - condition: state + entity_id: switch.alarm_panel_1_screen + state: "on" + - condition: state + entity_id: switch.alarm_panel_1_screensaver + state: "off" + - condition: template + value_template: >- + {% set current_page = states('sensor.alarm_panel_1_current_page') %} + {% set foreground_app = states('sensor.alarm_panel_1_foreground_app') %} + {% set brightness = states('number.alarm_panel_1_screen_brightness') %} + {% set bed_clear = is_state('binary_sensor.sleepnumber_carlo_carlo_is_in_bed', 'off') + and is_state('binary_sensor.sleepnumber_carlo_stacey_is_in_bed', 'off') %} + {% set invalid = ['unknown', 'unavailable', 'none', ''] %} + {{ trigger.id == 'wake' + or trigger.id == 'startup' + or (current_page not in invalid and '/dashboard-kiosk/kiosk_oveview' not in current_page) + or (foreground_app not in invalid and foreground_app != 'de.ozerov.fully') + or (bed_clear and brightness not in invalid and brightness | float(100) < 40) }} + + action: + - choose: + - conditions: + - condition: trigger + id: startup + sequence: + - delay: "00:02:00" + - variables: + previous_page: "{{ states('sensor.alarm_panel_1_current_page') }}" + previous_app: "{{ states('sensor.alarm_panel_1_foreground_app') }}" + previous_brightness: "{{ states('number.alarm_panel_1_screen_brightness') }}" + - choose: + - conditions: + - condition: state + entity_id: binary_sensor.sleepnumber_carlo_carlo_is_in_bed + state: "off" + - condition: state + entity_id: binary_sensor.sleepnumber_carlo_stacey_is_in_bed + state: "off" + sequence: + - service: number.set_value + target: + entity_id: number.alarm_panel_1_screen_brightness + data: + value: 100 + - service: button.press + target: + entity_id: button.alarm_panel_1_bring_to_foreground + - delay: "00:00:02" + - service: button.press + target: + entity_id: button.alarm_panel_1_load_start_url + - service: script.send_to_logbook + data: + topic: "KIOSK" + message: >- + Bedroom tablet returned to the kiosk dashboard from + {{ previous_page }} (foreground app: {{ previous_app }}; + brightness: {{ previous_brightness }}). diff --git a/config/packages/sleepiq.yaml b/config/packages/sleepiq.yaml index c259dd67..6a1198d9 100755 --- a/config/packages/sleepiq.yaml +++ b/config/packages/sleepiq.yaml @@ -13,6 +13,8 @@ # below if needed to match your select entity's options. # Notes: Single-package preference: keep all SleepIQ device-specific YAML # (helpers/automations) centralized in this file. +# Notes: `group.bed` is occupancy-only so dependent automations get a clean +# on/off state from the two in-bed binary sensors. ###################################################################### homeassistant: customize_glob: @@ -60,10 +62,8 @@ group: bed: entities: - binary_sensor.sleepnumber_carlo_carlo_is_in_bed - - sensor.sleepnumber_carlo_carlo_sleepnumber # - sensor.Carlo_sleep_hours - binary_sensor.sleepnumber_carlo_stacey_is_in_bed - - sensor.sleepnumber_carlo_stacey_sleepnumber # - sensor.Stacey_sleep_hours automation: