हैंडल से जुड़े निर्देश

इसके बाद, अपने डिवाइस पर कस्टम कोड चलाने के लिए, इन निर्देशों का पालन करें Google Assistant से मिलने वाले निर्देशों का जवाब देता है.

सैंपल चलाएं

अब आपने एक विशेषता तय की है और मॉडल को अपडेट किया है, तो पक्का करें कि Google Assistant सही जवाब के लिए चालू/बंद निर्देश वापस भेज रही है क्वेरी.

googlesamples-assistant-hotword --device-model-id my-model

यह क्वेरी करके देखें:

Ok Google, चालू करो.

आपको कंसोल आउटपुट में ये स्टेटमेंट दिखेंगे. अगर नहीं, तो समस्या हल करने के निर्देश दिए गए हैं.

ON_RECOGNIZING_SPEECH_FINISHED:
  {'text': 'turn on'}
ON_DEVICE_ACTION:
  {'inputs': [{'payload': {'commands': [{'execution': [{'command': 'action.devices.commands.OnOff',
  'params': {'on': True}}], 'devices': [{'id': 'E56D39D894C2704108758EA748C71255'}]}]},
  'intent': 'action.devices.EXECUTE'}], 'requestId': '4785538375947649081'}
Do command action.devices.commands.OnOff with params {'on': True}

आपको सोर्स कोड में ये स्टेटमेंट कहां प्रिंट होंगे.

सोर्स कोड पाना

अब आप अपना प्रोजेक्ट शुरू करने के लिए तैयार हैं:

git clone https://github.com/googlesamples/assistant-sdk-python

कमांड हैंडलर ढूंढना

सैंपल कोड में मौजूद hotword.py फ़ाइल, अनुरोध भेजने के लिए SDK टूल का इस्तेमाल करती है और Google Assistant से जवाब पा सकें.

cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library
nano hotword.py

इस हैंडलर परिभाषा को खोजें:

def process_event(event):

फ़िलहाल, यह फ़ंक्शन हर डिवाइस कार्रवाई इवेंट के नाम और सभी पैरामीटर में नीचे दी गई लाइन शामिल है:

print('Do command', command, 'with params', str(params))

यह कोड action.devices.commands.OnOff निर्देश को हैंडल करता है. यह कमांड, OnOff का हिस्सा है Trait स्कीमा. फ़िलहाल, यह कोड सिर्फ़ आउटपुट को कंसोल पर प्रिंट करता है. आप इस कोड को अपने प्रोजेक्ट. process_event() में print निर्देश के तहत, इस ब्लॉक को जोड़ें.

print('Do command', command, 'with params', str(params)) # Add the following:
if command == "action.devices.commands.OnOff":
    if params['on']:
        print('Turning the LED on.')
    else:
        print('Turning the LED off.')

आउटपुट देखने के लिए, बदले गए सोर्स कोड को सीधे चलाएं.

python hotword.py --device-model-id my-model

पहले की तरह ही क्वेरी का इस्तेमाल करें:

Ok Google, चालू करो.

अगर आपने एलईडी कनेक्ट किया है Raspberry Pi के ज़रिए, यह जानने के लिए पढ़ना जारी रखें कि आपके सवाल को ध्यान में रखकर LED को कैसे जलाया जाता है OnOff आदेश. अगर आपने ऐसा नहीं किया है, तो अगले सेक्शन में जाकर ज़्यादा एट्रिब्यूट और हैंडलर जोड़ना.

अगले चरण - Raspberry Pi

अब आपको पता है कि इनकमिंग कमांड को कैसे मैनेज करना है, तो सैंपल कोड में बदलाव करें का इस्तेमाल करना होगा. अगर आपको इस एक्सटेंशन का इस्तेमाल करना है, तो रैज़बेरी पाई.

GPIO पैकेज इंपोर्ट करें

चालू करें पर जनरल पर्पज़ इनपुट/आउटपुट (GPIO) पिन के लिए सॉफ़्टवेयर एक्सेस को आसान बनाने के लिए Raspberry Pi, RPi.GPIO इंस्टॉल करो पैकेज को वर्चुअल एनवायरमेंट में इकट्ठा करने की सुविधा मिलती है.

pip install RPi.GPIO

सैंपल में बदलाव करना

hotword.py फ़ाइल खोलें.

nano hotword.py

hotword.py फ़ाइल में, RPi.GPIO इंपोर्ट करें Pi पर GPIO पिन को कंट्रोल करने के लिए मॉड्यूल. नीचे दिए गए स्टेटमेंट को import के अन्य स्टेटमेंट:

import RPi.GPIO as GPIO

आउटपुट पिन को शुरुआत में, लो लॉजिक पर सेट करने के लिए, कोड में बदलाव करें. यह करें इवेंट प्रोसेस करने से पहले, main() फ़ंक्शन में:

with Assistant(credentials, device_model_id) as assistant:
    events = assistant.start()

    device_id = assistant.device_id
    print('device_model_id:', device_model_id)
    print('device_id:', device_id + '\n')
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(25, GPIO.OUT, initial=GPIO.LOW)
        ...
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

process_event() में जोड़े गए कोड में बदलाव करें. जब आदेश मिलता है, पिन को हाई लॉजिक स्थिति पर सेट करें. जब बंद आदेश प्राप्त हो, तो लो लॉजिक स्टेट पर पिन करें.

if command == "action.devices.commands.OnOff":
    if params['on']:
        print('Turning the LED on.')
        GPIO.output(25, 1)
    else:
        print('Turning the LED off.')
        GPIO.output(25, 0)

अपने बदलावों को सेव करें और फ़ाइल बंद करें.

सैंपल चलाएं

बदला गया सैंपल कोड चलाएं.

python hotword.py --device-model-id my-model

पहले वाली क्वेरी का इस्तेमाल करें. एलईडी चालू होनी चाहिए.

यह तो बस शुरुआत है. ज़्यादा एट्रिब्यूट और हैंडलर जोड़ने का तरीका जानें.