python - 如何使用 Python 脚本控制飞利浦 Hue 灯
问题描述
我正在尝试使用 python 编写一个 Philips Hue 脚本,该脚本需要能够与来自不同网络的网桥进行通信。我有一个脚本将在其上运行的 VPS。
我已经尝试过像phue这样的想法,但这些库只能控制同一网络中的灯。
我尝试通过添加以下内容来解决错误:
import logging
logging.basicConfig()
但这没有用。这是脚本:
from phue import Bridge
import time
b = Bridge('192.168.2.3')
b.connect()
b.get_api()
b.set_light(1, 'on', True)
我想用这个脚本打开灯,但它给出了这个错误,表明它找不到桥。
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
解决方案
这实际上不是网络问题;)
首先,192.168.2.3 不存在于糟糕的大互联网上,它位于“私人地址范围”内,仅供内部使用,因此您不会从网络外部访问它。
您需要访问您的面向公众的地址(分配给您的路由器 WAN0 端口的地址,或者任何设备称为面向公众的接口)
它还取决于您的 ISP 是否允许您从外界访问您的外部地址(我的 ISP 不对该地址进行 NAT,但您的可能。)
我还要添加一个警告,这是一种推测,因为我今天只有我的 HUE(和 IKEA)集线器,我还没有时间检查,但是很多嵌入式设备只会很高兴地与同一个 IP 子网上的东西交谈。
正如之前的受访者所暗示的那样“从互联网进行 HTTP 访问,这种方式很疯狂”
本质上,HTTPS 是唯一合理的选择。
在紧要关头,可以使用 VPN 连接回到您自己的网络,作为某种最低限度的安全措施。我说最少,因为即使在我自己的家庭网络上,我什至不会选择传递 HTTP 流量。
顺便说一句,我不是偏执狂,无论 vlan、访问列表、防火墙和所有最好的意图如何,网络数据都会泄漏,并且您不希望任何未加密的东西的凭据(在任何时候)。
推荐阅读
- wordpress - Wordpress 错误:您必须登录才能访问管理区域
- django - getaddrinfo: xxURL 从代理 gai_error = 0 获取结果
- python - Sort a list from a file
- java - 黄瓜变量参数单独存储
- javascript - UTC 日期时间到 ES6 中的完整日期
- c# - 为登录到 SSH.NET 中的设备时自动显示的提示提供输入
- python - pandas 数据框到现有的 excel 工作表并用 openpyxl 换行列文本
- javascript - 如何使用 Mongoose ref 连接创建嵌套对象?
- c# - 保留文本框的先前值,直到表单关闭
- python - 有一个意外的关键字参数