I'm building a smart thermostat connection to Google Home. However, for the automated testing with the Test Suite, I need to add currentModeSettings to the Query request. However, when I add that, the app breaks completely.
I couldn't get my SYNC payload to print, but here's the map for the device. Note the mode "load_key". This has always been there and worked up to now. The issue ONLY started when I needed to add it to the QUERY request.
{
"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"
}
}
My QUERY response:
{
"devices": {
"qb-659917016701-1908A0ATSP": {
"currentModeSettings": {
"load_key": "custom"
},
"thermostatTemperatureSetpoint": 18.0,
"thermostatTemperatureAmbient": 23.0,
"online": true,
"thermostatMode": "cool",
"thermostatHumidityAmbient": 35.0,
"status": "SUCCESS"
}
}
}
When adding the part "currentModeSettings": {"load_key": "custom"},
, the app broke, the Google Home app doesn't display the temperature anymore, the Test Suite doesn't work anymore either. What am I doing wrong?