Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Stiebel ISG as charger (experimental) #7207

Closed
wants to merge 21 commits into from
Closed

Conversation

andig
Copy link
Member

@andig andig commented Apr 4, 2023

/cc @ttjaden

@andig andig added the enhancement New feature or request label Apr 4, 2023
@andig andig force-pushed the feature/stiebel-isg branch from 7b6ee12 to 9dd25fd Compare April 4, 2023 11:09
Copy link

@ttjaden ttjaden left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ich habe keinen Zugang zu einem ISG Interface, aber die Implemtierung liest sich erstmal schlüssig. Habt ihr irgendwo dokumentiert, wie genau die Logik-Kette, also regeln, sind, die EVCC beim wechseln der Modi anwendet?

@Djcd
Copy link
Contributor

Djcd commented Apr 26, 2023

Bin gerade am Hausbau, weswegen ich mich auch nicht mehr zur Mitarbeit gemeldet hatte @andig 😅 (hatten mal bei meinem PR für den TQ EM420 Kontakt). Ich habe in ein paar Monaten ein ISG Web mit Tecalor (identisch zu Stiebel), falls es was helfen könnte. Würde mich dann auch sehr gerne mehr mit dem Code von EVCC beschäftigen.

@andig
Copy link
Member Author

andig commented Apr 27, 2023

@ttjaden das ist erstmal nur ein ganz normaler "Charger" der seinen "Soc" (=die Temperatur) anzeigen kann. Insofern auch keine besondere Strategie. Es ist auch noch nicht klar, ob man über die SG Modi (Eco/Comfort) oder ggf. doch über andere Solltemperatur regeln sollte.

Die Implementierung hat noch ein bisschen Beiwerk. U.a. kann sie die benötigte Energiemenge zum aufheizen des Speichers berechnen. Damit wäre es z.B. denkbar, jede Nacht oder jdfls. per Schedule einen "billigst laden" Plan anzulegen und damit z.B. bis morgens den WW Speicher aufzuladen. Auch Zyklenminimierung gehört dazu, so dass eine laufende Heizphase nicht wieder unterbrochen würde.

@github-actions github-actions bot added stale Outdated and ready to close and removed stale Outdated and ready to close labels May 18, 2023
@github-actions github-actions bot added the stale Outdated and ready to close label Jun 11, 2023
@github-actions github-actions bot closed this Jun 17, 2023
@djanknecht
Copy link
Contributor

@andig @Djcd ich habe auch eine Stiebel WP mit ISG, und würde diese gern einbinden (aktuell läuft die Steuerung über den SolarLog). Habt ihr die Integration noch/schon im Einsatz, läuft sie so weit stabil?

@andig
Copy link
Member Author

andig commented Jul 6, 2024

@djanknecht der PR hier ist der aktuelle Stand:

  • Temperatur auslesen
  • WP ein/ausschalten
  • Abschaltunterdrückung bei laufendem Kompressor

Die Steuerung passiert über das ISG.

@tFaster
Copy link

tFaster commented Nov 18, 2024

Hi @andig gibts zu diesem PR ein update? Ich würde sehr gerne meine Stiebel Wärmepumpe mit SG-Ready per ISG web einbinden. Danke!

@andig
Copy link
Member Author

andig commented Nov 18, 2024

@tFaster wie Du oben sehen kannst: nein. Mangels Feedback auch kein Fortschritt.

@Vogelbecker
Copy link
Contributor

Hi,
bin gerade über das Thema gestolpert.
Ich habe auch eine Tecalor (baugleich zu Stibel) mit ISG im Einsatz. Ich schaue die Tage mal, dass ich das zum Laufen bringe.

Gerne kann ich sonst auch eine kleine Test-Umgebung auf meinem Server bereit stellen, falls sich das live jemand anschauen möchte, wenn Zugriff auf ein laufendes ISG benötigt wird.

@andig andig reopened this Nov 20, 2024
@github-actions github-actions bot closed this Dec 11, 2024
@andig
Copy link
Member Author

andig commented Dec 11, 2024

Schade- kein Feedback :/

@tFaster
Copy link

tFaster commented Dec 13, 2024

Hi @andig ,
Ich habe es nun geschafft evcc lokal von diesem branch zu bauen. Ich habe meine Stiebel Eltron LWZ 504 als Charger definiert und sie einem Loadpoint zugewiesen.

Die Modbus-Adressen habe ich im code wie folgt geändert:

TempConfig: TempConfig{
    // temp
    SollAddr:  16, // WW
    IstAddr:   15, // WW
    TempDelta: 5,   // °C
    // enable/disable
    ModeAddr:    1000, // Betriebsart
    EnableMode:  3,    // Komfortbetrieb
    DisableMode: 2,    // Programmbetrieb
    // status
    StatusAddr: 2000,   // Betriebsstatus
    StatusBits: 1 << 5, // WW Betrieb
    // medium
    Wärmekoeffizient: 4.18, // kJ/kgK
}

Die Werte die du vergeben hattes sind für Geräte mit Wärmepumpenmanager (WPM).
Meine LWZ 504 ist aber ein Lüftungsintegralgerät, daher unterscheiden sie sich. Die charge config bräuchte also eine Option um zwischen diesen beiden Gerätetypen wählen zu können. Siehe: https://www.stiebel-eltron.de/toolbox/content/docs/anleitungen/installation/ISG_Modbus/321798-44755-9770_ISG%20Modbus_de_en_fr_it_nl_cs_sk_pl_hu.pdf

Dies sehe ich im log:

[site  ] DEBUG 2024/12/13 16:51:06 ----
[lp-1  ] DEBUG 2024/12/13 16:51:06 charge power: 0W
[site  ] DEBUG 2024/12/13 16:51:06 grid power: 452W
[site  ] DEBUG 2024/12/13 16:51:06 battery soc: 6%
[site  ] DEBUG 2024/12/13 16:51:06 pv power: 0W
[site  ] DEBUG 2024/12/13 16:51:06 battery power: 0W
[site  ] DEBUG 2024/12/13 16:51:06 site power: 552W
[stiebel] DEBUG 2024/12/13 16:51:06 ist: 46.4°C, soll: 45.0°C, energy required: -0.000kWh
[lp-1  ] DEBUG 2024/12/13 16:51:06 charger status: B
[lp-1  ] ERROR 2024/12/13 16:51:06 charger enable: forbidden

Das 'forbidden' kommt sobald ich im UI das Schnellladen aktiviere:
image

Meiner Ansicht näch wäre es perfekt wenn der Charger bei PV Überschluss oder mit Ladeplan den SG-Ready Eingang 1 (Betriebszustand 3 "forcierter Betrieb") schalten würde. Dadurch würden die in der Wärmepumpe konfigurierten höheren Werte für WW und Heizen angefahren.
Die Betriebszustände sind im verlinkten PDF auf seite 17 ausführlich beschrieben. Die Adressen für die SG-Ready "Schalter" sind auf Seite 15/16.
Ich denke gerade für PV Überschuss wäre dies - also normaler programmbetrieb und ein simples SG-Ready on/off - der beste Ansatz.

Da ich nun alles lokal am laufen habe stelle Ich mich sehr gerne als Tester zur Verfügung!

@andig andig reopened this Dec 14, 2024
@andig andig added backlog Things to do later and removed stale Outdated and ready to close labels Dec 14, 2024
@andig
Copy link
Member Author

andig commented Dec 14, 2024

Meiner Ansicht näch wäre es perfekt wenn der Charger bei PV Überschluss oder mit Ladeplan den SG-Ready Eingang 1 (Betriebszustand 3 "forcierter Betrieb") schalten würde. Dadurch würden die in der Wärmepumpe konfigurierten höheren Werte für WW und Heizen angefahren.

@tFaster finde ich eine gute Idee. Die Implementierung hier ist ja arg spezifisch. Ich versuche das mal in einem separaten PR umzusetzen. Stay tuned!

@andig
Copy link
Member Author

andig commented Dec 14, 2024

Ich habe diesen PR hier jetzt so erweitert, dass der Modus auch tatsächlich gesetzt wird- das war bisher durch "forbidden" ausgeschaltet. Wäre Klasse wenn Du das mal ausprobieren könntest. Ist jetzt "stumpf" SG-Ready (normal/boost) ohne weiter Magie.

@andig andig mentioned this pull request Dec 14, 2024
2 tasks
@tFaster
Copy link

tFaster commented Dec 14, 2024

Habe es eben ausprobiert und es funktioniert! Per Schnellladen geht der SG-Ready Eingang1 auf 'an', und beim Ausschalten geht er wieder aus!

Ich musste allerdings die Adressen entsprechend anpassen, da ich ja keinen Stiebel WPM habe sondern ein Lüftungsintegralgerät:

TempConfig: stiebel.TempConfig{
			// temp
			SollAddr: 16, // WW
			IstAddr:  15, // WW
			// enable/disable
			ModeAddr:    4001, // SG-READY Eingang 1
			EnableMode:  1,    // an
			DisableMode: 0,    // aus
		},

Super!!

@andig
Copy link
Member Author

andig commented Dec 14, 2024

Prima. Und jetzt können wir nochmal versuchen, das Gleiche in den neuen sgready Charger zu verpacken ;)

@Funkymaddox
Copy link

Nur zum Verständnis: hier geht es um das ISG Web und NICHT um das ISG Plus?
Sprich: Um die Anbindung eines ISG Web via Modbus in EVCC und nicht um zwei Klingeldrähte von WR an den SG Ready Eingang eines ISG Plus?

Haben eine Stiebel Eltron WPL15AS mit ISG Web und bekommen nächste Woche einen der neuen Sungrow SH20T Wechselrichter installiert. Uns interessiert dieses Thema brennend, da aktuell das ISG Web (welches nur Modbus kann und keine SGReady Eingänge hat) totaler Geldrausschmiss war (wenn man keinen SolarManager oder eine SMA PVAnlage besitzt, da nur diese von Stiebel Eltron durch Kooperationen supported werden)

Grüße und vielen Dank für eure Mühe der Integration

@tFaster
Copy link

tFaster commented Dec 14, 2024

Nur zum Verständnis: hier geht es um das ISG Web und NICHT um das ISG Plus? Sprich: Um die Anbindung eines ISG Web via Modbus in EVCC und nicht um zwei Klingeldrähte von WR an den SG Ready Eingang eines ISG Plus?

@Funkymaddox Ja, es geht um das ISG Web über Modbus geschaltet.

@andig
Copy link
Member Author

andig commented Dec 15, 2024

@tFaster ich habe gerade versucht, ein ISG Template für #17735 zu entwickeln. Dabei ist mir aufgefallen, dass Du mit 4001 "nur" den SG Ready Eingang schaltest. Was spräche dagegen- so wie es hier im PR ursprünglich war- direkt der Programmmodus (1001) oder den SG Ready Modus zu setzen (dafür habe ich allerdings kein Register gefunden)?

Bei der 1001 ist mir allerdings nicht klar, welches der Programme jeweils auf "normal", "boost" und "dimm" zu mappen wären?

Screenshot 2024-12-15 at 20 16 30 Screenshot 2024-12-15 at 20 34 08

@tFaster
Copy link

tFaster commented Dec 15, 2024

@andig Einen SG-Ready "Modus", vergleichbar mit den Betriebsarten (Automatik, Bereitschaft,...) gibt es eigentlich nicht. SG-Ready zu schalten bedeutet es bleibt bei der aktuellen Betriebsart und es kommt ein Modus on-top: es werden lediglich höhere Werte angefahren. Diese höheren Werte werden im ISG Web extra für das zuschalten der SG-Ready Eingänge konfiguriert:
image
Hier habe ich in meinem Fall eine 1,5°C höhere Raumtemperatur und eine 3°C höhere Warmwasser Temperatur eingestellt.
Meine Anlage läuf ansonsten auf der Betriebsart Automatik. Es kommt nur sehr selten vor dass ich diese überhaupt verändere, da ich ja die eingestellten Warmwasserbereitungs- und Heizzeiten beibehalten will.
SG-Ready Eingang 1 schalte ich seither manuell per Home Assistant integration per Schalter im UI zu wenn gerade genug PV Strom da ist oder wenn Tibber gerade sehr günstig ist. Und genau dieses manuelle Schalten würde man dann per EVCC eben automatisiert bekommen.
Kurzum, SG-Ready hat nichts mit der "Betriebsart" zu tun und ich würde diese per EVCC eigentlich garnicht verändern (mir fällt zumindest kein Use Case ein bei dem das wirklich Sinn ergibt).

Das Register das du suchst um "den" SG-Ready Modus ähnlich einer Betriebsart zu setzen gibt es nicht.
Es gibt eben nur das generelle Ein- und Ausschalten von SG-Ready (4000), Eingang 1 (4001) und Eingang 2 (4002):
image
(Lass dich nicht von der Verschiebung verwirren, die Werte im PDF sind immer um 1 höher).

Genau diesen Ansatz empfielt auch Stiebel Eltron in der Dokumentation:
image

@andig
Copy link
Member Author

andig commented Dec 16, 2024

Verstanden, danke. Gibt es auch einen Betriebszustand/ empfohlene Eingangsbelegung für das Dimmen im Falle von §14a?

@andig
Copy link
Member Author

andig commented Dec 16, 2024

Einen SG-Ready "Modus", vergleichbar mit den Betriebsarten (Automatik, Bereitschaft,...) gibt es eigentlich nicht.

Wir hätten allerdings noch die 5001?

Screenshot 2024-12-16 at 08 59 38

@tFaster
Copy link

tFaster commented Dec 16, 2024

Verstanden, danke. Gibt es auch einen Betriebszustand/ empfohlene Eingangsbelegung für das Dimmen im Falle von §14a?

Ich könnte mir vorstellen dass SG-Ready Betriebszustand 1 (Nur Eingang 2 geschaltet) ausreicht, damit die Wärmepumpe quasi in Bereitschaft geht.
Rechtlich kann ich das aber nicht genau sagen. Ich hoffe, dass die Netzbetreiber etc. nicht nur die EVU Sperre als Implementierung durchgehen lassen. Diese geht nur per Hardware (z.b. Shelly) und Handarbeit. Aber ja, müsste man sich nochmal näher damit befassen.
Hier lese ich zumindest mal dass SG-Ready reichen könnte:
https://enbw-eg.de/blog/energiemanagementsysteme-und-der-paragraf-14a-enwg

@tFaster
Copy link

tFaster commented Dec 16, 2024

Einen SG-Ready "Modus", vergleichbar mit den Betriebsarten (Automatik, Bereitschaft,...) gibt es eigentlich nicht.

Wir hätten allerdings noch die 5001?

Screenshot 2024-12-16 at 08 59 38

Das ist lediglich die Status Adresse, also read only. Schalten geht ausschließlich über Eingang 1 und 2.

@andig
Copy link
Member Author

andig commented Dec 16, 2024

Ja, das ist klar- aber zumindest kann man den SG Ready Status damit auslesen :) Siehe SG Ready PR, Template ist jetzt enthalten und kann getestet werden.

@Funkymaddox
Copy link

Ich kann nicht wirklich helfen, da ich mich mir Programmierung und Modbus nicht auskenne, möchte es aber versuchen und die Idee hier mir möglich supporten.
Ich bin bei der Suche zur Anbindung von Stiebel Eltron WP auf folgende andere Ansätze gestoßen, die evtl. @tFaster mehr sagen könnten als mir und für @andig hilfreich sind.

1: (Hier werden auf den ersten Blick sowohl 4000er als auch 5000er Register angewendet)
https://github.com/jandrassy/IsgModbusTcpSG
https://github.com/jandrassy/lab/blob/master/IsgModbusTcpSG/IsgModbusTcpSG.ino

2: (ioBroker Einbindung. Hier werden zusätzlich eine 3 oder 4 vor den normalen Registern gepackt (4001 ist dann 44001))
https://blog.unltd-networx.de/iobroker-stiebel-eltron-tecalor-waermepumpe-per-modbus-anbinden
https://github.com/unltdnetworx/stiebel-modbus

3: (Blocky Skript, dass evtl weiter aufschlussreich sein könnte)
https://blog.unltd-networx.de/iobroker-heizung-bei-pv-ueberschuss-aufheizen-version-20
https://github.com/unltdnetworx/PV-Optimierung?tab=readme-ov-file

5: Sonstige
https://forum.iobroker.net/topic/39326/stiebel-isg-modbus/469
https://github.com/unltdnetworx/ioBroker.stiebel-isg
https://github.com/adersberger/stiebel-eltron-apiserver

@andig
Copy link
Member Author

andig commented Dec 16, 2024

@Funkymaddox ich denke den Status haben wir in https://github.com/evcc-io/evcc/pull/17735/files#diff-819a9c45a3cfa07b01397dba81fbb0905d6ecc66ba3b6b522073574acc88c232 jetzt erreicht. Ich mache hier mal den PR für die spezifische Implementierung zu- mit dem SG Ready PR sollten wir das jetzt über Templates abbilden können.

@andig andig closed this Dec 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backlog Things to do later enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants