תרמוסטט

כל הדגמים של Google Nest Thermostatנתמכים ב-API של Smart Device Management‏ (SDM). המכשירים האלה מחזירים את סוג המכשיר THERMOSTAT:

sdm.devices.types.THERMOSTAT

תכונות

חומרי עזר

התכונות, הפקודות או האירועים הבאים קשורים לקבוצה הזו:

תכונהתיאורפקודות
קישוריותהמאפיין הזה שייך לכל מכשיר שיש בו מידע על קישוריות.
Fanהמאפיין הזה שייך לכל מכשיר שיש לו את היכולת לשלוט במאוורר.SetTimer
לחותהמאפיין הזה שייך לכל מכשיר שיש בו חיישן למדידת לחות.
פרטיםהמאפיין הזה שייך לכל מכשיר שרוצים לקבל לגביו מידע שקשור למכשיר.
הגדרותהמאפיין הזה שייך לכל מכשיר, למידע על הגדרות שקשורות למכשיר.
טמפרטורההמאפיין הזה שייך לכל מכשיר שיש בו חיישן למדידת טמפרטורה.
ThermostatEcoהמאפיין הזה שייך לסוגי מכשירים של THERMOSTAT שתומכים במצבי ECO.SetMode
ThermostatHvacהתכונה הזו שייכת לסוגי מכשירים של THERMOSTAT שיכולים לדווח על פרטים של מערכת בקרת אקלים.
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
    }
  }
}

טמפרטורה ולחות

כדי לקרוא את טמפרטורת החדר של התרמוסטט, משתמשים במאפיין Temperature . טמפרטורת הסביבה נמדדת במכשיר.

כדי לקרוא את הלחות הסביבתית של התרמוסטט, משתמשים במאפייןHumidity . הלחות הסביבתית נמדדת במכשיר.

יחידות טמפרטורה

ב-Google Nest Thermostat אפשר להציג את הטמפרטורה במעלות צלזיוס או פרנהייט, אבל אי אפשר להגדיר את הסולם באמצעות SDM API. כדי לקבוע את סולם הטמפרטורות שהמשתמש הגדיר כרגע, משתמשים במאפייןSettings .

שינוי המצב

המצב של התרמוסטט מנוהל על ידי שתי תכונות שונות: ThermostatMode ו- ThermostatEco.

מצבים רגילים

כדי לשנות את מצב התרמוסטט לחימום, קירור או חימום וקירור, משתמשים בפקודה SetMode של מאפיין ThermostatMode.

אפשר להשתמש בפקודה הזו גם כדי להעביר את מצב התרמוסטט למצב OFF, אבל אי אפשר להשתמש בה כדי להפעיל את מצב החיסכון באנרגיה.

לדוגמה, כדי לשנות אחד מהמצבים הרגילים של התרמוסטט:

בקשה

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:

שינוי הטמפרטורה לשמירה

אפשר לשנות את הטמפרטורות לשמירה רק כשהתרמוסטט במצב חימום, קירור או חימום וקירור, והטמפרטורות לשמירה שמוגדרות תואמות למצב הנוכחי של התרמוסטט. אי אפשר לשנות את נקודות הטמפרטורה שנקבעו כשהמצב הוא OFF או כשהמצב Eco מוגדר ל-MANUAL_ECO.

התרמוסטט צריך להיות במצב שמתאים לפקודה שמופעלת לפני שינוי הטמפרטורות לשמירה. הפקודה והשדות לשינוי הטמפרטורות לשמירה משתנים בהתאם למצב התרמוסטט.

לדוגמה, כדי להוציא את הפקודה SetHeat, התרמוסטט צריך להיות קודם במצב חימום:

מצב פקודה שדות
חום SetHeat heatCelsius
COOL SetCool coolCelsius
HEATCOOL SetRange heatCelsius, coolCelsius

שימו לב שפקודות ההגדרה של נקודת הטמפרטורה מקבלות רק מעלות צלזיוס כפרמטר, למרות ש-Google Nest Thermostat יכול להציג את הטמפרטורה במעלות צלזיוס או פרנהייט.

לדוגמה, כדי לשנות את הטמפרטורה לשמירה כשהתרמוסטט במצב חימום, משתמשים בפקודה 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 של מאפיין המאוורר כדי להפעיל או להשבית אותו. כשמפעילים את המאוורר, אפשר לציין את משך הזמן שרוצים שהוא יפעל, בשניות.

לדוגמה, כדי להפעיל את המאוורר למשך שעה:

בקשה

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.Fan.SetTimer",
  "params" : {
    "timerMode" : "ON",
    "duration" : "3600s"
  }
}

תשובה

{}

אם לא מציינים את השדה duration, המאוורר יפעל למשך 15 דקות כברירת מחדל.

בדיקת הקישוריות של המכשיר

אם המכשיר לא מגיב לפקודות או לא שולח אירועים, או אם אתם מקבלים שגיאות מה-API שקשורות למכשיר, אתם יכולים להשתמש במאפייןConnectivity כדי לבדוק את הקישוריות של המכשיר ולראות אם הסטטוס שלו הוא OFFLINE. בודקים את החיבור של המכשיר לאינטרנט ומוודאים ששירות Nest פועל.

אם הפעלתם את האפשרות 'אירועים', אמור להתקבל גם אירוע משאב שמציין שהמכשיר עבר למצב אופליין:

מטען ייעודי

{
  "eventId" : "c10c1ae5-2bf3-434b-a77f-42a2b94f689b",
  "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 הבא אם הסטטוס של מערכת החימום והקירור של התרמוסטט השתנה ל-HEATING:

מטען ייעודי

{
  "eventId" : "880ace18-f08a-4703-8d46-ddba8a7c9542",
  "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"
  ]
}

האירועים מופעלים לכל המאפיינים שמשויכים לסוג המכשיר הזה. מפעילים את האפשרות Enable events (הפעלת אירועים) אם רוצים להגיב לאירועים בצורה כלשהי כחלק משילוב.

תזמון האירועים

שימו לב: יכול להיות שאירוע של שינוי בסטטוס של מערכת HVAC לא יועבר באותו זמן כמו אירועים של שינוי במצב התרמוסטט.

לדוגמה, לפעמים יש עיכוב בהפעלה של מצב החימום או הקירור של התרמוסטט כדי להגן על מערכת מיזוג האוויר. בתרחיש הזה, שינוי מצב התרמוסטט עשוי לשלוח בהתחלה רק אירועים של שינויים במאפיינים ThermostatMode ו- ThermostatTemperatureSetpoint , ושינוי המאפיין ThermostatHvac יישלח מאוחר יותר כאירוע נפרד אחרי שהמערכת תופעל בפועל. אם לא היה עיכוב בהפעלת מערכת בקרת האקלים, כל שלושת האירועים היו נשלחים בו-זמנית.

שגיאות

יכול להיות שיוחזרו קודי השגיאה הבאים שקשורים למכשיר הזה:

הודעת השגיאה הכנסה לקליק פתרון בעיות
הערך של הקור חייב להיות גדול מהערך של החום. INVALID_ARGUMENT מוודאים שהערך בשדה heatCelsius קטן מהערך בשדה coolCelsius בפקודה.
הפקודה לא מותרת במצב התרמוסטט הנוכחי. FAILED_PRECONDITION חלק מדגמי התרמוסטטים לא תומכים בשינוי מצב החיסכון כשהתרמוסטט כבוי, בהתאם למאפיין ThermostatMode . לפני שמשנים את מצב החיסכון, צריך לשנות את מצב התרמוסטט לחימום, קירור או חימום וקירור.
המאוורר של התרמוסטט לא זמין. FAILED_PRECONDITION לתרמוסטט אין אפשרות להפעלת מאוורר. אי אפשר להשתמש במכשיר הזה בתכונות ובפקודות שקשורות למאוורר.
אי אפשר להשתמש בפקודה כשהתרמוסטט במצב MANUAL_ECO. FAILED_PRECONDITION אי אפשר להגדיר את נקודת הטמפרטורה כשהתרמוסטט נמצא במצב חיסכון ידני.

רשימה מלאה של קודי שגיאה של API זמינה במאמר API Error Code Reference.