Key Value API は、Device、Room、Automation オブジェクト用の新しいカスタム データ管理 API を提供します。カスタムデータのライフサイクルは、関連付けられているオブジェクトのライフサイクルに厳密にスコープ設定されます。たとえば、Room オブジェクトに関連付けられたカスタムデータ(「Lucy の部屋」など)は、Room オブジェクトとともに自動的に削除、移動、転送(構造間)されます。
Kotlin API の変更は hasCustomAppData インターフェースを中心に行われ、カスタム アプリケーション データが属するオブジェクトの拡張機能が提供されます。また、標準の作成、読み取り、更新、削除(CRUD)関数も含まれます。
デバイスの例
val device = homeClient.devicesWithLogging().findDeviceByName(deviceName)
var response = device.getValue(key)
println("Before: $response")
device.updateValue(key, value)
response = device.getValue(key)
println("After: $response")
device.deleteValue(key)
Room の例
val room = homeClient.rooms().findRoomByName(roomName)
room.updateValue("nickname", "Lucy's Room")
val response = room.getValue("nickname")
room.deleteValue("nickname")
自動化の例
val automation = homeClient.automations().findAutomationByName(automationName)
var response = automation.getValue(key)
println("Before: $response")
automation.updateValue(key, value)
response = automation.getValue(key)
println("After: $response")
automation.deleteValue(key)
制限事項
- キーは、有効な UTF-8 文字の文字列にする必要があります。最大長は 128 文字です。キーは空の文字列にできます。
- 値は、有効な UTF-8 文字の文字列にする必要があります。最大長は 1, 024 文字です。値は空の文字列にできます。
- 各オブジェクトには、Key-Value ペアの行を 10 個まで含めることができます。