Growatt Wechselrichter / ShineWiFi einbinden

Begonnen von chello93, 16 März 2019, 17:30:07

Vorheriges Thema - Nächstes Thema

whirly85

Hi,

ja, ich nutze die Variante mit "ej2". Ich wollte mir es sparen, dass ich extra den iobroker installieren muss.
Du nutzt den iobroker und übergibst es dann an FHEM?

Danke Dir

moonsorrox

ja ich habe den so oder so auf dem Proxmox in einem LXC am laufen.
Da ist das sehr einfach, nur das Modul für Growatt installieren kurz die API oder User mit Kennwort eingeben und du kannst bestimmen welche Daten er an Fhem weiterleitet.
Ist ja hier auch beschrieben.

Aber trotzdem ist es so das die Chinesen etwas verändert haben und das muss man dann in der Installation/ej2 ändern, aber da kenne ich mich nicht mit aus.
Im ioBroker hat der Modulentwickler ein paar Tage gebraucht und es gefixt.
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

whirly85

Hi,

habs jetzt auch auf nem iobroker. Funktioniert wirklich gut. Hoffentlich ändern die Chinesen nicht so bald wieder was an der Seite  ;)

Danke

huhu

Bei mir funktioniert das Modul seit einigen Tagen nicht mehr richtigt.
Letzten Monat habe ich auch einen neuen TokenKey von Growatt erhalten, im Modul melde ich mich aber mit Benutzer+Passwort an.

Funktioniert es bei euch?

moonsorrox

Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

whirly85

Läuft bei mir derzeit auch, hatte aber letzte Woche ein paar Verbindungsabbrüche. Da kamen ein paar Werte nicht rein. Dann gab es aber das Update im iobroker auf 1.1.16 und dann gings. Und ich sehe gerade, dass es jetzt version 1.1.17 gibt

uron

#51
Mache gerade meine allerersten Gehversuche mit dem ioBroker (neu installiert auf RasPi 4, Vers. 1.1.17) und habe bereits den Growatt-Adapter installiert (die Webversion ohne ioBroker klappt übrigens einwandfrei).
Unter "Adapter" erscheint Growatt mit schwarzer Cloud und folgender Anmerkung: "Der Adapter erfordert den spezifischen Cloudzugriff für diese Geräte / Dienste"
Angemeldet habe ich mich mit Username und PW.
Nun kann man sich ja auch einen Key zuschicken lassen (Energy/Plantmanagement/Operating Tools/Share Plant), jedoch erreicht mich keine Nachricht in meinem MailAccount.
Was ist zu tun, um siesen spezifischen Cloud-Zugriff zu realisieren?

Mein späteres Ziel ist, die PV-Visualisierung des MOD 5000TL3-XH per VIS oder in meinem Tablet-UI bei FHEM zu bewerkstelligen.

p.s.: im Log erscheint "Growatt exception: AxiosError: Request failed with status code 502"

Update um 16:50 Uhr:
Mittlerweile konnte ich mir den Key zuschicken lassen - zumindest wurde meine Emailadresse akzeptiert - ein Key ist aber noch nicht angekommen, auch nicht im Spam-Ordner!
Raspberry Pi  fhem  FHEMobile  CUL  FS20-, HM-, Intertechno-, AVM- und Shelly-Aktoren, Vitoconnect 100, Vitocal 200-S, Optolink, FTUI auf iPad, FTUI auf iPhone, Stromzähler von Powerfox, Wechselrichter Growatt MIN 4600 TL-XH, RasPi ioBroker

whirly85

Ich habe es immer über Name und Passwort gemacht. Aber bei mir ging in letzter Zeit der Adapter im iobroker nicht richtig. Lag aber nicht am iobroker oder am Adapter, sondern am chinesischen Server. Hatten einige das Problem mit Fehler Code 588. Ich habe mir jetzt den "Grott" installiert. Hier auf Github zu finden: https://github.com/johanmeijer/grott

Damit sendet jetzt mein Stick an meinen Raspi per MQTT und von dort dann an die Chinesen. Seitdem läuft es deutlich stabiler. Im iobroker ist zwar mittlerweile Version 1.1.19 vorhanden und soll nun auch gehen, laut Forum gibt es immer mal wieder Probleme mit den Chinesen :-) Siehe hier: https://forum.iobroker.net/topic/36474/test-adapter-growatt-v1-0-0/206

Grüße

moonsorrox

#53
habe ich auch immer mal wieder
Growatt exception: AxiosError: Request failed with status code 588

ich habe noch die Version 1.1.17 ein update wird bisher nicht automatisch angeboten kommt sicher noch

Werde mir mal den Grott ansehen, ob der auch in eine VM oder LXC unter Proxmox die Daten senden kann.
Ja laut Forum geht das wohl habe ich gerade gelesen.

Nochmal ne Frage zum installieren des Grott ich habe jetzt nicht gefunden wie der von Git direkt installiert wird und in welches Verzeichnis der genau muss.
Wie und wo hast du ihn installiert..?
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

whirly85

Ist ein Python-script, dass ich auf einem Raspi "installiert" habe. Das läuft dann als Dienst im Hintergrund.

Anleitung dazu ist auf der GitHub-Seite, oben im Wiki bei "@ First time installation".


Nighthawk

Nur zur Info, es existiert auch ein sehr einfacher, günstiger und vor Allem Cloudfreier Weg die Daten in FHEM zu bekommen.

Alles was man dazu braucht ist entweder den Wifi Stick den man umflasht, oder ein ESP8266 der per USB Kabel an den WR gesteckt wird.

Die SW kommt von hier: https://github.com/otti/Growatt_ShineWiFi-S

Und die Daten kommen per MQTT ins FHEM:

defmod Solaranlage MQTT2_DEVICE
attr Solaranlage devicetopic energy/solar
attr Solaranlage event-on-change-reading InputPower:0.1,InverterStatus:.*,InverterTemperature:.*,OutputPower:1 PV1.*:0.1,PVEnergyTotal.*:0.1,TodayGenerateEnergy:0.1,TotalGenerateEnergy:0.1,TemperatureInsideIPM:0.1
attr Solaranlage group PV
attr Solaranlage readingList $DEVICETOPIC:.* { json2nameValue($EVENT) }
attr Solaranlage room 20_Verbrauchsmessung
attr Solaranlage sortby 1
attr Solaranlage stateFormat Aktuelle Leistung: OutputPower W | heute erzeugte Energie TodayGenerateEnergy kWh

setstate Solaranlage Aktuelle Leistung: 399.3 W | heute erzeugte Energie 0.4 kWh
setstate Solaranlage 2022-11-08 10:13:34 ACPowerToGrid 0
setstate Solaranlage 2022-11-08 10:13:34 ACPowerToGridTotal 0
setstate Solaranlage 2022-11-08 10:13:34 ACPowerToUser 0
setstate Solaranlage 2022-11-08 10:13:34 ACPowerToUserTotal 0
setstate Solaranlage 2022-11-08 10:13:34 BatteryState 0
setstate Solaranlage 2022-11-08 10:13:34 BatteryTemperature 0
setstate Solaranlage 2022-11-08 10:13:34 BatteryVoltage 0
setstate Solaranlage 2022-11-08 10:13:34 BoostTemperature 0
setstate Solaranlage 2022-11-08 10:13:34 ChargeEnergyToday 0
setstate Solaranlage 2022-11-08 10:13:34 ChargeEnergyTotal 0
setstate Solaranlage 2022-11-08 10:13:34 ChargePower 0
setstate Solaranlage 2022-11-08 10:13:34 Cnt 2407
setstate Solaranlage 2022-11-08 10:13:34 DischargeEnergyToday 0
setstate Solaranlage 2022-11-08 10:13:34 DischargeEnergyTotal 0
setstate Solaranlage 2022-11-08 10:13:34 DischargePower 0
setstate Solaranlage 2022-11-08 10:13:34 EnergyToGridToday 0
setstate Solaranlage 2022-11-08 10:13:34 EnergyToGridTotal 0
setstate Solaranlage 2022-11-08 10:13:34 EnergyToUserToday 0
setstate Solaranlage 2022-11-08 10:13:34 EnergyToUserTotal 0
setstate Solaranlage 2022-11-08 10:13:34 GridFrequency 50
setstate Solaranlage 2022-11-08 10:13:34 INVPowerToLocalLoad 0
setstate Solaranlage 2022-11-08 10:13:34 INVPowerToLocalLoadTotal 0
setstate Solaranlage 2022-10-26 19:54:01 IODev mqtt2_client
setstate Solaranlage 2022-11-08 10:13:34 InputPower 407.4
setstate Solaranlage 2022-11-08 10:13:34 InverterStatus 1
setstate Solaranlage 2022-11-08 10:13:34 InverterTemperature 32
setstate Solaranlage 2022-11-08 10:13:34 L1ThreePhaseGridOutputCurrent 1.9
setstate Solaranlage 2022-11-08 10:13:34 L1ThreePhaseGridOutputPower 399.9
setstate Solaranlage 2022-11-08 10:13:34 L1ThreePhaseGridVoltage 226.4
setstate Solaranlage 2022-11-08 10:13:34 L2ThreePhaseGridOutputCurrent 0
setstate Solaranlage 2022-11-08 10:13:34 L2ThreePhaseGridOutputPower 0
setstate Solaranlage 2022-11-08 10:13:34 L2ThreePhaseGridVoltage 0
setstate Solaranlage 2022-11-08 10:13:34 L3ThreePhaseGridOutputCurrent 0
setstate Solaranlage 2022-11-08 10:13:34 L3ThreePhaseGridOutputPower 0
setstate Solaranlage 2022-11-08 10:13:34 L3ThreePhaseGridVoltage 0
setstate Solaranlage 2022-11-08 10:13:34 LocalLoadEnergyToday 0
setstate Solaranlage 2022-11-08 10:13:34 LocalLoadEnergyTotal 0
setstate Solaranlage 2022-11-08 10:13:34 Mac 24:62:AB:09:48:AC
setstate Solaranlage 2022-11-08 10:13:34 OutputPower 399.3
setstate Solaranlage 2022-11-08 10:13:34 PV1EnergyToday 0.5
setstate Solaranlage 2022-11-08 10:13:34 PV1EnergyTotal 39
setstate Solaranlage 2022-11-08 10:13:34 PV1InputCurrent 6.1
setstate Solaranlage 2022-11-08 10:13:34 PV1InputPower 407.4
setstate Solaranlage 2022-11-08 10:13:34 PV1Voltage 70
setstate Solaranlage 2022-11-08 10:13:34 PV2EnergyToday 0
setstate Solaranlage 2022-11-08 10:13:34 PV2EnergyTotal 0
setstate Solaranlage 2022-11-08 10:13:34 PV2InputCurrent 0
setstate Solaranlage 2022-11-08 10:13:34 PV2InputPower 0
setstate Solaranlage 2022-11-08 10:13:34 PV2Voltage 0
setstate Solaranlage 2022-11-08 10:13:34 PVEnergyTotal 39
setstate Solaranlage 2022-11-08 10:13:34 SOC 0
setstate Solaranlage 2022-11-08 10:13:34 TWorkTimeTotal 787641.5
setstate Solaranlage 2022-11-08 10:13:34 TemperatureInsideIPM 32
setstate Solaranlage 2022-11-08 10:13:34 TodayGenerateEnergy 0.4
setstate Solaranlage 2022-11-08 10:13:34 TotalGenerateEnergy 38.3
setstate Solaranlage 2022-11-02 08:04:29 json2nameValueErrorText json2nameValue: no closing } found
setstate Solaranlage 2022-11-02 08:04:29 json2nameValueInput {"InverterStatus":1,"InputPower":115.3,"PV1Voltage":71.4,"PV1InputCurrent":1.6,"PV1InputPower":115.3,"PV2Voltage":0,"PV2InputCurrent":0,"PV2InputPower":0,"OutputPower":113,"GridFrequency":50.02,"L1ThreePhaseGridVoltage":222.9,"L1ThreePhaseGridOutputCurrent":1.4,"L1ThreePhaseGridOutputPower":115.7,"L2ThreePhaseGridVoltage":0,"L2ThreePhaseGridOutputCurrent":0,"L2ThreePhaseGridOutputPower":0,"L3ThreePhaseGridVoltage":0,"L3ThreePhaseGridOutputCurrent":0,"L3ThreePhaseGridOutputPower":0,"TodayGenerateEnergy":0,"TotalGenerateEnergy":28.7,"TWorkTimeTotal":580932.5,"PV1EnergyToday":0,"PV1EnergyTotal":29.2,"PV2EnergyToday":0,"PV2EnergyTotal":0,"PVEnergyTotal":29.2,"InverterTemperature":19.3,"TemperatureInsideIPM":19.3,"BoostTemperature":0,"DischargePower":0,"ChargePower":0,"BatteryVoltage":0,"SOC":0,"ACPowerToUser":0,"ACPowerToUserTotal":0,"ACPowerToGrid":0,"ACPowerToGridTotal":0,"INVPowerToLocalLoad":0,"INVPowerToLocalLoadTotal":0,"BatteryTemperature":0,"BatteryState":0,"EnergyToUserToday":0,"EnergyToUserTotal":0,"EnergyToGridToday":0,"EnergyToGrid�


Parallel hat man auch eine rudimentäte Webansicht, siehe Bild.



minierm

#56
Hallo zusammen,
es ist auch möglich, ohne Flashen oder Daten mit grott abzufangen und ohne Cloud Anmeldung, die aktuellen Werte aus der Cloud zu erhalten.

       
  • PlantID ermitteln
  • HTTPMOD Device anlegen

       
  • Auf dem Server anmelden
  • Wechsel zu Energy/Plant Management
  • Mittels Developer Tools den Netzwerkverkehr analysieren und (nach Refresh der Seite) eine Anfrage mit dem Parameter "plantId=" finden (Firefox: Typ "XHR").
  • FHEM HTTPMOD device anlegen. Dafür gibt es zwei Optionen:

    •       
    • getPlantData: Statistik und aktueller Wert in kW auf eine Nachkommastelle gerundet (min. 0,1 kW)
    • getInvDayChart: Genaue Werte des Tages in W auf eine Nachkommastelle gerundet
Hinweis:

       
  • Da der letzte Chartwert ggf. nicht Null wird habe ich noch einen Watchdog eingerichtet, der den aktuellen Wert nach 16 Minuten ohne Änderung auf "-" setzt.
  • Die ermittelte PlantID muss als Requestdata ("Post") übermittelt werden
getPlantData

defmod Strom_Balkon HTTPMOD https://server.growatt.com/singlePage/getPlantData
attr Strom_Balkon requestData plantId=<YourPlantID>
attr Strom_Balkon alias Photovoltaik
attr Strom_Balkon enableControlSet 1
attr Strom_Balkon event-on-change-reading .*
attr Strom_Balkon extractAllJSON 1
attr Strom_Balkon group Strom
attr Strom_Balkon icon measure_photovoltaic_inst
attr Strom_Balkon room Strom
attr Strom_Balkon showBody 0
attr Strom_Balkon showError 1
attr Strom_Balkon stateFormat Aktuell: obj_pac kW\
Heute: obj_eToday kWh\
Monat: obj_eMonth kWh\
Gesamt: obj_eTotal kWh
attr Strom_Balkon timeout 10


getInvDayChart

defmod Strom_BKW_Aktuell HTTPMOD https://server.growatt.com/singlePage/inv/getInvDayChart
attr Strom_BKW_Aktuell requestData plantId=<YourPlantID>&date=%%datetoday%%
attr Strom_BKW_Aktuell alias BKW
attr Strom_BKW_Aktuell comment deleteReading Strom_BKW_Aktuell LAST_ERROR
attr Strom_BKW_Aktuell enableControlSet 1
attr Strom_BKW_Aktuell event-on-change-reading PowerAll,PowerCurrent,PowerLast
attr Strom_BKW_Aktuell group Dash_Strom,Strom
attr Strom_BKW_Aktuell replacement01Mode expression
attr Strom_BKW_Aktuell replacement01Regex %%datetoday%%
attr Strom_BKW_Aktuell replacement01Value {strftime('%F', localtime())}
attr Strom_BKW_Aktuell reading01Name PowerAll
attr Strom_BKW_Aktuell reading01Regex "pac":(.*)}}
attr Strom_BKW_Aktuell reading02Name PowerLast
attr Strom_BKW_Aktuell reading02RecombineExpr my $val = join ",", @matchlist;; $val =~ /.*,([1-9]\d*(?:\.\d*)*)(,0)*?/;; $1
attr Strom_BKW_Aktuell reading02Regex "pac":(.*)
attr Strom_BKW_Aktuell room Strom
attr Strom_BKW_Aktuell showBody 0
attr Strom_BKW_Aktuell showError 1
attr Strom_BKW_Aktuell stateFormat PowerCurrent
attr Strom_BKW_Aktuell userReadings PowerCurrent:PowerLast.* {ReadingsNum("$NAME","PowerLast",0)}


Kleine erneute Korrektur für Strom_BKW_Aktuell getInvDayChart, da manchmal das Array mit Nullen gefüllt wird, jetzt auch oben eingearbeitet:

attr Strom_BKW_Aktuell event-on-change-reading PowerAll,PowerCurrent,PowerLast
attr Strom_BKW_Aktuell reading01RecombineExpr my $val = join ",", @matchlist;; $val =~ /.*,([1-9]\d*(?:\.\d*)*)(,0)*?/;; $1


Nochmalige, komplette Umstellung aufgrund falscher Sortierung der Daten:

attr Strom_BKW_Aktuell reading01Name PowerAll
attr Strom_BKW_Aktuell reading01Regex "pac":(.*)}}
attr Strom_BKW_Aktuell reading02Name PowerLast
attr Strom_BKW_Aktuell reading02RecombineExpr my $val = join ",", @matchlist;; $val =~ /.*,([1-9]\d*(?:\.\d*)*)(,0)*?/;; $1
attr Strom_BKW_Aktuell reading02Regex "pac":(.*)



defmod at_BKW_Reset watchdog Strom_BKW_Aktuell:PowerAll:.* 00:16 Strom_BKW_Aktuell:PowerAll:.* setreading Strom_BKW_Aktuell PowerCurrent -
attr at_BKW_Reset autoRestart 1
attr at_BKW_Reset regexp1WontReactivate 0
attr at_BKW_Reset regexp2WillReactivate 1

moonsorrox

ich habe das auch mal nachgestellt, funktioniert super
Was mir nicht ganz klar ist
ZitatgetInvDayChart

da erscheint bei mir nur eine Zahl, das ist die gerade aktuelle Produktion mit 4 Stellen hinter dem Komma, habe ich was übersehen.?
BKW 350.94998
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

minierm

Kleine Korrektur für Strom_BKW_Aktuell getInvDayChart, da manchmal das Array mit Nullen gefüllt wird:
attr Strom_BKW_Aktuell event-on-change-reading PowerAll,PowerCurrent,PowerLast
attr Strom_BKW_Aktuell reading01JSON obj.pac
attr Strom_BKW_Aktuell reading01Name PowerLast
attr Strom_BKW_Aktuell reading01RecombineExpr my $val = join ",", @matchlist;; $val =~ /.*,([1-9]\d*(?:\.\d*)*)(, 0)*?/;; $1

minierm

Zitat von: moonsorrox am 14 Dezember 2022, 13:16:36
ich habe das auch mal nachgestellt, funktioniert super
Was mir nicht ganz klar ist
da erscheint bei mir nur eine Zahl, das ist die gerade aktuelle Produktion mit 4 Stellen hinter dem Komma, habe ich was übersehen.?
BKW 350.94998
Jein, nur mit der Chart-API bekommt man die Werte in Watt statt kW. Die Tagesdaten sind in dem Reading PowerAll zusammengefasst (das Recombine kann man aber auch in einem anderen Reading weglassen) und ich nutze das letzte Element, das nicht ", 0" ist. Ich logge aber PowerCurrent um mein eigenes SVG zu erstellen:
defmod Log_Strom_Balkon FileLog ./log/Strom_Balkon-%Y-%m.log Strom_BKW_Aktuell.*PowerCurrent.*