Bouni / luxtronik

Luxtronik integration for Home Assistant
MIT License
82 stars 13 forks source link

Question: Thermal Disinfection control #42

Open Kh3nsu opened 2 years ago

Kh3nsu commented 2 years ago

Hello,

does anyone know how to disable automatic TDI and trigger it manually when as example enough power comes down from the solar panels? As for now my Heatpump starts the TDI everytime at night (Not sure which weekday) and I can't even find the setting to disable it.... The problem is that it is drawing the battery empty and it would be way more logical to start it at least at the day, but I can't find how to set the time either....

Can anyone help me with that?

Bouni commented 2 years ago

I see a bunch of parameters that have TDI in their names:

https://github.com/Bouni/python-luxtronik/blob/main/luxtronik/parameters.py#L45-L52

Unfortunately for my heatpump they are all 0:

================================================================================
                                   Parameters
================================================================================
Number: 20    Name: ID_Einst_BwTDI_akt_MO                                        Type: Unknown              Value: 0          Writeable: False
Number: 21    Name: ID_Einst_BwTDI_akt_DI                                        Type: Unknown              Value: 0          Writeable: False
Number: 22    Name: ID_Einst_BwTDI_akt_MI                                        Type: Unknown              Value: 0          Writeable: False
Number: 23    Name: ID_Einst_BwTDI_akt_DO                                        Type: Unknown              Value: 0          Writeable: False
Number: 24    Name: ID_Einst_BwTDI_akt_FR                                        Type: Unknown              Value: 0          Writeable: False
Number: 25    Name: ID_Einst_BwTDI_akt_SA                                        Type: Unknown              Value: 0          Writeable: False
Number: 26    Name: ID_Einst_BwTDI_akt_SO                                        Type: Unknown              Value: 0          Writeable: False
Number: 27    Name: ID_Einst_BwTDI_akt_AL                                        Type: Unknown              Value: 0          Writeable: False

Maybe 0 makes them use a default value (midnight!?)

hhermsen commented 2 years ago

Ik think they correspond to the German weekdays and one for AL(L) days. When set to 1 the heat pump will do the desinfection on that specific day. This is something you can also set in the menu on the pump itself.

Monday – Montag Tuesday – Dienstag Wednesday – Mittwoch Thursday – Donnerstag Friday – Freitag Saturday – Samstag Sunday – Sonntag

Bouni commented 2 years ago

@hhermsen So 0 means don't do it at that specific day and 1 means do it on that day? But where comes the start time for the TDI from!?

Kh3nsu commented 2 years ago

And also how do I trigger it manually? As I don't want it to do it by itself. Home Assistant should control when to do it. If that is even possible.

hhermsen commented 2 years ago

As far as I know you do not have influence on the start time. It will run after a hot water preparation, just as the manual says as well: image You might be able to force it by first setting ID_Einst_BwTDI_akt_AL to 1 and activating a high-speed charge for say a minute and then disabling it again. Haven't tried that yet. image

Kh3nsu commented 1 year ago

Okay so how do I trigger a high-speed charge? What Setting do I have to set to 1?

wiljums commented 1 year ago

Setting 'ID_Ba_Bw_akt' to 'Party'?

iBLtz commented 1 year ago

Hey, I am also facing the same "problem". Did you solve your issue?

joerybruijntjes commented 7 months ago

Here's what I initially did on my machine directly that triggered thermal disinfection instantly:

  1. Go to the overview of weekdays for when to do Thermal Disinfection.
  2. Select any random day other than today and enable it.
  3. Save using the checkmark option on the bottom of the list.
  4. Go back to the overview of weekdays.
  5. Disable the random day you selected and enable the current weekday instead.
  6. Save again using the checkmark option on the bottom of the list.

Now I was toying around with the parameters to try and emulate this programatically, a bit puzzled as to how to trigger the 'save' event. Weirdly - I just needed to set today's parameter (ID_Einst_BwTDI_akt_DO) to 1 programatically and it instantly started with the thermal disinfection program. Not sure why. Perhaps because my water temperature was below the set temperature it forced a hot water generation cycle. Will have to take a snapshot of parameters later and see if I can spot the difference.

Running V3.85.6 (r6445) on MSW2-9S according to the webinterface.

iBLtz commented 7 months ago

Thanks for the feedback. I need to try this !

gris3o commented 4 months ago

Here's what I initially did on my machine directly that triggered thermal disinfection instantly:

  1. Go to the overview of weekdays for when to do Thermal Disinfection.
  2. Select any random day other than today and enable it.
  3. Save using the checkmark option on the bottom of the list.
  4. Go back to the overview of weekdays.
  5. Disable the random day you selected and enable the current weekday instead.
  6. Save again using the checkmark option on the bottom of the list.

Now I was toying around with the parameters to try and emulate this programatically, a bit puzzled as to how to trigger the 'save' event. Weirdly - I just needed to set today's parameter (ID_Einst_BwTDI_akt_DO) to 1 programatically and it instantly started with the thermal disinfection program. Not sure why. Perhaps because my water temperature was below the set temperature it forced a hot water generation cycle. Will have to take a snapshot of parameters later and see if I can spot the difference.

Running V3.85.6 (r6445) on MSW2-9S according to the webinterface.

Hey @joerybruijntjes Could u tell me how you changed the ('ID_Einst_BwTDI_akt_SA') to 1? I can set the value via the local controller (or via the remote controller via webnterface) but is i try to do it via HomeAssistant, it won't take it.

service: luxtronik.write data: parameter: ID_Einst_BwTDI_akt_SA value: 1

When i push the "call service" button i get a green V but when i check the status of the ('ID_Einst_BwTDI_akt_SA') it still is 0. it is 0 in the local controller and in the sensor i have in home assistant for this parameter:

- group: parameters id: ID_Einst_BwTDI_akt_SA friendly_name: ID_Einst_BwTDI_akt_SA

Thanks

joerybruijntjes commented 4 months ago

@gris3o Looks right to me. Did you check the automation trace if it actually updated the value? At least, I use an automation step like this and just triggered the automation manually via the Home Assistant GUI:

automation-tdi

I'll post the script in code below:

service: luxtronik2.write
data:
  parameter: >-
    {{ "ID_Einst_BwTDI_akt_"
    +['MO','DI','MI','DO','FR','SA','SO'][now().weekday()] }}
  value: 1
enabled: true

What might be the issue is that the parameter in question is not write-enabled by default. The bool "true" is not there for these values: https://github.com/Bouni/python-luxtronik/blob/3009ca4898f964271f274c29a25c1ac6dc9d35ae/luxtronik/parameters.py#L72

According to the readme you'd need to set the paramater "safe" of your luxtronik integration config to "false" to write that parameter. I can't find that I have in my setup, it's not in the config, but perhaps it's a GUI option somewhere or I may have set it in the past. Hope this helps!

gris3o commented 4 months ago

@joerybruijntjes Thanks for your comment, all i had to do was set the safe parameter to false.