Direkt zum Inhalt
PekawayPekaway
Telegram einbinden

Telegram einbinden

Mithilfe des Telegram Messengers kann man die Steuerung auf das Smartphone bringen. Man legt Commandos fest, die man dem Bot schickt, und je nach Einstellungen in Node-RED werden Funktionen ausgeführt. So kann man sich zum Beispiel benachrichtigen lassen, falls bestimmte Temperaturwerte erreicht werden, oder man benutzt den Bot um zum Beispiel Relays zu schalten.
Voraussetzung hierfür ist eine aktive Internetverbindung. Telegram und die BotApi dient hier als "Mittelsmann" und stellt über den Messanger die nötigen Verbindungen her. Alle Daten laufen also über diesen Dienst. Dies muss euch bewusst sein. Deswegen gibt es verschiedene andere Möglichkeiten das System von unterwegs zu erreichen, wie zum Beispiel über unser IOT-Bridge oder einen VPN.
Botfather
In Telegram suchen wir uns zuerst den Botfather, diesen benutzen wir um einen neuen Bot zu erstellen. Dafür schreiben wir /newbot und folgen den Anweisungen von Telegram, bis wir unseren Token erhalten, welchen wir später in Node-RED verwenden.
Der Botfather fragt euch nach einem Namen für den Bot, dieser wird später in der Chatliste angezeigt, und nach einem Benutzernamen, der den Bot eindeutig identifiziert.

Node-RED

In Node-RED installieren wir über die Palette das Modul node-red-contrib-chatbot
Jetzt können wir eine Telegram-In Node in den Arbeitsbereich ziehen. In dieser stellen wir den Namen unseres Bots ein und übergeben dazu den zuvor in Telegram erstellten Token. Direkt erstellen wir eine Debug Node und verbinden sie mit unserer Telegram-In Node. Das Ganze übernehmen wir und öffnen unseren Bot in Telegram. Wenn wir jetzt mit /start unseren Bot starten, sehen wir bereits im Node-RED Debug Fenster die ersten Daten.
 
Wir können also jetzt filtern, welche Befehle eingegeben wurden, in dem wir abfragen was in msg.payload.content steht und Node-RED entsprechend agieren lassen.
Dafür eignet sich der Übersicht halber die eingebaute HTTP-API zu benutzen. Die Möglichkeiten der API findet ihr hier:
Wenn man zum Beispiel eine http-request Node eine PUT Anfrage an <RPI-IP>:1880/toggle/relay/1 stellt, wird Relay 1 je nach aktuellem Status an- oder ausgeschaltet. Diese kleine Beispiel könnt ihr mit dem folgenden Code importieren:

[{"id":"ce3d3f8aa8573a8c","type":"http request","z":"f4e99ff4808f0b96","name":"toggle relay 1","method":"PUT","ret":"txt","paytoqs":"ignore","url":"192.168.1.131:1880/toggle/relay/1","tls":"","persist":false,"proxy":"","authType":"","credentials":{},"x":980,"y":220,"wires":[["542d1ed806fd2726"]]},{"id":"0a40e56749790e1b","type":"chatbot-message","z":"f4e99ff4808f0b96","name":"","message":[{"message":""}],"language":"none","x":1450,"y":220,"wires":[["feb1be1f901608b8"]]},{"id":"20f6cff1783e35f2","type":"function","z":"f4e99ff4808f0b96","name":"catchreponse","func":"var state =msg.payload.state\nmsg.payload= \"Relay 1 set to: \" + state\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1300,"y":220,"wires":[["0a40e56749790e1b"]]},{"id":"5ae01a56e2c337c8","type":"function","z":"f4e99ff4808f0b96","name":"check command","func":"if (msg.payload.content== \"/relay1\") {\n    return msg;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":780,"y":220,"wires":[["ce3d3f8aa8573a8c"]]},{"id":"542d1ed806fd2726","type":"json","z":"f4e99ff4808f0b96","name":"","property":"payload","action":"","pretty":false,"x":1130,"y":220,"wires":[["20f6cff1783e35f2","4b8b20e2f6f60cc2"]]}]

 
Dafür müsst ihr nur noch die Telegram-In/Out Node einfügen und die http-Request Node anpassen, sodass euer System angefragt werden kann.

Tipps

Denkt daran, dass ihr in Node-RED einstellt, dass nur eure ChatID Zugriff hat, der Bot ist für alle öffentlich auffindbar. Wenn ihr aber die Nachrichten nur für euch zulasst, kann kein anderer etwas damit anfangen, solange man den Token unter Verschluss hält.
Außerdem müsst ihr den Bot erst in Telegram starten, bevor er euch Nachrichten schicken kann. Das ist auch gut so, denn sonst könnte jeder Bot, der irgendwie an eure ChatID gekommen ist, euch ständig Nachrichten schicken.
Funfact: Jemand hat mal ein Video dazu gemacht...
Hinterlasse einen Kommentar

Deine Email-Adresse wird nicht veröffentlicht..

weitere Tutorials

OpenSource needs Support

werde jetzt Patron

Mehr Projekte, mehr Tutroials und mehr unterstütze Geräte. Unsere Community wächst und freut sich auch über deine Unterstützung. Werde also jetzt Patron um immer die neuesten Inhalte zu erhalten und gleichzeitig das VAN PI Projekt zu unterstützen.

Patron werden
Warenkorb 0

Dein Warenkorb ist leer

Beginn mit dem Einkauf