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