Skip to content

feat: add floor heating + room control#557

Draft
Roguyt wants to merge 5 commits intoopenviess:masterfrom
Roguyt:fht
Draft

feat: add floor heating + room control#557
Roguyt wants to merge 5 commits intoopenviess:masterfrom
Roguyt:fht

Conversation

@Roguyt
Copy link
Copy Markdown

@Roguyt Roguyt commented May 30, 2025

No description provided.

@CFenner CFenner changed the title wip: feat: add floor heating + room control feat: add floor heating + room control Oct 4, 2025
@lackas
Copy link
Copy Markdown
Contributor

lackas commented Apr 16, 2026

Hi @Roguyt, I came across this PR while working on related PyViCare changes. Nice work — the room control API surface is well covered (sensors, heating/cooling programs, schedules, quick modes) and having real device test data for 6 rooms is very helpful.

Are you still working on this? I'd be happy to help get it across the finish line if you want.

A few things I noticed while reading through the diff:

  • DeviceWithComponent duplicates self.service from the parent device rather than inheriting from Device, so Room/Actor don't get any of Device's methods. Might be worth rethinking that relationship.
  • The 6 program blocks in Room (normalHeating, reducedHeating, comfortHeating + cooling equivalents) are near-identical — could be reduced with a helper method, similar to how HeatingDevice handles circuits.
  • Actor class is empty beyond a property alias — is there more planned there?
  • FloorHeatingCircuitChannel is added as a new file but isn't wired into auto-detect. Intentional?
  • Small regex bug: E3_FloorHeatingCircuitDistributorBox appears twice in the FloorHeating pattern.

None of these are blockers, just things that stood out. Let me know if you'd like a hand with the conflict resolution or any of the above.

@lackas
Copy link
Copy Markdown
Contributor

lackas commented Apr 16, 2026

@CFenner I just came across the discussion in the ViCare Discord about rooms and your reaction to it. I hadn't seen that before.

I understand the HA team doesn't want rooms mapped as devices, but looking at the test data here, the sensor readings (temperature, humidity, CO2) are only available on the RoomControl virtual device under rooms.N.sensors.* — the physical Zigbee sensors only expose battery level to HA. So there's no way to get temperature data without going through RoomControl.

A few approaches come to mind:

  1. Circuits pattern — RoomControl as one HA device, rooms as sub-components (like heating circuits). Entities per room, users assign to HA areas.
  2. Enrich physical devices — cross-reference RoomControl actors to find which Zigbee sensor is in which room, attach the room's temperature data to the physical sensor device.
  3. Something else?

What's your thinking on this? I'd be happy to help move it forward once we know the direction.

@CFenner
Copy link
Copy Markdown
Member

CFenner commented Apr 16, 2026

Hey, I had in mind to go with 2., exposing the temp (get/set) on the device via the room control.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants