Guida al campanello per smart home
action.devices.types.DOORBELL
: i campanelli possono far sapere alle persone che c'è qualcuno alla porta.
Questo dispositivo può inviare notifiche e riprodurre video in streaming se dispone della funzionalità corrispondente.
Questo tipo indica che il dispositivo riceve l'icona del campanello e alcuni sinonimi e alias correlati.
Funzionalità del dispositivo
Fai riferimento alla documentazione sulle trait corrispondente per i dettagli sull'implementazione, ad esempio gli attributi e gli stati che il tuo servizio dovrebbe supportare, e come creare risposte EXECUTE e QUERY.
Trait consigliati
Queste caratteristiche sono consigliate, se applicabili al tuo dispositivo. Tuttavia, puoi combinare liberamente tutte le caratteristiche disponibili per abbinarle al meglio alle funzionalità esistenti del prodotto.
Requisiti di qualità
- Latenza: deve essere inferiore o uguale a 2000 ms.
- Affidabilità:deve essere superiore o uguale al 97%.
Esempio di dispositivo: campanello semplice
Questa sezione contiene payload di intent di esempio che rappresentano un "Doorbell" comune in base al tipo di dispositivo e ai trait indicati sopra. Se aggiungi o rimuovi i trait nell'implementazione, modifica le risposte di conseguenza per riflettere queste modifiche.
Esempio di risposta SYNC
{ "requestId": "6894439706274654512", "inputs": [ { "intent": "action.devices.SYNC" } ] }
{ "requestId": "6894439706274654512", "payload": { "agentUserId": "user123", "devices": [ { "id": "123", "type": "action.devices.types.DOORBELL", "traits": [ "action.devices.traits.CameraStream", "action.devices.traits.ObjectDetection" ], "name": { "name": "Simple doorbell" }, "willReportState": true, "notificationSupportedByAgent": true, "attributes": { "cameraStreamSupportedProtocols": [ "hls" ], "cameraStreamNeedAuthToken": true }, "deviceInfo": { "manufacturer": "smart-home-inc", "model": "hs1234", "hwVersion": "3.2", "swVersion": "11.4" } } ] } }
Esempio di risposta QUERY
{ "requestId": "6894439706274654514", "inputs": [ { "intent": "action.devices.QUERY", "payload": { "devices": [ { "id": "123" } ] } } ] }
{ "requestId": "6894439706274654514", "payload": { "devices": { "123": { "status": "SUCCESS", "online": true } } } }
Esempi di comandi EXECUTE
GetCameraStream
Per maggiori dettagli sui parametri del comando, consulta la pagina di riferimento
action.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": [ "hls" ] } } ] } ] } } ] }
{ "requestId": "6894439706274654516", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "online": true, "cameraStreamAccessUrl": "https://example.com/stream.mp4", "cameraStreamProtocol": "hls" } } ] } }
Esempio di report NOTIFICHE
ObjectDetection
Per maggiori dettagli sulle proprietà delle notifiche,
consulta la documentazione di riferimento
action.devices.traits.ObjectDetection
.
{ "requestId": "6894439706274654518", "payload": { "devices": { "notifications": { "123": { "ObjectDetection": { "objects": { "named": [ "Alice" ] }, "priority": 0, "detectionTimestamp": 946684800000 } } } } } }
{ "requestId": "6894439706274654518" }