NEWS
Darstellung Stromverbrauch mit Delock 11827
-
Hallo zusammen,
ich habe mir eine Delock 11827 Steckdose zugelegt. Hier ist schon ein Stromzähler integriert, der die Werte für den Energieverbraucht heute, gestern und gesamt anzeigt. Die Integration in ioBroker hat auch schon problemlos per mqtt geklappt.
Nun wüsste ich gern, wie ich die oben genannten drei Werte über vis darstellen kann. Ich bekomme von der Steckdose nur einen Sammelwert geliefert:{"Time":"2021-02-17T20:45:45","ENERGY":{"TotalStartTime":"2021-02-17T16:57:42","Total":0.063,"Yesterday":0.000,"Today":0.063,"Power":23,"ApparentPower":30,"ReactivePower":20,"Factor":0.75,"Voltage":232,"Current":0.131}}
Ich bin ein absoluter Laie, was HTML oder Scripting angeht - darum gefällt mir vis so gut, hier kann ich mir alles so einfach zusammenklicken
Wie kann ich aus diesem String einen Wert extrahieren und dann in vis darstellen?
-
@natsirt sagte in Darstellung Stromverbrauch mit Delock 11827:
{"Time":"2021-02-17T20:45:45","ENERGY":{"TotalStartTime":"2021-02-17T16:57:42","Total":0.063,"Yesterday":0.000,"Today":0.063,"Power":23,"ApparentPower":30,"ReactivePower":20,"Factor":0.75,"Voltage":232,"Current":0.131}}
Hier ein Bruchstück:
Da kommt der Wert von Total=0.063 bei raus
Den musst du dann in einen selbst erstellten Datenpunkt vom Typ Zahl schreiben.
ggf. vorher "nach Zahl" Konvertieren@natsirt sagte in Darstellung Stromverbrauch mit Delock 11827:
Ich bekomme von der Steckdose nur einen Sammelwert geliefert
Dann nimmst du natürlich den DP als Ausgangspunkt (ich musste mir den Text in eine Variable schreiben)Triggern auf Änderung des Datenpunktes und dann müsste es sein
EDIT:
müsste dann etwa so aussehen:
die weiteren Werte analog dazu
-
Danke schon einmal für deine Antwort, ganz so einfach scheint es aber leider doch nicht zu sein.
Ich habe einen Datenpunkt angelegt und diesen als Zahl definiert. Als Trigger habe ich zu Testzwecken einfach einen Zeitplan angelegt, der jede Minute läuft, das sollte aber keinen Einfluss auf die Logik dahinter haben.
Wenn das Script läuft, erhalte ich folgende Meldungen:error javascript.0 (4128) script.js.common.Verbrauch_Steckdose1-2: Cannot parse "mqtt.0.tele.Steckdose2.SENSOR"SyntaxError: Unexpected token m in JSON at position 0
warn javascript.0 (4128) at Object.<anonymous> (script.js.common.Verbrauch_Steckdose1-2:2:3)
Ich habe noch einen anderen Datentyp von der Art "gemischt" angelegt, weil ich sicher gehen wollte, dass der Datentyp hier keinen Streich spielt. Aber auch hier:
error javascript.0 (4128) script.js.common.Verbrauch_Steckdose1-2: Cannot parse "mqtt.0.tele.Steckdose2.SENSOR"SyntaxError: Unexpected token m in JSON at position 0
Wenn ich eine Konvertierung "JSON nach Objekt" einbaue, bekomme ich wenigstens keinen Error mehr - aber der Datenpunkt wird trotzdem nicht befüllt.
Irgendwelche Vorschläge, wie ich damit umgehe? -
@natsirt sagte in Darstellung Stromverbrauch mit Delock 11827:
ganz so einfach scheint es aber leider doch nicht zu sein.
was steht denn genau in
mqtt.0.tele.Steckdose2.SENSOR
Wenn der Inhalt anders aufgebaut ist, als das was du gepostet hattest, kann
@natsirt sagte in Darstellung Stromverbrauch mit Delock 11827:
Wenn ich eine Konvertierung "JSON nach Objekt" einbaue, bekomme ich wenigstens keinen Error mehr
das passen.
@natsirt sagte in Darstellung Stromverbrauch mit Delock 11827:
aber der Datenpunkt wird trotzdem nicht befüllt.
Irgendwelche Vorschläge, wie ich damit umgehe?Das kann vollkommen unabhängig sein.
@natsirt sagte in Darstellung Stromverbrauch mit Delock 11827:
Als Trigger habe ich zu Testzwecken einfach einen Zeitplan angelegt
Richtig, sollte keinen Einfluss haben, aber man Triggert auf Änderung des Objekts.
Leider hast du dein aktuelles Blockly nicht gepostet, so dass ich nichts sagen kann.
-
Ja, den Trigger ändere ich natürlich noch. Der Wert wird aber nur einmal in der Stunde aktualisiert, das ist zum Testen natürlich zu lang...
Aktueller Wert von tele/Steckdose2/SENSOR:{"Time":"2021-02-18T13:43:00","ENERGY":{"TotalStartTime":"2021-02-17T16:57:42","Total":0.346,"Yesterday":0.045,"Today":0.300,"Period":14,"Power":162,"ApparentPower":167,"ReactivePower":41,"Factor":0.97,"Voltage":232,"Current":0.721}}
Ein Bild vom Objekt, falls es hilft:
Ein Bild vom Datenpunkt, den ich verwende (hat aktuell den Wert NULL):
Ein Bild vom Blockly:
-
@natsirt sagte: Ein Bild vom Blockly:
"Wert vom Objekt ID" verwenden, nicht die Objekt ID.
-
@paul53
Super, das hat geklappt. Vielen Dank!