Skip to content

Commit fbfe34d

Browse files
committed
Add Garadget automation package with entry helper and auto-unlock features
- Introduced `garadget.yaml` for managing garage door operations via MQTT, including auto-open on arrival and an entry helper prompt for unlocking the front door or opening the garage. - Updated README.md to include a new section on Garadget automations, highlighting key features and integration details. - Enhanced automation logic for better user interaction and notifications upon arrival. #1365
1 parent 2b40fff commit fbfe34d

4 files changed

Lines changed: 83 additions & 125 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ Live, personal Home Assistant configuration shared for **browsing and inspiratio
4444
- Dash-button triggers for quick actions: [config/automation/dash_buttons.yaml](config/automation/dash_buttons.yaml)
4545
- PC lock/unlock-driven lighting via HASS.Agent: [config/packages/hass_agent_homepc.yaml](config/packages/hass_agent_homepc.yaml)
4646
- Seasonal cuckoo clock with October and Christmas sound packs: [config/automation/System/CucKoo_Clock.yaml](config/automation/System/CucKoo_Clock.yaml)
47+
- Garage arrival and entry helpers: [config/packages/garadget.yaml](config/packages/garadget.yaml)
4748
- Battery and solar awareness: [config/packages/powerwall.yaml](config/packages/powerwall.yaml)
4849
- Presence-aware office comfort: [config/packages/office_motion.yaml](config/packages/office_motion.yaml)
4950
- Weather-aware lighting: [config/automation/dark_rainy_day.yaml](config/automation/dark_rainy_day.yaml)

config/packages/README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@ Live collection of plug-and-play Home Assistant packages. Each YAML file in this
4949
| [hass_agent_homepc.yaml](hass_agent_homepc.yaml) | Mirrors PC lock/unlock state from HASS.Agent to the office lamp for instant desk presence cues. | `sensor.carlo_homepc_carlo_homepc_sessionstate`, `switch.office_lamp_switch` |
5050
| [finance.yaml](finance.yaml) | Yahoo Finance sensor bundle for portfolio glances and Lovelace cards. | `sensor.tsla`, `sensor.aapl`, `sensor.amzn`, `sensor.msft` |
5151

52+
### Garadget automations
53+
- Logic lives in [garadget.yaml](garadget.yaml): auto-open on arrival, entry helper prompt (unlock front door or open garage), auto-unlock for Paige/Justin, wind checks, nightly open-door reminders, and camera pop-ups.
54+
- MQTT-based covers for large/small doors; notifications and speech wired to the house notify/speech engines.
55+
![Garadget Automation](../www/custom_ui/floorplan/images/branding/Garadget%20Automation.png)
56+
5257
### Nest climate control
5358
- Logic lives in [climate.yaml](climate.yaml) and centralizes downstairs/upstairs Nest schedules, grid-aware guardrails, humidity pulses, and presence/weather-based targets.
5459
- Shared script keeps targets consistent: away → eco, home + >92°F → 78°F, home default → 80°F. Grid-down conditions pause non-essential cool-downs.

config/packages/garadget.yaml

Lines changed: 77 additions & 125 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,29 @@
11
#-------------------------------------------
2-
# Garadget Configuration
3-
# Description: Setup for Garadget garage door opener/sensor
2+
# Garadget Configuration for Home Assistant
43
#
5-
# Integration: MQTT
6-
# Hardware: Garadget (https://amzn.to/2jQLpVQ)
4+
# This package sets up the Garadget garage doors using MQTT cover and sensor platforms.
5+
#
6+
# Automation Integration:
7+
# - Fully supports Home Assistant automation for notifications,
8+
# remote control, and state monitoring.
9+
# - Works seamlessly with notification engines (see `script.notify_engine`)
10+
# for actionable alerts when garage state changes or manual intervention is required.
711
#
812
# Features:
9-
# - Garage door status monitoring
10-
# - Remote open/close control
11-
# - Door brightness sensing
13+
# - Garage door status monitoring (open/close state, time since change)
14+
# - Remote open, close, and stop actions
15+
# - Door brightness sensing (helps detect obstacles or sunlight conditions)
1216
#
13-
# Documentation:
14-
# - Integration Guide: https://www.vcloudinfo.com/2019/03/how-to-add-garadget-to-home-assistant.html
15-
# - Access Token Update: https://www.vcloudinfo.com/2020/05/fixing-garadget-in-home-assistant.html
17+
# Integration/Setup Guides:
18+
# - Setup: https://www.vcloudinfo.com/2019/03/how-to-add-garadget-to-home-assistant.html
19+
# - Token Fix: https://www.vcloudinfo.com/2020/05/fixing-garadget-in-home-assistant.html
1620
#
17-
# Original Repository: https://github.com/CCOSTAN/Home-AssistantConfig
18-
# Follow me on https://www.vcloudinfo.com/click-here
21+
# Hardware:
22+
# - Garadget unit (https://amzn.to/2jQLpVQ)
23+
#
24+
# Repository & Author:
25+
# - https://github.com/CCOSTAN/Home-AssistantConfig
26+
# - @CCOSTAN | More info: https://www.vcloudinfo.com/click-here
1927
#-------------------------------------------
2028

2129
mqtt:
@@ -92,7 +100,6 @@ automation:
92100
entity_id:
93101
- person.carlo
94102
- person.stacey
95-
- person.justin
96103
from: 'driving'
97104
to: 'home'
98105
condition:
@@ -123,45 +130,50 @@ automation:
123130
camera_entity: camera.garagecam
124131

125132
######################################################################
126-
## Send a notification to anyone coming home asking if they want to open the garage door.
133+
## Entry helper prompt after arrival if auto-open didn’t fire.
127134
######################################################################
128135

129-
- alias: 'Garage Helper'
136+
- alias: 'Entry Helper'
130137
id: 365adc21-5e96-4e78-9e94-089901a29430
131138
mode: parallel
132139
trigger:
133140
- platform: state
134141
entity_id:
135142
- person.carlo
136143
- person.stacey
137-
# from: 'driving'
138144
to: 'home'
139145
condition:
140146
- condition: state
141147
entity_id: cover.large_garage_door
142148
state: 'closed'
143149
action:
144-
# - variables:
145-
# person_triggered: "{{ trigger.to_state.entity_id.split('.')[1] }}"
146-
- service: input_text.set_value
147-
target:
148-
entity_id: input_text.last_person_home
149-
data:
150-
value: "{{ trigger.to_state.entity_id.split('.')[1] }}"
151-
- service: script.notify_engine_two_button
152-
data:
153-
title: 'Welcome Home!'
154-
value1: 'Open Large Garage door?'
155-
title1: 'Yes'
156-
action1: 'OPEN_LARGE_GARAGE'
157-
icon1: 'sfsymbols:arrow.up.circle'
158-
destructive1: 'false'
159-
title2: 'No'
160-
action2: 'NO_OPEN_LARGE_GARAGE'
161-
icon2: 'sfsymbols:house.circle'
162-
destructive2: 'true'
163-
who: "{{ states('input_text.last_person_home') }}"
164-
group: 'Welcome_Home'
150+
# Give the auto-open routine a chance to fire; if the door opened, skip the prompt.
151+
- delay: "00:00:25"
152+
- choose:
153+
- conditions:
154+
- condition: state
155+
entity_id: cover.large_garage_door
156+
state: 'closed'
157+
sequence:
158+
- service: input_text.set_value
159+
target:
160+
entity_id: input_text.last_person_home
161+
data:
162+
value: "{{ trigger.to_state.entity_id.split('.')[1] }}"
163+
- service: script.notify_engine_two_button
164+
data:
165+
title: 'Welcome Home!'
166+
value1: 'Choose: unlock front door or open garage?'
167+
title1: 'Unlock Door'
168+
action1: 'UNLOCK_FRONT_DOOR'
169+
icon1: 'sfsymbols:lock.open'
170+
destructive1: 'false'
171+
title2: 'Open Garage'
172+
action2: 'OPEN_LARGE_GARAGE'
173+
icon2: 'sfsymbols:arrow.up.circle'
174+
destructive2: 'false'
175+
who: "{{ states('input_text.last_person_home') }}"
176+
group: 'Welcome_Home'
165177

166178
- alias: 'Open Large Garage Door Action'
167179
id: 85e02a74-2ecc-4815-95a6-db864a6dffd7
@@ -181,33 +193,6 @@ automation:
181193
- service: cover.open_cover
182194
entity_id: cover.large_garage_door
183195

184-
- alias: 'Prompt to Open Front Door'
185-
id: ece2b4a8-af21-41f4-a8fc-480a4d1ddabc
186-
trigger:
187-
platform: event
188-
event_type: mobile_app_notification_action
189-
event_data:
190-
action: NO_OPEN_LARGE_GARAGE
191-
condition:
192-
- condition: state
193-
entity_id: group.family
194-
state: 'home'
195-
action:
196-
- service: script.notify_engine_two_button
197-
data:
198-
title: 'Unlock Front Door?'
199-
value1: 'Do you want to unlock the front door instead?'
200-
title1: 'Yes'
201-
action1: 'UNLOCK_FRONT_DOOR'
202-
icon1: 'sfsymbols:unlock'
203-
destructive1: 'false'
204-
title2: 'No'
205-
action2: 'KEEP_FRONT_DOOR_LOCKED'
206-
icon2: 'sfsymbols:lock'
207-
destructive2: 'true'
208-
who: "{{ states('input_text.last_person_home') }}"
209-
group: 'Welcome_Home'
210-
211196
- alias: 'Unlock Front Door Action'
212197
id: c3106db1-f2c4-4800-b1a3-76d440228600
213198
trigger:
@@ -219,6 +204,34 @@ automation:
219204
- service: lock.unlock
220205
entity_id: lock.front_door
221206

207+
######################################################################
208+
## Auto-unlock front door when Paige or Justin arrive from driving
209+
######################################################################
210+
- alias: 'Auto Unlock Front Door on Arrival (Paige/Justin)'
211+
id: 8f4f5f6a-9c2d-4f4c-9f6c-7d5e5b2e2c3d
212+
mode: single
213+
trigger:
214+
- platform: state
215+
entity_id:
216+
- person.paige
217+
- person.justin
218+
from: 'driving'
219+
to: 'home'
220+
condition:
221+
- condition: state
222+
entity_id: lock.front_door
223+
state: 'locked'
224+
action:
225+
- service: lock.unlock
226+
target:
227+
entity_id: lock.front_door
228+
- service: script.notify_engine
229+
data:
230+
title: "Front door auto-unlocked"
231+
value1: "Unlocking for {{ trigger.to_state.name }} arriving from driving."
232+
who: "family"
233+
group: "Welcome_Home"
234+
222235

223236
######################################################################
224237
## Garage Status Announcements - Only during normal hours.
@@ -450,64 +463,3 @@ automation:
450463
media_content_id: 'hide garage camera'
451464
media_content_type: custom
452465

453-
454-
455-
- alias: 'Garage Camera on Alexa Shows'
456-
id: 4373df2a-77f2-4e19-be7c-46c7b27ca583
457-
mode: single
458-
trigger:
459-
- platform: state
460-
entity_id:
461-
- cover.large_garage_door
462-
- cover.small_garage_door
463-
from: 'closed'
464-
to: 'open'
465-
466-
- platform: state
467-
entity_id: binary_sensor.mcu1_gpio12 #interior Garage Doors
468-
from: 'off'
469-
to: 'on'
470-
471-
- platform: state
472-
entity_id:
473-
- person.carlo
474-
- person.stacey
475-
- person.paige
476-
- person.justin
477-
to: 'not_home'
478-
from: 'home'
479-
480-
action:
481-
- choose:
482-
- conditions: "{{ is_state('binary_sensor.sleepnumber_carlo_stacey_is_in_bed','on') }}"
483-
sequence:
484-
- service: media_player.play_media
485-
data:
486-
entity_id: media_player.stacey_bedroom
487-
media_content_id: 'show garage camera from home assistant'
488-
media_content_type: custom
489-
- delay: '00:10:00'
490-
- service: media_player.play_media
491-
data:
492-
entity_id: media_player.stacey_bedroom
493-
media_content_id: 'hide garage camera'
494-
media_content_type: custom
495-
496-
default:
497-
- service: media_player.play_media
498-
target:
499-
entity_id: media_player.kitchen
500-
data:
501-
media_content_id: 'show garage camera from home assistant'
502-
media_content_type: custom
503-
- delay: '00:20:00'
504-
- service: media_player.play_media
505-
target:
506-
entity_id: media_player.kitchen
507-
data:
508-
media_content_id: 'hide garage camera'
509-
media_content_type: custom
510-
511-
512-
513-
5.21 MB
Loading

0 commit comments

Comments
 (0)