首页 > 解决方案 > 如何使用 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

标签: pythonnetworkingphilips-hue

解决方案


这实际上不是网络问题;)

首先,192.168.2.3 不存在于糟糕的大互联网上,它位于“私人地址范围”内,仅供内部使用,因此您不会从网络外部访问它。

您需要访问您的面向公众的地址(分配给您的路由器 WAN0 端口的地址,或者任何设备称为面向公众的接口)

它还取决于您的 ISP 是否允许您从外界访问您的外部地址(我的 ISP 不对该地址进行 NAT,但您的可能。)

我还要添加一个警告,这是一种推测,因为我今天只有我的 HUE(和 IKEA)集线器,我还没有时间检查,但是很多嵌入式设备只会很高兴地与同一个 IP 子网上的东西交谈。

正如之前的受访者所暗示的那样“从互联网进行 HTTP 访问,这种方式很疯狂”

本质上,HTTPS 是唯一合理的选择。

在紧要关头,可以使用 VPN 连接回到您自己的网络,作为某种最低限度的安全措施。我说最少,因为即使在我自己的家庭网络上,我什至不会选择传递 HTTP 流量。

顺便说一句,我不是偏执狂,无论 vlan、访问列表、防火墙和所有最好的意图如何,网络数据都会泄漏,并且您不希望任何未加密的东西的凭据(在任何时候)。


推荐阅读