Схема признаков RunCycle умного дома
action.devices.traits.RunCycle
— этот признак представляет любое устройство, работа которого имеет непрерывную продолжительность, и которую можно запросить.
Подобные устройства сообщают об общем количестве циклов в начале работы и о каждом цикле, в котором устройство находится в данный момент во время работы. Это позволяет пользователю делать запросы, например:
- На каком цикле работает моя сушильная машина?
- Сколько циклов осталось посудомоечной машине?
- Что делает сушилка?
- Когда будет стирка?
Некоторые устройства включают продолжительность в нециклическом формате. Любое устройство, работающее определенное время, может сообщать об оставшемся времени без циклов. Это также учитывает случаи, когда циклы могут быть непоследовательными (например, посудомоечные машины не всегда могут использовать все циклы). Например, пользователь может спросить: «Как долго еще будет работать мой пылесос?» который вернет количество времени в единицах, пропорциональное оставшемуся времени. Это касается и перечисленных выше устройств; Как долго моя одежда будет сохнуть? вернет продолжительность в минутах.
Устройства могут возвращать то, что им известно, и ответ TTS Ассистента сформирует лучший ответ с учетом доступных данных (например, Посудомоечная машина работает и завершится примерно через 20 минут).
RunCycle в настоящее время доступен только для чтения — у него нет команд, есть только состояния для запроса. В будущем могут появиться механизмы повторного запуска или пропуска циклов (хорошие для разбрызгивателей и плохие для стиральных машин).
АТРИБУТЫ устройства
Никто.
СОСТОЯНИЯ устройства
Сущности с этим признаком могут сообщать о следующих состояниях как часть операции QUERY
. Дополнительные сведения об обработке намерений QUERY
см. в разделе Выполнение намерений .
Штаты | Тип | Описание |
---|---|---|
currentRunCycle | Множество | Необходимый. Содержит синонимы текущего цикла на каждом поддерживаемом языке. |
[ item, ... ] | Объект | Циклически повторяйте имена синонимов. |
currentCycle | Нить | Необходимый. Выполняется текущий цикл. |
nextCycle | Нить | Необязательный. Следующий цикл выполнения. |
lang | Нить | Необходимый. Код языка для данных названий циклов. См. Поддерживаемые языки . |
currentTotalRemainingTime | Целое число | Необходимый. Оставшееся время работы, в секундах. |
currentCycleRemainingTime | Целое число | Необходимый. Оставшееся время текущего цикла в секундах. |
Примеры
Устройство ополаскивается еще 5 минут и будет готово через 20 минут.
{ "currentRunCycle": [ { "currentCycle": "rinse", "lang": "en" } ], "currentTotalRemainingTime": 1200, "currentCycleRemainingTime": 300 }
Устройство ополаскивается еще 5 минут, прежде чем перейти к отжиму.
{ "currentRunCycle": [ { "currentCycle": "rinse", "nextCycle": "spin", "lang": "en" } ], "currentTotalRemainingTime": 600, "currentCycleRemainingTime": 300 }
КОМАНДЫ устройства
Никто.
УВЕДОМЛЕНИЯ УСТРОЙСТВА
Устройства с этой особенностью могут возвращать следующие полезные данные уведомления как часть изменения состояния устройства. Дополнительные сведения о реализации уведомлений см. в разделе «Уведомления для действий умного дома» .
Поля | Тип | Описание |
---|---|---|
RunCycle | Необходимый. Полезная нагрузка уведомления. | |
Поддерживает одно из следующих: | ||
0 | Объект | Успех |
priority | Целое число | Необходимый. Представляет уровень уведомлений. В настоящее время поддерживается значение 0, что означает, что уведомление должно быть произнесено вслух. |
status | Нить | Необходимый. Результат операции. Поддерживаемые значения:
|
currentCycleRemainingTime | Целое число | Необходимый. Оставшееся время текущего цикла в секундах. |
1 | Объект | Отказ |
priority | Целое число | Необходимый. Представляет уровень уведомлений. В настоящее время поддерживается значение 0, что означает, что уведомление должно быть произнесено вслух. |
status | Нить | Необходимый. Результат операции. Поддерживаемые значения:
|
errorCode | Нить | Необходимый. Значением может быть любой код ошибки для этого признака, например, |
Примеры
Устройство завершило работу.
{ "RunCycle": { "priority": 0, "status": "SUCCESS", "currentCycleRemainingTime": 0 } }
Произошла ошибка при завершении текущего цикла.
{ "RunCycle": { "priority": 0, "status": "FAILURE", "errorCode": "deviceStuck" } }