Key Value API

توفّر واجهة برمجة التطبيقات Key Value API واجهات برمجة تطبيقات جديدة مخصّصة لإدارة البيانات الخاصة بكائنات الجهاز والغرفة والتشغيل الآلي. تقتصر دورة حياة البيانات المخصّصة بشكل صارم على دورة حياة العنصر المرتبطة به. على سبيل المثال، سيتم تلقائيًا حذف البيانات المخصّصة (مثل "غرفة لوسي") المرتبطة بكائن Room أو نقلها أو تحويلها (بين البُنى) مع كائن Room.

يركّز التغيير في واجهة برمجة تطبيقات Kotlin على واجهة 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 صالحة، وبطول أقصى يبلغ 1024 حرفًا. يمكن أن تكون القيمة سلسلة فارغة.
  • يمكن أن يحتوي كل عنصر على 10 صفوف من أزواج المفاتيح والقيم.