כל מכשירי Google Nest Thermostat דגמים נתמכים ממשק ה-API של Smart Device Management (SDM). המכשירים האלה מחזירים את התרמוסטט סוג המכשיר:
sdm.devices.types.THERMOSTAT
תכונות
חומרי עזר
התכונות, הפקודות או האירועים הבאים קשורים לקבוצה הזו:
תכונה | תיאור | פקודות |
---|---|---|
קישוריות | התכונה הזו שייכת לכל מכשיר שיש לו פרטי קישוריות. | |
מעריצים | התכונה הזו שייכת לכל מכשיר עם יכולת של המערכת לשלוט במאוורר. | SetTimer |
לחות | התכונה הזו שייכת לכל מכשיר שיש בו חיישן למדידת הלחות. | |
מידע | התכונה הזו שייכת לכל מכשיר לקבלת מידע שקשור למכשיר. | |
הגדרות | התכונה הזו שייכת לכל מכשיר לקבלת מידע על הגדרות שקשורות למכשיר. | |
טמפרטורה | התכונה הזו שייכת לכל מכשיר שיש לו חיישן למדידת טמפרטורה. | |
ThermostatEco | התכונה הזו שייכת לסוגי המכשירים של תרמוסטט שתומכים במצבי ECO. | SetMode |
ThermostatHvac | התכונה הזו שייכת לסוגי המכשירים של תרמוסטט שיכולים לדווח על פרטי בקרת האקלים. | |
ThermostatMode | התכונה הזו שייכת לסוגי המכשירים של תרמוסטט שתומכים במצבי תרמוסטט שונים. | SetMode |
ThermostatTemperatureSetpoint | התכונה הזו שייכת לסוגי המכשירים של תרמוסטט שתומכים בהגדרה של טמפרטורת יעד וטווח טמפרטורות. | SetHeat SetCool SetRange |
JSON
היעדר מאפיין בתגובת GET מצביע על כך שהתכונה התכונה לא זמינה כרגע למכשיר. צפייה סוגי מכשירים מידע.
{ "type" : "sdm.devices.types.THERMOSTAT", "traits" : { "sdm.devices.traits.Connectivity" : { "status" : "ONLINE" }, "sdm.devices.traits.Fan" : { "timerMode" : "ON", "timerTimeout" : "2019-05-10T03:22:54Z" }, "sdm.devices.traits.Humidity" : { "ambientHumidityPercent" : 35.0 }, "sdm.devices.traits.Info" : { "customName" : "My device" }, "sdm.devices.traits.Settings" : { "temperatureScale" : "CELSIUS" }, "sdm.devices.traits.Temperature" : { "ambientTemperatureCelsius" : 23.0 }, "sdm.devices.traits.ThermostatEco" : { "availableModes" : ["MANUAL_ECO", "OFF"], "mode" : "MANUAL_ECO", "heatCelsius" : 20.0, "coolCelsius" : 22.0 }, "sdm.devices.traits.ThermostatHvac" : { "status" : "HEATING" }, "sdm.devices.traits.ThermostatMode" : { "availableModes" : ["HEAT", "COOL", "HEATCOOL", "OFF"], "mode" : "COOL" }, "sdm.devices.traits.ThermostatTemperatureSetpoint" : { "heatCelsius" : 20.0, "coolCelsius" : 22.0 } } }
הטמפרטורה והלחות
כדי לקרוא את טמפרטורת הסביבה של התרמוסטט, יש להשתמש ב טמפרטורה . אווירה הטמפרטורה מודדת את הטמפרטורה במכשיר.
כדי לקרוא את הלחות בסביבה של התרמוסטט, צריך להשתמש ב לחות . אווירה הלחות נמדדת במכשיר.
טווח טמפרטורה
Google Nest Thermostat יכול להציג טמפרטורה במעלות צלזיוס או פרנהייט, אבל לא ניתן להגדיר את קנה המידה באמצעות ממשק ה-API של ה-SDM. כדי לקבוע סולם הטמפרטורה שהוגדר כרגע על ידי המשתמש, צריך להשתמש הגדרות .
שינוי המצב
מצב התרמוסטט מנוהל על ידי שתי תכונות שונות: ThermostatMode and תרמוסטטEco.
אמצעי תחבורה רגילים
כדי לשנות את מצב התרמוסטט ל'חימום', 'קירור' או 'HEATCOOL', משתמשים בפקודה SetMode של תכונת התרמוסטט.
אפשר להשתמש גם בפקודה הזו כדי לכבות את מצב התרמוסטט. לא ניתן להשתמש בה כדי להפוך במצב 'חיסכון'.לדוגמה, כדי לשנות את אחד מהמצבים הרגילים של התרמוסטט:
בקשה
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatMode.SetMode
",
"params" : {
"mode" : "HEAT"
}
}
תשובה
{}
מצב חיסכון
כדי להפעיל את מצב 'חיסכון', יש להשתמש ב-MANUAL_ECO כמצב עם פקודת SetMode של תכונת ThermostatEco:
בקשה
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatEco.SetMode
",
"params" : {
"mode" : "MANUAL_ECO"
}
}
תשובה
{}
הפקודה הזו משפיעה על תכונות אחרות, על סמך הסטטוס הנוכחי של מצב החיסכון או השינויים בו:
- אם מצב 'חיסכון' כבוי, מצב התרמוסטט יעבור כברירת מחדל למצב הרגיל האחרון (חימום, קירור, חימום, חימום או כבוי) שהיה פעיל כברירת מחדל.
- אם מצב החיסכון הוא MANUAL_ECO:
- הפקודות של התכונה ThermostatTemperatureSetpoint נדחות.
- נקודות ההגדרה של הטמפרטורה לא מוחזרות על ידי הממדד ThermostatTemperatureSetpoint .
שינוי ההגדרות הקבועות של הטמפרטורה
אפשר לשנות את ערכי הטמפרטורה הקבועים רק כשהתרמוסטט נמצא מצבי חימום, קירור או HEATCOOL הנקודות הקבועות שמותרות תואמות למצב הנוכחי של התרמוסטט. הטמפרטורה לא ניתן לשנות את הנקודות הקבועות כשהמצב כבוי או כשה מצב החיסכון מוגדר כ-MANUAL_ECO.
התרמוסטט חייב להיות במצב שתואם לפקודה שמושמעת לפני ההחלפה את הטמפרטורה הקבועה. הפקודה והשדות לשינוי ההגדרות משתנים בהתאם לתרמוסטט במצב תצוגה.
לדוגמה, כדי להנפיק את SetHeat הפקודה, התרמוסטט חייב להיות במצב חימום קודם:
מצב | פקודה | שדות |
---|---|---|
חום | SetHeat | heatCelsius |
מגניב | SetCool | coolCelsius |
חימום | SetRange | heatCelsius , coolCelsius |
שימו לב שפקודות setpoint משתמשות רק במעלות בצלזיוס כפרמטר, Google Nest Thermostat יכול להציג טמפרטורה במעלות צלזיוס או פרנהייט.
לדוגמה, כדי לשנות את הטמפרטורה הקבועה כשהתרמוסטט נמצא במצב חימום, משתמשים פקודת SetHeat במאפיין Thermostat ThermostatSetpoint:
בקשה
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetHeat
",
"params" : {
"heatCelsius" : 22.0
}
}
תשובה
{}
נקודות קבועות למצב חיסכון
נקודות ההגדרה heatCelsius
ו-coolCelsius
שהוחזרו על ידי
תכונת ThermostatEco מוגדרת על ידי המשתמש, וגם
שלא ניתן לשנות באמצעות ממשק ה-API של SDM.
הפעלה או כיבוי של מאוורר
אם התרמוסטט תומך במאוורר, אפשר להשתמש בפקודה SetTimer של תכונת המאוורר כדי להפעיל או לכבות אותו. בזמן ההפעלה אפשר לציין את משך הזמן שהמאוורר יפעל. שניות.
לדוגמה, כדי להפעיל את המאוורר במשך שעה:
בקשה
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.Fan.SetTimer
",
"params" : {
"timerMode" : "ON",
"duration" : "3600s"
}
}
תשובה
{}
אם לא מזינים את השדה duration
, המאוורר יפעל למשך ברירת המחדל של 15
דקות.
צריך לבדוק את החיבור של המכשיר
אם המכשיר לא מגיב לפקודות או שולח אירועים, או אם תקבל שגיאות מה-API שקשורות למכשיר, משתמשים ברכיב קישוריות כדי לבדוק את הקישוריות של המכשיר לסטטוס 'אופליין'. בודקים את לאינטרנט ולוודא ש-Nest השירות מוגדר.
אם הפעלת את האפשרות 'אירועים', גם כן אמור להתקבל אירוע של משאב שמציין שהמכשיר עבר למצב אופליין:
מטען ייעודי (payload)
{
"eventId" : "0425a61d-a026-4608-8d8d-d76351d444a4",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : {
"name" : "enterprises/project-id/devices/device-id",
"traits" : {
"sdm.devices.traits.Connectivity
" : {
"status" : "OFFLINE"
}
}
},
"userId": "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [
"enterprises/project-id/devices/device-id"
]
}
תגובה לאירועים במכשיר
כל שינוי בשדה תכונה יוצר אירוע.
לדוגמה, אפשר לקבל
אירוע resourceUpdate
הבא אם בקרת האקלים של התרמוסטט
הסטטוס השתנה ל'חימום':
מטען ייעודי (payload)
{
"eventId" : "24b17b95-a286-4471-901f-5bdd4a05be28",
"timestamp" : "2019-01-01T00:00:01Z",
"resourceUpdate" : {
"name" : "enterprises/project-id/devices/device-id",
"traits" : {
"sdm.devices.traits.ThermostatHvac
" : {
"status" : "HEATING"
}
}
},
"userId": "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
"resourceGroup" : [
"enterprises/project-id/devices/device-id"
]
}
האירועים מופעלים לכל התכונות שמשויכות לסוג המכשיר הזה. הפעלה אירועים אם אתם צריכים להגיב להם בדרך כלשהי מהאינטגרציה.
תזמון האירועים
לתשומת ליבכם: יכול להיות שאירוע לשינוי בסטטוס בקרת האקלים לא יישלח יחד עם האירוע לשינוי מצב התרמוסטט.
לדוגמה, לפעמים יש א עיכוב בהפעלת מצב החימום או הקירור של התרמוסטט כדי להגן על בקרת האקלים המערכת. בתרחיש הזה, שינוי מצב התרמוסטט עשוי לשלוח אירועים רק בשלב הראשוני ThermostatMode and ThermostatTemperatureSetpoint שינויים בתכונה, עם תרמוסטטHvac שינוי מאפיין נשלח מאוחר יותר כשינוי נפרד האירוע ברגע שהמערכת מופעלת בפועל. אם לא היה עיכוב בהפעלת מערכת בקרת האקלים, כל שלושה אירועים יישלחו בו-זמנית.
שגיאות
יכול להיות שקודי השגיאה הבאים יוחזרו ביחס למכשיר הזה:
הודעת שגיאה | הכנסה לקליק | פתרון בעיות |
---|---|---|
ערך הקירור חייב להיות גדול מערך החימום. | INVALID_ARGUMENT |
צריך לוודא שהשדה heatCelsius קטן מהשדה coolCelsius בפקודה. |
אי אפשר להשתמש בפקודה במצב התרמוסטט הנוכחי. | FAILED_PRECONDITION |
בדגמים מסוימים של התרמוסטט אין תמיכה בשינוי מצב 'חיסכון' כשמצב התרמוסטט כבוי, בהתאם לשיטת התרמוסטטמצב . יש לשנות את מצב התרמוסטט לחימום, לקירור או לחימום חימום, לפני שמשנים את המצב 'חיסכון'. |
מאוורר התרמוסטט לא זמין. | FAILED_PRECONDITION |
בתרמוסטט אין אפשרות של מאוורר. לא ניתן להשתמש בתכונות ובפקודות שקשורות למאוורר במכשיר הזה. |
הפקודה לא מותרת כשהתרמוסטט במצב MANUAL_ECO. | FAILED_PRECONDITION |
לא ניתן להגדיר את הטמפרטורה הקבועה כשהתרמוסטט נמצא במצב חיסכון ידני. |
מידע נוסף זמין בחומר העזר בנושא קוד שגיאה של API את הרשימה המלאה של קודי השגיאה של ה-API.