Przewodnik po kamerach do inteligentnego domu
action.devices.types.CAMERA – kamery są złożone, a ich funkcje mogą się znacznie różnić w zależności od dostawcy. Z czasem kamery będą zyskiwać wiele cech i atrybutów opisujących konkretne możliwości, z których wiele może w specjalny sposób wchodzić w interakcje ze strumieniem wideo lub audio, np. wysyłać strumień na inne urządzenie, identyfikować zawartość strumienia, odtwarzać strumienie itp.
Ten typ oznacza, że urządzenie otrzymuje ikonę aparatu oraz niektóre powiązane synonimy i aliasy.
Możliwości urządzenia
Szczegóły implementacji, takie jak atrybuty i stany, które powinna obsługiwać Twoja usługa, oraz sposób tworzenia odpowiedzi EXECUTE i QUERY, znajdziesz w dokumentacji odpowiedniego cechy.
Wymagane cechy
Te cechy i polecenia są wymagane, jeśli mają zastosowanie do Twojego urządzenia. Jeśli urządzenie nie obsługuje tych cech, w odpowiedzi QUERY lub EXECUTE wpisz kod błędu functionNotSupported. Więcej informacji znajdziesz w sekcji Błędy i wyjątki.
Przykładowe urządzenie: prosty aparat
Ta sekcja zawiera przykładowe ładunki intencji reprezentujące typowy „Aparat” na podstawie typu urządzenia i cech wymienionych powyżej. Jeśli dodasz lub usuniesz cechy w swojej implementacji, odpowiednio zmodyfikuj odpowiedzi, aby odzwierciedlić 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.CAMERA", "traits": [ "action.devices.traits.CameraStream" ], "name": { "name": "Simple camera" }, "willReportState": true, "attributes": { "cameraStreamSupportedProtocols": [ "hls", "progressive_mp4" ], "cameraStreamNeedAuthToken": true, "cameraStreamNeedDrmEncryption": false }, "deviceInfo": { "manufacturer": "smart-home-inc", "model": "hs1234", "hwVersion": "3.2", "swVersion": "11.4" } } ] } }
Przykładowa odpowiedź QUERY
{ "requestId": "6894439706274654514", "inputs": [ { "intent": "action.devices.QUERY", "payload": { "devices": [ { "id": "123" } ] } } ] }
{ "requestId": "6894439706274654514", "payload": { "devices": { "123": { "status": "SUCCESS", "online": true } } } }
Przykładowe polecenia EXECUTE
GetCameraStream
Więcej informacji o parametrach poleceń znajdziesz w
action.devices.traits.CameraStreamdokumentacjiaction.devices.traits.CameraStream.
{ "requestId": "6894439706274654516", "inputs": [ { "intent": "action.devices.EXECUTE", "payload": { "commands": [ { "devices": [ { "id": "123" } ], "execution": [ { "command": "action.devices.commands.GetCameraStream", "params": { "StreamToChromecast": true, "SupportedStreamProtocols": [ "progressive_mp4" ] } } ] } ] } } ] }
{ "requestId": "6894439706274654516", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "online": true, "cameraStreamAccessUrl": "https://fluffysheep.com/baaaaa.mp4", "cameraStreamReceiverAppId": "1g2f89213hg", "cameraStreamAuthToken": "12657342190192783", "cameraStreamProtocol": "progressive_mp4" } } ] } }
BŁĘDY urządzenia
Zobacz pełną listę błędów i wyjątków.resourceUnavailable– wszelkie błędy związane z generowaniem adresu URL transmisji.