Growatt <> Openhab

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
udo1toni
Beiträge: 13856
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Growatt <> Openhab

Beitrag von udo1toni »

Dann müsste aber auch var1 und var2 verwendet werden... ;)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

ThomyTP
Beiträge: 41
Registriert: 8. Jan 2018 19:13
Answers: 1

Re: Growatt <> Openhab

Beitrag von ThomyTP »

Ich hatte nun mal nur die erste Zeile ausprobiert, leider kein Erfolg:
Traceback (most recent call last):
File "growatt/mygrowatt.py", line 21, in <module>
client.publish("inverter/plant_info", api.plant_list())
File "/home/openhabian/growatt_api_client/venv/lib/python3.7/site-packages/growatt-0.0.2-py3.7.egg/growatt/__init__.py", line 84, in plant_list
return self._back_success_response(response)
File "/home/openhabian/growatt_api_client/venv/lib/python3.7/site-packages/growatt-0.0.2-py3.7.egg/growatt/__init__.py", line 156, in _back_success_response
raise GrowattApiError("Request failed: %s" % response)
growatt.GrowattApiError: Request failed: <Response [302]>


udo1toni hat geschrieben: 5. Mär 2021 19:33 Doch, das sollte schon gehen. Es kann halt sein, dass da Steuerzeichen drin sind, die fälschlich ausgewertet werden (Anführungszeichen...)
erster Versuch: auf die Variable verzichten:

Code: Alles auswählen

client.publish("inverter/plant_info", api.plant_list())
client.publish("inverter/plant_detail", api.plant_detail(plant_id, Timespan.day, datetime.date.today()))
Achtung! Du musst die Indentation bachten!

ThomyTP
Beiträge: 41
Registriert: 8. Jan 2018 19:13
Answers: 1

Re: Growatt <> Openhab

Beitrag von ThomyTP »

Genau so ist es und es funktioniert nun auch.

Nun bekomme ich 2 Topics, soweit so gut.
So richtig mit Arbeiten lässt sich damit ja nicht da ich eigentlich da ich noch die einzelnen Werte brauche. Lässt sich das nun in der Items Definition auseinander trennen?

Hier mal ein Ergbniss, freue mich gerade das die Anlage schon heute 2KW geholt hat :-) :
inverter/plant_info {'data': [{'plantMoneyText': '4.0 (€)', 'plantName': 'xxxx', 'plantId': 'xxxx', 'isHaveStorage': 'false', 'todayEnergy': '2.1 kWh', 'totalEnergy': '14.5 kWh', 'currentPower': '248.1 W'}], 'totalData': {'currentPowerSum': '248.1 W', 'CO2Sum': '0 T', 'isHaveStorage': 'false', 'eTotalMoneyText': '4.0 (€)', 'todayEnergySum': '2.1 kWh', 'totalEnergySum': '14.5 kWh'}, 'success': True}
udo1toni hat geschrieben: 6. Mär 2021 10:54 Dann müsste aber auch var1 und var2 verwendet werden... ;)

Benutzeravatar
udo1toni
Beiträge: 13856
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Growatt <> Openhab

Beitrag von udo1toni »

Nein, das passt schon. Das sind jetzt die zwei JSON Objekte. Du liest die beiden Topics nun in zwei Mqtt Channel ein.
Nun kannst Du aus den Channels mit JSONPATH jeden der Werte in andere Items schreiben.

Zum Beispiel für das 1. JSON Objekt JSONPATH:$.data[0].todayEnergy für die Tagesleistung. Die anderen Werte kann man genauso einzeln ansprechen, dazu braucht es pro Objekt nur einen einzigen Channel.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

baipai
Beiträge: 55
Registriert: 17. Dez 2019 09:03
Wohnort: Sisaket Thailand

Re: Growatt <> Openhab

Beitrag von baipai »

udo1toni hat geschrieben: 6. Mär 2021 10:54 Dann müsste aber auch var1 und var2 verwendet werden... ;)
Oh ja Sorry natuerlich, mein Fehler.

udo1toni sieht alles

ThomyTP
Beiträge: 41
Registriert: 8. Jan 2018 19:13
Answers: 1

Re: Growatt <> Openhab

Beitrag von ThomyTP »

udo1toni & Baipai, TOP!
Vielen Dank, ich habe es heute hinbekommen.

Über
Thing mqtt:topic:growatt "Growatt MQTT" (mqtt:broker:cb6eeefc) {
Channels:
Type string : Growatt_Pv_day_summe "Tagesleistung PV" [ stateTopic="inverter/plant_info", transformationPattern="JSONPATH:$.data[0].todayEnergy"]
Type string : Growatt_currentPower "Aktuelle Leistung PV" [ stateTopic="inverter/plant_info", transformationPattern="JSONPATH:$.data[0].currentPower"]
Type string : Growatt_PV_total_summe "Gesamt PV Leistung" [ stateTopic="inverter/plant_info", transformationPattern="JSONPATh:$.data[0].totalEnergy"]

}
ist das Thing definiert und die Items

String Growatt_Pv_day_summe "Tagesleistung PV" <energy> (growatt) {channel="mqtt:topic:growatt:Growatt_Pv_day_summe"}
String Growatt_currentPower "Aktuelle Leistung PV" <energy> (growatt) {channel="mqtt:topic:growatt:Growatt_currentPower"}
String Growatt_PV_total_summe "Gesamt PV Leistung" <energy> (growatt) {channel="mqtt:topic:growatt:Growatt_PV_total_summe"}

waren dann auch kein Problem. Vielen Dank schon mal! Sehr nett von euch!! Habe heute wieder was dazu gelernt, Json wird langsam klarer..

Nun muss das Script noch in die Crontab (leider z.Z. noch am Zicken ich denke ich habe da noch ein Rechteproblem)

0 0/5 * * * ? /home/openhabian/growatt_api_client/venv/bin/python growatt_api_client/growatt/mygrowatt.py klappte leider hier nicht auf anhieb.

Als nächstes brauche ich nun noch das Item als Number damit auch dann auch die Werte zum Steuern nutzen kann.

Die Idee wäre nun, z.B. die Spühlmaschine einzuschalten wenn gerade die Sonne brennt. Das wäre ja ideal, da ich nicht einspeisen kann und sonst der ganze schöne Strom ungenutzt wäre..

Benutzeravatar
udo1toni
Beiträge: 13856
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Growatt <> Openhab

Beitrag von udo1toni »

Was die Channel betrifft, so brauchst Du tatsächlich nur zwei Channel, den einen für plant_info, den anderen für plant_detail. Du kannst dann mehrere Number Items mit diesen String Channels verlinken und in den Metadaten JSONPATH einsetzen, um erst dort die Werte aus dem Objekt herauszulösen. das ist viel eleganter, als mehrere Channel anzulegen, die alle das selbe Topic lesen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

baipai
Beiträge: 55
Registriert: 17. Dez 2019 09:03
Wohnort: Sisaket Thailand

Re: Growatt <> Openhab

Beitrag von baipai »

ThomyTP hat geschrieben: 7. Mär 2021 21:03 Die Idee wäre nun, z.B. die Spühlmaschine einzuschalten wenn gerade die Sonne brennt. Das wäre ja ideal, da ich nicht einspeisen kann und sonst der ganze schöne Strom ungenutzt wäre..
Was hast du den fuer einen WR und wie machst du das mit dem Strom?
Hast du eine Batterie Bank? Wieviel PV hast du dran?

Wenn die Spuelmachine anfaengt zu Heizen zieht die schon eine Menge an Strom.
Ich kann meine grosse Klimaanlage nicht ueber die PV laufen lassen. Die zieht im Betrieb 2 KW ich denke das Der Einschaltstrom vom Kompressor bei ca. 4-5 KW liegt. Da muss der WR erst mal reagieren oder die Leistung kurzfristig (schnell) zur Verfuegung stellen.
Ich habe hier einen Stromverbrauch von ca. 14 Kw am Tag.

Das wird mein naechstes Project.
Strom Aus-und Eingang, OffGrid und OnGrid Zusammen Rechnen.

ThomyTP
Beiträge: 41
Registriert: 8. Jan 2018 19:13
Answers: 1

Re: Growatt <> Openhab

Beitrag von ThomyTP »

Das klingt gut, so wird es übersichtlicher.. habe ich so noch nicht gemacht, muss ich mal schauen..

udo1toni hat geschrieben: 7. Mär 2021 23:06 Was die Channel betrifft, so brauchst Du tatsächlich nur zwei Channel, den einen für plant_info, den anderen für plant_detail. Du kannst dann mehrere Number Items mit diesen String Channels verlinken und in den Metadaten JSONPATH einsetzen, um erst dort die Werte aus dem Objekt herauszulösen. das ist viel eleganter, als mehrere Channel anzulegen, die alle das selbe Topic lesen.

ThomyTP
Beiträge: 41
Registriert: 8. Jan 2018 19:13
Answers: 1

Re: Growatt <> Openhab

Beitrag von ThomyTP »

Ich mache das über einen growatt umrichter. 600 Watt ohne Einspeisung. Es wird also am Zähler geblockt.
Somit brauche ich einen hohen Eigenverbrauch.
Daher meine Idee über openhab dann die Verbraucher einzuschalten. Mein Geschirrspüler von Miele kann über mqtt Befehle entgegen. Somit wäre es rund..


Klar sind es nur 600 Watt aber die Leistung nicht voll auszunutzen ist ja auch unschön..


baipai hat geschrieben: 8. Mär 2021 00:29
ThomyTP hat geschrieben: 7. Mär 2021 21:03 Die Idee wäre nun, z.B. die Spühlmaschine einzuschalten wenn gerade die Sonne brennt. Das wäre ja ideal, da ich nicht einspeisen kann und sonst der ganze schöne Strom ungenutzt wäre..
Was hast du den fuer einen WR und wie machst du das mit dem Strom?
Hast du eine Batterie Bank? Wieviel PV hast du dran?

Wenn die Spuelmachine anfaengt zu Heizen zieht die schon eine Menge an Strom.
Ich kann meine grosse Klimaanlage nicht ueber die PV laufen lassen. Die zieht im Betrieb 2 KW ich denke das Der Einschaltstrom vom Kompressor bei ca. 4-5 KW liegt. Da muss der WR erst mal reagieren oder die Leistung kurzfristig (schnell) zur Verfuegung stellen.
Ich habe hier einen Stromverbrauch von ca. 14 Kw am Tag.

Das wird mein naechstes Project.
Strom Aus-und Eingang, OffGrid und OnGrid Zusammen Rechnen.

Antworten