Benachrichtigungen mit Telegram
In diesem Artikel zeige ich wie man sich mit seinem Smart-Home Benachrichtigungen auf sein Smartphone schicken lasse kann. In meinem ersten kleinen Beispiel möchte ich beim Öffnen oder Schließen der Terrassentür eine Benachrichtigung via Telegram erhalten. Bevor wir mit der Einrichtung, Konfiguration und evtl. Programmierung der Steuerung beginnen können, müssen wir zunächst folgende Adapter installieren Artikel über Installation von Adaptern:
- JavaScript/Blockly Script Engine
- Telegram Adapter
Konfiguration des Telegram Adapters
Nach dem der Telegram Adapter installiert wurde beginnen wir mit der Konfiguration des Telegram Adapters. Dazu wird in der Tab-Lasche „Instanzen“ das Konfigurationsfenster des Adapters geöffnet.
In der Konfiguration des Adapters muss das Token des Telegram Bots eingetragen werden, welches wir nun über die Telegram-App erstellen lassen.
Dazu wird jetzt die Telegram-App auf dem Smartphone geöffnet. Für die Erstellung eines Bots wird an den Kontakt „BotFather“ folgender Befehlt gesendet:
/newbot
Im nächsten Schritt muss für den Bot ein Name eingegeben werden. Nach dem Anlegen des Bot wird noch ein Benutzername für den Bot benötigt, welcher mit …Bot enden muss (z.B. MyHomeBot).
BotFather sendet jetzt das Token zurück, welches in das Konfigurationsfenster des Telegram-Adapters eingetragen werden muss. Damit ist die Konfiguration von Telegram abgeschlossen.
Benachrichtigung konfigurieren
Nach dem nun der Telegram-Adapter vollständig konfiguriert ist beschäftigen wir uns im nächsten Schritt mit der Einrichtung der Benachrichtigung. Dazu wird der Adapter JavaScript/Blockly verwendet. In der Administrationsoberfläche gibt es eine Tab-Lasche „Skripte“. In diesem Bereich können wir nun das dazugehörige Skript erstellen.
Über die unten markierte Schaltfläche wird nun ein neues Skript angelegt.
Als Type wählen wir hier „Blockly“, da wir das noch recht einfache Skript per Drag&Drop zusammenstellen werden.
Im ersten Schritt ändern wir nun den Namen des neuen Skripts auf „Benachrichtigung Tür“ ab und klicken auf Speichern.
Jetzt beginnen wir mit dem definieren unseres Skriptes zur Benachrichtigung bei einer Status-Änderung unserer Tür. Auf der linken Seite sehen wir verschiedene Typen von Aktionen, Bedingungen und Funktionen. Mit einem Klick auf die jeweilige Kategorie wird diese aufgeklappt um verschiedene Elemente auswählen zu können.
In unserem Beispiel benötigen wir einen Trigger, welcher bei der Status-Änderung unseres Tür-Sensors ausgelöst werden soll. Per Drag&Drop ziehen wir den Trigger jetzt auf die leere Definitionsfläche links um damit unsere Bedingung zu definieren.
In diesem Block wählen wir jetzt unter unserem Homematic Adapter „hm-rpc.0“ den gewünschten Tür-Sensor aus (STATE) und übernehmen diesen damit in den Trigger.
Wenn sich nun dieser Sensor-Status verändert springt der Trigger der JS-Komponente an, und führt das definierte Skript aus.
Im nächsten Schritt hängen wir unterhalb des Falls Objekt das „falls mache“ Element, mit dem wir zunächst den Wert in einen logischen Wert umwandeln und die Bedingung auf wahr prüfen. Im „mache“-Bereich übernehmen wir jetzt aus dem Bereich „SendTo“ links im Menü die telegram-Aktion, mit der wir eine Mitteilung mit der Meldung „Terrassentür wurde geöffnet“ versenden. Den selben „falls mache“ Block fügen wir nun unterhalb des ersten Blocks erneut ein und passen die Bedingung auf „unwahr“ an. Somit erhalten wir folgendes Skript, mit dem unsere Benachrichtigungen versenden werden.
Super Anleitung, danke dafür! Ich möchte jetzt zusätzlich noch eine Prüfung der Anwesenheit eines bestimmten Gerätes mit dem Ping-Adapter einbauen.
Also falls Wohnungstür geöffnet wird soll zuerst geprüft werden, ob das Gerät anwesend ist oder nicht, und nur bei Abwesenheit sollen die Telegram-Nachrichten versendet werden. Das bekomme ich aber leider nicht hin. Haben Sie da eine Idee?
Hallo Markus,
ja, das ist ein spannendes Thema, welches ich schon länger für unser Haus umgesetzt habe. Ich nutze dafür IFTTT. Gerade wenn man VPN nutzt, ist der Ping-Adapter nicht unbedingt optimal. Ich werde zu dem Thema demnächst einen Artikel verfassen. In diesem Artikel werde ich dann auf Deine Frage eingehen 🙂
Grüße,
Matthias
Aber das müsste doch auch einfach über Blockly bzw. Javascrpt zu realisieren sein?
Pingback: ioBroker Emojis in JavaScript oder Blockly verwenden – smarthome-tricks.de
Hallo Markus,
ich habe bei meiner Terassentür einen Drehgriffsensor, der mir als Status closed(0) und open(2) rausgibt. WIe kann ich die Zustände abfragen? Ich bekomme immer nur die Meldung für unwahr.
Hallo Heiko,
ich denke für Deinen Fall musst Du hier im Blockly-Script nicht nah Logikwert, sondern nach Numeric konvertieren und dann den entsprechenden Wert (0 oder 2) direkt abfragen.
Viele Grüße,
Matthias
Pingback: Blockly – Telegram Nachrichten formatieren – smarthome-tricks.de
Hallo!
Dank dieser Anleitung bekomme ich einen Tag vor Müllabholung eine Nachricht!! 🙂
Kann ich über den Blockly sagen, dass er mir diese Nachricht, wie gehabt, einen Tag zuvor aber erst um 18h schicken soll??
Danke im Voraus.
Viele Grüße
David
Hallo David,
ich kann dazu gerne mal ein Beispiel-Script bauen 🙂
Grüße,
Matthias
Hallo,
hat jemand für mich einen Export für die Müllabfuhr? Ich würde gerne eine Erinnerungsnachricht einen Tag vorher geschickt bekommen. Könnte mir bitte da jemand helfen?
Beste Grüße
Michael
Hallo
super Beschreibung.
Jedoch habe ich mal eine Frage: Wie realisiere ich (welche instance) eine Benachrichtigung wenn iobroker neustartet!?
Danle BLRD
Hallo,
über die Einstellungen der jeweiligen Instanz kannst Du das steuern.
LG Matthias
Äh, dass verstehe ich jetzt nicht so ganz. Kannst Du dies präzisieren!?
Danke.
VG BLRD
Hallo,
bin Anfänger in Sachen Blockly, aber habe das soweit umgesetzt. Ist es möglich das das Script nur ein Telegram schickt wenn keines unserer Smartphones im Wlan ist ? tr-064 für die Fritzbox ist installiert und funktioniert.
Hallo Michael,
ja, das ist auf jeden Fall möglich. Hast Du bereits eine Anwesenheitserkennung über den tr-064 Adapter umgesetzt?
LG Matthias