מדריך לחיישן לבית חכם
action.devices.types.SENSOR
– חיישן יחיד יכול לבצע מספר פונקציות, כמו ניטור הטמפרטורה והלחות או הטמפרטורה והתפוסה. החיישנים עשויים לדווח על נתונים כמותיים או על שניהם – לדוגמה, רמת הפחמן החד-חמצני והעשן שנמדדים בחלקים למיליון – וגם על מדידות איכות, כמו איכות האוויר בריאה או לא בריאה.
הסוג הזה מציין שהמכשיר מקבל את סמל החיישן וגם כמה מילים נרדפות וכינויים קשורים.
יכולות המכשיר
עיינו בתיעוד של ה-trait כדי לקבל את פרטי ההטמעה, כמו מאפיינים ומצבים שהשירות צריך לתמוך בהם, ואיך ליצור תשובות EXECUTE ו-QUERY.
תכונות מומלצות
התכונות האלה מומלצות למכשיר, אם הן רלוונטיות אליו. עם זאת, אפשר לשלב בין כל התכונות הזמינות כדי להתאים אותן בצורה הטובה ביותר לפונקציונליות הקיימת של המוצר.
-
action.devices.traits.SensorState
-
action.devices.traits.EnergyStorage
-
action.devices.traits.OccupancySensing
החיישנים עשויים להשתמש גם בתכונות אחרות המכסות נתונים שניתן לדווח עליהם, למשל:
דרישות איכות
- זמן אחזור: חייב להיות קצר מ-1000 אלפיות שנייה או שווה לו.
- אמינות: צריכה להיות 97% ומעלה.
מכשיר לדוגמה: חיישן פשוט
בקטע הזה יש דוגמאות של מטענים ייעודיים (payloads) של Intent שמייצגים 'חיישן' משותף, על סמך סוג המכשיר והתכונות שצוינו למעלה. אם מוסיפים או מסירים traits בהטמעה, צריך לשנות את התגובות בהתאם כדי לשקף את השינויים.
תגובת SYNC לדוגמה
{ "requestId": "6894439706274654512", "inputs": [ { "intent": "action.devices.SYNC" } ] }
{ "requestId": "6894439706274654512", "payload": { "agentUserId": "user123", "devices": [ { "id": "123", "type": "action.devices.types.SENSOR", "traits": [ "action.devices.traits.EnergyStorage", "action.devices.traits.SensorState" ], "name": { "name": "Simple sensor" }, "willReportState": true, "attributes": { "sensorStatesSupported": [ { "name": "AirQuality", "descriptiveCapabilities": { "availableStates": [ "healthy", "moderate", "unhealthy", "very unhealthy" ] } } ], "queryOnlyEnergyStorage": true }, "deviceInfo": { "manufacturer": "smart-home-inc", "model": "hs1234", "hwVersion": "3.2", "swVersion": "11.4" } } ] } }
דוגמה לתשובה מסוג QUERY
{ "requestId": "6894439706274654514", "inputs": [ { "intent": "action.devices.QUERY", "payload": { "devices": [ { "id": "123" } ] } } ] }
{ "requestId": "6894439706274654514", "payload": { "devices": { "123": { "status": "SUCCESS", "online": true, "currentSensorStateData": [ { "name": "AirQuality", "currentSensorState": "healthy" } ], "descriptiveCapacityRemaining": "HIGH", "capacityRemaining": [ { "unit": "PERCENTAGE", "rawValue": 90 } ] } } } }