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 แถว