Seite 2 von 3

Re: Growatt <> Openhab

Verfasst: 6. Mär 2021 10:54
von udo1toni
Dann müsste aber auch var1 und var2 verwendet werden... ;)

Re: Growatt <> Openhab

Verfasst: 6. Mär 2021 14:41
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!

Re: Growatt <> Openhab

Verfasst: 6. Mär 2021 15:08
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... ;)

Re: Growatt <> Openhab

Verfasst: 7. Mär 2021 00:22
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.

Re: Growatt <> Openhab

Verfasst: 7. Mär 2021 03:07
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

Re: Growatt <> Openhab

Verfasst: 7. Mär 2021 21:03
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..

Re: Growatt <> Openhab

Verfasst: 7. Mär 2021 23:06
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.

Re: Growatt <> Openhab

Verfasst: 8. Mär 2021 00:29
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.

Re: Growatt <> Openhab

Verfasst: 8. Mär 2021 20:50
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.

Re: Growatt <> Openhab

Verfasst: 8. Mär 2021 20:53
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.