Modbus Zugriff für Fronius Symo

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

Vorheriges Thema - Nächstes Thema

raffael

Zitat von: Roger am 21 Februar 2016, 20:13:47
Hallo raffael,
schön, dass Du auch Daten vom String 2 bekommst  :).
Mein Fronius Symo 7.0-3-M liefert ja leider keine. Dazu habe ich seit Monaten einen Case bei Fronius Österreich offen.

Kannst Du mir von Deinen zwei Fronisus-Geräten die genauen Bezeichnungen senden und angeben, bei welchem die Daten vom String2 kommen? Möglichst auch noch die SW-Versionen.

Vielleicht kommt ja Fronius mit den Angaben weiter.
Roger
Hallo Roger,
Sorry für die spähte Antwort.
Ich habe nur beim grösseren WR beide Tracker in Betreib. Im angehängten .txt ist ein list der Geräte. Vom WR1 erhalte ich die Werte des Mppt2, beim WR2 sind zwar Werte des Mppt2 jedoch muss dies ein Fehler des Datamanager sein, gleich wie die Power Angabe bei Dunkelheit.
Könnte wenn es Dir Hilft genauere angaben machen zu sw stände einzelner Komponenten. Oder sonstigen tests.
Soll ich auch mal bei Fronius nachfragen, müsste aber genauere angaben haben.
schaue nun des Öfteren hier rein.
Wenn ich helfen kann gerne!
gruess raffael

flandste

Einen schönen Abend,
tolle Arbeit das 98_Fronius_Modbus.pm!
Habe ganz neu eine PV-Anlage mit einem Fronius Symo Hybrid 5.0-3-S
Die Einbindung funktioniert perfekt, Daten werden periodisch gelesen.

Ab und zu wird aber ein ganz falscher Wert eingelesen, der außerhalb der "normalen" Werte ist

Beispiel:

2016-05-24_00:50:32 FRONIUS01 Voltage_L2__V: 0.0
2016-05-24_00:50:33 FRONIUS01 Operating_State_Vendor: Run-up.phase
2016-05-24_00:50:34 FRONIUS01 Power__W: 0.0
2016-05-24_00:50:34 FRONIUS01 Voltage_DC__V: 3.0
2016-05-24_00:50:36 FRONIUS01 Energy_Year__kWh: 528.103
2016-05-24_00:50:37 FRONIUS01 Power__VA: nan
2016-05-24_00:50:38 FRONIUS01 Energy_Total__kWh: 528.103
2016-05-24_00:50:39 FRONIUS01 Power__VAr: nan
2016-05-24_00:50:40 FRONIUS01 Power_DC__W: 0.0
2016-05-24_00:50:41 FRONIUS01 ActiveStateCode: 0
2016-05-24_00:50:42 FRONIUS01 Energy_Day__kWh: 0
2016-05-24_00:50:43 FRONIUS01 Current_DC__A: 0.00
2016-05-24_00:50:45 FRONIUS01 Voltage_L3__V: 0.0
2016-05-24_00:50:46 FRONIUS01 Operating_State: Run-up.phase
2016-05-24_00:52:30 FRONIUS01 Temp_other__C: 528103.5
2016-05-24_00:52:30 FRONIUS01 Power_Site__W: 2143289344
   
2016-05-24_00:52:31 FRONIUS01 Power_Site__W: 0
2016-05-24_00:52:32 FRONIUS01 Current_total__A: 0.00
2016-05-24_00:52:34 FRONIUS01 PowerFactor: nan
2016-05-24_00:52:36 FRONIUS01 Energy_Year__kWh: 528.103
2016-05-24_00:52:38 FRONIUS01 Energy_Total__kWh: 528.103
2016-05-24_00:52:39 FRONIUS01 ActiveStateCode: 0
2016-05-24_00:52:41 FRONIUS01 Energy_Day__kWh: 0
2016-05-24_00:54:27 FRONIUS01 Current_L2__A: 0.00
2016-05-24_00:54:28 FRONIUS01 Energy_total__kWh: 528.1
2016-05-24_00:54:29 FRONIUS01 Power_Site__W: 0
2016-05-24_00:54:30 FRONIUS01 Current_L3__A: 0.00
.....

oder hier, da ist alles falsch:
...
2016-05-19_14:31:04 FRONIUS01 Voltage_L2_to_L3__V: 0.0
2016-05-19_14:31:04 FRONIUS01 Voltage_L3_to_L1__V: 0.0
2016-05-19_14:31:04 FRONIUS01 Voltage_L1__V: 0.0
2016-05-19_14:31:04 FRONIUS01 Voltage_L2__V: 0.0
2016-05-19_14:31:04 FRONIUS01 Voltage_L3__V: 0.0
2016-05-19_14:31:04 FRONIUS01 Power__W: -271536180851395656679424.0
2016-05-19_14:31:04 FRONIUS01 Frequency__Hz: 0.0
2016-05-19_14:31:04 FRONIUS01 Power__VA: 0.0
2016-05-19_14:31:04 FRONIUS01 Power__VAr: -52429.0
2016-05-19_14:31:04 FRONIUS01 PowerFactor: -0.0
2016-05-19_14:31:04 FRONIUS01 Energy_total__kWh: 0.0
2016-05-19_14:31:04 FRONIUS01 Current_DC__A: 0.00
2016-05-19_14:31:04 FRONIUS01 Voltage_DC__V: 0.0
2016-05-19_14:31:04 FRONIUS01 Power_DC__W: 0.0
2016-05-19_14:31:04 FRONIUS01 Temp_Cabinet__C: 3305642126489944064000.0
2016-05-19_14:31:04 FRONIUS01 Temp_Coolant__C: -0.0
2016-05-19_14:31:04 FRONIUS01 Temp_Transformer__C: 0.0
2016-05-19_14:31:04 FRONIUS01 Temp_other__C: 0.4
2016-05-19_14:31:04 FRONIUS01 Operating_State: 169
2016-05-19_14:31:04 FRONIUS01 Operating_State_Vendor: 0
2016-05-19_14:31:04 FRONIUS01 Voltage_L2_to_L3__V: 0.4
2016-05-19_14:31:05 FRONIUS01 Voltage_L2_to_L3__V: 399132.3
2016-05-19_14:31:05 FRONIUS01 Voltage_L3_to_L1__V: 0.0
2016-05-19_14:31:05 FRONIUS01 Voltage_L1__V: 0.0
2016-05-19_14:31:05 FRONIUS01 Voltage_L2__V: 0.0
2016-05-19_14:31:05 FRONIUS01 Voltage_L3__V: 0.0
2016-05-19_14:31:05 FRONIUS01 Power__W: 0.0
2016-05-19_14:31:05 FRONIUS01 Frequency__Hz: 0.0
2016-05-19_14:31:05 FRONIUS01 Power__VA: 0.0
2016-05-19_14:31:43 FRONIUS01 Power__VAr: 0.4
2016-05-19_14:31:43 FRONIUS01 PowerFactor: 0.0
....

Wodurch kann das entstehen bzw. wie kann man das beheben?
Carpe Diem

Bjoernar

Hallo,

ich habe heute auch meinen Symo 8.2.3m angebunden.
Daten kommen auch vom String2.

Ich habe am Verbrauchszweig einen S0 Zähler, wird auch am WR passend Angezeigt.

Danke schon mal dafür.

Kann mir aber jemand sagen wie sich diese Werte von einander Unterscheiden?
Power_DC__W
Power__W
Power_Site__W

Danke und Gruß
Björnar

Fritz R.

Hallo,

zuerst einmal vielen Dank für das Modul.
Bis jetzt habe ich das ganze per HTTPMOD und der API Schnittstelle realisiert, da komme ich aber nicht an die Daten des Trackers.
Also mal einen anderen Weg mit dem neuen Modul probiert. Geht eigentlich auf anhieb. Ich bin gerade am Testen.

Frage ich habe 2 Wechselrichter, mit den Vorgabewerten scheine ich nur die Daten des ersten Wechselrichters zu erhalten.
Ich habe schon versucht aus der Beschreibung von Fronius schlau zu werden, wenn ich das richtig verstanden habe sollten alle Werte, incl. Summenwerte möglich sein.

Wenn ich versuche auf ModbusAdresse 2 umzustellen bekomme ich eine Fehlermeldung

got exception code 86 / 04, slave device failure

Ist das überhaupt der richtige Weg ?

Gruss Fritz

Tomy

Zitat von: octek0815 am 04 März 2016, 10:09:42
....
Ich hab nochmal ein Screener vom MPPT angehängt. Die gelb markierten Werte funktionieren auch nicht.
Alle anderen Wert hauen hin. Temperaturen können ja nicht ausgelesen oder?

Grüße
Olli


Hallo Roger,

danke für das super Modul.

Auch ich habe seit ein paar Tagen einen Symo 8.2m in Betrieb.  Bei mir macht der String 2 keine Probleme und zeigt brav viele seiner Daten an.
Ebenfalls das Problem mit der produzierten Energie/String liegt bei mir vor - wie bei Olli.

- Energy_total_String1__kWh
- Energy_total_String2__kWh


Doch die Werte ändern sich - sind mittlerweile von 0 über 1,2.. auf 6 gewechselt (dauerte mehrere Tage) - also zählt er doch was...
Kann es sein, dass evtl das "acc32" Datenformat falsch decodiert, oder der Scale-Factor falsch interpretiert wird?

LG

Matthias


"h40285" => { # float
# "h40275" => { # int+SF
# Start: +23, Länge: 2, acc32; String 1: Lifetime Energy
name => "1_DCWH", # internal name of this register in the hardware doc
reading => "Energy_total_String1__kWh", # name of the reading for this value
len => 2, # number of Registers this value spans
unpack => "S>",
expr => '$val *10**ReadingsNum($name,".ScaleFactor_Energy",0)', # conversion of raw value to visible

Tomy

Hallo zusammen,

ich habe das Problem mit den nicht vorhandenen Daten aus

- Energy_total_String1__kWh
- Energy_total_String2__kWh


gelöst. Ihr müsst im Modul bei "unpack" das "S" auf "L" ändern und "expr" noch durch 1000 teilen. Fronius gibt die Werte in "Wh" nicht "kWh" aus. Gilt natürlich für beide Strings.  :)

"h40285" => { # float
# "h40275" => { # int+SF
# Start: +23, Länge: 2, acc32; String 1: Lifetime Energy
name => "1_DCWH", # internal name of this register in the hardware doc
reading => "Energy_total_String1__kWh", # name of the reading for this value
len         => 2, # number of Registers this value spans
unpack => "L>", # defines the translation between data in the module and in the communication frame
expr         => '$val *10**ReadingsNum($name,".ScaleFactor_Energy",0)/1000', # conversion of raw value to visible value
format => '%.2f', # format string for sprintf
polldelay         => "x10", # only poll this Value if last read is older than 10*Iteration, otherwiese getUpdate will skip it



Gruß
Matthias


Zitat von: Tomy am 20 Juni 2016, 16:14:11

Hallo Roger,

danke für das super Modul.

Auch ich habe seit ein paar Tagen einen Symo 8.2m in Betrieb.  Bei mir macht der String 2 keine Probleme und zeigt brav viele seiner Daten an.
Ebenfalls das Problem mit der produzierten Energie/String liegt bei mir vor - wie bei Olli.

- Energy_total_String1__kWh
- Energy_total_String2__kWh


Doch die Werte ändern sich - sind mittlerweile von 0 über 1,2.. auf 6 gewechselt (dauerte mehrere Tage) - also zählt er doch was...
Kann es sein, dass evtl das "acc32" Datenformat falsch decodiert, oder der Scale-Factor falsch interpretiert wird?

LG

Matthias


"h40285" => { # float
# "h40275" => { # int+SF
# Start: +23, Länge: 2, acc32; String 1: Lifetime Energy
name => "1_DCWH", # internal name of this register in the hardware doc
reading => "Energy_total_String1__kWh", # name of the reading for this value
len => 2, # number of Registers this value spans
unpack => "S>",
expr => '$val *10**ReadingsNum($name,".ScaleFactor_Energy",0)', # conversion of raw value to visible


Tomy

Hi Björnar,

ich interpretiere die einzelnen Werte bei meinem Symo 8.2.3m so:

Power_DC__W  -> Leistung auf der Gleichstromseite, wobei der Wert nicht stimmen kann - ist bei mir immer halb so groß wie die AC Seite
Power__W -> Leistung des gerade abgefragten WR
Power_Site__W -> Gesamtleistung aller WR falls mehrere in einem Netz vorhanden sind.

Gruß
Matthias

Zitat von: Bjoernar am 17 Juni 2016, 09:49:53
Hallo,

ich habe heute auch meinen Symo 8.2.3m angebunden.
Daten kommen auch vom String2.

Ich habe am Verbrauchszweig einen S0 Zähler, wird auch am WR passend Angezeigt.

Danke schon mal dafür.

Kann mir aber jemand sagen wie sich diese Werte von einander Unterscheiden?
Power_DC__W
Power__W
Power_Site__W

Danke und Gruß
Björnar

Bjoernar

Zitat von: Tomy am 20 Juni 2016, 16:14:11

Hallo Roger,

danke für das super Modul.

Auch ich habe seit ein paar Tagen einen Symo 8.2m in Betrieb.  Bei mir macht der String 2 keine Probleme und zeigt brav viele seiner Daten an.
Ebenfalls das Problem mit der produzierten Energie/String liegt bei mir vor - wie bei Olli.

- Energy_total_String1__kWh
- Energy_total_String2__kWh


Doch die Werte ändern sich - sind mittlerweile von 0 über 1,2.. auf 6 gewechselt (dauerte mehrere Tage) - also zählt er doch was...
Kann es sein, dass evtl das "acc32" Datenformat falsch decodiert, oder der Scale-Factor falsch interpretiert wird?

LG

Matthias


"h40285" => { # float
# "h40275" => { # int+SF
# Start: +23, Länge: 2, acc32; String 1: Lifetime Energy
name => "1_DCWH", # internal name of this register in the hardware doc
reading => "Energy_total_String1__kWh", # name of the reading for this value
len => 2, # number of Registers this value spans
unpack => "S>",
expr => '$val *10**ReadingsNum($name,".ScaleFactor_Energy",0)', # conversion of raw value to visible

Läuft bei mir auch mit den Änderungen.
Hatte noch nicht bemerkt das es nicht passte.
Passt auch mit dem Gesamt Ertrag zusammen.

Bjoernar

Zitat von: Tomy am 25 Juni 2016, 13:00:00
Hallo zusammen,

ich habe das Problem mit den nicht vorhandenen Daten aus

- Energy_total_String1__kWh
- Energy_total_String2__kWh


gelöst. Ihr müsst im Modul bei "unpack" das "S" auf "L" ändern und "expr" noch durch 1000 teilen. Fronius gibt die Werte in "Wh" nicht "kWh" aus. Gilt natürlich für beide Strings.  :)

"h40285" => { # float
# "h40275" => { # int+SF
# Start: +23, Länge: 2, acc32; String 1: Lifetime Energy
name => "1_DCWH", # internal name of this register in the hardware doc
reading => "Energy_total_String1__kWh", # name of the reading for this value
len         => 2, # number of Registers this value spans
unpack => "L>", # defines the translation between data in the module and in the communication frame
expr         => '$val *10**ReadingsNum($name,".ScaleFactor_Energy",0)/1000', # conversion of raw value to visible value
format => '%.2f', # format string for sprintf
polldelay         => "x10", # only poll this Value if last read is older than 10*Iteration, otherwiese getUpdate will skip it



Gruß
Matthias
Danke so habe ich es auch vermutet.

Fritz R.

Hallo,

hat jemand zwei Wechselrichter und kann an beiden die Strings abfragen. Krieg ich irgendwie nicht hin.

Gruß  Fritz

Roger

Hi Tomy,
Dank für die Korrektur der Energy_total_String1/2__kWh. Habe Modul im Post 1 geändert.

Roger
Zotac, BBB, RPIs mit 10*FHEM
2*HM-LAN, 2*JeeLink, 2*RS485, SignalESP
HomeMatic, PCA301 Komponenten, ModBus: Stromzähler, Fronius WR, Shelly

Bjoernar

Hallo,

ich habe seit kurzen das Problem das der WR nach dem er schlafen gegangen ist nicht wieder abgefragt wird. Komischerweise bekomme ich werte vom MPPT. Nach einem Neustart kommen die Werte auch wieder.

Wenn ich ein GET mache bekomme ich "No FD" zurück.

Hat jemand eine Idee?

Gruß
Björnar

raffael

Zitat von: Fritz R. am 26 Juni 2016, 11:34:45
Hallo,

hat jemand zwei Wechselrichter und kann an beiden die Strings abfragen. Krieg ich irgendwie nicht hin.

Gruß  Fritz

Guten Tag Fritz,
Bei mir geht dies via DEF: 2 60 192.168.1.xx:502 TCP  (define WR2 Fronius_Modbus 2 60 192.168.1.xx:502 TCP)
wobei die erste 2 die ModBus Adresse des 2ten WR's ist.
Ip Adresse = Adresse des Datamanagers im ersten WR. Wenn in beiden WR's einen eigenen Datamanager hast musst Du die entsprechende IP vom 2ten nehmen und die Modbus adresse so setzten wie sie im WR eingestellt ist.
Damit kommen bei mir alle readings des Moduls inkl. String daten.
Schreib sonst mal deine Def.
Gruss Raffael



Bjoernar

#43
Hallo,

ich versuche vor Jahresende mal alle meine kleinen Fehler zu beseitigen.

Ich habe immer wieder komische Ausschläge bei der Leistung der einzelnen Strings.

Das sieht natürlich in den Plots dann sehr merkwürdig aus.
Hat jemand von euch auch diese Probleme?
Gerade heute ist die Leistung eigentlich sehr Konstant und diese Werte sind einfach falsch.
Kann es sein das der Scale Factor nicht richtig passt? Oder ändert der sich eigentlich nicht?

2016-12-06_11:25:16 Wechselrichter1 Power_String1__W: 884
2016-12-06_11:25:20 Wechselrichter1 Power__W: 1302.0
2016-12-06_11:26:13 Wechselrichter1 Power_String2__W: 3137
2016-12-06_11:26:16 Wechselrichter1 Voltage_String2__V: 554
2016-12-06_11:27:16 Wechselrichter1 Power_String1__W: 81
2016-12-06_11:27:24 Wechselrichter1 Power__W: 1228.0
2016-12-06_11:27:27 Wechselrichter1 Power_String2__W: 396
2016-12-06_11:29:17 Wechselrichter1 Power__W: 1164.0
2016-12-06_11:29:19 Wechselrichter1 Voltage_String1__V: 536
2016-12-06_11:29:22 Wechselrichter1 Power_String1__W: 753
2016-12-06_11:31:20 Wechselrichter1 Power__W: 1333.0
2016-12-06_11:31:21 Wechselrichter1 Voltage_String2__V: 552
2016-12-06_11:31:24 Wechselrichter1 Power_String2__W: 463
2016-12-06_11:31:26 Wechselrichter1 Power_String1__W: 844
2016-12-06_11:33:22 Wechselrichter1 Power_String1__W: 670
2016-12-06_11:33:24 Wechselrichter1 Power_String2__W: 419


2016-12-06_11:51:42 Wechselrichter1 Power_String1__W: 557
2016-12-06_11:52:39 Wechselrichter1 Voltage_String2__V: 555
2016-12-06_11:53:38 Wechselrichter1 Power_String2__W: 440
2016-12-06_11:53:39 Wechselrichter1 Power__W: 973.0
2016-12-06_11:53:41 Wechselrichter1 Power_String1__W: 507
2016-12-06_11:55:40 Wechselrichter1 Power_String1__W: 6255
2016-12-06_11:55:41 Wechselrichter1 Voltage_String1__V: 586
2016-12-06_11:55:47 Wechselrichter1 Power_String2__W: 56
2016-12-06_11:55:48 Wechselrichter1 Power__W: 1224.0
2016-12-06_11:57:42 Wechselrichter1 Power_String1__W: 561
2016-12-06_11:57:47 Wechselrichter1 Power_String2__W: 509
2016-12-06_11:57:48 Wechselrichter1 Voltage_String2__V: 605
2016-12-06_11:57:49 Wechselrichter1 Power__W: 1046.0


Gruß
Björnar

Tomy

Hi Björnar,

ich beobachte das springen der Strings auch schon eine ganze Weile. Ich hab das Problem nur mit dem String 1 (Ost-Dach). Der String 2 läuft prima - seit dem letzten Firmwareupdate von Fronius, davor sind beide Strings gesprungen.
Ich vermute auch dass das was mit dem Scalefactor zu tun hat, aber wohl ein Fronius-Firmware-Problem ist.

Gruß
Tomy