La API de clave-valor proporciona nuevas APIs de administración de datos personalizados para objetos de dispositivo, habitación y automatización. El ciclo de vida de los datos personalizados se limita estrictamente al ciclo de vida del objeto con el que está asociado. Por ejemplo, los datos personalizados (como "la habitación de Lucy") asociados con un objeto de habitación se borrarán, moverán o transferirán automáticamente (en todas las estructuras) con el objeto de habitación.
El cambio de la API de Kotlin se centra en la
hasCustomAppData
interfaz y proporciona extensiones a los objetos a los que pertenecen los datos de la aplicación personalizada,
e incluye las funciones estándar de creación, lectura, actualización y eliminación
(CRUD).
Ejemplo 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)
Ejemplo de habitación
val room = homeClient.rooms().findRoomByName(roomName)
room.updateValue("nickname", "Lucy's Room")
val response = room.getValue("nickname")
room.deleteValue("nickname")
Ejemplo de automatización
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)
Restricciones
- La clave debe ser una cadena de caracteres UTF-8 válidos, con una longitud máxima de 128. La clave puede ser una cadena vacía.
- El valor debe ser una cadena de caracteres UTF-8 válidos, con una longitud máxima de 1024. El valor puede ser una cadena vacía.
- Cada objeto puede tener 10 filas de pares clave-valor.