Вчера я установил Google Assistant SDK на свой Raspberry Pi 4, я использовал это (https://developers.google.com/assistant/sdk/guides/service/python) учебное пособие от Google и хотел, чтобы GPIO 25 включался и выключался через черту onoff, объяснил в этом разделе (https://developers.google.com/assistant/sdk/guides/service/python/extend/handle-device-commands), но то, как они это сделали, у меня не сработало, и когда я запускаю помощника и говорю «Включить», Gpio не работает. Затем я попытался запустить «pushtotalk.py» напрямую, и он столкнулся с ошибкой, которая говорила, что «device_id» не указан, даже если он работает в остальной части файла. Затем я попытался ввести идентификатор устройства вручную, но теперь я получаю много ошибок, о которых я ничего не знаю.
Вот мой код (оригинал от Google):
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)
А вот и ошибка:
Traceback (most recent call last):
File "pushtotalk.py", line 465, in <module>
main()
File "/home/pi/env/lib/python3.7/site-packages/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "/home/pi/env/lib/python3.7/site-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/home/pi/env/lib/python3.7/site-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/pi/env/lib/python3.7/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "pushtotalk.py", line 425, in main
device_handler.command('action.devices.commands.OnOff')
UnboundLocalError: local variable 'device_handler' referenced before assignment