Key Value API

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)

房间示例

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 字符组成的字符串,长度上限为 1024。该值可以为空字符串。
  • 每个对象可以有 10 行键值对。