Modbus Zugriff für Fronius Symo

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

Vorheriges Thema - Nächstes Thema

Roger

Hallo FHEM-Gemeinde,
ich habe einen Fronius Symo PV Wechselrichter vom Typ 7.0-3-M.
Dieser kann auch über Modbus ausgelesen werden. Dafür habe ich einige FHEM-Module erstellt:

Fronius Basismodul:      98_Fronius_Modbus.pm
MPPT Tracker (Strings):  98_Fronius_Modbus_MPPT (String2 geht bei mir nicht)
Fronius String Combiner: 98_Fronius_Modbus_SC403.pm (ungetestet)
Fronius Energiezähler:   98_Fronius_Modbus_Meter.pm (ungetestet)

Für den Zugriff über IP auf die Modbus-Register nutze ich 98_Modbus.pm von Stefan Strobel.
Anbei die das Modul zur freien Verwendung.
Aufruf:

define <name1> Modbus
define <name2> Fronius_Modbus       1   60 192.168.nnn.nnn:502 TCP
attr   <name2> sortUpdate           1
define <name3> Fronius_Modbus_MPPT  1  120 192.168.nnn.nnn:502 TCP
attr   <name3> sortUpdate           1
attr   <name3> stateFormat {"String1: ".ReadingsNum($name,"Power_String1__W",0)." W".\
                          ", String2: ".ReadingsNum($name,"Power_String2__W",0)." W"}
define <name4> Fronius_Modbus_Meter 240 30 192.168.nnn.nnn:502 TCP


Anmerkung:
Im Fronius habe ich auf der Webseite unter Einstellungen (mit admin anmelden) bei Modbus folgendes eingestellt:
Zitat
Datenausgabe über Modbus: tcp
Modbus Port: 502
String Control Adress-Offset: 101
Sunspec Model Type: float
Demo Modus: aus
Der Zugriff mit Fronius_Modbus_MPPT auf die Daten vom String 2 klappt erst ab Fronius Softwareversion 3.9.1-4. Diese Version wird derzeit vereinzelt freigeschaltet - die Werte sind aber nicht immer korrekt. Ich habe versucht, unplausible Werte zu unterdrücken. Hier muss Fronius noch nachbessert, aber zumindest müssten mit dieser Fronius-SW bei allen auch Werte für String2 kommen.

Hinweis:
Wer auch keine Temperatursensoren hat, kann mit:

attr <name3> poll-Temp_String1__C 0
attr <name3> poll-Temp_String2__C 0

das Auslesen unterdrücken.

Update:
11.04.2017: Prototype mismatch MinMaxChk() von 98_Fronius_Modbus_Meter.pm beseitigt
09.06.2017: Energy-Register unpack => "N" nach unpack => "f>" (Dank an vuffiraa)
20.09.2017: mit Fronius-SW 3.9.1-4 klappt auch MPPT Zugriff auf String2 sicher
23.06.2017: neue Version Fronius_Modbus_MPPT, wo Auslesen ungültiger Werte verhindert wird
24.09.2017: neue VersionFronius_Modbus_MPPT: Umbau Erkennung fehlerhafter Werte (Alter ScaleFactoren), 0-Wert, wenn Operating_State nicht OK ist.
                   Wichtig: Attribut sortUpdate setzen!
25.09.2017: Korrektur Schreibfehler ReadingsName Sting --> String
26.09.2017: falls neuer Wert um Faktor 5 vom alten Wert abweicht --> kein Update (Ursache: fehlerfafte ScaleFactoren)
29.09.2017: mit Attribut 'errorHandlingOf 1' kann Fehlerbehandlung deaktiviert werden (für fehleranalyse Fronius Support)
17.10.2017: 98_Fronius_Modbus.pm MinMaxChk() Prototype mismatch beseitigt, 98_Fronius_Modbus_Meter.pm MinMaxChk() gelöscht
11.11.2019: 98_Fronius_Modbus_MPPT.pm nun mit Routine xterTeil($;$$)
2019-11-13: Anpassung IgnoreExprMppt():falls Readings noch nicht existieren --> Reading schreiben  (Dank an sn0000py)

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

octek0815

Hallo Roger,

ich befasse mich gerade mit der Anschaffung einer PV Anlage voraussichtlich mit einem Fronius Symo 8.2-3-M Wechselricher.
Desweiteren mit einem Fronius Smart Meter 63A-3. So wie es verstanden habe wird dieser mit dem WR verbunden.
Können diese Daten ebenfalls mit deinem Modul ausgelesen werden?

Viele Grüße
Olli

Roger

Hallo Olli,
der Fronius Symo 8.2-3-M sollte gehen. Der müsste die gleichen Modbus-Register haben.
Das Fronius Smart Meter hat garantiert andere Register, da müsstest Du Dir was eigenes erstellen (sollte aber mit Register-Beschreibung kein Problem sein).
Interessant wird die Anbindung. Der Wechselrichter kann Modbus über IP oder RTU, das Smart Meter hat nur RTU.
Also muss die Anbindung über 2-Draht RS485 erfolgen. Hierbei will der Wechselrichter und Du Daten abfragen. Prinzipiell ist RS485 multi-master fähig.

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

octek0815

Zitat von: Roger am 18 Januar 2016, 18:54:57
Hallo Olli,
der Fronius Symo 8.2-3-M sollte gehen. Der müsste die gleichen Modbus-Register haben.
Das Fronius Smart Meter hat garantiert andere Register, da müsstest Du Dir was eigenes erstellen (sollte aber mit Register-Beschreibung kein Problem sein).
Interessant wird die Anbindung. Der Wechselrichter kann Modbus über IP oder RTU, das Smart Meter hat nur RTU.
Also muss die Anbindung über 2-Draht RS485 erfolgen. Hierbei will der Wechselrichter und Du Daten abfragen. Prinzipiell ist RS485 multi-master fähig.

Roger

Hallo Roger,

danke für deine Antwort. Ich hoffe die Konfiguration ist so das der Smart Meter am Wechselricher angeschlossen wird und ich dann via Modbus IP diese Daten ebenfalls auslesen kann.

Grüße
Olli

HotteFred

Zitat von: Roger am 03 Januar 2016, 19:51:56

Anmerkung: Der Zugriff auf die Daten vom String 2 klappt noch nicht. Dazu habe ich seit einiger Zeit einen Case bei Fronius offen.

Huhu,

mein Fronius wird am Montag installiert. Klappt das mit dem zweiten String mittlerweile?

Grüße
BananaPi mit FHEM, KM50, Velux Raumluftsensor, jede Menge HM-CC-RT-DN, jede Menge 1Wire Zeugs

Roger

Hi HotteFred,
nein 2. String klappt noch nicht. Der Fronius Deutschland Support hat es vor Wochen nach Österreich gegeben und schon gesagt, dass es dauert. Bisher noch keine Antwort. Vielleicht rufe ich ja mal wieder an.

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

raffael

Hallo Roger,

Kannst Du mir einen Denkanstoss geben....
Wie muss die definition des Wechselrichters lauten um mit Deinem Modul zu arbeiten? Bisher ist jeder Versuch ins Leere gelaufen.
Wenn ich es folgender massen in fhem eingebe:
define WR2 Modbus_FroniusWR 192.168.1.32
kommt: no physical modbus device defined

Kannst Du mir sagen wie Du den Datamanager des Wechselrichters bei Dir eingebunden hast, oder noch besser wo kann ich dies nachschauen.
Besten Dank für Deine/Eure Hilfe
mfg raffael

Roger

Hallo Raffael,
vorher muss das Modbus-Modul von Stefan Strobel geladen werden.
define <name> Modbus
Dann sollte es gehen.

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

raffael

Hallo Roger,
Besten Dank für die Hilfe. Nach Deinem Tipp konnte ich die Symo's anbinden.
Sensationelle Arbeit, mit dem Modul kriege ich Automatisch die Register ausgelesen. Leider bin ich Programmiertechnisch nicht vom Fach. Und bin daher Dir sehr dankbar für Deine Arbeit und die Veröffentlichung. merci

Was ich bisher noch nicht gefunden habe ist der Unterschied der Daten der beiden Wechselrichter. Jeder hat sein eigener Datenmanager, beim Symo 8.2-3M bekomme ich fast keine plausiblen werte, jedoch stimmt z.B. die Serien Nummer und auch die Model angabe. Strom und Spannung oder auch die Energie werte kommen aber nicht, teilweise mit "–nan" oder "0.0".
Im log finde ich in einer Zeile ,,WR1: handle queue commDelay for device WR1 not over, try again later"
Bisher habe ich diesen Eintrag aber noch nicht verstanden.
Beim Symo 3.0-3M sind die Daten vorhanden und plausibel.  :)

raffael



Vize

Hallo in die Runde,

bei mir steht in Kürze auch die Anschaffung einer PV-Anlage inkl. Batterie-Speicher an.
In einem Angebot taucht der Wechselrichter Fronius Symo Hybrid 4.0-3-S auf.

Weiß jemand ob die Daten von diesem Modell ebenfalls mit dem Modul - oder generell mit FHEM - ausgelesen werden können?

Besten Dank schonmal für Infos aller Art!

Gruß
Andreas

Roger

Hallo raffael,
habe den ersten Eintrag um die Modbus Grundeinstellungen des Fronius ergänzt. Vielleicht liegt es ja daran.
Ansonsten muss Du die Beschreibung der Modbus-Register der beiden Geräte auf Unterschiede prüfen.
Roger
Zotac, BBB, RPIs mit 10*FHEM
2*HM-LAN, 2*JeeLink, 2*RS485, SignalESP
HomeMatic, PCA301 Komponenten, ModBus: Stromzähler, Fronius WR, Shelly

Roger

Hallo Andreas,
zumindest steht in der Beschreibung vom Fronius Symo Hybrid 5.0-3-S unter Schnittstellen Modbus TCP SunSpec.
Also der Zugriff sollte funktionieren. Wenn die Register kompatibel sind (sollten sie eigentlich sein), kannst Du zumindest die Register der Erzeugung auslesen.
Eine Erweiterung um die Speicherfunktion ist möglich (mein Modul ist gut dokumentiert)   :).
Roger
Zotac, BBB, RPIs mit 10*FHEM
2*HM-LAN, 2*JeeLink, 2*RS485, SignalESP
HomeMatic, PCA301 Komponenten, ModBus: Stromzähler, Fronius WR, Shelly

Vize

Hallo Roger,

besten Dank für deine Informationen!

Zitatmein Modul ist gut dokumentiert

Wo finde ich die Dokumentation?

Gruß
Andreas

octek0815

Zitat von: Vize am 15 Februar 2016, 17:22:00
Hallo Roger,

besten Dank für deine Informationen!

Wo finde ich die Dokumentation?

Gruß
Andreas

Hallo Andreas,

ich bin zwar nicht Roger aber ich Antworte trotzdem.

Wenn du das Modul mit einem Text-Editor (z.B. Notepad++) aufmachst siehst du die Doku...

Grüße
Oliver

HotteFred

Hallo Roger,

ich habe mir dein Modul jetzt auch noch einmal angeschaut und ich muss sagen: TOP. Läuft auf anhieb.
Ich habe einen Symo 4.5-3-M, bis auf einige String 2 Infos und die Temperaturen scheinen alle Werte sauber ausgelsesen zu werden.

Danke für deine Arbeit.

Grüße
BananaPi mit FHEM, KM50, Velux Raumluftsensor, jede Menge HM-CC-RT-DN, jede Menge 1Wire Zeugs