Key Value API

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

يركّز تغيير واجهة برمجة التطبيقات 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 صفوف من أزواج المفاتيح والقيم.