NEWS
Stromdaten über iot-Adapter einlesen und visualisieren
-
Guten Tag zusammen
Im Stromverteiler sind bei mir Qubinos verbaut. Diese erfassen unterschiedlichen Angaben zum Strom, unter anderem natürlich, wieviel Strom seit dem Einbau des Qubinos verbraucht wurde.
Leider sind diese nicht iobroker-tauglich. Ich habe mir deshalb eingerichtet, in gewissen Abständen (z.B. 1x pro Stunde) den aktuellen Zählerstand über den iot-Adapter in eine iobroker-Variable zu schreiben. Diese Variable würde ich dann in eine SQL-Datenbank schreiben lassen, damit ich eine Historisierung habe.
Ich habe mich nun einfach folgendes gefragt.....
Ist dies wirklich ein sinnvoller Realisierungsweg? Auch mit der SQL-Datenbank als Historisierung? Oder gibt's da bessere Ansätze?
Ich kriege natürlich immer den aktuellsten, summierten Stand (z.B. 1'000 kWh am 01.05.21 um 10.00 und 1'005 kWh am 01.05.21 um 11.00 Uhr). Kann ich diese Daten dann auch sinnvoll darstellen? Ich möchte ja eigentlich dann in Vis anzeigen, dass ich zwischen 10.00 und 11.00 5 kWh verbraucht habe.
Ich danke euch für eure Meinungen und Erfahrungen dazu...
Grüsse
Danielos
-
@danielos Musst Du meines Erachtens alles mit Deiner Logikmaschine machen.
Ich rechne mir beispielsweise den Stundenverbrauch aus - und lass mir den dann mit mit dem SQL Adapter in eine DB wegschreiben:
In Deinem Fall würde ich also stündlich weiter ablesen, jedoch immer den Stundenverbrauch als Differenz abspeichern und diesen Wert dann in die SQL Datenbank speichern.
-
@mickym Besten Dank, das hilft schon mal weiter.... vom Qubino kriege ich leider nur den Gesamtverbrauch. Ich könnte da nun natürlich den Umweg über eine Hilfsvariable machen (--> sobald der Gesamtverbraucht gemeldet wurde, lege ich diesen gleichzeitig an einer zweiten Stelle ab und rechne die Differenz), oder aber einfach die Differenz aufgrund der Einträge in der SQL-Datenbank errechnen und dann ablegen. Hat beides seinen Charme.... aber weisst du, ob ich die historisierten Daten in der SQL-Datenbank irgendwie einfach abrufen kann, um die Berechnung auf diesem Wege zu machen?
Grüsse
Danielos -
@danielos Es ist einfacher nur die Differenz abzuspeichern, dann hast Du die Datenpunkte zur späteren Verfügbarkeit wesentlich einfacher, sonst hast Du viel mehr zu berechnen, auch wenn es geht.
Die Punkte werden über den SQL Adapter wie folgt abgespeichert:
Über die ID bekommst du raus - welcher Datenpunkt es ist
Der ts ist halt der UNIX Timestamp in ms - und dann der Wert. Nun könntest Du natürlich zwischen den Einträgen nachträglich die Differenz ausrechnen - aber ich finds umständlicher, insbesondere weil Du diese Ergebnisse ja nicht direkt in ein Diagramm übertragen kannst.
Die Daten der SQL Datenbank musst Du halt über SQL Language auslesen. Ich nutze halt mySQL - da gibts erstens mal unter Windows das HeidiSQL damit man direkt auf die DB zugreifen kann und dann gibts auch ein Excel PlugIn.
Du willst es ja im VIS darstellen, deswegen halte ich das nachträgliche Berechnen der Stundenverbräuche für unbrauchbar bzw. viel zu umständlich.
Ergänzung:
Unter iobroker - habe ich noch keinen SQL Adapter gefunden, indem Du via SQL Kommandos Werte abfragen kannst, wenn Du NodeRed benutzt geht das, dann bekommst Du auch entsprechende Arrays zurück, um diese dann quasi auf Anforderung in einem Diagramm zu speichern.
Hier mal wie das in NodeRed aussehen würde:
Im topic siehst Du das SQL Kommando
Du siehst man bekommt hier ein array zurück in meinem Fall mit 43900 Einträgen - macht sicher sinn, dass dann über das SQL Kommando entsprechend einzuschränken. -
@mickym Besten Dank. Du hast absolut Recht, der andere Weg ist deutlich einfacher.... den habe ich gewählt und nun klappt's abgesehen von marginalen Rundungsfehlern (machmal z.B. 0.0999999999999 anstelle von 0.1) perfekt. Aber mit diesen kann ich gut leben. Herzlichen Dank!!
-
@mickym sagte in Stromdaten über iot-Adapter einlesen und visualisieren:
Unter iobroker - habe ich noch keinen SQL Adapter gefunden, indem Du via SQL Kommandos Werte abfragen kannst,
ich habe mal einen entsprechenden Thread gesehen - aber nie gelesen.
weiß also nicht, ob der hilft:
https://forum.iobroker.net/topic/43729/mit-werten-aus-sql-adapter-rechnen-abfragen?_=1619882933828 -
@homoran Ja super - für alle Blockly Fans und JS Fans heißt das doch, dass man dem SQL Adapter direkt SQL Kommandos mitgeben kann und dann auch ein Array zurück bekommt:
Es kommt zwar in dem Fall nicht in Frage, aber ist doch eine wichtige Info, dass man zu SQL-Abfragen von Datenbanken nicht auf NodeRed angewiesen ist, sondern den SQL Adapter verwenden kann!
Danke!