API de Key Value

La API de Key Value proporciona nuevas APIs de administración de datos personalizados para los objetos Device, Room y Automation. El ciclo de vida de los datos personalizados se limita estrictamente al ciclo de vida del objeto con el que se asocian. Por ejemplo, los datos personalizados (como "Habitación de Lucía") asociados con un objeto Room se borrarán, moverán o transferirán automáticamente (entre estructuras) con el objeto Room.

El cambio de la API de Kotlin se centra en la interfaz hasCustomAppData y proporciona extensiones a los objetos a los que pertenecen los datos de la aplicación personalizada, y también 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 1,024. El valor puede ser una cadena vacía.
  • Cada objeto puede tener 10 filas de pares clave-valor.