tetele / hvac_group

Group together `climate` components for easy control
MIT License
28 stars 5 forks source link

Unable to set target temperature(s) #53

Closed rk-nova closed 9 months ago

rk-nova commented 9 months ago

System Health details

System Information

version core-2024.1.5
installation_type Unknown
dev false
hassio false
docker false
user root
virtualenv false
python_version 3.11.6
os_name Linux
os_version 6.1.63-production+truenas
arch x86_64
timezone America/Los_Angeles
config_dir /config
Home Assistant Community Store GitHub API | ok -- | -- GitHub Content | ok GitHub Web | ok GitHub API Calls Remaining | 4427 Installed Version | 1.34.0 Stage | running Available Repositories | 1383 Downloaded Repositories | 32
Home Assistant Cloud logged_in | true -- | -- subscription_expiration | August 30, 2024 at 5:00 PM relayer_connected | true relayer_region | us-east-1 remote_enabled | true remote_connected | true alexa_enabled | true google_enabled | true remote_server | us-east-1-8.ui.nabu.casa certificate_status | ready instance_id | 8fb2c7ce6af84f0bb82af2f5afeecfef can_reach_cert_server | ok can_reach_cloud_auth | ok can_reach_cloud | ok
keymaster zwave_integration | zwave_js -- | -- network_status | on
Dashboards dashboards | 20 -- | -- resources | 13 views | 22 mode | storage
Recorder oldest_recorder_run | January 21, 2024 at 10:31 PM -- | -- current_recorder_run | January 28, 2024 at 11:08 PM estimated_db_size | 478.72 MiB database_engine | postgresql database_version | 15.3
Spotify api_endpoint_reachable | ok -- | --

Checklist

Describe the issue

The thermostat card for the HVAC Group does not have target temperature controls.

image

Other observations:

The attached logs are just for getting to the heating/cooling group and trying to use the card. The other issues seem like they might be related, but I am not including specific logs for them. Please let me know if you want me to gather more details for any of those cases specifically, and/or file more specific issues for them.

Reproduction steps

  1. Create group with 1 heating thermostat and one cooling thermostat
  2. Try using card, see that there is no way to set the temp

Debug logs

2024-01-28 23:09:00.688 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.bedroom_virtual changed state: {'state': 'cool', 'attributes': {'hvac_modes': [<HVACMode.COOL: 'cool'>, <HVACMode.OFF: 'off'>], 'min_temp': 45, 'max_temp': 95, 'target_temp_step': 1, 'current_temperature': None, 'temperature': 72, 'hvac_action': <HVACAction.IDLE: 'idle'>, 'friendly_name': 'Bedroom_virtual', 'supported_features': <ClimateEntityFeature.TARGET_TEMPERATURE: 1>}} (context 01HNA0SJCA520WKKY2TRNHEVTV)
2024-01-28 23:09:00.688 DEBUG (MainThread) [custom_components.hvac_group] New min/max temps received from actuator climate.bedroom_virtual: (45, 95). HVAC Group climate.upstairs_climate new min/max temps: 45.0, 45.0
2024-01-28 23:09:00.688 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.bedroom_virtual changed state: {'state': 'cool', 'attributes': {'hvac_modes': [<HVACMode.COOL: 'cool'>, <HVACMode.OFF: 'off'>], 'min_temp': 45, 'max_temp': 95, 'target_temp_step': 1, 'current_temperature': None, 'temperature': 72, 'hvac_action': <HVACAction.IDLE: 'idle'>, 'friendly_name': 'Bedroom_virtual', 'supported_features': <ClimateEntityFeature.TARGET_TEMPERATURE: 1>}} (context 01HNA0SJCA520WKKY2TRNHEVTV)
2024-01-28 23:09:00.688 DEBUG (MainThread) [custom_components.hvac_group] New min/max temps received from actuator climate.bedroom_virtual: (45, 95). HVAC Group climate.home_ac new min/max temps: 45.0, 45.0
2024-01-28 23:09:00.690 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.kitchen_thermistat changed state: {'state': 'off', 'attributes': {'hvac_modes': [<HVACMode.COOL: 'cool'>, <HVACMode.OFF: 'off'>], 'min_temp': 45, 'max_temp': 95, 'target_temp_step': 1, 'current_temperature': None, 'temperature': 72, 'hvac_action': <HVACAction.OFF: 'off'>, 'icon': 'mdi:snowflake-thermometer', 'friendly_name': 'Kitchen Thermistat', 'supported_features': <ClimateEntityFeature.TARGET_TEMPERATURE: 1>}} (context 01HNA0SJCEZ2BJJ9Q1CCJFSVKG)
2024-01-28 23:09:00.690 DEBUG (MainThread) [custom_components.hvac_group] New min/max temps received from actuator climate.kitchen_thermistat: (45, 95). HVAC Group climate.home_ac new min/max temps: 45.0, 45.0
2024-01-28 23:09:00.690 DEBUG (MainThread) [custom_components.hvac_group] Setting temperature (45.0) on HVAC group climate.home_ac
2024-01-28 23:09:00.690 DEBUG (MainThread) [custom_components.hvac_group] Setting mode cool on HVAC group climate.home_ac
2024-01-28 23:09:03.580 DEBUG (MainThread) [custom_components.hvac_group] New temperature received from temp sensor sensor.downstairs_thermostat_current_temperature: unavailable. Setting on HVAC Group climate.home_climate
2024-01-28 23:09:03.580 DEBUG (MainThread) [custom_components.hvac_group] New temperature received from temp sensor sensor.downstairs_thermostat_current_temperature: unavailable. Setting on HVAC Group climate.home_ac
2024-01-28 23:09:03.580 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/hvac_group/climate.py", line 800, in async_sensor_state_changed_listener
    await self.async_update_temperature_sensor(
  File "/config/custom_components/hvac_group/climate.py", line 935, in async_update_temperature_sensor
    float(new_temperature) if new_temperature is not None else new_temperature
    ^^^^^^^^^^^^^^^^^^^^^^
ValueError: could not convert string to float: 'unavailable'
2024-01-28 23:09:03.585 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/hvac_group/climate.py", line 800, in async_sensor_state_changed_listener
    await self.async_update_temperature_sensor(
  File "/config/custom_components/hvac_group/climate.py", line 935, in async_update_temperature_sensor
    float(new_temperature) if new_temperature is not None else new_temperature
    ^^^^^^^^^^^^^^^^^^^^^^
ValueError: could not convert string to float: 'unavailable'
2024-01-28 23:09:03.590 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.downstairs_thermostat_thermostat changed state: {'state': 'unavailable', 'attributes': {'hvac_modes': [<HVACMode.OFF: 'off'>, <HVACMode.HEAT: 'heat'>], 'min_temp': 41, 'max_temp': 86, 'friendly_name': 'Downstairs Thermostat Thermostat', 'supported_features': <ClimateEntityFeature.TARGET_TEMPERATURE: 1>}} (context 01HNA0SN7412DCA8B5SCTN6300)
2024-01-28 23:09:03.591 DEBUG (MainThread) [custom_components.hvac_group] New min/max temps received from actuator climate.downstairs_thermostat_thermostat: (41, 86). HVAC Group climate.home_climate new min/max temps: 41.0, 41.0
2024-01-28 23:09:03.599 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.downstairs_thermostat_thermostat changed state: {'attributes': {'current_temperature': (77, None), 'temperature': (70, None), 'current_humidity': (46, None), 'hvac_action': (<HVACAction.IDLE: 'idle'>, None)}, 'state': ('heat', 'unavailable')} (context 01HNA0SN7EHSHD26977Z3RK7EF)
2024-01-28 23:09:03.600 DEBUG (MainThread) [custom_components.hvac_group] New temperature received from temp sensor sensor.downstairs_thermostat_current_temperature: 76.6. Setting on HVAC Group climate.home_climate
2024-01-28 23:09:03.600 DEBUG (MainThread) [custom_components.hvac_group] New temperature received from temp sensor sensor.downstairs_thermostat_current_temperature: 76.6. Setting on HVAC Group climate.home_ac
2024-01-28 23:09:03.601 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.kitchen_thermistat changed state: {'attributes': {'current_temperature': (77, None)}} (context 01HNA0SN7GTTJ18SK8XXEZNVH9)
2024-01-28 23:09:03.708 DEBUG (MainThread) [custom_components.hvac_group] New temperature received from temp sensor sensor.upstairs_thermostat_current_temperature: unavailable. Setting on HVAC Group climate.upstairs_climate
2024-01-28 23:09:03.708 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.upstairs_thermostat_thermostat changed state: {'state': 'unavailable', 'attributes': {'hvac_modes': [<HVACMode.OFF: 'off'>, <HVACMode.HEAT: 'heat'>], 'min_temp': 41, 'max_temp': 86, 'friendly_name': 'Upstairs Thermostat Thermostat', 'supported_features': <ClimateEntityFeature.TARGET_TEMPERATURE: 1>}} (context 01HNA0SNAQMQD7JE5RYF67AYFP)
2024-01-28 23:09:03.709 DEBUG (MainThread) [custom_components.hvac_group] New min/max temps received from actuator climate.upstairs_thermostat_thermostat: (41, 86). HVAC Group climate.upstairs_climate new min/max temps: 45.0, 45.0
2024-01-28 23:09:03.709 DEBUG (MainThread) [custom_components.hvac_group] Setting temperature (None-None) on HVAC group climate.upstairs_climate
2024-01-28 23:09:03.709 DEBUG (MainThread) [custom_components.hvac_group] Setting mode heat_cool on HVAC group climate.upstairs_climate
2024-01-28 23:09:03.709 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.upstairs_thermostat_thermostat changed state: {'state': 'unavailable', 'attributes': {'hvac_modes': [<HVACMode.OFF: 'off'>, <HVACMode.HEAT: 'heat'>], 'min_temp': 41, 'max_temp': 86, 'friendly_name': 'Upstairs Thermostat Thermostat', 'supported_features': <ClimateEntityFeature.TARGET_TEMPERATURE: 1>}} (context 01HNA0SNAQMQD7JE5RYF67AYFP)
2024-01-28 23:09:03.709 DEBUG (MainThread) [custom_components.hvac_group] New min/max temps received from actuator climate.upstairs_thermostat_thermostat: (41, 86). HVAC Group climate.home_climate new min/max temps: 41.0, 41.0
2024-01-28 23:09:03.709 DEBUG (MainThread) [custom_components.hvac_group] Setting temperature (None) on HVAC group climate.home_climate
2024-01-28 23:09:03.709 DEBUG (MainThread) [custom_components.hvac_group] Setting mode heat on HVAC group climate.home_climate
2024-01-28 23:09:03.710 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/hvac_group/climate.py", line 800, in async_sensor_state_changed_listener
    await self.async_update_temperature_sensor(
  File "/config/custom_components/hvac_group/climate.py", line 935, in async_update_temperature_sensor
    float(new_temperature) if new_temperature is not None else new_temperature
    ^^^^^^^^^^^^^^^^^^^^^^
ValueError: could not convert string to float: 'unavailable'
2024-01-28 23:09:03.721 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.upstairs_thermostat_thermostat changed state: {'attributes': {'current_temperature': (73, None), 'temperature': (72, None), 'current_humidity': (50, None), 'hvac_action': (<HVACAction.IDLE: 'idle'>, None)}, 'state': ('heat', 'unavailable')} (context 01HNA0SNB5YF3Z7JCDVTEM5CZW)
2024-01-28 23:09:03.721 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.upstairs_thermostat_thermostat changed state: {'attributes': {'current_temperature': (73, None), 'temperature': (72, None), 'current_humidity': (50, None), 'hvac_action': (<HVACAction.IDLE: 'idle'>, None)}, 'state': ('heat', 'unavailable')} (context 01HNA0SNB5YF3Z7JCDVTEM5CZW)
2024-01-28 23:09:03.722 DEBUG (MainThread) [custom_components.hvac_group] New temperature received from temp sensor sensor.upstairs_thermostat_current_temperature: 73. Setting on HVAC Group climate.upstairs_climate
2024-01-28 23:09:04.280 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.bedroom_virtual changed state: {'attributes': {'current_temperature': (73, None)}} (context 01HNA0SNBAZMQXNEAYF1QH72T4)
2024-01-28 23:09:04.280 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.bedroom_virtual changed state: {'attributes': {'current_temperature': (73, None)}} (context 01HNA0SNBAZMQXNEAYF1QH72T4)
2024-01-28 23:09:04.289 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.bedroom_virtual changed state: {'attributes': {'hvac_action': (<HVACAction.COOLING: 'cooling'>, <HVACAction.IDLE: 'idle'>)}} (context 01HNA0SNWYEWJEWFJQ6MAGGAGB)
2024-01-28 23:09:04.289 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.bedroom_virtual changed state: {'attributes': {'hvac_action': (<HVACAction.COOLING: 'cooling'>, <HVACAction.IDLE: 'idle'>)}} (context 01HNA0SNWYEWJEWFJQ6MAGGAGB)
2024-01-28 23:09:13.553 DEBUG (MainThread) [custom_components.hvac_group] No commit action for <class 'custom_components.hvac_group.climate.HvacGroupHeater'> climate.upstairs_thermostat_thermostat
2024-01-28 23:09:13.553 DEBUG (MainThread) [custom_components.hvac_group] No commit action for <class 'custom_components.hvac_group.climate.HvacGroupCooler'> climate.bedroom_virtual
2024-01-28 23:09:13.554 DEBUG (MainThread) [custom_components.hvac_group] No commit action for <class 'custom_components.hvac_group.climate.HvacGroupHeater'> climate.downstairs_thermostat_thermostat
2024-01-28 23:09:13.554 DEBUG (MainThread) [custom_components.hvac_group] No commit action for <class 'custom_components.hvac_group.climate.HvacGroupHeater'> climate.upstairs_thermostat_thermostat
2024-01-28 23:09:13.555 INFO (MainThread) [custom_components.hvac_group] Obtained current and target temperatures (76.6 -> 45.0). Setting mode cool on HVAC group climate.home_ac.
2024-01-28 23:09:13.555 DEBUG (MainThread) [custom_components.hvac_group] Force updating the state of actuators of HVAC group climate.home_ac
2024-01-28 23:09:13.555 DEBUG (MainThread) [custom_components.hvac_group] Attempting to set temperature of <class 'custom_components.hvac_group.climate.HvacGroupCooler'> climate.bedroom_virtual to (45.0 None None) and mode to cool
2024-01-28 23:09:13.555 DEBUG (MainThread) [custom_components.hvac_group] Creating commit action `set_temperature` on <class 'custom_components.hvac_group.climate.HvacGroupCooler'> climate.bedroom_virtual
2024-01-28 23:09:13.555 DEBUG (MainThread) [custom_components.hvac_group] Attempting to set temperature of <class 'custom_components.hvac_group.climate.HvacGroupCooler'> climate.kitchen_thermistat to (45.0 None None) and mode to cool
2024-01-28 23:09:13.555 DEBUG (MainThread) [custom_components.hvac_group] Creating commit action `set_temperature` on <class 'custom_components.hvac_group.climate.HvacGroupCooler'> climate.kitchen_thermistat
2024-01-28 23:09:13.555 DEBUG (MainThread) [custom_components.hvac_group] Actuators initialized for HVAC group climate.home_ac
2024-01-28 23:09:13.555 DEBUG (MainThread) [custom_components.hvac_group] Setting common actuators   as coolers for HVAC group climate.home_ac
2024-01-28 23:09:13.555 DEBUG (MainThread) [custom_components.hvac_group] Running coroutine <bound method HvacGroupActuator._async_call_climate_service of <custom_components.hvac_group.climate.HvacGroupCooler object at 0x7fed8f604950>>(('climate.bedroom_virtual', 'set_temperature', {'temperature': 45.0, 'hvac_mode': <HVACMode.COOL: 'cool'>}))
2024-01-28 23:09:13.589 DEBUG (MainThread) [custom_components.hvac_group] Commit action run for <class 'custom_components.hvac_group.climate.HvacGroupCooler'> climate.bedroom_virtual. Removing
2024-01-28 23:09:13.589 DEBUG (MainThread) [custom_components.hvac_group] Running coroutine <bound method HvacGroupActuator._async_call_climate_service of <custom_components.hvac_group.climate.HvacGroupCooler object at 0x7fed8ed24f50>>(('climate.kitchen_thermistat', 'set_temperature', {'temperature': 45.0, 'hvac_mode': <HVACMode.COOL: 'cool'>}))
2024-01-28 23:09:13.614 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.bedroom_virtual changed state: {'attributes': {'temperature': (45, 72)}} (context 01HNA0SNWYEWJEWFJQ6MAGGAGB)
2024-01-28 23:09:13.614 DEBUG (MainThread) [custom_components.hvac_group] No commit action for <class 'custom_components.hvac_group.climate.HvacGroupHeater'> climate.upstairs_thermostat_thermostat
2024-01-28 23:09:13.614 DEBUG (MainThread) [custom_components.hvac_group] No commit action for <class 'custom_components.hvac_group.climate.HvacGroupCooler'> climate.bedroom_virtual
2024-01-28 23:09:13.614 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.bedroom_virtual changed state: {'attributes': {'temperature': (45, 72)}} (context 01HNA0SNWYEWJEWFJQ6MAGGAGB)
2024-01-28 23:09:13.614 DEBUG (MainThread) [custom_components.hvac_group] No commit action for <class 'custom_components.hvac_group.climate.HvacGroupCooler'> climate.bedroom_virtual
2024-01-28 23:09:13.649 DEBUG (MainThread) [custom_components.hvac_group] Commit action run for <class 'custom_components.hvac_group.climate.HvacGroupCooler'> climate.kitchen_thermistat. Removing
2024-01-28 23:09:13.684 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.kitchen_thermistat changed state: {'attributes': {'temperature': (45, 72)}} (context 01HNA0SNWYEWJEWFJQ6MAGGAGB)
2024-01-28 23:09:13.684 DEBUG (MainThread) [custom_components.hvac_group] No commit action for <class 'custom_components.hvac_group.climate.HvacGroupCooler'> climate.bedroom_virtual
2024-01-28 23:09:13.685 DEBUG (MainThread) [custom_components.hvac_group] No commit action for <class 'custom_components.hvac_group.climate.HvacGroupCooler'> climate.kitchen_thermistat
2024-01-28 23:09:13.751 DEBUG (MainThread) [custom_components.hvac_group] No commit action for <class 'custom_components.hvac_group.climate.HvacGroupCooler'> climate.kitchen_thermistat
2024-01-28 23:09:46.215 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.bedroom_virtual changed state: {'attributes': {'temperature': (76, 45)}} (context 01HNA0TYV48XQQXBBBMEKVXGF3)
2024-01-28 23:09:46.215 DEBUG (MainThread) [custom_components.hvac_group] No commit action for <class 'custom_components.hvac_group.climate.HvacGroupHeater'> climate.upstairs_thermostat_thermostat
2024-01-28 23:09:46.215 DEBUG (MainThread) [custom_components.hvac_group] No commit action for <class 'custom_components.hvac_group.climate.HvacGroupCooler'> climate.bedroom_virtual
2024-01-28 23:09:46.216 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.bedroom_virtual changed state: {'attributes': {'temperature': (76, 45)}} (context 01HNA0TYV48XQQXBBBMEKVXGF3)
2024-01-28 23:09:46.216 DEBUG (MainThread) [custom_components.hvac_group] No commit action for <class 'custom_components.hvac_group.climate.HvacGroupCooler'> climate.bedroom_virtual
2024-01-28 23:09:46.216 DEBUG (MainThread) [custom_components.hvac_group] No commit action for <class 'custom_components.hvac_group.climate.HvacGroupCooler'> climate.kitchen_thermistat
2024-01-28 23:09:46.226 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.bedroom_virtual changed state: {'attributes': {'hvac_action': (<HVACAction.IDLE: 'idle'>, <HVACAction.COOLING: 'cooling'>)}} (context 01HNA0TYV48XQQXBBBMEKVXGF3)
2024-01-28 23:09:46.226 DEBUG (MainThread) [custom_components.hvac_group] No commit action for <class 'custom_components.hvac_group.climate.HvacGroupHeater'> climate.upstairs_thermostat_thermostat
2024-01-28 23:09:46.226 DEBUG (MainThread) [custom_components.hvac_group] No commit action for <class 'custom_components.hvac_group.climate.HvacGroupCooler'> climate.bedroom_virtual
2024-01-28 23:09:46.226 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.bedroom_virtual changed state: {'attributes': {'hvac_action': (<HVACAction.IDLE: 'idle'>, <HVACAction.COOLING: 'cooling'>)}} (context 01HNA0TYV48XQQXBBBMEKVXGF3)
2024-01-28 23:09:46.226 DEBUG (MainThread) [custom_components.hvac_group] No commit action for <class 'custom_components.hvac_group.climate.HvacGroupCooler'> climate.bedroom_virtual
2024-01-28 23:09:46.226 DEBUG (MainThread) [custom_components.hvac_group] No commit action for <class 'custom_components.hvac_group.climate.HvacGroupCooler'> climate.kitchen_thermistat

Diagnostics dump

No response

tetele commented 9 months ago

Right! unavailable was not handled correctly and, thanks to you, I found some other minor issues. Thanks! There'll be an update soon.

rk-nova commented 9 months ago

Great! Super happy to help by making more work for you!

Let me know if you need any more info or for me to try out a fix.

tetele commented 9 months ago

I've almost completely re-written the integration and I'm hoping it's much more robust now. There's a 0.2.0-beta version you could try (but you have to enable beta versions in HACS).

This issue was most likely fixed in #62 but please reopen it if it's not.

rk-nova commented 9 months ago

@tetele ok, I have the beta applied. Do I need to re-create the groups? With the previous groups, I am still seeing odd behavior (no ability to set the temp, and the group can now turn off the members of the group but can't turn them back on).

rk-nova commented 9 months ago

Here is the only error I see logged. Again, this is will the groups I had created before. I will try adding some new groups and testing with those in a bit.

2024-02-06 18:53:34.236 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/hvac_group/climate.py", line 463, in async_sensor_state_changed_listener
    await self.async_update_temperature_sensor(
  File "/config/custom_components/hvac_group/climate.py", line 594, in async_update_temperature_sensor
    float(new_temperature) if new_temperature is not None else new_temperature
    ^^^^^^^^^^^^^^^^^^^^^^
ValueError: could not convert string to float: 'unavailable'
2024-02-06 18:53:34.238 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/hvac_group/climate.py", line 463, in async_sensor_state_changed_listener
    await self.async_update_temperature_sensor(
  File "/config/custom_components/hvac_group/climate.py", line 594, in async_update_temperature_sensor
    float(new_temperature) if new_temperature is not None else new_temperature
    ^^^^^^^^^^^^^^^^^^^^^^
ValueError: could not convert string to float: 'unavailable'
2024-02-06 18:53:34.246 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/hvac_group/climate.py", line 463, in async_sensor_state_changed_listener
    await self.async_update_temperature_sensor(
  File "/config/custom_components/hvac_group/climate.py", line 594, in async_update_temperature_sensor
    float(new_temperature) if new_temperature is not None else new_temperature
    ^^^^^^^^^^^^^^^^^^^^^^
ValueError: could not convert string to float: 'unavailable'
tetele commented 9 months ago

Do I need to re-create the groups?

In theory, no, although they may have some outdated data assigned to them. It's probably safer to recreate them.

With the previous groups, I am still seeing odd behavior (no ability to set the temp, and the group can now turn off the members of the group but can't turn them back on).

I've noticed very weird behavior in the Thermostat card when the capabilities of a climate entity change. Could you also try refreshing the dashboard, please?

Here is the only error I see logged

That's reason enough to reopen the issue. I have an idea about how to fix that as well. Thank you very much for testing!

tetele commented 9 months ago

Should be fixed in 0.2.0-beta.2 - it will eliminate the error message and make the group entity unavailable if the temperature sensor was never available.

rk-nova commented 9 months ago

In case it helps, I added a new group (still on -beta1) and got these messages in the log. They do seem related to the most recent commit on your PR.

2024-02-07 12:05:51.365 WARNING (MainThread) [custom_components.hvac_group] No previously saved temperature, setting to 45.0, 45.0 2024-02-07 12:05:51.461 ERROR (MainThread) [homeassistant.components.template.template_entity] TemplateError('ValueError: Template error: float got invalid input 'unknown' when rendering template '{{ states('sensor.downstairs_thermostat_current_temperature') | float - states('sensor.downstairs_target_temperature') | float }}' but no default was specified') while processing template 'Template<template=({{ states('sensor.downstairs_thermostat_current_temperature') | float - states('sensor.downstairs_target_temperature') | float }}) renders=126>' for attribute '_attr_native_value' in entity 'sensor.downstairs_temperature_delta'

About to update to -beta2 and see if it resolves the issue. Thanks!

rk-nova commented 9 months ago

Ok, still getting errors:

2024-02-07 12:14:40.880 ERROR (MainThread) [homeassistant.helpers.event] Error while processing template: Template<template=({{ states('sensor.downstairs_thermostat_current_temperature') | float - states('sensor.downstairs_target_temperature') | float }}) renders=2>
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1984, in forgiving_float_filter
    return float(value)
           ^^^^^^^^^^^^
ValueError: could not convert string to float: 'unknown'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 567, in async_render
    render_result = _render_with_context(self.template, compiled, **kwargs)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 2305, in _render_with_context
    return template.render(**kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/jinja2/environment.py", line 1301, in render
    self.environment.handle_exception()
  File "/usr/local/lib/python3.11/site-packages/jinja2/environment.py", line 936, in handle_exception
    raise rewrite_traceback_stack(source=source)
  File "<template>", line 1, in top-level template code
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1987, in forgiving_float_filter
    raise_no_default("float", value)
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1625, in raise_no_default
    raise ValueError(
ValueError: Template error: float got invalid input 'unknown' when rendering template '{{ states('sensor.downstairs_thermostat_current_temperature') | float - states('sensor.downstairs_target_temperature') | float }}' but no default was specified

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

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 693, in async_render_to_info
    render_info._result = self.async_render(
                          ^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 569, in async_render
    raise TemplateError(err) from err
2024-02-07 12:14:40.887 ERROR (MainThread) [homeassistant.components.template.template_entity] TemplateError('ValueError: Template error: float got invalid input 'unknown' when rendering template '{{ states('sensor.downstairs_thermostat_current_temperature') | float - states('sensor.downstairs_target_temperature') | float }}' but no default was specified') while processing template 'Template<template=({{ states('sensor.downstairs_thermostat_current_temperature') | float - states('sensor.downstairs_target_temperature') | float }}) renders=4>' for attribute '_attr_native_value' in entity 'sensor.downstairs_temperature_delta'

For sanity, I checked {{ states('sensor.downstairs_thermostat_current_temperature') | float - states('sensor.downstairs_target_temperature') | float }} in the template developer tools and it does seem to resolve as 28.599999999999994

There are also still no dials on the thermostat card to set the temp range: image

The non-dashboard UI has the same behavior: image

rk-nova commented 9 months ago

I do still have the original groups, let me know if I should remove them

tetele commented 9 months ago

Many things to unpack here. Thank you very much for all of the insights.

In order to better understand the template errors, I need to understand what sensor.downstairs_thermostat_current_temperature, sensor.downstairs_temperature_delta and sensor.downstairs_target_temperature are and what they're used for. I don't see a direct link to the group, so you need to help me out a bit, as they don't sound related to the integration. hvac_group integration only exposes a climate entity, so i can't say why a few sensors yield template errors.

Regarding the lack of controls, have you refreshed your dashboard? I've already mentioned that the Thermostat card doesn't always refresh climate capabilities well, so maybe it's just that.

You can recreate the groups if you want, although I still think it's not mandatory.

rk-nova commented 9 months ago

My bad, sensor.downstairs_temperature_delta was confusing the log for sure, its an old tempalte sensor that was part of my attempt to hack something similar to HVAC Groups together a while back. Let me remove it and restart. It should not be related. I think I noticed the same temperature sensor that i had included as the current temp for one of the groups.

rk-nova commented 9 months ago

Yep, removed that dead code from my config and that error is gone.

So that get me back to the lack of controls, and the target temps all getting set to 45deg.

You mentioned refreshing the dashboard. Do you just mean in the browser? I have done that as well as editing and saving it. I also see the same lack of controls when I go into the helpers section and open up a specific group.

tetele commented 9 months ago

You mentioned refreshing the dashboard. Do you just mean in the browser?

Yes, that's what i meant. If it didn't work, it means something else is the culprit. Any new and interesting log messages?

If not, please add the following to your configuration.yaml and restart HA. You'll get a lot of new logs after that.

# configuration.yaml
logger:
  default: info # or whatever you already have configured
  logs:
    custom_components.hvac_group: debug
rk-nova commented 9 months ago

Nothing when out the debug logging on. Here are the related debug log lines:

2024-02-08 00:24:04.914 INFO (MainThread) [homeassistant.setup] Setting up hvac_group
2024-02-08 00:24:04.915 INFO (MainThread) [homeassistant.setup] Setup of domain hvac_group took 0.0 seconds
2024-02-08 00:24:19.153 INFO (MainThread) [homeassistant.components.climate] Setting up hvac_group.climate
2024-02-08 00:24:19.154 INFO (MainThread) [homeassistant.components.climate] Setting up hvac_group.climate
2024-02-08 00:24:19.154 INFO (MainThread) [homeassistant.components.climate] Setting up hvac_group.climate
2024-02-08 00:24:19.154 INFO (MainThread) [homeassistant.components.climate] Setting up hvac_group.climate
2024-02-08 00:24:19.155 DEBUG (MainThread) [custom_components.hvac_group] Setting temperature (45.0) on HVAC group climate.upstairs_climate
2024-02-08 00:24:19.156 DEBUG (MainThread) [custom_components.hvac_group] Setting temperature (41.0) on HVAC group climate.home_climate
2024-02-08 00:24:19.158 DEBUG (MainThread) [custom_components.hvac_group] Setting temperature (45.0) on HVAC group climate.home_ac
2024-02-08 00:24:19.159 DEBUG (MainThread) [custom_components.hvac_group] Setting temperature (45.0) on HVAC group climate.downstairs_climate
2024-02-08 00:24:19.988 DEBUG (MainThread) [custom_components.hvac_group] Making sure climate.upstairs_climate supports cooling
2024-02-08 00:24:19.988 DEBUG (MainThread) [custom_components.hvac_group] New HVAC modes supported by climate.upstairs_climate: off,cool
2024-02-08 00:24:19.988 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.bedroom_virtual just loaded: {'state': 'cool', 'attributes': {'hvac_modes': [<HVACMode.COOL: 'cool'>, <HVACMode.OFF: 'off'>], 'min_temp': 45, 'max_temp': 95, 'target_temp_step': 1, 'current_temperature': None, 'temperature': 72, 'hvac_action': <HVACAction.COOLING: 'cooling'>, 'friendly_name': 'Bedroom_virtual', 'supported_features': <ClimateEntityFeature.TARGET_TEMPERATURE: 1>}} (context 01HP3X2NRH68XZ720E43WVQBPF)
2024-02-08 00:24:19.989 DEBUG (MainThread) [custom_components.hvac_group] New min/max temps received from actuator climate.bedroom_virtual: (45, 95). HVAC Group climate.upstairs_climate new min/max temps: 45.0, 45.0
2024-02-08 00:24:19.989 DEBUG (MainThread) [custom_components.hvac_group] Setting temperature (45.0) on HVAC group climate.upstairs_climate
2024-02-08 00:24:19.989 DEBUG (MainThread) [custom_components.hvac_group] Making sure climate.home_ac supports cooling
2024-02-08 00:24:19.989 DEBUG (MainThread) [custom_components.hvac_group] New HVAC modes supported by climate.home_ac: off,cool
2024-02-08 00:24:19.989 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.bedroom_virtual just loaded: {'state': 'cool', 'attributes': {'hvac_modes': [<HVACMode.COOL: 'cool'>, <HVACMode.OFF: 'off'>], 'min_temp': 45, 'max_temp': 95, 'target_temp_step': 1, 'current_temperature': None, 'temperature': 72, 'hvac_action': <HVACAction.COOLING: 'cooling'>, 'friendly_name': 'Bedroom_virtual', 'supported_features': <ClimateEntityFeature.TARGET_TEMPERATURE: 1>}} (context 01HP3X2NRH68XZ720E43WVQBPF)
2024-02-08 00:24:19.989 DEBUG (MainThread) [custom_components.hvac_group] New min/max temps received from actuator climate.bedroom_virtual: (45, 95). HVAC Group climate.home_ac new min/max temps: 45.0, 45.0
2024-02-08 00:24:19.989 DEBUG (MainThread) [custom_components.hvac_group] Setting temperature (45.0) on HVAC group climate.home_ac
2024-02-08 00:24:19.994 INFO (MainThread) [homeassistant.components.media_player] Setting up androidtv_remote.media_player
2024-02-08 00:24:19.999 DEBUG (MainThread) [custom_components.hvac_group] Making sure climate.home_ac supports cooling
2024-02-08 00:24:19.999 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.kitchen_thermistat just loaded: {'state': 'off', 'attributes': {'hvac_modes': [<HVACMode.COOL: 'cool'>, <HVACMode.OFF: 'off'>], 'min_temp': 45, 'max_temp': 95, 'target_temp_step': 1, 'current_temperature': None, 'temperature': 72, 'hvac_action': <HVACAction.OFF: 'off'>, 'icon': 'mdi:snowflake-thermometer', 'friendly_name': 'Kitchen Thermistat', 'supported_features': <ClimateEntityFeature.TARGET_TEMPERATURE: 1>}} (context 01HP3X2NRJ53FYF2864HANGC0N)
2024-02-08 00:24:19.999 DEBUG (MainThread) [custom_components.hvac_group] New min/max temps received from actuator climate.kitchen_thermistat: (45, 95). HVAC Group climate.home_ac new min/max temps: 45.0, 45.0
2024-02-08 00:24:19.999 DEBUG (MainThread) [custom_components.hvac_group] Making sure climate.downstairs_climate supports cooling
2024-02-08 00:24:19.999 DEBUG (MainThread) [custom_components.hvac_group] New HVAC modes supported by climate.downstairs_climate: off,cool
2024-02-08 00:24:19.999 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.kitchen_thermistat just loaded: {'state': 'off', 'attributes': {'hvac_modes': [<HVACMode.COOL: 'cool'>, <HVACMode.OFF: 'off'>], 'min_temp': 45, 'max_temp': 95, 'target_temp_step': 1, 'current_temperature': None, 'temperature': 72, 'hvac_action': <HVACAction.OFF: 'off'>, 'icon': 'mdi:snowflake-thermometer', 'friendly_name': 'Kitchen Thermistat', 'supported_features': <ClimateEntityFeature.TARGET_TEMPERATURE: 1>}} (context 01HP3X2NRJ53FYF2864HANGC0N)
2024-02-08 00:24:19.999 DEBUG (MainThread) [custom_components.hvac_group] New min/max temps received from actuator climate.kitchen_thermistat: (45, 95). HVAC Group climate.downstairs_climate new min/max temps: 45.0, 45.0
2024-02-08 00:24:19.999 DEBUG (MainThread) [custom_components.hvac_group] Setting temperature (45.0) on HVAC group climate.downstairs_climate
2024-02-08 00:24:22.775 DEBUG (MainThread) [custom_components.hvac_group] Making sure climate.home_climate supports heating
2024-02-08 00:24:22.776 DEBUG (MainThread) [custom_components.hvac_group] New HVAC modes supported by climate.home_climate: off,heat
2024-02-08 00:24:22.776 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.downstairs_thermostat_thermostat just loaded: {'state': 'unavailable', 'attributes': {'hvac_modes': [<HVACMode.OFF: 'off'>, <HVACMode.HEAT: 'heat'>], 'min_temp': 41, 'max_temp': 86, 'friendly_name': 'Downstairs Thermostat Thermostat', 'supported_features': <ClimateEntityFeature.TARGET_TEMPERATURE: 1>}} (context 01HP3X2RFEC3DERGGNZPZDG6R8)
2024-02-08 00:24:22.776 DEBUG (MainThread) [custom_components.hvac_group] New min/max temps received from actuator climate.downstairs_thermostat_thermostat: (41, 86). HVAC Group climate.home_climate new min/max temps: 41.0, 41.0
2024-02-08 00:24:22.776 DEBUG (MainThread) [custom_components.hvac_group] Setting temperature (41.0) on HVAC group climate.home_climate
2024-02-08 00:24:22.776 DEBUG (MainThread) [custom_components.hvac_group] Making sure climate.downstairs_climate supports heating
2024-02-08 00:24:22.776 DEBUG (MainThread) [custom_components.hvac_group] New HVAC modes supported by climate.downstairs_climate: off,heat_cool
2024-02-08 00:24:22.776 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.downstairs_thermostat_thermostat just loaded: {'state': 'unavailable', 'attributes': {'hvac_modes': [<HVACMode.OFF: 'off'>, <HVACMode.HEAT: 'heat'>], 'min_temp': 41, 'max_temp': 86, 'friendly_name': 'Downstairs Thermostat Thermostat', 'supported_features': <ClimateEntityFeature.TARGET_TEMPERATURE: 1>}} (context 01HP3X2RFEC3DERGGNZPZDG6R8)
2024-02-08 00:24:22.776 DEBUG (MainThread) [custom_components.hvac_group] New min/max temps received from actuator climate.downstairs_thermostat_thermostat: (41, 86). HVAC Group climate.downstairs_climate new min/max temps: 45.0, 45.0
2024-02-08 00:24:22.776 DEBUG (MainThread) [custom_components.hvac_group] Setting temperature (45.0-45.0) on HVAC group climate.downstairs_climate
2024-02-08 00:24:22.785 DEBUG (MainThread) [custom_components.hvac_group] Making sure climate.upstairs_climate supports heating
2024-02-08 00:24:22.786 DEBUG (MainThread) [custom_components.hvac_group] New HVAC modes supported by climate.upstairs_climate: off,heat_cool
2024-02-08 00:24:22.786 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.upstairs_thermostat_thermostat just loaded: {'state': 'unavailable', 'attributes': {'hvac_modes': [<HVACMode.OFF: 'off'>, <HVACMode.HEAT: 'heat'>], 'min_temp': 41, 'max_temp': 86, 'friendly_name': 'Upstairs Thermostat Thermostat', 'supported_features': <ClimateEntityFeature.TARGET_TEMPERATURE: 1>}} (context 01HP3X2RFZ7RPTQ9GS0MF3QDF8)
2024-02-08 00:24:22.786 DEBUG (MainThread) [custom_components.hvac_group] New min/max temps received from actuator climate.upstairs_thermostat_thermostat: (41, 86). HVAC Group climate.upstairs_climate new min/max temps: 45.0, 45.0
2024-02-08 00:24:22.786 DEBUG (MainThread) [custom_components.hvac_group] Setting temperature (45.0-45.0) on HVAC group climate.upstairs_climate
2024-02-08 00:24:22.786 DEBUG (MainThread) [custom_components.hvac_group] Making sure climate.home_climate supports heating
2024-02-08 00:24:22.786 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.upstairs_thermostat_thermostat just loaded: {'state': 'unavailable', 'attributes': {'hvac_modes': [<HVACMode.OFF: 'off'>, <HVACMode.HEAT: 'heat'>], 'min_temp': 41, 'max_temp': 86, 'friendly_name': 'Upstairs Thermostat Thermostat', 'supported_features': <ClimateEntityFeature.TARGET_TEMPERATURE: 1>}} (context 01HP3X2RFZ7RPTQ9GS0MF3QDF8)
2024-02-08 00:24:22.786 DEBUG (MainThread) [custom_components.hvac_group] New min/max temps received from actuator climate.upstairs_thermostat_thermostat: (41, 86). HVAC Group climate.home_climate new min/max temps: 41.0, 41.0
2024-02-08 00:24:22.790 DEBUG (MainThread) [custom_components.hvac_group] New temperature received from temp sensor sensor.downstairs_thermostat_current_temperature: 73. Setting on HVAC Group climate.home_climate
2024-02-08 00:24:22.790 DEBUG (MainThread) [custom_components.hvac_group] New temperature received from temp sensor sensor.downstairs_thermostat_current_temperature: 73. Setting on HVAC Group climate.home_ac
2024-02-08 00:24:22.790 DEBUG (MainThread) [custom_components.hvac_group] New temperature received from temp sensor sensor.downstairs_thermostat_current_temperature: 73. Setting on HVAC Group climate.downstairs_climate
2024-02-08 00:24:22.790 INFO (MainThread) [homeassistant.components.generic_thermostat.climate] Obtained current and target temperature. Generic thermostat active. 73.0, 72.0
2024-02-08 00:24:22.790 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.downstairs_thermostat_thermostat changed state: {'attributes': {'current_temperature': (73, None), 'temperature': (68, None), 'current_humidity': (36, None), 'hvac_action': (<HVACAction.IDLE: 'idle'>, None)}, 'state': ('heat', 'unavailable')} (context 01HP3X2RG3P0RX0D9XPST2PWAH)
2024-02-08 00:24:22.790 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.downstairs_thermostat_thermostat changed state: {'attributes': {'current_temperature': (73, None), 'temperature': (68, None), 'current_humidity': (36, None), 'hvac_action': (<HVACAction.IDLE: 'idle'>, None)}, 'state': ('heat', 'unavailable')} (context 01HP3X2RG3P0RX0D9XPST2PWAH)
2024-02-08 00:24:22.796 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.kitchen_thermistat changed state: {'attributes': {'current_temperature': (73, None)}} (context 01HP3X2RG6D98RZ7A3F6A4YG2D)
2024-02-08 00:24:22.797 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.kitchen_thermistat changed state: {'attributes': {'current_temperature': (73, None)}} (context 01HP3X2RG6D98RZ7A3F6A4YG2D)
2024-02-08 00:24:22.802 DEBUG (MainThread) [custom_components.hvac_group] New temperature received from temp sensor sensor.upstairs_thermostat_current_temperature: 69.3. Setting on HVAC Group climate.upstairs_climate
2024-02-08 00:24:22.802 INFO (MainThread) [homeassistant.components.generic_thermostat.climate] Obtained current and target temperature. Generic thermostat active. 69.3, 72.0
2024-02-08 00:24:22.802 INFO (MainThread) [homeassistant.components.generic_thermostat.climate] Turning off heater input_boolean.enable_bedroom_climate
2024-02-08 00:24:22.802 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.upstairs_thermostat_thermostat changed state: {'attributes': {'current_temperature': (69, None), 'temperature': (68, None), 'current_humidity': (36, None), 'hvac_action': (<HVACAction.IDLE: 'idle'>, None)}, 'state': ('heat', 'unavailable')} (context 01HP3X2RGCSDFKG82QDJSJ6GMC)
2024-02-08 00:24:22.802 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.upstairs_thermostat_thermostat changed state: {'attributes': {'current_temperature': (69, None), 'temperature': (68, None), 'current_humidity': (36, None), 'hvac_action': (<HVACAction.IDLE: 'idle'>, None)}, 'state': ('heat', 'unavailable')} (context 01HP3X2RGCSDFKG82QDJSJ6GMC)
2024-02-08 00:24:22.807 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.bedroom_virtual changed state: {'attributes': {'current_temperature': (69, None)}} (context 01HP3X2RGJF7M254MCVKTDBYNF)
2024-02-08 00:24:22.808 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.bedroom_virtual changed state: {'attributes': {'current_temperature': (69, None)}} (context 01HP3X2RGJF7M254MCVKTDBYNF)
2024-02-08 00:24:22.818 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.bedroom_virtual changed state: {'attributes': {'hvac_action': (<HVACAction.IDLE: 'idle'>, <HVACAction.COOLING: 'cooling'>)}} (context 01HP3X2RGSQGN2YTV4KM19VJ4C)
2024-02-08 00:24:22.818 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.bedroom_virtual changed state: {'attributes': {'hvac_action': (<HVACAction.IDLE: 'idle'>, <HVACAction.COOLING: 'cooling'>)}} (context 01HP3X2RGSQGN2YTV4KM19VJ4C)
2024-02-08 00:24:33.105 DEBUG (MainThread) [custom_components.hvac_group] Updating climate.upstairs_climate on Home Assistant start
2024-02-08 00:24:33.105 DEBUG (MainThread) [custom_components.hvac_group] Obtained current and target temperatures (69.3 -> 45.0-45.0). Setting mode heat_cool on HVAC group climate.upstairs_climate.
2024-02-08 00:24:33.105 DEBUG (MainThread) [custom_components.hvac_group] Force updating the state of actuators of HVAC group climate.upstairs_climate
2024-02-08 00:24:33.105 DEBUG (MainThread) [custom_components.hvac_group] Attempting to set temperature of <class 'custom_components.hvac_group.actuator.HvacGroupHeater'> climate.upstairs_thermostat_thermostat to (None 45.0 45.0) and mode to heat
2024-02-08 00:24:33.105 DEBUG (MainThread) [custom_components.hvac_group] Creating commit action `set_temperature` on <class 'custom_components.hvac_group.actuator.HvacGroupHeater'> climate.upstairs_thermostat_thermostat
2024-02-08 00:24:33.105 DEBUG (MainThread) [custom_components.hvac_group] Attempting to set temperature of <class 'custom_components.hvac_group.actuator.HvacGroupCooler'> climate.bedroom_virtual to (None 45.0 45.0) and mode to cool
2024-02-08 00:24:33.105 DEBUG (MainThread) [custom_components.hvac_group] Creating commit action `set_temperature` on <class 'custom_components.hvac_group.actuator.HvacGroupCooler'> climate.bedroom_virtual
2024-02-08 00:24:33.105 DEBUG (MainThread) [custom_components.hvac_group] Setting common actuators   as coolers for HVAC group climate.upstairs_climate
2024-02-08 00:24:33.105 DEBUG (MainThread) [custom_components.hvac_group] Running coroutine <bound method HvacGroupActuator._async_call_climate_service of <custom_components.hvac_group.actuator.HvacGroupHeater object at 0x7f31d2c16c90>>(('climate.upstairs_thermostat_thermostat', 'set_temperature', {'temperature': 45.0, 'hvac_mode': <HVACMode.HEAT: 'heat'>}))
2024-02-08 00:24:33.105 DEBUG (MainThread) [custom_components.hvac_group] Updating climate.home_climate on Home Assistant start
2024-02-08 00:24:33.105 DEBUG (MainThread) [custom_components.hvac_group] Obtained current and target temperatures (73.0 -> 41.0). Setting mode heat on HVAC group climate.home_climate.
2024-02-08 00:24:33.106 DEBUG (MainThread) [custom_components.hvac_group] Force updating the state of actuators of HVAC group climate.home_climate
2024-02-08 00:24:33.106 DEBUG (MainThread) [custom_components.hvac_group] Attempting to set temperature of <class 'custom_components.hvac_group.actuator.HvacGroupHeater'> climate.upstairs_thermostat_thermostat to (41.0 None None) and mode to heat
2024-02-08 00:24:33.106 DEBUG (MainThread) [custom_components.hvac_group] Creating commit action `set_temperature` on <class 'custom_components.hvac_group.actuator.HvacGroupHeater'> climate.upstairs_thermostat_thermostat
2024-02-08 00:24:33.106 DEBUG (MainThread) [custom_components.hvac_group] Attempting to set temperature of <class 'custom_components.hvac_group.actuator.HvacGroupHeater'> climate.downstairs_thermostat_thermostat to (41.0 None None) and mode to heat
2024-02-08 00:24:33.106 DEBUG (MainThread) [custom_components.hvac_group] Creating commit action `set_temperature` on <class 'custom_components.hvac_group.actuator.HvacGroupHeater'> climate.downstairs_thermostat_thermostat
2024-02-08 00:24:33.106 DEBUG (MainThread) [custom_components.hvac_group] Running coroutine <bound method HvacGroupActuator._async_call_climate_service of <custom_components.hvac_group.actuator.HvacGroupHeater object at 0x7f31d24a96d0>>(('climate.upstairs_thermostat_thermostat', 'set_temperature', {'temperature': 41.0, 'hvac_mode': <HVACMode.HEAT: 'heat'>}))
2024-02-08 00:24:33.106 DEBUG (MainThread) [custom_components.hvac_group] Updating climate.home_ac on Home Assistant start
2024-02-08 00:24:33.106 DEBUG (MainThread) [custom_components.hvac_group] Obtained current and target temperatures (73.0 -> 45.0). Setting mode cool on HVAC group climate.home_ac.
2024-02-08 00:24:33.106 DEBUG (MainThread) [custom_components.hvac_group] Force updating the state of actuators of HVAC group climate.home_ac
2024-02-08 00:24:33.106 DEBUG (MainThread) [custom_components.hvac_group] Attempting to set temperature of <class 'custom_components.hvac_group.actuator.HvacGroupCooler'> climate.bedroom_virtual to (45.0 None None) and mode to cool
2024-02-08 00:24:33.106 DEBUG (MainThread) [custom_components.hvac_group] Creating commit action `set_temperature` on <class 'custom_components.hvac_group.actuator.HvacGroupCooler'> climate.bedroom_virtual
2024-02-08 00:24:33.106 DEBUG (MainThread) [custom_components.hvac_group] Attempting to set temperature of <class 'custom_components.hvac_group.actuator.HvacGroupCooler'> climate.kitchen_thermistat to (45.0 None None) and mode to cool
2024-02-08 00:24:33.106 DEBUG (MainThread) [custom_components.hvac_group] Creating commit action `set_temperature` on <class 'custom_components.hvac_group.actuator.HvacGroupCooler'> climate.kitchen_thermistat
2024-02-08 00:24:33.106 DEBUG (MainThread) [custom_components.hvac_group] Setting common actuators   as coolers for HVAC group climate.home_ac
2024-02-08 00:24:33.106 DEBUG (MainThread) [custom_components.hvac_group] Running coroutine <bound method HvacGroupActuator._async_call_climate_service of <custom_components.hvac_group.actuator.HvacGroupCooler object at 0x7f31d24a88d0>>(('climate.bedroom_virtual', 'set_temperature', {'temperature': 45.0, 'hvac_mode': <HVACMode.COOL: 'cool'>}))
2024-02-08 00:24:33.107 DEBUG (MainThread) [custom_components.hvac_group] Updating climate.downstairs_climate on Home Assistant start
2024-02-08 00:24:33.107 DEBUG (MainThread) [custom_components.hvac_group] Obtained current and target temperatures (73.0 -> 45.0-45.0). Setting mode heat_cool on HVAC group climate.downstairs_climate.
2024-02-08 00:24:33.107 DEBUG (MainThread) [custom_components.hvac_group] Force updating the state of actuators of HVAC group climate.downstairs_climate
2024-02-08 00:24:33.107 DEBUG (MainThread) [custom_components.hvac_group] Attempting to set temperature of <class 'custom_components.hvac_group.actuator.HvacGroupHeater'> climate.downstairs_thermostat_thermostat to (None 45.0 45.0) and mode to heat
2024-02-08 00:24:33.107 DEBUG (MainThread) [custom_components.hvac_group] Creating commit action `set_temperature` on <class 'custom_components.hvac_group.actuator.HvacGroupHeater'> climate.downstairs_thermostat_thermostat
2024-02-08 00:24:33.107 DEBUG (MainThread) [custom_components.hvac_group] Attempting to set temperature of <class 'custom_components.hvac_group.actuator.HvacGroupCooler'> climate.kitchen_thermistat to (None 45.0 45.0) and mode to cool
2024-02-08 00:24:33.107 DEBUG (MainThread) [custom_components.hvac_group] Creating commit action `set_temperature` on <class 'custom_components.hvac_group.actuator.HvacGroupCooler'> climate.kitchen_thermistat
2024-02-08 00:24:33.107 DEBUG (MainThread) [custom_components.hvac_group] Setting common actuators   as coolers for HVAC group climate.downstairs_climate
2024-02-08 00:24:33.107 DEBUG (MainThread) [custom_components.hvac_group] Running coroutine <bound method HvacGroupActuator._async_call_climate_service of <custom_components.hvac_group.actuator.HvacGroupHeater object at 0x7f31d24aad50>>(('climate.downstairs_thermostat_thermostat', 'set_temperature', {'temperature': 45.0, 'hvac_mode': <HVACMode.HEAT: 'heat'>}))
2024-02-08 00:24:33.156 DEBUG (MainThread) [custom_components.hvac_group] Commit action run for <class 'custom_components.hvac_group.actuator.HvacGroupCooler'> climate.bedroom_virtual. Removing
2024-02-08 00:24:33.156 DEBUG (MainThread) [custom_components.hvac_group] Running coroutine <bound method HvacGroupActuator._async_call_climate_service of <custom_components.hvac_group.actuator.HvacGroupCooler object at 0x7f31d24a8a10>>(('climate.kitchen_thermistat', 'set_temperature', {'temperature': 45.0, 'hvac_mode': <HVACMode.COOL: 'cool'>}))
2024-02-08 00:24:33.167 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.bedroom_virtual changed state: {'attributes': {'temperature': (45, 72)}} (context 01HP3X2RGSQGN2YTV4KM19VJ4C)
2024-02-08 00:24:33.167 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.bedroom_virtual changed state: {'attributes': {'temperature': (45, 72)}} (context 01HP3X2RGSQGN2YTV4KM19VJ4C)
2024-02-08 00:24:33.186 DEBUG (MainThread) [custom_components.hvac_group] Commit action run for <class 'custom_components.hvac_group.actuator.HvacGroupCooler'> climate.kitchen_thermistat. Removing

2024-02-08 00:24:33.227 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.kitchen_thermistat changed state: {'attributes': {'temperature': (45, 72)}} (context 01HP3X2RGSQGN2YTV4KM19VJ4C)
2024-02-08 00:24:33.227 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.kitchen_thermistat changed state: {'attributes': {'temperature': (45, 72)}} (context 01HP3X2RGSQGN2YTV4KM19VJ4C)
2024-02-08 00:24:33.268 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.bedroom_virtual changed state: {'attributes': {'hvac_action': (<HVACAction.COOLING: 'cooling'>, <HVACAction.IDLE: 'idle'>)}} (context 01HP3X2RGSQGN2YTV4KM19VJ4C)
2024-02-08 00:24:33.268 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.bedroom_virtual changed state: {'attributes': {'hvac_action': (<HVACAction.COOLING: 'cooling'>, <HVACAction.IDLE: 'idle'>)}} (context 01HP3X2RGSQGN2YTV4KM19VJ4C)
2024-02-08 00:24:33.295 DEBUG (MainThread) [custom_components.hvac_group] Commit action run for <class 'custom_components.hvac_group.actuator.HvacGroupHeater'> climate.upstairs_thermostat_thermostat. Removing
2024-02-08 00:24:33.295 DEBUG (MainThread) [custom_components.hvac_group] Running coroutine <bound method HvacGroupActuator._async_call_climate_service of <custom_components.hvac_group.actuator.HvacGroupCooler object at 0x7f31d15c8ad0>>(('climate.bedroom_virtual', 'set_temperature', {'temperature': 45.0, 'hvac_mode': <HVACMode.COOL: 'cool'>}))
2024-02-08 00:24:33.296 DEBUG (MainThread) [custom_components.hvac_group] Commit action run for <class 'custom_components.hvac_group.actuator.HvacGroupHeater'> climate.downstairs_thermostat_thermostat. Removing
2024-02-08 00:24:33.296 DEBUG (MainThread) [custom_components.hvac_group] Running coroutine <bound method HvacGroupActuator._async_call_climate_service of <custom_components.hvac_group.actuator.HvacGroupCooler object at 0x7f31d24aaa50>>(('climate.kitchen_thermistat', 'set_temperature', {'temperature': 45.0, 'hvac_mode': <HVACMode.COOL: 'cool'>}))
2024-02-08 00:24:33.314 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.upstairs_thermostat_thermostat changed state: {'attributes': {'temperature': (45, 68)}} (context 01HP3X2RGCSDFKG82QDJSJ6GMC)
2024-02-08 00:24:33.314 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.upstairs_thermostat_thermostat changed state: {'attributes': {'temperature': (45, 68)}} (context 01HP3X2RGCSDFKG82QDJSJ6GMC)
2024-02-08 00:24:33.314 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.downstairs_thermostat_thermostat changed state: {'attributes': {'temperature': (45, 68)}} (context 01HP3X2RG6D98RZ7A3F6A4YG2D)
2024-02-08 00:24:33.314 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.downstairs_thermostat_thermostat changed state: {'attributes': {'temperature': (45, 68)}} (context 01HP3X2RG6D98RZ7A3F6A4YG2D)
2024-02-08 00:24:33.374 DEBUG (MainThread) [custom_components.hvac_group] Commit action run for <class 'custom_components.hvac_group.actuator.HvacGroupCooler'> climate.bedroom_virtual. Removing
2024-02-08 00:24:33.375 DEBUG (MainThread) [custom_components.hvac_group] Commit action run for <class 'custom_components.hvac_group.actuator.HvacGroupCooler'> climate.kitchen_thermistat. Removing
2024-02-08 00:24:33.498 DEBUG (MainThread) [custom_components.hvac_group] Commit action run for <class 'custom_components.hvac_group.actuator.HvacGroupHeater'> climate.upstairs_thermostat_thermostat. Removing
2024-02-08 00:24:33.498 DEBUG (MainThread) [custom_components.hvac_group] Running coroutine <bound method HvacGroupActuator._async_call_climate_service of <custom_components.hvac_group.actuator.HvacGroupHeater object at 0x7f31d24a9610>>(('climate.downstairs_thermostat_thermostat', 'set_temperature', {'temperature': 41.0, 'hvac_mode': <HVACMode.HEAT: 'heat'>}))
2024-02-08 00:24:33.502 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.upstairs_thermostat_thermostat changed state: {'attributes': {'temperature': (41, 45)}} (context 01HP3X2RGCSDFKG82QDJSJ6GMC)
2024-02-08 00:24:33.502 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.upstairs_thermostat_thermostat changed state: {'attributes': {'temperature': (41, 45)}} (context 01HP3X2RGCSDFKG82QDJSJ6GMC)
2024-02-08 00:24:33.695 DEBUG (MainThread) [custom_components.hvac_group] Commit action run for <class 'custom_components.hvac_group.actuator.HvacGroupHeater'> climate.downstairs_thermostat_thermostat. Removing
2024-02-08 00:24:33.699 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.downstairs_thermostat_thermostat changed state: {'attributes': {'temperature': (41, 45)}} (context 01HP3X2RGCSDFKG82QDJSJ6GMC)
2024-02-08 00:24:33.699 DEBUG (MainThread) [custom_components.hvac_group] Actutator climate.downstairs_thermostat_thermostat changed state: {'attributes': {'temperature': (41, 45)}} (context 01HP3X2RGCSDFKG82QDJSJ6GMC)
2024-02-08 00:26:02.549 DEBUG (MainThread) [custom_components.hvac_group] New temperature received from temp sensor sensor.upstairs_thermostat_current_temperature: 68.9. Setting on HVAC Group climate.upstairs_climate
2024-02-08 00:26:02.549 DEBUG (MainThread) [custom_components.hvac_group] No commit action for <class 'custom_components.hvac_group.actuator.HvacGroupHeater'> climate.upstairs_thermostat_thermostat
2024-02-08 00:26:02.550 DEBUG (MainThread) [custom_components.hvac_group] No commit action for <class 'custom_components.hvac_group.actuator.HvacGroupCooler'> climate.bedroom_virtual
2024-02-08 00:26:02.550 DEBUG (MainThread) [custom_components.hvac_group] No commit action for <class 'custom_components.hvac_group.actuator.HvacGroupHeater'> climate.upstairs_thermostat_thermostat
2024-02-08 00:26:02.550 DEBUG (MainThread) [custom_components.hvac_group] No commit action for <class 'custom_components.hvac_group.actuator.HvacGroupCooler'> climate.bedroom_virtual
rk-nova commented 9 months ago

For what its worth, I have 4 test groups:

Two groups each have one homekit thermostat (baseboard thermostat by mysa) and one generic_thermostat (https://www.home-assistant.io/integrations/generic_thermostat/)

Then one group that has both homekit themostats in it.

And one with both generic_thermostats.

Here is the definiton for the generic thermostats:

climate:
  - platform: generic_thermostat
    name: Bedroom_virtual
    unique_id: climate.bedroom_virtual_ac
    target_temp: 72
    target_sensor: sensor.upstairs_thermostat_current_temperature
    heater: input_boolean.enable_bedroom_climate
    ac_mode: true
  - platform: generic_thermostat
    name: Kitchen Thermistat
    unique_id: climate.kitchen_virtual_ac
    target_temp: 72
    target_sensor: sensor.downstairs_thermostat_current_temperature
    heater: input_boolean.enable_kitchen_climate
    ac_mode: true

Both of them tie to the current temp from the baseboard thermostat in the same floor. The then just have the control to set a target. A set of automations then takes those and uses an IR blaster to set AC units to the same target temp (or turn them off).

tetele commented 9 months ago

The problem is this: 2024-02-08 00:24:19.989 DEBUG (MainThread) [custom_components.hvac_group] New min/max temps received from actuator climate.bedroom_virtual: (45, 95). HVAC Group climate.upstairs_climate new min/max temps: 45.0, 45.0

Having no way to display the scale, since it's between 45 and 45 degrees, means the controls can't show up. I just don't understand what's causing it. Could you check the list of attributes for each cooler/heater you added to a group? I'm interested in their min_temp/max_temp or if they don't have these attributes defined. The min/max temps of the group are picked so that all group members/actuators can "fit" inside the range, but I have assumed all members have these properties properly defined. If that's not the case, I need to account for this.

rk-nova commented 9 months ago

I was just poking around at the controls assuming it was a 0-range type thing, so that fits with my thinking. Let me get you those values.

tetele commented 9 months ago

I think i know what's wrong. You have some actuators in Celsius and other in Fahrenheit, so there's no "common" range between them.

rk-nova commented 9 months ago

Ah yes, that would do it. Sadly, my brain does not handle metric very well so I am part of what has to needlessly complicate things...

So with that, these are probably not needed but adding them anyway in case they help:

# climate.upstairs_thermostat_thermostat
hvac_modes: off, heat
min_temp: 41
max_temp: 86
friendly_name: Upstairs Thermostat Thermostat
supported_features: 1
current_temperature: 69
temperature: 68
current_humidity: 36
hvac_action: idle

# climate.downstairs_thermostat_thermostat
hvac_modes: off, heat
min_temp: 41
max_temp: 86
friendly_name: Downstairs Thermostat Thermostat
supported_features: 1
current_temperature: 73
temperature: 68
current_humidity: 36
hvac_action: idle

# climate.bedroom_virtual
hvac_modes: cool, off
min_temp: 45
max_temp: 95
target_temp_step: 1
current_temperature: 68
temperature: 76
hvac_action: off
friendly_name: Bedroom_virtual
supported_features: 1

# climate.kitchen_thermistat
hvac_modes: cool, off
min_temp: 45
max_temp: 95
target_temp_step: 1
current_temperature: 68
temperature: 76
hvac_action: off
friendly_name: Bedroom_virtual
supported_features: 1
tetele commented 9 months ago

Just as an experiment, could you create a group where all members have the same temperature scale and confirm if it's working? Or a group with a single heater or cooler, that should minimize the risk

rk-nova commented 9 months ago

As far as I can tell, they should all be in F (they are all reported as such in the UI). Let me create a single group to test though.

tetele commented 9 months ago

As far as I can tell, they should all be in F (they are all reported as such in the UI)

The frontend handles some conversions. It doesn't mean they are in F behind the scenes

rk-nova commented 9 months ago

Got it - but it looks like that was not the issue:

image

That has a singe heater in it.

rk-nova commented 9 months ago

Minor additional bug report:

I accidentally added a cooler as a heater when creating a single item group with on of the generic thermostats. Then, after editing it to move that to the colling section, it still only has a heating mode.

image image

rk-nova commented 9 months ago

After restarting, the cooling only one (that I had messed up initial creation of) only has Off as a mode image

tetele commented 9 months ago

Got it - but it looks like that was not the issue:

Well, duh! I've written the integration in Celsius by default, so yeah, that won't work. Don't worry, I can reproduce and I'll fix it.

After restarting, the cooling only one (that I had messed up initial creation of) only has Off as a mode

🤦‍♂️ That's a different issue I need to address, let's fix these units of measurement first.

rk-nova commented 9 months ago

Hahaha, I had wondered about that. Good thing it's not a Mars mission!

100% agreed, the "I messed up the group creation" one is much lower priority.

tetele commented 9 months ago

This should fix it https://github.com/tetele/hvac_group/releases/tag/0.2.0-beta.4

tetele commented 9 months ago

I accidentally added a cooler as a heater when creating a single item group with on of the generic thermostats. Then, after editing it to move that to the colling section, it still only has a heating mode.

I can't replicate this and I think it's about the card issues that i've mentioned. Could you try a simple refresh? If not, please create a new issue

rk-nova commented 9 months ago

I have controls!

image

It does seem that the values are one way - changes to the items don't seem reflected back. It would also be good to be able to change the incremet from .5 to 1 degree. I will collect some more on those and add a feature request and bug for the specifically and let this one close. Huge thanks on this! Great to see it working!

tetele commented 9 months ago

No, thank you for your patience and help with debugging!

The 2-way sync is on my roadmap but it will be a bit complicated. The precision in Fahrenheit is a good idea, I'll add that in a couple of days, but yeah, it would be great if you could raise some issues so I can get a feel of your (and others') expectations.

rk-nova commented 9 months ago

Great - will do!