Key Value API は、デバイス、部屋、自動化オブジェクト用の新しいカスタム データ管理 API を提供します。カスタムデータのライフサイクルは、関連付けられているオブジェクトのライフサイクルに厳密にスコープされます。たとえば、Room オブジェクトに関連付けられたカスタムデータ(「ルーシーの部屋」など)は、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)
部屋の例
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 文字にする必要があります。値は空の文字列にできます。
- 各オブジェクトには、10 行の Key-Value ペアを設定できます。