Что не так со следующим ответом, когда я звоню onQuery в Google Home?
Response {
"status": 200,
"headers": {
"content-type": "application/json;charset=utf-8"
},
"body": {
"requestId": "3400750371404214251",
"payload": {
"devices": {
"00124B001856E002:01": {
"on": "false",
"online": "true"
}
}
}
}
}
Код выглядит следующим образом: (Я использую следующий код, который генерирует выходной ответ, как показано выше.)
const queryCloud = (deviceId) => requestAPI(...)
.then((data) => {
let result = JSON.parse(data);
console.log('****** DEVICE STATE ****** ',result);
var deviceState = result.device_status;
if(deviceState ==="ON"){
deviceState = 'true';
}else{
deviceState = 'false';
}
console.log('****QUERY CLOUD****',deviceState);
return {
on: deviceState,
online:true,
};
});
const queryDevice = (deviceId) => queryCloud(deviceId).then((data) => ({
on: data.on,
online:data.online,
}));
app.onQuery((body) => {
const {requestId} = body;
const payload = {
devices: {},
};
const queryPromises = [];
for (const input of body.inputs) {
for (const device of input.payload.devices) {
const deviceId = device.id;
queryPromises.push(queryDevice(deviceId)
.then((data) => {
// Add response to device payload
console.log('*****',data);
payload.devices[deviceId] = data;
}
));
}
}
// Wait for all promises to resolve
return Promise.all(queryPromises).then((values) => ({
requestId: requestId,
payload: payload,
})
);
});
Кажется, все хорошо.Даже значение device.on также допустимо, но когда я говорю, включено ли имя_устройства?Я получил ответ, извиняюсь, что не могу добраться до AC прямо сейчас.