Key Value API

Interfejs Key Value API udostępnia nowe interfejsy API do zarządzania danymi niestandardowymi dla obiektów urządzeń, pomieszczeń i automatyzacji. Cykl życia danych niestandardowych jest ściśle powiązany z cyklem życia obiektu, z którym są one powiązane. Na przykład dane niestandardowe (takie jak „Pokój Lucy”) powiązane z obiektem Pokój zostaną automatycznie usunięte, przeniesione lub przekazane (między strukturami) wraz z obiektem Pokój.

Zmiana interfejsu API Kotlin dotyczy interfejsu hasCustomAppData i zapewnia rozszerzenia obiektów, do których należą niestandardowe dane aplikacji, oraz obejmuje standardowe funkcje tworzenia, odczytu, aktualizacji i usuwania (CRUD).

Przykładowe urządzenie

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)

Przykładowy pokój

val room = homeClient.rooms().findRoomByName(roomName)
room.updateValue("nickname", "Lucy's Room")
val response = room.getValue("nickname")
room.deleteValue("nickname")

Przykład automatyzacji

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)

Ograniczenia

  • Klucz musi być ciągiem prawidłowych znaków UTF-8 o maksymalnej długości 128. Klucz może być pustym ciągiem znaków.
  • Wartość musi być ciągiem prawidłowych znaków UTF-8 o maksymalnej długości 1024 znaków. Wartość może być pustym ciągiem znaków.
  • Każdy obiekt może mieć 10 wierszy par klucz-wartość.