Przewodnik po inteligentnym grillu
action.devices.types.GRILL
– interakcje z grillami mogą obejmować ich włączanie i wyłączanie, uruchamianie i zatrzymywanie, ustawianie minutnika, dostosowywanie trybów gotowania i wstępnie ustawionych potraw oraz dostosowywanie różnych ustawień trybu bez gotowania.
Ten typ oznacza, że urządzenie ma ikonę grilla oraz niektóre powiązane synonimy i aliasy.
Funkcje urządzenia
Szczegółowe informacje o wdrożeniu, takie jak atrybuty i stany, które powinna obsługiwać usługa, oraz sposób tworzenia odpowiedzi na wywołania EXECUTE i QUERY, znajdziesz w odpowiedniej dokumentacji atrybutu.
Wymagane cechy
Te cechy i polecenia są wymagane, jeśli są dostępne na Twoim urządzeniu. Jeśli urządzenie nie obsługuje tych atrybutów, wpisz kod błędu functionNotSupported
w odpowiedzi na QUERY lub EXECUTE. Więcej informacji znajdziesz w sekcji Błędy i wyjątki.
Zalecane cechy
Te cechy są zalecane, jeśli są dostępne na Twoim urządzeniu. Możesz jednak dowolnie łączyć wszystkie dostępne cechy, aby jak najlepiej dopasować funkcje produktu do swoich potrzeb.
Wymagania dotyczące jakości
- Opóźnienie:nie może być większe niż 3000 ms.
- Niezawodność: musi być większa lub równa 97%.
Przykładowe urządzenie: prosty grill
Ta sekcja zawiera przykładowe dane intencji przedstawiające typ urządzenia „Grill” na podstawie wymienionych powyżej cech i właściwości. Jeśli w swojej implementacji dodasz lub usuniesz cechy, odpowiednio zmodyfikuj odpowiedzi, aby uwzględnić te zmiany.
Przykładowa odpowiedź SYNC
{ "requestId": "6894439706274654512", "inputs": [ { "intent": "action.devices.SYNC" } ] }
{ "requestId": "6894439706274654512", "payload": { "agentUserId": "user123", "devices": [ { "id": "123", "type": "action.devices.types.GRILL", "traits": [ "action.devices.traits.Cook", "action.devices.traits.OnOff", "action.devices.traits.Timer", "action.devices.traits.StartStop" ], "name": { "name": "Simple grill" }, "willReportState": true, "attributes": { "supportedCookingModes": [ "COOK", "GRILL" ], "foodPresets": [ { "food_preset_name": "chicken_key", "supported_units": [ "POUNDS", "OUNCES" ], "food_synonyms": [ { "synonym": [ "Chicken", "Chicken breast", "Chicken thigh" ], "lang": "en" } ] }, { "food_preset_name": "hamburger_key", "supported_units": [ "POUNDS", "OUNCES" ], "food_synonyms": [ { "synonym": [ "Hamburger", "Burger", "Burger patty" ], "lang": "en" } ] } ], "maxTimerLimitSec": 1200, "pausable": true }, "deviceInfo": { "manufacturer": "smart-home-inc", "model": "hs1234", "hwVersion": "3.2", "swVersion": "11.4" } } ] } }
Przykładowa odpowiedź na zapytanie
{ "requestId": "6894439706274654514", "inputs": [ { "intent": "action.devices.QUERY", "payload": { "devices": [ { "id": "123" } ] } } ] }
{ "requestId": "6894439706274654514", "payload": { "devices": { "123": { "status": "SUCCESS", "online": true, "on": true, "isRunning": true, "isPaused": false, "timerRemainingSec": 120, "currentCookingMode": "GRILL", "currentFoodPreset": "chicken_key" } } } }
Przykładowe polecenia EXECUTE
Ugotuj coś
Więcej informacji o parametrach polecenia znajdziesz w dokumentacji
action.devices.traits.Cook
.
{ "requestId": "6894439706274654516", "inputs": [ { "intent": "action.devices.EXECUTE", "payload": { "commands": [ { "devices": [ { "id": "123" } ], "execution": [ { "command": "action.devices.commands.Cook", "params": { "start": false, "cookingMode": "GRILL" } } ] } ] } } ] }
{ "requestId": "6894439706274654516", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "online": true, "currentCookingMode": "NONE", "currentFoodPreset": "NONE" } } ] } }
OnOff
Więcej informacji o parametrach polecenia znajdziesz w dokumentacji
action.devices.traits.OnOff
.
{ "requestId": "6894439706274654532", "inputs": [ { "intent": "action.devices.EXECUTE", "payload": { "commands": [ { "devices": [ { "id": "123" } ], "execution": [ { "command": "action.devices.commands.OnOff", "params": { "on": true } } ] } ] } } ] }
{ "requestId": "6894439706274654532", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "online": true, "on": true } } ] } }
TimerStart
Więcej informacji o parametrach polecenia znajdziesz w dokumentacji
action.devices.traits.Timer
.
{ "requestId": "6894439706274654522", "inputs": [ { "intent": "action.devices.EXECUTE", "payload": { "commands": [ { "devices": [ { "id": "123" } ], "execution": [ { "command": "action.devices.commands.TimerStart", "params": { "timerTimeSec": 120 } } ] } ] } } ] }
{ "requestId": "6894439706274654522", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "online": true, "timerRemainingSec": 120 } } ] } }
TimerAdjust
Więcej informacji o parametrach polecenia znajdziesz w dokumentacji
action.devices.traits.Timer
.
{ "requestId": "6894439706274654524", "inputs": [ { "intent": "action.devices.EXECUTE", "payload": { "commands": [ { "devices": [ { "id": "123" } ], "execution": [ { "command": "action.devices.commands.TimerAdjust", "params": { "timerTimeSec": -10 } } ] } ] } } ] }
{ "requestId": "6894439706274654524", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "online": true, "timerRemainingSec": 110 } } ] } }
TimerPause
Więcej informacji o parametrach polecenia znajdziesz w dokumentacji
action.devices.traits.Timer
.
{ "requestId": "6894439706274654526", "inputs": [ { "intent": "action.devices.EXECUTE", "payload": { "commands": [ { "devices": [ { "id": "123" } ], "execution": [ { "command": "action.devices.commands.TimerPause" } ] } ] } } ] }
{ "requestId": "6894439706274654526", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "online": true, "timerRemainingSec": 120, "timerPaused": true } } ] } }
TimerResume
Więcej informacji o parametrach polecenia znajdziesz w dokumentacji
action.devices.traits.Timer
.
{ "requestId": "6894439706274654528", "inputs": [ { "intent": "action.devices.EXECUTE", "payload": { "commands": [ { "devices": [ { "id": "123" } ], "execution": [ { "command": "action.devices.commands.TimerResume" } ] } ] } } ] }
{ "requestId": "6894439706274654528", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "online": true, "timerRemainingSec": 120, "timerPaused": false } } ] } }
TimerCancel
Więcej informacji o parametrach polecenia znajdziesz w dokumentacji
action.devices.traits.Timer
.
{ "requestId": "6894439706274654530", "inputs": [ { "intent": "action.devices.EXECUTE", "payload": { "commands": [ { "devices": [ { "id": "123" } ], "execution": [ { "command": "action.devices.commands.TimerCancel" } ] } ] } } ] }
{ "requestId": "6894439706274654530", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "online": true, "timerRemainingSec": -1 } } ] } }
StartStop
Więcej informacji o parametrach polecenia znajdziesz w dokumentacji
action.devices.traits.StartStop
.
{ "requestId": "6894439706274654518", "inputs": [ { "intent": "action.devices.EXECUTE", "payload": { "commands": [ { "devices": [ { "id": "123" } ], "execution": [ { "command": "action.devices.commands.StartStop", "params": { "start": true } } ] } ] } } ] }
{ "requestId": "6894439706274654518", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "online": true, "isRunning": true, "isPaused": false } } ] } }