Google Home - Обязательно ли сообщать о состоянии?

Я пытаюсь проверить нашу интеграцию с Google Home, и, как оказалось, набор тестов для умного дома ожидает, что будет реализовано состояние отчетов. AFAIK, это не обязательно, но очевидно, по крайней мере, для этого тестового костюма. Я всегда сообщаю "willReportState" как false, что должно быть нормально, и из-за этого набор тестов пропускает большинство устройств, но по какой-то причине он все еще ожидает, что термостаты сообщат о состоянии.

Означает ли это, что единственный способ получить одобрение и внесение в список нашей интеграции - это реализовать состояние отчетности?

Вот пример синхронизации для термостата:

{ 
   "id":"112299",
   "type":"action.devices.types.THERMOSTAT",
   "traits":[ 
      "action.devices.traits.OnOff",
      "action.devices.traits.TemperatureSetting"
   ],
   "name":{ 
      "name":"Calefacción Agus"
   },
   "willReportState":false,
   "attributes":{ 
      "availableThermostatModes":"off,heat",
      "thermostatTemperatureUnit":"C"
   },
   "roomHint":"Cuarto Agus",
   "deviceInfo":{ 
      "model":"HPA-4412",
      "swVersion":""
   }
}

Спасибо!


person Diego    schedule 28.12.2019    source источник


Ответы (1)


Состояние отчета является обязательным требованием для отправки действия умного дома, если только ваше устройство черты характера используют атрибут commandOnly<TraitName> и не знают состояния.

Например, некоторые устройства, такие как ИК-передатчик, могут знать только, как отправлять команды, и не знать состояние, поэтому они будут использовать OnOff с атрибутом commandOnlyOnOff.

person Nick Felker    schedule 30.12.2019
comment
Привет, Ник, спасибо, я попробую, но это не совсем то, что я хочу, потому что я думал, что использования атрибута willReportState, установленного на false, должно быть достаточно. Интересно, что пакет, похоже, пропускает все устройства, у которых для атрибута willReportState установлено значение false, за исключением термостатов. Для них он отправляет голосовую команду во время теста (который выполняется правильно), а затем, по-видимому, ждет, я полагаю, он ждет изменения состояния. В качестве примера я добавил синхронизацию термостата. - person Diego; 01.01.2020
comment
Технически вы можете установить для атрибута значение false, но политика отправки заключается в его реализации. - person Nick Felker; 02.01.2020