Thermostat CCs are mandatory for controller minimal control (§7.2.5.2). Mode controls the HVAC operating mode; Setpoint controls target temperatures. They're always used together.
Scope:
ThermostatModeCommandClass : CommandClass<ThermostatModeCommand> with [CommandClass(CommandClassId.ThermostatMode)]
SetAsync(ThermostatMode mode) - Off, Heat, Cool, Auto, AuxHeat, Resume, FanOnly, Furnace, DryAir, MoistAir, AutoChangeover, EnergySaveHeat, EnergySaveCool, Away, FullPower (v3)
GetAsync() → current mode
GetSupportedAsync() → bitmask of supported modes
- ThermostatSetpointCommandClass : CommandClass<ThermostatSetpointCommand> with [CommandClass(CommandClassId.ThermostatSetpoint)]
SetAsync(ThermostatSetpointType type, decimal value, byte scale, byte precision) - set target temp
GetAsync(ThermostatSetpointType type) → current setpoint value + scale + precision
GetSupportedAsync() → bitmask of supported setpoint types
GetCapabilitiesAsync(ThermostatSetpointType type) → min/max values (v3)
- Enums:
ThermostatSetpointType (Heating, Cooling, Furnace, DryAir, MoistAir, AutoChangeover, EnergySaveHeat, EnergySaveCool, AwayHeating, AwayCooling, FullPowerHeating)
- Temperature parsing: scale (Celsius/Fahrenheit), precision, multi-byte value (same format as Multilevel Sensor)
Thermostat CCs are mandatory for controller minimal control (§7.2.5.2). Mode controls the HVAC operating mode; Setpoint controls target temperatures. They're always used together.
Scope:
ThermostatModeCommandClass : CommandClass<ThermostatModeCommand>with[CommandClass(CommandClassId.ThermostatMode)]SetAsync(ThermostatMode mode)- Off, Heat, Cool, Auto, AuxHeat, Resume, FanOnly, Furnace, DryAir, MoistAir, AutoChangeover, EnergySaveHeat, EnergySaveCool, Away, FullPower (v3)GetAsync()→ current modeGetSupportedAsync()→ bitmask of supported modes-
ThermostatSetpointCommandClass : CommandClass<ThermostatSetpointCommand>with[CommandClass(CommandClassId.ThermostatSetpoint)]SetAsync(ThermostatSetpointType type, decimal value, byte scale, byte precision)- set target tempGetAsync(ThermostatSetpointType type)→ current setpoint value + scale + precisionGetSupportedAsync()→ bitmask of supported setpoint typesGetCapabilitiesAsync(ThermostatSetpointType type)→ min/max values (v3)ThermostatSetpointType(Heating, Cooling, Furnace, DryAir, MoistAir, AutoChangeover, EnergySaveHeat, EnergySaveCool, AwayHeating, AwayCooling, FullPowerHeating)