1. 简介
Hue2MQTT是一个Python应用程序,允许您通过MQTT协议控制飞利浦 Hue智能灯光系统,并实时发布其当前状态。该工具是使用Python 3.8+编写的,具有类型提示和异步支持,使用aiohue库与Hue通信,同时还支持IPv6。
2. 配置
Hue2MQTT的配置文件为".hue2mqtt.toml",以下是默认配置文件的示例:
# Hue2MQTT 默认配置文件
[mqtt]
# 使用host.docker.internal连接到在Docker主机上安装的MQTT代理
# host = "host.docker.internal"
host = "::1"
port = 1883
enable_tls = false
force_protocol_version_3_1 = true
enable_auth = false
username = ""
password = ""
topic_prefix = "hue2mqtt"
[hue]
ip = "192.0.2.2" # 或IPv6:"[2001:db0::1]"
username = "这里放您的密钥"
如果您不知道Hue桥的用户名,您可以使用以下命令进行查找:
hue2mqtt --discover
3. 运行 Hue2MQTT
通常情况下,运行Hue2MQTT非常简单,只需在命令行中运行以下命令:
hue2mqtt
您还可以使用一些选项,例如"-v"用于详细输出,"-c"用于指定配置文件,"-discover"用于发现Hue桥等。
4. 桥的状态
Hue2MQTT将桥的状态以JSON对象的形式发布到"hue2mqtt/status"主题,示例状态如下:
{"online": true, "bridge": {"name": "Philips Hue", "mac_address": "ec:b5:fa:ab:cd:ef", "api_version": "1.45.0"}}
如果"online"为false,那么可以假定桥发布的所有其他信息都不准确。
5. 获取Hue信息
Hue2MQTT将有关Hue状态的信息作为MQTT保留消息发布。当状态发生更改时,将重新发布消息。
- 灯光:有关每个光源的信息将发布到"hue2mqtt/light/{{UNIQUEID}}"主题。这包括有关灯光的状态、属性和制造商信息。
- 组:组表示Hue应用程序中的房间和区域。有关每个组的信息将发布到"hue2mqtt/group/{{GROUPID}}"主题,包括组内灯光的状态、属性和制造商信息。
- 传感器:传感器代表Hue生态系统中的其他对象,例如开关和运动传感器。有关每个传感器的信息将发布到"hue2mqtt/sensor/{{UNIQUEID}}"主题,包括传感器的类型、属性和制造商信息。
6. 控制Hue
您可以通过发布JSON对象到"hue2mqtt/light/{{UNIQUEID}}/set"或"hue2mqtt/group/{{GROUPID}}/set"主题来控制灯光和组的操作。JSON对象应包含要更改的状态值。
7. Docker支持
Hue2MQTT还提供了一个包括Dockerfile和docker-compose示例的Docker工作环境,以方便部署。
8. 与Docker主机连接
要与Docker主机建立MQTT连接(假设localhost是Docker实例),请在配置文件"hue2mqtt.toml"中使用以下设置:
host = "host.docker.internal"
Hue2MQTT允许您通过MQTT控制飞利浦 Hue智能灯光系统,并通过MQTT接收实时事件,无需定期轮询Hue桥接器以获取更改。这使您可以轻松地将Hue集成到自动化解决方案中,以满足各种需求。
回复