ThermostatTemperatureSetpoint 架构
sdm.devices.traits.ThermostatTemperatureSetpoint
此特征属于支持设置目标温度和温度范围的 THERMOSTAT 的设备类型。
字段
字段 | 说明 | 数据类型 |
---|---|---|
heatCelsius |
温控器 HEAT 和 HEATCOOL 模式的目标温度(以摄氏度为单位)。 | number 示例:20.0 |
coolCelsius |
温控器 COOL 和 HEATCOOL 模式的目标温度(以摄氏度为单位)。 | number 示例:22.0 |
GET 请求和响应示例 - HEAT
请求
GET /enterprises/project-id/devices/device-id
响应
{
"name" : "enterprises/project-id/devices/device-id",
"traits" : {
"sdm.devices.traits.ThermostatTemperatureSetpoint
" : {
"heatCelsius" : 20.0,
}
}
}
GET 请求和响应示例 - COOL
请求
GET /enterprises/project-id/devices/device-id
响应
{
"name" : "enterprises/project-id/devices/device-id",
"traits" : {
"sdm.devices.traits.ThermostatTemperatureSetpoint
" : {
"coolCelsius" : 22.0
}
}
}
示例 GET 请求和响应 - HEATCOOL
请求
GET /enterprises/project-id/devices/device-id
响应
{
"name" : "enterprises/project-id/devices/device-id",
"traits" : {
"sdm.devices.traits.ThermostatTemperatureSetpoint
" : {
"heatCelsius" : 20.0,
"coolCelsius" : 22.0
}
}
}
命令
在更改设置之前,温控器必须处于与所调用的命令相对应的模式 温度设定值。用于更改设定点的命令和字段因温控器而异 模式。
例如,要发出 SetHeat 命令,温控器必须先处于 HEAT 模式:
模式 | 命令 | 字段 |
---|---|---|
供暖 | SetHeat | heatCelsius |
酷 | SetCool | coolCelsius |
制热 | SetRange | heatCelsius 、coolCelsius |
请注意,虽然设置点命令的 Google Nest Thermostat 能以摄氏度或华氏度为单位来显示温度。
SetHeat
设置温控器处于制热模式时的目标温度。
SetHeat 请求和响应
请求
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetHeat
",
"params" : {
"heatCelsius" : 22.0
}
}
响应
{}
SetHeat 请求字段
字段 | 说明 | 数据类型 |
---|---|---|
heatCelsius |
当温控器处于制热模式时设置的目标温度。 | number 示例:22.0 |
SetCool
设置温控器处于制冷模式时的目标温度。
SetCool 请求和响应
请求
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetCool
",
"params" : {
"coolCelsius" : 20.0
}
}
响应
{}
SetCool 请求字段
字段 | 说明 | 数据类型 |
---|---|---|
coolCelsius |
当温控器处于制冷模式时设置的目标温度。 | number 示例:20.0 |
SetRange
设置温控器处于 HEATCOOL 模式时的最低和最高温度。
SetRange 请求和响应
请求
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetRange
",
"params" : {
"heatCelsius" : 20.0,
"coolCelsius" : 22.0
}
}
响应
{}
SetRange 请求字段
字段 | 说明 | 数据类型 |
---|---|---|
heatCelsius |
温控器处于 HEATCOOL 模式时设置的最低目标温度。 | number 示例:20.0 |
coolCelsius |
当温控器处于 HEATCOOL 模式时设置的最高目标温度。 | number 示例:22.0 |
错误
系统可能会返回与此 trait 相关的以下错误代码:
错误消息 | RPC | 问题排查 |
---|---|---|
不允许在当前温控器模式下执行该命令。 | FAILED_PRECONDITION |
根据 ThermostatMode 特征,某些温控器型号不支持在温控器关闭时更改节能模式。必须先将温控器模式更改为制热、制冷或制热,然后才能更改节能模式。 |
制冷值必须大于热值。 | INVALID_ARGUMENT |
确保 heatCelsius 字段小于命令中的 coolCelsius 字段。 |
当温控器处于 MANUAL_ECO 模式时,不允许使用该命令。 | FAILED_PRECONDITION |
当温控器处于手动节能模式时,无法设置温度设定值。 |
请参阅 API 错误代码参考 API 错误代码的完整列表。