pail23 / stiebel_eltron_isg_component

Stiebel Eltron ISG integration for Home Assistant
MIT License
45 stars 19 forks source link

Adding additional registers for standard stiebel Wärmpepumpe #19

Closed JulianPSLearner closed 1 year ago

JulianPSLearner commented 1 year ago

v.0.30

Configuration


Add your logs here.

Describe the bug

Bug: The component doesn't support Lüftungsintegralgeräte. Description: The official stiebel documentation names all the registers for the standard Wärmepumpe. At the end of the official document there is another chapter displaying all the registers for "Lüftungsintegralgeräte" (there are two types: normal "Wärmepumpe" and "Wärmepumpe with Lüftungintegralgerät".

The registers for Lüftungsintegralgeräte are different from the normal Wärmepumpen registers. I wanted to ask if its possible to somehow include those registers also? They have exactly the same names and descriptions. Only the registers are different. I installed the component properly and was wondering why all sensors don't work (except few). Then I realized that I have a Wärmepumpe with Lüftungsintegralgerät and therefore the registers stated in the end of the document are relevant. Shouldn't those values also be supported? Is there a way I can change those registers by myself in the original code?

Ingo Niehues recommende to me to open an issue here. See the last 5 posts in this thread: https://community.home-assistant.io/t/is-there-any-interest-in-a-stiebel-eltron-climate-platform/65628/162

I would highly appreciate to see that component also working for Lüftungsintegralgerät. I would even offer support. If you grant me the right document I can replace them manually and give them back to you, so it finds its way into the next release.

JulianPSLearner commented 1 year ago

See page 14 in the official modbus docu of stiebel. There you can find them: https://www.stiebel-eltron.de/content/dam/ste/cdbassets/historic/bedienungs-_u_installationsanleitungen/ISG_Modbus__b89c1c53-6d34-4243-a630-b42cf0633361.pdf

pail23 commented 1 year ago

Since I don't have a Lüftungsintegralgerät, I appreciate a PR for this issue.

A way to implement this could be to create a second StiebelEltronModbusDataCoordinator class (see init.py) with the changed Modbus addresses and a function to check the type of the device. Reading the modbus address 5000 (5001 in the document) should allow to differentiate the 2. After that, you can check the type of the device in the async_setup_entry in init.py (currently line 109 and the instantiate either the existing StiebelEltronModbusDataCoordinator or the new version.

JulianPSLearner commented 1 year ago

Hi @pail23 ,

it seems that my programming skills are limited for that approach :/ Also Python is not someting I'm familiar with :-(

I assume you are a full pro and could implement it fast. I also assume that you are busy and don't have too much spare time. What would need to happen so you would happily implement it? :-) (be honest please)

pail23 commented 1 year ago

I gave it a try and implemented a test version in V0.5.0. I appreciate if you could test it an provide me feedback on which values are correct and which not.

JulianPSLearner commented 1 year ago

Wow! I will check on it this evening and give you Feedback! Thank you, this is highly appreciated.

JulianPSLearner commented 1 year ago

Hi @pail23 ,

first of all: Wow! It seems to properly working with only few sensors not working. I can even change the Operation Mode, which is cool :-) Being able to change the air ventilation levels (0-3) would also be great :-)

I added a screenshot so you easily see which sensors seem to work properly and which are not working. stiebel Most of them work. Maybe its just a wrong register?

xylone commented 1 year ago

I gave it a try and implemented a test version in V0.5.0. I appreciate if you could test it an provide me feedback on which values are correct and which not.

Better reply on this topic, since this one is still open and the other one closed: I tried to use this, but it doesn't seem to work. I saw a register write for 1500 (heatpump), which I need and for 1000 (air something) in the code. Which one is 'exposed' to HA? Because I see only one... (So i think its the 1000 (for the Lüftungsintegralgerät))

pail23 commented 1 year ago

@JulianPSLearner The Unbekannt Values are not the issue. They are not provided by your heat pump model (or I have not figured out which one is the right modbus address). Are there any values which are wrong? Please compare them with the ones on the web ui of the ISG.

pail23 commented 1 year ago

@xylone I'm not sure if I get your comment: 1500 and 1000 are correct, depending on the model of your heatpump. The integration exposes the value/register which is matching your model. There are 2 implementation of the StiebelEltronModbusDataCoordinator in the __init__.py file.

Do you have a error in your log file?

pail23 commented 1 year ago

@JulianPSLearner V0.6.0 implements the air ventilation level. Could please check if this is working?

JulianPSLearner commented 1 year ago

@JulianPSLearner V0.6.0 implements the air ventilation level. Could please check if this is working?

Starting right now :)

JulianPSLearner commented 1 year ago

@JulianPSLearner V0.6.0 implements the air ventilation level. Could please check if this is working?

Ok, I just reinstalled it. Should there be another sensor with the ventilation level? I didnt found it. It seemed everything looks like the same. I checked the init.py to see if the Fan level is present somewhere. It was in line 66. But I dont see any button or a switch (like the operation mode ?

pail23 commented 1 year ago

Yes, it should be a slider called Fan Level. The Implementation is in number.py. What is the model shown on the top left of the Integration Page. LWZ, LWA or WPM?

JulianPSLearner commented 1 year ago

Yes, it should be a slider called Fan Level. The Implementation is in number.py. What is the model shown on the top left of the Integration Page. LWZ, LWA or WPM?

xx Seems to be not known? But it was also now known in the first installation I did. (sensors worked anyways)

pail23 commented 1 year ago

This looks like an older version. Maybe remove it and reinstall it

JulianPSLearner commented 1 year ago

Hm, very odd. I completly deinstalled it again, downloaded your code and installed it fresh. Still looks exactly like the "old" model. I checke the code and found your fan level setup (line 70-78) in number.py In the upper right corner it says model not found. Your Fan level thing seems to be only triggered when LWZ is properly recognized. Could this be the issue? Which register did you use to check the fan level?

JulianPSLearner commented 1 year ago

I searched the actual register to only change the fan level. It seems that there are 4 modes of fan operations modes. I assume you went for "Stufe-Tag" ? Or is there a specific register u used? image

pail23 commented 1 year ago

Yes, I have used the "Stufe Tag" register (1018). I have removed the check for the controller type when adding the Fan Level and created a release 0.6.1. Now it should look like this: grafik

xylone commented 1 year ago

@xylone I'm not sure if I get your comment: 1500 and 1000 are correct, depending on the model of your heatpump. The integration exposes the value/register which is matching your model. There are 2 implementation of the StiebelEltronModbusDataCoordinator in the __init__.py file.

Do you have a error in your log file?

Sorry, it look like it does work. (I think) When switching in HA I see the change in the ServiceWelt. But when I looked at the heatpump display to see the changes, I didn't see any change. But maybe I need to wait a bit to let the servicewelt communicate with the heatpump.

xylone commented 1 year ago

Are you planning to add the temperature settings for Heat circuit and DHW? Heating circuit: 1502 COMFORT TEMPERATURE 1503 ECO TEMPERATURE

DHW: 1510 COMFORT TEMPERATURE 1511 ECO TEMPERATURE

pail23 commented 1 year ago

@xylone The 2 temperature settings are implemented in V0.6.0: grafik

Let me know if it is working in your setup.

xylone commented 1 year ago

I need to read better... sorry... Just updated to the latest version and it's working perfect.

Just one question (curious how any of you manage this): On the heatpump itself it's possible to set the DWH comfort temperature to ie 62 degrees. I use this to set the heatpump once a week to comfort program to make sure it get very hot for anti legionella. After 60 degrees my electric element kicks in and boost it to like 62/63 degrees:

Scherm­afbeelding 2023-03-16 om 14 16 36

On the ServiceWelt it's only possible to set this to max 60, so also the modbus.

How have any of you set this or how do you manage this? Guidelines are: 60 degrees for 20 minutes 65 degrees for 10 minutes 70 degrees for 5 minutes

pail23 commented 1 year ago

@xylone I probably don't follow the guidelines here: I don't heat up to this high temperature.

kucerazdenek commented 1 year ago

@pail23 , excellent work! would it be possible to add control elements also for heating circuit 2 (HK2) ? HK1, works perfectly for me (screens from ISG) image

HK2 (floor heating) would be really good to have ability control all parameters there: image

Thanks, Zdenek

pail23 commented 1 year ago

@kucerazdenek Implemented in V0.8.0

pail23 commented 1 year ago

This issue because a large collection of requests and issues. In order to clean up, I close this issue now.

Please open new issues in case you have further requests or you find things which are not working. Thanks!

JulianPSLearner commented 1 year ago

Hi @pail23 , Sorry for answering late, I was busy the last days. Dude you rock man! Can you please stop be awesome? :-) Jokes aside, can I do you a small appreciation? I Would like to give you a 10 EUR Amazon gift card. Would this be ok for you?

Last two questions: Changing the Fan Level is great. I did an automation that changes the fan level from 2 to 1 in the evening. Unfortunately there is a "Fan-Level" "Stufe-Nacht". So after 8pm it goes to a default and ignores my actual setting (as its "day). Would it be possible to add Stufe-Nacht (Reg 1019 or actually 1018 then) also as a slider? Then I can use always the proper one.

And just out of curiousity: Can you somehow define the fan sensor as actually "type:Fan" ? So all entity cards that apply to the category "fan" will work also :-)

Regarding the gift card: Can I use the contact info here to send it?