Hausakku der PV Anlage per JSON API anfragen und einbinden

Anfragen zum Erstellen von Modulen, Fragen zu Modulen
khenckel
Beiträge: 17
Registriert: Mo Jan 10, 2022 7:06 am

Hausakku der PV Anlage per JSON API anfragen und einbinden

Beitrag 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ß!
derNeueDet
Beiträge: 4226
Registriert: Mi Nov 11, 2020 7:16 pm

Re: Hausakku der PV Anlage per JSON API anfragen und einbinden

Beitrag von derNeueDet »

Sollte damit klappen als Filter Ausdruck für den SoC.

Code: Alles auswählen

.state|tonumber|round
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
10kWp PV mit SMA Tripower 10000TL-10 (PE11 mit SDM72V2); 2,4kWp mit Solis 2.5 G6 (EE11 mit SDM120). OpenWB Standard+. EVU EM540 an einem Raspi mit Venus OS. BEV Mercedes EQA 250 (07/2023)
khenckel
Beiträge: 17
Registriert: Mo Jan 10, 2022 7:06 am

Re: Hausakku der PV Anlage per JSON API anfragen und einbinden

Beitrag von khenckel »

Hi @derNeueDet

Danke für die Hilfe!

Lieder schneidet openwb die Authentifizierung per Token immer aus der Anfrage raus: (beim " ):

Code: Alles auswählen

http://192.168.1.78:8123/api/states/sensor.pv_soc -H 
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:
derNeueDet
Beiträge: 4226
Registriert: Mi Nov 11, 2020 7:16 pm

Re: Hausakku der PV Anlage per JSON API anfragen und einbinden

Beitrag 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
10kWp PV mit SMA Tripower 10000TL-10 (PE11 mit SDM72V2); 2,4kWp mit Solis 2.5 G6 (EE11 mit SDM120). OpenWB Standard+. EVU EM540 an einem Raspi mit Venus OS. BEV Mercedes EQA 250 (07/2023)
yankee
Beiträge: 481
Registriert: Sa Mai 16, 2020 11:34 am

Re: Hausakku der PV Anlage per JSON API anfragen und einbinden

Beitrag 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.
khenckel
Beiträge: 17
Registriert: Mo Jan 10, 2022 7:06 am

Re: Hausakku der PV Anlage per JSON API anfragen und einbinden

Beitrag 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:
2022-01-18 11_06_20-openWB Einstellungen.png
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...
yankee
Beiträge: 481
Registriert: Sa Mai 16, 2020 11:34 am

Re: Hausakku der PV Anlage per JSON API anfragen und einbinden

Beitrag 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.
khenckel
Beiträge: 17
Registriert: Mo Jan 10, 2022 7:06 am

Re: Hausakku der PV Anlage per JSON API anfragen und einbinden

Beitrag 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!
khenckel
Beiträge: 17
Registriert: Mo Jan 10, 2022 7:06 am

Re: Hausakku der PV Anlage per JSON API anfragen und einbinden

Beitrag von khenckel »

Hmm.. die integration funktioniert nun soweit..
ich kann auch per button z.B. den Charge-mode ändern. :shock:
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..
2022-01-18 15_38_26-MQTT Explorer.png
rleidner
Beiträge: 793
Registriert: Mo Nov 02, 2020 9:50 am

Re: Hausakku der PV Anlage per JSON API anfragen und einbinden

Beitrag 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)!
openWB-2 Standard+ | openWB EVU Kit v2 MID| 9,9kWp mit Kostal Plenticore 8.5 plus | VW ID.3, Smart EQ forfour
Antworten