Builds a facade for one /context building.
Home API client (carries the device registry).
Identity of the /context building.
Identifier the target is keyed on.
Display name captured at build time.
Resolver returning the cached device facade for an ATA member model (the group contract's clamping path).
The building's devices as currently registered, both connection types; re-resolved on every access so syncs (units added, removed or re-homed) are followed.
The member device models.
Display name of the building, as of the latest sync that still holds one of its devices; the last observed name once emptied.
The user-facing label of the account's building.
Whether any member can hold an overheat protection — the feature is ATA-only, so a building without ATA members has nothing to protect.
true when at least one member is an ATA unit.
Reads the members' aggregated frost protection: fields every member
agrees on carry the shared value, diverging fields fold to null.
No wire call — the synced /context states are reused.
A success result wrapping the aggregated state.
Read the building's aggregated ATA group state: fields where every
ATA member agrees carry the shared value, diverging fields fold to
null (the wire's mixed marker). No wire call — members' synced
states are reused.
A success result wrapping the aggregated group state.
Reads the members' aggregated holiday-mode window, both bounds projected onto the caller's clock. Same fold as getFrostProtection; no wire call.
A success result wrapping the aggregated state.
Member operation modes in the one group vocabulary
(Classic-numbered), the ATA members projected through the
operation-mode bijection — the same read the Classic zone facades
answer, from the synced /context states with no wire call.
Member filter.
true keeps only powered-on members.
One mode per kept ATA member, in member order.
Reads the ATA members' aggregated overheat protection (the feature is ATA-only — ATW members hold none and are left out of the fold). Same fold as getFrostProtection; no wire call.
A success result wrapping the aggregated state.
Updates every member's frost protection in one batch write, bounds clamped into range.
The new frost-protection settings.
Apply a Classic group state to every ATA member device. The delta is
translated to the Home vocabulary once, then fanned out; members
already matching it (a tolerated NoChangesError from their
update) are fine by definition and do not fail the group write.
Partial Classic group state to push to the members.
Updates every member's holiday-mode window in one batch write; an enabled window's bounds are projected from the caller's clock onto the wire's UTC.
The new holiday-mode window.
Updates the ATA members' overheat protection in one batch write (ATW members are dropped — the feature is ATA-only); resolves without a wire call when the building has no ATA member.
The new overheat-protection settings.
Powers every member on or off — the per-target fan-out mirror of
the device facades' updatePower.
true to power on, false to power off.
Facade for one
/contextbuilding: the account-level multi-device target. MELCloud Home has no building endpoint, so the per-target contract is emulated over the members — reads aggregate the synced member states (fields where members diverge fold tonull, the mixed marker) and writes fan out to every member, or ride the batch protection endpoints with the members' ids. The ATA group contract (getGroup/updateGroupState) covers the ATA members only, like the official app's group screen.