Giter VIP home page Giter VIP logo

mypyllant-component's People

Contributors

ardyp87 avatar krmarien avatar misa1515 avatar ml1nk avatar pepsonel avatar rkeicher avatar signalkraft avatar szflo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mypyllant-component's Issues

Outdoor Temp Sensor unknown at 0.0

Before submitting a new issue

Problem description

The sensor.outdoor_temperature reports "Unknown" when the temperature is exactly 0.0. It reports fine either side of zero but always goes unknown at zero.

Logs

N/A

unexpected keyword argument 'firmware'

Before submitting a new issue

Problem description

mypyllant integration suddenly stopped working.

Logs

TypeError: Claim.__init__() got an unexpected keyword argument 'firmware'
2023-10-04 15:56:30.566 DEBUG (MainThread) [custom_components.mypyllant] Finished fetching myVAILLANT data in 0.122 seconds (success: False)
2023-10-04 15:56:30.567 DEBUG (MainThread) [custom_components.mypyllant] Refreshing DailyDataCoordinator
2023-10-04 15:56:30.567 DEBUG (MainThread) [custom_components.mypyllant] Starting async update data for DailyDataCoordinator
2023-10-04 15:56:30.568 DEBUG (MainThread) [custom_components.mypyllant] Waiting 119s until token refresh for [email protected]
2023-10-04 15:56:30.568 DEBUG (MainThread) [custom_components.mypyllant] Getting data from 2023-10-04 00:00:00 to 2023-10-05 00:00:00
2023-10-04 15:56:30.610 ERROR (MainThread) [custom_components.mypyllant] Unexpected error fetching myVAILLANT data: Claim.__init__() got an unexpected keyword argument 'firmware'
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 290, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/mypyllant/__init__.py", line 197, in _async_update_data
    async for system in await self.hass.async_add_executor_job(
  File "/usr/local/lib/python3.11/site-packages/myPyllant/api.py", line 265, in get_systems
    async for claim in claims:
  File "/usr/local/lib/python3.11/site-packages/myPyllant/api.py", line 251, in get_claims
    yield Claim(**dict_to_snake_case(claim_json))
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: Claim.__init__() got an unexpected keyword argument 'firmware'
2023-10-04 15:56:30.619 DEBUG (MainThread) [custom_components.mypyllant] Finished fetching myVAILLANT data in 0.051 seconds (success: False)
2023-10-04 15:56:30.622 WARNING (MainThread) [custom_components.mypyllant.binary_sensor] No system data, skipping binary sensors
2023-10-04 15:56:30.624 WARNING (MainThread) [custom_components.mypyllant.sensor] No system data, skipping sensors
2023-10-04 15:56:30.626 DEBUG (MainThread) [custom_components.mypyllant.sensor] Daily data: None
2023-10-04 15:56:30.626 WARNING (MainThread) [custom_components.mypyllant.sensor] No daily data, skipping sensors
2023-10-04 15:56:30.628 WARNING (MainThread) [custom_components.mypyllant.climate] No system data, skipping climate
2023-10-04 15:56:30.630 WARNING (MainThread) [custom_components.mypyllant.water_heater] No system data, skipping water heater

Zone validation failed 'current_special_function value is not a valid enumeration member;'

Thanks for this Integration!

similar to #23 start failed.

Problem description
Try to connect & get data from VC 20CS/1-7 (N-DE) ecoTEC exclusive.
No devices or entity appear.

Logs

Logger: custom_components.mypyllant
Source: custom_components/mypyllant/__init__.py:155
Integration: myVAILLANT (documentation, issues)
First occurred: 22. September 2023 um 00:30:01 (6 occurrences)
Last logged: 00:05:052023-09-22 00:30:01.613 DEBUG (MainThread) [custom_components.mypyllant] Creating API and logging in with ********* in realm *********
2023-09-22 00:30:04.961 DEBUG (MainThread) [custom_components.mypyllant] Refreshing SystemCoordinator
2023-09-22 00:30:04.961 DEBUG (MainThread) [custom_components.mypyllant] Starting async update data for SystemCoordinator
2023-09-22 00:30:04.962 DEBUG (MainThread) [custom_components.mypyllant] Waiting 119s until token refresh for *********
2023-09-22 00:30:05.543 ERROR (MainThread) [custom_components.mypyllant] Unexpected error fetching myVAILLANT data: 1 validation error for Zone
current_special_function
  value is not a valid enumeration member; permitted: 'NONE', 'QUICK_VETO', 'HOLIDAY' (type=type_error.enum; enum_values=[<ZoneCurrentSpecialFunction.NONE: 'NONE'>, <ZoneCurrentSpecialFunction.QUICK_VETO: 'QUICK_VETO'>, <ZoneCurrentSpecialFunction.HOLIDAY: 'HOLIDAY'>])
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 293, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/mypyllant/__init__.py", line 136, in _async_update_data
    data = [
           ^
  File "/config/custom_components/mypyllant/__init__.py", line 136, in <listcomp>
    data = [
           ^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/api.py", line 282, in get_systems
    system = System(
             ^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/models.py", line 164, in __init__
    self.zones = [Zone(system_id=self.id, **z) for z in self._merge_object("zones")]
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/models.py", line 164, in <listcomp>
    self.zones = [Zone(system_id=self.id, **z) for z in self._merge_object("zones")]
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/models.py", line 110, in __init__
    super().__init__(**data)
  File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 341, in __init__
    raise validation_error
pydantic.error_wrappers.ValidationError: 1 validation error for Zone
current_special_function
  value is not a valid enumeration member; permitted: 'NONE', 'QUICK_VETO', 'HOLIDAY' (type=type_error.enum; enum_values=[<ZoneCurrentSpecialFunction.NONE: 'NONE'>, <ZoneCurrentSpecialFunction.QUICK_VETO: 'QUICK_VETO'>, <ZoneCurrentSpecialFunction.HOLIDAY: 'HOLIDAY'>])
2023-09-22 00:30:05.553 DEBUG (MainThread) [custom_components.mypyllant] Finished fetching myVAILLANT data in 0.591 seconds (success: False)
2023-09-22 00:30:05.553 DEBUG (MainThread) [custom_components.mypyllant] Refreshing DailyDataCoordinator
2023-09-22 00:30:05.553 DEBUG (MainThread) [custom_components.mypyllant] Starting async update data for DailyDataCoordinator
2023-09-22 00:30:05.553 DEBUG (MainThread) [custom_components.mypyllant] Waiting 119s until token refresh for *********
2023-09-22 00:30:05.554 DEBUG (MainThread) [custom_components.mypyllant] Getting data from 2023-09-22 00:00:00 to 2023-09-23 00:00:00

ON/OFF/AUTO Switching of Heater not working

Hello

all functions for my heater work except climate.zone_0_hvac_modes: off, heat_cool, auto

Logger: homeassistant.components.websocket_api.http.connection
Source: custom_components/mypyllant/climate.py:280
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 08:44:51 (13 occurrences)
Last logged: 14:35:39

[547183080256] 404, message='Not Found', url=URL('https://api.vaillant-group.com/service-connected-control/end-user-app-api/v1/systems/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/zones/0/heatingOperationMode')
[547379693888] 404, message='Not Found', url=URL('https://api.vaillant-group.com/service-connected-control/end-user-app-api/v1/systems/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/zones/0/heatingOperationMode')
[546800498112] 404, message='Not Found', url=URL('https://api.vaillant-group.com/service-connected-control/end-user-app-api/v1/systems/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/zones/0/heatingOperationMode')
[546775130304] 404, message='Not Found', url=URL('https://api.vaillant-group.com/service-connected-control/end-user-app-api/v1/systems/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/zones/0/heatingOperationMode')
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 226, in handle_call_service
await hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1974, in async_call
response_data = await coro
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2011, in _execute_service
return await target(service_call)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 235, in handle_service
return await service.entity_service_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 870, in entity_service_call
response_data = await _handle_entity_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 942, in _handle_entity_call
result = await task
^^^^^^^^^^
File "/config/custom_components/mypyllant/climate.py", line 280, in async_set_hvac_mode
await self.coordinator.api.set_zone_heating_operating_mode(
File "/usr/local/lib/python3.11/site-packages/myPyllant/api.py", line 341, in set_zone_heating_operating_mode
return await self.aiohttp_session.post(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 643, in _request
resp.raise_for_status()
File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 1005, in raise_for_status
raise ClientResponseError(
aiohttp.client_exceptions.ClientResponseError: 404, message='Not Found', url=URL('https://api.vaillant-group.com/service-connected-control/end-user-app-api/v1/systems/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/zones/0/heatingOperationMode')

Delay in receiving update from server

Have arotherm plus and myvaillant app with sensoCOMFORT VRC 720 + sensoNET VR 921 based in UK.
Two day history of one-way delay from server to HA. Sending commands to the server work OK. So for example I send a command for a quick mode change of temp, the change in target temp shows in the mobile myvaillant app but the target temp sensor in HA doesn't update for about half an hour.
I have reloaded and also reinstalled app. I have looked at the logs and there doesn't appear to be any obvious problem, it's just that the update to the new value is delayed. I can upload debug data if that would be helpful.
I delayed reporting in case it was a server issue. But the myvaillant app updates normally while the HA data is delayed.

Q: Control of ventilation - recoVAIR VAR 360/4

Is it possible to add ventilation control?

My ventilation device: VAR 360/4
One entity was discovered: "VAR 360/4 Consumed Electrical Energy Heating"

Other my devices like flexoCOMPACT and VR 921 works great. Thanks!

Daily energy consumption totals incorrect

Before submitting a new issue

Problem description

The totals are reset to zero at 0:30.
No more values are recorded until 1:30 am.
The values from 0:00 to 1:30 are lost for the day.
As a test, the system was set to standby during this time, then the values fit.

Logs

The problem cannot be recorded in log files

Gas consumption

Thank you very much for writing this integration. I can confirm it works on my new ECOTEC PLUS + VR940F + SensoComfort installation!

One thing: does anyone get any gas/hot water consumption readings from their ECOTEC PLUS? I get none (neither on the thermostat, nor in the MyVaillant app or HA). Since the manual said this was possible but dependent on the installation, I am wondering whether the ECOTEC heater does not provide the info, or the installer has overlooked something.

Support for Suaner Duval(SD)

Hello,

In the new functionality of version v0.2.0:
+Added choice of brands (Vaillant and Saunier Duval)

What credentials do you have to log in with, with the MiGo Link app?

How has it been integrated with Sauner Duval?

Request - support for Bolier

Hi there,

I'm looking for something similar for my Vaillant Vaillant Ecotec Plus 32 (boiler) + sensoHOME VRT 380f + sensoNET

I have tried with my app account and I can log in correctly, but it does not show any device.

Do you think I can use this for the installation I have at home?

Thanks in advance 👍

Can't see Ecotec data in Hybrid system. All other data are OK

Before submitting a new issue

Problem description

Hi, I own an Hybrid system with aroTherm, Ecotec plus, Hydraulic station and Aurostor, sensoCOMFORT 720 and VR 92 as in the Vaillant scheme attached. System scheme is n.12 as is set in sensoCOMFORT 720 parameters. In myVaillant app i can see arotherm electricity consumption and ecotec gas consumption data.
In my pyllant data instead, ecotec data are totally missed and strangely reported system scheme is "1" and not "12". I can see all other data. There is something i'm missing?

Immagine 2023-11-17 023511
Immagine 2023-11-17 023631
Immagine 2023-11-17 023414

Logs

Put your debug logs here
Be careful not to include tokens, emails, and other personal information

Integration stops working when Cooling Mode is active

Hi,
Today my Arotherm Plus went into cooling mode and soon after it did all entities for this myVaillant integration completely stopped responding.

After I returned it to heating mode it started working again.

I did not capture any logs unfortunately, but id it happens again I can do so.
I am running 0.2 since the 0.3 beta didn't work for me.

Error doing job: Task exception was never retrieved

Before submitting a new issue

Problem description

From 02:55 this morning the data from my ASHP appeared to be active but my automations failed.

The automation running was climate.set HVAC mode to Auto through a script and has been used on many occasions before. After trying to manually call it a few times I reloaded the integration and all the data points changed as if they had been stuck for a few hours. I then called the script again and it worked. I checked the logs and found one from 02:55.
Since then I have some data points that are updating but I'm not receiving anything for climate.zone1 or sensor.heating_state_in_zone_1. They're still stuck as they were at 02:55.

Logs

Logger: homeassistant
Source: custom_components/mypyllant/binary_sensor.py:59
Integration: myVAILLANT (documentation, issues)
First occurred: 02:55:54 (63 occurrences)
Last logged: 06:01:54

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 233, in _handle_refresh_interval
await self._async_refresh(log_failures=True, scheduled=True)
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 389, in _async_refresh
self.async_update_listeners()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 172, in async_update_listeners
update_callback()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 469, in _handle_coordinator_update
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 779, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 879, in _async_write_ha_state
state, attr = self._async_generate_attributes()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 820, in _async_generate_attributes
state = self._stringify_state(available)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 785, in _stringify_state
if (state := self.state) is None:
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/binary_sensor/init.py", line 218, in state
if (is_on := self.is_on) is None:
^^^^^^^^^^
File "/config/custom_components/mypyllant/binary_sensor.py", line 124, in is_on
return self.system.has_diagnostic_trouble_codes
^^^^^^^^^^^
File "/config/custom_components/mypyllant/binary_sensor.py", line 59, in system
return self.coordinator.data[self.system_index]
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
IndexError: list index out of range

Integration no longer loads any Data (Version 0.51)

Before submitting a new issue

Problem description

Beta Version of 0.50 worked fine, both the final 0.50 and the 0.51 no longer show any entities or data

Logs

2023-10-07 10:14:59.818 ERROR (MainThread) [custom_components.mypyllant] Unexpected error fetching myVAILLANT data: wrong value type for field “diagnostic_trouble_codes” - should be “list[dict] | None” instead of value “[{‘serialNumber’: ‘212’, ‘articleNumber’: ‘0020260962’, ‘codes’: []}, {‘serialNumber’: ‘212’, ‘articleNumber’: ‘0020260914’, ‘codes’: []}, {‘serialNumber’: ‘21230700100220663100007011N8’, ‘articleNumber’: ‘0010022066’, ‘codes’: []}, {‘serialNumber’: ‘212’, ‘articleNumber’: ‘0010021117’, ‘codes’: []}, {‘serialNumber’: ‘212’, ‘articleNumber’: ‘0020184846’, ‘codes’: []}]” of type “list”
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py”, line 290, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/config/custom_components/mypyllant/init.py”, line 173, in _async_update_data
data = [
^
File “/config/custom_components/mypyllant/init.py”, line 173, in
data = [
^
File “/usr/local/lib/python3.11/site-packages/myPyllant/api.py”, line 283, in get_systems
system = System.from_api(
^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/myPyllant/models.py”, line 198, in from_api
system: System = super().from_api(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/myPyllant/models.py”, line 85, in from_api
return from_dict(
^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/dacite/core.py”, line 68, in from_dict
if config.check_types and not is_instance(value, field_type):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
dacite.exceptions.WrongTypeError: wrong value type for field “diagnostic_trouble_codes” - should be “list[dict] | None” instead of value “[{‘serialNumber’: 

Error when adding via HACS

Awesome that you made this component! Unfortunately I encountered an error when adding it to Home Assistant:

custom_components.mypyllant

Deze fout is ontstaan door een aangepaste integratie.

Logger: custom_components.mypyllant
Source: deps/lib/python3.10/site-packages/myPyllant/models.py:114
Integration: myVAILLANT (documentation, issues)
First occurred: 23:03:40 (2 occurrences)
Last logged: 23:03:40

Unexpected error fetching myVAILLANT data: 1 validation error for Zone humidity field required (type=value_error.missing)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 239, in _async_refresh
    self.data = await self._async_update_data()
  File "/config/custom_components/mypyllant/__init__.py", line 114, in _async_update_data
    data = [
  File "/config/custom_components/mypyllant/__init__.py", line 114, in <listcomp>
    data = [
  File "/config/deps/lib/python3.10/site-packages/myPyllant/api.py", line 199, in get_systems
    system = System(
  File "/config/deps/lib/python3.10/site-packages/myPyllant/models.py", line 114, in __init__
    self.zones = [Zone(system_id=self.id, **z) for z in self._raw_zones]
  File "/config/deps/lib/python3.10/site-packages/myPyllant/models.py", line 114, in <listcomp>
    self.zones = [Zone(system_id=self.id, **z) for z in self._raw_zones]
  File "pydantic/main.py", line 342, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for Zone
humidity
  field required (type=value_error.missing)

Using the component with a VR921. Thanks!

Integration stopped working

I have been using I think version 0.3.1 and later on I switched to Beta version since 0.3.1 stopped working after few days.
Anyway, all worked fine until I noticed that integration cannot be loaded anymore. Here is the log. I tried switching to different versions, they all have the same behavior.

Logger: homeassistant.bootstrap
Source: util/package.py:47
First occurred: 10:33:20 (1 occurrences)
Last logged: 10:33:20

Error setting up integration mypyllant - received exception
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/requirements.py", line 35, in __init__
    parsed = _parse_requirement(requirement_string)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/_parser.py", line 64, in parse_requirement
    return _parse_requirement(Tokenizer(source, rules=DEFAULT_RULES))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/_parser.py", line 82, in _parse_requirement
    url, specifier, marker = _parse_requirement_details(tokenizer)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/_parser.py", line 126, in _parse_requirement_details
    marker = _parse_requirement_marker(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/_parser.py", line 147, in _parse_requirement_marker
    tokenizer.raise_syntax_error(
  File "/usr/local/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/_tokenizer.py", line 165, in raise_syntax_error
    raise ParserSyntaxError(
pkg_resources.extern.packaging._tokenizer.ParserSyntaxError: Expected end or semicolon (after name and no valid version specifier)
    git+https://github.com/signalkraft/myPyllant.git@ae32ccc596cf6a55a5154dce8c6605b8b161c221
       ^

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/util/package.py", line 40, in is_installed
    pkg_resources.get_distribution(package)
  File "/usr/local/lib/python3.11/site-packages/pkg_resources/__init__.py", line 526, in get_distribution
    dist = Requirement.parse(dist)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pkg_resources/__init__.py", line 3215, in parse
    (req,) = parse_requirements(s)
    ^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pkg_resources/__init__.py", line 3174, in __init__
    super(Requirement, self).__init__(requirement_string)
  File "/usr/local/lib/python3.11/site-packages/pkg_resources/_vendor/packaging/requirements.py", line 37, in __init__
    raise InvalidRequirement(str(e)) from e
pkg_resources.extern.packaging.requirements.InvalidRequirement: Expected end or semicolon (after name and no valid version specifier)
    git+https://github.com/signalkraft/myPyllant.git@ae32ccc596cf6a55a5154dce8c6605b8b161c221
       ^

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/setup.py", line 102, in async_setup_component
    return await task
           ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/setup.py", line 207, in _async_setup_component
    await async_process_deps_reqs(hass, config, integration)
  File "/usr/src/homeassistant/homeassistant/setup.py", line 420, in async_process_deps_reqs
    await requirements.async_get_integration_with_requirements(
  File "/usr/src/homeassistant/homeassistant/requirements.py", line 52, in async_get_integration_with_requirements
    return await manager.async_get_integration_with_requirements(domain)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/requirements.py", line 171, in async_get_integration_with_requirements
    await self._async_process_integration(integration, done)
  File "/usr/src/homeassistant/homeassistant/requirements.py", line 186, in _async_process_integration
    await self.async_process_requirements(
  File "/usr/src/homeassistant/homeassistant/requirements.py", line 252, in async_process_requirements
    await self._async_process_requirements(name, missing)
  File "/usr/src/homeassistant/homeassistant/requirements.py", line 284, in _async_process_requirements
    installed, failures = await self.hass.async_add_executor_job(
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/requirements.py", line 113, in _install_requirements_if_missing
    if pkg_util.is_installed(req) or _install_with_retry(req, kwargs):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/util/package.py", line 47, in is_installed
    req = pkg_resources.Requirement.parse(urlparse(package).fragment)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pkg_resources/__init__.py", line 3215, in parse
    (req,) = parse_requirements(s)
    ^^^^^^
ValueError: not enough values to unpack (expected 1, got 0)

I am using it with MiGo Gateway (Protherm). Thanks for help.

Multiple Heatpumps

I bumped in to the following problem:

We have 2 heat pumps in our home, both with an separate gateway (vr921)
And if I add 2 integrations the entity’s of both heat pumps are joined and not separated.
So it’s not working as it should.

404 error setting any DHW or heating mode

Before submitting a new issue

Problem description

Setting any DHW or heating mode, this error occurs...

Either the API endpoints changed, or 404 is their strange way of telling me my API key is no longer valid.

Reloading the integration makes no difference.

Logs


Logger: homeassistant.components.websocket_api.http.connection
Source: components/websocket_api/commands.py:238
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 09:33:48 (3 occurrences)
Last logged: 09:34:53

[281469336131008] 404, message='Not Found', url=URL('https://api.vaillant-group.com/service-connected-control/end-user-app-api/v1/systems/xxxxxx/tli/domestic-hot-water/255/boost')
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 238, in handle_call_service
    response = await hass.services.async_call(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2067, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2104, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 272, in handle_service
    return await service.entity_service_call(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 878, in entity_service_call
    single_response = await _handle_entity_call(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 948, in _handle_entity_call
    result = await task
             ^^^^^^^^^^
  File "/config/custom_components/mypyllant/water_heater.py", line 168, in async_set_operation_mode
    await self.coordinator.api.boost_domestic_hot_water(
  File "/usr/local/lib/python3.11/site-packages/myPyllant/api.py", line 641, in boost_domestic_hot_water
    return await self.aiohttp_session.post(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 689, in _request
    resp.raise_for_status()
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 1059, in raise_for_status
    raise ClientResponseError(
aiohttp.client_exceptions.ClientResponseError: 404, message='Not Found', url=URL('https://api.vaillant-group.com/service-connected-control/end-user-app-api/v1/systems/xxxxxx/tli/domestic-hot-water/255/boost')

Consumed Electrical or energy not working anymore

Hi,

Since one week, energy are not working anymore :

image

Still in v0.2.0 version, using sensoCOMFORT ( rebooted as well )

On the phone app, still have the data.

NB, don't know if it's important, but i think the problem appear when i switched heater off.

Thanks for this integration btw.

.
.

EDIT : Tested with v0.3.0 :

Energy always unavailable, BUT :

Water Pressure ecoTEC seem to be replaced by : System Water Pressure
System Mode seem to be replaced by : Current Special Function Domestic Hot Water 255
Min Flow Temperature Setpoint in Circuit 0 seem to have no replacement

two new sensor :
image

Power vs Energy - Update/fix and additional sensor request

Hi!

Firstly - thanks for getting this sorted and integrated!

I've got a few things I'd like to request changed and another request for an additional sensors on the integration and it's all related to the power sensors - or what you've labelled as energy. I'm happy to offer assistance - although I'd not consider myself a coder/developer - but more of a person who can tinker to get code working sometimes. 😅

Specifically these:

Entity Unit Class Sample
aroTHERM plus Consumed Electrical Energy Heating Wh energy 0
aroTHERM plus Earned Environment Energy Domestic Hot Water Wh energy 0
aroTHERM plus Earned Environment Energy Heating Wh energy 334.5
aroTHERM plus Heat Generated Heating Wh energy 334.5
aroTHERM plus Heat Generated Domestic Hot Water Wh energy 3

I specifically left out this sensor: "Hydraulic Station Consumed Electrical Energy Domestic Hot Water" as I don't have it and I can't see the data it's generating.

The way the data reads is that this is power (current consumption/creation) measured in watts, rather than energy (power over time) measured as watt hours. The HA team explain a it more in depth here: https://www.home-assistant.io/docs/energy/faq/

As way of example, here's a sensor with Energy data:
image
Here's a sensor with Power data:
image

.. so based on the above, the sensor for the Vaillant is showing up like power, but is labelled as energy which throws off all kinds of dashboards for me in home assistant. 😨

image

So first the change (fix?) I'd like to request which should be simple enough:

Entity Unit Class Sample Comment
aroTHERM plus Current Power for Heating W power 0 Label change and unit change
aroTHERM plus Captured Environmental Heat for Domestic Hot Water W power 0 Label change and unit change
aroTHERM plus Captured Environmental Heat for Heating W energy 334.5 Label change and unit change
aroTHERM plus Current Heat Generation Heating W energy 334.5 Label change and unit change
aroTHERM plus Current Heat Generation Domestic Hot Water W energy 150 Label change and unit change

Then as a further request, create some sensors that give energy.
So similar to the above, but with two additional attributes:
state_class and last_reset

https://developers.home-assistant.io/docs/core/entity/sensor/#entities-representing-a-total-amount

Entity Unit Class Sample Comment
aroTHERM plus Energy consumed for Heating Today Wh power 2450 new sensor entity with state_class: total_increasing & last_reset at Midnight
aroTHERM plus Environmental Energy Captured for Domestic Hot Water Today Wh power 2580 new sensor entity with state_class: total_increasing & last_reset at Midnight
aroTHERM plus Environmental Energy Captured for Heating Today Wh energy 334.5 new sensor entity with state_class: total_increasing & last_reset at Midnight
aroTHERM plus Total Heat Generated for Heating Today Wh energy 334.5 new sensor entity with state_class: total_increasing & last_reset at Midnight
aroTHERM plus Total Heat Generated for Domestic Hot Water Today Wh energy 150 new sensor entity with state_class: total_increasing & last_reset at Midnight

Let me know if you'd like me to help tweak this with you or if I'm on my own!

  • Bergen

[myPyllant.api] Could not get diagnostic trouble codes

Before submitting a new issue

Problem description

Hi, I get a error code or hint or notice, how ever, many times a day in the Home Assistant core logs respectively in the host system logs from myVAILLANT integration.
Nevertheless Integration is working very well.
Thank you for your work. How or where I can donate your work or spend a coffee?

Logs

Could not get diagnostic trouble codes

Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/myPyllant/api.py", line 832, in get_diagnostic_trouble_codes
response = await self.aiohttp_session.get(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 689, in _request
    resp.raise_for_status()
File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 1059, in raise_for_status
    raise ClientResponseError(
aiohttp.client_exceptions.ClientResponseError: 502, message='Bad Gateway', url=URL('https://api.vaillant-group.com/service-connected-control/end-user-app-api/v1/systems/********-****-****-****-************/diagnostic-trouble-codes')

Missing temperature values

Before submitting a new issue

Problem description

Current the systemFlowTemperature (Tank Temperature) is shown, but one of my homes hasn't this value but instead:

        cylinderTemperatureSensorBottomDHW: 41.25
        cylinderTemperatureSensorTopCH: 38.75
        cylinderTemperatureSensorTopDHW: 50.4375

I would like to add these temperatures too and move systemFlowTemperature to the system entity instead the dhw entity without changing the controls in DHW which uses both values. In addition i would like add currentDhwTemperature to dhw, if exists.

Does someone know what the CH in cylinderTemperatureSensorTopCH means? Is it equivalent to systemFlowTemperature?

@signalkraft I would like create a pull request i the coming days, if you are happy with the changes.

Logs

Already commited to myPyllant/tests/two_systems.

Stopped working after update to 2023.12.0

Before submitting a new issue

Wont load after update to 2023.12.0

Problem description

not working

Logs

Logger: homeassistant.util.package
Source: util/package.py:102
First occurred: 20:40:26 (3 occurrences)
Last logged: 20:40:32

Unable to install package myPyllant==0.6.3: ERROR: Cannot install mypyllant==0.6.3 because these package versions have conflicting dependencies. ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts
Put your debug logs here
Be careful not to include tokens, emails, and other personal information

Error setting up entry for mypyllant

Hi!
I cant use the myVaillant integration since today.
I have the latest version. I have also reinstalled it.
The myVaillant app works.(VR921, Vaillant EcoTec plus vc 20 cs/1-5)
Here are the error:

Error setting up entry [email protected] for mypyllant Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/config_entries.py", line 402, in async_setup result = await component.async_setup_entry(hass, self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/mypyllant/__init__.py", line 80, in async_setup_entry await daily_data_coordinator.async_refresh() File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 266, in async_refresh await self._async_refresh(log_failures=True) File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 290, in _async_refresh self.data = await self._async_update_data() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/mypyllant/__init__.py", line 217, in _async_update_data data[system.id] += [da async for da in device_data] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/mypyllant/__init__.py", line 217, in <listcomp> data[system.id] += [da async for da in device_data] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/myPyllant/api.py", line 357, in get_data_by_device async with self.aiohttp_session.get( File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 1141, in __aenter__ self._resp = await self._coro ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 560, in _request await resp.start(conn) File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 899, in start message, payload = await protocol.read() # type: ignore[union-attr] ^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiohttp/streams.py", line 616, in read await self._waiter asyncio.exceptions.CancelledError: Global task timeout

Change of Operationmode leads to error 404

Everytime if I change the Operationmode from the Water Heater oder Zone 1 there is only the Errorcode 404.

I´m using the Version 0.4.0 from the Myvaillant integration.

With the Myvaillant App everything works fine and also the integration notice the Change of the Mode from the App. But if I try to change it by the Integration it's not working.

[548056349504] 404, message='Not Found', url=URL('https://api.vaillant-group.com/service-connected-control/end-user-app-api/v1/systems/9e9c94fc-5036-4b0d-bc1d-d95d07a49ce0/domesticHotWater/255/operationMode')
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 227, in handle_call_service
await hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1969, in async_call
response_data = await coro
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/core.py", line 2006, in _execute_service
return await target(service_call)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 235, in handle_service
return await service.entity_service_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 870, in entity_service_call
response_data = await _handle_entity_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 942, in _handle_entity_call
result = await task
^^^^^^^^^^
File "/config/custom_components/mypyllant/water_heater.py", line 152, in async_set_operation_mode
await self.coordinator.api.set_domestic_hot_water_operation_mode(
File "/usr/local/lib/python3.11/site-packages/myPyllant/api.py", line 479, in set_domestic_hot_water_operation_mode
return await self.aiohttp_session.post(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 643, in _request
resp.raise_for_status()
File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 1005, in raise_for_status
raise ClientResponseError(
aiohttp.client_exceptions.ClientResponseError: 404, message='Not Found', url=URL('https://api.vaillant-group.com/service-connected-control/end-user-app-api/v1/systems/9e9c94fc-5036-4b0d-bc1d-d95d07a49ce0/domesticHotWater/255/operationMode')

Data not aviable

Hello!

I keep having the problem that the heating control is not available. Reloading helps briefly, but it still stops too often. I have tested the current beta versions and now the stable version. It is the same problem.
image

I have this problem every 2-3 days at 3 a.m. (that's when I do an HA reboot)

Not starting because of missing enum value CYLINDER_BOOST

Currently no devices have been added because of this exception:

current_special_function
value is not a valid enumeration member; permitted: 'CYLINDER_BOOST', 'REGULAR' (type=type_error.enum; enum_values=[<DHWCurrentSpecialFunction.CYLINDER_BOOST: 'CYLINDER_BOOST'>, <DHWCurrentSpecialFunction.REGULAR: 'REGULAR'>])
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 283, in _async_refresh
self.data = await self._async_update_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/mypyllant/__init__.py", line 155, in _async_update_data
async for system in await self.hass.async_add_executor_job(
File "/usr/local/lib/python3.11/site-packages/myPyllant/api.py", line 281, in get_systems
system = System(
^^^^^^^
File "/usr/local/lib/python3.11/site-packages/myPyllant/models.py", line 167, in __init__
self.domestic_hot_water = [
^
File "/usr/local/lib/python3.11/site-packages/myPyllant/models.py", line 168, in <listcomp>
DomesticHotWater(system_id=self.id, **d) for d in self._merge_object("dhw")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 341, in __init__
raise validation_error
pydantic.error_wrappers.ValidationError: 1 validation error for DomesticHotWater
current_special_function

2 HP cascaded / 2 WP in Kaskade

Before submitting a new issue

Problem description

Dear GitHub Community,

I am using the MyVaillant integration for Home Assistant, and I have two heat pumps at home that are cascaded (Systemschema 8). The issue I'm facing is that I can only retrieve data for one of the heat pumps in the integration, specifically the energy data. I cannot access the data for the second heat pump, and the second heat pump is not displayed in the integration.

Has anyone of you had similar experiences or found a solution to this problem? I would appreciate your help or advice on how to successfully integrate both heat pumps into Home Assistant.

Thank you in advance for your support!

Best regards


Liebe GitHub-Community,

Ich nutze die MyVaillant Integration für Home Assistant und habe zu Hause zwei Wärmepumpen, die in Kaskade geschaltet sind (Systemschema 8). Das Problem, das ich habe, ist, dass ich in der Integration nur die Daten für eine Wärmepumpe abrufen kann, insbesondere die Energiedaten. Die Daten für die zweite Wärmepumpe kann ich nicht abrufen, und die zweite Wärmepumpe wird in der Integration nicht angezeigt.

Hat jemand von euch ähnliche Erfahrungen gemacht oder eine Lösung für dieses Problem? Ich würde mich über eure Hilfe oder Ratschläge freuen, wie ich beide Wärmepumpen erfolgreich in Home Assistant integrieren kann.

Vielen Dank im Voraus für eure Unterstützung!

Beste Grüße,

IMG_5358
Screenshot 2023-11-27 131808

Feature request

Installed myvaillant wihout any problems and working OK with aroTHERM plus heatpump + sensoCOMFORT VRC 720 + sensoNET VR 921. Very grateful, thank you.

My request is to have a control or service to set the duration of a temporary change made in the target temp. The default is 3 hours but the sensocomfort control allows one to increase that up to 12 hrs. The earlier HACS app sensoapp did this so hopefully it's possible.

Make current_room_temperature optional

          Thank you. Now the log in works perfectly.

Unfortunately no devices are listed in the integration.

I report some errors:

Logger: custom_components.mypyllant
Source: custom_components/mypyllant/init.py:139
Integration: myVAILLANT (documentation, issues)
First occurred: 8 marzo 2023 alle ore 23:26:08 (4 occurrences)
Last logged: 21:59:45

Unexpected error fetching myVAILLANT data: 1 validation error for Zone current_room_temperature field required (type=value_error.missing)
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 239, in _async_refresh
self.data = await self._async_update_data()
File "/config/custom_components/mypyllant/init.py", line 139, in _async_update_data
data = [
File "/config/custom_components/mypyllant/init.py", line 139, in
data = [
File "/usr/local/lib/python3.10/site-packages/myPyllant/api.py", line 200, in get_systems
system = System(
File "/usr/local/lib/python3.10/site-packages/myPyllant/models.py", line 114, in init
self.zones = [Zone(system_id=self.id, **z) for z in self._raw_zones]
File "/usr/local/lib/python3.10/site-packages/myPyllant/models.py", line 114, in
self.zones = [Zone(system_id=self.id, **z) for z in self._raw_zones]
File "pydantic/main.py", line 342, in pydantic.main.BaseModel.init
pydantic.error_wrappers.ValidationError: 1 validation error for Zone
current_room_temperature
field required (type=value_error.missing)

And the other one:

Logger: homeassistant.components.binary_sensor
Source: custom_components/mypyllant/binary_sensor.py:32
Integration: Sensore binario (documentation, issues)
First occurred: 8 marzo 2023 alle ore 23:26:09 (4 occurrences)
Last logged: 21:59:46

Error while setting up mypyllant platform for binary_sensor
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 293, in _async_setup_platform
await asyncio.shield(task)
File "/config/custom_components/mypyllant/binary_sensor.py", line 32, in async_setup_entry
for index, system in enumerate(coordinator.data):
TypeError: 'NoneType' object is not iterable

Any help?

Thanks

Originally posted by @MP14588 in #4 (comment)

KeyError: 'system_water_pressure'

Just migrated from sensoApp to myVaillant on my 5kW Arotherm Plus heat pump.
I get the following error on home assistant reboot.

This was a fresh install of the integration via HACS.

Logger: homeassistant.setup
Source: setup.py:320
First occurred: 09:50:29 (1 occurrences)
Last logged: 09:50:29

Unable to prepare setup for platform mypyllant.water_heater: Platform not found (cannot import name 'UnitOfTemperature' from 'homeassistant.components.water_heater' (/usr/src/homeassistant/homeassistant/components/water_heater/__init__.py)).
today at 09:59 Traceback (most recent call last):
today at 09:59 File "/usr/local/lib/python3.10/site-packages/myPyllant/models.py", line 173, in water_pressure
today at 09:59 return self.system_control_state["control_state"]["general"][
today at 09:59 KeyError: 'system_water_pressure'

Water pressure entity showing 'unknown'

image

I have tested this on HA 2022.11.2 and 2023.3.6

Error fetching data

Hi!
The MyVaillant integration worked 8h...
now i recieved this error:
Error fetching myVAILLANT data: Quota Exceeded on https://api.vaillant-group.com/service-connected-control/end-user-app-api/v1/claims, skipping update of myVAILLANT data for another 10800s

I can't use the MyVaillant App (Error since 4h..)
I had set the data query to 10 seconds. Is this the problem?

Installation and integration ok but no entities and some error logs

Hi there,
Installation with HACS - reboot - add integration with user/pw/country… successfully!

But no devices/entities…

Some details about my Vaillant hardware:

Gateway: VR921
sensoDirect: VRC710
Model: ecoTEC plus VC 15 CS/1-5

Logger: homeassistant.components.binary_sensor
Source: custom_components/mypyllant/binary_sensor.py:32 
Integration: Binärsensor (documentation, issues) 
First occurred: 16:14:50 (1 occurrences) 
Last logged: 16:14:50

Error while setting up mypyllant platform for binary_sensor
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 293, in _async_setup_platform
    await asyncio.shield(task)
  File "/config/custom_components/mypyllant/binary_sensor.py", line 32, in async_setup_entry
    for index, system in enumerate(coordinator.data):
TypeError: 'NoneType' object is not iterable

EDIT: I had to correct my Hardware!!!

Home assistant HACS upgrade

Not sure this is the right place to ask...

Just upgraded to a the latest version. 0.3.2 (home assistant HACS) and a couple of the entities have disappeared.

missing entities:
outside_temperature
system_water_pressure
water_pressure_ecotec
system_mode

I have a sensoCOMFORT VRC720 (wired), ecoTec Plus 624, VR66/2 control center with sensoNET and a VR10 probe (outdoor temp)

Thanks,

Pete.

Activating away mode not working

Hello,
It does not seem to be possible to activate the away mode. No error message, but nothing happens.
image

Deactivating the away mode after activating it via app, on the other hand, works without problems.

Unexpected error

Hi

when I enter the myVaillant credentials

image

I got this error

image

Could you help me, please?

myPyllant v0.6.1

Myvaillant not connecting to Aroterm plus

Hi,
I know my case is not an issue here, but perhaps anybody can help.
i tried to connect my vr921 Gateway from sensoapp to myvaillant. Did not work incompatible so far.
So i bought a new gateway which i could register in the myvaillant app. Trying to connect to the Arotherm Plus system runs
Into a timeout. Thats it, I tried a couple of times, always with this result. Does anybody use this combination in Germany ?
Any help is welcome:-). Thanks a lot

Request support for VC 20CS ecoTEC

Hi there,

I'm looking for energy vaules for my Vaillant VC 20CS/1-7 (N-DE) ecoTEC exclusive + sensoCOMFORT VRC 720 + sensoNET VR 921 which sensors are not created at the moment. But in the DEBUG log i can see the vaules:

....
2023-06-19 23:00:49.104 DEBUG (MainThread) [myPyllant.api] Starting request TraceRequestStartParams(method='GET', url=URL('https://api.vaillant-group.com/service-connected-control/end-user-app-api/v1/emf/v2/21194300202609650XXXXXXXX/devices/67052dda-be47-52d1-b8ee-XXXXXXXXXX/buckets'), headers=<CIMultiDict('Authorization': 'Bearer xxxx', 'x-app-identifier': 'VAILLANT', 'Accept-Language': 'en-GB', 'Accept': 'application/json, text/plain, */*', 'x-client-locale': 'en-GB', 'x-idm-identifier': 'KEYCLOAK', 'ocp-apim-subscription-key': '1e0a2f3511fb4c5bbb1cxxxxxxxxx', 'User-Agent': 'okhttp/4.9.2', 'Connection': 'keep-alive')>)
2023-06-19 23:00:49.180 DEBUG (MainThread) [myPyllant.api] Got response {"startDate":"2023-06-19T00:00:00Z","endDate":"2023-06-20T00:00:00Z","resolution":"DAY","operationMode":"DOMESTIC_HOT_WATER","energyType":"CONSUMED_ELECTRICAL_ENERGY","totalConsumption":91.5625,"data":[{"startDate":"2023-06-19T00:00:00Z","endDate":"2023-06-20T00:00:00Z","value":91.5625}]}

2023-06-19 23:00:49.181 DEBUG (MainThread) [myPyllant.api] Starting request TraceRequestStartParams(method='GET', url=URL('https://api.vaillant-group.com/service-connected-control/end-user-app-api/v1/emf/v2/21194300202609650XXXXXXXX/devices/67052dda-be47-52d1-b8ee-XXXXXXXXXX/buckets'), headers=<CIMultiDict('Authorization': 'Bearer xxxx', 'x-app-identifier': 'VAILLANT', 'Accept-Language': 'en-GB', 'Accept': 'application/json, text/plain, */*', 'x-client-locale': 'en-GB', 'x-idm-identifier': 'KEYCLOAK', 'ocp-apim-subscription-key': '1e0a2f3511fb4c5bbb1cxxxxxxxxx', 'User-Agent': 'okhttp/4.9.2', 'Connection': 'keep-alive')>)
2023-06-19 23:00:49.245 DEBUG (MainThread) [myPyllant.api] Got response {"startDate":"2023-06-19T00:00:00Z","endDate":"2023-06-20T00:00:00Z","resolution":"DAY","operationMode":"HEATING","energyType":"CONSUMED_ELECTRICAL_ENERGY","totalConsumption":43.293575,"data":[{"startDate":"2023-06-19T00:00:00Z","endDate":"2023-06-20T00:00:00Z","value":43.293575}]}

2023-06-19 23:00:49.245 DEBUG (MainThread) [myPyllant.api] Starting request TraceRequestStartParams(method='GET', url=URL('https://api.vaillant-group.com/service-connected-control/end-user-app-api/v1/emf/v2/21194300202609650XXXXXXXX/devices/67052dda-be47-52d1-b8ee-XXXXXXXXXX/buckets'), headers=<CIMultiDict('Authorization': 'Bearer xxxx', 'x-app-identifier': 'VAILLANT', 'Accept-Language': 'en-GB', 'Accept': 'application/json, text/plain, */*', 'x-client-locale': 'en-GB', 'x-idm-identifier': 'KEYCLOAK', 'ocp-apim-subscription-key': '1e0a2f3511fb4c5bbb1cxxxxxxxxx', 'User-Agent': 'okhttp/4.9.2', 'Connection': 'keep-alive')>)
2023-06-19 23:00:49.293 DEBUG (MainThread) [myPyllant.api] Got response {"startDate":"2023-06-19T00:00:00Z","endDate":"2023-06-20T00:00:00Z","resolution":"DAY","operationMode":"DOMESTIC_HOT_WATER","energyType":"CONSUMED_PRIMARY_ENERGY","totalConsumption":6373.0,"data":[{"startDate":"2023-06-19T00:00:00Z","endDate":"2023-06-20T00:00:00Z","value":6373.0}]}

2023-06-19 23:00:49.294 DEBUG (MainThread) [myPyllant.api] Starting request TraceRequestStartParams(method='GET', url=URL('https://api.vaillant-group.com/service-connected-control/end-user-app-api/v1/emf/v2/21194300202609650XXXXXXXX/devices/67052dda-be47-52d1-b8ee-XXXXXXXXXX/buckets'), headers=<CIMultiDict('Authorization': 'Bearer xxxx', 'x-app-identifier': 'VAILLANT', 'Accept-Language': 'en-GB', 'Accept': 'application/json, text/plain, */*', 'x-client-locale': 'en-GB', 'x-idm-identifier': 'KEYCLOAK', 'ocp-apim-subscription-key': '1e0a2f3511fb4c5bbb1cxxxxxxxxx', 'User-Agent': 'okhttp/4.9.2', 'Connection': 'keep-alive')>)
2023-06-19 23:00:49.351 DEBUG (MainThread) [myPyllant.api] Got response {"startDate":"2023-06-19T00:00:00Z","endDate":"2023-06-20T00:00:00Z","resolution":"DAY","operationMode":"HEATING","energyType":"CONSUMED_PRIMARY_ENERGY","totalConsumption":0.0,"data":[{"startDate":"2023-06-19T00:00:00Z","endDate":"2023-06-20T00:00:00Z","value":0.0}]}

2023-06-19 23:00:49.351 DEBUG (MainThread) [custom_components.mypyllant] Finished fetching myVAILLANT data in 0.391 seconds (success: True)
...

2023-06-19 23:13:53.960 DEBUG (MainThread) [myPyllant.api] Starting request TraceRequestStartParams(method='GET', url=URL('https://api.vaillant-group.com/service-connected-control/end-user-app-api/v1/emf/v2/2119430020260965xxxxxxxxx/devices/67052dda-be47-52d1-b8ee-xxxxxxxx/buckets'), headers=<CIMultiDict('Authorization': 'Bearer xxxxxxx', 'x-app-identifier': 'VAILLANT', 'Accept-Language': 'en-GB', 'Accept': 'application/json, text/plain, */*', 'x-client-locale': 'en-GB', 'x-idm-identifier': 'KEYCLOAK', 'ocp-apim-subscription-key': '1e0a2f3511fb4c5bbb1xxxxxxx', 'User-Agent': 'okhttp/4.9.2', 'Connection': 'keep-alive')>)
2023-06-19 23:13:54.015 DEBUG (MainThread) [myPyllant.api] Got response {"startDate":"2023-06-19T11:13:53Z","endDate":"2023-06-20T11:13:53Z","resolution":"HOUR","operationMode":"DOMESTIC_HOT_WATER","energyType":"CONSUMED_ELECTRICAL_ENERGY","totalConsumption":41.23437,"data":[{"startDate":"2023-06-19T11:00:00Z","endDate":"2023-06-19T12:00:00Z","value":0.0},{"startDate":"2023-06-19T12:00:00Z","endDate":"2023-06-19T13:00:00Z","value":0.0},{"startDate":"2023-06-19T13:00:00Z","endDate":"2023-06-19T14:00:00Z","value":21.5204},{"startDate":"2023-06-19T14:00:00Z","endDate":"2023-06-19T15:00:00Z","value":0.1202257},{"startDate":"2023-06-19T15:00:00Z","endDate":"2023-06-19T16:00:00Z","value":0.0},{"startDate":"2023-06-19T16:00:00Z","endDate":"2023-06-19T17:00:00Z","value":0.0},{"startDate":"2023-06-19T17:00:00Z","endDate":"2023-06-19T18:00:00Z","value":10.578554},{"startDate":"2023-06-19T18:00:00Z","endDate":"2023-06-19T19:00:00Z","value":8.962968},{"startDate":"2023-06-19T19:00:00Z","endDate":"2023-06-19T20:00:00Z","value":0.052226562},{"startDate":"2023-06-19T20:00:00Z","endDate":"2023-06-19T21:00:00Z","value":0.0},{"startDate":"2023-06-19T21:00:00Z","endDate":"2023-06-19T22:00:00Z","value":0.0},{"startDate":"2023-06-19T22:00:00Z","endDate":"2023-06-19T23:00:00Z"},{"startDate":"2023-06-19T23:00:00Z","endDate":"2023-06-20T00:00:00Z"},{"startDate":"2023-06-20T00:00:00Z","endDate":"2023-06-20T01:00:00Z"},{"startDate":"2023-06-20T01:00:00Z","endDate":"2023-06-20T02:00:00Z"},{"startDate":"2023-06-20T02:00:00Z","endDate":"2023-06-20T03:00:00Z"},{"startDate":"2023-06-20T03:00:00Z","endDate":"2023-06-20T04:00:00Z"},{"startDate":"2023-06-20T04:00:00Z","endDate":"2023-06-20T05:00:00Z"},{"startDate":"2023-06-20T05:00:00Z","endDate":"2023-06-20T06:00:00Z"},{"startDate":"2023-06-20T06:00:00Z","endDate":"2023-06-20T07:00:00Z"},{"startDate":"2023-06-20T07:00:00Z","endDate":"2023-06-20T08:00:00Z"},{"startDate":"2023-06-20T08:00:00Z","endDate":"2023-06-20T09:00:00Z"},{"startDate":"2023-06-20T09:00:00Z","endDate":"2023-06-20T10:00:00Z"},{"startDate":"2023-06-20T10:00:00Z","endDate":"2023-06-20T11:00:00Z"},{"startDate":"2023-06-20T11:00:00Z","endDate":"2023-06-20T12:00:00Z"}]}
2023-06-19 23:13:54.016 ERROR (MainThread) [custom_components.mypyllant] Unexpected error fetching myVAILLANT data: 14 validation errors for DeviceData
data -> 11 -> value
  field required (type=value_error.missing)
data -> 12 -> value
  field required (type=value_error.missing)
data -> 13 -> value
  field required (type=value_error.missing)
data -> 14 -> value
  field required (type=value_error.missing)
data -> 15 -> value
  field required (type=value_error.missing)
data -> 16 -> value
  field required (type=value_error.missing)
data -> 17 -> value
  field required (type=value_error.missing)
data -> 18 -> value
  field required (type=value_error.missing)
data -> 19 -> value
  field required (type=value_error.missing)
data -> 20 -> value
  field required (type=value_error.missing)
data -> 21 -> value
  field required (type=value_error.missing)
data -> 22 -> value
  field required (type=value_error.missing)
data -> 23 -> value
  field required (type=value_error.missing)
data -> 24 -> value
  field required (type=value_error.missing)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 258, in _async_refresh
    self.data = await self._async_update_data()
  File "/config/custom_components/mypyllant/__init__.py", line 165, in _async_update_data
    data.append([da async for da in device_data])
  File "/config/custom_components/mypyllant/__init__.py", line 165, in <listcomp>
    data.append([da async for da in device_data])
  File "/usr/local/lib/python3.10/site-packages/myPyllant/api.py", line 281, in get_data_by_device
    yield DeviceData(
  File "/usr/local/lib/python3.10/site-packages/myPyllant/models.py", line 259, in __init__
    super().__init__(device=device, **kwargs)
  File "pydantic/main.py", line 341, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 14 validation errors for DeviceData
data -> 11 -> value
  field required (type=value_error.missing)
data -> 12 -> value
  field required (type=value_error.missing)
data -> 13 -> value
  field required (type=value_error.missing)
data -> 14 -> value
  field required (type=value_error.missing)
data -> 15 -> value
  field required (type=value_error.missing)
data -> 16 -> value
  field required (type=value_error.missing)
data -> 17 -> value
  field required (type=value_error.missing)
data -> 18 -> value
  field required (type=value_error.missing)
data -> 19 -> value
  field required (type=value_error.missing)
data -> 20 -> value
  field required (type=value_error.missing)
data -> 21 -> value
  field required (type=value_error.missing)
data -> 22 -> value
  field required (type=value_error.missing)
data -> 23 -> value
  field required (type=value_error.missing)
data -> 24 -> value
  field required (type=value_error.missing)
2023-06-19 23:13:54.017 DEBUG (MainThread) [custom_components.mypyllant] Finished fetching myVAILLANT data in 0.166 seconds (success: False)
2023-06-19 23:13:54.017 DEBUG (MainThread) [custom_components.mypyllant] Refreshing DailyDataCoordinator

Thanks in advance 👍

¿Lost Token?

Hello,

The integration has given this error, possibly due to a failure with the token.

I have restarted the integration Settings->Devices and Services and it worked again without problem.

2023-03-03 14:11:23.868 ERROR (MainThread) [custom_components.mypyllant] Error requesting myVAILLANT data: 400, message='Bad Request', url=URL('https://vaillant-prod.okta.com/oauth2/default/v1/token')
2023-03-03 15:11:16.863 ERROR (MainThread) [custom_components.mypyllant] Error requesting myVAILLANT data: 400, message='Bad Request', url=URL('https://vaillant-prod.okta.com/oauth2/default/v1/token')
2023-03-03 15:11:17.580 ERROR (MainThread) [custom_components.mypyllant] Error requesting myVAILLANT data: 400, message='Bad Request', url=URL('https://vaillant-prod.okta.com/oauth2/default/v1/token')

There has been no internet connection.

Setpoint Domestic Hot Water Temperature via Script

Hey, first of all thank you for this reply great working Adapter! I want to set the Domestic Hot Water Temperature Setpoint via a Script, but I only can Switch Hot Water on / off. How can I set a Temperature?

Bildschirmfoto 2023-11-24 um 19 53 11

Doesn´t work with APP Migo that is different that Migo Link and MyVaillant

Before submitting a new issue

Problem description

Im using Migo APP in iPhone to manage my Saunier Duval sensor. I configure correctly myvaillant integration identified Saunier Duval option but it is empty, no devices added.

Logs

2023-11-05 15:32:47.141 DEBUG (MainThread) [myPyllant.api] Got response []
2023-11-05 15:32:47.141 DEBUG (MainThread) [custom_components.mypyllant] Finished fetching myVAILLANT data in 0.087 seconds (success: True)
2023-11-05 15:32:47.142 WARNING (MainThread) [custom_components.mypyllant.binary_sensor] No system data, skipping binary sensors
2023-11-05 15:32:47.143 WARNING (MainThread) [custom_components.mypyllant.sensor] No system data, skipping sensors
2023-11-05 15:32:47.143 DEBUG (MainThread) [custom_components.mypyllant.sensor] Daily data: {}
2023-11-05 15:32:47.143 WARNING (MainThread) [custom_components.mypyllant.sensor] No daily data, skipping sensors
2023-11-05 15:32:47.143 WARNING (MainThread) [custom_components.mypyllant.climate] No system data, skipping climate
2023-11-05 15:32:47.143 WARNING (MainThread) [custom_components.mypyllant.water_heater] No system data, skipping water heater

Duplicate VR 921 Device in v0.6.0

Before submitting a new issue

Problem description

The new v0.6.0 downloaded fine but I've ended up with 2 VR 921 device. One of them only contains an unavailable sensor.home_vr_921 which also has a warning stating "This entity is no longer being provided by the mypyllant integration. If the entity is no longer in use, delete it in settings".

Logs

Log 1 -
This error originated from a custom integration.

Logger: homeassistant
Source: custom_components/mypyllant/sensor.py:726
Integration: myVAILLANT (documentation, issues)
First occurred: 17:15:16 (1 occurrences)
Last logged: 17:15:16

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 233, in _handle_refresh_interval
await self._async_refresh(log_failures=True, scheduled=True)
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 389, in _async_refresh
self.async_update_listeners()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 172, in async_update_listeners
update_callback()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 469, in _handle_coordinator_update
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 743, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 843, in _async_write_ha_state
state, attr = self._async_generate_attributes()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 784, in _async_generate_attributes
state = self._stringify_state(available)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 749, in _stringify_state
if (state := self.state) is None:
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/sensor/init.py", line 501, in state
value = self.native_value
^^^^^^^^^^^^^^^^^
File "/config/custom_components/mypyllant/sensor.py", line 775, in native_value
if self.energy_consumed:
^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/mypyllant/sensor.py", line 736, in energy_consumed
for v in self.device_data_list
^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/mypyllant/sensor.py", line 726, in device_data_list
return self.coordinator.data[self.system_id]
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable

Log 2 -
This error originated from a custom integration.

Logger: homeassistant
Source: custom_components/mypyllant/binary_sensor.py:59
Integration: myVAILLANT (documentation, issues)
First occurred: 10:47:45 (5 occurrences)
Last logged: 17:15:17

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 233, in _handle_refresh_interval
await self._async_refresh(log_failures=True, scheduled=True)
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 389, in _async_refresh
self.async_update_listeners()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 172, in async_update_listeners
update_callback()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 469, in _handle_coordinator_update
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 743, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 843, in _async_write_ha_state
state, attr = self._async_generate_attributes()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 784, in _async_generate_attributes
state = self._stringify_state(available)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 749, in _stringify_state
if (state := self.state) is None:
^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/binary_sensor/init.py", line 218, in state
if (is_on := self.is_on) is None:
^^^^^^^^^^
File "/config/custom_components/mypyllant/binary_sensor.py", line 92, in is_on
return self.system.has_diagnostic_trouble_codes
^^^^^^^^^^^
File "/config/custom_components/mypyllant/binary_sensor.py", line 59, in system
return self.coordinator.data[self.system_index]
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
IndexError: list index out of range

How can I enter the country?

logininformation_myvaillant

I can't choose a country for the myVaillant integration in the beginning of the configuration. How can I change that?

Thanks a lot

VR921 Update failed?

When I start the plugin with a freshly migrated VR921 using myVaillant app I get this error:

2023-08-25 21:17:09.165 DEBUG (MainThread) [custom_components.mypyllant] Refreshing SystemCoordinator
2023-08-25 21:17:09.165 DEBUG (MainThread) [custom_components.mypyllant] Starting async update data for SystemCoordinator
2023-08-25 21:17:09.165 DEBUG (MainThread) [custom_components.mypyllant] Waiting 119s until token refresh for [email protected]
2023-08-25 21:17:09.711 ERROR (MainThread) [custom_components.mypyllant] Error requesting myVAILLANT data: 404, message='Not Found', url=URL('https://api.vaillant-group.com/service-connected-control/end-user-app-api/v1/firmware-update-required/```

Can't install - Invalid Credentials

Before submitting a new issue

Problem description

I can't install the component, invalid credentials message. I've had installed another integration working ok for years (previously uninstalled) , user and password is correct (I can login with MiGo App), country is Spain.

Logs


2023-10-14 19:25:29.072 DEBUG (MainThread) [myPyllant.api] Starting request TraceRequestStartParams(method='GET', url=URL('https://identity.vaillant-group.com/auth/realms/sdbg-spain-b2c/protocol/openid-connect/auth'), headers=<CIMultiDict()>)
2023-10-14 19:25:29.260 DEBUG (MainThread) [myPyllant.api] Starting request TraceRequestStartParams(method='POST', url=URL('https://identity.vaillant-group.com/auth/realms/sdbg-spain-b2c/login-actions/authenticate'), headers=<CIMultiDict()>)


Govee integration kills MyVaillant

Before submitting a new issue

Problem description

Please everyone be warned that Govee integration kills MyVaillant creating duplicated devices at first ( mine is VR 940F, ) and then killing any attempt to read data on the Vaillant's API site.

I'M using 0.6.1 and crashed my head agains the wall before discovering that simply removing the Govee integration fixes the trouble.

It also seems that the "Govee lan" integration can coexist with MyVaillant

Be warned!

Logs follows

Logs


2023-11-27 10:01:13.928 ERROR (MainThread) [custom_components.mypyllant] Unexpected error fetching myVAILLANT data: 'types.UnionType' object has no attribute '__origin__'
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/dacite/types.py", line 22, in extract_origin_collection
    return collection.__extra__
           ^^^^^^^^^^^^^^^^^^^^
AttributeError: 'types.UnionType' object has no attribute '__extra__'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 290, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/mypyllant/__init__.py", line 222, in _async_update_data
    data = [
           ^
  File "/config/custom_components/mypyllant/__init__.py", line 222, in <listcomp>
    data = [
           ^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/api.py", line 292, in get_systems
    async for home in homes:
  File "/usr/local/lib/python3.11/site-packages/myPyllant/api.py", line 266, in get_homes
    yield Home.from_api(**dict_to_snake_case(home_json))
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/models.py", line 122, in from_api
    return from_dict(
           ^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/dacite/core.py", line 64, in from_dict
    value = _build_value(type_=field_type, data=field_data, config=config)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/dacite/core.py", line 101, in _build_value
    if is_subclass(type_, cast_type):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/dacite/types.py", line 168, in is_subclass
    if is_generic_collection(sub_type):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/dacite/types.py", line 147, in is_generic_collection
    origin = extract_origin_collection(type_)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/dacite/types.py", line 24, in extract_origin_collection
    return collection.__origin__
           ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'types.UnionType' object has no attribute '__origin__'
2023-11-27 10:01:14.005 ERROR (MainThread) [custom_components.mypyllant] Unexpected error fetching myVAILLANT data: 'types.UnionType' object has no attribute '__origin__'
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/dacite/types.py", line 22, in extract_origin_collection
    return collection.__extra__
           ^^^^^^^^^^^^^^^^^^^^
AttributeError: 'types.UnionType' object has no attribute '__extra__'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 290, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/mypyllant/__init__.py", line 249, in _async_update_data
    async for system in await self.hass.async_add_executor_job(
  File "/usr/local/lib/python3.11/site-packages/myPyllant/api.py", line 292, in get_systems
    async for home in homes:
  File "/usr/local/lib/python3.11/site-packages/myPyllant/api.py", line 266, in get_homes
    yield Home.from_api(**dict_to_snake_case(home_json))
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/myPyllant/models.py", line 122, in from_api
    return from_dict(
           ^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/dacite/core.py", line 64, in from_dict
    value = _build_value(type_=field_type, data=field_data, config=config)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/dacite/core.py", line 101, in _build_value
    if is_subclass(type_, cast_type):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/dacite/types.py", line 168, in is_subclass
    if is_generic_collection(sub_type):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/dacite/types.py", line 147, in is_generic_collection
    origin = extract_origin_collection(type_)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/dacite/types.py", line 24, in extract_origin_collection
    return collection.__origin__
           ^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'types.UnionType' object has no attribute '__origin__'
2023-11-27 10:01:14.053 WARNING (MainThread) [custom_components.mypyllant.binary_sensor] No system data, skipping binary sensors
2023-11-27 10:01:14.055 WARNING (MainThread) [custom_components.mypyllant.sensor] No system data, skipping sensors
2023-11-27 10:01:14.055 WARNING (MainThread) [custom_components.mypyllant.sensor] No daily data, skipping sensors
2023-11-27 10:01:14.056 WARNING (MainThread) [custom_components.mypyllant.climate] No system data, skipping climate
2023-11-27 10:01:14.056 WARNING (MainThread) [custom_components.mypyllant.water_heater] No system data, skipping water heater
2023-11-27 10:01:17.270 ERROR (MainThread) [homeassistant.helpers.event] Error while processing template: Template<template=({{ state_attr('climate.zone_0','current_temperature') | float}}) renders=2>

Merge Zone into Circuit if there is only one Zone in a Circuit

Before submitting a new issue

Problem description

Currently there is a device for every Zone and every Circuit. Only the Zone is named, but at least in my case there is only one Zone per Circuit. I would like to change the names and device identifier appropriately, so that there is just one Device for every combination. If another Zone is added to a circuit this should resolve nicely, as the unique ids are unchanged but the names are updates correctly.

@signalkraft I would like create a pull request i the coming days, if you agree with the proposed changes. It think, this should be an easy change.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.