Eiswarnung per Blockly in ioBroker auswerten
In diesem Artikel zeige ich Dir, wie Du die Warnmeldungen des Eiswarnung-Diensts in ioBroker auswerten kannst.
Passend zur kalten Jahreszeit zeige ich Dir in diesem Artikel die Integration des Dienstes www.eiswarnung.de in ioBroker. Mittels diesem Dienst kannst Du Dir komfortabel Warnmeldungen und Vorhersagen zum Thema gefrorene Autoscheiben per App ansehen. Zudem bietet die Plattform auch eine kostenlose API an, welche wir natürlich auch in ioBroker nutzen können.
Bevor wir nun in ioBroker starten, müssen wir zunächst einen kostenlosen API-Zugang anfordern. Dazu muss einfach ein Benutzername sowie die E-Mail Adresse im Registrierungsformular eingeben werden.
Nach dem wir nun den API-Key per E-Mail erhalten haben, können wir dann im nächsten Schritt mit der Konfiguration in ioBroker beginnen. Hierfür habe ich mir zunächst einen eigenen Datenpunkt im Bereich 0_userdata angelegt. Der Datenpunkt mit dem Zustandstyp „string“ speichert später das Ergebnis der API-Abfrage.
Im nächsten Schritt wechseln wir jetzt in den Bereich Scripts. Für die API-Abfrage per Web-Request legen wir uns zunächst ein neues Blockly Script an.
Als Name habe ich „Eiswarner“ gewählt. Die einzelnen Scripte habe ich dann kategorisiert und im Ordner Wetter abgelegt.
Im nächsten Schritt fügen wir das folgende Blockly-Script ein. Im Script wird im ersten Schritt ein Zeitplan-Trigger hinterlegt, welcher an jedem Wochentag um 4:55 Uhr ausgeführt wird. Mittels diesem Zeitplan-Trigger steuern wir also das Auslösen der API-Abfrage. Im nächsten Schritt wird ein Request-Block eingefügt. Als URL muss folgende Zeichenfolge hinterlegt werden:
https://api.eiswarnung.de?key=<KEY>&lat=<GPS_LAT>&lng=<GPS_LNG>
Als key wird hier der vorher per E-Mail zugesandte API-Key verwendet. Über die URL-Paramter lat und lng muss Dein Standort übergeben werden. Deinen Standort kannst Du auch direkt über ioBroker in den Systemeinstellungen einsehen. Hier ist der Standort in der Regel für die Astrofunktion hinterlegt.
Im Body des Request-Blocks können wir dann über die Variable „result“ (wird händisch angelegt) das Ergebnis der Abfrage ausgelesen und dann per JSON Konvertierung der Wert abgefragt. Abschließend wird die Warnung dann per Telegram-Block versandt.
Hier kannst Du das Blockly-Script auch direkt herunterladen und die Blöcke so in ein neues Script importieren:
Blockly - Eiswarner-Script (410 Downloads )Ich hoffe ich konnte Dir damit weiterhelfen und freue mich wie immer über Deine Fragen, Anregungen oder Kommentare zum Thema 🙂
Moin, danke für den Artikel! Kannst du bitte den Download noch korrigieren, der funktioniert nicht.
Moin Thomas,
danke für die Info, ist berichtigt 🙂
LG Matthias
danke sehr!
LG Michael
doch noch eine Frage:
Das Script arbeitet, Telegram-Meldung wird ausgegeben, aber der Datenpunkt bleibt leer.
Was kann ich tun?
LG Michael
Hallo Matthias, wollte hierzu einen Adapter in IoBroker schreiben, da warst du hier wohl schneller 😉👍 Deine Lösung ist wohl auch einfacher.. LG
Hallo Matthias,
vielen Dank für deinen Artikel! In den letzten Tagen kamen mehr API-Registrierungen als üblich rein aber auch einige Rückfragen. Die häufigsten Fragen möchte ich hier noch einmal für alle beantworten:
1. Die undokumentierte Möglichkeit, die API auch per GET aufzurufen werde ich beibehalten, um den Zugang maximal einfach für alle zu halten und weiterhin Tests im Browserfenster zu ermöglichen.
2. Der optimale Abfragezeitpunkt ist 8-10 Stunden vorab. Zu früh ist die Vorhersage ggf. ungenau zu spät fehlen Messpunkte. Es ist für 2022 geplant, dass ich alle Wetterdaten zwischenspeichere, dann gibt es zumindest kein „zu spät“ mehr. Wer um 8 Uhr mit dem Auto losfahren möchte, lässt sein Skript also am besten gegen 22 bis 24 Uhr des Vorabends laufen.
Viele Grüße
Sven von eiswarnung.de
Moin Sven,
vielen Dank für Dein Feedback 🙂 Das hilft sicherlich weiter!
LG Matthias
Ich möchte die Warnung auch auf meinem Handy ausgeben, allerdings ohne Telegram nutzen zu müssen…der Block mit den Meldungen sieht bei mir anders aus.. fehlt da was bei mir was ich Installieren muß?