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

Open
wants to merge 14 commits into
base: master
Choose a base branch
from
Open

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 removed the stale Outdated and ready to close label Nov 20, 2024
@andig
Copy link
Member Author

andig commented Nov 21, 2024

PR ist auf aktuellem Stand und sollte sich jetzt wieder compilieren lassen!

@andig
Copy link
Member Author

andig commented Nov 21, 2024

@Vogelbecker let me know if you need help.

@Vogelbecker
Copy link
Contributor

What is necessary to establish a connection to the heat pump?
I have cloned and built the branch.
Do I need to create a template difiniton?

@andig
Copy link
Member Author

andig commented Nov 25, 2024

You need a charger of

type: stiebel-isg
uri: <ip:502>

@Vogelbecker
Copy link
Contributor

Ah, okay...
now the isg is set up as charger. But I get this response:

mfriedr7@dev:~/evcc-isg$ ./evcc charger -l trace
[main  ] INFO 2024/11/25 15:56:49 evcc 0.131.6 (4f3b6768)
[main  ] INFO 2024/11/25 15:56:49 using config file: /home/mfriedr7/evcc.yaml
[db    ] INFO 2024/11/25 15:56:49 using sqlite database: /home/mfriedr7/.evcc/evcc.db
[db    ] TRACE 2024/11/25 15:56:49 SELECT count(*) FROM sqlite_master WHERE type='table' AND name="settings" -1 <nil>
[db    ] TRACE 2024/11/25 15:56:49 SELECT sql FROM sqlite_master WHERE type IN ("table","index") AND tbl_name = "settings" AND sql IS NOT NULL order by type = "table" desc 1 <nil>
[db    ] TRACE 2024/11/25 15:56:49 SELECT * FROM `settings` LIMIT 1 -1 <nil>
[db    ] TRACE 2024/11/25 15:56:49 SELECT * FROM `settings` 2 <nil>
[db    ] TRACE 2024/11/25 15:56:49 SELECT count(*) FROM sqlite_master WHERE type='table' AND name="devices" -1 <nil>
[db    ] TRACE 2024/11/25 15:56:49 SELECT count(*) FROM sqlite_master WHERE type='table' AND name="device_details" -1 <nil>
[db    ] TRACE 2024/11/25 15:56:49 SELECT count(*) FROM sqlite_master WHERE type='table' AND name="configs" -1 <nil>
[db    ] TRACE 2024/11/25 15:56:49 SELECT sql FROM sqlite_master WHERE type IN ("table","index") AND tbl_name = "configs" AND sql IS NOT NULL order by type = "table" desc 1 <nil>
[db    ] TRACE 2024/11/25 15:56:49 SELECT * FROM `configs` LIMIT 1 -1 <nil>
[db    ] TRACE 2024/11/25 15:56:49 SELECT count(*) FROM sqlite_master WHERE type='table' AND name="config_details" -1 <nil>
[db    ] TRACE 2024/11/25 15:56:49 SELECT count(*) FROM sqlite_master WHERE type='table' AND name="config_details" -1 <nil>
[db    ] TRACE 2024/11/25 15:56:49 SELECT * FROM `configs` WHERE `configs`.`class` = 1 0 <nil>
[stiebel] TRACE 2024/11/25 15:56:49 modbus: send 00 01 00 00 00 06 01 04 02 0a 00 01
[stiebel] TRACE 2024/11/25 15:56:49 modbus: recv 00 01 00 00 00 03 01 84 02
[stiebel] TRACE 2024/11/25 15:56:52 modbus: send 00 02 00 00 00 06 01 04 02 0a 00 01
[stiebel] TRACE 2024/11/25 15:56:52 modbus: recv 00 02 00 00 00 03 01 84 02
[stiebel] TRACE 2024/11/25 15:56:52 modbus: send 00 03 00 00 00 06 01 03 05 dc 00 01
[stiebel] TRACE 2024/11/25 15:56:52 modbus: recv 00 03 00 00 00 03 01 83 02
[stiebel] TRACE 2024/11/25 15:56:52 modbus: send 00 04 00 00 00 06 01 04 02 0a 00 01
[stiebel] TRACE 2024/11/25 15:56:52 modbus: recv 00 04 00 00 00 03 01 84 02
.Soc:          modbus: exception '2' (illegal data address), function '4'
Charge status: modbus: exception '2' (illegal data address), function '4'
Enabled:       modbus: exception '2' (illegal data address), function '3'
Limit Soc:     modbus: exception '2' (illegal data address), function '4'
Features:      [IntegratedDevice]

According to my heating technician, modbus is activated. I'll see if I can confirm this with another system

@andig
Copy link
Member Author

andig commented Nov 25, 2024

Mhhm. I‘ve tested this with an ISG. If you look at the code: are the modbus addresses correct?

@Vogelbecker
Copy link
Contributor

Ah, thats a good point. I had the manufacturers update my device from version v10.1.0 to v12.2.3, but the result was the same.

No they were incorrect for my heating system.
I've checked the modbus addresses and there is a difference for different models ( Heatpumps with "WDP" != "Lüftungsintegralgeräte")
https://www.tecalor.de/content/dam/tec/de/downloads/Modbus_Bedienungsanleitung.pdf

I've modifed charger/stiebel-isg.go

TempConfig: TempConfig{
                        // temp
                        SollAddr:  17, // WW
                        IstAddr:   16, // WW
                        TempDelta: 5,   // °C
                        // enable/disable
                        ModeAddr:    1001, // Betriebsart
                        EnableMode:  3,    // Komfortbetrieb
                        DisableMode: 2,    // Programmbetrieb
                        // status
                        StatusAddr: 2001,   // Betriebsstatus
                        StatusBits: 1 << 5, // WW Betrieb

It looks as if we are one step further there:

mfriedr7@dev:~/evcc-isg$ ./evcc charger
[main  ] INFO 2024/11/27 12:04:37 evcc 0.131.6 (4f3b6768)
[main  ] INFO 2024/11/27 12:04:37 using config file: /home/mfriedr7/evcc.yaml
[db    ] INFO 2024/11/27 12:04:37 using sqlite database: /home/mfriedr7/.evcc/evcc.db
[stiebel] DEBUG 2024/11/27 12:04:37 ist: 48.8°C, soll: 2.8°C, energy required: -0.000kWh
Soc:           49%
Charge status: B
Enabled:       false
Limit Soc:     2%
Features:      [IntegratedDevice]

@andig
Copy link
Member Author

andig commented Nov 29, 2024

@Vogelbecker did you try to actually use this with a loadpoint?

@github-actions github-actions bot added the stale Outdated and ready to close label Dec 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request stale Outdated and ready to close
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants