API ключ-значение

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 строк пар ключ-значение.