键值 API 为设备、房间和自动化对象提供了新的自定义数据管理 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 字符的字符串,长度上限为 1024 个字符。该值可以为空字符串。
- 每个对象最多可以有 10 行键值对。