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ść.