A API Key Value oferece novas APIs personalizadas de gerenciamento de dados para objetos de dispositivo, sala e automação. O ciclo de vida dos dados personalizados é estritamente limitado ao ciclo de vida do objeto a que está associado. Por exemplo, dados personalizados (como "Quarto da Lucy") associados a um objeto "Room" serão automaticamente excluídos, movidos ou transferidos (entre estruturas) com o objeto "Room".
A mudança na API Kotlin está centrada na interface
hasCustomAppData
e fornece extensões aos objetos a que os dados do aplicativo personalizado
pertencem, incluindo as funções padrão de criar, ler, atualizar e excluir
(CRUD).
Exemplo de dispositivo
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)
Exemplo de Room
val room = homeClient.rooms().findRoomByName(roomName)
room.updateValue("nickname", "Lucy's Room")
val response = room.getValue("nickname")
room.deleteValue("nickname")
Exemplo de automação
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)
Restrições
- A chave precisa ser uma string de caracteres UTF-8 válidos, com um tamanho máximo de 128. A chave pode ser uma string vazia.
- O valor precisa ser uma string de caracteres UTF-8 válidos, com um comprimento máximo de 1.024. O valor pode ser uma string vazia.
- Cada objeto pode ter 10 linhas de pares de chave-valor.