Я реализовал базовую услугу Smart Home, EXECUTE
действия SYNC
, EXECUTE
и DISCONNECT
. В действии SYNC
всех устройствах параметр willReportState
устанавливается willReportState
false
.
Однако на https://developers.google.com/actions/smarthome/report-state я прочитал, что нам необходимо сообщать о самих изменениях состояния. Это означает, что все устройства должны иметь значение параметра willReportState
true
, я полагаю?
Мой главный вопрос: что произойдет, если последнее сообщаемое состояние не синхронизируется с реальностью?
Например, предположим, что мы сообщили 5 минут назад, что определенное устройство (имеющее свойство OnOff
) отключено. Несколько секунд назад клиент включил устройство вручную, нажав кнопку включения питания. Предположим, что этот факт еще не сообщается или не известен Smart Smart Graph.
Что произойдет, если клиент попросит помощника: выключите мое устройство? Будет ли отклонено это предложение или нет? То есть, служба выполнения получит этот бэкэнд, хотя служба Graph Home считает, что устройство уже отключено?
Кроме того, мы все еще должны выполнить действие QUERY
если мы реализуем состояние отчета? Или оба требуются?
В боковом документе этот документ также не отражает частоту, в которой должны сообщаться изменения состояния. Документировано ли это где-то еще?