Komutları Yönet

Cihazınızda özel kodu çalıştırmak için aşağıdaki talimatları uygulayın: Google Asistan'dan komutlara yanıt verme.

Örneği çalıştırma

Artık bir özellik tanımladığınıza ve modeli güncellediğinize göre, Google Asistan'ın uygun içerik için bir Açma/Kapatma komutu gönderdiğinden emin olun emin olun.

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

Şu sorguyu deneyin:

Ok Google, etkinleştir.

Konsol çıkışında aşağıdaki ifadeleri görürsünüz. Belgeyi görmüyorsanız sorun giderme talimatlarını inceleyin.

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}

Bu ifadelerin kaynak kodunda yazdırıldığı yeri bulabilirsiniz.

Kaynak kodunu alma

Artık kendi projenizi başlatmaya hazırsınız:

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

Komut işleyiciyi bulma

Örnek koddaki hotword.py dosyası, istekleri göndermek ve Google Asistan'dan yanıt alabilir.

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

Aşağıdaki işleyici tanımını arayın:

def process_event(event):

Şu anda bu işlev her Cihaz İşlemi etkinlik adını ve parametresini şu satırla değiştirin:

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

Bu kod, action.devices.commands.OnOff komutunu işler. Bu komutu OnOff öğesinin bir parçasıdır özellik şeması. Şu anda bu kod yalnızca çıktıyı konsola yazdırır. Şunları yapabilirsiniz: bu kodu doğrudan hesabınızda istediğiniz işlemi yapacak şekilde belirler. Aşağıdaki bloğu process_event() komutundaki print komutunun altına ekleyin.

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.')

Sonucu görmek için değiştirilmiş kaynak kodunuzu doğrudan çalıştırın.

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

Önceki sorguyu tekrar kullanın:

Ok Google, etkinleştir.

Bir LED'i bağladıysanız görebilirsiniz, aksi takdirde LED'in nasıl yanacağını öğrenmek için okumaya devam edin. açma/kapatma komutuna dokunun. Henüz yapmadıysanız sonraki bölüme geçerek Daha fazla özellik ve işleyici ekleyin.

Sonraki adımlar - Raspberry Pi

Gelen komutu nasıl işleyeceğinizi artık bildiğinize göre örnek kodu değiştirin yakıyor. Raspberry Pi.

GPIO paketini içe aktarma

Yazılımın Genel Amaçlı Giriş/Çıkış (GPIO) pimlerine erişimini basitleştirmek için RPi.GPIO'yu yükleyin ve sanal ortamdaki pakettir.

pip install RPi.GPIO

Örneği değiştirme

hotword.py dosyasını açın.

nano hotword.py

hotword.py dosyasına RPi.GPIO'yu içe aktarın. modülünü kullanabilirsiniz. Aşağıdaki ifadeyi diğer import ifadeleri:

import RPi.GPIO as GPIO

Çıkış PIN'ini başlangıçta düşük mantık durumuna ayarlamak için kodu değiştirin. Bunu yap main() işlevinde, etkinlikleri işlemeden önce:

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() ürününde eklediğiniz kodu değiştirin. on komutu alındığında PIN'i yüksek mantık durumuna ayarlayın. Kapalı komutu alındığında düşük mantık durumuna sabitleyin.

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)

Değişikliklerinizi kaydedin ve dosyayı kapatın.

Örneği çalıştırma

Değiştirilen örnek kodu çalıştırın.

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

Önceki sorguyu kullanın. LED yanacaktır.

Bu daha başlangıç. Nasıl daha fazla özellik ve işleyici ekleyeceğinizi öğrenin.