Google Home नेटवर्क में शामिल डिवाइसों को Cloud-to-cloud, Matter या दोनों का इस्तेमाल करके सेट अप किया जा सकता है. कुछ डिवाइस टाइप अन्य डिवाइसों की तुलना में ज़्यादा जटिल होते हैं. साथ ही, Home API का इस्तेमाल करके उन्हें डेवलप करना मुश्किल होता है. ऐसा इसलिए, क्योंकि उन्हें इकोसिस्टम में मौजूद अन्य डिवाइसों के साथ आसानी से इंटरफ़ेस करने की अनुमति देनी होती है.
इनमें से कुछ डिवाइस टाइप को लागू करने में एक चुनौती यह है कि डिवाइसों में अलग-अलग तरह की विशेषताओं के कॉम्बिनेशन हो सकते हैं. सभी कॉम्बिनेशन एक जैसे काम नहीं करते. साथ ही, Cloud-to-cloud डेटा मॉडल, Matter डेटा मॉडल से मैप होता है. हालांकि, यह हमेशा साफ़ तौर पर, वन-टू-वन तरीके से नहीं होता. Android पर डेटा मॉडल देखें. इसमें डेटा मॉडल और उनकी मैपिंग के बारे में ज़्यादा जानकारी दी गई है.
इस पेज पर, खास डिवाइसों के डेटा मॉडल के बारे में ज़्यादा जानकारी दी गई है. ये मॉडल एक-दूसरे से मैप होते हैं. साथ ही, इस पेज पर कुछ दिशा-निर्देश दिए गए हैं. इनसे यह जानने में मदद मिलती है कि उन डिवाइस टाइप को लागू करने के लिए, किन विशेषताओं का इस्तेमाल करना चाहिए.
अवन
डिवाइस के अन्य टाइप की तुलना में, ओवन (OvenDevice) डिवाइस टाइप और इसके कॉम्पोनेंट की विशेषताओं को लागू करना आसान नहीं है. Matter में ओवन को लागू करने के कई तरीके हैं. हालांकि, सभी तरीकों से अन्य डिवाइसों या Google Home नेटवर्क के साथ आसानी से इंटरऑपरेट नहीं किया जा सकता.
ट्रेट मैपिंग
हमारा सुझाव है कि Oven Mode और On Off क्लस्टर का इस्तेमाल करके Matter Oven डिवाइस को लागू करने के बजाय, Oven Cavity Operational State क्लस्टर का इस्तेमाल करें. इस क्लस्टर को Home APIs में OvenCavityOperationalState ट्रेट से दिखाया जाता है. साथ ही, इसे Cloud-to-cloud
RunCycle ट्रेट से मैप किया जाता है. इससे "प्री-हीटिंग", "प्री-हीटेड", और "कूलिंग डाउन" जैसे फ़ेज़ तय होते हैं.
| Home APIs | Cloud-to-cloud |
|---|---|
OvenCavityOperationalState
|
RunCycle
|
Cloud-to-cloud ओवन के डेटा मॉडल की कुछ सीमाएं हैं. Cloud-to-cloud ओवन डेटा मॉडल में, सिर्फ़ एक चैंबर और एक RunCycle की अनुमति होती है. इसके उलट, Matter मल्टी-चेंबर ओवन को डिवाइस एंडपॉइंट के तौर पर मॉडल करता है. इसमें हर चेंबर के लिए, ओवन कैविटी ऑपरेशनल स्टेट क्लस्टर होता है.
कुछ ओवन डिवाइसों के लिए, रनटाइम के दौरान फ़ेज़ की सूची में बदलाव करना सही हो सकता है. उदाहरण के लिए, पहले से गर्म करने की सुविधा वाले ओवन में, पहले से गर्म करने के फ़ेज़ के दौरान, फ़ेज़ की सूची में अलग-अलग एंट्री हो सकती हैं. ये एंट्री, गर्म करने या ठंडा करने के फ़ेज़ के दौरान होने वाली एंट्री से अलग हो सकती हैं.
लागू करने के सुझाव
पिछले सेक्शन में बताया गया है कि Matter ओवन को लागू करने के लिए, ओवन कैविटी ऑपरेशनल स्टेट क्लस्टर को लागू करना चाहिए. इसे Home APIs में OvenCavityOperationalState विशेषता के तौर पर मॉडल किया गया है.
बेहतर नतीजे पाने के लिए, पक्का करें कि आपके Cloud-to-cloud ओवन डिवाइस में RunCycle trait लागू हो. साथ ही, currentRunCycle एट्रिब्यूट को सेट करके, मौजूदा स्थिति को पब्लिश करें. इस एट्रिब्यूट को Home API, OvenCavityOperationalState.phaseList और OvenCavityOperationalState.currentPhase एट्रिब्यूट की मदद से देख सकते हैं.
ओवन को RunCycle के priority, status, और currentCycleRemainingTime एट्रिब्यूट को अपडेट करके, रन साइकल की सूचना भी पब्लिश करनी चाहिए. नीचे दिए गए उदाहरण में, OperationalState.OperationCompletion इवेंट भेजा गया है. इसका इस्तेमाल यह बताने के लिए किया जा सकता है कि ओवन, 'प्री-हीटिंग' साइकल से 'पहले से गर्म' साइकल पर स्विच हो गया है:
{
"currentRunCycle": [
{
"currentCycle": "pre-heating",
"nextCycle": "pre-heated",
"lang": "en"
}
],
"currentTotalRemainingTime": 1200,
"currentCycleRemainingTime": 300
}
किसी ऑटोमेशन में ओवन का इस्तेमाल करना
Oven Cavity Operational State क्लस्टर का इस्तेमाल करके, ओवन के लिए ऑटोमेशन बनाते समय, currentPhase एट्रिब्यूट का इस्तेमाल करें. इससे आपको पता चलेगा कि ओवन किस साइकल में है:
sequential {
val starterNode =
starter<_>(oven, OvenDevice, OvenCavityOperationalState /* Or OperationalState */)
condition {
expression = starterNode.phaseList[operationalState.currentPhase.toUInt()] equals "pre-heated"
}
action(speaker, SpeakerDevice) {
command(AssistantBroadcast.broadcast("Oven Cycle Complete"))
}
// Additional actions here as needed
}
पूरा उदाहरण देखने के लिए, ओवन का तापमान चुने गए तापमान पर पहुंचने पर, लाइटें ब्लिंक करें और सूचना दें पर जाएं.