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 שורות של צמדי מפתח/ערך.