
כל הדגמים של Google Nest Thermostat נתמכים ב-Smart Device Management API (SDM). המכשירים הבאים מחזירים את סוג המכשיר THERMOSTAT:
sdm.devices.types.THERMOSTAT
מאפיינים
חומרי עזר
המאפיינים, הפקודות או האירועים הבאים קשורים לקבוצה הזו:
מאפיין | תיאור | פקודות |
---|---|---|
קישוריות | המאפיין הזה שייך לכל מכשיר שיש בו פרטי קישוריות. | |
Fan | המאפיין הזה שייך לכל מכשיר שיש למערכת אפשרות לשלוט בו. | SetTimer |
לחות | המאפיין הזה שייך לכל מכשיר שיש לו חיישן למדידת לחות. | |
מידע | המאפיין הזה שייך לכל מכשיר לצורך אחסון מידע שקשור למכשיר. | |
הגדרות | המאפיין הזה שייך לכל מכשיר כדי לקבל מידע על הגדרות שקשורות למכשיר. | |
טמפרטורה | המאפיין הזה שייך לכל מכשיר שיש לו חיישן למדידת טמפרטורה. | |
ThermostatEco | המאפיין הזה שייך לסוגי מכשירים מסוג THERMOSTAT שתומכים במצבי ECO. | SetMode |
ThermostatHvac | המאפיין הזה שייך לסוגים של מכשירים מסוג תרמוסטט שיכולים לדווח על פרטי בקרת אקלים. | |
ThermostatMode | המאפיין הזה שייך לסוגים של מכשירי THERMOSTAT שתומכים במצבים שונים של התרמוסטט. | SetMode |
ThermostatTemperatureSetpoint | המאפיין הזה שייך לסוגי מכשירים מסוג THERMOSTAT שתומכים בהגדרת טמפרטורה יעד טווח טמפרטורה. | 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 } } }
טמפרטורה ולחות
כדי לקרוא את טמפרטורת הסביבה של התרמוסטט, משתמשים במאפייןטמפרטורה . טמפרטורת הסביבה נמדדת במכשיר.
כדי לקרוא את הלחות הסביבתית של התרמוסטט, משתמשים במאפייןHumidity . הלחות הסביבתית נמדדת במכשיר.
יחידת טמפרטורה
אפשר להציג את הטמפרטורה ב-Google Nest Thermostat במדידה בסולם צלזיוס או בסולם פרנהייט, אבל אי אפשר להגדיר את הסולם באמצעות SDM API. כדי לקבוע את סולם הטמפרטורה שהוגדר על ידי המשתמש, משתמשים במאפייןהגדרות .
שינוי המצב
המצב של התרמוסטט מנוהל על ידי שתי מאפיינים שונים:ThermostatMode ו-ThermostatEco.
מצבים רגילים
כדי לשנות את מצב התרמוסטט ל-HEAT, COOL או HEATCOOL, משתמשים בפקודה SetMode של המאפיין ThermostatMode.
אפשר להשתמש בפקודה הזו גם כדי להשבית את מצב התרמוסטט. אי אפשר להשתמש בה כדי להפעיל את מצב החיסכון.לדוגמה, כדי לשנות אחד מהמצבים הרגילים של התרמוסטט:
בקשה
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 .
שינוי הטמפרטורה לשמירה
אפשר לשנות את נקודות היעד של הטמפרטורה רק כשהתרמוסטט במצב HEAT, COOL או HEATCOOL, והנקודות המותרות תואמות למצב הנוכחי של התרמוסטט. אי אפשר לשנות את נקודות היעד של הטמפרטורה כשהמצב מושבת או כשמצב האקו מוגדר כ-MANUAL_ECO.
התרמוסטט צריך להיות במצב שמתאים לפקודה שנקראת לפני שינוי נקודות היעד של הטמפרטורה. הפקודה והשדות לשינוי נקודות היעד משתנים בהתאם למצב התרמוסטט.
לדוגמה, כדי להוציא את הפקודה SetHeat, התרמוסטט צריך להיות קודם במצב HEAT:
מצב | פקודה | שדות |
---|---|---|
HEAT | SetHeat | heatCelsius |
COOL | SetCool | coolCelsius |
HEATCOOL | SetRange | heatCelsius , coolCelsius |
חשוב לזכור שהפקודות של נקודת היעד מקבלות רק מעלות צלזיוס כפרמטר, אבל Google Nest Thermostat יכול להציג טמפרטורה גם בצלזיוס וגם בפרנהייט.
לדוגמה, כדי לשנות את הטמפרטורה שנקבעה כשהתרמוסטט במצב HEAT, משתמשים בפקודה SetHeat של המאפיין ThermostatTemperatureSetpoint:
בקשה
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetHeat
",
"params" : {
"heatCelsius" : 22.0
}
}
תשובה
{}
נקודות היעד של מצב חיסכון באנרגיה
נקודות היעד heatCelsius
ו-coolCelsius
שמוחזרות על ידי המאפיין ThermostatEco מוגדרות על ידי המשתמש, ואי אפשר לשנות אותן דרך SDM API.
הפעלה או השבתה של המאוורר
אם התרמוסטט תומך במאוורר, אפשר להשתמש בפקודה SetTimer של המאפיין Fan כדי להפעיל או לכבות אותו. כשמפעילים אותו, אפשר לציין את משך הזמן שבו רוצים שהמאוורר יפעל, בשניות.
לדוגמה, כדי להפעיל את המאוורר למשך שעה:
בקשה
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.Fan.SetTimer
",
"params" : {
"timerMode" : "ON",
"duration" : "3600s"
}
}
תשובה
{}
אם השדה duration
יושמט, המאוורר יפעל למשך 15 דקות כברירת מחדל.
בדיקת הקישוריות של המכשיר
אם המכשיר לא מגיב לפקודות או לא שולח אירועים, או אם מופיעות שגיאות מה-API שקשורות למכשיר, אפשר להשתמש במאפייןConnectivity כדי לבדוק את הקישוריות של המכשיר ולראות אם הוא במצב אופליין. בודקים את החיבור של המכשיר לאינטרנט ולוודא שהשירות של Nest פועל.
אם הפעלתם אירועים, אמורה להתקבל גם הודעה על אירוע משאב שמציינת שהמכשיר עבר למצב אופליין:
מטען ייעודי (payload)
{
"eventId" : "66cc2182-9529-41f4-a8c9-4f5413c40bfd",
"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
הבא אם סטטוס ה-HVAC של התרמוסטט ישתנה ל-HEATING:
מטען ייעודי (payload)
{
"eventId" : "5cbd3f60-055f-4ed7-b92d-9ae3cfa3e1ff",
"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 ו- ThermostatTemperatureSetpoint , והשינוי במאפיין ThermostatHvac יישלח מאוחר יותר כאירוע נפרד אחרי שהמערכת תופעל בפועל. אם לא הייתה עיכוב בהפעלת מערכת בקרת האקלים, כל שלושת האירועים היו נשלחים באותו זמן.
שגיאות
ייתכן שיוחזר אחד או יותר מקודי השגיאה הבאים לגבי המכשיר הזה:
הודעת השגיאה | הכנסה לקליק | פתרון בעיות |
---|---|---|
הערך של הקירור חייב להיות גדול מהערך של החימום. | INVALID_ARGUMENT |
חשוב לוודא שהשדה heatCelsius קטן מהשדה coolCelsius בפקודה. |
אי אפשר להשתמש בפקודה במצב הנוכחי של התרמוסטט. | FAILED_PRECONDITION |
חלק מדגמי התרמוסטט לא תומכים בשינוי מצב החיסכון כשמצב התרמוסטט מושבת, בהתאם למאפיין ThermostatMode . צריך לשנות את מצב התרמוסטט ל-HEAT, COOL או HEATCOOL לפני שמחליפים את מצב החיסכון. |
המאוורר של התרמוסטט לא זמין. | FAILED_PRECONDITION |
לתרמוסטט אין יכולת להפעיל מאוורר. אי אפשר להשתמש במכשיר הזה בתכונות ובפקודות שקשורות למעריצים. |
לא ניתן להשתמש בפקודה כשהתרמוסטט במצב MANUAL_ECO. | FAILED_PRECONDITION |
אי אפשר להגדיר את נקודת היעד של הטמפרטורה כשהתרמוסטט נמצא במצב חיסכון ידני. |
בחומר העזר בנושא קודי שגיאה ב-API מופיעה רשימה מלאה של קודי השגיאה ב-API.