Key Value API

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