Builds the facade over a registry entity.
API surface the facade calls through.
Registry entity to wrap.
ReadonlyidWire did of the wrapped device.
ReadonlyproductProduct generation of the wrapped device.
When the running derogation ends, or null when none is running.
The derogation end date, or null.
The running derogation's end, formatted for display in the
configured locale — time-of-day for boost and presence, day +
month + time for vacation. null when no derogation is running —
or when it was already running at first sight: the wire carries no
start timestamp, so the end is only derived when a change is
observed (see Device.derogationEndDate).
The formatted end label, or null.
The derogation duration — minutes for boost, days for vacation.
The wire derog_time value.
Whether the physical controls are locked.
true when the child lock is on.
Whether the device is heating (mode is not stop).
true while any heating mode is active.
Whether the on-device program timer is running.
true when the timer is on.
The user-facing device name, tracking renames across syncs.
The wire dev_alias value.
Notify the API's onSyncComplete observer, scoped to this device.
Invoked by the @syncDevices decorator after each decorated
mutation or read.
Send a control payload, merge the echo into the in-memory model, and notify sync observers.
Writable attributes to apply.
The echoed attribute payload.
Merge a partial attribute payload into the registry entity.
Invoked by the @updateDevice decorator.
Partial attribute payload to merge.
Refresh a live attribute read into the in-memory model and notify sync observers.
The fresh attribute payload.
Facade for V2/V4 products: named-attribute control, derogations (boost, vacation), timer and lock switches.