iOS पर इंटरऑपरेबिलिटी

Google Home के इकोसिस्टम में मौजूद डिवाइसों को Cloud-to-cloud, Matter, या दोनों का इस्तेमाल करके लागू किया जा सकता है. कुछ डिवाइस टाइप, अन्य डिवाइस टाइप की तुलना में ज़्यादा जटिल होते हैं. साथ ही, Home APIs का इस्तेमाल करके इन्हें इस तरह से डेवलप करना मुश्किल होता है कि ये इकोसिस्टम में मौजूद अन्य डिवाइसों के साथ आसानी से इंटरफ़ेस कर सकें.

इनमें से कुछ डिवाइस टाइप को लागू करने में आने वाली एक चुनौती यह है कि डिवाइसों में अलग-अलग तरह की प्रॉपर्टी का इस्तेमाल किया जा सकता है. सभी कॉम्बिनेशन, अन्य कॉम्बिनेशन की तरह काम नहीं करते. इसके अलावा, Cloud-to-cloud डेटा मॉडल, Matter डेटा मॉडल से मैप होता है. हालांकि, ऐसा हमेशा साफ़ तौर पर और एक-से-एक के फ़ॉर्मैट में नहीं होता. ज़्यादा जानकारी के लिए, iOS पर डेटा मॉडलदेखें. इसमें डेटा मॉडल और उनकी मैपिंग के बारे में ज़्यादा जानकारी दी गई है.

इस पेज पर, खास डिवाइसों के डेटा मॉडल एक-दूसरे से कैसे मैप होते हैं, इस बारे में ज़्यादा जानकारी दी गई है. साथ ही, इसमें यह भी बताया गया है कि इन डिवाइस टाइप को लागू करने के लिए, किन प्रॉपर्टी का इस्तेमाल करना चाहिए.

अवन

अवन (OvenDeviceType) डिवाइस टाइप और इसकी कॉम्पोनेंट प्रॉपर्टी को, अन्य डिवाइस टाइप की तुलना में लागू करना आसान नहीं है. Matter में अवन को लागू करने के कई तरीके हैं Matter. हालांकि, सभी तरीकों से अन्य डिवाइसों या Google Home के इकोसिस्टम के साथ आसानी से इंटरऑपरेट नहीं किया जा सकता.

प्रॉपर्टी मैपिंग

हमारा सुझाव है कि Matter अवन डिवाइस को, अवन मोड और ऑन/ऑफ़ क्लस्टर का इस्तेमाल करके लागू करने के बजाय, अवन कैविटी ऑपरेशनल स्टेट क्लस्टर का इस्तेमाल करें. इस क्लस्टर को Home APIs में, OvenCavityOperationalStateTrait प्रॉपर्टी के तौर पर दिखाया जाता है. यह Cloud-to-cloud RunCycle प्रॉपर्टी से मैप होता है. यह "प्री-हीटिंग", "प्री-हीटेड", और "कूलिंग डाउन" जैसे फ़ेज़ तय करता है.

Home APIs Cloud-to-cloud
OvenCavityOperationalState RunCycle

Cloud-to-cloud अवन डेटा मॉडल की कुछ सीमाएं हैं. अवन डेटा मॉडल में, सिर्फ़ एक चेंबर और एक RunCycle की अनुमति होती है.Cloud-to-cloud इसके उलट, Matter में मल्टी-चेंबर अवन को, हर चेंबर के लिए अवन कैविटी ऑपरेशनल स्टेट क्लस्टर वाले डिवाइस एंडपॉइंट के तौर पर मॉडल किया जाता है.

कुछ अवन डिवाइसों के लिए, रनटाइम के दौरान फ़ेज़ की सूची में बदलाव करना सही हो सकता है. उदाहरण के लिए, प्रीहीटिंग की सुविधा वाले अवन में, प्रीहीटिंग फ़ेज़ के दौरान फ़ेज़ की सूची में अलग-अलग एंट्री हो सकती हैं. वहीं, हीटिंग या कूलडाउन फ़ेज़ के दौरान, फ़ेज़ की सूची में अलग एंट्री हो सकती हैं.

जैसा कि पिछले सेक्शन में बताया गया है, Matter अवन को लागू करने के लिए, अवन कैविटी ऑपरेशनल स्टेट क्लस्टर को लागू किया जाना चाहिए. इसे Home APIs में, OvenCavityOperationalStateTrait प्रॉपर्टी के तौर पर मॉडल किया जाता है.

सबसे अच्छे नतीजे पाने के लिए, पक्का करें कि Cloud-to-cloud अवन डिवाइस में RunCycle प्रॉपर्टी लागू की गई हो. साथ ही, currentRunCycle एट्रिब्यूट सेट करके, मौजूदा स्थिति पब्लिश करें. Home APIs, OvenCavityOperationalStateTrait.phaseList और OvenCavityOperationalStateTrait.currentPhase एट्रिब्यूट के ज़रिए इस एट्रिब्यूट को देख सकते हैं.

अवन डिवाइस को, RunCycle के priority, status, और currentCycleRemainingTime एट्रिब्यूट अपडेट करके, रन साइकल डिवाइस की सूचना भी पब्लिश करनी चाहिए. नीचे दिए गए उदाहरण में, एक OperationalStateTrait.OperationCompletion इवेंट भेजा जाता है. इसका इस्तेमाल यह बताने के लिए किया जा सकता है कि अवन, 'प्री-हीटिंग' साइकल से 'प्री-हीटेड' साइकल में बदल गया है:

{
  "currentRunCycle": [
    {
      "currentCycle": "pre-heating",
      "nextCycle": "pre-heated",
      "lang": "en"
    }
  ],
  "currentTotalRemainingTime": 1200,
  "currentCycleRemainingTime": 300
}

ऑटोमेशन में अवन का इस्तेमाल करना

अवन कैविटी ऑपरेशनल स्टेट क्लस्टर का इस्तेमाल करके लागू किए गए अवन के लिए ऑटोमेशन बनाते समय, यह जानने के लिए कि अवन किस साइकल में है, currentPhase एट्रिब्यूट का रेफ़रंस दें:

sequential {
  let operationalState = starter(
    oven,
    OvenDeviceType.self,
    OvenCavityOperationalStateTrait.self
  )
  operationalState
  condition {
    operationalState.phaseList[operationalState.currentPhase.toUInt()].equals("pre-heated")
  }
  for speaker in speakers {
    action(speaker, SpeakerDeviceType.self) {
      Google.AssistantBroadcastTrait.broadcast(msg: "Oven Cycle Complete")
    }
  }
}

पूरे उदाहरण के लिए, अगर अवन की साइकल पूरी होने पर टीवी चालू है, तो लिविंग रूम की लाइटें ब्लिंक करेंगी और स्मार्ट स्पीकर "अवन की साइकल पूरी हो गई है" ब्रॉडकास्ट करेगा लेख पढ़ें.