From 0311447d91860d1dc1c848f6c6708fecd5f71178 Mon Sep 17 00:00:00 2001 From: Claus Dethlefsen Date: Sun, 19 Apr 2026 19:25:20 +0200 Subject: [PATCH] Robust garage: use input_boolean to track car departure - Replace fragile Tesla tracker state check with input_boolean.left_home_by_car - Set boolean ON when leaving by car (speed > 0), check it on arrival - Add separate car_arriving trigger as backup for WiFi-first phone - Fixes: garage not opening on arrival due to slow Tesla tracker updates --- .../open_garage_when_car_arrives.yaml | 67 +++++++++++++------ include/input/boolean/garage.yaml | 4 ++ 2 files changed, 52 insertions(+), 19 deletions(-) create mode 100644 include/input/boolean/garage.yaml diff --git a/include/automations/open_garage_when_car_arrives.yaml b/include/automations/open_garage_when_car_arrives.yaml index 4acba4b..16fae85 100644 --- a/include/automations/open_garage_when_car_arrives.yaml +++ b/include/automations/open_garage_when_car_arrives.yaml @@ -2,7 +2,8 @@ alias: Garage auto Claus description: > Åbn garage ved ankomst i bil, luk ved afrejse. - Trigger på både telefon og bil-tracker for at fange begge signaler. + Bruger input_boolean.left_home_by_car til at huske at afrejsen var i bil, + så ankomst-logikken ikke afhænger af at Tesla-trackeren opdaterer hurtigt. trigger: # Telefon ankommer hjem (debounce 10s mod GPS-flimmer) @@ -13,11 +14,11 @@ seconds: 10 id: arriving - # Bil ankommer hjem (fanger tilfælde hvor telefon allerede var "home" via WiFi) + # Bil ankommer hjem (backup hvis telefon allerede var "home" via WiFi) - platform: state entity_id: device_tracker.snowywhite_location_tracker to: "home" - id: arriving + id: car_arriving # Telefon forlader hjemmet (debounce 10s mod GPS-flimmer) - platform: state @@ -35,7 +36,7 @@ action: - choose: - # ÅBN: garage lukket + telefon hjemme + bil netop ankommet + # ÅBN via telefon: garage lukket + forlod hjemmet i bil - conditions: - condition: trigger id: arriving @@ -44,31 +45,54 @@ entity_id: binary_sensor.garageport state: "off" - # Telefon skal være hjemme + # Vi ved at brugeren kørte hjemmefra - condition: state - entity_id: device_tracker.claus_iphone_15pro - state: "home" - - # Bil skal være hjemme - - condition: state - entity_id: device_tracker.snowywhite_location_tracker - state: "home" - - # Bilen skal have skiftet til "home" for nylig (< 5 min) - # Forhindrer åbning hvis du går hjem og bilen allerede stod i garagen - - condition: template - value_template: > - {{ (now() - states.device_tracker.snowywhite_location_tracker.last_changed).total_seconds() < 300 }} + entity_id: input_boolean.left_home_by_car + state: "on" sequence: - service: cover.toggle target: entity_id: cover.anne + - service: input_boolean.turn_off + target: + entity_id: input_boolean.left_home_by_car + - service: notify.mobile_app_claus_iphone_15pro data: message: "Garage åbnet (ankomst i bil)" + # ÅBN via bil-tracker: telefon allerede hjemme + forlod i bil + - conditions: + - condition: trigger + id: car_arriving + + - condition: state + entity_id: binary_sensor.garageport + state: "off" + + - condition: state + entity_id: device_tracker.claus_iphone_15pro + state: "home" + + - condition: state + entity_id: input_boolean.left_home_by_car + state: "on" + + sequence: + - service: cover.toggle + target: + entity_id: cover.anne + + - service: input_boolean.turn_off + target: + entity_id: input_boolean.left_home_by_car + + - service: notify.mobile_app_claus_iphone_15pro + data: + message: "Garage åbnet (bil-tracker ankomst)" + # LUK: garage åben + forlader hjemmet + bil kører - conditions: - condition: trigger @@ -78,12 +102,17 @@ entity_id: binary_sensor.garageport state: "on" - # Bil skal faktisk have fart (> 0), ikke bare "speed eksisterer" + # Bil skal faktisk have fart (> 0) - condition: template value_template: > {{ (state_attr('device_tracker.snowywhite_location_tracker', 'speed') | float(0)) > 0 }} sequence: + # Markér at vi kørte hjemmefra (bruges ved ankomst) + - service: input_boolean.turn_on + target: + entity_id: input_boolean.left_home_by_car + - delay: "00:00:30" # Dobbelttjek at garagen stadig er åben efter forsinkelsen diff --git a/include/input/boolean/garage.yaml b/include/input/boolean/garage.yaml new file mode 100644 index 0000000..e918662 --- /dev/null +++ b/include/input/boolean/garage.yaml @@ -0,0 +1,4 @@ +left_home_by_car: + name: Forlod hjemmet i bil + icon: mdi:car + initial: false