fix(garage): reuse arrival door-open helper

This commit is contained in:
Carlo Costanzo
2026-06-08 13:07:53 -04:00
parent 281c25f60c
commit e395ccad3b
3 changed files with 52 additions and 38 deletions
+2 -2
View File
@@ -42,7 +42,7 @@ Live collection of plug-and-play Home Assistant packages. Each YAML file in this
| [alexa_media_player.yaml](alexa_media_player.yaml) | Alexa Media helper sensors including stable bedroom wake-alarm wrappers for Carlo and Stacey plus a combined next-wake view. | `sensor.last_alexa`, `sensor.bedroom_next_wake_alarm`, `sensor.bedroom_next_wake_alarm_source`, `binary_sensor.bedroom_next_wake_alarm_active` |
| [fridge.yaml](fridge.yaml) | SmartThinQ fridge monitoring with 6-minute raw door-open alerts plus fridge/freezer status announcements. | `binary_sensor.refrigerator_door_open`, `script.notify_engine`, `script.speech_engine` |
| [climate.yaml](climate.yaml) | Nest climate schedules plus runtime-based AC filter reminders with snooze and filter-changed actions. | `input_datetime.*_filter_snooze_until`, `script.notify_engine_two_button`, mobile app action events |
| [garadget.yaml](garadget.yaml) | MQTT-based garage door control plus arrival helpers, entry prompts, wind checks, nighttime reminders, and camera context. | `cover.large_garage_door`, `cover.small_garage_door`, `group.garage_doors`, `sensor.garadget_reflection` |
| [garadget.yaml](garadget.yaml) | MQTT-based garage door control plus arrival helpers, entry prompts, wind checks, nighttime reminders, and camera context. | `cover.large_garage_door`, `cover.small_garage_door`, `group.garage_doors`, `script.open_large_garage_door_if_ready` |
| [august.yaml](august.yaml) | Front-door August smart lock with Alexa Show camera pop-up when unlocked. | `lock.front_door`, media_player actions for front doorbell camera |
| [holiday.yaml](holiday.yaml) | REST-driven US holiday + flag sensors that color scenes and exterior lighting. | `sensor.holiday`, `sensor.flag`, JSON feed at `config/json_data/holidays.json` |
| [lightning.yaml](lightning.yaml) | Blitzortung lightning counter monitoring with snoozeable push actions. | `sensor.blitzortung_lightning_counter`, `input_boolean.snooze_lightning`, notify engine actions |
@@ -74,7 +74,7 @@ Live collection of plug-and-play Home Assistant packages. Each YAML file in this
| [finance.yaml](finance.yaml) | Yahoo Finance sensor bundle for portfolio glances and Lovelace cards. | `sensor.tsla`, `sensor.aapl`, `sensor.amzn`, `sensor.msft` |
### Garadget automations
- Logic lives in [garadget.yaml](garadget.yaml): auto-open on arrival, entry helper prompt (unlock front door or open garage), kid-specific trusted shortcuts, wind checks, nightly open-door reminders, and camera pop-ups.
- Logic lives in [garadget.yaml](garadget.yaml): auto-open on arrival, entry helper prompt (unlock front door or open garage), trusted-family shortcuts, wind checks, nightly open-door reminders, and camera pop-ups.
- MQTT-based covers for large/small doors; notifications and speech wired to the house notify/speech engines.
- Video companion: [Garage automation walkthrough](https://youtu.be/wFO0H5zgnzk) and [companion blog post](https://www.vcloudinfo.com/2026/05/home-assistant-garage-automations-arrival-alerts-tesla.html).
![Garadget Automation](../www/custom_ui/floorplan/images/branding/Garadget%20Automation.png)
+3 -2
View File
@@ -19,7 +19,8 @@
# Notes: Teslamate and crystalsoftwashsolutions are live services and should remain in the monitored group when their discovery switches are present.
# Notes: Treat telemetry reconnects from unavailable/unknown to a concrete stopped state as actionable outages.
# Notes: Infra Info was removed; BearClaw Admin is the planning snapshot surface.
# Notes: codex_appliance moved to a dedicated VM, but the legacy container switches still surface in HA and remain in the monitored group until the entities are retired.
# Notes: codex_appliance moved to a dedicated VM; keep the standard codex_appliance switches and retire the legacy hashed discovery entity when it disappears.
# Notes: Paige's Bookshelf is a live monitored service and should remain in the group when its discovery switch is present.
# Notes: Retired repair cleanup clears old codex_appliance and hashed dozzle Portainer repair IDs.
######################################################################
@@ -84,7 +85,6 @@ switch:
- switch.cloudflared_kch_container_2
- switch.cloudflared_wp_container
- switch.cloudflared_wp_container_2
- switch.63a0a831eb7d_codex_appliance_container
- switch.college_budget_app_container
- switch.college_budget_app_container_2
- switch.cruise_tracker_container
@@ -137,6 +137,7 @@ switch:
- switch.nebula_sync_container_2
- switch.onenote_indexer_container
- switch.onenote_indexer_container_2
- switch.paiges_bookshelf_container
- switch.panel_notes_container
- switch.panel_notes_container_2
- switch.pihole_container
+47 -34
View File
@@ -84,6 +84,42 @@ group:
- cover.large_garage_door
- cover.small_garage_door
script:
open_large_garage_door_if_ready:
alias: Open Large Garage Door If Ready
mode: single
fields:
person_name:
description: Optional person name for arrival logging.
example: Carlo
sequence:
- condition: state
entity_id: cover.large_garage_door
state: 'closed'
- condition: state
entity_id: group.family
state: 'home'
# - condition: state
# entity_id: group.bed
# state: 'off'
- service: cover.open_cover
target:
entity_id: cover.large_garage_door
- choose:
- conditions:
- condition: template
value_template: "{{ person_name | default('', true) | trim != '' }}"
sequence:
- service: input_text.set_value
target:
entity_id: input_text.last_person_home
data:
value: "{{ person_name }}"
- service: script.send_to_logbook
data:
topic: "GARAGE"
message: "Large Garage was auto-opened for {{ person_name }}."
automation:
######################################################################
@@ -99,29 +135,10 @@ automation:
- person.stacey
from: 'driving'
to: 'home'
condition:
- condition: state
entity_id: cover.large_garage_door
state: 'closed'
# - condition: state
# entity_id: group.bed
# state: 'off'
- condition: state
entity_id: group.family
state: 'home'
action:
- service: cover.open_cover
target:
entity_id: cover.large_garage_door
- service: input_text.set_value
target:
entity_id: input_text.last_person_home
- service: script.open_large_garage_door_if_ready
data:
value: "{{ trigger.to_state.entity_id.split('.')[1] }}"
- service: script.send_to_logbook
data:
topic: "GARAGE"
message: "Large Garage was auto-opened for {{ states('input_text.last_person_home') }}."
person_name: "{{ trigger.to_state.entity_id.split('.')[1] }}"
######################################################################
## Entry helper prompt after arrival if auto-open didnt fire.
@@ -176,16 +193,8 @@ automation:
event_type: mobile_app_notification_action
event_data:
action: OPEN_LARGE_GARAGE
condition:
- condition: state
entity_id: cover.large_garage_door
state: 'closed'
- condition: state
entity_id: group.family
state: 'home'
action:
- service: cover.open_cover
entity_id: cover.large_garage_door
- service: script.open_large_garage_door_if_ready
- alias: 'Unlock Front Door Action'
id: c3106db1-f2c4-4800-b1a3-76d440228600
@@ -199,9 +208,9 @@ automation:
entity_id: lock.front_door
######################################################################
## Auto-unlock front door when Paige or Justin arrive from driving
## Auto-unlock front door when Paige, Justin, or Joyce arrive from driving
######################################################################
- alias: 'Auto Unlock Front Door on Arrival (Paige/Justin)'
- alias: 'Auto Unlock Front Door on Arrival (Paige/Justin/Joyce)'
id: 8f4f5f6a-9c2d-4f4c-9f6c-7d5e5b2e2c3d
mode: single
trigger:
@@ -209,8 +218,12 @@ automation:
entity_id:
- person.paige
- person.justin
- device_tracker.life360_joyce_ruskin
from: 'driving'
to: 'home'
variables:
arriving_person: >-
{{ (trigger.to_state.name | replace('Life360 ', '')).split(' ')[0] }}
condition:
- condition: state
entity_id: lock.front_door
@@ -222,13 +235,13 @@ automation:
- service: script.notify_engine
data:
title: "Front door auto-unlocked"
value1: "Unlocking for {{ trigger.to_state.name }} arriving from driving."
value1: "Unlocking for {{ arriving_person }} arriving from driving."
who: "family"
group: "Welcome_Home"
- service: script.send_to_logbook
data:
topic: "DOORS"
message: "Front door auto-unlocked for {{ trigger.to_state.name }} arriving from driving."
message: "Front door auto-unlocked for {{ arriving_person }} arriving from driving."
######################################################################