Seite 1 von 2

OpenDTU (Hoymiles) Werte via JSON

Verfasst: Di Okt 18, 2022 7:50 pm
von DirkS
Hi,

kennt sich jemand mit dem JSON Abfrage Modul aus?

Nachdem OpenDTU alle relevanten Daten aller verbundenen Hoymiles Inverter via MQTT nur über Middleware an die OpenWB senden kann und der Entwickler meint es wäre sehr viel Arbeit eine OpenWB Option einzubauen, wäre JSON eine andere Möglichkeit ohne Middleware an die Daten zu kommen.

Siehe hier: https://github.com/tbnobody/OpenDTU/issues/240

Das hier spuckt meine OpenDTU über [IP]/api/livedata/status aus:

Code: Alles auswählen

[{"serial":"112181311701","name":"Holzpalast Süd","data_age":11559,"reachable":false,"producing":false,"limit_relative":100,"limit_absolute":350,"0":{"Power":{"v":0,"u":"W"},"Voltage":{"v":235.1999969,"u":"V"},"Current":{"v":0,"u":"A"},"Power DC":{"v":1.200000048,"u":"W"},"YieldDay":{"v":482,"u":"Wh"},"YieldTotal":{"v":111.3209991,"u":"kWh"},"Frequency":{"v":49.99000168,"u":"Hz"},"Temperature":{"v":21.60000038,"u":"°C"},"PowerFactor":{"v":0,"u":"%"},"ReactivePower":{"v":0,"u":"var"},"Efficiency":{"v":0,"u":"%"}},"1":{"Power":{"v":1.200000048,"u":"W"},"Voltage":{"v":24.10000038,"u":"V"},"Current":{"v":0.050000001,"u":"A"},"YieldDay":{"v":482,"u":"Wh"},"YieldTotal":{"v":111.3209991,"u":"kWh"},"Irradiation":{"v":0.292682916,"u":"%"}},"events":3},{"serial":"112180719948","name":"Holzpalast Ost Links","data_age":11678,"reachable":false,"producing":false,"limit_relative":100,"limit_absolute":300,"0":{"Power":{"v":0,"u":"W"},"Voltage":{"v":235.6000061,"u":"V"},"Current":{"v":0,"u":"A"},"Power DC":{"v":1,"u":"W"},"YieldDay":{"v":351,"u":"Wh"},"YieldTotal":{"v":0.843999982,"u":"kWh"},"Frequency":{"v":49.97000122,"u":"Hz"},"Temperature":{"v":21.70000076,"u":"°C"},"PowerFactor":{"v":0,"u":"%"},"ReactivePower":{"v":0,"u":"var"},"Efficiency":{"v":0,"u":"%"}},"1":{"Power":{"v":1,"u":"W"},"Voltage":{"v":19.70000076,"u":"V"},"Current":{"v":0.050000001,"u":"A"},"YieldDay":{"v":351,"u":"Wh"},"YieldTotal":{"v":0.843999982,"u":"kWh"},"Irradiation":{"v":0.289855093,"u":"%"}},"events":3},{"serial":"114181304338","name":"Mülltonnen","data_age":11377,"reachable":false,"producing":false,"limit_relative":100,"limit_absolute":600,"0":{"Power":{"v":0,"u":"W"},"Voltage":{"v":234.5,"u":"V"},"Current":{"v":0,"u":"A"},"Power DC":{"v":0.700000048,"u":"W"},"YieldDay":{"v":828,"u":"Wh"},"YieldTotal":{"v":5.251999855,"u":"kWh"},"Frequency":{"v":49.99000168,"u":"Hz"},"Temperature":{"v":22.39999962,"u":"°C"},"PowerFactor":{"v":0,"u":"%"},"ReactivePower":{"v":0,"u":"var"},"Efficiency":{"v":0,"u":"%"}},"1":{"Power":{"v":0.300000012,"u":"W"},"Voltage":{"v":18.60000038,"u":"V"},"Current":{"v":0.02,"u":"A"},"YieldDay":{"v":398,"u":"Wh"},"YieldTotal":{"v":2.50999999,"u":"kWh"},"Irradiation":{"v":0.086956523,"u":"%"}},"2":{"Power":{"v":0.400000006,"u":"W"},"Voltage":{"v":18.60000038,"u":"V"},"Current":{"v":0.02,"u":"A"},"YieldDay":{"v":430,"u":"Wh"},"YieldTotal":{"v":2.742000103,"u":"kWh"},"Irradiation":{"v":0.115942039,"u":"%"}},"events":3}]
Nun müsste man die Abfrage so gestalten um alle einzel Inverter Daten zu summieren. Zudem kommt YieldTotal in kWh, OpenWB will aber Wh.

Der Entwickler von OpenDTU meint hiermit

Code: Alles auswählen

[.[]."0".Power.v] | add
könnten die einzel Inverterdaten summiert werden.

Grüße

Re: OpenDTU (Hoymiles) Werte via JSON

Verfasst: Di Okt 18, 2022 8:04 pm
von aiole
Det? Wo bist Du? Es geht um jq ;) .
https://github.com/tbnobody/OpenDTU/iss ... 1282277626

Ich wurde hier beglückt:
viewtopic.php?p=25063#p25063
Keine Hoymiles, sondern AE-Conversion-Modul-WR

@DirkS
Kannst Du bitte eine Ausgabe von

Code: Alles auswählen

/api/livedata/status
posten?

Re: OpenDTU (Hoymiles) Werte via JSON

Verfasst: Di Okt 18, 2022 10:00 pm
von DirkS
aiole hat geschrieben: Di Okt 18, 2022 8:04 pm
@DirkS
Kannst Du bitte eine Ausgabe von

Code: Alles auswählen

/api/livedata/status
posten?
Habe ich doch im ersten Post bereits

Re: OpenDTU (Hoymiles) Werte via JSON

Verfasst: Di Okt 18, 2022 10:12 pm
von aiole
Sry, wer lesen kann... :roll:

Re: OpenDTU (Hoymiles) Werte via JSON

Verfasst: Mi Okt 19, 2022 5:21 am
von derNeueDet
Der Entwickler hat Recht.

Der gezeigte Ausdruck summiert die aktuellen Leistungen.

Für den Ertrag muss das folgende Filter verwendet werden.

Code: Alles auswählen

[.[]."0".YieldTotal.v]|add *1000
Dann sollte das summiert und in Wh passen.

VG
Det

Re: OpenDTU (Hoymiles) Werte via JSON

Verfasst: Mi Okt 19, 2022 6:15 am
von DirkS
Hi Det,

das ist schonmal cool. Mehr muss man nicht eintragen? Oder ist da noch mehr code notwendig? Kannst du das für Dummies erklären?

Viele Grüße

Re: OpenDTU (Hoymiles) Werte via JSON

Verfasst: Mi Okt 19, 2022 6:24 am
von derNeueDet
URL und die beiden Filter Ausdrücke eingeben, dann sollte schon was kommen.

Das ist die Erklärung ;)
Muss nicht immer schwierig sein.

VG
Det

Re: OpenDTU (Hoymiles) Werte via JSON

Verfasst: So Nov 06, 2022 9:37 am
von thomas67648
Ich scheitere am selben Problem

Meine OpenDTU hat zwar nur einen Wechselrichter verknüpft, aber das macht evtl für die Syntax keinen Unterschied
und ich bekomme die Syntax ohne die add-Funktion nicht hin

URL ist eingetragen
URL/api/livedata/status

dann die Filter

[.[]."0".Power.v] | add

[.[]."0".YieldTotal.v]|add *1000

Und bekomme von der OpenWB im Status den Fehler
Störungsbeschreibung <class 'ValueError'> Cannot index array with string "0"

Meine Versuche mit ."0".Power.v führen auch in Fehlermeldungen

Gruß Thomas

Re: OpenDTU (Hoymiles) Werte via JSON

Verfasst: So Nov 06, 2022 2:22 pm
von thomas67648
So klappt es:

URL/api/livedata/status

dann die Filter

.total.Power.v

.total.YieldTotal.v *1000



Gruß Thomas

Re: OpenDTU (Hoymiles) Werte via JSON

Verfasst: So Nov 06, 2022 5:25 pm
von derNeueDet
Dann liefert dein Wechselrichter ein anderes JSON zurück ;)