Schemat atrybutu RunCycle w inteligentnym domu
action.devices.traits.RunCycle
– ta cecha reprezentuje dowolne urządzenie, które ma ciągły czas działania, którego można zapytać.
Takie urządzenia będą raportować łączną liczbę cykli na początku działania oraz w przypadku każdego cyklu, w którym aktualnie się znajdują. Dzięki temu użytkownik może wysyłać zapytania, takie jak:
- Jaki cykl ma suszarka?
- Ile cykli pozostało do zakończenia pracy zmywarki?
- Co robi suszarka?
- Kiedy zakończy się pranie?
Niektóre urządzenia podają czas trwania w formacie innym niż cykliczny. Każde urządzenie, które działa przez określony czas, może zgłaszać pozostały czas bez cykli. Ta funkcja obsługuje też przypadki, w których cykle mogą być niespójne (np. zmywarki nie zawsze używają wszystkich cykli). Użytkownik może na przykład zapytać: Jak długo jeszcze będzie działać mój odkurzacz?, a asystent odpowie, ile czasu pozostało do zakończenia odkurzania. Dotyczy to również urządzeń wymienionych powyżej. How much longer will my clothes be drying? (Jak długo jeszcze będą się suszyć moje ubrania?) zwróci czas w minutach.
Urządzenia mogą zwracać informacje, które znają, a Asystent TTS będzie tworzyć najlepsze odpowiedzi na podstawie dostępnych danych (np. Zmywarka działa i skończy za około 20 minut).
RunCycle jest obecnie cechą tylko do odczytu – nie ma poleceń, tylko stany do zapytania. W przyszłości mogą pojawić się mechanizmy ponownego uruchamiania cykli lub ich pomijania (dobre dla zraszaczy, złe dla pralek).
ATRYBUTY URZĄDZENIA
Brak.
STANOWISKO URZĄDZENIA
Elementy z tą cechą mogą raportować te stany w ramach operacji QUERY
. Więcej informacji o obsługiwaniu intencji QUERY
znajdziesz w artykule Realizacja intencji.
Stany | Typ | Opis |
---|---|---|
currentRunCycle |
Tablica |
Wymagany. Zawiera synonimy bieżącego cyklu w każdym obsługiwanym języku. |
[item, ...] |
Obiekt |
Nazwy cykli synonimów. |
currentCycle |
String |
Wymagany. Bieżący cykl. |
nextCycle |
String |
Opcjonalnie: Następny cykl do wykonania. |
lang |
String |
Wymagany. Kod języka nazw danego cyklu. Zobacz obsługiwane języki. |
currentTotalRemainingTime |
Liczba całkowita |
Wymagany. Czas pozostały do zakończenia operacji w sekundach. |
currentCycleRemainingTime |
Liczba całkowita |
Wymagany. Czas pozostały do końca bieżącego cyklu (w sekundach). |
Przykłady
Urządzenie będzie płukać się przez kolejne 5 minut i skończy pracę za 20 minut.
{ "currentRunCycle": [ { "currentCycle": "rinse", "lang": "en" } ], "currentTotalRemainingTime": 1200, "currentCycleRemainingTime": 300 }
Urządzenie jest płukane przez kolejne 5 minut, a potem przechodzi do wirowania.
{ "currentRunCycle": [ { "currentCycle": "rinse", "nextCycle": "spin", "lang": "en" } ], "currentTotalRemainingTime": 600, "currentCycleRemainingTime": 300 }
Polecenia urządzenia
Brak.
POWIADOMIENIA NA URZĄDZENIU
Urządzenia z tą cechą mogą zwracać następujący ładunek powiadomienia w ramach zmiany stanu urządzenia. Więcej informacji o implementowaniu powiadomień znajdziesz w artykule Powiadomienia dla działań związanych z inteligentnym domem.
Pola | Typ | Opis |
---|---|---|
RunCycle |
Wymagany. Treść powiadomienia. |
|
Obsługuje jedną z tych funkcji: | ||
0
|
Obiekt |
Sukces |
priority |
Liczba całkowita |
Wymagany. Reprezentuje poziom powiadomienia. Obecnie obsługiwana wartość to 0, która oznacza, że powiadomienie powinno być odczytane na głos. |
status |
String |
Wymagany. Wynik operacji. Obsługiwane wartości:
|
currentCycleRemainingTime |
Liczba całkowita |
Wymagany. Czas pozostały do końca bieżącego cyklu (w sekundach). |
1
|
Obiekt |
Niepowodzenie |
priority |
Liczba całkowita |
Wymagany. Reprezentuje poziom powiadomienia. Obecnie obsługiwana wartość to 0, która oznacza, że powiadomienie powinno być odczytane na głos. |
status |
String |
Wymagany. Wynik operacji. Obsługiwane wartości:
|
errorCode |
String |
Wymagany. Wartość może być dowolnym kodem błędu dla tej cechy, na przykład |
Przykłady
Urządzenie przestało działać.
{ "RunCycle": { "priority": 0, "status": "SUCCESS", "currentCycleRemainingTime": 0 } }
Wystąpił błąd podczas wykonywania bieżącego cyklu.
{ "RunCycle": { "priority": 0, "status": "FAILURE", "errorCode": "deviceStuck" } }