MELCloud & MELCloud Home API for Node.js - v48.2.0
    Preparing search index...

    Class HomeDeviceAtwFacade

    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).

    Hierarchy (View Summary)

    Index
    type: "airToWater"

    Connection-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.

    • get exists(): boolean

      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.

      Returns boolean

      true while the registry still resolves the id.

    • get forcedHotWaterMode(): boolean

      Whether the unit is forcing hot-water generation.

      Returns boolean

      true when forced, false otherwise.

    • get hasCoolingMode(): boolean

      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.

      Returns boolean

      true when the device reports cooling mode availability.

    • get id(): string

      Unique device identifier as assigned by MELCloud Home.

      Returns string

      The GUID string assigned by MELCloud Home.

    • get isAvailable(): boolean

      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).

      Returns boolean

      false after a day of continuous disconnection.

    • get isOwner(): boolean

      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).

      Returns boolean

      true when owned, false when shared with this account.

    • get name(): string

      User-facing display name set in the MELCloud Home app.

      Returns string

      The device's display name.

    • get operationalStateZone1(): ClassicOperationModeStateZone

      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.

      Returns ClassicOperationModeStateZone

      The derived zone-1 state.

    • get operationMode(): string

      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.

      Returns string

      The raw mode string as reported by the FTC.

    • get operationModeZone1(): HomeAtwZoneMode

      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).

      Returns HomeAtwZoneMode

      The zone-1 mode.

    • get outdoorTemperature(): number

      Outdoor temperature reported by the FTC, in degrees Celsius.

      Returns number

      Degrees Celsius as measured at the outdoor unit.

    • get roomTemperatureZone1(): number

      Last-reported zone-1 room temperature in degrees Celsius.

      Returns number

      Degrees Celsius for the zone-1 thermostat.

    • get roomTemperatureZone2(): number | null

      Last-reported zone-2 room temperature, or null for single-zone units.

      Returns number | null

      The room temperature, or null.

    • get rssi(): number

      Last-reported Wi-Fi signal strength of the device adapter, in dBm.

      Returns number

      The RSSI value.

    • get setTankWaterTemperature(): number

      Configured tank-water target temperature in degrees Celsius.

      Returns number

      The setpoint.

    • get setTemperatureZone2(): number | null

      Configured zone-2 target temperature, or null for single-zone units.

      Returns number | null

      The setpoint, or null.

    • get tankWaterTemperature(): number

      Last-reported tank water temperature in degrees Celsius.

      Returns number

      Degrees Celsius of the domestic hot-water tank.

    • Fetches interval-energy telemetry for this device.

      Parameters

      • params: { from: string; interval: string; measure: "consumed" | "produced"; to: string }

        Query window plus energy direction.

        • from: string

          ISO start timestamp (inclusive).

        • interval: string

          Aggregation interval (e.g. Hour, Day).

        • measure: "consumed" | "produced"

          Energy direction ('consumed' or 'produced').

        • to: string

          ISO end timestamp (exclusive).

      Returns Promise<Result<HomeEnergyData>>

      The telemetry bundle, 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).

      Parameters

      • Optionalhour: Hour

        Optional hour of today (0-23); omitted covers today.

      Returns Promise<Result<ReportChartLineOptions>>

      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.

      Parameters

      • isOn: boolean = true

        true to power on, false to power off.

      Returns Promise<void>