Key Value API, Cihaz, Oda ve Otomasyon nesneleri için yeni özel veri yönetimi API'leri sağlar. Özel verilerin yaşam döngüsü, kesinlikle ilişkilendirildiği nesnenin yaşam döngüsüyle sınırlıdır. Örneğin, bir Oda nesnesiyle ilişkili özel veriler (ör. "Lucy'nin odası") Oda nesnesiyle birlikte otomatik olarak silinir, taşınır veya aktarılır (yapılar arasında).
Kotlin API değişikliği, hasCustomAppData arayüzüyle ilgilidir ve özel uygulama verilerinin ait olduğu nesneler için uzantılar sağlar. Ayrıca standart oluşturma, okuma, güncelleme ve silme (CRUD) işlevlerini içerir.
Cihaz örneği
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)
Oda örneği
val room = homeClient.rooms().findRoomByName(roomName)
room.updateValue("nickname", "Lucy's Room")
val response = room.getValue("nickname")
room.deleteValue("nickname")
Otomasyon örneği
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)
Kısıtlamalar
- Anahtar, geçerli UTF-8 karakterlerinden oluşan bir dize olmalı ve maksimum uzunluğu 128 karakteri geçmemelidir. Anahtar boş bir dize olabilir.
- Değer, geçerli UTF-8 karakterlerinden oluşan bir dize olmalı ve maksimum uzunluğu 1.024 karakter olmalıdır. Değer boş bir dize olabilir.
- Her nesnede 10 satır anahtar/değer çifti olabilir.