1

我已经用 Raspberry Pi 设置了 Google Assistant。我想定义一个自定义操作,但它不起作用。谷歌助理识别句子,但什么也不做。这是一个日志。我如何解决它?

我已经编辑action.py了我的代码

class SwitchControl(object):
        """Control a RC-Socket"""


        COMMAND_ON = 'sudo /home/pi/rcswitch-pi/send 00111 3 1'
        COMMAND_OFF = 'sudo /home/pi/rcswitch-pi/send 00111 3 0'


        def __init__(self, say, toggle):
                self.say = say
                self.toggle = toggle

        def run(self, voice_command):
                try:
                        if (self.toggle == 'ON'):
                                self.say(_('Turning switch on.'))
                                for i in range(10):
                                        subprocess.call(SwitchControl.COMMAND_ON, shell=True)
                        elif (self.toggle =='OFF'):
                                self.say(_('Turning switch off.'))
                                for i in range(10):
                                        subprocess.call(SwitchControl.COMMAND_OFF, shell=True)
                except (ValueError, subprocess.CalledProcessError):
                        logging.exception("Error using codesend to toggle rc-socket.")            self.say("Sorry I didn't identify that command")

    # =========================================
    # Makers! Add your own voice commands here.
    # =========================================

    actor.add_keyword(_('pi power off'), PowerCommand(say, 'shutdown'))
    actor.add_keyword(_('pi reboot'), PowerCommand(say, 'reboot'))
    actor.add_keyword(_('switch on'), SwitchControl(say, 'ON'))
    actor.add_keyword(_('switch off'), SwitchControl(say, 'OFF'))
    return actor
4

1 回答 1

0

好的,最后我设法让它工作了 :) 你需要知道的第一件事是进行本地操作,你需要使用云语音。然后我被卡住了,因为当我启动谷歌助手时在我的终端中我没有看到:[2017-07-26 09:25:20,672] INFO:main:ready... 按 GPIO 23 上的按钮然后说话,或按Ctrl+C 退出...

我只看到开始录制

所以我为 magpi 抓取了一张像素 raspbian 的图像,它正在使用这个发行版,然后我把我的旧 sdcard 和我的 raspbian 一起重新测试,tada 它正在工作!

于 2017-07-26T09:57:45.677 回答