温度设置“我客厅的温度是多少?”有时会回答奇怪的事情

问题描述

我最近发布了一个智能家居操作,用于与我们的恒温器进行交互。此设备类型为 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 (将#修改为@)