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:
- W jakim cyklu działa suszarka?
- Ile cykli pozostało do zakończenia pracy zmywarki?
- Co robi suszarka?
- Kiedy będzie pranie?
Niektóre urządzenia podają czas trwania w formacie innym niż cykliczny. Każde urządzenie działające przez określony czas może zgłosić 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. Polecenie 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ć swoją wiedzę, a odpowiedzi na zamianę tekstu na mowę przez Asystenta stanowią najlepszą odpowiedź na podstawie dostępnych danych (np. Zmywarka jest uruchomiona i zakończy pracę za około 20 minut).
Cykl jest obecnie cechą tylko do odczytu – nie ma poleceń, tylko stany do zapytania. W przyszłości mogą istnieć mechanizmy ponownego uruchamiania cykli lub pomijania cykli (korzystne w przypadku zraszacza, szczególnie w pralkach).
ATRYBUTY URZĄDZENIA
Brak.
STANOWISKO URZĄDZENIA
Elementy z tą cechą mogą raportować te stany w ramach operacji QUERY
. Więcej informacji o obsłudze intencji QUERY
znajdziesz w artykule o realizacji 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 |
Wymagane. 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 na urządzeniu
Brak.
POWIADOMIENIA NA URZĄDZENIU
Urządzenia z tą cechą mogą zwracać poniższy ładunek powiadomień 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 |
Wymagane. Treść powiadomienia. |
|
Obsługuje jedną z tych funkcji: | ||
0
|
Obiekt. |
Sukces |
priority |
Liczba całkowita |
Wymagane. Reprezentuje poziom powiadomienia. Obecnie obsługiwana wartość to 0, która oznacza, że powiadomienie powinno być odczytane na głos. |
status |
String |
Wymagane. 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 |
Wymagane. Reprezentuje poziom powiadomienia. Obecnie obsługiwana wartość to 0, która oznacza, że powiadomienie powinno być odczytane na głos. |
status |
String |
Wymagane. 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" } }