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-pushtotalk

Enter tuşuna basın ve aşağıdaki sorguyu deneyin:

Etkinleştir

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

INFO:root:Recording audio request.
INFO:root:End of audio request detected
INFO:root:Transcript of user request: "turn on".
INFO:root:Playing assistant response.
INFO:root:Turning device on
INFO:root:Waiting for device executions to complete.
INFO:root:Finished playing assistant response.

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 pushtotalk.py dosyası, istekleri göndermek ve Google Asistan'dan yanıt alabilir.

cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py

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

device_handler = device_helpers.DeviceRequestHandler(device_id)

@device_handler.command('action.devices.commands.OnOff')
def onoff(on):
    if on:
        logging.info('Turning device on')
    else:
        logging.info('Turning device off')

onoff() içindeki kod, action.devices.commands.OnOff komutunu işler. Bu komutu OnOff öğesinin bir parçasıdır özellik şeması.

Şu anda onoff() tanımı çıkışları konsola kaydedmektedir. Yardımcı kullanır device_helpers.py içinde yanıt JSON işlevini ayrıştırmak ve komutu depolamak için işlevler parametrelerini kullanabilirsiniz. Bu kodu istediğiniz her şeyi istediğinize karar verin.

LED kitiniz varsa LED'in buna karşılık nasıl yakılacağını öğrenmek için okumaya devam edin açma/kapatma komutuna dokunun. Aksi takdirde, aşağıdaki adımları uygulayarak 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

pushtotalk.py dosyasını açın.

cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py

pushtotalk.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. komutu alındığında, pini yüksek mantık durumuna ayarlayın. "off" komutu alındığında, PIN'i düşük mantık durumuna ayarlayın.

device_handler = device_helpers.DeviceRequestHandler(device_id)
GPIO.setmode(GPIO.BCM)
GPIO.setup(25, GPIO.OUT, initial=GPIO.LOW)

@device_handler.command('action.devices.commands.OnOff')
def onoff(on):
    if on:
        logging.info('Turning device on')
        GPIO.output(25, 1)
    else:
        logging.info('Turning device 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 pushtotalk.py

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

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