NEWS
Wert aus Datenpunkt auslesen und exportieren
-
Hallo zusammen,
ich nutze seit kurzem ioBroker auf einem Synology System via Docker. Dort habe ich u.a. den Mercedes me Adapter installiert. Dieser erfasst auch elektrische Ladevorgänge in einem Datenpunkt. Ich würde den Eintrag dort gern einmal im Monat auslesen (z.B. in eine Datei) und dann auf 0 setzen. Kann mir jemand mit einem Blockly Skript helfen? Ich hab es selber nicht hinbekommen.
Hier die Objektstruktur
Der Punkt lautet: mercedesme.0.KFZ-ID.history.socJSON
Und darin steht in den Werten im JSON Format die Ladehistorie:
[{"start":23,"end":100,"date":"2.9.2023 16:00","diff":94,"quantity":"16.94","price":"5.93","odo":3658,"basicPrice":0.35,"startDate":"2.9.2023 14:27","duration":94,"perHour":0.00300354609929078},{"start":82,"end":100,"date":"31.8.2023 11:18","diff":155,"quantity":"3.96","price":"1.39","odo":3563,"basicPrice":0.35,"startDate":"31.8.2023 08:44","duration":155,"perHour":0.0004258064516129032},{"start":1,"end":100,"date":"29.8.2023 12:59","diff":127,"quantity":"21.78","price":"7.62","odo":3441,"basicPrice":0.35,"startDate":"29.8.2023 10:53","duration":127,"perHour":0.0028582677165354333}]Danke
-
@apachelance sagte: dann auf 0 setzen
Ist der Datenpunkt nicht "read only"?
Außerdem ist es ein JSON-Array, das man durch ein leeres JSON-Array ersetzen müsste:'[]'
-
@paul53 Sollte sich überschreiben lassen
-
@apachelance sagte: Sollte sich überschreiben lassen
Wird der Inhalt nicht wieder durch den Adapter überschrieben?
Was klappt dann nicht? Das Auslesen?@apachelance sagte in Wert aus Datenpunkt auslesen und exportieren:
in eine Datei
Blockly bietet keine Datei-Operationen. Man kann es aber mit "exec" versuchen:
-
@paul53 said in Wert aus Datenpunkt auslesen und exportieren:
@apachelance sagte: Sollte sich überschreiben lassen
Wird der Inhalt nicht wieder durch den Adapter überschrieben?
Was klappt dann nicht? Das Auslesen?Ja, beim nächsten Ladevorgang werden die Werte wohl wieder überschrieben. Da ich aber monatsweise exportieren möchte, ist es ok, wenn dann z.B. zum ersten des Monats wieder überschrieben wird.
Ansonsten gehts mir primär um das Auslesen. Aktuell kann ich nur die ganzen JSON Werte manuell aus dem Datenpunkt kopieren.
-
@paul53 Ich hab jetzt den Teil des Skriptes mit Echo mal umgesetzt:
In der test.txt steht aber nur dies drin und nicht die Werte:
[object Object],[object Object],[object Object]
-
@apachelance sagte: In der test.txt steht aber nur dies drin
Welchen Datenpunkt-Typ hat "Charging history as json"?
Versuche es mal so:Inhalt meiner test.txt mit Datenpunkt vom Typ "string" (ohne Wandlung nach JSON):
[{start:23,end:100,date:2.9.2023 16:00,diff:94,quantity:16.94,price:5.93,odo:3658,basicPrice:0.35,startDate:2.9.2023 14:27,duration:94,perHour:0.00300354609929078},{start:82,end:100,date:31.8.2023 11:18,diff:155,quantity:3.96,price:1.39,odo:3563,basicPrice:0.35,startDate:31.8.2023 08:44,duration:155,perHour:0.0004258064516129032},{start:1,end:100,date:29.8.2023 12:59,diff:127,quantity:21.78,price:7.62,odo:3441,basicPrice:0.35,startDate:29.8.2023 10:53,duration:127,perHour:0.0028582677165354333}]
-
@paul53 Besten Dank, das hat geklappt. Der Datenpunkt ist vom Typ history.
So siehts jetzt aus. Habe noch das Datum im Dateinamen ergänzt als
charging-history_`date +%d-%m-%Y--%H:%M:%S`.txt
So wird beim Speichern nicht eine vorige Version überschrieben.