FHEM Forum

FHEM - Anwendungen => Solaranlagen => Thema gestartet von: chello93 am 16 März 2019, 17:30:07

Titel: Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: chello93 am 16 März 2019, 17:30:07
Hallo Leute,

hat von Euch schon jemand Erfahrungen wie man den Growatt Wechselrichter bzw. das Growatt Portal in Fhem einbinden kann?
Der ShineWiFi Stick (RS232) sendet seine Daten ja ca. alle 5 min ans Growatt Portal..
Ich würde die Daten gerne mit Fhem weiter verarbeiten.

Hat zufällig noch jemand anderes solch einen Wechselrichter?

Grüße
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: dieter114 am 08 Mai 2019, 22:07:35
Hallo chello93 :)

ich habe auch einen Growatt Wechselrichter und will den in fhem integieren.
Meiner läuft aber noch nicht, die ganze Anlage steht (noch) in der Garage.
An einer Einbindung bin ich sehr interessiert.
Kommt man an die "Roh" Daten des WIFI Stick ran.
So mit HTTPMod z.B.?

Gruß Wolfdieter
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: dieter114 am 17 Mai 2019, 21:39:44
So hier nochmal ne Antwort: ;D
Ich habe den Wechselrichter über ein Sonoff-Pow Modul angeschlossen.
Wichtig dabei ist, den Pow "richtigherum" anzuschließen,
also so als ob der Growatt der "Verbraucher" ist, sonnst geht es nicht!
Die erzeugte Leistung des Wechselrichters wird im Pow als Positive Energie angezeigt
also auch wenn der Strom "Andersherum" läuft.
Es wird also nicht zwischen den Betriebsrichtungen unterschieden.
Für mich reicht das völlig aus.
Im Standby verbraucht mein 1500W Wechselrichter gelegentlich 5-8W.
Das verfälscht das Betriebsergebnis nicht wirklich.
Ach ja: den Pow mit dem neuen MQTT2_DEVICE anlegen.
Einfacher und bequemer geht es nicht.  :)
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 12 August 2020, 17:43:42
Hat sich hier schon etwas getan in Sachen Growatt Wechselrichter.
Evtl gibt es schon die Möglichkeit etwas auszulesen..?
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 20 November 2020, 16:49:33
Es gibt ein paar Neuigkeiten zu Growatt. Die Infos habe ich aus dem Photovoltaikforum.
Es sollen Verbindungen über MQTT zu Fhem möglich sein, dass wäre wohl interessant.

Ich selber habe es noch nicht ausprobiert, weil man sich auf der Seite (link (https://solaranzeige.de)) im Forum anmelden muss um an die Software zu kommen.
Ich hänge mal ein PDF dran wo einiges erklärt wird.

Hier steht Growatt seit neustem mit in der Liste, der ganz letzte.
https://solaranzeige.de/phpBB3/viewtopic.php?f=9&t=170 (https://solaranzeige.de/phpBB3/viewtopic.php?f=9&t=170)
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: dieter114 am 12 Dezember 2020, 20:00:55
Es gibt da einen vielversprechenden Lösungsansatz.
Sieh mal hier; https://forum.iobroker.net/topic/20014/growatt-wechselrichter-%C3%BCber-modbus-auslesen-gel%C3%B6st
Das könnte gehen wenn es richtig in fhem eingebunden wird.
Behalte ich mal im "Hinterkopf"...

Gruß WDS
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: ali77 am 04 Januar 2021, 17:13:54
Ich habe es folgendermaßen gelöst:

1. Das growatt_api_client Script nach Anleitung eingerichtet. Ich habe das Script in zwei geteilt (PlantDetails und PlantData), weil sonst kein richtiges Json zurück kommt
https://github.com/Sjord/growatt_api_client

2.Ein Dummy für die Daten
define Growatt dummy
attr Growatt room Photovoltaik

3. in der 99_myUtils.pm zwei kleine Subs um das Json vorzubereiten (true kleinschreiben und " statt '). Das aufbereitete JSON wird in den dummy geschrieben.
sub growattPlantDetails($) {
   my ($rawDatas) = @_;   
   $rawDatas =~ s/'/"/g;
       my $jsonString = $rawDatas =~ s/True/true/r;
    fhem("setReading Growatt jsonPlantDetails ".$jsonString);
}

4. Ein at um die Daten alle 30 Minuten abzuholen

define growattDatas at +*00:30:00 {\
  my $rawPlantData = qx (/home/pi/growatt_api_client/venv/bin/python /home/pi/growatt_api_client/growatt/plantData.py 'user' 'password');;\
  growattPlantData($rawPlantData);;\
  my $rawPlantDetails = qx (/home/pi/growatt_api_client/venv/bin/python /home/pi/growatt_api_client/growatt/plantDetails.py 'user' 'password');;\
 growattPlantDetails($rawPlantDetails);;\
}

5. Ein expandJSON um automatisch aus den JSON-Rohdaten im Growatt dummy einzelne Readings zu bekommen.
define ej2 expandJSON Growatt:json.*:.\{.*}
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 04 Januar 2021, 17:30:57
funktioniert das dann alles über Netzwerk, oder braucht es wieder diese Zweidraht Konstruktion..? damit läuft es dann auch mit der Solaranzeige wenn ich da oben einen Pi hinhänge, aber das wollte ich vermeiden. Sonst könnte ich es mut dem Docker nutzen.
Problem bei mir ich komme eben nicht zum Fhem Server vom Dachboden mit einem Kabel.
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: ali77 am 04 Januar 2021, 17:38:25
Meine Lösung geht über die Growatt Cloud (server.growatt.com) Die Daten schreibt der Wechselrichter über den Wifi Dongle dort hin.
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 04 Januar 2021, 17:43:08
ja ganz genau, so habe ich es auch und war immer der Meinung, wenn die meine Daten bekommen... muss ich ich da auch ran kommen.
Ich habe den LAN Stick extra gekauft weil ich eben dachte ich kann die Daten selber mit meiner Fhem Instanz aufzeichen, aber das war ein Trugschluss...!

Aber jetzt hast du es ja gezeigt das es funktioniert.
Ich werde versuchen das mal nach zu stellen, weiß nicht ob ich das hinbekomme.
Schaue mir mal deine ganzen Dinge von oben in Ruhe an... schau mal öfter hier rein falls ich Fragen habe  ;)
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 04 Januar 2021, 18:00:18
das hier habe ich noch nicht kapiert, ich setze das mal in Code Tags
3. in der 99_myUtils.pm zwei kleine Subs um das Json vorzubereiten (true kleinschreiben und " statt '). Das aufbereitete JSON wird in den dummy geschrieben.
Das ist nur ein Sub und das mit true habe ich gemacht und was ist sonst noch gemeint und wie sieht das zweite aus..?

ist das richtig so..?
sub growattPlantDetails($) {
   my ($rawDatas) = @_;   
   $rawDatas =~ s/'/"/g;
       my $jsonString = $rawDatas =~ s/true/true/r;
    fhem("setReading Growatt jsonPlantDetails ".$jsonString);
}
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: ali77 am 04 Januar 2021, 19:01:53
Ja es waren mal zwei, weil ich den Aufruf geteilt hatte. Ich habe es mal wieder in eine gepackt:

sub getGrowattJson($$) {
     my ($rawDatas, $readingname) = @_; 
     $rawDatas =~ s/'/"/g;
     my $jsonString = $rawDatas =~ s/True/true/r;
     fhem("setReading Growatt ".$readingname." ".$jsonString);
}

Aufruf dann:
define growattDatas at +*00:30:00 {\
  my $rawPlantData = qx (/home/pi/growatt_api_client/venv/bin/python /home/pi/growatt_api_client/growatt/plantData.py 'xx' 'xx');;\
  getGrowattJson($rawPlantData,'jsonPlantData');;\
  my $rawPlantDetails = qx (/home/pi/growatt_api_client/venv/bin/python /home/pi/growatt_api_client/growatt/plantDetails.py 'xx' 'xx');;\
 getGrowattJson($rawPlantDetails,'jsonPlantDetails');;\
}

Die plantData.py und plantDetails.py  sind nur kopierte __main__.py in der ich entweder print(plant_info) oder print(plant_detail) am Ende auskommentiert habe, damit nicht beides zusammen im JSON ist. Hätte man natürlich besser umbauen können.

Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 04 Januar 2021, 19:35:10
zu den "plantData.py und plantDetails.py"
müssen die so heißen.?
weil ich da nur die "__init__.py" und die "__main__.py" drin habe und der Pfad muss angepaßt werden.
Bei mir liegen die in
/root/growatt_api_client/growatt
weil ich keinen pi habe, aber das habe ich schon angepaßt, nur eben die Dateinamen wie müssen die genau heißen.

Ich habe in ssh schon gesehen das er meine Daten geholt hat, ich muss eben nur noch das at anpassen sonst wird das nichts.
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: ali77 am 04 Januar 2021, 19:46:25
jade Name so wie im Aufruf, also:  ".../python /pfad_zum_script/plantData.py 'user' 'pw'

my $rawPlantData = qx (/home/pi/growatt_api_client/venv/bin/python /home/pi/growatt_api_client/growatt/plantData.py 'user' 'pword');;\


Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: ali77 am 04 Januar 2021, 19:49:09
Die beiden ...py sind ja nur Kopien von __main__.py wie auf https://github.com/Sjord/growatt_api_client unten beschrieben

Zitat
If you want to create your own client, start from growatt/__main__.py. Copy it and change it to your liking, and then run it like this:

venv/bin/python myscript.py 'username' 'password'

Und dann jeweils die Ausgabe der JSON auskommentieren
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 04 Januar 2021, 20:14:14
Ich schaue mir das später noch an. Bin jetzt unterwegs und werde am späten Abend nochmal schauen und evtl. fragen... wird aber erst gegen 0 Uhr werden.
Hab ja ein paar Hinweise bekommen von dir, das ist schon mal eine Hilfe  ;) Danke dafür
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 05 Januar 2021, 01:30:47
ich habe es kurzer Hand nochmal mit dem Fhem User installiert, ich denke jetzt kommen ja keine Daten also kann er auch nichts auslesen.
Mal auf morgen früh warten.
Was ich noch nicht verstanden habe ist das mit dem script, auf github steht ja zu Deutsch im letzten Absatz

Zitat
Wenn Sie Ihren eigenen Client erstellen möchten, beginnen Sie mit growatt / __ main__.py. Kopieren Sie es und ändern Sie es nach Ihren Wünschen. Führen Sie es dann folgendermaßen aus:

das habe ich nicht richtig kapiert, muss ich dieses Script erstellen.?

venv/bin/python myscript.py 'username' 'password'
denn an dieser Stelle habe ich ja kein script. Und wenn wie muss das script denn aussehen.?

Die beiden Dateien habe ich angepaßt:
in der
plantData.py habe ich "  # print(plant_info)" auskommentiert
plantDetails.py habe ich # print(plant_detail) auskommentiert


Das hier sind die letzten Meldungen:
where <name> is a single device name, a list separated by comma (,) or a regexp. See the devspec section in the commandref.html for details.
2021.01.05 01:38:20 3: growattDatas: Usage: setreading <name> [YYYY-MM-DD HH:MM:SS] <reading> <value>
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: ali77 am 05 Januar 2021, 08:08:47
Das my script.py ist nur ein Beispiel, wie man eine Kopie anlegt. Es ging nur um plantData.py und plantDetails.py die so angelegt und geändert werden sollten. Einfach mal testen in der Konsole, ob mit dem Aufruf wie er in Fhem steht ein Ergebnis für die beiden Python Skripte ausgegeben werden.

Das "2021.01.05 01:38:20 3: growattDatas: Usage: setreading <name> ...." kommt sicher daher das noch irgendwo eine Copy/Paste Fehler drin ist und inzwischen etwas anders heißt.
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 05 Januar 2021, 16:26:22
also so richtig komme ich jetzt nicht weiter, ich habe alles nochmal gecheckt und bisher keinen Fehler gefunden, der pfad zu growatt ist auch genauso.
Dazu unten der Screenshot

hier mal mein at in Fhem:
+*00:20:00 {
  my $rawPlantData = qx (/home/fhem/growatt_api_client/venv/bin/python /home/fhem/growatt_api_client/growatt/plantData.py 'xx' 'xx');;
  getGrowattJson($rawPlantData,'jsonPlantData');;
  my $rawPlantDetails = qx (/home/fhem/growatt_api_client/venv/bin/python /home/fhem/growatt_api_client/growatt/plantDetails.py 'xx' 'xx');;
 getGrowattJson($rawPlantDetails,'jsonPlantDetails');;
}

Frage dazu bei den 'xx' hinten muss aber jetzt nicht der user und das Passwort rein.?

Die ej2 sieht so aus im Def. und sie zeigt auch "active" also ist das wohl richtig.
Growatt:json.*:.\{.*}
Dann die beiden Dateien
plantData.py --> hier auskommentiert "# print(plant_detail)"
import sys
import datetime
from growatt import hash_password, GrowattApi, Timespan

username = sys.argv[1]
password = sys.argv[2]

with GrowattApi() as api:
    api.login(username, password)
    plant_info = api.plant_list()
    print(plant_info)

    plant_id = plant_info["data"][0]["plantId"]
    plant_detail = api.plant_detail(plant_id, Timespan.day, datetime.date.today())
   # print(plant_detail)

und

plantDetails.py --> hier auskommentiert "# print(plant_info)"
import sys
import datetime
from growatt import hash_password, GrowattApi, Timespan

username = sys.argv[1]
password = sys.argv[2]

with GrowattApi() as api:
    api.login(username, password)
    plant_info = api.plant_list()
    # print(plant_info)

    plant_id = plant_info["data"][0]["plantId"]
    plant_detail = api.plant_detail(plant_id, Timespan.day, datetime.date.today())
    print(plant_detail)

EDIT:// noch einen Nachtrag... wenn ich das abfragen möchte
gebe ich doch folgendes ein:

fhem@fhem-server:~/growatt_api_client$ python -m growatt 'user' 'passwort'
da bekomme ich folgendes:
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 163, in _run_module_as_main
    mod_name, _Error)
  File "/usr/lib/python2.7/runpy.py", line 111, in _get_module_details
    __import__(mod_name)  # Do not catch exceptions initializing package
  File "growatt/__init__.py", line 1, in <module>
    from enum import IntEnum
ImportError: No module named enum
fhem@fhem-server:~/growatt_api_client$
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 05 Januar 2021, 16:50:56
ich glaube ich habe es jetzt.
Ich muss die Daten aus dem Dummy holen, denn da schreibt er es ja rein, richtig.?

Und jetzt habe ich im log auch Werte stehen.
Hier das list:
Internals:
   CFGFN     
   FUUID      5ff489e1-f33f-a6c6-b363-8d94f804fe80661f
   NAME       Growatt
   NR         11191
   STATE      ???
   TYPE       dummy
   READINGS:
     2021-01-05 16:51:56   data_00_30      0
     2021-01-05 16:51:56   data_01_00      0
     2021-01-05 16:51:56   data_01_30      0
     2021-01-05 16:51:56   data_01_currentPower 0 W
     2021-01-05 16:51:56   data_01_isHaveStorage false
     2021-01-05 16:51:56   data_01_plantId 294937
     2021-01-05 16:51:56   data_01_plantMoneyText 1188.2 (€)
     2021-01-05 16:51:56   data_01_plantName PV Resse
     2021-01-05 16:51:56   data_01_todayEnergy 0.1 kWh
     2021-01-05 16:51:56   data_01_totalEnergy 990.2 kWh
     2021-01-05 16:51:56   data_02_00      0
     2021-01-05 16:51:56   data_02_30      0
     2021-01-05 16:51:56   data_03_00      0
     2021-01-05 16:51:56   data_03_30      0
     2021-01-05 16:51:56   data_04_00      0
     2021-01-05 16:51:56   data_04_30      0
     2021-01-05 16:51:56   data_05_00      0
     2021-01-05 16:51:56   data_05_30      0
     2021-01-05 16:51:56   data_06_00      0
     2021-01-05 16:51:56   data_06_30      0
     2021-01-05 16:51:56   data_07_00      0
     2021-01-05 16:51:56   data_07_30      0
     2021-01-05 16:51:56   data_08_00      0
     2021-01-05 16:51:56   data_08_30      0
     2021-01-05 16:51:56   data_09_00      0
     2021-01-05 16:51:56   data_09_30      0
     2021-01-05 16:51:56   data_10_00      0
     2021-01-05 16:51:56   data_10_30      0
     2021-01-05 16:51:56   data_11_00      0
     2021-01-05 16:51:56   data_11_30      0
     2021-01-05 16:51:56   data_12_00      0
     2021-01-05 16:51:56   data_12_30      36.82
     2021-01-05 16:51:56   data_13_00      19.73
     2021-01-05 16:51:56   data_13_30      31.68
     2021-01-05 16:51:56   data_14_00      28.37
     2021-01-05 16:51:56   data_14_30      6.22
     2021-01-05 16:51:56   data_15_00      0.84
     2021-01-05 16:51:56   data_15_30      0
     2021-01-05 16:51:56   data_16_00      0
     2021-01-05 16:51:56   data_16_30      0
     2021-01-05 16:51:54   jsonPlantData   {"data": [{"plantMoneyText": "1188.2 (€)", "plantName": "PV Resse", "plantId": "294937", "isHaveStorage": "false", "todayEnergy": "0.1 kWh", "totalEnergy": "990.2 kWh", "currentPower": "0 W"}], "totalData": {"currentPowerSum": "0 W", "CO2Sum": "0 T", "isHaveStorage": "false", "eTotalMoneyText": "1188.2 (€)", "todayEnergySum": "0.1 kWh", "totalEnergySum": "990.2 kWh"}, "success": true}

     2021-01-05 16:51:56   jsonPlantDetails {"plantData": {"plantMoneyText": "0.1 (€)", "plantName": "PV Resse", "plantId": "294937", "currentEnergy": "0.1 kWh"}, "data": {"15:00": "0.84", "05:00": "0", "11:30": "0", "12:00": "0", "07:30": "0", "08:30": "0", "10:30": "0", "09:00": "0", "03:00": "0", "14:00": "28.37", "16:00": "0", "13:30": "31.68", "02:00": "0", "01:00": "0", "12:30": "36.82", "04:00": "0", "15:30": "0", "06:30": "0", "07:00": "0", "05:30": "0", "10:00": "0", "09:30": "0", "08:00": "0", "03:30": "0", "11:00": "0", "14:30": "6.22", "01:30": "0", "04:30": "0", "06:00": "0", "13:00": "19.73", "00:30": "0", "16:30": "0", "02:30": "0"}, "success": true}

     2021-01-05 16:51:56   plantData_currentEnergy 0.1 kWh
     2021-01-05 16:51:56   plantData_plantId 294937
     2021-01-05 16:51:56   plantData_plantMoneyText 0.1 (€)
     2021-01-05 16:51:56   plantData_plantName PV Resse
     2021-01-05 16:51:56   success         1
     2021-01-05 16:51:56   totalData_CO2Sum 0 T
     2021-01-05 16:51:56   totalData_currentPowerSum 0 W
     2021-01-05 16:51:56   totalData_eTotalMoneyText 1188.2 (€)
     2021-01-05 16:51:56   totalData_isHaveStorage false
     2021-01-05 16:51:56   totalData_todayEnergySum 0.1 kWh
     2021-01-05 16:51:56   totalData_totalEnergySum 990.2 kWh
Attributes:
   room       HWR

was mich noch stört idt eben dieses hier, keine Ahnung was es ist
where <name> is a single device name, a list separated by comma (,) or a regexp. See the devspec section in the commandref.html for details.
2021.01.05 16:47:30 3: growattDatas: Usage: setreading <name> [YYYY-MM-DD HH:MM:SS] <reading> <value>

where <name> is a single device name, a list separated by comma (,) or a regexp. See the devspec section in the commandref.html for details.
2021.01.05 16:47:30 3: setReading Growatt jsonPlantDetails  : Usage: setreading <name> [YYYY-MM-DD HH:MM:SS] <reading> <value>
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 05 Januar 2021, 17:28:23
jetzt habe ich auch den Fehler raus mit "Please define Growatt"
Ich hatte gestern schon das Dummy angelegt.... heute nun nach dem er die ersten Daten abgeholt hat dachte ich da ich alle meine Dummy mit du_ vorn erstelle..
So also du_Growatt und in der ej2 habe ich
 du_Growatt:json.*:.\{.*}
eingegeben, aber er hat trotzdem noch gemeckert irgend ein Reading muss noch Growatt heißen ich habe es noch nicht geschnallt.
Aber somit lasse ich das erst einmal so un dschaue was er so die Tage macht, ist ja grad nicht so toll...

Hast du alle in eine Readinggroup gepackt..? weil im Dummy zeigt er ja nur 3 Fragezeichen


Ne Frage zum Growatt was hast du eingegeben bei Fondsertrag, bei mir steht da 1.2 ich habe nie etwas geändert.
Es kommt ja in einem reading

totalData_eTotalMoneyText 1188.2 (€)
das stimmt ja bei mir gar nicht, da ich nur 4 Platten habe
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 06 Januar 2021, 16:30:06
@ali77
Erst einmal von mir ein herzliches Dankeschön für deine Unterstützung

Nun zu meiner Frage zeigt er dir den gestrigen Tag an, ich habe in meinen Readings nur
data_01_todayEnergy
Weil bei Growatt in der App zeigt er mehrere Tage, aber die erscheinen bei mir nicht.
Wäre für die FTUI Anzeige in einem Popup für mehrere Tageswerte ganz interessant.
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: ali77 am 11 Januar 2021, 18:58:38
Ja das wäre interessant mit auszulesen. Bei mir ist es auch nicht dabei. Den Wert könnte man aber in einer Log mitschreiben und dann in einem Diagram anzeigen. Sicher gibt es die Growatt API her, nur das Python Script liest es nicht mit aus. Müsste man mal auseinander nehmen.
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 12 Januar 2021, 12:08:34
wenn ich wüßte wie das geht würde ich es probieren... was gut wäre so ein paar Tage in FTUI per Popup und eine Monatsansicht, dass haben andere schon nur eben Growatt noch nicht.
Man sieht ja welch ein Aufwand gebraucht wird um diese paar Parameter raus zu bekommen
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: huhu am 18 Mai 2021, 12:13:50
Hallo zusammen,

vielen Dank für die tolle Anleitung! Beziehe die Werte in FHEM, allerdings bekomme ich jeden Tag um 12Uhr +-5min einen Ertragswert Wert 0 oder nahe 0. Im Growatt Portal selbst stimmen die Angaben.

Jemand ne Idee was es sein könnte? Oder eine Idee, wie ich diesen einen Eintrag gegen 12Uhr nicht logge? (Disabled for Intervals des Logfiles wäre eine Möglicheit, allerdings schwankt es dafür zu stark)

Werte in FHEM:
2021-05-16_12:00:49 Growatt usr_data01_currentPower: 0
2021-05-17_11:53:41 Growatt usr_data01_currentPower: 1.13
2021-05-18_11:43:41 Growatt usr_data01_currentPower: 1.22
2021-05-18_11:38:40 Growatt usr_data01_currentPower: 1.11

Werte Growatt Portal heute:
11:40 582,3W
11:45 614,4W
11:50 497,6W



Ich verwende zwei Wechselrichter für verschiedene Himmelsrichtungen. Ist es hier möglich, die Werte eines einzelnen Datenloggers abzufragen? Das Script liest nur gesamt Energy und Leistung aus.

Viele Grüße

Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 18 Mai 2021, 12:46:59
bei mir gibt es diese Werte so gar nicht bei mir steht immer der Wert mit Zeitangabe.
data_05_30 0 2021-05-18 12:38:15
data_06_00 0 2021-05-18 12:38:15
data_06_30 15.58 2021-05-18 12:38:15
data_07_00 53.65 2021-05-18 12:38:15
data_07_30 70.15 2021-05-18 12:38:15
data_08_00 100.43 2021-05-18 12:38:15
data_08_30 178.37 2021-05-18 12:38:15
data_09_00 356.13 2021-05-18 12:38:15
data_09_30 675.02 2021-05-18 12:38:15
data_10_00 311.73 2021-05-18 12:38:15
data_10_30 450.55 2021-05-18 12:38:15
data_11_00 229.05 2021-05-18 12:38:15
data_11_30 579.75 2021-05-18 12:38:15
data_12_00 383.33 2021-05-18 12:38:15
data_12_30 782.1 2021-05-18 12:38:15

das mit dem Plot finde ich prima habe ich so noch garnicht dran gedacht
Woher rufst du den ab, dafür braucht es doch eine Log oder nimmst du die Plotdaten aus dem dummy
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: huhu am 19 Mai 2021, 09:32:48
Ich habe folgende UserReadings im Dummy angelegt:

usr_data01_totalEnergy:data_01_totalEnergy.* {ReadingsNum("Growatt","data_01_totalEnergy",0)}, usr_data01_todayEnergy:data_01_todayEnergy.* {ReadingsNum("Growatt","data_01_todayEnergy",0)}, usr_data01_currentPower:data_01_currentPower.* {ReadingsNum("Growatt","data_01_currentPower",0)}, usr_plantData_currentEnergy:plantData_currentEnergy.* {ReadingsNum("Growatt","plantData_currentEnergy",0)}
Die Readings werden dann ohne "Kwh" bzw. "W" in ein LogFile geschrieben aus dem man dann SVGs erstellen kann.


Diese fehlerhaften Werten häufen sich nun bei mir, im Growatt Portal sieht alles sauber aus, auch in der History.. Verstehe ich irgendwie nicht.
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: huhu am 22 Mai 2021, 17:25:17
Ich habe das Script bei mir nun entfernt und stattdessen den Growatt Adapter im IOBroker installiert. Funktioniert besser (hervorragend) und beinhaltet alle Werte aus dem Portal zur Anlage, jedem Datenlogger, Historische Werte usw.

1. ioBroker installieren
curl -sL https://iobroker.net/install.sh | bash -
2. ioBroker URL aufrufen und unter Adapter Growatt suchen und installieren
3. Growatt Zugangsdaten oder ApiKey (kann im Portal eingerichtet werden) im Adapter hinterlege.
4. Adapter unter Instanzen starten und warten bis Bubble grün wird
5. Room "ioB_OUT" in FHEM anlegen (es sein denn man möchte alles richtung ioBroker syncen.)
6. Prüfen ob TelnetPort / Verbindung in FHEM eingerichtet ist
7. Adapter "FHEM Connect" suchen, installieren und Zugangsdaten von FHEM eintragen
8. FHEM Connect unter Instanzen starten und warten bis Bubble grün wird
9. Unter Objekte anpassen:

fhem.0.info.Configurations.syncUpdate -> false (true= updatereading, false = changereading)

Werte die vom IOBroker Growatt Adapter nach FHEM gesendet werden sollen (vorher im Growatt Adapter schauen was man braucht und den Objektpfad kopieren):

fhem.0.info.Configurations.allowedIOBin
->

growatt.0.123456.devices.GAH0000000.deviceData.,growatt.0.123456.devices.GAH0000000.totalData.,growatt.0.123456.devices.GAH0000000.deviceData.,growatt.0.123456.devices.GAH0000000.totalData.,growatt.0.123456.plantData.,growatt.0.info,growatt.0.123456.devices.GAH0000000.historyLast.temp1,growatt.0.123456.devices.GAH0000000.historyLast.temp5,growatt.0.123456.devices.GAH0000000.historyLast.temp1,growatt.0.123456.devices.GAH0000000.historyLast.temp5

10. Für jedes Reading wird in FHEM automatisch ein Dummy (gruppiert) angelegt und taucht nach kurzer Zeit im Raum "ioB_IN" auf, man kann nun beliebig mit den Werten arbeiten /loggen usw.
In meinem Fall habe ich ein Notify angelegt, dass dann weitere Dummys mit Werten füllt. Die gesyncten Dummys verwende ich daher nur als "Datenquelle", wer weiß ob die sich nochmal ändern nach einem Update oder Resync ect.

11. Man kann den SyncInterval des Growatt Wechselrichters von 5 auf 1min reduzieren, siehe https://github.com/PLCHome/ioBroker.growatt
 
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 23 Mai 2021, 15:25:22
Super Information von dir und gleich mal ausprobiert und eigentlich alles soweit hinbekommen.
Eine ioBroker Instanz habe ich sowieso auf meinen Unraid Server im Docker laufen.

das Update im ioBroker habe ich auf "true" stehen und die Werte habe ich erstmal von dir so übernommen.
Kommt einiges rein in Fhem. Was hast du in Fhem in dem Raum "ioB_OUT" der ist bei mir noch leer

Mal ne Frage, in der Growatt App hat man ja den Wert Fondsertrag stehen, da habe ich nie etwas engestellt bisher.
Was hast du da eingetragen als Wert in Euro.
Der Wert wird eingelesen in dem dummy
formulaMoney
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: huhu am 23 Mai 2021, 17:07:04
In ioB_OUT habe ich in FHEM nur ein Dummy als Platzhalter angelegt. Der FHEM Connector synct in beide Richtungen zwischen IOBroker und FHEM. Alles was im Raum ioB_OUT angelegt wird, wird also richtung IOBroker gesynct. Du kannst den Raum auch löschen, dann würde komplett FHEM dorthin gespiegelt.

Dort habe ich 0.27 eingetragen, das ist der aktuelle kWh Strompreis wenn ich Ihn beziehe. Kann in der App irgendwo eingestellt werden. Wert für Co2, Kohle und Bäume müssen auch einmalig eingegeben werden, siehe Anhang. Die Werte habe ich gegoogelt, keine Ahnung ob das auch der Realität entspricht ;)
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 24 Mai 2021, 14:20:52
Nochmal eine Frage zum Status er hat ja automatisch die dummys eingerichtet.
Mein dummy
Zitat
growatt.0.294937.devices.QMB39212B4.totalData.mToday

zeigt heute garnichts und wird auch nicht aktualisiert  :-\
aktuell hat er aber eine Leistung von der PV Anlage. Ich sehe das er zum letzten mal in der Nacht um 1.58 Uhr in Fhem aktualisiert hat.
Im ioBroker sieht soweit alles OK aus, evtl. ist dort an den Syncwerten etwas nicht OK...?
onlySyncNAME state
SYNC - only sync device(s) NAME &nbsp;
onlySyncRoom state
SYNC - only sync device(s) if room exist (default: ioBroker,ioB_OUT) &nbsp;
onlySyncTYPE state
SYNC - only sync device(s) TYPE &nbsp;
syncUpdate state
FUNCTION - sync update FHEM reading admin.0/admin ok 2021-05-24 14:15:44.252 2021-05-24 14:15:44.252 false
syncUpdateIOBin state
FUNCTION - sync update allowedIOBin fhem.0/admin ok 2021-05-23 18:27:39.785 2021-05-23 13:45:30.798 true

EDIT:// ich habe den Growatt Adapter im ioBroker nochmals installiert, jetzt geht es wieder.
Mal schauen was morgen dann ist... keine Ahnung woran es liegt.
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 25 Mai 2021, 13:16:31
Also irgend etwas ist da faul...! weiß nur noch nicht was...!

mal ein dummy als Beispiel:
growatt.0.294937.devices.QMB39212B4.deviceData.pac
Leistung und wird nicht aktualisiert, der state ist seit 1.32 Uhr auf 0.
Wenn ich jetzt den ioBroker neu starte macht er wieder alles....
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: huhu am 25 Mai 2021, 13:44:03
Ich würde mal weiter eingrenzen, werden die Werte im IOBroker ebenfalls nicht aktualisiert oder nur in FHEM?
Sprich, überträgt der FHEM Connector keine Werte mehr, oder auch kommen im Growatt Adapter keine mehr an?

Im IOBroker gibt es auch ein Log, vielleicht hilft Dir das bei der Eingrenzung weiter.

Unschön, aber als Workaround könnte man den IO gegen 5Uhr einmal neustarten..
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 25 Mai 2021, 13:51:38
Ich werde das mal genauer untersuchen und hier berichten.
Ich arbeite gerade daran den ioBroker auf meinem Intel NUC im LXC laufen zu lassen und werde dann den mal benutzen, mal schauen ob sich etwas ändert.

Noch läuft der ioBroker auf meinem Unraid Server in einem Docker Container, evtl. liegt die Ursache dort.
Ich weiß jetzt auch nicht genau ob es evtl. am Unraid Server liegt und ob der vllt. in den Ruheszustand geht, aber die Container sollten davon eigenlich nicht betroffen sein.
Das log schuae ich mir mal an...
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: huhu am 26 Mai 2021, 10:38:29
Ich habe den Fehler heute auch zum ersten Mal gehabt...
In FHEM wurden die Werte letztmalig diese Nacht um 03:59:58h aktualisiert. Im IOBroker wurden die Werte im Growatt Adapter ebenfalls nicht aktualisiert, erst wieder, nachdem ich den Adapter disabled und enabled habe.

Ich vermute ganz stark, dass dies mit der Internetverbindung zusammen hängen kann. Um exakt 04:00:00 trenne ich via FHEM die Verbindung und mache einen Reconnect, damit die 24Std Zwangstrennung (die es in 2021 immer noch geben muss  ;D) immer zur gleichen Zeit stattfindet.

Guck doch mal bei Dir, wann die letzten Tage die Verbindung neu aufgebaut wurde.

Edit, ich hab jetzt mal nen automatischen Neustart eingerichtet (das Problem haben scheinbar ganz viele Adapter im IO.....). Experten Modus, dann kannst Du die Zeit eintragen. Besser wäre natürlich einen Trigger über FHEM, wenn sich die externe IP geändert hat dann starte Adapter neu. Aber schauen wir erstmal :)
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 26 Mai 2021, 11:33:15
Das ist bei mir eine andere Zeit, dass hatte ich erst vermutet, aber ich trenne durch die FB umd 3 Uhr.
Das bei mir der ioBroker stehen bleibt war immer 1.30 Uhr rum.

Aber ich habe jetzt mal den ioBroker auf einem Proxmox in einem LXC installiert und heute ist er durch gelaufen mit diesem ioBroker.
Ich vermute das mein Unraid Server sich hat schlafen gelegt.... das er dadurch abgebrochen hat.
Denn ich weiß das ich morgens den Server per WOL wecken muss weil auch dort mein Musikserver drauf läuft.

Aber ich werde die Tage noch alles beobachten, da mir die Informationen über den ioBoker so sehr gut gefallen und es ist kein gefrickel in Fhem welches ich vorher veranstalten mußte.

Jetz muss ich mir nur nochmal die relevanten Werte raus suchen die ich gerne sehen möchte, ich denke auch das dieses ein einziges DOIF machen könnte.
Werde mich damit mal beschäftigen und berichten denn soviel Werte braucht es ja nicht.

Du sagtest ja das du dafür nochmals dummys einsetzt und schreibst es dann wohl in Logfiles, denn die habe ich noch nicht... dann eben daraus ein Plot erstellen für Tages-, Monats- und Jahreswerte würde komplett reichen evtl. noch die aktuelle Leistung.
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 29 Mai 2021, 12:38:23
hier also nochmal meine Rückmeldung, jetzt da der ioBroker auf einem Intel-NUC mit Proxmox im LXC arbeitet, läuft alles hervorragend.
Daten kommen ohne Probleme keine Aussetzer.

Werde mich jetzt mal dran machen und das irgendwie in Fhem umsetzen damit ich eine schöne grafische Darstellung habe. so wie du auch mit Plot.
Welche Werte stellst du monatlich dar..?
Wäre mal interessant solch ein Plot mit den Tagen im Monat zu haben, damit man jeden Tag im Vergleich sieht... ich habe ehrlich gesagt noch sogut wie keine Erfahrung mit Plots, aber es gefällt mir.
Kannst mir ja gerne mal ein Beispiel zeigen...
Danke
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: huhu am 29 Mai 2021, 22:12:32
Bisher läufts bei mir auch prima mit dem automatischen Neustart des Adapters!

Aktuell speichere ich folgende Werte ganztägig im Log um diese Grafisch anzuzeigen (Dummys haben unterschiedliche min-INtervale, damit nicht jede Minute geloggt wird):
Gesamtleistung
Leistung SüdOst
Leistung Nordwest
Temperatur Wechselrichter SO
Temperatur Wechselrihter NW

Ein weiteres Log befülle ich kurz vor Mitternacht und kurz nach Mitternacht mit den Werten:
(Log = disabledforInterval 00:04-23:56)
2021-05-28_23:57:02 D_pv_kwhgesamt 110.9
2021-05-28_23:57:02 D_pv_kwhheuteso 5.5
2021-05-28_23:57:02 D_pv_kwhheutenw 5.4
2021-05-28_23:57:02 D_pv_kwhheute 10.9
2021-05-28_23:57:02 D_pv_kwhmonatso 67.4
2021-05-28_23:57:02 D_pv_kwhmonatnw 41.6
2021-05-28_23:57:02 D_pv_kwhmonat 109
2021-05-28_23:57:02 D_pv_kwhso 69.3
2021-05-28_23:57:02 D_pv_kwhnw 41.6
2021-05-28_23:57:02 D_pv_euro 29.9
2021-05-28_23:57:02 D_pv_euroso 18.7
2021-05-28_23:57:02 D_pv_euronw 11.2
2021-05-28_23:57:02 D_pv_eurotoday 3
2021-05-28_23:57:02 D_pv_eurotodayso 1.5
2021-05-28_23:57:02 D_pv_eurotodaynw 1.5
2021-05-29_00:00:08 D_pv_kwhgesamt 110.9
2021-05-29_00:00:08 D_pv_kwhheuteso 5.5
2021-05-29_00:00:08 D_pv_kwhheutenw 0
2021-05-29_00:00:08 D_pv_kwhheute 5.5
2021-05-29_00:00:08 D_pv_kwhmonatso 67.4
2021-05-29_00:00:08 D_pv_kwhmonatnw 41.6
2021-05-29_00:00:08 D_pv_kwhmonat 109
2021-05-29_00:00:08 D_pv_kwhso 69.3
2021-05-29_00:00:08 D_pv_kwhnw 41.6
2021-05-29_00:00:08 D_pv_euro 29.9
2021-05-29_00:00:08 D_pv_euroso 18.7
2021-05-29_00:00:08 D_pv_euronw 11.2
2021-05-29_00:00:08 D_pv_eurotoday 1.5
2021-05-29_00:00:08 D_pv_eurotodayso 1.5
2021-05-29_00:00:08 D_pv_eurotodaynw 0

Aktuell nutze ich davon noch nicht alles für Plots, aber zumindest sind die Werte schonmal da. Mache das ganze über ein Notify (geht sicher elagenter, doch so funktioniert es prima):
growatt.0.123456.devices.GA0000000H.deviceData.lastUpdateTime.*|growatt.0.123456.devices.GA0000001.deviceData.lastUpdateTime.*
{
  my $pacnw=Value("growatt.0.123456.devices.GA0000000H.deviceData.pac");
  my $pacso=Value("growatt.0.123456.devices.GA0000001.deviceData.pac");
  my $pacgesamt=$pacso+$pacnw;

  my $temp1so=Value("growatt.0.123456.devices.GA0000001.historyLast.temp1");
  my $temp5so=Value("growatt.0.123456.devices.GA0000001.historyLast.temp5");
  my $tempso=round($temp1so+$temp5so)/2;
  my $temp1nw=Value("growatt.0.123456.devices.GA0000000H.historyLast.temp1");
  my $temp5nw=Value("growatt.0.123456.devices.GA0000000H.historyLast.temp5");
  my $tempnw=round($temp1nw+$temp5nw)/2;

  my $kwhheuteso=Value("growatt.0.123456.devices.GA0000001.deviceData.eToday");
  my $kwhheutenw=Value("growatt.0.123456.devices.GA0000000H.deviceData.eToday");
  my $kwhheute=$kwhheuteso+$kwhheutenw;

  my $kwhmonatso=Value("growatt.0.123456.devices.GA0000001.deviceData.eMonth");
  my $kwhmonatnw=Value("growatt.0.123456.devices.GA0000000H.deviceData.eMonth");
  my $kwhmonat=$kwhmonatso+$kwhmonatnw;

  my $kwhtotalso=Value("growatt.0.123456.devices.GA0000001.deviceData.eTotal");
  my $kwhtotalnw=Value("growatt.0.123456.devices.GA0000000H.deviceData.eTotal");
  my $kwhtotal=$kwhtotalso+$kwhtotalnw;

  my $euroso=Value("growatt.0.123456.devices.GA0000001.totalData.mTotal");
  my $euronw=Value("growatt.0.123456.devices.GA0000000H.totalData.mTotal");
  my $euro=$euroso+$euronw;

  my $eurotodayso=Value("growatt.0.123456.devices.GA0000001.totalData.mToday");
  my $eurotodaynw=Value("growatt.0.123456.devices.GA0000000H.totalData.mToday");
  my $eurotoday=$eurotodayso+$eurotodaynw;

  my $kwhgesamt=Value("growatt.0.123456.plantData.eTotal");

  fhem("set D_pv_pacgesamt $pacgesamt; set D_pv_pacso $pacso; set D_pv_pacnw $pacnw; set D_pv_tempso $tempso; set D_pv_tempnw $tempnw; set D_pv_kwhgesamt $kwhgesamt; set D_pv_kwhheuteso $kwhheuteso; set D_pv_kwhheutenw $kwhheutenw; set D_pv_kwhheute $kwhheute; set D_pv_kwhmonatso $kwhmonatso; set D_pv_kwhmonatnw $kwhmonatnw; set D_pv_kwhmonat $kwhmonat; set D_pv_kwhso $kwhtotalso; set D_pv_kwhnw $kwhtotalnw; set D_pv_euro $euro; set D_pv_euroso $euroso; set D_pv_euronw $euronw; set D_pv_eurotoday $eurotoday; set D_pv_eurotodayso $eurotodayso; set D_pv_eurotodaynw $eurotodaynw");

Die Plots von heute sind im Anhang, ich weiß allerdings nicht, warum der Chart PV Gesamtertrag so komisch angezeigt wird (die kleine Spitze am Ende ist der eigentliche Wert)..


Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 31 Mai 2021, 14:06:10
OK, da muss ich nochmal in mich gehen, denn ich bekomme mit meinem Growatt wohl nicht die Werte so wie du sie bekommst.
Ich habe den Growatt 1500 S mit LAN Stick in Betrieb.

Temperatur vom Wechselrichter bekomme ich z.B. gar nicht

Das wichtigste ist wohl dieses vom ioBroker an Werten, denn viel mehr kommt da nicht bei mir:
growatt.0.123456.devices.QMxxxxxxB4.totalData

eToday 4.7
eTotal 1494.3
mToday 1.3
mTotal 403.5
mUnitText €
plantId 2xxxxx

heißen auch ganz anders als bei dir, gut das NW und SO ist mir schon klar weil du zwei verscheiden ausgerichtete Anlagen hast.
Und die Werte wie die Anlage heißt und weitere Werte ist bei mir jetzt nicht so interessant.
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: huhu am 31 Mai 2021, 15:00:24
Die Daten befinden sich im IO in verschiedenen "Ordnern"

growatt.0.123456.devices.GA0000000H.historyLast
growatt.0.123456.devices.GA0000000H.deviceData
growatt.0.123456.plantData

Du müsstest jeden Pfad Richtung FHEM syncen, damit diese dort vorhanden sind
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 31 Mai 2021, 15:24:19
aha, den ersten habe ich nämlich nicht und da ist bei mir auch die Temperatur "temperature" drin  ;)
die anderen beiden habe ich aber.

Habe ich jetzt mal so eingetragen damit das auch kommt und ist auch immer noch stabil, keine Abbrüche
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 01 Juli 2021, 16:11:00
also hier nochmal ein Rückmeldung von mir war jetzt ein paar Tage nicht da und stelle fest das ich momentan auch keine Daten mehr bekomme. Der letzte Stand war der 23.06 im ioBroker.
Muss mal schauen was ich da jetzt mache, habe das Plugin im ioBroker nochmal gestartet aber es kommt trotzdem nichts.
Titel: Antw:Growatt Wechselrichter / ShineWiFi einbinden
Beitrag von: moonsorrox am 02 Juli 2021, 14:07:33
Ich habe nun mal im ioBroker auch die Zeit eingetragen, da er hauet Nacht wieder stehen geblieben ist.
Werde mal beobachten was morgen passiert.
Was ich nicht verstehe ist das es bis zum 23.06 gut funktioniert hat und nun eben die Tage bis jetzt garnicht mehr.