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 वर्णों की स्ट्रिंग होनी चाहिए. इसमें ज़्यादा से ज़्यादा 128 वर्ण होने चाहिए. कुंजी की वैल्यू खाली स्ट्रिंग हो सकती है.
  • वैल्यू, मान्य UTF-8 वर्णों की स्ट्रिंग होनी चाहिए. इसमें ज़्यादा से ज़्यादा 1024 वर्ण होने चाहिए. वैल्यू, खाली स्ट्रिंग हो सकती है.
  • हर ऑब्जेक्ट में, की-वैल्यू पेयर की 10 लाइनें हो सकती हैं.