Builds a Home ATW facade backed by the given API client and registry-resident device model.
Home API client.
Backing device model, narrowed to the ATW 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 ranges 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.
Whether the unit is forcing hot-water generation.
true when forced, false otherwise.
Current frost-protection settings, or null when not configured.
The cross-dialect protection state from /context.
Whether the device firmware reports cooling-mode support. Distinct
from HomeAtwDeviceCapabilities.hasHeatZone1/hasHeatZone2
(per-zone heat capability) — this flag mirrors the HasCoolingMode
setting from /context.
true when the device reports cooling mode availability.
Current holiday-mode window, or null when not configured.
The cross-dialect holiday-mode state from /context.
Derived hot-water operational state, mirroring the Classic ATW
facade's hotWater.operationalState: forced production reads dhw,
a prohibit flag reads prohibited, otherwise the FTC operation mode
decides between dhw, legionella and idle.
The derived hot-water state.
Unique device identifier as assigned by MELCloud Home.
The GUID string assigned by MELCloud Home.
Whether the unit is in standby (powered, but idle).
true when on standby.
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.
Top-level derived operational state, the FTC operationMode
normalized to the Classic state vocabulary (Stop reads idle).
Unknown firmware strings read null.
The derived state, or null when the mode is unknown.
Zone-1 derived operational state: the top-level operationMode
projected onto the zone (Heating/Cooling/Defrost map through,
everything else — hot water, legionella, stop, unknown — reads
idle), matching what the MELCloud Home app displays. The Classic
flag refinements (Idle{Zone}, Prohibit*) do not exist on the
Home wire, so prohibited is never produced.
The derived zone-1 state.
Zone-2 derived operational state, or null when the unit is
single-zone. Same projection as operationalStateZone1.
The derived zone-2 state, or null.
Top-level operation mode advertised by the FTC controller. Values
include Stop and the heat/cool modes; the SDK does not narrow
further because the controller exposes other strings on some
firmware revisions.
The raw mode string as reported by the FTC.
Active zone-1 control basis, normalized from the FTC zone operation
mode ('HeatCurve' reads 'curve', the external *Thermostat
variants and unknown firmware strings degrade to the room modes).
The zone-1 mode.
Active zone-2 control basis, or null when the unit is single-zone.
Same normalization as operationModeZone1.
The zone-2 mode, or null.
Outdoor temperature reported by the FTC, in degrees Celsius.
Degrees Celsius as measured at the outdoor unit.
Whether the unit is powered on.
true when on, false otherwise.
Whether hot-water generation is currently inhibited.
true when prohibited.
Last-reported zone-1 room temperature in degrees Celsius.
Degrees Celsius for the zone-1 thermostat.
Last-reported zone-2 room temperature, or null for single-zone units.
The room temperature, or null.
Last-reported Wi-Fi signal strength of the device adapter, in dBm.
The RSSI value.
Configured tank-water target temperature in degrees Celsius.
The setpoint.
Configured zone-1 target temperature in degrees Celsius.
The setpoint.
Configured zone-2 target temperature, or null for single-zone units.
The setpoint, or null.
Last-reported tank water temperature in degrees Celsius.
Degrees Celsius of the domestic hot-water tank.
Fetches interval-energy telemetry for this device.
Query window plus energy direction.
ISO start timestamp (inclusive).
Aggregation interval (e.g. Hour, Day).
Energy direction ('consumed' or 'produced').
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, with
one consumed and one produced series (the ATW interval measures
report kWh per bucket); 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.
Fetches the fine temperature chart — the merged comfort-graph and
internal-temperatures series with operation-mode background bands,
over the whole of today on a five-minute grid, or over one specific
hour on a minute grid. The Home counterpart of the Classic
getHourlyTemperatures contract (a superset: the Classic hourly
wire only carries the internal series).
Optionalhour: Hour
Optional hour of today (0-23); omitted covers today.
Structured line chart options (°C), or a typed failure.
Fetches the internal-temperatures chart (flow/return/tank/zone
series resampled on a regular grid) — the Home counterpart of the
Classic getInternalTemperatures contract.
Optionalquery: ReportQuery
Optional ISO date range.
Structured line chart options (°C), or a typed failure.
Aggregates the comfort-graph operation-mode bands into pie chart
data — the Home counterpart of the Classic getOperationModes
contract: same mode vocabulary, values in fractional days over the
window, unannotated time as Stop.
Optionalquery: ReportQuery
Optional ISO date range.
Structured pie chart options, or a typed failure.
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.
Fetches the temperature history as line chart data — the merged
comfort-graph and internal-temperatures series resampled on a
regular grid, with operation-mode background bands. The Home
counterpart of the Classic getTemperatures contract (a superset:
the Classic temperatures wire has no flow/return series and no mode
bands).
Optionalquery: ReportQuery
Optional ISO date range.
Structured line chart options (°C), 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.
Pushes a partial setpoint update; rejects when values carries no
defined value (an explicitly-undefined key counts as absent),
otherwise clamps zone setpoints to
[minSetTemperature, maxSetTemperature] and the tank setpoint to
[minSetTankTemperature, maxSetTankTemperature] before forwarding.
Partial setpoint payload.
NoChangesError when values carries no defined value.
Facade for a MELCloud Home ATW (air-to-water) device. Provides typed access to zone setpoints, tank temperature, and ATW telemetry endpoints (
comfort-graph,internaltemperatures, interval energy).