מדריך לתרמוסטט לבית חכם

action.devices.types.THERMOSTAT – מכשירי תרמוסטט הם מכשירים לניהול טמפרטורה, עם נקודות ומצבים מוגדרים. המצב הזה מפריד בין יחידות חימום ויחידות מיזוג אוויר שעשויות לכלול רק מצבים והגדרות (למשל, 'גבוה/נמוך') לעומת יעד טמפרטורה.

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

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

יכולות המכשיר

אפשר לעיין במסמכי התיעוד המתאימים לגבי התכונה פרטי ההטמעה, כמו מאפיינים ומצבים שבהם השירות צריך לתמוך, ואיך לבנות תגובות EXECUTE ו-QUERY.

התכונות הנדרשות

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

פקודות התרמוסטט משורשרות לעיתים קרובות באובייקטים מסוג Intent של EXECUTE. משתמש שהוא המשמעות של *הגדרת החימום ל-72* תוביל ליצירת פקודת מצב ואחריה הגדרת הטמפרטורה.

דרישות איכות

  • זמן אחזור: חייב להיות פחות מ-700 אלפיות שנייה או שווה לו.
  • אמינות: חייבת להיות יותר מ-97% או שווה לו.

מכשיר לדוגמה: תרמוסטט פשוט

הקטע הזה מכיל דוגמאות למטענים ייעודיים (payloads) של Intent שמייצגים 'תרמוסטט' נפוץ. על סמך סוג המכשיר והתכונות שמפורטות למעלה. אם מוסיפים או מסירים תכונות בהטמעה, תשנה את התשובות שלכם בהתאם כך שישקפו את השינויים האלה.

דוגמה של תגובת SYNC

בקשה
{
  "requestId": "6894439706274654512",
  "inputs": [
    {
      "intent": "action.devices.SYNC"
    }
  ]
}
תשובה
{
  "requestId": "6894439706274654512",
  "payload": {
    "agentUserId": "user123",
    "devices": [
      {
        "id": "123",
        "type": "action.devices.types.THERMOSTAT",
        "traits": [
          "action.devices.traits.TemperatureSetting"
        ],
        "name": {
          "name": "Simple thermostat"
        },
        "willReportState": true,
        "attributes": {
          "availableThermostatModes": [
            "off",
            "heat",
            "cool",
            "heatcool",
            "on"
          ],
          "thermostatTemperatureRange": {
            "minThresholdCelsius": 15,
            "maxThresholdCelsius": 30
          },
          "thermostatTemperatureUnit": "F"
        },
        "deviceInfo": {
          "manufacturer": "smart-home-inc",
          "model": "hs1234",
          "hwVersion": "3.2",
          "swVersion": "11.4"
        }
      }
    ]
  }
}

דוגמה לתשובה QUERY

בקשה
{
  "requestId": "6894439706274654514",
  "inputs": [
    {
      "intent": "action.devices.QUERY",
      "payload": {
        "devices": [
          {
            "id": "123"
          }
        ]
      }
    }
  ]
}
תשובה
{
  "requestId": "6894439706274654514",
  "payload": {
    "devices": {
      "123": {
        "status": "SUCCESS",
        "online": true,
        "thermostatMode": "cool",
        "thermostatTemperatureSetpoint": 23,
        "thermostatTemperatureAmbient": 25.1,
        "thermostatHumidityAmbient": 45.3
      }
    }
  }
}

פקודות EXECUTE לדוגמה

ThermostatTemperatureSetpoint

לפרטים נוספים על הפרמטרים של הפקודה: אפשר לקרוא את action.devices.traits.TemperatureSetting הפניה.

בקשה
{
  "requestId": "6894439706274654516",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.ThermostatTemperatureSetpoint",
                "params": {
                  "thermostatTemperatureSetpoint": 22
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
תשובה
{
  "requestId": "6894439706274654516",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "thermostatMode": "cool",
          "thermostatTemperatureSetpoint": 22,
          "thermostatTemperatureAmbient": 25.1
        }
      }
    ]
  }
}

ThermostatTemperatureSetRange

לפרטים נוספים על הפרמטרים של הפקודה: אפשר לקרוא את action.devices.traits.TemperatureSetting הפניה.

בקשה
{
  "requestId": "6894439706274654518",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.ThermostatTemperatureSetRange",
                "params": {
                  "thermostatTemperatureSetpointHigh": 26,
                  "thermostatTemperatureSetpointLow": 22
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
תשובה
{
  "requestId": "6894439706274654518",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "thermostatMode": "heatcool",
          "thermostatTemperatureSetpointHigh": 26,
          "thermostatTemperatureSetpointLow": 22,
          "thermostatTemperatureAmbient": 25.1
        }
      }
    ]
  }
}

ThermostatSetMode

לפרטים נוספים על הפרמטרים של הפקודה: אפשר לקרוא את action.devices.traits.TemperatureSetting הפניה.

בקשה
{
  "requestId": "6894439706274654520",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.ThermostatSetMode",
                "params": {
                  "thermostatMode": "heatcool"
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
תשובה
{
  "requestId": "6894439706274654520",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "thermostatMode": "heatcool",
          "thermostatTemperatureSetpointHigh": 26,
          "thermostatTemperatureSetpointLow": 22,
          "thermostatTemperatureAmbient": 25.1
        }
      }
    ]
  }
}

ERRORS במכשיר

ראה את הרשימה המלאה של שגיאות וחריגים.
  • inHeatOrCool – הפקודות של חימום/קירור/טווח נכשלו כי המכשיר נמצא חום או קירור מפורש.
  • inHeatCool – פקודות חימום או קירור נכשלו כי המכשיר חם או אחלה.
  • lockedToRange – המכשיר נעול לטווח טמפרטורות או למצב, לא ניתן לבצע את השינוי המבוקש.
  • rangeTooClose – נקודות הטמפרטורה בטווח קירור החום קרובות מדי ל- שתי רשתות נוירונים זו מול זו.