راهنمای ترموستات خانه هوشمند

action.devices.types.THERMOSTAT - ترموستات‌ها دستگاه‌هایی هستند که دما را مدیریت می‌کنند، با نقاط تنظیم و حالت‌ها. این آنها را از بخاری‌ها و واحدهای AC که ممکن است فقط حالت‌ها و تنظیمات (مثلاً بالا/پایین) در مقابل دمای هدف داشته باشند، جدا می‌کند.

این نوع نشان می دهد که دستگاه نماد ترموستات و برخی از مترادف ها و نام های مستعار مرتبط را دریافت می کند.

دستگاه هایی از این نوع دما را کنترل می کنند، در حالی که برخی از واحدهای گرمایش/خنک کننده اتاق دارای کنترل های مختلف و حالت های بالا/پایین هستند، اما کنترل دما ندارند.

قابلیت های دستگاه

برای جزئیات پیاده‌سازی، مانند ویژگی‌ها و حالت‌هایی که سرویس شما باید از آنها پشتیبانی کند، و نحوه ایجاد پاسخ‌های EXECUTE و QUERY، به اسناد ویژگی مربوطه مراجعه کنید.

صفات مورد نیاز

این صفات و دستورات، در صورت وجود برای دستگاه شما، مورد نیاز هستند. اگر دستگاه شما از این ویژگی ها پشتیبانی نمی کند، کد خطای functionNotSupported را در پاسخ QUERY یا EXECUTE وارد کنید. برای اطلاعات بیشتر به خطاها و استثناها مراجعه کنید.

دستورات ترموستات اغلب در مقاصد EXECUTE زنجیر می شوند. کاربری که می گوید *حرارت را روی 72* تنظیم کنید، یک فرمان حالت و سپس یک تنظیم دما ایجاد می کند.

الزامات کیفیت

  • تأخیر: باید کمتر یا مساوی 700 میلی ثانیه باشد.
  • قابلیت اطمینان: باید بیشتر یا مساوی 97 درصد باشد.

دستگاه مثال: ترموستات ساده

این بخش شامل بارهای هدف نمونه است که یک «ترموستات» رایج را بر اساس نوع دستگاه و ویژگی‌های بالا نشان می‌دهد. اگر ویژگی‌هایی را در پیاده‌سازی خود اضافه یا حذف می‌کنید، پاسخ‌های خود را متناسب با آن تغییر دهید تا آن تغییرات را منعکس کند.

نمونه پاسخ 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

ترموستاتTemperatureSetpoint

برای جزئیات بیشتر در مورد پارامترهای فرمان، به مرجع 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
        }
      }
    ]
  }
}

ترموستات TemperatureSetRange

برای جزئیات بیشتر در مورد پارامترهای فرمان، به مرجع 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
        }
      }
    ]
  }
}

خطاهای دستگاه

لیست کامل خطاها و استثناها را ببینید.
  • inHeatOrCool - دستورات Heat/Cool/Range ناموفق هستند زیرا دستگاه در گرما یا خنک بودن صریح است.
  • inHeatCool - دستورات Heat یا Cool ناموفق هستند زیرا دستگاه در گرما یا سرد است.
  • lockedToRange - دستگاه در محدوده یا حالت دما قفل شده است و تغییر درخواستی نمی تواند انجام شود.
  • rangeTooClose - نقاط دما در یک محدوده خنک کننده بسیار نزدیک به یکدیگر هستند.