Telegram Chatbot für die senseBox

Ein einfacher Chatbot um die senseBox auszulesen ist ein cooles Feature. Man kann zum Beispiel von überall die aktuellen Werte der senseBox abrufen. In diesem Projekt lernt ihr wie man den Chatbot über Blockly programmiert um angeschlossene Aktoren zu steuern und Sensoren auszulesen.

Telegram-Bot erstellen

Falls du den Telegram Messenger noch nicht verwendest, installiere diesen auf deinem Smartphone oder Computer. (https://telegram.org/apps). Starte Telegram und suche über das Eingabefeld nach @BotFather und starte den Chat mit ihm. @BotFather ist selbst ein Bot und wird genutzt um eigene Bots zu erstellen oder zu bearbeiten.

/images/projects/telegram_bot/01_botfather.png - Logo

Erstelle nun mit dem /newbot Befehl im Chat einen neuen Bot und gib ihm einen Namen.

/images/projects/telegram_bot/02_botname.png - Logo

Als nächstes braucht der Bot noch einen eindeutigen Nutzernamen (username). Hier wird der Name senseBoxMCU_testBot gewählt.

/images/projects/telegram_bot/03_botcreated.png - Logo

Wenn du einen Namen gefunden hast der noch nicht vergeben ist bekommst du eine Bestätigung das alles geklappt hat, wie oben dargestellt. Wichtige Informationen sind einmal der Chatlink zu deinem Bot, sowie den rot gedruckten Access Token. Letzteren musst du kopieren und gleich im Anwendungsbeispiel einfügen.

Chatbot über Blockly Programmieren

Das Programmieren des Chatbots ist mit Blockly recht einfach. Zuerst muss die senseBox über WLAN mit Telegram kommunizieren können. Wähle dafür den Verbinde mit WLAN Block und gebe Deine WLAN-Zugangsdaten ein. Darunter muss der Telegram Bot initialisiert werden. Im Feld token wird der Telegram Token eingegeben, welchen Du vom BotFather erhalten hast. Blockly sollte nun in etwa so aussehen:

/images/projects/telegram-blockly/1.png - Logo

Nun kannst Du einstellen, was der Bot beim Erhalt einer Nachricht machen soll. Das muss im Telegram mache Block geschehen. Dieser muss den bei Nachticht Block beinhalten. Hier kannst Du die Nachricht angeben, bei welcher etwas passieren soll. Achte darauf, dass die Nachricht mit / beginnt. In diesem Fall möchte ich, dass die interne LED der senseBox bei /ledan angeschaltet wird. Innerhalb des Telegram mache Blocks füge ich noch einen zweiten bei Nachricht Block ein, welcher die LED wieder ausschaltet.

/images/projects/telegram-blockly/2.png - Logo

In Telegram kannst Du nun Deinen neuen Bot ansprechen (den Kontakt hast Du vom BotFather als Link erhalten). Du kannst ihm nun deine Befehle /ledan oder /ledaus senden und die LED der senseBox sollte an bzw. aus gehen.

/images/projects/telegram-blockly/3.png - Logo

Sensorwerte auslesen

Der Bot kann Dir auch Nachrichten schicken. Hier möchte ich beispielsweise Sensorwerte bei der Nachricht /status erhalten. Dazu erstelle ich zwei Sende Nachricht Blöcke. An jedem Block kann ich einen beliebigen Text angeben. Eine Nachricht enthält die Temperatur, die zweite enthält die rel. Luftfeuchtigkeit.

/images/projects/telegram-blockly/4.png - Logo

In Telegram erhalte ich nun bei der Nachricht /status nach wenigen Sekunden meine aktuellen Messwerte.

/images/projects/telegram-blockly/5.png - Logo

Viel Spaß mit Deinem persönlichen ChatBot!

Weitere Tipps