Hướng dẫn về máy điều nhiệt thông minh cho nhà thông minh

action.devices.types.THERMOSTAT – Máy điều nhiệt là thiết bị quản lý nhiệt độ, có điểm đặt và chế độ. Điều này giúp phân biệt chúng với các thiết bị sưởi và điều hoà không khí có thể chỉ có các chế độ và chế độ cài đặt (ví dụ: cao/thấp) thay vì mục tiêu nhiệt độ.

Loại này cho biết thiết bị sẽ nhận được biểu tượng Máy điều nhiệt và một số từ đồng nghĩa cũng như tên thay thế liên quan.

Các thiết bị thuộc loại này kiểm soát nhiệt độ, trong khi một số thiết bị sưởi ấm/làm mát phòng có các chế độ điều khiển khác và chế độ cao/thấp, nhưng không có chế độ kiểm soát nhiệt độ.

Khả năng của thiết bị

Hãy tham khảo tài liệu về đặc điểm tương ứng để biết thông tin chi tiết về việc triển khai, chẳng hạn như các thuộc tính và trạng thái mà dịch vụ của bạn phải hỗ trợ, cũng như cách tạo phản hồi EXECUTE và QUERY.

Đặc điểm bắt buộc

Bạn phải cung cấp những đặc điểm và lệnh này nếu chúng áp dụng cho thiết bị của bạn. Nếu thiết bị của bạn không hỗ trợ các đặc điểm này, hãy nhập mã lỗi functionNotSupported trong phản hồi QUERY hoặc EXECUTE. Hãy xem phần Lỗi và trường hợp ngoại lệ để biết thêm thông tin.

Các lệnh điều nhiệt thường được liên kết trong các ý định EXECUTE. Người dùng nói *Đặt nhiệt độ sưởi ấm ở mức 72* sẽ tạo ra một lệnh chế độ, sau đó là lệnh đặt nhiệt độ.

Ví dụ về thiết bị: Máy điều nhiệt đơn giản

Phần này chứa các tải trọng ý định mẫu đại diện cho một "Máy điều nhiệt" phổ biến dựa trên loại thiết bị và đặc điểm ở trên. Nếu bạn thêm hoặc xoá các đặc điểm trong quá trình triển khai, hãy sửa đổi các phản hồi cho phù hợp để phản ánh những thay đổi đó.

Phản hồi SYNC mẫu

Yêu cầu
{
  "requestId": "6894439706274654512",
  "inputs": [
    {
      "intent": "action.devices.SYNC"
    }
  ]
}
Câu trả lời
{
  "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"
        }
      }
    ]
  }
}

Phản hồi mẫu của hàm QUERY

Yêu cầu
{
  "requestId": "6894439706274654514",
  "inputs": [
    {
      "intent": "action.devices.QUERY",
      "payload": {
        "devices": [
          {
            "id": "123"
          }
        ]
      }
    }
  ]
}
Câu trả lời
{
  "requestId": "6894439706274654514",
  "payload": {
    "devices": {
      "123": {
        "status": "SUCCESS",
        "online": true,
        "thermostatMode": "cool",
        "thermostatTemperatureSetpoint": 23,
        "thermostatTemperatureAmbient": 25.1,
        "thermostatHumidityAmbient": 45.3
      }
    }
  }
}

Ví dụ về lệnh EXECUTE

ThermostatTemperatureSetpoint

Để biết thêm thông tin chi tiết về các tham số lệnh, hãy xem tài liệu tham khảo action.devices.traits.TemperatureSetting.

Yêu cầu
{
  "requestId": "6894439706274654516",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.ThermostatTemperatureSetpoint",
                "params": {
                  "thermostatTemperatureSetpoint": 22
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
Câu trả lời
{
  "requestId": "6894439706274654516",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "thermostatMode": "cool",
          "thermostatTemperatureSetpoint": 22,
          "thermostatTemperatureAmbient": 25.1
        }
      }
    ]
  }
}

ThermostatTemperatureSetRange

Để biết thêm thông tin chi tiết về các tham số lệnh, hãy xem tài liệu tham khảo action.devices.traits.TemperatureSetting.

Yêu cầu
{
  "requestId": "6894439706274654518",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.ThermostatTemperatureSetRange",
                "params": {
                  "thermostatTemperatureSetpointHigh": 26,
                  "thermostatTemperatureSetpointLow": 22
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
Câu trả lời
{
  "requestId": "6894439706274654518",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "thermostatMode": "heatcool",
          "thermostatTemperatureSetpointHigh": 26,
          "thermostatTemperatureSetpointLow": 22,
          "thermostatTemperatureAmbient": 25.1
        }
      }
    ]
  }
}

ThermostatSetMode

Để biết thêm thông tin chi tiết về các tham số lệnh, hãy xem tài liệu tham khảo action.devices.traits.TemperatureSetting.

Yêu cầu
{
  "requestId": "6894439706274654520",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.ThermostatSetMode",
                "params": {
                  "thermostatMode": "heatcool"
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
Câu trả lời
{
  "requestId": "6894439706274654520",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "thermostatMode": "heatcool",
          "thermostatTemperatureSetpointHigh": 26,
          "thermostatTemperatureSetpointLow": 22,
          "thermostatTemperatureAmbient": 25.1
        }
      }
    ]
  }
}

LỖI thiết bị

Xem danh sách đầy đủ các lỗi và trường hợp ngoại lệ.
  • inHeatOrCool – Lệnh Heat/Cool/Range (Sưởi/Làm mát/Phạm vi) không thực hiện được vì thiết bị đang ở chế độ sưởi hoặc làm mát rõ ràng.
  • inHeatCool – Lệnh Sưởi ấm hoặc Làm mát không thực hiện được vì thiết bị đang ở chế độ sưởi ấm hoặc làm mát.
  • lockedToRange – Thiết bị bị khoá ở một phạm vi nhiệt độ hoặc chế độ và không thể thực hiện thay đổi theo yêu cầu.
  • rangeTooClose – Các điểm nhiệt độ trên phạm vi sưởi ấm/làm mát quá gần nhau.