Google 恒温器上的自定义操作模式

问题描述

我正在尝试为恒温器制作一个应用程序,它具有一些自定义模式,用户可以将这些模式设置为他们在家、睡着时的基础,......恒温器在没有自定义模式的情况下工作,所以我可以获取和设置温度。但是,当我添加模式时,它失败了,我找不到原因,json 对我来说似乎没问题(在 java 中作为 SyncResponse.Payload 发送)。

{
    "payload": {
        "agentUserId": "qba-001-3464","devices": [
            {
                "traits": [
                    "action.devices.traits.TemperatureSetting","action.devices.traits.Modes"
                ],"willReportState": true,"name": {
                    "defaultNames": [
                        "qba-001-3464"
                    ],"name": "qba-001-3464","nicknames": [
                        "ENGIE Boxx"
                    ]
                },"attributes": {
                    "availableThermostatModes": [
                        "off","heat","cool","on"
                    ],"thermostatTemperatureRange": {
                        "maxThresholdCelsius": 30,"minThresholdCelsius": 6
                    },"availableModes": [
                        {
                            "ordered": false,"settings": [
                                {
                                    "settingValues": [
                                        {
                                            "lang": "en","settingSynonym": [
                                                "comfort"
                                            ]
                                        },{
                                            "lang": "nl",{
                                            "lang": "fr","settingSynonym": [
                                                "confort"
                                            ]
                                        }
                                    ],"settingName": "comfort"
                                },{
                                    "settingValues": [
                                        {
                                            "lang": "en","settingSynonym": [
                                                "home"
                                            ]
                                        },"settingSynonym": [
                                                "thuis"
                                            ]
                                        },"settingSynonym": [
                                                "maison"
                                            ]
                                        }
                                    ],"settingName": "home"
                                },"settingSynonym": [
                                                "sleep"
                                            ]
                                        },"settingSynonym": [
                                                "slapen"
                                            ]
                                        },"settingSynonym": [
                                                "nuit"
                                            ]
                                        }
                                    ],"settingName": "sleep"
                                },"settingSynonym": [
                                                "away"
                                            ]
                                        },"settingSynonym": [
                                                "weg"
                                            ]
                                        },"settingSynonym": [
                                                "parti"
                                            ]
                                        }
                                    ],"settingName": "away"
                                },"settingSynonym": [
                                                "holiday"
                                            ]
                                        },"settingSynonym": [
                                                "vakantie"
                                            ]
                                        },"settingSynonym": [
                                                "congé"
                                            ]
                                        }
                                    ],"settingName": "holiday"
                                }
                            ],"nameValues": [
                                {
                                    "nameSynonym": [
                                        "setting","mode","state"
                                    ],"lang": "en"
                                },{
                                    "nameSynonym": [
                                        "stand","state","staat","instelling"
                                    ],"lang": "nl"
                                },{
                                    "nameSynonym": [
                                        "réglage","lang": "fr"
                                }
                            ],"name": "temperature_state"
                        }
                    ],"thermostatTemperatureUnit": "C"
                },"id": "qba-001-3464","type": "action.devices.types.THERMOSTAT","deviceInfo": {
                    "swVersion": "qb2/uni/5.39.6","model": "ENGIEBoxx","manufacturer": "Toon","hwVersion": "6599-1500-5000"
                }
            }
        ]
    },"requestId": "12754277927386056776"
}

解决方法

我在这个 json 代码中犯了 2 个错误:

  • settingValuessettingSynonymnameValuesnameSynonym 都不应该是驼峰式的 --> setting_valuessetting_synonym,name_values,name_synonym
  • 显然,Google 不允许使用重音符号,因此例如“congé”这个词必须是“conge”,否则就行不通。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...