ioBroker – Auf Telegram-Nachrichten reagieren
In diesem Artikel zeige ich Dir, wie Du auf Telegram-Nachrichten mittels Schaltflächen reagieren kannst.
In einem vorherigen Artikel habe ich Dir bereits gezeigt, wie Du Dein Smart-Home z.B. von unterwegs aus mit der Telegram-App steuern kannst. Hierfür hatten wir den Telegram-Bot um Schaltflächen zur Steuerung erweitert. In diesem Artikel zeige ich Dir jetzt, wie Du automatische Nachrichten Deines Smart-Homes mit Schaltflächen beantworten kannst. Hier erstellen wir uns ein Script, welches zu einer festen Uhrzeit eine Telegram-Nachricht mit Schaltflächen verschickt.
Im ersten Schritt wechseln wir nun in den Script-Bereich Deiner ioBroker Installation. Über die Plus-Schaltfläche kannst Du hier ein neues Script erstellen.
Auf dem Auswahl-Dialog der Script-Art wählen wir hier JavaScript aus.
Im nächsten Schritt übernehmen wir das folgende Script in unser neu angelegtes Script.
Im Script wird ein Schedule (zeitlich gesteuerte Ausführung) definiert, welche das Script um 06:12 startet. Dabei wird eine normale Telegram-Nachricht mit einem reply_markup erstellt. Im reply_markup werden über das inline_keyboard die entsprechenden Schaltflächen mit Ja und Nein sowie dem callback_data hinterlegt. Auf das gewählte callback_data können wir dann im Antwort-Bereich entsprechend reagieren. In meinem Beispiel wird hier dann eine Antwort mit Ja oder Nein per Telegram versandt. Das Script zeigt somit wirklich sehr rudimentär wie eine entsprechende Nachricht mit Antwort-Schaltflächen mittels Telegram aufgebaut werden kann.
schedule({hour: 6, minute: 12}, async function(){
sendTo('telegram.0', 'ask', {
text: 'Möchtest Du das Licht einschalten?',
reply_markup: {
inline_keyboard: [
[{ text: 'Ja', callback_data: 'y' }, { text: 'Nein', callback_data: 'n' }]
]
}
}, msg => {
// Auf die Antwort reagieren
if ( msg.data == 'y' ) {
sendTo("telegram", "send", { text: "Die Antwort war Ja!" });
} else {
sendTo("telegram", "send", { text: "Die Antwort war Nein!" });
}
});
});
Nach dem wir das Script nun erstellt und gespeichert haben, müssen wir im nächsten Schritt das Script aktivieren. Klicke dazu auf den Pfeil neben der Script-Bezeichnung. Das Script sollte dann wie folgt dargestellt werden.
Das Script wird dann zur hinterlegten Uhrzeit ausgeführt und wie folgt in der Telegram-App dargestellt. Über die beiden Schaltflächen kannst Du dann z.B. Aktoren steuern.
Ich hoffe Dir gefällt der Artikel. Über Kommentare, Anregungen oder Ideen freue ich mich wie immer. Lass mir dazu gerne einen Kommentar unterhalb des Artikels da.
Lieber Matthias,
eine sicher sehr nützliche Lösung, wenn man außer einer reinen Information (das kann man ja wie üblich eine einfache Telegram-Meldung nehmen) auch Dinge signalisieren möchte oder muss, auf die man reagieren möchte. Ich suche gerade verzweifelt nach Praxisbeispielen: Man ist nicht zu Hause, es klingelt an der Tür und und ich müsste nach Kontrolle des Bildes der Kamera an der Tür entscheiden, ob ich die Haustür von remote öffnen will oder nicht. Paketbote: Nicht öffnen. Tante Erna: Öffnen, denn die hatte ihren Besuch ja angekündigt, ist aber mit Türöffner-Zahlencodes überfordert.
Dabei fällt mir dann auch auf, was Du vielleicht bitte noch ergänzen könntest: Eine Version, die nicht (nur) nach Schedule auslöst, sondern die bei Änderung eines Datenpunktes startet (bspw Haustürklingel). Und auch überhaupt: Wo steht die Antwort (y/n), wie kann man auf die Antwort reagieren, weil sie vielleicht auch in einen überwachten Datenpunkt kommt?
Liebe Grüße
Michael
Hallo Matthias,
man kann mit dem „Text2command“-Adapter das ganze interaktiv gestalten. Wenn ich jetz im Telegram-Bot „Menü“ eintippe, bekomme ich eine Auswahl mit Untermenüs (Heizung, Beleuchtung etc.). Mit entsprechenden Scripts gekoppelt kann ich dann diverse Sachen auch ohne VIS per Telegram ausführen. Ist echt eine nützliche Geschichte. Sollest Du Dir mal anschauen.
Viele Grüße
wIWa