我正在尝试使用python编写一个Philips Hue脚本,它需要能够与来自不同网络的网桥通信。我有一个VPS,脚本将在上面运行。在
我已经尝试过类似于phue的思考,但是这些库只能控制同一网络中的灯光。在
我尝试通过添加以下内容来解决错误:
import logging
logging.basicConfig()
但这没用。 脚本如下:
^{pr2}$我想用这个脚本打开灯,但是它给出了这个错误,表明它找不到桥。在
No handlers could be found for logger "phue"
Traceback (most recent call last):
File "hue.py", line 3, in <module>
b = Bridge('192.168.2.3')
File "/usr/local/lib/python2.7/dist-packages/phue.py", line 628, in __init__
self.connect()
File "/usr/local/lib/python2.7/dist-packages/phue.py", line 751, in connect
self.register_app()
File "/usr/local/lib/python2.7/dist-packages/phue.py", line 705, in register_app
response = self.request('POST', '/api', registration_request)
File "/usr/local/lib/python2.7/dist-packages/phue.py", line 660, in request
raise PhueRequestTimeout(None, error)
phue.PhueRequestTimeout
这个问题实际上与Python无关。这是一个常见的网络问题。在
如果你有在互联网上运行的控制脚本来控制灯,比如说,在家里,你需要在你的家庭路由器配置中,打开/重定向从VPS发出的TCP 80端口请求到你的家庭“网桥”的IP,正如我从
phue
模块中看到的那样,它有一个HTTP Rest API。在我也希望他们能用IP来控制家里的设备。如果您使用双方的密钥进行身份验证,则还需要加密通信,否则密钥可能会被读取和窃取。例如,这需要使用HTTPS并将80端口更改为443端口,还需要使用(至少)自签名证书设置HTTPS服务器。在
可能还有其他可能的设置,但这将为您提供足够的信息,以便您对该主题进行更多的研究。在
你也可能会发现反过来做是合理的。在家庭网络中设置一个普通的控制应用程序,使其连接到您的VPS,定期读取配置或写入状态,然后在本地应用。在
这实际上不是网络问题;)
首先192.168.2.3不存在于大坏的互联网上,它是一个“私人地址范围”,仅供内部使用,这样你就不会从你的网络外部攻击它。在
你需要点击你的面向公众的地址(分配给你的路由器WAN0端口的地址,或者任何设备调用公共接口的地址)
这也取决于你的ISP是否允许你从外部世界访问你的外部地址(我的ISP不知道这个地址,但你的可以)
我还将添加一个警告,这是猜测,因为我今天只有我的色调(和宜家)集线器,我还没有时间检查,但许多嵌入式设备只会愉快地与同一个IP子网上的东西交谈。在
正如前一个被调查者暗示的那样,“从互联网上访问HTTP,这种方式是疯狂的”
从本质上讲,HTTPS是唯一可以使用的明智选择。在
在紧要关头,可以使用VPN连接回您自己的网络作为某种最低限度的安全措施。我说minimal是因为即使在我自己的家庭网络上,我也不会选择传递HTTP流量。在
我不是偏执,不管VLAN,访问列表,防火墙和所有最好的意图,网络数据泄露,你不希望任何未加密的东西的凭证(在任何时候)
相关问题 更多 >
编程相关推荐