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é à celui de l'objet auquel elles sont associées. Par exemple, les données personnalisées (comme "chambre de Lucie") associées à un objet Room seront automatiquement supprimées, déplacées ou transférées (d'une structure à l'autre) avec l'objet Room.
La modification de l'API Swift est axée sur le contrôleur CustomAppData et fournit des extensions aux objets auxquels appartiennent les données de l'application personnalisée. Elle inclut les fonctions standards 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 chambre
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. La clé 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. La valeur peut être une chaîne vide.
- Chaque objet peut comporter 10 lignes de paires clé/valeur.