Key Value API מספק ממשקי API חדשים לניהול נתונים בהתאמה אישית לאובייקטים של מכשירים, חדרים ופעולות אוטומטיות. מחזור החיים של הנתונים המותאמים אישית מוגבל למחזור החיים של האובייקט שאליו הם משויכים. לדוגמה, נתונים מותאמים אישית (כמו 'החדר של לוסי') שמשויכים לאובייקט Room יימחקו, יועברו או יועברו (בין מבנים) באופן אוטומטי יחד עם אובייקט Room.
השינוי ב-Kotlin API מתמקד בממשק hasCustomAppData ומספק הרחבות לאובייקטים שאליהם משתייכים הנתונים של האפליקציה בהתאמה אישית, וכולל את הפונקציות הרגילות של יצירה, קריאה, עדכון ומחיקה (CRUD).
דוגמה למכשיר
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)
דוגמה לחדר
val room = homeClient.rooms().findRoomByName(roomName)
room.updateValue("nickname", "Lucy's Room")
val response = room.getValue("nickname")
room.deleteValue("nickname")
דוגמה לפעולות אוטומטיות
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)
הגבלות
- המפתח חייב להיות מחרוזת של תווים תקינים בפורמט UTF-8, באורך של עד 128 תווים. המפתח יכול להיות מחרוזת ריקה.
- הערך צריך להיות מחרוזת של תווים תקינים בקידוד UTF-8, באורך של עד 1,024 תווים. הערך יכול להיות מחרוזת ריקה.
- כל אובייקט יכול להכיל 10 שורות של צמדי מפתח/ערך.