Key Value API มี 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 ที่ถูกต้อง โดยมีความยาวสูงสุด 128 อักขระ คีย์อาจเป็นสตริงว่างก็ได้
- ค่าต้องเป็นสตริงของอักขระ UTF-8 ที่ถูกต้อง โดยมีความยาวสูงสุด 1024 อักขระ ค่าอาจเป็นสตริงว่างก็ได้
- แต่ละออบเจ็กต์สามารถมีคู่คีย์-ค่าได้ 10 แถว