תרמוסטט

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

שינוי המצב

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

אמצעי תחבורה רגילים

כדי לשנות את מצב התרמוסטט ל'חימום', 'קירור' או '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:

שינוי ההגדרות הקבועות של הטמפרטורה

אפשר לשנות את ערכי הטמפרטורה הקבועים רק כשהתרמוסטט נמצא מצבי חימום, קירור או 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" : "95d6d093-070e-4f82-80d2-cd6626081f77",
  "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" : "fbe2cee4-65bc-4c0c-baa2-1294726a17aa",
  "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.