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

Viessmann ViCare Integration Not Showing All Entities #126447

Open
dubinsky opened this issue Sep 22, 2024 · 20 comments
Open

Viessmann ViCare Integration Not Showing All Entities #126447

dubinsky opened this issue Sep 22, 2024 · 20 comments

Comments

@dubinsky
Copy link

The problem

I can change the water temperature using ViCare application, but in Home Assistant, the entities to do that are missing.

I suspect that the problem is similar to #122056 and that E3_TCU19_x05 should also be added to the UNSUPPORTED_DEVICES list...

What do you think @CFenner?

Thanks!

What version of Home Assistant Core has the issue?

core-2024.9.2

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant Container

Integration causing the issue

ViCare

Link to integration documentation on our website

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

Diagnostics information

vicare-log.txt

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

No response

@home-assistant
Copy link

Hey there @CFenner, mind taking a look at this issue as it has been labeled with an integration (vicare) you are listed as a code owner for? Thanks!

Code owner commands

Code owners of vicare 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 vicare 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)


vicare documentation
vicare source
(message by IssueLinks)

@CFenner
Copy link
Contributor

CFenner commented Sep 22, 2024

Can you share the diagnostics file, please.

@CFenner
Copy link
Contributor

CFenner commented Sep 22, 2024

We should add the E3 as a gateway directly here: https://github.com/openviess/PyViCare/blob/eb6ac51c0fe588db923265f7deec37f955964504/PyViCare/PyViCareDeviceConfig.py#L87C14-L87C28

Therefore it would be interesting to see the output of the gateway features api call. But that you would need to do with the terminal.

Looks like your device has no circuits, which is as far as I know unusual. The dhw control uses the circuits to access the mode (which is no really necessary / up to date anymore). Therefore creating the entity probably fails.

@dubinsky
Copy link
Author

Can you share the diagnostics file, please.

This?

config_entry-vicare-90d30cd8c3c26777f1b744ca03bfe845 (1).json

@dubinsky
Copy link
Author

dubinsky commented Sep 22, 2024

it would be interesting to see the output of the gateway features api call. But that you would need to do with the terminal.

curl -X GET --url https://api.viessmann.com/iot/v2/features/installations/2547267/gateways/7633301003392224/features returns:

features.json

@platini76
Copy link

I have the same problem, my entity for pressure won't appear. what do you suggest?

@CFenner
Copy link
Contributor

CFenner commented Oct 1, 2024

@dubinsky I added some dhw storage sensors with https://github.com/home-assistant/core/pull/126570/files they will be in the 2024.11 release.

Just to be sure, in the diagnostic file above there is one empty dataset. Can you verify that the devices feature are actually returning something:

curl -X GET --url https://api.viessmann.com/iot/v2/features/installations/2547267/gateways/7633301003392224/devices/0/features

@CFenner
Copy link
Contributor

CFenner commented Oct 1, 2024

@platini76 please have a look at the api docs, I think pressure is a paid feature. Anything else that you miss?

Bildschirmfoto 2024-10-01 um 07 45 02

@dubinsky
Copy link
Author

dubinsky commented Oct 1, 2024

@CFenner

Can you verify that the devices feature are actually returning something:

curl -X GET --url https://api.viessmann.com/iot/v2/features/installations/2547267/gateways/7633301003392224/devices/0/features

returned
device-features.json

@dubinsky
Copy link
Author

dubinsky commented Oct 1, 2024

@CFenner

I added some dhw storage sensors with https://github.com/home-assistant/core/pull/126570/files

Will this make it possible to change the DHW temperature?

Thank you!

@McGiverGim
Copy link

I added some dhw storage sensors with https://github.com/home-assistant/core/pull/126570/files

I'm not too sure if this is the "correct" way to add the sensor.
In my Viessmann Vitocare 050-W, the integration adds a ´water_heater´ sensor, but it does not work as water heater because it only has the current_temperature attribute, but not the "configured" one, the list of operations, etc. Maybe this temperature must be added as target_temperature here https://developers.home-assistant.io/docs/core/entity/water-heater/

@CFenner can you see it you can add the missing attributes to the water heater entity?

@CFenner
Copy link
Contributor

CFenner commented Oct 3, 2024

@dubinsky you probably have no control over the water heater because your device has no circuits.

Fortunately, this coupling is no longer necessary.

November 2022

Important adjustment in IoT features: Split heating circuits and domestic hot water

In our API we have coupled heating circuits (HC) and domestic hot water (DHW) support closely together to keep the backwards compatibility between Legacy devices and devices based on our Viessmann One Base control platform, also called E3. Viessmann One Base provides the HCs and DHW as independent systems with a chance to access HC- and DHW-features as independent features.

What is being adjusted?

The planned adjustments brings the following changes to our IoT features:

adjust heating.circuits.N.operating.modes.* by removing existent DHW dependencies
remove heating.circuits.N.operating.modes.dhw* operating modes
adjust heating.circuits.N.operating.modes.active to only show the following states for the “value” property: auto, heating, >cooling, heatingCooling or testMode
The DHW operating can in future be requested through the following new features:

introduce heating.dhw.operating.modes.off >> Shows whether the DHW is off
adjust heating.dhw.operating.modes.active >> Shows the current DHW operating mode with the possible states for the “value” property: balanced, comfort, eco, off
This change only affects our Viessmann One Base (E3) control platform (wifi integrated devices). For legacy devices, i.e. using a Vitoconnect, there are no changes. However, this also means, depending on the device, requesting and changing the DHW operating mode differs.

I will have a look if we can distinguish the water heater handling for legacy and e3 devices.

@CFenner
Copy link
Contributor

CFenner commented Oct 3, 2024

@McGiverGim target and current temp are set in the water heater entity.

with suppress(PyViCareNotSupportedFeatureError):
self._attr_current_temperature = (
self._api.getDomesticHotWaterStorageTemperature()
)
with suppress(PyViCareNotSupportedFeatureError):
self._attr_target_temperature = (
self._api.getDomesticHotWaterDesiredTemperature()
)

@McGiverGim
Copy link

@CFenner then something seems not to be working, this is the state of my water heater:
image

As you can see, there is a temperature (with null value), but not a target_temperature.

This remembers me the other issue, where the device_class is not being populated. I don't know if maybe they are related.

@CFenner
Copy link
Contributor

CFenner commented Oct 3, 2024

Just had a look at the library, there is a complex logic behind the getDomesticHotWaterDesiredTemperature. It checks the schedule and from that derives the mode, depending on the mode a target temp is set or not. So you probably can only change the target temp if the schedule says the dhw should be on.

We probably need to overhaul that..

@McGiverGim
Copy link

Yes, it has not too much sense at least in my case. My boiler has not any schedule, and the water temp is configured from there.

This are the only "options" I have, comfort, eco or off modes

        "data": [
          {
            "apiVersion": 1,
            "commands": {
              "setMode": {
                "isExecutable": true,
                "name": "setMode",
                "params": {
                  "mode": {
                    "constraints": {
                      "enum": [
                        "comfort",
                        "eco",
                        "off"
                      ]
                    },
                    "required": true,
                    "type": "string"
                  }
                },
                "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/heating.dhw.operating.modes.active/commands/setMode"
              }
            },

and set the temperature:

            "apiVersion": 1,
            "commands": {
              "setTargetTemperature": {
                "isExecutable": true,
                "name": "setTargetTemperature",
                "params": {
                  "temperature": {
                    "constraints": {
                      "efficientLowerBorder": 30,
                      "efficientUpperBorder": 60,
                      "max": 60,
                      "min": 30,
                      "stepping": 1
                    },
                    "required": true,
                    "type": "number"
                  }
                },
                "uri": "https://api.viessmann.com/iot/v1/features/installations/#######/gateways/################/devices/0/features/heating.dhw.temperature.main/commands/setTargetTemperature"
              }
            },

This second one is working if I use the "new sensor" added in this version, so only the "modes" is missing and the integration of all in the water_heater.

@dubinsky
Copy link
Author

dubinsky commented Oct 7, 2024

@CFenner

I will have a look if we can distinguish the water heater handling for legacy and e3 devices.

Thank you!

@McGiverGim
Copy link

In the changelog, https://documentation.viessmann.com/static/changelog in November 2022, says how to detect the base.

@issue-triage-workflows
Copy link

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates.
Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment 👍
This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

@McGiverGim
Copy link

I think this issue remains...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants