Alternative zum poweropti von powerfox
Da ich beim Einrichten meines Hichi
Wifi IR-Lesekopfes den ein oder anderen
Klemmer hatte, entsteht mal wieder eine neue Seite auf der Tech-ecke. Inwiefern
die Einzelnen Schritte zu anderen IR-Leseköpfen mit Tasmota Firmware passen kann
ich leider nicht sagen, da ich aktuell nur diesen einen habe.
WLAN-Konfiguration
Der erste Schritt,
das einbinden ins heimische WLAN-Netzwerk ist relativ unspektakulär. Das Prozedere kennt man von vielen anderen IoT-Geräten,
weshalb ich hier mal nur schnell drüber fliegen werde.
Script für Zähler einfügen
Im nächsten Schritt muss dem Lesekopf ein Script aufgespielt werden, damit
er mit dem Stromzähler kommunizieren kann. Das Script ist
Zählerabhängig und muss passend zum Zählertyp und Hersteller erstellt werden.
Man braucht sich das Script in aller Regel jedoch nicht selbst zusammenbasteln,
sondern kann sich auf der
GitHub-Seite "Smart-Meter-Interface" ein fertiges
Script angeln.
Auf der Seite sucht man am rechten Bildschirmrand
nach seinem Zähler bzw. Zählerserie und wählt ihn aus. Er wird dann in der
Mitte angezeigt und durch einen Klick auf den "Pfeil" am Ende der "View script"-Box
erscheint auch schon der begehrte Code. Diesen kopiert man sich hier in die
Zwischenablage.
Zurück auf der Tasmota-Seite wählt man [Consoles] und dann [Edit Script]. Die Tasmota-Seite öffnet man übrigens im Browser durch Eingabe der IP-Adresse, welche der Lesekopf vom Router zugewiesen bekommen hat - darum hat man sich diese auch wie beschrieben notiert :-)
Im Edit-Fenster fügt man nun das kopierten Script ein, setzt den Haken bei "Script enable" und klickt abschließend auf [Save].
Im Main "Menu" sollten nun auch die Werte vom Zähler reinpurzeln.
So, bis hierher war eigentlich alles problemlos. Aber ich habe natürlich mehr
vor als mir nur die drei Daten ab und zu mal anzuschauen. Da ich bislang einen
poweropti von powerfox in Betrieb hatte, habe ich auch schon eine ungefähre
Vorstellungen was ich mit den gesammelten Daten gerne anstellen würde, dazu
später mehr. Als erstes möchte ich die aktuelle Last anderen Geräten, wie
z.B. meinem
Smart Lüfter zur Verfügung stellen. Dieser lief
bis dato mit der API von powerfox, aber so recht hat mir das noch nie gefallen.
Zum einen ist deren Server sehr unzuverlässig und zum anderen finde ich es
irgendwie schräg die Daten erst ins Internet zu blasen, um sie von dort dann wieder
einzufangen. Mit dem Tasmota nutze ich jetzt die Kommunikation via
MQTT-Protokoll, welches auch von vielen Smart-Home-Systemen genutzt
wird. Und genau dabei kam ich ins Stolpern.
Eigentlich ist alles ganz einfach, wenn man weiß wie :-/ Als erstes benötigen
man einen MQTT-Broker, dieser läuft bei mir aktuell auf einem "Raspberry Zero
W2". Wie man den MQTT-Broker Mosquitto auf einem Raspberry einrichtet steht
hier.
Zum Einrichten am Tasmota
klickt man im "Main Menu" auf [Configuration]
und dann auf [Configure MQTT]. Im daraufhin erscheinendem
Fenster trägt man bei Host die Adresse des Brokers ein, im
meinen Fall die lokale IP-Adresse meines Raspberry Zero. Der
Standardport für einen MQTT-Broker ist "1883". Bei Client kann
man irgend einen sprechenden Namen eintragen. Danach den Benutzername (User)
und Passwort (Password) für den Broker (falls gesetzt). Im Feld
Topic tragen wir nun den Topic ein, unter dem der Lesekopf die
Daten "Puplishen" soll. Ich verwende hier den gleichen Namen wie bei Client. Und
jetzt kommen wir zu meinem ersten Stolperer! Im Feld "Full Topic"
wird jetzt noch ein Prefix angegeben (in meinem Fall "iot"), gefolgt vom Topic,
welcher hier aber mit der Variable %topic% eingetragen wird, das Ganze getrennt und
abgeschlossen mit einem Schrägstich (Forward Slash). Also im Feld "Topic" steht
bei mir nun "StromZaehler", im Feld "Full Topic" steht "iot/%topic%/", daraus ergibt
sich der komplette Topic von "iot/StromZähler"... dachte ich zumindest, aber das
Stolpern geht weiter :-/
Ich fasse mich an der Stelle jetzt mal kurz. Dem Topic "iot/StromZähler" ist
am Ende noch ein "SENSOR" anzuhängen, wodurch der schlussendliche Topic "iot/StromZaehler/SENSOR"
lautet. Das mag für routinierte Tasmotaner alles logisch erscheinen, für mich
als Neuling war es eine echte Hürde.
Wie auch immer, mit dem kleinen Tool
TE MQTT Client kann man jetzt die
Daten vom IR-Lesekopf anfliegen sehen... oder doch nicht :-/ Nun ja, im ersten
Moment dachte ich das wirklich, aber es lag letztendlich doch nur an meiner Ungeduld.
Sendeintervall anpassen
Denn der Tasmota sendet ab Werk nur alle 300 Sekunden eine
Nachricht. Die 5 Minuten sind für mein Vorhaben jedoch entschieden zu lange. Zum Glück
kann der Intervall zwischen 10-3600 Sekunden frei gewählt werden. Um den
Interval auf 10 Sekunden zu setzen gibt man folgenden Befehl in der Konsole ein:
Alternativ kann man die Einstellung auch im Browser seiner Wahl erledigen. Dazu gibt man in der Adresszeile folgendes ein:
Anstelle von "<IP-Tasmota>" setzt man die IP-Adresse des Lesekopfes ein. Der so abgesetzte Befehl wird den Sendeintervall auf 10 Sekunden reduzieren. Die "%20" vor der "10" ist der Sonderzeichencode für ein Leerzeichen, der Befehl lautet also "TelePeriod 10". Der Browser quittiert einem die vorgenommene Änderung wie folgt:
Der Lesekopf sendet nun alle 10 Sekunden einen Nachricht in form eines
Strings, der in etwa wie folgt aussehen kann:
{"Time":"2024-05-06T18:10:59","SML":{"total_in":6852.65,"total_out":14917.27,"power_curr":-3650}}
Die Nachricht wird jedoch von Zähler zu Zähler etwas anders ausfallen.
Mein Zähler liefert nur die drei Werte "Verbrauch gesamt", "Einspeisung
gesamt" und "aktuelle Last", andere Zähler liefern mit unter einiges mehr an
Daten, entsprechend länger wird der String dann ausfallen. Ein negativer Wert
(-) bedeutet dass gerade Eingespeist wird, ein positiver Wert (ohne Vorzeichen)
zeigt einen Bezug an.
"Retain Message" einschalten -
Was ist "Retain Message" und warum sollte ich es einschalten?
Wird eine
Message (Sensorwerte) an den Broker gesendet, so gibt es dies an alle aktuell
verbindenen Clients, die den entsprechenden Topic abonniert haben weiter, danach
verwindet die Message im Datennirwana. Meldet sich ein Client neu beim Broker
an, so wird er zunächst keine Werte bekommen, bis der Publisher abermals
gesendet hat. Je nach Konfiguration kann das beliebig lange dauern und so lange
bleibt der Client mit leeren Händen da stehen. Wenn 'Retain Message" jedoch
eingeschaltet ist, dann bekommt der Client direkt beim anmelden, den zuletzt
gepublishten Wert und muss nicht warten. "Retain Message" macht nicht immer
Sinn, aber im Falle von Sensoren, insbesondere Temperatursensoren wo nur alle
paar Minuten einen Wert lostreten kann es durchaus Sinn machen diese Option zu
aktivieren.
Dazu klickt man im Hauptmenü auf (1) "Consoles", dann auf (2) Console und
gibt im Textfeld (3) "SwitchRetain ON" ein und bestätigt mit der Eingabetaste.
Die Änderung sollte in der Ausgabe (4) angezeigt werden.
Beispielanwendung
So, und was macht man nun mit den Werten? Ein
plakatives Beispiel ist mein
Smart Lüfter, dieser kann wahlweise über die API
von powerfox oder eben per MQTT Daten beziehen und verarbeiten. Das schöne am
MQTT ist, dass ich den XP-Rechner wieder vom Internet nehmen konnte, da sich mein
Broker im heimischen Netz befindet.
Aber man kann auch mittels
ESP8266 ganz auf einen Rechner verzichten und somit viele Geräte relativ einfach
"smart" machen. Wie das funktioniert kann man
hier erfahren.
Daten in Textdatei
schreiben
Eine recht einfache Methode die Daten zu sammeln
ist, diese an einen Webserver zu senden, der sie mittels PHP-Script in eine
Textdatei schreibt. Dazu benötigt man einen Webserver der PHP unterstützt. Das
ist ebenfalls mal wieder ein Fall für den Raspberry, man komm an so einem
Ding quasi gar nicht mehr vorbei und für weniger als 20 EUR hat man damit jede
Menge Spaß. Wie man den Webserver und PHP auf einem Raspberry installiert und
konfiguriert kann man
hier nachlesen. Jedoch sollte man
bei der Anwendung Abstand von einer SD-Karteninstallation nehmen und stattdessen
eine SSD als Datenspeicher verwenden. SD-Karten sind nicht für einen ständigen
Schreibzugriff ausgelegt und können dadurch früher als erwartet ausfallen. Zum Experimentieren
eignet sich aber auch XAMPP, welcher ohne Installation und im Handumdrehen auf
jedem Windows-Rechner (ab XP) einen Webserver mit PHP-Unterstützung laufen
lässt. Wie das geht ist
hier zu sehen.
Als erstes muss
man das Script vom Stromzähler etwas manipulieren, so dass es die Daten in einem
vorgegebenen Intervall über eine PHP-Datei an den Webserver sendet. Dazu öffnet man den
Script-Editor in der Tasmota-Oberfläche über [Consoles]
und dann [Edit Script]. Grau ist der originale Code von der "Smart-Meter-Interface" Seite für meinen Stromzähler, der grüne
Code ist nun zusätzlich hinzugekommen.
Das PHP-Script "logger.php" auf dem Server sieht wie folgt aus:
Auch hier müssen die Messwerte gegebenenfalls analog dem Stromzähler-Script
angepasst werden ($_GET['a'], $_GET['b'], etc.). Die Daten werden nun
zeilenweise in die Textdatei "stromlog.txt" gespeichert. Die Datei wird im gleichen
Verzeichnis wie die "logger.php" geschrieben und endlos befüllt. Möchte man
beispielsweise eine monatliche Textdateien anlegen, so nimmt man $Jahr + $Monat
mit in den Dateinamen auf.
Daten in MySQL-Datenbank schreiben
Wenn man die Daten nicht gerade in Excel, sondern webbasiert abrufen,
filtern und grafisch darstellen möchten, dann ist es wesentlich eleganterer die
Daten in eine MySQL-Datenbank zu schaufeln. Dazu benötigen wir jedoch erst
einmal eine entsprechende Datenbank und ja, das ist wieder ein Anwendungsfall
für den Raspberry. Auch hier gilt, wie schon bei der Textdatei, die Himbeere
sollte hierzu mit einer SSD-Karte betrieben werden. Wie man eine MySQL-Datenbank (Maria DB)
auf dem Raspberry installiert ist
hier nachzulesen. Und auch bei
dieser Übung
kann zu Testzwecken der XAMPP zum Einsatz kommen. Wie die
Datenbank selbst aufgesetzt und konfiguriert wird ist auf der
XAMPP-Seite zu finden.
Als erstes
benötigen wir eine neue Datenbank mit dem Namen "StromLogger", darin wird eine
Tabelle mit dem Namen "Verbrauch" benötigt die wie folg aufgebaut sein muss:
Um die Tabelle schnell anlegen zu können kann man den folgenden Code in die SQL-Anweisung auf der phpMyAdmin-Seite einfügen und ausführen. Siehe dazu den Tipp auf der XAMPP-Seite unter "Exportieren und Importieren von Daten".
In der Datenbank muss jetzt noch ein neuer Benutzer mit dem Namen und Passwort "Tasmota" angelegt werden. Wie das erledigt wird ist ebenfalls auf der XAMPP-Seite unter "Neue Benutzer anlegen" nachzulesen. Die Zugangsdaten kann und sollte man natürlich später entsprechend anpassen (Datenbank + PHP-Datei). Nun fehlt nur noch die modifizierte PHP-Datei:
Das Stromzähler-Script ist das gleiche wie beim
Schreiben in eine Textdatei.
Daten in InfluxDB schreiben
Wenn es um das Sammeln von Messdaten geht, so stolpert man eigentlich
zwangläufig über InfluxDB. Es dreht sich hier um eine sogenannte
Time-Series-Datenbank, welche für das Sammeln von hochfrequenten Zeitreihendaten
optimiert wurde. Das Datenaufkommen vom Stromzähler ist sehr überschaubar,
weshalb es in Bezug auf Performance eigentlich keinen triftigen Grund gibt nicht doch eine MySQL bzw. MariaDB
zu verwenden. Aber die pure Neugierde hat mich dazu bewegt mir mal anzuschauen
was der Mainstream so treibt...
Im Grunde
könnte man die Daten, wie bei MySQL ebenfalls per PHP-Script in die Datenbank
pumpen. Hierzu gibt es auch fertige InfluxDB Libraries, wie z.B. diese
hier, aber die gängige
Praxis ist eine Andere. Zunächst werden alle Sensordaten zu einem MQTT-Broker,
z.B. Mosquitto geschickt, dort werden sie von einem Übermittler, wie
beispielsweise Node-RED abgeholt und in die InfluxDB geschrieben. Von da
können die Daten dann genutzt werden um die in Grafana, mit Kurven,
Balkendiagramen und Gauges visuell darstellen zu können.
Ja, das klingt aufwendig und das ist es datenflusstechnisch auch, aber eben
nicht in der Anwendung. Mit dieser Softwarekombination lässt sich so einiges im
Bereich Smart-Home-Bereich relativ leicht automatisieren und visuell darstellen.
Installation
Wie die einzelnen Softwarepakete auf dem Raspberry PI
installiert werden, ist den folgenden Links zu entnehmen:
Mosquitto,
Node-RED,
InfluxDB,
Grafana
MQTT - Mosquitto
Sind die
Installationen abgeschlossen, so kann mit dem Einrichten begonnen werden. Als
erstes sorgt man dafür, dass die Messdaten vom Stromzähler dem MQTT-Broker (Mosquitto)
übergeben werden. Wie man das über die Tasmotaoberfläche einrichtet findet man
weiter oben auf dieser Seite unter "MQTT einrichten".
Node-Red
Im
Anschluss startet man die GUI von Node-RED im Browser (Google Chrome, FireFox...)
durch Eingeben URL vom Raspberry, mit angehangenem ":1880" (Port). In meinem Fall
ist das "192.168.178.139:1880". Anmeldung bei Node-RED
Node-RED kann von Haus aus nicht mit der InfluxDB kommunizieren, hier muss
zunächst die entsprechende Library installiert werden und das geht wie folgt:
Als nächstes zieht man sich die folgend aufgeführten Steuerelemente, von der
linkten Liste auf das Blatt und verbindet diese an den Knotenpunkten. Wer nicht suchen mag kann oben links die Suche
nutzen.
"mqtt in", "function", "delay" (Verzögerung) und "Influxdb".
Durch einen Doppelklick auf die Steuerelemente können deren Einstellungen und
Eigenschaften gesetzt und geändert werden.
Bei mqtt in
muss der Server und ein Topic angegeben werden. Steht noch kein Server im
Drop-Down zur Verfügung, so kann man diesen über den Button [+] hinzufügen. Hier
muss dann nur die IP-Adresse des Servers angegeben werden, der Rest bleibt wie
vordefiniert. Da Mosquitto und Node-RED auf dem selben Raspberry werkeln, kann
anstatt der IP-Adresse auch einfach "localhost" eingetragen werden. Bei Topic
kommt der im Tasmota vergebene Topic-Pfad rein, in meinem Fall also "iot/StromZaehler/SENSOR".
Zum Abschluss stellt man noch QoS auf "0" und dann war es das auch schon.
Bei function wird folgender JavaScript Code hinterlegt:
Die Message vom Topic enthält im meinen Fall drei Werte: power_curr,
total_in und total_out, dazu gleich mehr beim
Debuging. Hier greife ich also den Wert von
power_curr (aktueller Bezug, bzw. Einspeisung) ab und schreibe ihn in die
Variable "f". Diese Wiederum schreibe ich die Message (msg), welche dann die
Function wieder verlassen soll. Das Weiterreichen geschieht mittels "return msg".
Das soll aber nur dann stattfinden wenn "f" nicht den Wert "999999" hat. Ich
weiß nicht ob dies ein generelles Problem ist, aber von Zeit zu Zeit scheint die
Abfrage am Zähler nicht sauber zu funktionieren und der Tasmota schmeißt dann
die sechs 9'er raus, welche ich natürlich nicht in der Datenbank haben möchte.
Bei Verzögerung kann man die Anzahl der
weiterzureichenden Messages einschränken. Stellt man hier z.B. 1 Minute ein und
vom Tasmota kommt alle 10 Sekunden eine Message, so werden 5 von 6 Messages
fallen gelassen. Es wird also nur ein Wert pro Minute durchgelassen. Überträgt
man anstatt power_curr beispielsweise den Zählerstand total_in,
so reichen wohl auch 10 Minuten völlig aus.
Bei Influxdb
muss der Datenbankserver und der Datenbankname angegeben werden. Das wäre wieder
die IP-Adresse bzw. "localhost" und ein sinniger Name (ohne Umlaute,
Sonderzeichen...). Diesen Namen müssen wir uns merken, denn beim Einrichten der
InfluxDB muss die Datenbank mit identischem Namen angelegt werden. Ansonsten
muss hier auch noch bei Measurement der Feldname des Datensatzes angegeben
werden, unter dem die Werte in der Datenbank dann zu finden sind. Um eine gute
Übersicht zu bewahren könnte dieser z.B. gleich dem Topic-Name sein. Auch hier
wieder keine Umlaute oder Sonderzeichen verwenden.
Hat man alle
Einstellungen vorgenommen, so kann man das Ganze über die Schaltfläche
[Übernehmen (Deploy)] scharfschalten.
Debuging
Nun sollte eigentlich
alles so laufen wie vorgesehen und wenn nicht, dann muss debugt werden. Dazu
bietet Node-RED die Debug-Steuerelemente, welche auch in der Linken liste zu
finden sind. Diese zieht man ebenfalls auf das und Verbindet sie mir dem Ausgang
den man abfragen möchte.
Die Debugs lassen sich über das Rechteck am rechten Rand übrigens ein und ausschalten, so muss man diese sich trennen oder gar löschen um gezielt auf eine Stelle zu schauen. Im Bild sind Debug 2 und 3 ausgeschaltet und Debug 1 lauscht am Ausgang vom "mqtt in". Um nun zu sehen was da so rauspurzelt, klickt man am rechten oberen Bildschirmrand auf das Debug-Symbol.
Wie man am Ausgang vom "mqtt in" sieht (dazu alle grauen Dreiecke
aufklappen), werden drei Messwerte in einer Message ausgegeben. Hier erkennt man
nun auch den, in der Function verwendeten Pfad zu power_curr, welcher
hier gelb hinterlegt ist "msg.playload.SML.power_curr". Befindet man sich mit
dem Mauscursor über diesem Wert, so kann man den Pfad zum Wert über das erste
der drei kleinen Icons in die Zwischenablage kopieren.
Schaltet man Debug 2
ein, so wird man als Ausgabe nur noch den Wert in power_curr sehen.
Diesen könnte man auch in der Function analysieren und z.B. bei einer aktuell
hohen Einspeisung der Solaranlage einen entsprechende Message mit "mqtt out"
rausschreiben, die z.B. die Wallbox fürs E-Auto aktiviert. Da geht so einiges.
Mittels "http request" lassen sich auch Webinhalte einlesen und HTML-Code parsen
um Werte abzugrasen und weiter zu verwerten.
InfluxDB
Wie bereits weiter oben erwähnt
muss in InfluxDB eine Datenbank manuell angelegt werden, bevor diese von Node-RED
befüllt werden kann. Die einzelnen Datenfelder werden jedoch automatisch
angelegt, sobald die dazugehörigen Werte in die Datenbank geschrieben werden.
Dazu in der Konsole (PuTTy) zunächst die Datenbank per "influx" starten und dann
mittels "create database DeinDBName" eine Datenbank anlegen. Das alles und noch
Weiteres
ist bei der
Installationsbeschreibung von InfluxDB zu finden.
Grafana
Nachdem die ersten Daten in die
InfluxDB geschrieben wurden, kann man dies sich in Grafana visualisiert anzeigen
lassen. Welche Schritte dazu notwendig sind, ist bei der Installation zu Grafana
unter
Erste Schritte
aufgeführt. Ich habe hier mal einen "Graph" und "Singlestat" aufs Dashboard
gezogen und ein wenig was eingestellt. Das Ganze sieht dann so aus:
Mein persönliches Fazit zu Noder-RED
-> InfluxDB -> Grafana
Die Kombination der Tools ist eigentlich auf
den ersten Blick ganz nett, jedoch kommt bei Grafana auf dem Handy schnell Frust
auf. Es ist auf dem Handy einfach nicht zu gebrauchen und das wäre eigentlich
meine bevorzugte Plattform, um mal eben nach den wichtigsten Werten zu schauen.
Hier werde ich mir definitiv eine Alternative Ausschau halten. Zum analysieren
der Daten am PC (mit großem Monitor) ist es jedoch ganz gut zu gebrauchen.
Node-RED hat mich, trotz anfänglicher Skepsis dann doch überzeugt, das Tool
werde ich definitiv weiter verwenden.
InfluxDB werde ich aller
Wahrscheinlichkeit wieder von meinem Raspberry löschen und mit der mir
vertrauten MariaDB weiterarbeiten. Am Ende werde ich wohl einmal pro Tag meinen
Zählerstand, und den Photovoltaikertrag inkl. Eigenverbrauchsquote in die
Datenbank schreiben und den Rest nur "flüchtig" über MQTT bereitstellen. Da sehe
ich keine Notwendigkeit auf InfluxDB zu setzen. Das Ganze hat dann auch den
Charme, dass ich anstatt eines Pi4 + SSD den kleineren Zero 2W mit SD-Karte
verwenden kann. Denn ohne permanenten Schreibzugriff durch die Datenbank wird
die SD-Karte auch lange halten. Ansonsten ist man mit einer SSD wohl besser
beraten.
Bei der Suche nach einer Grafana-Alternative
bin ich über WebSocket gestolpert. Damit lassen sich MQTT Messages über den
Browser via JavaScript empfangen und auch senden. Zumindest für das
Heimische Netzwerk ist das eine tolle Möglichkeit, verschiedene Sensorwerte
gesammelt auf einer Webseite anzeigen zu lassen. Da man auch Messages publishen kann, könnte man
sogar Steckdosen und Geräte damit steuern. Es gibt auch kostenlose und
anmeldungsfreie MQTT-Broker mit WebSocket im Netz (z.B.
HiveMQ ws://broker.hivemq.com:8000/mqtt").
Klar, jeder kann da mitlauschen und auch Störmessages senden. Also ich würde
dringend davon abraten, über diesen Broker Geräte zu schalten! Aber um den Wert
eines Temperatursensors dort abzulegen hätte ich jetzt keinen Schmerz. OK,
gelingt es einem den Topic meiner Person zuzuordnen und er weiß, dass da die
Temperaturwerte meines Wohnzimmers stehen + Winter + mehrere Tage keine Heizung
an = Urlaubsreise... Jo, das könnte man auch einfacher und zielgerichteter
rausfinden. Aber es gibt noch etwas weitaus bedenklicheres, als die öffentlich
einsehbaren Daten. Und zwar wenn man die MQTT-Daten direkt von Tasmota aus und
nicht via NodeRed sendet. Denn Tasmota kann auch Befehle per MQTT erhalten und
lässt sich so quasi fernsteuern. Dazu benötigt man neben dem Topic zwar auch
noch den MQTT-Clientname. Aber Achtung: Dieser wird beim Anmelden von Tasmota
mit an den Broker gesendet! Abhilfe schafft hier nur eine Firmware-Mod, welche
diese Info nicht sendet. Wie auch immer, das Ganze ist dennoch nicht
uneingeschränkt zu empfehlen, jeder sollte wissen was er tut. Alternativ kann
man sich auch einen kostenlosen Account bei HiveMQ anlegen (bis zu 100 Clients
kostenlos) und die Daten dann über eine Verschlüsselte Verbindung senden.
Nun gut, bleiben wir zunächst mal
im lokalen Netzwerk. Bevor man Websocket im heimischen Netz via Raspberry Mosquitto nutzen
kann, muss zunächst die "mosquitto.conf" etwas angepasst werden (wenn nicht
schon geschehen). Was genau steht
hier.
Hier mal ein sehr einfacher Aufbau, um sich bei einem Broker anzumelden und einen
Topic zu abonnieren.
Über den Button Vorschau kann das Script
getestet werden. In der Vorschau muss der Topic über das Eingabefeld angegeben werden. Publishen zu dem Topic ist ebenfalls über den Button [Publish] möglich.
Tipp: Möchte man z.B. mit Node-RED
oder
TE MQTT Client auf den HiveMQ
zugreifen, so ist bei Server "broker.hivemq.com" und
bei Port "1883" anzugeben.
HTML Gauges
Wer sich nun inspiriert fühlt ein Dashboard für aktuelle Sensorwerte in HTML
zu basteln, der sollte sich mal
gauges.js von
Bernii anschauen -
GitHub
Download.
HTML Graph
Um einen Graph zu erzeugen werde ich mir bei Gelegenheit mal die JpGraph PHP-Bibliothek
anschauen, welche auf MySQL-Daten zurückgreift.