SG-Ready Heizung via Modbus ansteuern

  • Erstmal ein großes :danke: an Juraj, der mich in den letzten 2 Wochen mit Rat (Was brauche ich) und Tat (Programmierung) unterstützt hat! Wir haben noch ein paar Ideen zur Funktionserweiterung und so lange Juraj Lust hat gibt’s hier vielleicht noch ein Update.


    Zusammengefasst, es funktioniert und hat ca. 30 EUR gekostet. Der Installationsaufwand ist für jemand technisch begabten nun in 2-3h erledigt. Englisch Kenntnisse sind hilfreich, aber nicht zwingend erforderlich.



    Was haben wir genau gemacht?

    Wir nutzen das Lastmanagement des WR und geben über einen I/O ein 12V Signal aus, wenn ausreichend Strom vorhanden ist. Meine Prioritäten (Batterie, Heizung, Einspeisen) werden dabei eingehalten, bzw. sind einstellbar. Beschreibung von Fronius.


    Mit einem Optokoppler Relais (Anschluss: Input +/-) schaltet das 12V Signal des WR einen Eingang der nachfolgenden Hardware. Wir haben ein Modell mit LED gewählt, da hier der Schaltzustand des WR leicht überprüft werden kann.

    Zur Steuerung verwenden wir einen Arduino Nano mit aufsteckbarem LAN Shield. W-Lan wäre auch möglich, dazu müsste der Code wohl angepasst werden und mir war LAN lieber. Stromversorgung erfolgt über USB. Ich habe zusätzlich noch ein Terminal Adapter verwendet. Man kann aber auch steckbare Kabel nehmen oder schlicht löten, wenn man noch sparsamer sein will.



    Das Relais wird über 3 Kabel mit dem Nano verbunden. Ich habe hier ein altes 3-Pin Molex Lüfter-Kabel verwendet. Wenn ich den Nano noch mal am PC anschließen will (z.B. neues Programm, PC steht woanders), brauche ich nur Relais, LAN und USB ausstecken. Die Anschlüsse sind:

    Relais (Ausgang)

    Nano (Eingang)

    Grd

    Grd (beliebig)

    Out

    D3

    VCC

    5V (beliebig)


    Via LAN Shield wird der Nano mit dem Netzwerk verbunden. Das ISGweb muss ebenfalls verbunden und erreichbar sein. Es ist ggf. ein Software Update des ISG notwendig, da die SG Ready Funktion nicht von Anfang an (kostenfrei) unterstützt wurde. Nach dem Update auf v10.1 die IP Adresse des ISG im Browser eingegeben (Stiebel Servicewelt) und unter Einstellungen -> Energiemanagement die SG Ready Funktionen aktivieren/einstellen.



    Die Programmierung erfolgt über die Arduino Software. Wer damit noch keinen Kontakt hatte, es gibt im Netz oder bei Youtube zahlreiche Tutorials. Die Programme heißen Sketch und als Übung (und Funktionskontrolle) sollte man mit dem mitgelieferten „Blink“ Sketch (Files -> Examples -> Basics -> Blink) beginnen. In der Software muss vorher die verwendete Hardware (Board + Processor) eingestellt und ggf. noch Treiber installiert werden, sowie der passende Port ausgewählt werden. In meinem Fall waren das die folgenden Einstellungen (alle Treiber schon dabei). Bei den Libraries ist bei Upload-Fehlern ggf. noch etwas manuell zu installieren. Google hilft mit Arduino Fehler Nummer.



    Ist der Port grau (wie Bild) ist der Nano nicht angeschlossen oder Windows fehlen Treiber.

  • Im Sketch von Juraj müssen ggf. die IP Adressen noch geändert werden. Zum Testen empfiehlt es sich im Modus „manuell“ zu booten.

    Code
    1. bool automaticMode = false; à Boot in manual mode off
    2. const IPAddress ip(192, 168, 1, 200); à feste Adresse des Nano, ggf. anpassen
    3. const IPAddress isgAddress(192, 168, 1, 100); à Adresse des ISG eintragen


    Nach dem Upload des Sketches zum Nano können über den Seriellen Monitor (Button oben rechts) Eingaben (in Großbuchstaben) gemacht werden. Die Anzeige des SM muss dazu auf 115200 baud (unten rechts) umgestellt werden.

    Eingabe

    Befehl

    Beschreibung

    P

    Print

    Ausgabe aktueller Status

    A

    Automatic

    Automatikmodus. Erkennung des 12V Eingangs und Umstellung der Betriebszustände ISG

    0

    Manual Mode OFF

    SG Ready Eingang 1 = 0

    SG Betriebszustand = 2

    1

    Manual Mode ON

    SG Ready Eingang 1 = 1

    SG Betriebszustand = 3

    C

    Close (nur Telnet)

    Beenden der Telnet Verbindung


    Alternativ dazu kann eine Telnet Verbindung genutzt werden. Ich habe dazu PuTTY verwendet. Damit kann man den Nano auch via LAN steuern, bzw. den aktuellen Status abrufen. Anmerkung: Über PuTTY wird gelegentlich (noch) ein Modbus Error angezeigt, der zufällig auftritt und anscheinend keine Konsequenz hat.


    Einstellungen in PuTTY


    Anzeige (der Serielle Monitor von Arduino wird deaktiviert, bis PuTTY mit C geschlossen wird)


    Und wie funktioniert das jetzt?

    Die Stiebel Eltron Wärmepumpe mit aktiviertem SG Ready befindet sich in Operating State 2, das entspricht dem normalen Automatikbetrieb als wäre SG Ready nicht aktiv. Ohne den Nano oder bei Fehlern ist die Heizung also weiterhin „normal“ aktiv! Auch nicht unwichtig …


    Der Nano startet im Auto-Mode. Wird im WR per Lastmanagement der 12V Ausgang aktiviert, bekommt der Nano das über das Relais mit. Er setzt dann über Modbus an der Wärmepumpe den SG Ready Input 1 auf 1. Dadurch schaltet die Heizung in den Operating State 3, bei dem Energie in Wärme gespeichert wird.


    Die Heizung braucht bis zu 2 Minuten um den OS zu wechseln, daher haben wir im Programm nach einer Änderung des Input 1 eine Abfrage alle 15 Sekunden bis zum Wechsel des OS eingebaut.


    Mit dem manuellen Modus (Eingabe 1 oder 0) kann man die Heizung auch direkt schalten.


    Werde jetzt mal ein paar Tage (mit hoffentlich mehr Sonne als dieses Wochenende) schauen, ob das alles dauerhaft funktioniert. Mal sehen...


    Anmerkung für Programmierer: Die in der Anleitung von Stiebel angegebenen Modbus Adressen müssen im Sketch mit einem Zähler geringer angesprochen werden (4001 -> 4000).

  • Warum eigentlich der Umweg über den Relaisausgang mit Verkabelung zum Fronius, wenn ihr eh schon Modbus/TCP am Start habt? Warum holt ihr die Leistungswerte nicht damit ab?


    Aber trotzdem, gut und günstig gelöst :thumbup::thumbup:

  • Warum eigentlich der Umweg über den Relaisausgang mit Verkabelung zum Fronius, wenn ihr eh schon Modbus/TCP am Start habt? Warum holt ihr die Leistungswerte nicht damit ab?


    Aber trotzdem, gut und günstig gelöst :thumbup::thumbup:

    Ich habe den io-Pin-Status nicht im Modbus-Register oder in der JSON-API gefunden. Um die 'Load Management'-Einstellungen in Arduino zu konfigurieren, wäre viel mehr Codierung erforderlich.

    Und der Arduino-Skech in dieser Version ist universell als ISGweb-Adapter. Es ist nicht nur für Fronius-Geräte.

    5 kWp; Fronius Symo Hybrid 4.0-3-S; Battery 5 x 1,2 kWh; Notstromfunktion; Arduino Verbrauchsregler
    (Bitte entschuldigen Sie mein manchmal schlechtes Deutsch, es ist 'google translated')

  • Das hört sich alles sehr interessant an, aber bitte bestätigt mir nochmal mein Verständnis:


    1. Die Verbindung mittels Arduino macht aus dem ISG Web (ohne SG Ready) ein ISG Plus (mit SG Ready), damit man nicht das Kabel mit dem Rundstecker braucht?

    2. Wenn ich ein ISG Plus habe, dann ist diese Schaltung nicht nötig? Man steckt dann einfach das Kabel beim Fronius und ins ISG ein und alles funktioniert?

    3. Braucht man dazu noch Software oder gebührenpflichtige Abos von Stiebel oder reicht alleine der Besitz eines ISG Web/Plus?


    Danke für die Infos, toll was ihr da auf die Beine gestellt habt :thumbup:

  • 1. Im Prinzip ja. Der Arduino ersetzt den Kabelanschluss des ISG plus. Die SG Ready Software und Einstellung ist auf beiden Geräten möglich.

    2. Ja, bei ISG Plus einfach Kabel ziehen.

    3. Stiebel stellt das Firmware Update für SG Ready (für ISG web, ISG plus nicht geprüft) seit einem halben Jahr kostenlos zur Verfügung. Abo ist nicht notwendig. Auch nicht der Portalzugang.

  • 2. Wenn ich ein ISG Plus habe, dann ist diese Schaltung nicht nötig? Man steckt dann einfach das Kabel beim Fronius und ins ISG ein und alles funktioniert?

    https://www.fronius.com/~/down…_management_system_DE.pdf


    nicht direkt mit einem Kabel, sondern über ein Relais oder einen Optokoppler

    5 kWp; Fronius Symo Hybrid 4.0-3-S; Battery 5 x 1,2 kWh; Notstromfunktion; Arduino Verbrauchsregler
    (Bitte entschuldigen Sie mein manchmal schlechtes Deutsch, es ist 'google translated')

  • Hallo! Coole Sache!

    Ich werde mir das "Plus" gleich mit kaufen aber ich hätte eine andere Frage:

    Schaltet man hiermit nur stupide die Wärmepumpe an und aus? Oder lässt sich auch die Leistung regulieren?

    Letzteres kann ich mir bei einem simplen Binäreingang nur schwer vorstellen (außer PWM natürlich) ;-)


    Danke und Gruß


    Jonas

  • Das Symo Load Management kann nur 4 Ausgangspins ein- und ausschalten. und "SG Ready" standard unterstützt nur 3 Stufen, die mit zwei Eingängen gesteuert werden: automatik (0,0), forcierter (1,0) und Maximum (1,1).

    5 kWp; Fronius Symo Hybrid 4.0-3-S; Battery 5 x 1,2 kWh; Notstromfunktion; Arduino Verbrauchsregler
    (Bitte entschuldigen Sie mein manchmal schlechtes Deutsch, es ist 'google translated')