Ich habe mir eine Überwachung eingerichtet, die mir einen Alarm sendet, wenn es mit meinen Bricks Probleme gibt. Falls jemand interessiert ist, hier ein Beschrieb, wie ich das gemacht habe.
Ausgangslage:
Es passierte immer wieder, dass ein Brick mit angeschlossener Temperatursonde -127°C gemessen hat oder offline ging. Vielleicht, weil die Sonde mit 5 m Verlängerung verbunden ist? Oder weil die Bricks in einem Metallschrank sind? Router ist zwar nur ca. 20 cm entfernt...
Jedenfalls war das besonders dann problematisch, wenn ein Bier im Gärtank und ein Heizelement angeschlossen war. Für dieses Problem musste eine Lösung her.
Ein Skript auf meinem NAS prüft jetzt alle 15 Minuten, ob alles OK ist. Falls nicht, erhalte ich eine Nachricht.
Das Skript mit Platzhaltern (XXXXXXXX) und Erklärungen am Zeilende (# Erklärung) liefere ich im nächsten Post separat nach. Es vor allem als Orientierung dienen und kann nicht 1-zu-1 übernommen werden.
Zur Info:
Prüfintervall nicht zu kurz einstellen. Laut Bernhard können zu häufige Abfragen Probleme verursachen.
Das Skript funktioniert nur bei Geräten, die sich im Automatik-Modus befinden / ein Rezept ausführen.
Beachte die Unterscheidung zwischen Gerät und Brick.
Meine 3 Gärtanks haben je 2 Bricks – 1 x Kühlung, 1 x Heizung. Temperatursonde ist nur an 1 Brick angeschlossen, der andere liest also dauernd –127°C und muss von der Überwachung ausgeschlossen werden.
Benötigte Hardware und Tools:
ChatGPT, Postman(.com), Smartphone mit Telegram, NAS (bei mir Synology), Pro-Account BierBotBricks.
Statt NAS geht auch RapberryPi oder ein Rechner, der ständig eingeschaltet und im Netz ist.
Meine Programmierkenntnisse: inexistent. Darum: ChatGPT ist dein Freund! Wenn du beschreibst, was du machen willst, hilft es dir sehr gut dabei, bei jedem einzelnen Schritt. Ich musste immer wieder «Babysteps» verlangen, wodurch ich wirklich recht einfache Beschriebe erhalten habe.
Rückblickend waren das die Schritte:
1.
NAS vorbereiten: Python und ein paar Erweiterungen dafür installieren. Auch hier: ChatGPT sagt dir wie. Ich habe dafür einen eigenen Benutzer eingerichtet.
2.
Telegram einrichten: Dort brauchst du einen ChatBot – den erstellst du mit BotFather direkt in Telegram. Von dem brauchst du den Bot-Token. Weiter brauchst du die ChatID. Findest du mit get_id_bot.
ChatGPT macht dir ein Skript zum Testen, ob der ChatBot funktioniert.
3.
BierBot einrichten: Unter Verwaltung Pro-API einschalten. Die normale API und die Pro-API notieren. API-URL ebenfalls notieren: https://brewbricks.com/api/
4.
Postman:
Gratis-Account anlegen. Links zu Workspaces gehen, dann «Contract Testing», «Get Test Response». Dann im Hauptfenster oben (bei GET) die API-Url eingeben, entweder gefolgt von «devices» oder «device» (z.B. https://brewbricks.com/api/device).
Mit «devices» findet man die Device-IDs seiner persönlichen Geräte heraus (nicht Bricks).
Mit «device» findet man die SourceIot seiner personlichen Bricks, nebst vielem anderen.
Unten bei Query Params Folgendes eintragen. Im Fall von
API-Url + devices: bei «Key» apikey und proapikey; bei «Value» deine persönlichen API-Keys aus BierBot.
API-Url + device: bei «Key» apikey, proapikey und deviceid; bei «Value» wieder deine API-Keys, und die resp. eine der Device-IDs, die du mit dem Schritt für «devices» findest.
Zum Ausführen logischerweise auf «Send» klicken, unten erscheinen dann die Infos.
Wie angedeutet: Mit «device» findet man auch Infos wie Gerätename, was das Gerät ist ("cool", "heat", etc.) und welche Temperatur zuletzt registriert wurde: «lastValue». Dieses «lastValue» sollte im Zusammenhang mit einem Sensor stehen. Darauf deutet das Vorkommen von «dataType = number» oder «physicalMeaning = temp» ein paar Zeilen weiter oben oder unten hin. So kannst du auch den Brick (= sourceIot) identifizieren, der einen Sensor angeschlossen hat (wie erwähnt: meine Gärtanks bestehen aus 1 Brick mit und 1 Brick ohne Temperatursensor).
All diese Infos – deviceids (z.B. xoqYUzXqfXrwAlXXXXXX), sourceIots mit Mac-Adresse (z.B. sonoff_th_origin_bierbot_00050XXX_XX:XX:XX:XX:XX:XX) sammeln und übersichtlich auflisten.
5.
Mit den Infos, die Postman ausspuckt, und mit deiner Auflistung kannst du nun ChatGPT füttern und das Skript erstellen lassen.
Zum Testen habe ich das Skript lokal auf meinem Mac ausgeführt, bis es funktioniert hat.
Am Anfang hatte ich nur die Benachrichtigung bezüglich den gemessenen -127°C drin. Schritt für Schritt habe ich – oder eben ChatGPT – das Skript erweitert: z.B. Alarm, wenn ein Brick offline ist; seit längerer Zeit keine neuen Werte registriert wurden; kein Alarm auslösen wenn schon vor 15 min. einer ausgelöst wurde, etc.
6.
Das Skript aufs NAS bringen und beim Starten des NAS automatisch ausführen lassen. Da mein NAS in der Nacht sowieso für ein paar Stunden ausgeschaltet ist, passt das.
Viel Erfolg, wenn du dich auch daran machen willst!
Und bei Fragen – besser ChatGPT als mich bemühen

Prosit und gut Sud,
Matthias