Loxone: Benachrichtigung per Telegram

Der Miniserver bietet mit seiner App die Möglichkeit, sich per Push-Nachricht über die aktuellen Geschehnisse auf dem Laufenden halten zu lassen. Ich persönlich mag es jedoch lieber, per Telegram benachrichtigt zu werden, da auch meine anderen Smarthome-Geräte dies so tun. Hier hatte ich bereits die Grundlagen zum automatisierten Versenden von Telegram-Nachrichten beschrieben und in diesem Beitrag geht es nun darum, wie man das mit dem Loxone Miniserver (Gen. 1 & Gen. 2) nutzt und Telegram Nachrichten versendet.

Telegram-Benachrichtigung vom Loxone Miniserver

Inhalt

Vorbereitung

Ich gehe davon aus, dass ihr den Bot bereits eingerichtet habt und er grundsätzlich in der Lage ist, euch per URL-Aufruf Nachrichten zu senden. Falls nicht, solltet ihr zuerst nochmal nachlesen und alles vorbereiten.

Für diesen Beitrag nutze ich folgende Beispieldaten:

  • User-ID (bzw. Chat-ID): 238470164
  • Token: 5035750014:AAEV9N2H0TBhtmnTv2lbvYjWMv5ERRaozao
  • LoxBerry IP-Adresse: 192.168.243.77

Somit ergibt sich für das direkte Absetzen einer Nachricht per Telegram folgende Beispiel-URL:
https://api.telegram.org/bot5035750014:AAEV9N2H0TBhtmnTv2lbvYjWMv5ERRaozao/sendmessage?chat_id=238470164&text=Nachricht

HTTP vs. HTTPS

Bekanntermaßen ist der Miniserver Gen. 2 in der Lage verschlüsselte Verbindungen zu nutzen, somit ist bei ihm eine direkte Integration von Telegram möglich. Der Miniserver Gen. 1 kann das jedoch nicht, daher muss hier ein kleiner Umweg gemacht werden, denn die Telegram-API ist nur verschlüsselt (per HTTPS) erreichbar.

Der Umweg für die erste Generation ist, dass ein HTTP-Aufruf in HTTPS gewandelt werden muss. Dafür gibt es sicherlich verschiedene Möglichkeiten, doch die einfachste ist das LoxBerry-Plugin https2http.

Das Plugin ist schnell installiert und besitzt keine Einstellmöglichkeiten. Beim Aufruf der Plugin-Seite wird jedoch ein Konverter angeboten der im Prinzip auch schon erklärt, wie das Ganze funktioniert: Statt die Telegram-URL direkt aufzurufen wird die URL des Plugins aufgerufen und die Telegram-URL als Parameter übergeben. Den Rest macht das Plugin von alleine.

Trägt man im Konverter im oberen Feld unsere Beispiel-URL ein, so macht das Plugin daraus:
http://192.168.243.77/plugins/https2http/?url=https%3A%2F%2Fapi.telegram.org%2Fbot5035750014%3AAAEV9N2H0TBhtmnTv2lbvYjWMv5ERRaozao%2Fsendmessage%3Fchat_id%3D238470164%26text%3DNachricht

LoxBerry: https2http-Plugin

LoxBerry: https2http-Plugin

Das ist nichts anderes als die Grundadresse http://192.168.243.77/plugins/https2http/?url= gefolgt von der Ziel-Adresse, bei der alle Sonderzeichen in der Prozentdarstellung geschrieben sind. Damit können wir arbeiten.

Telegram-Benachrichtigung in Loxone Config

In Loxone Config legen wir einen neuen Virtuellen Ausgang an und nennen ihn Telegram. Je nach Version des Miniservers wird im Feld Adresse nun entweder die IP-Adresse des LoxBerry eingetragen (Gen.1 ), oder aber die Adresse der Telegram-API (Gen. 2). In diesem Beitrag zeige das immer mit dem Miniserver Gen. 1, schreibe aber die Werte für Gen. 2 daneben.

Loxone Config: Virtuellen Ausgang für Telegram anlegen

Loxone Config: Virtuellen Ausgang für Telegram anlegen

Beispiel 1: statischer Text

Anschließend legen wir einen Virtuellen Ausgang Befehl an, und tragen bei Befehl bei EIN den Rest der URL ein:

/plugins/https2http/?url=https%3A%2F%2Fapi.telegram.org%2Fbot5035750014%3AAAEV9N2H0TBhtmnTv2lbvYjWMv5ERRaozao%2Fsendmessage%3Fchat_id%3D238470164%26text=Taster EIN

Als Bezeichnung für den Befehl verwende ich „tgm_Taster“ und als Text „Taster EIN“, denn wir wollen diesen Befehl gleich mit einem Taster-Baustein verknüpfen.

Loxone Config: Virtuellen Ausgang Befehl für Taster anlegen

Loxone Config: Virtuellen Ausgang Befehl für Taster anlegen

Miniserver Gen. 1

Virtueller Ausgang
Adresse: http://192.168.243.77

Virtueller Ausgang Befehl
Bezeichnung: tgm_Taster
Befehl bei EIN:
/plugins/https2http/?url=https%3A%2F%2Fapi.telegram.org%2Fbot5035750014%3AAAEV9N2H0TBhtmnTv2lbvYjWMv5ERRaozao%2Fsendmessage%3Fchat_id%3D238470164%26text=Taster EIN

Miniserver Gen. 2

Virtueller Ausgang
Adresse: https://api.telegram.org

Virtueller Ausgang Befehl
Bezeichnung: tgm_Taster
Befehl bei EIN:
/bot5035750014:AAEV9N2H0TBhtmnTv2lbvYjWMv5ERRaozao/sendmessage?chat_id=238470164&text=Taster EIN

Für mich ist es übersichtlicher, das %3D hinter text gegen ein = auszutauschen, da man so direkt erkennen kann, wo der eigentliche Nachrichtentext beginnt und was dessen Inhalt ist. Der Plugin hat damit kein Problem und ruft die URL korrekt auf. Selbiges funktioniert auch mit anderen Sonderzeichen in der URL. Es gibt nur zwei Zeichen, die vermieden werden müssen: mit : hat der Miniserver ein Problem, & bringt das Plugin dazu, nicht zu reagieren.

Jetzt muss der Ausgang nur noch mit einem Taster-Baustein verschaltet und in den Miniserver geladen werden. Durch das Betätigen des Taster-Bausteins erhält man nun die Nachricht „Taster EIN“ per Telegram zugesandt.

Loxone Config: Telegram-Ausgang mit Taster-Baustein verschalten

Loxone Config: Telegram-Ausgang mit Taster-Baustein verschalten

Beispiel 2: Text mit Werten

Nun legen wir uns einen weiteren Virtuellen Ausgang Befehl an, den ich „tgm_Schalter“ nenne. Wir wollen uns den aktuellen Zustand eines Schalters zusenden lassen, also befüllen wir die Parameter wie folgt:

Miniserver Gen. 1

Virtueller Ausgang Befehl
Bezeichnung: tgm_Schalter
Befehl bei EIN:
/plugins/https2http/?url=https%3A%2F%2Fapi.telegram.org%2Fbot5035750014%3AAAEV9N2H0TBhtmnTv2lbvYjWMv5ERRaozao%2Fsendmessage%3Fchat_id%3D238470164%26text=Schalter <v>
Befehl bei AUS:
/plugins/https2http/?url=https%3A%2F%2Fapi.telegram.org%2Fbot5035750014%3AAAEV9N2H0TBhtmnTv2lbvYjWMv5ERRaozao%2Fsendmessage%3Fchat_id%3D238470164%26text=Schalter <v>

Miniserver Gen. 2

Virtueller Ausgang Befehl
Bezeichnung: tgm_Schalter
Befehl bei EIN:
/bot5035750014:AAEV9N2H0TBhtmnTv2lbvYjWMv5ERRaozao/sendmessage?chat_id=238470164&text=Schalter <v>
Befehl bei AUS:
/bot5035750014:AAEV9N2H0TBhtmnTv2lbvYjWMv5ERRaozao/sendmessage?chat_id=238470164&text=Schalter <v>

Der Platzhalter für dynamische Werte ist <v> und funktioniert bei der Benachrichtigung über Telegram genauso, wie auch sonst bei virtuellen Ausgängen.

Loxone Config: Telegram-Ausgang mit Schalter-Baustein

Loxone Config: Telegram-Ausgang mit Schalter-Baustein

Beim Einschalten des Schalters erhalten wir die Nachricht „Schalter 1„, beim Ausschalten die Nachricht „Schalter 0„.

Ergebnis

Ein Blick in die Telegram-App zeigt uns die Nachrichten, die wir erhalten haben:

Telegram: Benachrichtigungen vom Loxone Miniserver

Telegram: Benachrichtigungen vom Loxone Miniserver

Wie man die Benachrichtigung nun am besten nutzt ist sicherlich eine sehr individuelle Sache. Durch die Platzhalter für dynamische Werte hat man jedoch sehr viele Möglichkeiten.

Fehlersuche

Sollte etwas nicht wie gewünscht funktionieren oder die Nachricht einfach nicht ankommen wollen, dann hilft ein Blick in das Logfile vom https2http-Plugin. Man kann sehen, ob der Aufruf überhaupt da angekommen ist und wie die Antwort von der Telegram-API lautete.

LoxBerry: https2http-Plugin (Logfile)

LoxBerry: https2http-Plugin (Logfile)

Weiterführende Links

Sebastian

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht.

WordPress Cookie Hinweis von Real Cookie Banner