Es wäre ja schön, wenn man sich das Haus einfach per Messenger melden könnte, wenn was nicht passt oder wenn bestimmte Ereignisse eingetreten sind.
Um sich Nachrichten vom Smarthome-System auf’s Handy schicken zu lassen gibt es diverse Push-Notification-Anbieter, kostenfrei geht’s mit der App Telegram und dem dazugehörigen openhab2-Binding. Push-Notifications sind dann via rule-Befehl von openHAB problemlos möglich. Und einfach und schnell in max. 15 Minuten eingerichtet ist das Ganze auch noch.
Telegram App installieren
Zuerst die App Telegram am Handy installieren. Dann in der App auf das Suchen-Feld klicken und „botfather“ eintippen und den dann angezeigten so benannten Kontakt anklicken.
Nun muss ein Bot erstellt werden, dazu
- /newbot senden
- Namen für den gewünschten Bot senden
- Benutzernamen für den gewünschten Bot senden
- Raus aus dem Bothfather-Chat und einen neuen Chat starten, diesmal den oben vergebenen Benutzernamen suchen und einfach irgendeine Testnachricht schicken
- Nun im Webbrowser die URL https://api.telegram.org/bot[DEINAPIKEY]/getUpdates aufrufen und [DEINAPIKEY] durch den API-Schlüssel ersetzen, der in der Botfather-Nachricht genannt wurde
- Die Daten im Browser anzeigen lassen, Firefox zeigt das als JSON gleich ganz gut an, aus dem Ausschnitt mit der Testnachricht holen wir nun die „id“:
openHAB2 konfigurieren
Jetzt PaperUI aufrufen, unter Add-Ons / Actions die Telegram Action auswählen / installieren.
Dann unter /etc/openhabe/services/telegram.cfg die Konfigurationsdaten für die Telegram Action anpassen, anbei mein bot:
bots=bot1 bot1.chatId=[ID DES CHATS] bot1.token=[DEINAPIKEY]
Soll es mehrere Bots geben diese hinter bots= kommasepariert aufführen. Wichtig dabei: Nur ein Komma, kein zusätzliche Leerzeichen.
Um die Änderungen wirksam zu machen muss der openHAB service neu gestartet werden:
sudo systemctl restart openhab2.service
Beim Hochfahren von openHAB ist die Konfiguration auch im Logfile zu sehen und wenn es wie folgt aussieht, ist die Konfig schon einmal syntaktisch korrekt:
2018-01-26 15:49:14.797 [INFO ] [egram.internal.TelegramActionService] – Bot bot1 loaded from config file
openHAB2 – Rules: Ansprechen des Bots
Um den Bot anzusprechen kann nun in beliebigen Rules der Bot angesprochen werden.
Zum Testen lasse ich mich mit folgender Rule über eine Veränderung des Lichts in meinem Büro informieren:
rule "Bot Test - Informiere über Lichtstatus" when Item OG_LICHT_BUERO changed then sendTelegram("bot1", "Licht hat Status geändert auf " + OG_LICHT_BUERO.state.toString()) end
Hey danke für das Tutorial. Eine Frage habe ich. Wie kann ich mir eine Nachricht schicken lassen, wenn meine Bewässerung eingeschaltet wurde?
.item sieht so aus:
Group stations
Switch Terrasse (stations) { channel=“opensprinkler:http:xxx:station01″ }
Switch Seite (stations) { channel=“opensprinkler:http:xxx:station02″ }
Switch Tropfbewaesserung (stations) { channel=“opensprinkler:http:xxx:station03″ }
Switch RainSensor { channel=“opensprinkler:http:xxx:rainsensor“ }
Bei den rules habe ich es so oder so probiert, was aber nicht funktioniert…
rule „Bot Regnerkreis 1″
when channel=“opensprinkler:http:xxx:station01“ changed
then sendTelegram(„bot1“, „Regnerkreis Terrasse hat Status geändert auf “ + Terrasse.state.toString())
end
rule „Bot Regnerkreis 1“
when Item Terrasse changed
then sendTelegram(„bot1“, „Regnerkreis Terrasse hat Status geändert auf “ + Terrasse.state.toString())
end
Hallo Handi.
Die Rule muss auf ein Item lauschen, also z.b. when Item Tropfbewaesserung (…)
Für derartigen allgemeinen Support bitte die openhab Foren benutzen, individuellen, tiefer gehenden Support kann ich nicht leisten.
Danke für das Verständnis!
Florian
Naja aber das habe ich ja im Beispiel 2 auch gemacht?? Mhhh komisch. Dann muss ich mich mal woanders umhören… Danke
Oh doch ja, das hatte ich falsch gelesen. Im Prinzip müsste es funktionieren. Wird Mal einen Blick ins Logfile, meist steht da ja dann etwas verwertbares drin.