L'API Key Value fornisce nuove API di gestione dei dati personalizzati per gli oggetti Dispositivo, Stanza e Automazione. Il ciclo di vita dei dati personalizzati è limitato rigorosamente al ciclo di vita dell'oggetto a cui sono associati. Ad esempio, i dati personalizzati (come "Stanza di Lucia") associati a un oggetto Stanza verranno automaticamente eliminati, spostati o trasferiti (tra le strutture) con l'oggetto Stanza.
La modifica dell'API Kotlin è incentrata sull'interfaccia
hasCustomAppData
e fornisce estensioni agli oggetti a cui appartengono i dati dell'applicazione
personalizzata, incluse le funzioni standard di creazione, lettura, aggiornamento ed eliminazione
(CRUD).
Esempio di 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)
Esempio di stanza
val room = homeClient.rooms().findRoomByName(roomName)
room.updateValue("nickname", "Lucy's Room")
val response = room.getValue("nickname")
room.deleteValue("nickname")
Esempio di automazione
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)
Limitazioni
- La chiave deve essere una stringa di caratteri UTF-8 validi, con una lunghezza massima di 128. La chiave può essere una stringa vuota.
- Il valore deve essere una stringa di caratteri UTF-8 validi, con una lunghezza massima di 1024. Il valore può essere una stringa vuota.
- Ogni oggetto può avere 10 righe di coppie chiave-valore.