Google 恒温器上的自定义操作模式
Custom Modes for Actions On Google thermostat
我正在尝试为恒温器制作一个应用程序,它有一些自定义模式,用户可以将这些模式设置为他们在家、睡觉时的基础……恒温器在没有自定义模式的情况下工作,所以我可以获取和设置温度。然而,当我添加模式时,它失败了,我找不到为什么,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",
"settingSynonym": [
"comfort"
]
},
{
"lang": "fr",
"settingSynonym": [
"confort"
]
}
],
"settingName": "comfort"
},
{
"settingValues": [
{
"lang": "en",
"settingSynonym": [
"home"
]
},
{
"lang": "nl",
"settingSynonym": [
"thuis"
]
},
{
"lang": "fr",
"settingSynonym": [
"maison"
]
}
],
"settingName": "home"
},
{
"settingValues": [
{
"lang": "en",
"settingSynonym": [
"sleep"
]
},
{
"lang": "nl",
"settingSynonym": [
"slapen"
]
},
{
"lang": "fr",
"settingSynonym": [
"nuit"
]
}
],
"settingName": "sleep"
},
{
"settingValues": [
{
"lang": "en",
"settingSynonym": [
"away"
]
},
{
"lang": "nl",
"settingSynonym": [
"weg"
]
},
{
"lang": "fr",
"settingSynonym": [
"parti"
]
}
],
"settingName": "away"
},
{
"settingValues": [
{
"lang": "en",
"settingSynonym": [
"holiday"
]
},
{
"lang": "nl",
"settingSynonym": [
"vakantie"
]
},
{
"lang": "fr",
"settingSynonym": [
"congé"
]
}
],
"settingName": "holiday"
}
],
"nameValues": [
{
"nameSynonym": [
"setting",
"mode",
"state"
],
"lang": "en"
},
{
"nameSynonym": [
"stand",
"mode",
"state",
"staat",
"instelling"
],
"lang": "nl"
},
{
"nameSynonym": [
"réglage",
"mode",
"state"
],
"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 个错误:
settingValues
、settingSynonym
、nameValues
和 nameSynonym
都不应该是驼峰式大小写 --> setting_values
、setting_synonym
、name_values
、name_synonym
- 显然 Google 不允许使用重音符号,因此例如“congé”这个词必须是“conge”,否则它不会起作用。
我正在尝试为恒温器制作一个应用程序,它有一些自定义模式,用户可以将这些模式设置为他们在家、睡觉时的基础……恒温器在没有自定义模式的情况下工作,所以我可以获取和设置温度。然而,当我添加模式时,它失败了,我找不到为什么,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",
"settingSynonym": [
"comfort"
]
},
{
"lang": "fr",
"settingSynonym": [
"confort"
]
}
],
"settingName": "comfort"
},
{
"settingValues": [
{
"lang": "en",
"settingSynonym": [
"home"
]
},
{
"lang": "nl",
"settingSynonym": [
"thuis"
]
},
{
"lang": "fr",
"settingSynonym": [
"maison"
]
}
],
"settingName": "home"
},
{
"settingValues": [
{
"lang": "en",
"settingSynonym": [
"sleep"
]
},
{
"lang": "nl",
"settingSynonym": [
"slapen"
]
},
{
"lang": "fr",
"settingSynonym": [
"nuit"
]
}
],
"settingName": "sleep"
},
{
"settingValues": [
{
"lang": "en",
"settingSynonym": [
"away"
]
},
{
"lang": "nl",
"settingSynonym": [
"weg"
]
},
{
"lang": "fr",
"settingSynonym": [
"parti"
]
}
],
"settingName": "away"
},
{
"settingValues": [
{
"lang": "en",
"settingSynonym": [
"holiday"
]
},
{
"lang": "nl",
"settingSynonym": [
"vakantie"
]
},
{
"lang": "fr",
"settingSynonym": [
"congé"
]
}
],
"settingName": "holiday"
}
],
"nameValues": [
{
"nameSynonym": [
"setting",
"mode",
"state"
],
"lang": "en"
},
{
"nameSynonym": [
"stand",
"mode",
"state",
"staat",
"instelling"
],
"lang": "nl"
},
{
"nameSynonym": [
"réglage",
"mode",
"state"
],
"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 个错误:
settingValues
、settingSynonym
、nameValues
和nameSynonym
都不应该是驼峰式大小写 -->setting_values
、setting_synonym
、name_values
、name_synonym
- 显然 Google 不允许使用重音符号,因此例如“congé”这个词必须是“conge”,否则它不会起作用。