Fronius Symo / Symo Hybrid Werte auslesen mittels Modbus



Alternativen

Beim Fronius Wechselrichter (Symo / Symo Hybrid) kann man Werte mittels

  • Push-Service,

  • Modbus oder

  • JSON-API (HTTP)

auslesen. Diese Seite hier beschreibt nur das Auslesen mittels Modbus.

Modbus TCP bietet schnellere Aktualisierungsraten als die JSON-API. Es ermöglicht auch die Steuerung des Wechselrichters / der Batterie, die mit anderen Optionen nicht verfügbar ist. Modbus TCP kann man als ´Rohdaten auf niedriger Ebene´ ansehen, die letztlich als Quelle für andere Datenströme dienen. Aus diesem Grund müssen einige der Berechnungen, die sonst im Wechselrichter stattfinden würden, stattdessen in der Miniserver-Konfiguration ausgeführt werden.



Man braucht nur einen:

  • Fronius Symo oder Symo Hybrid Wechselrichter

  • Fronis Smart Meter oder beliebiger anderer Smart Meter mit Zählerinterface

  • und natürlich einen Loxone Miniserver

A. Modbus am Fronius Wechselrichter konfigurieren

Zunächst muss beim Fronius der Datenexport mittels Modbus eingeschalten werden. Dazu verbindet man sich mi einem Browser mit dem Fronius (einfach die IP-Adresse des Fronius im Browser eingeben) und clickt auf der Startseite rechts auf "Settings" / "Einstellungen". Damit gelangt man auf http://<IP-Adresse vom Fronius>/#/settings/common, wo man im Menüpunkt MODBUS die Modbus-Einstellungen machen kann. 

Wichtig ist, dass dort "Data export via Modbus" auf "tcp" eingestellt wird. Wichtig ist der Modbus port - der wird später für den Zugriff via Modbus benötigt.

Je nach Sunspec Model gibt es zwei verschiedene Einstellungen: float und int+SF.

  • Ersterer für SunSpec Inverter Model 111, 112 oder 113 bzw. SunSpec Meter Model 211, 212 oder 213.

  • Zweiterer für SunSpec Inverter Model 101, 102 oder 103 bzw. SunSpec Meter Model 201, 202 oder 203.





bei Symo Hybrid:  



(Anmerkung: für was die nachfolgende Grafik gut ist ?)

























-

B. Konfiguration in der Loxone Config

1. Energiemonitor Baustein in der Loxone Config einfügen

Im nächsten Schritt den Baustein ´Energiemonitor´ einfügen. Bei den Eigenschaften darauf achten, dass beim Menüpunkt ´Datenquelle´ die Option 'Objekteingänge' ausgewählt ist.

Zudem noch die Werte für ´Strompreis Einspeisung´ und ´Strompreis Bezug´ individuell anpassen.

-

2. Modbusserver in der Loxone Config konfigurieren

Im nächsten Schritt muss man in der Loxone Config-Software einen sog. "Modbusserver" anlegen. In der Config beim Miniserver unter ´Miniserverkommunikation´  





einen neuen Modbusserver anlegen indem man oben im Menüband auf ´Modbusserver´ klickt.



Diesen Modbusserver benennen (z. B. "Modbusserver Fronius") und die Adresse inkl. Modbus Port (s. o.) eintragen - also "<IP-Adresse vom Fronius>:502".

Den Wert von Timeout sollte man zunächst einmal auf ´500´ setzen.

-

Danach das Projekt speichern und die Loxone Config Software schließen / beenden.

3. Anlegen von Aktoren und Sensoren

Für Profis (etwas weiter unten für Laien):

Die Beschreibung der Modbus-Sensoren findet man auf der Fronius Seite über die Suche - derzeit unter https://www.fronius.com/de/solarenergie/produkte/eigenheim/anlagen-monitoring/offene-schnittstellen/modbus-tcp und dort als PDF Download. Das Dokument ist sehr ausführlich. Folgende Punkte sind wichtig:

  • Die Startadresse der abzufragenden Tabelle - z. B. "40263" für das Multiple MPPT Inverter Extension Model

  • Den Start Offset des jeweiligen Registers - z. B. "22" für DC Power

  • Den Typ des jeweiligen Registers - z. B. "uint16" (= unsigned int) für DC Power

  • Die Einheit des jeweiligen Registers - z. B. "W" (= Watt) für DC Power

  • Der Skalierungsfaktor des jeweiligen Registers - z. B. "DCW_SF" = Register DCW_SF mit Start-Offset 5

Mit Hilfe dieser Werte können dann in der Loxone Config die entsprechenden Sensoren angelegt werden:

  • IO-Adresse = Startadresse + Offset - 1

  • Befehl = 3 - Read holding register (4x) - entspricht dem Function code 0x03

  • Datentyp = Typ des jeweiligen Registers

  • Einheit = <v> plus Einheit des jeweiligen Registers

  • Korrektur = Skalierung mittels Formelbaustein 10^<Skalierungsfaktor>, wobei der Skalierungsfaktor mittels eines weiteren Sensors ausgelesen werden muss

  • Validierung - ist z.B. bei uint16 nötig, da es bei Fronius von 0-65534 geht und 65535 (lt. Fronius NaN) manchmal fälschlicherweise geschickt wird

 

















-



Für Laien:

Um die ganzen Aktoren und Sensoren nicht selbst manuell anlegen zu müssen, gibt es die Möglichkeit, Vorlagen (Templates) in die Loxone Config Software zu importieren. Dazu: Nach der Beendigung des Programms (s. vorheriger Schritt) muss man sich dazu zunächst die beiden nachfolgenden Vorlagedateien (´MB_Fronius Hybrid_20200814.xml´ und ´MB_Fronius Smart Meter_20200814.xml´) herunterladen und diese dann mit dem Dateimanager (Windows Explorer) in das folgende Verzeichnis (Abn.: das Verzeichnis könnte evtl. auf ´ausgeblendet´ / ´versteckter Ordner´ eingestellt sein, so dieser vielleicht nicht sofort sichtbar ist) kopieren:

C:\ProgramData\Loxone\Loxone Config 11.0.7.15\Templates\Comm

(Anm.: die ´11.0.7.15´ ist die zum Zeitpunkt der Erstellung dieser Anleitung aktuelle Loxone Config Version und kann ggf. bei jedem natürlich anders ein)





 

 

Hinweis / Bitte: Sollte jemand in der Vorlagendatei einen Fehler erkennen / Werte ergänzen können / Übersetzungen korrigieren: jederzeit gerne! 



Nachdem dies geschehen ist, kann man die Loxone Config Software wieder starten und sein zuvor gespeichertes Projekt laden.

Sodann bei ´Miniserverkommunikation´ auf ´Modbusserver Fronius´ klicken und dann oben im Menüband unter ´Sensoren und Aktoren´ auf ´Vordefinierte Geräte´ klicken und dort dann zunächst ´Fronius Hybrid´ auswählen:

 



Das Ergebnis sieht dann wie folgt aus:

 



Im Anschluss daran muss man den Import der Vorlage auch noch einmal für den Smart Meter machen, also: Bei ´Miniserverkommunikation´ auf ´Modbusserver Fronius´ klicken und dann oben im Menüband unter ´Sensoren und Aktoren´ auf ´Vordefinierte Geräte´ klicken und dort dann ´Fronius Smart Meter´ auswählen:

 



Das Ergebnis sieht dann wie folgt aus:

-

Zum Abschluss noch überprüfen, ob beim ´Fronius Hybrid´ die Modbus Adresse auf ´1´ gesetzt ist

 



und beim beim ´Fronius Smart Meter´ die Modbus Adresse auf ´240´ gesetzt ist

 



4. WICHTIG: manuelles Anlegen und  Ersetzen von 4 importieren Sensoren

Im nächsten Schritt müssen wir 4 analoge Sonsorwerte bei ´Fronius Hybrid´ (noch einmal) per Hand erstellen.

Diese sind, wenn man die obigen Vorlagen importiert hat, zwar bereits angelegt, allerdings ist die Reihenfolge der Erstellung entscheidend (und die Reihenfolge der Erstellung ist durch den Import der Vorlage verloren gegangen). Ziel ist es also, die Sensoren (DCW_Hybrid1_DCWDCW_SF2_DCW) in genau dieser Reihenfolge neu zu erstellen (z. B. indem man zunächst temporär den Nachsatz "_neu" dahintersetzt), dann die Werte von dem ursprünglichen Sensor in den neu angelegten Sensor überträgt, dann den bisherigen Sensor löscht und im letzten Schritt das "_neu" aus der Bezeichnung entfernt. 

Dazu also im Menüband bei Sensoren und Aktoren auf Analogsensor klicken 

und diesem den Namen "DCW_Hybrid_neu" geben.

Im nächsten Schritt erfolgt dann die Befüllung der Werte im neu angelegten Sensor "DCW_Hybrid_neu" mit den Werten des Sensors "DCW_Hybrid".

  

Danach wird dann der bisherige Sensor "DCW_Hybrid" gelöscht und der Sensor "DCW_Hybrid_neu" in "DCW_Hybrid" umbenannt.

Selbiges machen wir mit den 3 weiteren Sensoren 

  • 1_DCW

  • DCW_SF

  • 2_DCW

in genau dieser Reihenfolge!

 



 





Nach dem Löschen der alten 4 Sensoreinträge und der Umbenennung (Entfernen von "_neu") sieht es dann wieder wie am Anfang aus:

 



5. Verknüpfung der Sensoren mit dem Baustein Energiemonitor

Im nächsten Schritt müssen jetzt die Sensoren mit dem bereits angelegten Baustein Energiemonitor verbunden werden. Die beiden im Bild rot zu sehenden Merker "nicht zugeordnet" müssen wir erst noch später anlegen; diese dienen im Bild nur zur Illustration, dass hier noch etwas fehlt.

 



6. Batteriestromrichtung

Im nächsten Schritt müssen wir die Batteriestromrichtung ermitteln. Im Originaltext von TICO heißt es dazu:

Die Erstellung der Merker '1_DCW_kW' und 'Bat Chrge_Dischrge' ist komplex und erfordert einige Hintergrundinformationen.

Die Leistung des Wechselrichters kann durch alle Solar-Gleichstrom-Anlagen, alle Batterie-Gleichstrom-Anlagen oder eine Kombination aus beiden bereitgestellt werden. Die gesamte Gleichstromleistung des Systems wird als DCW bezeichnet. Der Wert DCW speist sich aus zwei Quellen:

String 1 = PV-Eingang (1_DCW)
String 2 = Batterie (2_DCW)

Beim Entladen der Batterie ist DCW = 1_DCW + 2_DCW

Beim Laden des Akkus ist DCW = 1_DCW - 2_DCW

Diese drei Werte werden durch einen Wert namens Scale Factor (DCW_SF) weiter modifiziert. Der Skalierungsfaktor ändert die Platzierung der Dezimalstelle. Eine Änderung des Skalierungsfaktors von -2 auf -1 erhöht die Werte um den Faktor 10. Eine Änderung des Skalierungsfaktors von -2 auf +1 erhöht die Werte um den Faktor 1000.

Zusammen sind die vier Werte zeitkritisch zueinander, um eine genaue Anzeige im Loxone Smart Home zu gewährleisten.

Eine weitere Schwierigkeit ist die Begrenzung des Werts '2_DCW' (Batterieeingang oder -ausgang): Der Wert enthält kein Zeichen dafür, ob der Akku geladen oder entladen wird. Es wird nur die Rate angezeigt. Aufgrund dieser Einschränkung müssen die beiden obigen Gleichungen verwendet werden, um den 2_DCW-Wert zu "signieren".



Zunächst legen wir 3 Merker an. Hier bezeichnet als:

  • 1_DCW in kW

  • Batterie Laden_Entladen

  • Wertänderung

 



Merker "1_DCW in kW" verbinden wir mit Eingang Pp im Energiemonitor.

Merker "Batterie laden_entladen" verbinden wir mit Eingang Ps im Energiemonitor.

 





Danach muss man man dann die Sensoren verbinden wie im Bild dargestellt (oder man kopiert sich dies aus der Beispieldatei .Loxone ganz am Ende dieser Anleitung):

 



So, das war der erste Teil. Damit kann man das Projekt erst einmal in den Miniserver speichern und sich die Grafik ansehen:




C. Batterieladesteuerung

Als nächstes legen wir in der Loxone Config eine neue Seite an, z. B. mit Namen "2. Batterieladesteuerung".

Danach müssen wir 4 virtuelle Eingänge und 1 virtuellen Ausgang anlegen:

  • Entladelimit

  • Ladelimit

  • Laderegelung Auto

  • StorCtl_Mod Aktor

Die Werte seht ihr auf den nachfolgenden vier Bildern.

 

 

 

 





Dann noch den virtuellen Ausgang:

  • Interner VI Aktor

mit drei Mal "Virtuellen Ausgang Befehl"

  • virtueller Enladelimit Aktor

  • virtueller Ladelimit Aktor

  • virtueller StorCtl_Mod Aktor

Die Werte seht ihr auf den nachfolgenden drei Bildern.

 

 

 



Nachdem diese alle angelegt sind, folgt nun die Verbindung der verschiedenen Sensoren / Aktoren oder auch virtuellen Ein- wie Ausgänge mit den Bausteinen:

 



 



Status Inverter

Schließlich noch eine 3. Seite anlegen "3. Inverter Status"

 



Modbus Optimierung

Und dann die 4. und vorerst letzte Seite zur Modbus Optimierung

 



 



Projektdatei

Anbei noch die .Loxone Datei