API «Ключ-значение» предоставляет новые API для управления пользовательскими данными для объектов «Устройство», «Комната» и «Автоматизация». Жизненный цикл пользовательских данных строго ограничен жизненным циклом объекта, с которым они связаны. Например, пользовательские данные (такие как «Комната Люси»), связанные с объектом «Комната», будут автоматически удалены, перемещены или переданы (между структурами) вместе с объектом «Комната».
Изменения в API Kotlin сосредоточены на интерфейсе 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 строк пар ключ-значение.