Seite 1 von 2
Hausakku der PV Anlage per JSON API anfragen und einbinden
Verfasst: So Jan 16, 2022 12:03 pm
von khenckel
Hallo!
Ich habe viel gelesen, aber nicht die richtigen Informationen gefunden.
Mein aktuelles Setup:
- OpenWB Duo latest stable 1.9.244
PV Anlage mit Wechselrichter XY...
LG Resu 13 Akku mit vorgeschaltetem Goodwe Wechselrichter GW5048D-ES
Home assistant
PV Modul für PV-Erzeugungsdaten
EVU Kit - Misst die Einspeisung nachdem der Akku voll ist
Da die OpenWB nicht direkt den GoodWe Wechselrichter auslesen kann, der Hom eassistant aber sehr wohl, würde ich gerne die json API zur Anfragen an das Home assistant nutzen um den SoC-Wert des Akkus in das openWB zu bekommen.
Anfragen kann ich den Wert bereits und bekomme auch die Sensordaten zurück:
Code: Alles auswählen
curl -X GET -H "Authorization: Bearer TOKEN-XXX" -H "Content-Type: application/json"
http://192.168.1.78:8123/api/states/sensor.pv_soc
Rückgabe:
Code: Alles auswählen
{"entity_id": "sensor.pv_soc", "state": "8.0", "attributes": {"unit_of_measurement": "%", "friendly_name": "PV Akku Prozent"}, "last_changed": "2022-01-16T01:55:37.311815+00:00", "last_updated": "2022-01-16T01:55:37.311815+00:00", "context": {"id": "1b49dc7277f8321922559f9d19fc2214", "parent_id": null, "user_id": null}}
Was genau soll den der erwartet Rückgabewert sein? Nur das 8.0?
Wie müsste ich das dann in das Interface eintragen?
Danke und Gruß!
Re: Hausakku der PV Anlage per JSON API anfragen und einbinden
Verfasst: So Jan 16, 2022 1:37 pm
von derNeueDet
Sollte damit klappen als Filter Ausdruck für den SoC.
Ich bin mir ziemlich sicher, dass der SoC nur Integer verträgt, daher noch runden hinten dran, falls der gelieferte String eine Kommazahl enthält.
In die URL kommt deine Abfrage URL rein, die du auch im Curl verwendet hast, bin mir aber nicht sicher, ob es mit Authentifizierung klappt.
VG
Det
Re: Hausakku der PV Anlage per JSON API anfragen und einbinden
Verfasst: Mo Jan 17, 2022 7:07 am
von khenckel
Hi @derNeueDet
Danke für die Hilfe!
Lieder schneidet openwb die Authentifizierung per Token immer aus der Anfrage raus: (beim " ):
Das bleibt dann noch über.. Das funktioniert natürlich nicht.
Ich habe schon versucht die " zu escapen, aber auch \" oder alternativ ' nimmt er nicht.
Der Test mit html encoding ist fraglich:
Code: Alles auswählen
http://192.168.1.78:8123/api/states/sensor.pv_soc -H "Authorization: B......
wir angenommen und gespeichert.
Beim nächsten mal nachschauen im webinterface steht es dann auch mit " drin. ein weiteres Speichern erzwingt aber wieder das wegschneiden der Autorisierung.
Egal.. wir trotzdem nicht korrekt ausgeführt...
Code: Alles auswählen
/var/www/html/openWB/loadconfig.sh: Zeile 8: export: `eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJmNDZlYzg4MTQwNDc0OTUyOWI2Yzk4MzI3OGNjOGUzNCIsImlhdCI6MTY0MjMzMjY3MSwiZXhwIjoxOTU3NjkyNjcxfQ.wOhTG6Ks_9tXo4mygME3S4m9kAU0xJvIu9eIkkwr5io"': Ist kein gültiger Bezeichner.
/var/www/html/openWB/loadconfig.sh: Zeile 8: export: `"Authorization:': Ist kein gültiger Bezeichner.
/var/www/html/openWB/loadconfig.sh: Zeile 8: export: `-H': Ist kein gültiger Bezeichner.
jq: 1 compile error
.state|tonumber|round
jq: error: round/0 is not defined at <top-level>, line 1:
Re: Hausakku der PV Anlage per JSON API anfragen und einbinden
Verfasst: Mo Jan 17, 2022 8:25 am
von derNeueDet
Vermute, dass du das aktuell nur umgehen kannst, wenn du eine URL ohne Authentifizierung verwendest.
Hinter den aktuellen Modulen ist kein curl mehr sondern die Python request Bibliothek. Die kann das auch mit Authorization, aber in den Modulen sind keine Felder definiert, mit denen du die Infomationen übergeben könntest.
VG
Det
Re: Hausakku der PV Anlage per JSON API anfragen und einbinden
Verfasst: Mo Jan 17, 2022 9:18 pm
von yankee
Ich kenne selbst Homeassistent nicht, man möge mir die Idee verzeiehen, wenn das Teil es nicht kann: Pushe doch die Daten von HA per MQTT an die openWB.
Re: Hausakku der PV Anlage per JSON API anfragen und einbinden
Verfasst: Di Jan 18, 2022 10:14 am
von khenckel
Ich hatte schon versucht eine Verbindung von Home Assistant und openwb per MQTT herzustellen.
Leider bekomme ich im Mosquite MQTT Broker die Fehlermeldung:
Code: Alles auswählen
1642498822: New connection from 192.168.1.129 on port 1883.
1642498822: Client <unknown> disconnected due to protocol error.
Die Konfiguration der Openwb dazu ist ja eigentlich einfach:
Auch das Umschalten auf MQTT v3.1 ändert da nichts..
Wo dabei der Fehler liegt konnte ich bisher leider nicht rausfinden.
Derzeit frage ich die openwb werte per API ab, das funktioniert auch, die Werte so zu übergeben wäre dann der analog dazu aufgebaute Rückkanal...
Funktionierte nur leider wegen der Authentifizierung nicht...
Re: Hausakku der PV Anlage per JSON API anfragen und einbinden
Verfasst: Di Jan 18, 2022 10:20 am
von yankee
Eine Brücke dafür brauchst du nicht. Es reicht, wenn du in der Modulkonfiguration von PV/Speicher/EVU "MQTT" als Modul wählst. Dann musst du nurnoch HA davon überzeugen sich als ganz billiger MQTT-Client mit der oWB zu verbinden und kannst dann die Daten pushen.
Re: Hausakku der PV Anlage per JSON API anfragen und einbinden
Verfasst: Di Jan 18, 2022 11:56 am
von khenckel
Ok, danke noch mal für den Hinweis.
Habe noch mal tiefer gegraben und lasse nun Home assistant den MQTT von der openWB rüberholen.
Damit sollte es auch andersherum gehen.
Hatte leider einen Fehler in der mosquitto.conf, daher hatte es vorher nicht funktioniert..
Am Ende stimmte es wie schon x-mal vorher gelesen, wie in
viewtopic.php?p=30540#p30540 beschrieben.
Danke!
Re: Hausakku der PV Anlage per JSON API anfragen und einbinden
Verfasst: Di Jan 18, 2022 2:38 pm
von khenckel
Hmm.. die integration funktioniert nun soweit..
ich kann auch per button z.B. den Charge-mode ändern.
Cool!
Leider habe ich bisher noch nicht rausgefunden wie ich damit von der 'housebattery" den %Soc setzen kann.
Versuche habe ich eine Automatisierung, die bei Änderung des Wertes in Home Assistant ausgeführt wird und dann:
Code: Alles auswählen
service: mqtt.publish
data:
topic: openWB/set/houseBattery/%Soc
payload_template: sensor.pv_soc
geht auch mit "payload:sensor.pc_soc" nicht
Ausserdem hängt es so im topic rum und nicht passiert..
Re: Hausakku der PV Anlage per JSON API anfragen und einbinden
Verfasst: Di Jan 18, 2022 3:07 pm
von rleidner
Versuche mal folgendes geänderte payload_template:
Code: Alles auswählen
service: mqtt.publish
data:
topic: openWB/set/houseBattery/%Soc
payload_template: '{{states(''sensor.pv_soc'')}}'
Wichtig: die '' um sensor.pv_soc sind 2 einzelne ' also kein " (double quote)!