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

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

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

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

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

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

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

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

دستورات ترموستات اغلب در دستورات EXECUTE به صورت زنجیره‌ای اجرا می‌شوند. کاربری که می‌گوید *گرما را روی ۷۲ تنظیم کن*، یک دستور حالت و به دنبال آن یک دستور تنظیم دما تولید می‌کند.

دستگاه نمونه: ترموستات ساده

این بخش شامل نمونه‌هایی از payloadهای 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
      }
    }
  }
}

نمونه دستورات اجرایی

ترموستاتدمای تنظیم‌شده

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

ترموستات، محدوده تنظیم دما

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

حالت تنظیم ترموستات

برای جزئیات بیشتر در مورد پارامترهای دستور، به مرجع 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 - دستورات گرمایش/سرمایش/محدوده دما به دلیل قرار داشتن دستگاه در حالت گرمایش یا سرمایش صریح، ناموفق بودند.
  • inHeatCool - دستورات گرمایش یا سرمایش ناموفق بودند زیرا دستگاه در حالت گرمایش یا سرمایش قرار دارد.
  • lockedToRange - دستگاه روی یک محدوده یا حالت دما قفل شده است و تغییر درخواستی قابل انجام نیست.
  • rangeTooClose - نقاط دما در یک محدوده گرمایش و سرمایش خیلی به هم نزدیک هستند.
،

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

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

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

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

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

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

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

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

دستورات ترموستات اغلب در دستورات EXECUTE به صورت زنجیره‌ای اجرا می‌شوند. کاربری که می‌گوید *گرما را روی ۷۲ تنظیم کن*، یک دستور حالت و به دنبال آن یک دستور تنظیم دما تولید می‌کند.

دستگاه نمونه: ترموستات ساده

این بخش شامل نمونه‌هایی از payloadهای 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
      }
    }
  }
}

نمونه دستورات اجرایی

ترموستاتدمای تنظیم‌شده

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

ترموستات، محدوده تنظیم دما

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

حالت تنظیم ترموستات

برای جزئیات بیشتر در مورد پارامترهای دستور، به مرجع 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 - دستورات گرمایش/سرمایش/محدوده دما به دلیل قرار داشتن دستگاه در حالت گرمایش یا سرمایش صریح، ناموفق بودند.
  • inHeatCool - دستورات گرمایش یا سرمایش ناموفق بودند زیرا دستگاه در حالت گرمایش یا سرمایش قرار دارد.
  • lockedToRange - دستگاه روی یک محدوده یا حالت دما قفل شده است و تغییر درخواستی قابل انجام نیست.
  • rangeTooClose - نقاط دما در یک محدوده گرمایش و سرمایش خیلی به هم نزدیک هستند.