我想用大学的Google Home控制树莓派,但是我发现的一切都涉及到服务器和打开端口,而这是我在学校网络中无法做到的。
还有其他方法可以做到吗?
答案 0 :(得分:0)
Google Home无法直接控制同一网络上或通过其他无线协议的其他设备。一切都通过基于Internet的服务进行,并期望通过基于服务器的代理与设备进行通信。该服务器如何与设备通信取决于开发人员。
根据您的需求和能力,您确实有一些选择。
例如,一种选择是使用诸如ngrok之类的工具在设备本身与ngrok在公共Internet上运行的服务之间创建隧道。调用公共https地址的呼叫将发送到设备上本地运行的服务,您可以进行相应处理。
另一种方法是让您的设备连接到服务器并侦听命令更改,然后执行这些更改。如果您不想运行服务器,甚至可以使用类似Firebase的设备-让设备监听real-time database上的更改(可以使用HTTPS端口作为客户端进行通信,因此您没有打开任何东西),并且像Firebase Cloud Function这样的东西充当Action的网络挂钩。
答案 1 :(得分:0)
浏览以下博客文章:http://nilhcem.com/android-things/google-assistant-smart-home
您将必须设置OAuth服务器,但正如@Prisoner说的那样,您可以使用ngrok将设备隧道传输到Internet,但是我建议您使用“ localtunnel” ,因为它提供了免费的静态网址而且设置也很容易。此方法不需要端口转发。
有关本地隧道设置的更多信息:- How to generate fixed url with ngrok
此外,您只需激活一次OAuth服务器即可进行帐户关联&,然后才能将其关闭。
答案 2 :(得分:0)
我能想到的最简单的方法是将Pi暴露给互联网(使用端口转发,ngrok或其他方法),然后设置IFTTT Google Assistant触发器来调用指向该对象的webhook您暴露的树莓派。