home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
70.14k stars 29.18k forks source link

Overkiz: Atlantic Domestic Hot Water Operating Mode issue #113219

Closed lolo31370 closed 1 month ago

lolo31370 commented 4 months ago

The problem

First, the Operating Mode showed by HA when switching with the Atlantic App is "eco" or "performance" But the HA UI only allows to choose between manualEcoActive, manualEcoInactive and autoMode which are incorrect (error message while apply). I have a script calling set_operation_mode to eco or performance which worked last month but doesn't anymore after upgrading to 2024.3. Looking at the code, the component should use the class AtlanticPassAPCDHW from atlantic_pass_apc_dhw.py but I suspect it calls instead DomesticHotWaterProduction from domestic_hot_water_production.py

Atlantic

What version of Home Assistant Core has the issue?

core-2024.3.0

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Overkiz

Link to integration documentation on our website

https://www.home-assistant.io/integrations/overkiz/

Diagnostics information

overkiz-e260467bf99e4dee543219f7a5a38968-DHWP Actuator-665b2430f7ea57de0a447ce4c91a8678.json

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

No response

home-assistant[bot] commented 4 months ago

Hey there @imicknl, @vlebourl, @tetienne, @nyrodev, @tronix117, mind taking a look at this issue as it has been labeled with an integration (overkiz) you are listed as a code owner for? Thanks!

Code owner commands Code owners of `overkiz` can trigger bot actions by commenting: - `@home-assistant close` Closes the issue. - `@home-assistant rename Awesome new title` Renames the issue. - `@home-assistant reopen` Reopen the issue. - `@home-assistant unassign overkiz` Removes the current integration label and assignees on the issue, add the integration domain after the command. - `@home-assistant add-label needs-more-information` Add a label (needs-more-information, problem in dependency, problem in custom component) to the issue. - `@home-assistant remove-label needs-more-information` Remove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.

(message by CodeOwnersMention)


overkiz documentation overkiz source (message by IssueLinks)

lolo31370 commented 4 months ago

In the log file, the DHW ("controllableName": "io:AtlanticDomesticHotWaterProductionV2_CETHI_V4_IOComponent") section starts at line 9542 to line 10267 Be careful, I have another DHW ("controllableName": "modbuslink:AtlanticDomesticHotWaterProductionMBLComponent") starting at line 10402 to line 11118

kilkenny44 commented 4 months ago

Same problem for me (see logs) Away mode not working Setting temp neither

home-assistant-overkiz.log

PaulMuadDib commented 4 months ago

Hello there. Trying to change the OPERATION_MODE to the 3 available modes (manualEcoActive, manualEcoInactive, autoMode) fails (diagnostic file attached), but calling the service water_heater.set_operation_mode with the the 3 keys: eco, performance or 'off' works: eco puts the water heater in auto mode, off puts it back to manual, and performance is the boost mode (according to the mobile app). config_entry-overkiz-d932b5502b744e3b7d3bed0329a61471 (3).json

anasiot commented 4 months ago

Same problem here only 3 modes Auto mode eco active eco inactive and all in error. performance to activate the boost is not showed can you please advise

ALERTua commented 4 months ago

After multiple hours of investigation, I'm afraid, AtlanticPassAPCDHW won't help, as it calls the boost mode using the wrong command, is based on HEAT_PUMP mode, and does not account for manualEcoActive/Inactive. This needs a new subclass from AtlanticPassAPCDHW to support all this. I will give it a try, but I doubt my skills are enough to make a decent fix.

ALERTua commented 4 months ago

I have added a pull request #114178, that has been tested on my Atlantic Steatite Cube WI-FI VM 150 S4CS 2400W. The change correctly determines its type, uses the newly created class, adds multiple sensors, correctly changes between boost, eco, manual, and away modes. image

lolo31370 commented 4 months ago

Thank you @ALERTua You're new class is working on my second DHW (modbuslink:AtlanticDomesticHotWaterProductionMBLComponent) but doesn't work on my first DHW (io:AtlanticDomesticHotWaterProductionV2_CETHI_V4_IOComponent). Even if I add it in the CONTROLLABLE_NAME_TO_WATER_HEATER_ENTITY array. I guess I have to code a specific class for this one...

ALERTua commented 4 months ago

@lolo31370 So the way it works now is all devices are distributed between the three types by one particular description: UIWidget. As this field is <UIWidget.DOMESTIC_HOT_WATER_PRODUCTION: 'DomesticHotWaterProduction'> for my Atlantic Steatite Cube WI-FI VM 150 S4CS 2400W, it falls into the common DomesticHotWaterProduction usage, which does not contain the correct instructions for the device. In my code, I have added another field to distinguish the devices by: controllable_name, as this field was suitable for my device to distinguish it from the common DomesticHotWaterProduction device. I understand that there can be hundreds of more devices with their own instructions and maybe distinguishable fields to tell them apart, but I have only one water heater and cannot cover more devices :) Yes, you need a separate class then: maybe a child from an existing one, maybe totally new one, but I proved that it is not very hard to do, and can be done even blindly using .json from homeassistant like the ones above, as they contain all the commands and all the fields needed to control and read a device. Let's prove my point by finishing what I started, then I will help to cover more devices.

sippe2 commented 4 months ago

@ALERTua Great work and thank you! Hopefully the Atlantic STEATITE CUBE WIFI WM100 is close enough to the device you are using. It seems there might be some variations between models.

lolo31370 commented 3 months ago

@ALERTua It seems you gave up to add a new class seeing the 3 new PRs included in the 2024.4. Is it a request from the HA team ? Do they ask to update binary_sensor, sensor and number.py ? I created a new class called by your selection method and it works :)

ALERTua commented 3 months ago

@lolo31370 no-no, I am not at all giving up on this! According to https://github.com/home-assistant/core/pull/114178#discussion_r1544688300 there is one mere formal thing left — to change one variable to another. The change will be possible as soon as https://github.com/home-assistant/core/blob/dev/homeassistant/components/overkiz/manifest.json "requirements": ["pyoverkiz==1.13.9"], is "requirements": ["pyoverkiz==1.13.10"],. @iMicknl said we'll try to merge my PR in for next months update.

@lolo31370 What device did you cover with your new class? Will you make a PR after mine is merged?

lolo31370 commented 3 months ago

@ALERTua Understood, I will wait next month to do a PR :) I did the class for a Thermor Aeromax 5 but I guess it should also work with other DWH with heat pump from Atlantic

iMicknl commented 3 months ago

@lolo31370 you can already create your PR. When #114178 is merged, you can rebase your branch. It is good to create it as early as possible, since a review will take time.

ALERTua commented 3 weeks ago

congratulations, everyone! the changes have been released and are working well in my production server :)

anasiot commented 3 weeks ago

congratulations, everyone! the changes have been released and are working well in my production server :)

Just installed the HA 2024 07 release but I don’t see those changes on overkiz integration can you please advise ?

sippe2 commented 3 weeks ago

congratulations, everyone! the changes have been released and are working well in my production server :)

@ALERTua Thank you, Alexey. I am very grateful that you managed to solve the secrets of the Atlantic Steatite Cube. I hope you continue to develop support for the Atlantic. You just made my life a lot easier, as I no longer have to keep running to buy new smart plugs when the old ones break under load (and yes, 16A relay seems to be too weak), and I no longer have to fear a fire.

Atlantic Steatite Cube VM100 2400W

dashboard

Just one very stupid question... How can I set absence on in automation side?

Performance mode goes like this:

performance

And manual mode goes like this:

manual

But absence mode... Do you prefer like this:

away
ALERTua commented 3 weeks ago

Just installed the HA 2024 07 release but I don’t see those changes on overkiz integration can you please advise ?

The changes applied on both previously added devices and the newly added ones. Try re-adding your integration

@sippe2 thank you for your kind words. I will dig deeper into the possibilities of the API of my device when I have more stable electricity. Right now everything circles around getting the house stuff done in those 2 hours when the electricity is on.

As for the Away mode, this code works for me:

service: water_heater.set_away_mode
data:
  away_mode: true
target:
  entity_id: water_heater.boiler

The Away mode is not an operational mode in Home Assistant, but a separate device state. It can be done as an operational state, which would be more logical for me, but I've done it the way it was previously done in the other similar devices of this integration.

anasiot commented 3 weeks ago

Just installed the HA 2024 07 release but I don’t see those changes on overkiz integration can you please advise ?

The changes applied on both previously added devices and the newly added ones. Try re-adding your integration I already tried to delete the integration and reinstall it again but it does not change any idea IMG_5303

sippe2 commented 3 weeks ago

@anasiot , What device are you using? The following devices have been found to work at this time: Atlantic Steatite Cube WI-FI ES-VM 150 (2400W) Atlantic Steatite Cube WI-FI ES-VM 100 (2400W)

anasiot commented 3 weeks ago

@anasiot , What device are you using? The following devices have been found to work at this time: Atlantic Steatite Cube WI-FI ES-VM 150 (2400W) Atlantic Steatite Cube WI-FI ES-VM 100 (2400W)

I don’t know what is the reference of mine , I have this info at the overkiz main page connected with Cozytouch V2 IMG_5304

ALERTua commented 3 weeks ago

@anasiot that's a different device to operate. I could help you set up a development environment to test and add support for your device via my changes if you want to and have Linux and python knowledge. please contact me via facebook or telegram @ALERTua

anasiot commented 3 weeks ago

@ALERTua oh I was waiting for this feature since few months :( I don’t have Linux and python knowledge , only sql basics

ALERTua commented 3 weeks ago

@anasiot I'm afraid in this case the only way for me is to get your Atlantic Account credentials, add your device to my development HA server, make your device work (make it use my current changes or make a new class for it), create a pull request to support your device type. and won't be able to test it before it is in the stable HA version.

frco9 commented 1 week ago

Hello @ALERTua,

Could you test my branch : https://github.com/frco9/core/tree/feat/make-it-work-for-io (this commit). I've tested it on my Atlantic Lineo (io:AtlanticDomesticHotWaterProductionV2_CE_FLAT_C2_IOComponent). All your changes are working for my io device, can you test it also works for modbus ? If so I'll create an official PR

ALERTua commented 1 week ago

@frco9 reading them, the changes seem fine (except for the class renaming and annotation), I will test them as soon as I have the electricity. It is a tough time with power right now in Kyiv, Ukraine. Got only 3 times by 2 hours of electricity per day.

sippe2 commented 1 week ago

Hi @frco9,

It’s worth testing whether the absence mode works the same way as in the Atlantic Steatite Cube. @ALERTua has made a fix to its functionality. Practically, the absence mode requires start and end times to start correctly.

https://github.com/iMicknl/python-overkiz-api/pull/1294 https://github.com/home-assistant/core/pull/121801

ALERTua commented 1 week ago

@frco9 Got some time to test due to the rainy weather. Yes, your code works. Here's the final one in my branch without the class naming. Based on my PR https://github.com/home-assistant/core/pull/121801, so the away mode also works correctly. Let's not spam here. We can keep in touch in Discord: alertua