מדריך לתרמוסטט לבית חכם
action.devices.types.THERMOSTAT
– תרמוסטטים הם מכשירים לניהול טמפרטורה, עם נקודות סטטוס ומצבים. ההבדל הזה מבדיל אותם מתנורי חימום ומיחידות מיזוג אוויר, שעשויות לכלול רק מצבים והגדרות (לדוגמה, גבוה/נמוך) ולא יעד טמפרטורה.
הסוג הזה מציין שהמכשיר מקבל את הסמל של התרמוסטט וחלק משמות נרדפים ומתחליפים קשורים.
מכשירים מהסוג הזה שולטים בטמפרטורה, בעוד שליחידות חימום/קירור מסוימות יש אמצעי בקרה שונים ומצבים גבוה/נמוך, אבל אין להן אמצעי בקרה של טמפרטורה.יכולות המכשיר
פרטי ההטמעה, כמו המאפיינים והמצבים שהשירות צריך לתמוך בהם, והאופן שבו יוצרים תגובות EXECUTE ו-QUERY, מפורטים במסמכי העזרה של המאפיינים המתאימים.
מאפיינים נדרשים
המאפיינים והפקודות האלה נדרשים, אם הם רלוונטיים למכשיר שלכם. אם המכשיר לא תומך במאפיינים האלה, מזינים את קוד השגיאה functionNotSupported
בתגובה של QUERY או EXECUTE. מידע נוסף זמין במאמר שגיאות וחריגות.
לעיתים קרובות פקודות של תרמוסטט מוצמדות זו לזו בכוונות EXECUTE
. משתמש שיאמר *Set the heat to 72* יגרום ליצירת פקודה של מצב ואחריה הגדרת טמפרטורה.
דרישות איכות
- זמן אחזור: חייב להיות קטן מ-700ms או שווה לו.
- אמינות: הערך חייב להיות שווה ל-97% או גדול ממנו.
דוגמה למכשיר: תרמוסטט פשוט
בקטע הזה מפורטות דוגמאות של נתוני עומס שימושי (payload) של כוונה שמייצגים מכשיר 'תרמוסטט' נפוץ, על סמך סוג המכשיר והמאפיינים שמפורטים למעלה. אם מוסיפים או מסירים מאפיינים בהטמעה, צריך לשנות את התשובות בהתאם כדי לשקף את השינויים האלה.
דוגמה לתגובת SYNC
{ "requestId": "6894439706274654512", "inputs": [ { "intent": "action.devices.SYNC" } ] }
{ "requestId": "6894439706274654512", "payload": { "agentUserId": "user123", "devices": [ { "id": "123", "type": "action.devices.types.THERMOSTAT", "traits": [ "action.devices.traits.TemperatureSetting" ], "name": { "name": "Simple thermostat" }, "willReportState": true, "attributes": { "availableThermostatModes": [ "off", "heat", "cool", "heatcool", "on" ], "thermostatTemperatureRange": { "minThresholdCelsius": 15, "maxThresholdCelsius": 30 }, "thermostatTemperatureUnit": "F" }, "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, "thermostatMode": "cool", "thermostatTemperatureSetpoint": 23, "thermostatTemperatureAmbient": 25.1, "thermostatHumidityAmbient": 45.3 } } } }
דוגמאות לפקודות EXECUTE
ThermostatTemperatureSetpoint
פרטים נוספים על הפרמטרים של הפקודה זמינים במאמר העזרה של
action.devices.traits.TemperatureSetting
.
{ "requestId": "6894439706274654516", "inputs": [ { "intent": "action.devices.EXECUTE", "payload": { "commands": [ { "devices": [ { "id": "123" } ], "execution": [ { "command": "action.devices.commands.ThermostatTemperatureSetpoint", "params": { "thermostatTemperatureSetpoint": 22 } } ] } ] } } ] }
{ "requestId": "6894439706274654516", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "online": true, "thermostatMode": "cool", "thermostatTemperatureSetpoint": 22, "thermostatTemperatureAmbient": 25.1 } } ] } }
ThermostatTemperatureSetRange
פרטים נוספים על הפרמטרים של הפקודה זמינים במאמר העזרה של
action.devices.traits.TemperatureSetting
.
{ "requestId": "6894439706274654518", "inputs": [ { "intent": "action.devices.EXECUTE", "payload": { "commands": [ { "devices": [ { "id": "123" } ], "execution": [ { "command": "action.devices.commands.ThermostatTemperatureSetRange", "params": { "thermostatTemperatureSetpointHigh": 26, "thermostatTemperatureSetpointLow": 22 } } ] } ] } } ] }
{ "requestId": "6894439706274654518", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "online": true, "thermostatMode": "heatcool", "thermostatTemperatureSetpointHigh": 26, "thermostatTemperatureSetpointLow": 22, "thermostatTemperatureAmbient": 25.1 } } ] } }
ThermostatSetMode
פרטים נוספים על הפרמטרים של הפקודה זמינים במאמר העזרה של
action.devices.traits.TemperatureSetting
.
{ "requestId": "6894439706274654520", "inputs": [ { "intent": "action.devices.EXECUTE", "payload": { "commands": [ { "devices": [ { "id": "123" } ], "execution": [ { "command": "action.devices.commands.ThermostatSetMode", "params": { "thermostatMode": "heatcool" } } ] } ] } } ] }
{ "requestId": "6894439706274654520", "payload": { "commands": [ { "ids": [ "123" ], "status": "SUCCESS", "states": { "online": true, "thermostatMode": "heatcool", "thermostatTemperatureSetpointHigh": 26, "thermostatTemperatureSetpointLow": 22, "thermostatTemperatureAmbient": 25.1 } } ] } }
שגיאות במכשיר
הרשימה המלאה של השגיאות והחריגותinHeatOrCool
– הפקודות 'חימום', 'קירור' או 'טווח טמפרטורות' נכשלו כי המכשיר מוגדר לחימום או לקירור מפורשים.inHeatCool
– הפקודות 'חימום' או 'קירור' נכשלו כי המכשיר נמצא במצב חימום או קירור.lockedToRange
– המכשיר נעול לטווח טמפרטורה או למצב מסוימים, ואי אפשר לבצע את השינוי המבוקש.rangeTooClose
– נקודות הטמפרטורה בטווח של חימום/קירור קרובות מדי זו לזו.