תרמוסטט

כל הדגמים של 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:

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

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