问题描述
我最近发布了一个智能家居操作,用于与我们的恒温器进行交互。此设备类型为 Thermostat,实现的单一特征为 TemperatureSetting。
当我问我的家庭助理“客厅里的温度是多少?”时,它有时回答很好,有时回答“好的,这个设备已经更新”(这是我的语言的翻译,所以它可能不是准确的答案)。
检查我服务器上的日志,我可以看到正在做出的 QUERY 意图响应。
以下 QUERY 响应会引发“您客厅的温度为 20.5 度”的答案:
{
"aa0c2504f896": {
"status": "SUCCESS","online": true,"thermostatMode": "heat","thermostatTemperatureAmbient": 20.7,"thermostatTemperatureSetpoint": 20.5
}
}
这会引起“好的,此设备已更新”:
{
"aa0c2504f896": {
"status": "SUCCESS","thermostatTemperatureSetpoint": 19.5
}
}
我可以通过将设定点降低 1° 来重现它,如之前的日志所示。执行此操作时,EXECUTE Intent 会发送一个 ReportState 请求,因此 HomeGraph API 会同步更新。
我做错了吗?
编辑:
每次设置点和环境温度不同时都会发生这种情况(以 0.5 度为间隔)。 Google Home 用户界面始终正确呈现,语音控制会回答错误。
这也是我的 SYNC 有效载荷:
{
"requestId": "5878230358273544341","payload": {
"agentUserId": "3101066d-b012-4780-8d77-7297aaea4e37","devices": [
{
"id": "aa0c2504f896","type": "action.devices.types.THERMOSTAT","traits": [
"action.devices.traits.TemperatureSetting"
],"name": {
"defaultNames": [
"Thermostat COMAP"
],"name": "Thermostat salon"
},"willReportState": true,"attributes": {
"availableThermostatModes": [
"heat","on"
],"thermostatTemperatureRange": {
"minThresholdCelsius": 4,"maxThresholdCelsius": 30
},"thermostatTemperatureUnit": "C"
},"deviceInfo": {
"manufacturer": "COMAP","model": "Thermostat","swVersion": "1143"
}
}
]
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)