Skip to content

Thermostat Fan Mode CC — Sequence Diagrams

Interview Flow

sequenceDiagram participant ZPC participant Node ZPC->>Node: THERMOSTAT_FAN_MODE_SUPPORTED_GET Node-->>ZPC: THERMOSTAT_FAN_MODE_SUPPORTED_REPORT (bit_mask of supported fan modes) ZPC->>Node: THERMOSTAT_FAN_MODE_GET Node-->>ZPC: THERMOSTAT_FAN_MODE_REPORT (fan_mode, off)

Set Fan Mode Flow (via MQTT)

sequenceDiagram participant MQTT Client participant ZPC participant Node MQTT Client->>ZPC: ThermostatFanModeSet { "fan_mode": "0x01", "off": "0x00" } Note over ZPC: Packs properties1 byte: off<<7 | fan_mode<br/>Sets desired values in SET_GROUP ZPC->>Node: THERMOSTAT_FAN_MODE_SET (properties1) Node-->>ZPC: (Supervision ACK / implicit) ZPC->>Node: THERMOSTAT_FAN_MODE_GET Node-->>ZPC: THERMOSTAT_FAN_MODE_REPORT (fan_mode, off) ZPC->>MQTT Client: ThermostatFanModeReport { "fan_mode": "0x01", "off": "0x00" }

Get Fan Mode Flow (via MQTT)

sequenceDiagram participant MQTT Client participant ZPC participant Node MQTT Client->>ZPC: ThermostatFanModeGet { } Note over ZPC: Clears reported state, starts resolution ZPC->>Node: THERMOSTAT_FAN_MODE_GET Node-->>ZPC: THERMOSTAT_FAN_MODE_REPORT (fan_mode, off) ZPC->>MQTT Client: ThermostatFanModeReport { "fan_mode": "0x01", "off": "0x00" }

Supported Fan Modes Query (via MQTT)

sequenceDiagram participant MQTT Client participant ZPC participant Node MQTT Client->>ZPC: ThermostatFanModeSupportedGet { } Note over ZPC: Clears reported state, starts resolution ZPC->>Node: THERMOSTAT_FAN_MODE_SUPPORTED_GET Node-->>ZPC: THERMOSTAT_FAN_MODE_SUPPORTED_REPORT (bit_mask) ZPC->>MQTT Client: ThermostatFanModeSupportedReport { "bit_mask": [...] }