AbstractWire-format device payload variant exposed on
model.data, narrowed to the device-type-specific shape by each subclass.
ReadonlytypeConnection-type discriminator, captured at construction (a physical
device never changes type) so it stays readable on a pruned id —
the Home counterpart of the Classic facades' type.
Whether the underlying device still exists in the registry.
Non-throwing introspection mirroring the Classic facades' exists:
a consumer holding a cached facade can detect staleness without a
try/catch.
true while the registry still resolves the id.
Current frost-protection settings, or null when not configured.
The cross-dialect protection state from /context.
Current holiday-mode window, or null when not configured.
The cross-dialect holiday-mode state from /context.
Unique device identifier as assigned by MELCloud Home.
The GUID string assigned by MELCloud Home.
Whether MELCloud can still deliver writes to the unit. false
means the wifi adapter lost its link to the cloud: writes are
accepted but never delivered, and readings go stale. The
/context isConnected flag only counts once it has read false
for a full day: its negative side is unproven, and the persistence
window makes a Classic-Offline-style tight-threshold boolean
harmless (such a flag never stays false through a report cycle).
false after a day of continuous disconnection.
Whether the current account owns this device rather than being a
guest of it. Reports the structural origin only: false does not
by itself prove a guest is barred from control (the BFF accepts
guest writes on shared units).
true when owned, false when shared with this account.
User-facing display name set in the MELCloud Home app.
The device's display name.
Last-reported Wi-Fi signal strength of the device adapter, in dBm.
The RSSI value.
Fetches RSSI telemetry for this device over the given time window.
Query window.
ISO start timestamp (inclusive).
ISO end timestamp (exclusive).
The telemetry bundle, or a typed failure.
Fetches the Wi-Fi signal chart — the whole of today on a
five-minute grid, or one specific hour on a minute grid. The Home
counterpart of the Classic getSignalStrength contract.
Optionalhour: Hour
Optional hour of today (0-23); omitted covers today.
Structured line chart options (dBm), or a typed failure.
Powers the unit on or off. This is the unit-level master power (the
Power setting, shown as the system on/off toggle in the app),
defined at the base like the Classic side's updatePower — the
contracts differ: this one resolves void and throws the typed
transport error. Convenience wrapper over updateValues.
true to power on, false to power off.
AbstractupdatePushes a partial update to the device. Each subclass narrows the
payload to its device-type shape; both shapes share the power
field this base's updatePower relies on.
Partial update payload.
Shared scaffolding for every Home device facade. Holds the API client + registry-resident model, exposes the common identity getters (
id,name,rssi) and the cross-typegetSignalpassthrough, and provides the protectedsetting()lookup used by both the ATA and ATW facade subclasses.TDatanarrows the wrapped device payload (e.g.HomeAtaDeviceDatafor HomeDeviceAtaFacade) so subclasses see the device-type specific shape onmodel.datawithout unsafe casts.The class is intentionally thin: anything that diverges between ATA and ATW (operation modes, capability fields, update payload shape, telemetry endpoints) lives in the subclass.