Skip to content

Thermostat Setpoint CC — Sequence Diagrams

Interview Flow

sequenceDiagram participant ZPC participant Node ZPC->>Node: THERMOSTAT_SETPOINT_SUPPORTED_GET Node-->>ZPC: THERMOSTAT_SETPOINT_SUPPORTED_REPORT (bit_mask) loop For each supported setpoint type ZPC->>Node: THERMOSTAT_SETPOINT_GET (setpoint_type=N) Node-->>ZPC: THERMOSTAT_SETPOINT_REPORT (setpoint_type, size, scale, precision, value) ZPC->>Node: THERMOSTAT_SETPOINT_CAPABILITIES_GET (setpoint_type=N) Node-->>ZPC: THERMOSTAT_SETPOINT_CAPABILITIES_REPORT (setpoint_type, min_value, max_value) end

Mode Change Triggered Refresh

sequenceDiagram participant ThermostatMode CC participant ThermostatSetpoint CC participant Node ThermostatMode CC->>ThermostatSetpoint CC: THERMOSTAT_MODE_CHANGED event Note over ThermostatSetpoint CC: Clears reported state of GET_GROUP<br/>and starts resolution ThermostatSetpoint CC->>Node: THERMOSTAT_SETPOINT_GET (setpoint_type) Node-->>ThermostatSetpoint CC: THERMOSTAT_SETPOINT_REPORT (new value)

Set Setpoint Flow (via MQTT)

sequenceDiagram participant MQTT Client participant ZPC participant Node MQTT Client->>ZPC: ThermostatSetpointSet { "setpoint_type": "0x01", "size": "0x01", "scale": "0x00", "precision": "0x00", "value": ["0x14"] } Note over ZPC: Packs level2 byte: precision<<5 | scale<<3 | size<br/>Sets desired values in SET_GROUP ZPC->>Node: THERMOSTAT_SETPOINT_SET (setpoint_type, level2, value) Node-->>ZPC: (Supervision ACK / implicit) ZPC->>Node: THERMOSTAT_SETPOINT_GET (setpoint_type) Node-->>ZPC: THERMOSTAT_SETPOINT_REPORT (updated value) ZPC->>MQTT Client: ThermostatSetpointReport { ... }

Capabilities Query Flow (via MQTT)

sequenceDiagram participant MQTT Client participant ZPC participant Node MQTT Client->>ZPC: ThermostatSetpointCapabilitiesGet { "setpoint_type": "0x01" } Note over ZPC: Sets desired setpoint_type in CAPABILITIES_GET_GROUP ZPC->>Node: THERMOSTAT_SETPOINT_CAPABILITIES_GET (setpoint_type) Node-->>ZPC: THERMOSTAT_SETPOINT_CAPABILITIES_REPORT (min_value, max_value) ZPC->>MQTT Client: ThermostatSetpointCapabilitiesReport { ... }