Modbus Zugriff für Fronius Symo

Begonnen von Roger, 03 Januar 2016, 19:51:56

Vorheriges Thema - Nächstes Thema

vitolinker

Ich würde entweder das Fronius Modul verwenden:
Fronius_Modbus
Habe einen Symo im Einsatz und es funktioniert.

Schöner finde ich per HTTPMod die Werte abzufragen, geht auch schneller:

defmod WR_Status HTTPMOD http://192.168.xxx.xxx/solar_api/v1/GetPowerFlowRealtimeData.fcgi 59
attr WR_Status extractAllJSON 1
attr WR_Status getHeader1 Content-Type: application/json
attr WR_Status getHeader2 Accept: */*
attr WR_Status getURL http://192.168.xxx.xxx/solar_api/v1/GetPowerFlowRealtimeData.fcgi


Forstling

OK, viele Wege führen nach Rom.

Jetzt habe ich mich mal in die API-Dokumentation reingelesen und so noch die anderen Daten über HTTPMOD abgefragt. Mal schauen, ob das stabiler läuft als das API-Modul.
Zumindest sind jetzt recht viele Daten vorhanden. Das sollten eigentlich alle sein.

Dennoch funktioniert die Modbusanbindung noch nicht. Und ich denke das ich die Brauche.
Ich will nicht nur die Daten lesen. Sondern auch den Inverter steuern.

das geht halt nur über Modbus.


dvbhannes

Hi Forstling, was willst Du am Gen24 steuern???
Lade- und Entladen der BYD-Batterie oder so???
Gruß
dvbhannes

Forstling

Zitat von: dvbhannes am 15 Januar 2023, 20:38:30
Hi Forstling, was willst Du am Gen24 steuern???
Lade- und Entladen der BYD-Batterie oder so???
Gruß
dvbhannes

Richtig genau das Will ich.

1. Netzladen der Batterie an schlechten Tagen verhindern.
2. im Sommer früh wenig laden Mittag viel laden (Wetterabhängig)
3. wenn es sich lohnt flexible Tarife (Tibber) nutzen. (günstig laden, wenn teuer Batterie nutzen)
4. mal schauen was noch sinn macht.

mediastudio

Hallo, ich bin seit Tagen daran richtige Daten aus meinem Wechselrichter zu bekommen.
Ich habe folgendes als Definition gemacht
################################ 
### Fronius symo gen24 8.0 plus
################################
define gen24 ModbusAttr 1 10 192.168.10.49:502 TCP

meine Frage, muss ich hier etwas anderes definieren?
Brauche ich noch diese Module?

- Fronius Basismodul:      98_Fronius_Modbus.pm
- MPPT Tracker (Strings):  98_Fronius_Modbus_MPPT
- Fronius String Combiner: 98_Fronius_Modbus_SC403.pm
- Fronius Energiezähler:   98_Fronius_Modbus_Meter.pm

in meiner FHEM .pm sind folgende Module:
98_Modbus.pm
98_ModbusAttr.pm
98_ModbusElsnerWS.pm
98_ModbusSET.pm
98_ModbusTrovis5576.pm

Unter 98_Fronius find ich nichts.
Kann mir da jemand weiter helfen damit ich richtige Werte vom Wechselrichter bekomme.

Hier mal meine Testparameter, ich bekomme so alle 10 Sekunden neue Daten, aber wohl noch nichts sagend.

################################ 
### Fronius symo gen24 8.0 plus
################################
define gen24 ModbusAttr 1 10 192.168.10.49:502 TCP
#attr gen24 dev-h-defExpr $val & 0x1FFFFFFF
attr gen24 dev-h-defLen 2
attr gen24 dev-h-defPoll 1
#attr gen24 dev-h-defUnpack N
#attr gen24 devStateIcon ok:on fault:message_attention warnings:message_attention
attr gen24 room FRONIUS
attr gen24 alias Fronius symo gen24 8.0 plus
attr gen24 obj-h40109-format %.2f
attr gen24 obj-h40109-len 2
attr gen24 obj-h40109-reading Temperatur
attr gen24 obj-h40109-unpack f>
attr gen24 obj-h40344-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
attr gen24 obj-h40344-len 1
attr gen24 obj-h40344-reading BatteryDischargeWatt
attr gen24 obj-h40344-unpack n
attr gen24 obj-h40073-expr ($val  & 0x1FFFFFFF ) / 1000
attr gen24 obj-h40073-reading ACCurrentPhaseA
attr gen24 obj-h40075-expr ($val  & 0x1FFFFFFF ) / 1000
attr gen24 obj-h40075-reading ACCurrentPhaseB
attr gen24 obj-h40077-expr ($val  & 0x1FFFFFFF ) / 1000
attr gen24 obj-h40077-reading ACCurrentPhaseC
attr gen24 obj-h40058-expr ($val  & 0x1FFFFFFF ) / 1000
attr gen24 obj-h40085-reading ACVoltagePhaseA
attr gen24 obj-h40087-expr ($val  & 0x1FFFFFFF ) / 1000
attr gen24 obj-h40087-reading ACVoltagePhaseB
attr gen24 obj-h40089-expr ($val  & 0x1FFFFFFF ) / 1000
attr gen24 obj-h40089-reading ACVoltagePhaseC
attr gen24 obj-h40091-format %.0f
attr gen24 obj-h40091-reading ACPower
attr gen24 obj-h40093-expr ($val  & 0x1FFFFFFF ) / 500
attr gen24 obj-h40093-format %.0f
attr gen24 obj-h40093-len 2
attr gen24 obj-h40093-reading ACFrequency
attr gen24 obj-h40117-format %s
attr gen24 obj-h40117-len 1
attr gen24 obj-h40117-map 1:off,2:sleeping,3:starting,4:active,5:throttled,6:shutdown,7:fault,8:standby
attr gen24 obj-h40117-reading status
attr gen24 obj-h40117-unpack n
attr gen24 obj-h40196-expr $val / 1000
attr gen24 obj-h40196-format %.2f
attr gen24 obj-h40196-len 4
attr gen24 obj-h40196-reading ACActEnergy
attr gen24 obj-h40196-unpack Q>
attr gen24 obj-h40267-format %d
attr gen24 obj-h40267-len 1
attr gen24 obj-h40267-reading DCPowerScale
attr gen24 obj-h40267-unpack s>
attr gen24 obj-h40304-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
attr gen24 obj-h40304-len 1
attr gen24 obj-h40304-reading DCPowerMPPT2
attr gen24 obj-h40304-unpack n
attr gen24 obj-h40324-expr $val * 10 ** ReadingsVal($name, 'DCPowerScale', 1)
attr gen24 obj-h40324-reading BatteryChargeWatt
attr gen24 obj-h40324-unpack n
attr gen24 stateFormat Wirkleistung: Watt  Aktuelle Leistung
attr gen24 userattr obj-h30775-reading obj-h30775-unpack obj-h30775-poll obj-h30775-len
attr gen24 obj-h30201-map 35:fault,303:off,307:ok,455:warnings
attr gen24 obj-h30211-map 336:Contact manufacturer, 337:Contact installer, 338:invalid, 887:none
attr gen24 obj-h40355-len 1
attr gen24 obj-h40355-reading BatConfigMaxReferenceWatt
attr gen24 obj-h40355-unpack n
attr gen24 obj-h40358-format %s
attr gen24 obj-h40358-len 1
attr gen24 obj-h40358-map 0:none,1:chargeMax,2:dischrMax,3:bothMax
attr gen24 obj-h40358-reading BatConfigMaxEnabled
attr gen24 obj-h40358-set 1
attr gen24 obj-h40358-unpack n
attr gen24 obj-h40360-expr $val / 100
attr gen24 obj-h40360-len 1
attr gen24 obj-h40360-reading BatConfigReserve
attr gen24 obj-h40360-unpack n
attr gen24 obj-h40361-expr $val / 100
attr gen24 obj-h40361-len 1
attr gen24 obj-h40361-reading BatteryChargePercent
attr gen24 obj-h40361-unpack n
attr gen24 obj-h40364-format %s
attr gen24 obj-h40364-len 1
attr gen24 obj-h40364-map 1:off,2:empty,3:discharging,4:charging,5:full,6:holding,7:testing
attr gen24 obj-h40364-reading BatteryState
attr gen24 obj-h40364-unpack n
attr gen24 obj-h40365-expr $val / 10000 * ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40365-len 1
attr gen24 obj-h40365-max ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40365-min -ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40365-reading BatConfigMaxDischargeWatt
attr gen24 obj-h40365-set 1
attr gen24 obj-h40365-setexpr $val / ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1) * 10000
attr gen24 obj-h40365-unpack s>
attr gen24 obj-h40366-expr $val / 10000 * ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40366-len 1
attr gen24 obj-h40366-max ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40366-min -ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1)
attr gen24 obj-h40366-reading BatConfigMaxChargeWatt
attr gen24 obj-h40366-set 1
attr gen24 obj-h40366-setexpr $val / ReadingsVal($name, 'BatConfigMaxReferenceWatt', 1) * 10000
attr gen24 obj-h40366-unpack s>







Fredi69

Zitat von: mediastudio am 05 Februar 2023, 21:38:58Hallo, ich bin seit Tagen daran richtige Daten aus meinem Wechselrichter zu bekommen.
Ich habe folgendes als Definition gemacht
################################ 
### Fronius symo gen24 8.0 plus
################################
define gen24 ModbusAttr 1 10 192.168.10.49:502 TCP

Ich bekomme nur dir Rücmeldung "disconnected".
Woran kann das liegen?
fhem auf Raspberry Pi 3
FRITZ!Box7490, Fritz!Box 3270 AP, 3xHMLAN, CUL868, nanoCUL 433 für IT, JeeLink für LaCrosse, HUE Bridge 2.0, Samsung UE46C8790 (STV), mehrere Homematic, Intertechno, Shelly und LaCrosse Komponenten

vitolinker

Ist Modbus über TCP auf dem Fronius eingeschaltet?
Warum nimmst du nicht die Lösung aus post #270?

Ajuba

Hallo
Mit Ausnahme der Energiewerte bin ich mit dem Fronius Modul zufrieden.
Eben genau für die korrekten Verbrauchswerte hätte ich mir korrekte Ergebnisse von 98_Fronius_Modbus_Meter.pm erhofft aber ausgerechnet die Readings "Energy_export__kWh" und "Energy_import__kWh" liefern nichts Vernünftiges.
Im SymoGen24 Plus sind "Slave als Modbus TCP", "float" und "Wechselrichtersteuerung über Modbus aktiviert"

READINGS:
     2023-09-18 21:05:04   Current_L1__A   0.77
     2023-09-18 21:05:04   Current_L2__A   0.77
     2023-09-18 21:06:04   Current_L3__A   0.78
     2023-09-18 21:06:03   Current_total__A 2.33
     2023-09-18 21:04:09   Energy_L1_export__kWh 0.000
     2023-09-18 21:06:09   Energy_L1_import__kWh 0.000
     2023-09-18 21:03:08   Energy_L2_export__kWh 0.000
     2023-09-18 21:03:09   Energy_L2_import__kWh -15119969719704018134936254217715712.000
     2023-09-18 21:03:09   Energy_L3_export__kWh 0.000
     2023-09-18 21:02:36   Energy_L3_import__kWh 95027.198
     2023-09-18 21:05:49   Energy_export__kWh -nan
     2023-09-18 21:03:36   Energy_import__kWh 0.000
     2023-09-18 21:04:06   Frequency__Hz   518.33
     2023-09-14 08:23:04   ID              S0
     2023-09-18 21:06:06   Power_L1__W     100
     2023-09-18 21:06:07   Power_L2__W     2432355
     2023-09-18 21:06:08   Power_L3__W     nan
     2023-09-18 21:06:05   Power_total__W  -1
     2023-09-18 21:04:04   Voltage_Avr__V  399.59
     2023-09-18 21:06:05   Voltage_L1__V   404.46
     2023-09-18 21:02:04   Voltage_L2__V   402.02
     2023-09-18 21:04:05   Voltage_L3__V   228.06
     2023-09-14 08:23:04   state           opened
Während 98_Fronius_Modbus.pm die Fequenz korrekt mit 50 Hz liefert liegt 98_Fronius_Modbus_Meter komplett daneben. Da scheint was bei den Adressen verschoben zu sein.
Nebenbei müllen mir die Modbus-Module ohne gesetztes Verbose das Log File zu.

Gibt es Tipps wie ich zumindest die beiden Energiewerte zum Laufen bekomme?
FHEM auf RPi3, Homematic CCU3 mit Cuxd und CUL 868 für FS20, Siemens S7 über CP343-1,
DbLog zu MySQL auf NAS QNAP TS-253D,
Yeelight

KölnSolar

Morjen,
hat sich schon mal jemand an dem Modbus RTU probiert ?
Ich erwäge, um unabhängig meiner sich andauernd wechselnden  :'( SmartMeter zu werden, einen TS65A-3 zu installieren. Der lässt sich dann ja nur per "RTU" und nicht "TCP" abfragen.

Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

stefanru

#279
Hallo KölnSolar,
ich frage meinen Smart Meter über den TCP Modbus des Wechselrichters ab wenn ich das richtig verstehe.
Modul Fronius_Modbus_Meter IP des Wechselrichters der auf den SamrtMeter hört, bei mir der GEN24.
   
DEF = 200 30 192.168.69.72:502 TCP

Bei mir ist die Modbusadresse des Smart Meters 200, Wechselrichter ist 1.

Gruß,
Stefan

ufo-hans

Zitat von: mediastudio am 05 Februar 2023, 21:38:58Hier mal meine Testparameter, ich bekomme so alle 10 Sekunden neue Daten, aber wohl noch nichts sagend.
Falls Du es noch nicht probiert hast (bei mir hat es so dann geklappt): Von allen Adressen 1 abziehen.

Also für die ID:

# ID MUST BE 1!!!
attr gen24 obj-h40002-format %d;
attr gen24 obj-h40002-len 1;
attr gen24 obj-h40002-reading ID;
attr gen24 obj-h40002-unpack n;

Und im WR habe ich für das Format Int+SF ausgewählt.

Good luck, Hans.