Replies: 1 comment
|
Thanks for the thorough review, and for opening this rather than just closing the PR — the concerns are fair, and I'd rather get the contract right than defend the current attribute set. Some context that might help ground the discussion: I'm running this fork ( 1. What we display/automate on. Two concrete surfaces: a one-line per-zone explainer ("schedule · comfort 26°", "held by you · releases when empty 60 min") built from 2. Scheduled intent vs. physical command — we need both, for different things. The explainer wants intent: if Room Assist nudges the delivered target, a housemate reading "comfort 26°" shouldn't see a number that doesn't match what was decided. The diagnostics table specifically wants the physical command, because its whole purpose is catching a CCM15 write that got silently dropped or altered in transit — PR #22 as written actually conflates the two under one 3. What we key automations off. In practice, only the 4. Restart survival. Yes for 5. Reset / unit migration. Should behave like every other cached temperature in storage. We're Celsius-only so we haven't hit this, but an unconverted cached value surviving a °C→°F switch would produce a nonsensical mismatch warning on our diagnostics table the moment someone changes units — worth fixing regardless of which entity model wins. 6. Would the planned card cover this? Partly. It would likely cover the diagnostics table, but not the inline one-line explainer embedded next to a thermostat tile in our own room card, and not the ability to gate a plain HA automation on 7. Minimum set for third-party/template cards. 8. Disabled-by-default diagnostic entities? Yes, fine by us. We only read this data when a zone's card or the diagnostics view is actually on screen, so we'd rather enable one entity per zone than parse the WS One data point on the specific bugs: our own automations never call Happy to keep PR #22 parked and revise it (or drop it in favor of whatever comes out of this) once the model settles — no rush on our end. |
Uh oh!
There was an error while loading. Please reload this page.
Context
PR #22 proposes exposing additional per-zone runtime context through the existing Zone override sensor.
The underlying use case is valuable: users may want to understand Velair's current intent from standard Home Assistant dashboards and automations without opening the Velair panel or consuming its WebSocket payload directly.
Examples include:
Before defining a public entity contract, I would like to collect use cases and agree on the correct architecture.
Why this needs design discussion
There are several possible meanings for “last applied target”:
Last scheduled intent
The target selected by Velair's schedule, Profile, Mode, boost, or pause logic.
Last climate target event
The most recent
climate_target_appliedevent published by Velair.Last physical command
The final command sent to the climate entity after Room Assist, restoration, range handling, or other runtime adjustments.
These values can differ. For example, a schedule may request 24 °C while Room Assist ultimately sends 27 °C to the device.
The chosen definition affects how the data should behave after:
velair.set_temperature;turn_offactions;heat_coolrange targets;Entity model
PR #22 adds this information as attributes of the existing Zone override sensor. However, several proposed values have independent meaning and could be useful as automation triggers.
Possible approaches include:
We should also consider Home Assistant Recorder usage. Frequently changing attributes on every zone could create unnecessary history growth.
Planned dashboard card
A dedicated Lovelace card for displaying useful Velair information in regular dashboards is also planned as one of the next project tasks, although implementation has not started yet.
That work will need a clear and stable way to obtain per-zone runtime information. It may cover part or all of the use case behind PR #22, or help identify a smaller backend contract that can support:
The goal is to avoid creating separate or duplicated runtime models for each consumer.
Questions
Feedback would be especially useful on the following:
Concrete dashboard or automation examples are welcome, provided they do not expose private Home Assistant data.
Relationship to PR #22
This Discussion was opened following PR #22. The PR demonstrates a real use case and provides a useful starting point, but it also shows that we need to agree on the public contract before committing to a specific implementation.
Once the expected behavior and entity model are agreed, we can decide whether to:
Thank you to @Cloudore for raising the use case and contributing an initial implementation.
All reactions