Przewodnik po inteligentnych pralkach

action.devices.types.WASHER – pralki mogą mieć funkcję uruchamiania i zatrzymywania niezależną od włączenia lub wyłączenia (niektóre pralki mają oddzielne przyciski zasilania, a niektóre nie). Niektóre z nich można wstrzymać i wznowić podczas prania. Pralki mają też różne tryby, a każdy z nich ma własne ustawienia. Te wartości są specyficzne dla danej pralki i interpretowane w ogólnej formie.

Ten typ wskazuje, że urządzenie ma ikonę pralki oraz niektóre powiązane synonimy i aliasy.

Przykład sterowania pralką za pomocą inteligentnego domu Google znajdziesz w Codelab dotyczącym inteligentnej pralki.

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.

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ć je do dotychczasowej funkcjonalności produktu.

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: prosta pralka

Ta sekcja zawiera przykładowe dane intencji przedstawiające typ urządzenia „Pralka” 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

Prośba
{   "requestId": "6894439706274654512",   "inputs": [     {       "intent": "action.devices.SYNC"     }   ] }
Odpowiedź
{   "requestId": "6894439706274654512",   "payload": {     "agentUserId": "user123",     "devices": [       {         "id": "123",         "type": "action.devices.types.WASHER",         "traits": [           "action.devices.traits.OnOff",           "action.devices.traits.RunCycle",           "action.devices.traits.StartStop",           "action.devices.traits.Modes"         ],         "name": {           "name": "Simple washer"         },         "willReportState": true,         "attributes": {           "availableModes": [             {               "name": "load_key",               "name_values": [                 {                   "name_synonym": [                     "Load",                     "Size",                     "Load size"                   ],                   "lang": "en"                 }               ],               "settings": [                 {                   "setting_name": "small_key",                   "setting_values": [                     {                       "setting_synonym": [                         "Small",                         "Half"                       ],                       "lang": "en"                     }                   ]                 },                 {                   "setting_name": "large_key",                   "setting_values": [                     {                       "setting_synonym": [                         "Large",                         "Full"                       ],                       "lang": "en"                     }                   ]                 }               ],               "ordered": true             }           ],           "pausable": true         },         "deviceInfo": {           "manufacturer": "smart-home-inc",           "model": "hs1234",           "hwVersion": "3.2",           "swVersion": "11.4"         }       }     ]   } }

Przykładowa odpowiedź na zapytanie

Prośba
{   "requestId": "6894439706274654514",   "inputs": [     {       "intent": "action.devices.QUERY",       "payload": {         "devices": [           {             "id": "123"           }         ]       }     }   ] }
Odpowiedź
{   "requestId": "6894439706274654514",   "payload": {     "devices": {       "123": {         "status": "SUCCESS",         "online": true,         "on": true,         "isRunning": true,         "isPaused": false,         "currentRunCycle": [           {             "currentCycle": "rinse",             "nextCycle": "spin",             "lang": "en"           }         ],         "currentTotalRemainingTime": 600,         "currentCycleRemainingTime": 300,         "currentModeSettings": {           "load_key": "small_key"         }       }     }   } }

Przykładowe polecenia EXECUTE

OnOff

Więcej informacji o parametrach polecenia znajdziesz w dokumentacji action.devices.traits.OnOff.

Prośba
{   "requestId": "6894439706274654516",   "inputs": [     {       "intent": "action.devices.EXECUTE",       "payload": {         "commands": [           {             "devices": [               {                 "id": "123"               }             ],             "execution": [               {                 "command": "action.devices.commands.OnOff",                 "params": {                   "on": true                 }               }             ]           }         ]       }     }   ] }
Odpowiedź
{   "requestId": "6894439706274654516",   "payload": {     "commands": [       {         "ids": [           "123"         ],         "status": "SUCCESS",         "states": {           "online": true,           "on": true         }       }     ]   } }

StartStop

Więcej informacji o parametrach polecenia znajdziesz w dokumentacji action.devices.traits.StartStop.

Prośba
{   "requestId": "6894439706274654518",   "inputs": [     {       "intent": "action.devices.EXECUTE",       "payload": {         "commands": [           {             "devices": [               {                 "id": "123"               }             ],             "execution": [               {                 "command": "action.devices.commands.StartStop",                 "params": {                   "start": true                 }               }             ]           }         ]       }     }   ] }
Odpowiedź
{   "requestId": "6894439706274654518",   "payload": {     "commands": [       {         "ids": [           "123"         ],         "status": "SUCCESS",         "states": {           "online": true,           "isRunning": true,           "isPaused": false         }       }     ]   } }

SetModes

Więcej informacji o parametrach polecenia znajdziesz w dokumentacji action.devices.traits.Modes.

Prośba
{   "requestId": "6894439706274654522",   "inputs": [     {       "intent": "action.devices.EXECUTE",       "payload": {         "commands": [           {             "devices": [               {                 "id": "123"               }             ],             "execution": [               {                 "command": "action.devices.commands.SetModes",                 "params": {                   "updateModeSettings": {                     "load_key": "large_key"                   }                 }               }             ]           }         ]       }     }   ] }
Odpowiedź
{   "requestId": "6894439706274654522",   "payload": {     "commands": [       {         "ids": [           "123"         ],         "status": "SUCCESS",         "states": {           "online": true,           "currentModeSettings": {             "load_key": "large_key"           }         }       }     ]   } }

BŁĘDY urządzenia

Zobacz pełną listę błędów i wyjątków.