これを行う方法はいくつかありますが、SmartApp を自分で使用するためだけに作成している場合は、SmartThings の Nest 用の既存のデバイス タイプの 1 つを利用することをお勧めします。簡単な例として、私が使用しているものを使用します。
https://github.com/bmmiller/device-type.nest/blob/master/nest.devicetype.groovy
96 行目以降は、次のように記述した SmartApp にステータスを公開します。
attribute "temperatureUnit", "string"
attribute "humiditySetpoint", "number"
attribute "autoAwayStatus", "number" // New Line
ここで、現在 459 行目から始まる既存の poll() メソッドでデータを取得する必要があります。
480行目以降、属性を更新する
sendEvent(name: 'humidity', value: humidity)
sendEvent(name: 'humiditySetpoint', value: humiditySetpoint, unit: Humidity)
sendEvent(name: 'thermostatFanMode', value: fanMode)
sendEvent(name: 'thermostatMode', value: temperatureType)
sendEvent(name: 'autoAwayStatus', value: data.shared.auto_away) // New Line
これにより、auto_away ステータスの数値が公開されます。
- -1 = 自動退席が無効
- 0 = 自動離席オフ
- 1 = 自動離席中
次に、SmartApp で次のようにタイプ サーモスタットの入力を含めます。
section("Choose thermostat... ") {
input "thermostat", "capability.thermostat"
}
を参照して、自動退席ステータスにアクセスできます。
thermostat.autoAwayStatus
コードのどこからでも、次のようなことができます
if (thermostat.autoAwayStatus == 1) {
// Turn off everything
}