Builds a Home ATA facade backed by the given API client and registry-resident device model.
Home API client.
Backing device model, narrowed to the ATA variant.
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.
Static capability flags and per-mode temperature bounds advertised by this device.
The capability descriptor.
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.
Currently active operation mode (heat/cool/auto/dry/fan/off). The
type documents the known vocabulary; unknown or absent wire values
pass through unchecked (see #enumSetting), so exhaustive
switches should keep a default arm.
The operation mode — a HomeOperationMode member for known
wire values, an unchecked wire string otherwise.
Current overheat-protection settings, or null when not configured.
ATA-only: the base facade does not expose it because the official
app never offers the feature on ATW units (their /context field
stays null).
The cross-dialect protection state from /context.
Whether the unit is powered on.
true when on, false when standby.
Last-reported room temperature in degrees Celsius.
Degrees Celsius as last reported by the device.
Last-reported Wi-Fi signal strength of the device adapter, in dBm.
The RSSI value.
Currently configured fan speed. Normalised from MELCloud Home's inconsistent stringified-number representation back to the enum.
A HomeFanSpeed enum value, auto when unset.
Target temperature setpoint in degrees Celsius.
The setpoint temperature.
Setpoint granularity in °C, from the unit's advertised half-degree capability.
0.5 on half-degree units, 1 otherwise.
Currently configured horizontal vane direction. Same pass-through contract as operationMode.
The horizontal vane setting.
Currently configured vertical vane direction. Same pass-through contract as operationMode.
The vertical vane setting.
Fetches cumulative-energy telemetry for this device over the given time window.
Query window.
ISO start timestamp (inclusive).
Aggregation interval (Minute, Hour, Day, Week or Month).
ISO end timestamp (exclusive).
The telemetry bundle, or a typed failure.
Fetches the energy report as line chart data on a daily grid — the
Home counterpart of the Classic getEnergyReport contract. The
single ATA measure is cumulative consumption in watt-hours, scaled
to kWh; days the wire omits (idle) chart as 0.
Optionalquery: ReportQuery
Optional ISO date range.
Structured line chart options (kWh), or a typed failure.
Fetches the error-log entries for this device.
The entries (possibly empty), or a typed failure.
Read this device's current state projected as a Classic group state, treating the device as a group of one: MELCloud Home has no group endpoint, so the already-synced values are reused with no wire call.
A success result wrapping the device's group state.
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.
Setpoint bounds enforced for an operation mode — the cross-dialect read: a caller needs no knowledge of which API backs the device.
Operation mode to resolve; defaults to the active one.
The interval, or null for a mode outside the known
vocabulary (the setpoint then goes unclamped).
Fetches the temperature history as line chart data (trend-summary
report resampled on a regular grid) — the Home counterpart of the
Classic getTemperatures contract.
Optionalquery: ReportQuery
Optional ISO date range.
Structured line chart options (°C), or a typed failure.
Apply a Classic group state to this device: the delta is translated to the Home vocabulary and pushed through the native per-device update path. Group writes are no-op tolerant: an all-null delta translates to nothing and resolves without a wire call, and a device already matching the delta (a NoChangesError from its update) counts as success.
Partial Classic group state to push to the device.
The zone-shaped success outcome once the write completes.
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.
Pushes a partial setpoint update; rejects when values carries no
defined value (an explicitly-undefined key counts as absent),
otherwise clamps setTemperature to the active mode's bounds and
forwards.
Partial setpoint payload.
NoChangesError when values carries no defined value.
Facade for a MELCloud Home ATA device. Provides typed access to device settings and per-mode temperature clamping before forwarding updates to the BFF.