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")
    }
  }
}

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