Ich kenne das Gefühl: Man ist schon ein paar Minuten unterwegs und fragt sich plötzlich, ob das Garagentor noch offen steht. Das ist nicht nur lästig, sondern auch ein echtes Sicherheitsthema. Deswegen habe ich mir eine Automation gebaut, die mich per Telegram warnt und mir direkt in der Nachricht einen Button anzeigt, mit dem ich das Tor schließen kann, ohne erst die Home Assistant App öffnen zu müssen.
Es gibt zwei Szenarien, die ich damit abdecke: Das Tor steht länger als 30 Minuten offen, oder ich verlasse das Haus und das Tor ist noch nicht zu. Beides landet als Telegram-Nachricht mit Inline-Keyboard auf meinem Handy.
Was du dafür brauchst
Für diese Automation brauchst du einen Garagentoröffner, der in Home Assistant eingebunden ist. Ich nutze dafür den Meross Garagentoröffner, der sich wahnsinnig einfach einrichten lässt und direkt als Cover-Entity in Home Assistant auftaucht. Wer über den Meross Shop bestellt, bekommt mit dem Code AAT10 noch 10 % Rabatt.
Dazu brauchst du natürlich die Telegram-Integration in Home Assistant. Die ist etwas fummelig beim ersten Einrichten, funktioniert danach aber wirklich zuverlässig. Du benötigst deine Chat-ID und einen Telegram-Bot, den du über den BotFather anlegst. In die configuration.yaml kommt davon nichts mehr, die Einrichtung läuft komplett über die Oberfläche:
- Einstellungen → Geräte & Dienste → Integration hinzufügen und nach „Telegram bot“ suchen.
- Den Bot-Token vom BotFather eintragen und als Plattform Polling wählen. Das ist die einfachste Variante, weil Home Assistant dafür nicht aus dem Internet erreichbar sein muss.
- Über das Drei-Punkte-Menü am neuen Eintrag deine Chat-ID als erlaubten Chat hinzufügen.
Jeder erlaubte Chat wird zu einer eigenen Notify-Entity, benannt nach dem Chat. Die genaue Entity-ID findest du unter Einstellungen → Werkzeuge → Zustände, wenn du nach notify. filterst. In den Beispielen unten steht dafür der Platzhalter notify.DEIN_TELEGRAM_CHAT.
Die Automation: Tor zu lange offen
Das erste Szenario ist denkbar simpel: Wenn das Garagentor länger als 30 Minuten im Zustand open bleibt, soll eine Warnung rausgehen. Den Trigger setze ich auf einen State-Trigger mit for-Angabe.
1automation:
2 - alias: "Garagentor offen – Warnung nach 30 Minuten"
3 triggers:
4 - trigger: state
5 entity_id: cover.garagentor
6 to: "open"
7 for:
8 minutes: 30
9 actions:
10 - action: telegram_bot.send_message
11 data:
12 entity_id: notify.DEIN_TELEGRAM_CHAT
13 message: "Das Garagentor ist seit 30 Minuten offen. Soll ich es schließen?"
14 inline_keyboard:
15 - "Tor schließen:/garagentor_schliessen"Das Inline-Keyboard ist das Entscheidende hier. Deshalb läuft der Versand über telegram_bot.send_message und nicht über notify.send_message, denn nur die Telegram-Aktion kann Buttons mitschicken. Jeder Eintrag in inline_keyboard ist eine Button-Zeile im Format Beschriftung:/befehl. Telegram zeigt dir direkt unter der Nachricht einen Button an. Tippst du drauf, sendet Telegram einen Callback mit dem Wert /garagentor_schliessen zurück an Home Assistant.
Die Automation: Haus verlassen mit offenem Tor
Das zweite Szenario greift, wenn ich das Haus verlasse und das Tor noch offen ist. Dafür nutze ich die Anwesenheitserkennung über eine person-Entity. Der Trigger ist ein State-Wechsel von home auf not_home, mit einer Bedingung, die prüft, ob das Tor gerade offen ist.
1automation:
2 - alias: "Garagentor offen beim Verlassen des Hauses"
3 triggers:
4 - trigger: state
5 entity_id: person.daniel
6 from: "home"
7 to: "not_home"
8 conditions:
9 - condition: state
10 entity_id: cover.garagentor
11 state: "open"
12 actions:
13 - action: telegram_bot.send_message
14 data:
15 entity_id: notify.DEIN_TELEGRAM_CHAT
16 message: "Du hast das Haus verlassen und das Garagentor ist noch offen!"
17 inline_keyboard:
18 - "Tor jetzt schließen:/garagentor_schliessen"Die Logik ist eigentlich relativ simpel, funktioniert bei mir aber wahnsinnig zuverlässig. Wichtig ist, dass deine Anwesenheitserkennung stabil läuft, sonst bekommst du entweder zu viele oder gar keine Warnungen.
Den Callback verarbeiten
Damit der Button in Telegram auch wirklich etwas tut, braucht Home Assistant eine dritte Automation, die auf den Callback reagiert. Die wird über einen Event-Trigger auf das telegram_callback-Event ausgelöst.
1automation:
2 - alias: "Telegram Callback – Garagentor schließen"
3 triggers:
4 - trigger: event
5 event_type: telegram_callback
6 event_data:
7 data: "/garagentor_schliessen"
8 actions:
9 - action: cover.close_cover
10 target:
11 entity_id: cover.garagentor
12 - action: telegram_bot.answer_callback_query
13 data:
14 callback_query_id: "{{ trigger.event.data.id }}"
15 message: "Garagentor wird geschlossen."Der telegram_bot.answer_callback_query-Aufruf ist wichtig, damit Telegram das Ladesymbol am Button wieder entfernt und dem Nutzer, also mir, ein kurzes Feedback gibt. Ohne diesen Schritt dreht sich der Button einfach endlos weiter. Das ist ein Detail, das man leider schnell vergisst.
Ein paar Dinge, die man beachten sollte
Die cover.garagentor-Entity musst du natürlich durch deine tatsächliche Entity-ID ersetzen. Die findest du unter Einstellungen → Werkzeuge → Zustände.
Wenn du mehrere Personen im Haushalt hast, kannst du entweder mehrere Trigger für die Person-Entities einbauen oder eine Gruppe verwenden. Ich habe das bei mir so gelöst, dass die Warnung nur rausgeht, wenn die letzte Person das Haus verlässt, also wenn niemand mehr zuhause ist.
Eine Sperre gegen Nachrichten-Spam brauchst du für die 30-Minuten-Automation nicht. Der State-Trigger mit for feuert genau einmal, wenn das Tor 30 Minuten am Stück offen war. Bleibt es danach weiter offen, kommt keine zweite Nachricht. Erst wenn das Tor geschlossen und wieder geöffnet wird, läuft der Zähler neu los.
Wer den Meross Garagentoröffner noch nicht hat: Ich bin damit wirklich zufrieden. Die Integration in Home Assistant läuft problemlos und die Einrichtung war in ein paar Minuten erledigt. Für alle die gerade überlegen, einen Garagentoröffner anzuschaffen: auf jeden Fall mal anschauen.
Nutzt du auch eine Telegram-Automation für dein Garagentor, oder hast du das anders gelöst? Schreib gerne in die Kommentare, was bei dir funktioniert.
