Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google api 如何让Google Home(Mini)发布它所侦听的MQTT主题(和代理)?_Google Api_Mqtt_Actions On Google_Google Home - Fatal编程技术网

Google api 如何让Google Home(Mini)发布它所侦听的MQTT主题(和代理)?

Google api 如何让Google Home(Mini)发布它所侦听的MQTT主题(和代理)?,google-api,mqtt,actions-on-google,google-home,Google Api,Mqtt,Actions On Google,Google Home,我有一个Google Home Mini,我正试图将它用作语音到文本的设备。我打算这样做的方式是让设备监听所说的内容,并将该输入发布到MQTT代理,以便我的应用程序监听它 我发现,它以文本的形式返回输入,但它给我的只是确定我可以得到这些数据。关于如何使其将此数据发布为MQTT消息,我几乎没有任何线索 也发现了,但无法使其工作,因为它声明“有一种非常简单的方法可以识别谷歌助手中的自定义短语,[…]我在这里不赘述”。即使是(打开的“创建小程序”)也似乎与IFTTT过时了,因为这些步骤在IFTTT的界

我有一个Google Home Mini,我正试图将它用作语音到文本的设备。我打算这样做的方式是让设备监听所说的内容,并将该输入发布到MQTT代理,以便我的应用程序监听它

我发现,它以文本的形式返回输入,但它给我的只是确定我可以得到这些数据。关于如何使其将此数据发布为MQTT消息,我几乎没有任何线索

也发现了,但无法使其工作,因为它声明“有一种非常简单的方法可以识别谷歌助手中的自定义短语,[…]我在这里不赘述”。即使是(打开的“创建小程序”)也似乎与IFTTT过时了,因为这些步骤在IFTTT的界面中根本无法遵循

以下是该体系结构的快速草图:

有五支箭。第一个显然是一个物理过程。“音频”和“文本”箭头由硬件自动完成。正确的“MQTT消息”已在工作。因此,我需要帮助的是从“Google Home”到“MQTT Broker”的“MQTT消息”箭头


提前谢谢。

简短的回答是你不需要(正如你所描述的那样)

稍微长一点的答案是,首先必须将感兴趣的箭头移动到云上,而不是MQTT消息

Action box需要托管在可公开访问的机器上(例如AWS/GCP/Azure/IBM Cloud),以便Google平台知道在哪里可以找到它

谷歌有两种不同类型的行为,一种用于交互,一种用于控制。你没有提到你想做什么,所以我说不出你到底想要哪一个


谷歌最近宣布了与智能家居设备交互的最新版本,该版本稍微接近您所提供的图表。这只能用于设备控制,但仍然无法发送MQTT消息,它支持HTTP、原始UDP或TCP(您可能可以使用原始TCP实现MQTT客户端,但这将需要大量工作,而且我不相信keep alive会起作用)

我想我得到了您需要的:

  • 将Google助手配置为解析您的语音,然后将其连接到
    ifttt
    (正如我过去所做的那样,它非常容易)以发送HTTP请求
  • 现在,创建一个本地web服务器,该服务器了解来自
    ifttt
    的这些请求,并将它们发布到您的代理

  • 就这些

    我认为你正在寻找的架构是用户->谷歌主页(语音)。。。然后谷歌主页上的行动谷歌(云)。Google上的操作将解析音频,您可以通过DialogFlow调用WebHook应用程序。这将传递文本并执行操作。最后,DialogFlow将返回一个语言字符串,该字符串将作为音频返回到Google Home。。。故事结束了。因此,没有通过MQTT从Google Home调用,但您可以从GCP上的WebHook调用MQTT或直接调用其他应用程序。如果我理解正确,您假设我想使用Google Home在某些设备上执行操作。我的想法是:我所希望的只是我的申请从语音到文本。当然,我可以使用任何麦克风和云API来实现这一点,但我的应用程序无论如何都需要一个Google Home,它并不意味着需要麦克风才能工作。我希望我说得很清楚,哈哈,佩德罗。把你的谷歌家用设备想象成一个麦克风和扬声器,就是这样(在这个故事中)。您可以编写接收音频输入并根据您所说的内容执行“逻辑”的应用程序。这方面的编程通过谷歌上的操作执行,并在云中运行。我想我听到的是,你想说出一些短语/触发器,并对你所说的内容进行一些后端应用程序工作。Google Home设备将接收音频,并将其发送到Google上的Actions,后者将解析音频并使用文本调用应用程序。一切都在云端。我想这对我来说是可行的。但是数据(文本)如何到达应用程序?你看,“应用程序”实际上是一个Lua脚本,它在数字电视应用程序的实际应用程序中工作。因此,这个Lua脚本已经能够接收(和处理)MQTT消息。当然,在这种新方法中它不会发生,但是会发生什么呢?如何将数据发送到此脚本?我喜欢这样。考虑到Google Home和MQTT Broker之间的桥梁对我来说一点都不清楚,这似乎真的是我想要的。您能否提供更多关于如何配置此类操作的见解,以便它可以检索文本并通过MQTT发布?我不想控制任何其他智能家居设备,所以我想它是对话型的。我想通过阅读问题的评论,你会更好地了解我想要实现的目标。谢谢您必须使用构建应用程序,并将其托管在某个地方。谢谢。这是一个很好的答案。我也喜欢它提到本地SDK。我想知道在安装设备后是否需要云实现?例如,我是否可以在某个地方托管服务器、注册设备、配置本地功能、关闭该服务器并仍然能够控制灯光?这样的设置会在Google Home设备重新启动后继续存在吗?工厂搬迁怎么办?或者,在初始设置之后,谷歌服务器是否也需要访问服务器?不,您仍然需要云服务来响应状态请求消息并更新主图表。