Key Value API

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