Mit Low Code Lösung zum eigenen Telegram Bot [inkl. Video]

In meinem Blog-Post möchte ich zeigen, wie man einfach seinen eigenen Telegram Bot erstellen kann. In meinem Beispiel kann man die Temperatur eines LORA Sensors über einen Telegram Bot abfragen. Am Ende gibt es noch ein Erklärvideo in dem alle wichtigen Schritte der Reihe nach gezeigt werden.

Projektidee

Der Sommer naht, die Badetemperaturen sind im Moment noch niedrig, werden aber von Tag zu Tag wärmer. Ich habe mir vorgenommen einen Temperatursensor zu programmieren, den ich an einem Bootssteg anbringen kann und jederzeit per Telegrambot die aktuelle Wassertemperatur abfragen kann. Zum Schluss möchte ich noch einen QR Code mit den Lesern dieses Blogposts teilen, mit dem man sich beim Telegram Bot anmelden und die Wassertemperatur selber abfragen kann.

Der Aufbau

Kosten

  • RaspberryPi 4 1GB ca. 60 SFr.
  • SD Karte 16 GB ca. 10 SFr.
  • ein altes Handy-Ladegerät
  • Dragino LSN50 LORA Sensor ca.60 SFr.

 

 

Dragino LSN50 v2-D20

Der eingesetzte LORAWAN Sensor, er wird in naher Zukunft am Zürichsee montiert. (Quelle: Sandro Ballarini)

Der Dragino LSN50 v2-D20 misst mit seinem zwei Meter langen Kabelfühler die Wassertemperatur, und wandelt diese in ein digitales Signal um. Diese Daten werden über das LORA Netzwerk an TheThingsNetwork(TTN) gesendet.

 

 

RaspberryPi 4 1GB

Ein Handelsüblicher RaspberryPi – ein kleiner Computer mit der viele Projekte erst möglich macht. (Quelle: Sandro Ballarini)

Auf meinem RaspberryPi habe ich das RaspberryPi OS installiert. Ausserdem habe ich ioBroker als Basis installiert. Eigentlich ist ioBroker eine Software für das Smarthome, weil es verschiedene intelligente Geräte vernetzen kann. Mit dieser Plattform können alle weiteren Module als „Adapter“ über einen App-Store installiert werden. Für meinen Aufbau habe ich folgende Adapter auf dem ioBroker installiert: NodeRed, MQTT Client/Broker, Telegram und JavaScript.

 

 

Software:

Die Übersichtsseite, nachdem man einen Sensor eingerichtet hat. (Quelle: Sandro Ballarini)

TheThingsNetworks

Das TTN ist ein Communitybasiertes, offenes Netzwerk welches die Kommunikation von LORA (IoT-Devices) über LPWAN (Low Power Wireless Area Network) verbindet. sobald neue Sensordaten im TTN eintreffen, werden diese weitergeleitet. In meinem Beispiel werden die Daten an NodeRed weitergeleitet.

 

 

Im Bild ist ein NodeRed Flow zu sehen. Mit diesen farbigen Blöcken wird das Programm geschrieben. (Quelle: Sandro Ballarini)

NodeRed

NodeRed ist ein grafisches Programmierwerkzeug, das für die Programmierung mit visuellen Funktionsblöcken entwickelt wurde und die Integration verschiedener IoT-Geräte vereinfacht. In NodeRed werden die Temperatur und der Zeitstempel der empfangenen Nachricht aus dem empfangenen Signal extrahiert, und auf einen MQTT Broker geschrieben.

 

 

Eine Liste der zwischengespeicherten Topics. (Quelle: Sandro Ballarini)

MQTT Broker

MQTT ist ein Protokoll, das speziell für die Kommunikation zwischen verschiedenen Geräten entwickelt wurde und ermöglicht das Zwischenspeichern von Messdaten. Durch das Zwischenspeichern der Messdaten können diese von verschiedenen Anwendungen und Diensten genutzt werden.

 

 

Die Konfigurationsseite des Telegram Bots, hier muss der API Token gesetzt werden. (Quelle: Sandro Ballarini)

Telegram Adapter

Der Telegram Adapter wird mit einem Bot verbunden. Die Erstellung eines Bots ist in Telegram über den sogenannten „Botfather“ möglich. Man gibt dem Bot einen Namen und einen Benutzernamen, der auf BOT enden muss (Wie im Beispiel @HSLU_IOTBOT). Nach Abschluss der Konfiguration erhält man einen API Code. Dieser muss in den Telegram-Adapter eingelesen werden und der Bot kann mit dem Telegram Adapter kommunizieren.

 

 

Mit diesen grafischen Klötzen wird das Programm hier geschrieben. Man kann sich den programmierten Code auch jederzeit im JavaScript Code anschauen. (Quelle: Sandro Ballarini)

JavaScript Adapter

Der JavaScript Adapter ist die Schnittstelle zwischen dem MQTT Broker und Telegram dar. Wenn ein Benutzer dem Bot das Schlüsselwort „Bootssteg“ an den Bot sendet, wird dies vom JavaScript Adapter bemerkt. Mit Blocky, einer grafischen Programmiersprache ähnlich einem Puzzle oder Klemmbausteinen wird dann abgefragt, welches Schlüsselwort gewünscht ist, die Daten werden dann beim MQTT Broker abgefragt. und dem entsprechenden Benutzer im Bot angezeigt.

 

 

… es funktioniert

Der Sensor sendet seine Daten über TTN an meine NodeRed Instanz, dort werden die Temperaturwerte aus dem Datenpaket extrahiert und auf dem MQTT Broker im RaspberryPi abgelegt. Wenn jemand dem Bot „Bootssteg“ sendet, ruft der JavaScript Adapter die letzten Temperaturwerte vom MQTT Broker ab, und sendet diese als Antwort an den Botuser.

Überzeuge dich selbst. Installiere Telegram und scanne den QR Code. Sobald der Link ausgeführt wird, wirst du in einem Telegram Chat mit dem HSLU_IoTBot verbunden. Wenn du auf der eingeblendeten Tastatur das entsprechende Stichwort „Bootssteg“ eingibst, erhältst du die entsprechende Antwort. Im Programm habe ich verschiedene Benutzer programmiert, so ist es möglich, dass bei verschiedenen Benutzern verschiedene Schlüsselwörter angezeigt werden

 

 

 

Video Rundgang

Im Video unten führe ich durch alle Instanzen auf und zeige im Programm was in welchem Block passiert.

Beitrag teilen

Sandro Ballarini

Sandro Ballarini, Fachspezialist Gebäudeautomation an der ETH Zürich, beschäftigt sich beruflich und privat mit digitalen Trends und innovativen Lösungen. Hier teilt er gelegentlich seine Gedanken aus dem Unterricht des CAS IoT and Digital Ecosystems, während er an IoT-Projekten arbeitet.

Alle Beiträge ansehen von Sandro Ballarini →

Schreibe einen Kommentar