模式特征的查询请求不起作用



我正在构建一个与谷歌主页的智能恒温器连接。但是,对于使用测试套件进行的自动测试,我需要将currentModeSettings添加到Query请求中。然而,当我加上这一点时,应用程序完全崩溃了。

我无法打印SYNC有效负载,但这是设备的地图。注意模式";load_key";。这一点一直都存在,并且一直有效到现在。这个问题只是在我需要将其添加到QUERY请求时才开始的。

{
"map": {
"availableThermostatModes": [
"heat",
"cool"
],
"thermostatTemperatureRange": {
"map": {
"maxThresholdCelsius": 30,
"minThresholdCelsius": 6
}
},
"availableModes": {
"myArrayList": [
{
"map": {
"ordered": false,
"settings": {
"myArrayList": [
{
"map": {
"setting_name": "comfort",
"setting_values": {
"myArrayList": [
{
"map": {
"setting_synonym": {
"myArrayList": [
"comfort"
]
},
"lang": "en"
}
},
{
"map": {
"setting_synonym": {
"myArrayList": [
"comfort"
]
},
"lang": "nl"
}
},
{
"map": {
"setting_synonym": {
"myArrayList": [
"confort"
]
},
"lang": "fr"
}
}
]
}
}
},
{
"map": {
"setting_name": "home",
"setting_values": {
"myArrayList": [
{
"map": {
"setting_synonym": {
"myArrayList": [
"home"
]
},
"lang": "en"
}
},
{
"map": {
"setting_synonym": {
"myArrayList": [
"thuis"
]
},
"lang": "nl"
}
},
{
"map": {
"setting_synonym": {
"myArrayList": [
"maison"
]
},
"lang": "fr"
}
}
]
}
}
},
{
"map": {
"setting_name": "sleep",
"setting_values": {
"myArrayList": [
{
"map": {
"setting_synonym": {
"myArrayList": [
"sleep"
]
},
"lang": "en"
}
},
{
"map": {
"setting_synonym": {
"myArrayList": [
"slapen"
]
},
"lang": "nl"
}
},
{
"map": {
"setting_synonym": {
"myArrayList": [
"nuit"
]
},
"lang": "fr"
}
}
]
}
}
},
{
"map": {
"setting_name": "away",
"setting_values": {
"myArrayList": [
{
"map": {
"setting_synonym": {
"myArrayList": [
"away"
]
},
"lang": "en"
}
},
{
"map": {
"setting_synonym": {
"myArrayList": [
"weg"
]
},
"lang": "nl"
}
},
{
"map": {
"setting_synonym": {
"myArrayList": [
"parti"
]
},
"lang": "fr"
}
}
]
}
}
},
{
"map": {
"setting_name": "holiday",
"setting_values": {
"myArrayList": [
{
"map": {
"setting_synonym": {
"myArrayList": [
"holiday"
]
},
"lang": "en"
}
},
{
"map": {
"setting_synonym": {
"myArrayList": [
"vakantie"
]
},
"lang": "nl"
}
},
{
"map": {
"setting_synonym": {
"myArrayList": [
"conge"
]
},
"lang": "fr"
}
}
]
}
}
}
]
},
"name": "load_key",
"name_values": {
"myArrayList": [
{
"map": {
"lang": "en",
"name_synonym": {
"myArrayList": [
"setting",
"mode",
"state",
"modus"
]
}
}
},
{
"map": {
"lang": "nl",
"name_synonym": {
"myArrayList": [
"stand",
"mode",
"state",
"staat",
"instelling",
"modus"
]
}
}
},
{
"map": {
"lang": "fr",
"name_synonym": {
"myArrayList": [
"reglage",
"mode",
"state",
"modus"
]
}
}
}
]
}
}
}
]
},
"thermostatTemperatureUnit": "C"
}
}

我的查询回复:

{
"devices": {
"qb-659917016701-1908A0ATSP": {
"currentModeSettings": {
"load_key": "custom"
},
"thermostatTemperatureSetpoint": 18.0,
"thermostatTemperatureAmbient": 23.0,
"online": true,
"thermostatMode": "cool",
"thermostatHumidityAmbient": 35.0,
"status": "SUCCESS"
}
}
}

当添加部件"currentModeSettings": {"load_key": "custom"},时,应用程序坏了,谷歌主页应用程序不再显示温度,测试套件也不再工作。我做错了什么?

问题可能与尚未在settings数组中定义的currentModeSettings对象中的值custom有关。

如果您想使用"currentModeSettings": {"load_key": "custom"}:,我建议按如下方式更新您的availableModes对象

"attributes":
{
"availableThermostatModes":
[
"heat",
"cool"
],
"thermostatTemperatureRange":
{
"maxThresholdCelsius": 30,
"minThresholdCelsius": 6
},
"thermostatTemperatureUnit": "C",
"availableModes":
[
{
"name": "load_key",
"name_values":
[
{
"lang": "en",
"name_synonym":
[
"setting",
"mode",
"state",
"modus"
]
},
{
"lang": "nl",
"name_synonym":
[
"stand",
"mode",
"state",
"staat",
"instelling",
"modus"
]
},
{
"lang": "fr",
"name_synonym":
[
"reglage",
"mode",
"state",
"modus"
]
}
],
"ordered": false,
"settings":
[
{
"setting_name": "custom",
"setting_values":
[
{
"setting_synonym":
[
"custom"
],
"lang": "en"
},
{
"setting_synonym":
[
"mukautettu"
],
"lang": "nl"
},
{
"setting_synonym":
[
"douane"
],
"lang": "fr"
}
]
},
{
"setting_name": "comfort",
"setting_values":
[
{
"setting_synonym":
[
"comfort"
],
"lang": "en"
},
{
"setting_synonym":
[
"comfort"
],
"lang": "nl"
},
{
"setting_synonym":
[
"comfort"
],
"lang": "fr"
}
]
},
{
"setting_name": "home",
"setting_values":
[
{
"setting_synonym":
[
"home"
],
"lang": "en"
},
{
"setting_synonym":
[
"thuis"
],
"lang": "nl"
},
{
"setting_synonym":
[
"maison"
],
"lang": "fr"
}
]
},
{
"setting_name": "sleep",
"setting_values":
[
{
"setting_synonym":
[
"sleep"
],
"lang": "en"
},
{
"setting_synonym":
[
"slapen"
],
"lang": "nl"
},
{
"setting_synonym":
[
"nuit"
],
"lang": "fr"
}
]
},
{
"setting_name": "away",
"setting_values":
[
{
"setting_synonym":
[
"away"
],
"lang": "en"
},
{
"setting_synonym":
[
"weg"
],
"lang": "nl"
},
{
"setting_synonym":
[
"parti"
],
"lang": "fr"
}
]
},
{
"setting_name": "holiday",
"setting_values":
[
{
"setting_synonym":
[
"holiday"
],
"lang": "en"
},
{
"setting_synonym":
[
"vakantie"
],
"lang": "nl"
},
{
"setting_synonym":
[
"conge"
],
"lang": "fr"
}
]
}
]
}
]
}

最新更新