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 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 Room zostaną automatycznie usunięte, przeniesione lub przesłane (między strukturami) razem z obiektem Room.
Zmiana w interfejsie Kotlin API koncentruje się na
hasCustomAppData
interfejsie i udostępnia rozszerzenia obiektów, do których należą dane aplikacji niestandardowej, oraz standardowe funkcje tworzenia, odczytywania, aktualizowania i usuwania
(CRUD).
Przykład dotyczący 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 dotyczący 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ść.