Akıllı Ev Termostatı Kılavuzu

action.devices.types.THERMOSTAT: Termostatlar, istenen sıcaklık ayarları ve modları olan, sıcaklığı yöneten cihazlardır. Bu, yalnızca sıcaklık hedefi yerine yalnızca mod ve ayarlara (ör. yüksek/düşük) sahip olabilecek ısıtıcılar ve klimalardan ayıran bir özelliktir.

Bu tür, cihazın termostat simgesini ve bazı ilgili eş anlamlı kelimeleri ve takma adları aldığını gösterir.

Bu tür cihazlar sıcaklığı kontrol eder. Bazı ısıtma/soğutma oda ünitelerinde ise sıcaklık kontrolleri yoktur ancak farklı kontroller ve yüksek/düşük modlar bulunur.

Cihaz özellikleri

Hizmetinizin desteklemesi gereken özellikler ve durumlar gibi uygulama ayrıntıları ve EXECUTE ile QUERY yanıtlarının nasıl oluşturulacağı hakkında bilgi edinmek için ilgili özellik dokümanlarına bakın.

Zorunlu özellikler

Cihazınız için geçerliyse bu özellikler ve komutlar gereklidir. Cihazınız bu özellikleri desteklemiyorsa bir QUERY veya EXECUTE yanıtına functionNotSupported hata kodunu girin. Daha fazla bilgi için Hatalar ve istisnalar bölümüne bakın.

Termostat komutları genellikle EXECUTE intent'lerinde zincirlenir. *Isıtmayı 22'ye ayarla* diyen bir kullanıcı, mod komutu ve ardından sıcaklık ayarı oluşturur.

Kalite gereksinimleri

  • Gecikme: 700 ms'den küçük veya buna eşit olmalıdır.
  • Güvenilirlik: %97'den büyük veya buna eşit olmalıdır.

Örnek cihaz: Basit termostat

Bu bölümde, yukarıdaki cihaz türüne ve özelliklere göre yaygın bir "Termostat"ı temsil eden örnek intent yüklemeleri bulunmaktadır. Uygulamanızda özellik ekler veya kaldırırsanız bu değişiklikleri yansıtacak şekilde yanıtlarınızı değiştirin.

Örnek SYNC yanıtı

İstek
{
  "requestId": "6894439706274654512",
  "inputs": [
    {
      "intent": "action.devices.SYNC"
    }
  ]
}
Yanıt
{
  "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"
        }
      }
    ]
  }
}

Örnek QUERY yanıtı

İstek
{
  "requestId": "6894439706274654514",
  "inputs": [
    {
      "intent": "action.devices.QUERY",
      "payload": {
        "devices": [
          {
            "id": "123"
          }
        ]
      }
    }
  ]
}
Yanıt
{
  "requestId": "6894439706274654514",
  "payload": {
    "devices": {
      "123": {
        "status": "SUCCESS",
        "online": true,
        "thermostatMode": "cool",
        "thermostatTemperatureSetpoint": 23,
        "thermostatTemperatureAmbient": 25.1,
        "thermostatHumidityAmbient": 45.3
      }
    }
  }
}

Örnek EXECUTE komutları

ThermostatTemperatureSetpoint

Komut parametreleri hakkında daha fazla bilgi için action.devices.traits.TemperatureSetting referansına bakın.

İstek
{
  "requestId": "6894439706274654516",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.ThermostatTemperatureSetpoint",
                "params": {
                  "thermostatTemperatureSetpoint": 22
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
Yanıt
{
  "requestId": "6894439706274654516",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "thermostatMode": "cool",
          "thermostatTemperatureSetpoint": 22,
          "thermostatTemperatureAmbient": 25.1
        }
      }
    ]
  }
}

ThermostatTemperatureSetRange

Komut parametreleri hakkında daha fazla bilgi için action.devices.traits.TemperatureSetting referansına bakın.

İstek
{
  "requestId": "6894439706274654518",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.ThermostatTemperatureSetRange",
                "params": {
                  "thermostatTemperatureSetpointHigh": 26,
                  "thermostatTemperatureSetpointLow": 22
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
Yanıt
{
  "requestId": "6894439706274654518",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "thermostatMode": "heatcool",
          "thermostatTemperatureSetpointHigh": 26,
          "thermostatTemperatureSetpointLow": 22,
          "thermostatTemperatureAmbient": 25.1
        }
      }
    ]
  }
}

ThermostatSetMode

Komut parametreleri hakkında daha fazla bilgi için action.devices.traits.TemperatureSetting referansına bakın.

İstek
{
  "requestId": "6894439706274654520",
  "inputs": [
    {
      "intent": "action.devices.EXECUTE",
      "payload": {
        "commands": [
          {
            "devices": [
              {
                "id": "123"
              }
            ],
            "execution": [
              {
                "command": "action.devices.commands.ThermostatSetMode",
                "params": {
                  "thermostatMode": "heatcool"
                }
              }
            ]
          }
        ]
      }
    }
  ]
}
Yanıt
{
  "requestId": "6894439706274654520",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "online": true,
          "thermostatMode": "heatcool",
          "thermostatTemperatureSetpointHigh": 26,
          "thermostatTemperatureSetpointLow": 22,
          "thermostatTemperatureAmbient": 25.1
        }
      }
    ]
  }
}

Cihaz HATALARI

Hataların ve istisnaların tam listesini inceleyin.
  • inHeatOrCool - Cihaz açık ısıtma veya soğutma modunda olduğu için Isıtma/Soğutma/Aralık komutları başarısız oldu.
  • inHeatCool - Cihaz ısıtma veya soğutma modunda olduğu için Isıtma veya Soğutma komutları başarısız oldu.
  • lockedToRange: Cihaz bir sıcaklık aralığına veya moda kilitlenmişse ve istenen değişiklik yapılamıyorsa
  • rangeTooClose: Isıtma-soğutma aralığındaki sıcaklık noktaları birbirine çok yakın.