Interfejs Key Value API udostępnia nowe interfejsy API do zarządzania danymi niestandardowymi dla obiektów Device, Room i Automation. Cykl życia danych niestandardowych jest ściśle ograniczony do cyklu życia obiektu, z którym są powiązane. Na przykład dane niestandardowe (takie jak „Pokój Lucy”) powiązane z obiektem Room zostaną automatycznie usunięte, przeniesione lub przekazane (w ramach struktur) wraz z obiektem Room.
Zmiana w interfejsie API Kotlin dotyczy interfejsu hasCustomAppData i udostępnia rozszerzenia obiektów, do których należą dane aplikacji niestandardowej, oraz obejmuje standardowe funkcje tworzenia, odczytywania, aktualizowania i usuwania (CRUD).
Przykład urządzenia
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ład dotyczący pokoju
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 znaków. 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ść.