Key Value API

Key Value API میاناهای برنامه‌سازی کاربردی جدیدی برای مدیریت داده‌های سفارشی برای اشیاء «دستگاه»، «اتاق»، و «اتوماسیون» ارائه می‌دهد. چرخه حیات داده‌های سفارشی دقیقاً به چرخه حیات شیء مرتبط با آن محدود می‌شود. برای مثال، داده‌های سفارشی (مانند «اتاق لوسی») مرتبط با شیء «اتاق» به‌طور خودکار با شیء «اتاق» حذف، جابه‌جا، یا منتقل (در سراسر ساختارها) خواهد شد.

تغییر 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 معتبر با حداکثر طول ۱۲۸ باشد. کلید می‌تواند رشته‌ای خالی باشد.
  • مقدار باید رشته‌ای از نویسه‌های UTF-8 معتبر با حداکثر طول ۱۰۲۴ باشد. مقدار می‌تواند رشته‌ای خالی باشد.
  • هر شیء می‌تواند ۱۰ ردیف جفت مقدار کلید داشته باشد.