תרמוסטט

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

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

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

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

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

ב-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 יכול להציג טמפרטורה בצלזיוס או בפרנהייט.

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

בקשה

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" : "366dcbfb-2b0d-4c8c-9ad9-2ff7434f1dc7",
  "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" : "1e9d0340-7543-4a6f-b498-7c12a77f0b27",
  "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.