add ClimateController and additional sensors for IRCv2#463
Conversation
|
@JoDehli I'm pretty happy with how this is working so far, been running it for the last week. This is my first work on a homeassistant integration. Also my first time working on python code in quite a while |
|
@mpcaddy can you please update your branch if you want that i merge your work. |
1fbf499 to
c9a0f2a
Compare
|
Hi @JoDehli I've rebased onto master |
|
@mpcaddy I tried your code. I do not use the room controller and it is difficult to decide if it is much better. But what I found out is that sometimes the added switch for Override can not be triggered and sometimes it can be triggered. Do you know this behavior? |
|
@JoDehli I've not seen it not being triggered. I think there are some states which the override may not be able to trigger and it depends on what you have set up but I wasn't able to find any information on what states are possible. |
Fixes on top of climate-improvements (PR JoDehli#463): 1. Event listener lifecycle: Move bus.async_listen() from __init__ to async_added_to_hass() with async_on_remove() — prevents entity setup failures and memory leaks. 2. Dict mutation: Copy mode list before appending (avoids mutating shared kwargs). Separate IRoomControllerV2 loop in switch.py — without this, the climate platform cannot find IRoomControllerV2 controls (switch runs first and would overwrite the type). 3. possibleCapabilities: Use .get() with default=3 instead of int() which crashes if the key is missing on older firmware. 4. climate_handler: Use .get() for safe key access on event data. Co-Authored-By: Lilly Code <lillycode@lilly.com>
Based on the original PR JoDehli#463 work by @mpcaddy, this rework adds: Fixes: - Event listener lifecycle: async_added_to_hass() + async_on_remove() - Mode list copied before mutating (avoids shared kwargs corruption) - possibleCapabilities: .get() with default (older firmware compat) - Separate IRoomControllerV2 loop in switch (avoids breaking climate) - Safe .get() access in climate_handler New features: - Door/Window pause: shows as translated preset when openWindow active - Entity categories: sensors = DIAGNOSTIC, override switch = CONFIG - Translations: en/de/cs for preset mode names (schedule, paused) - translation_key on LoxoneRoomControllerV2 for HA-native i18n - Proper device grouping: all IRC entities share one HA device Co-Authored-By: Lilly Code <lillycode@lilly.com>
Based on the original PR JoDehli#463 work by @mpcaddy, this rework adds: Fixes: - Event listener lifecycle: async_added_to_hass() + async_on_remove() - Mode list copied before mutating (avoids shared kwargs corruption) - possibleCapabilities: .get() with default (older firmware compat) - Separate IRoomControllerV2 loop in switch (avoids breaking climate) - Safe .get() access in climate_handler New features: - Door/Window pause: shows as translated preset when openWindow active - Entity categories: sensors = DIAGNOSTIC, override switch = CONFIG - Translations: en/de/cs for preset mode names (schedule, paused) - translation_key on LoxoneRoomControllerV2 for HA-native i18n - Proper device grouping: all IRC entities share one HA device Co-Authored-By: Lilly Code <lillycode@lilly.com>
c9a0f2a to
9288194
Compare
Based on the original PR JoDehli#463 work by @mpcaddy, this rework adds: Fixes: - Event listener lifecycle: async_added_to_hass() + async_on_remove() - Mode list copied before mutating (avoids shared kwargs corruption) - possibleCapabilities: .get() with default (older firmware compat) - Separate IRoomControllerV2 loop in switch (avoids breaking climate) - Safe .get() access in climate_handler New features: - Door/Window pause: shows as translated preset when openWindow active - Entity categories: sensors = DIAGNOSTIC, override switch = CONFIG - Translations: en/de/cs for preset mode names (schedule, paused) - translation_key on LoxoneRoomControllerV2 for HA-native i18n - Proper device grouping: all IRC entities share one HA device Co-Authored-By: Lilly Code <lillycode@lilly.com>
May need some adjustments to the Climate Controller demand, I think it is possible to connect multiple to each IRC, so may need to track multiple demands