L'API Key Value fournit de nouvelles API de gestion des données personnalisées pour les objets Device, Room et Automation. Le cycle de vie des données personnalisées est strictement limité au cycle de vie de l'objet auquel elles sont associées. Par exemple, les données personnalisées (comme "Salle de Lucy") associées à un objet Room seront automatiquement supprimées, déplacées ou transférées (entre les structures) avec l'objet Room.
La modification de l'API Swift est axée sur le
CustomAppData
contrôleur et fournit des extensions aux objets auxquels appartiennent les données d'application
personnalisées. Elle inclut les fonctions standard de création, de lecture, de mise à jour et de suppression
(CRUD).
Exemple d'appareil
guard let device = home.devices.first(where: { $0.name == deviceName }) else { return }
var response = try await device.customAppData[key]
print("Before: \(response)")
try await device.customAppData.update(key: key, value: value)
response = try await device.customAppData[key]
print("After: \(response)")
try await device.customAppData.delete(key)
Exemple de salle
guard let room = home.rooms.first(where: { $0.name == roomName }) else { return }
try await room.customAppData.update(key: "nickname", value: "Lucy's Room")
let response = try await room.customAppData["nickname"]
try await room.customAppData.delete("nickname")
Exemple d'automatisation
guard let automation = home.automations.first(where: { $0.name == automationName }) else { return }
var response = try await automation.customAppData[key]
print("Before: \(response)")
try await automation.customAppData.update(key: key, value: value)
response = try await automation.customAppData[key]
print("After: \(response)")
try await automation.customAppData.delete(key)
Restrictions
- La clé doit être une chaîne de caractères UTF-8 valides, d'une longueur maximale de 128 caractères. Elle peut être une chaîne vide.
- La valeur doit être une chaîne de caractères UTF-8 valides, d'une longueur maximale de 1 024 caractères. Elle peut être une chaîne vide.
- Chaque objet peut comporter 10 lignes de paires clé/valeur.