跳转到主要内容

Python Hue到MQTT网桥

项目描述

Hue2MQTT

Python Hue到MQTT网桥

是什么以及为什么?

Hue2MQTT允许您使用MQTT控制Hue设置,并实时发布当前状态。

  • Python 3.8+带有类型提示和asyncio
  • 使用出色的aiohue库与Hue通信。
  • 使用MQTT控制您的灯光
  • 实时接收事件(例如按钮点击、运动传感器)。
  • 无需轮询Hue网桥以查找更改
  • IPv6支持

配置

Hue2MQTT使用hue2mqtt.toml进行配置。

# Hue2MQTT Default Config File

[mqtt]
# use host.docker.internal to connect to mqtt broker installed on docker host
# 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"  # or IPv6: "[2001:db0::1]"
username = "some secret here"

如果您不知道桥的用户名,可以使用hue2mqtt --discover查找。

运行Hue2MQTT

通常,只需运行hue2mqtt即可。

Usage: hue2mqtt [OPTIONS]

  Main function for Hue2MQTT.

Options:
  -v, --verbose
  -c, --config-file PATH
  --discover
  --help                  Show this message and exit.

网桥状态

Hue2MQTT的状态作为JSON对象发布到hue2mqtt/status

{"online": true, "bridge": {"name": "Philips Hue", "mac_address": "ec:b5:fa:ab:cd:ef", "api_version": "1.45.0"}}

如果onlinefalse,则桥发布的所有其他信息应假定不准确。

如果可用,bridge对象包含有关Hue网桥的信息。

获取Hue信息

Hue状态的信息作为保留消息发布到MQTT。当状态发生变化时,消息会重新发布。

灯光

有关灯光的信息发布到hue2mqtt/light/{{UNIQUEID}},其中UNIQUEID是灯光的Zigbee MAC地址。

例如:hue2mqtt/light/00:17:88:01:ab:cd:ef:01-02

{"id": 1, "name": "Lounge Lamp", "uniqueid": "00:17:88:01:ab:cd:ef:01-02", "state": {"on": false, "alert": "none", "bri": 153, "ct": 497, "effect": "none", "hue": 7170, "sat": 225, "xy": [0, 0], "transitiontime": null, "reachable": true, "color_mode": null, "mode": "homeautomation"}, "manufacturername": "Signify Netherlands B.V.", "modelid": "LCT012", "productname": "Hue color candle", "type": "Extended color light", "swversion": "1.50.2_r30933"}

组表示一组灯光,在 Hue 应用中称为房间和区域。

灯光信息发布到 hue2mqtt/group/{{GROUPID}},其中 GROUPID 是一个整数。

hue2mqtt/group/3 {"id": 3, "name": "Lounge", "lights": [24, 21, 20, 3, 5], "sensors": [], "type": "Room", "state": {"all_on": false, "any_on": false}, "group_class": "Living room", "action": {"on": false, "alert": "none", "bri": 153, "ct": 497, "effect": "none", "hue": 7170, "sat": 225, "xy": [0, 0], "transitiontime": null, "reachable": null, "color_mode": null, "mode": null}}

传感器

传感器表示 Hue 生态系统中的其他对象,例如开关和运动传感器。Hue 网关还使用一些“虚拟”传感器来表示计算值(例如 daylight),但 Hue2MQTT 会忽略这些值。

传感器信息发布到 hue2mqtt/sensor/{{UNIQUEID}},其中 UNIQUEID 是设备的 Zigbee MAC 地址。

例如 hue2mqtt/sensor/00:17:88:01:ab:cd:ef:01-02

开关

{"id": 10, "name": "Lounge switch", "type": "ZLLSwitch", "modelid": "RWL021", "manufacturername": "Signify Netherlands B.V.", "productname": "Hue dimmer switch", "uniqueid": "00:17:88:01:ab:cd:ef:01-02", "swversion": "6.1.1.28573", "state": {"lastupdated": "2021-07-10T11:37:58", "buttonevent": 4002}, "capabilities": {"certified": true, "primary": true, "inputs": [{"repeatintervals": [800], "events": [{"buttonevent": 1000, "eventtype": "initial_press"}, {"buttonevent": 1001, "eventtype": "repeat"}, {"buttonevent": 1002, "eventtype": "short_release"}, {"buttonevent": 1003, "eventtype": "long_release"}]}, {"repeatintervals": [800], "events": [{"buttonevent": 2000, "eventtype": "initial_press"}, {"buttonevent": 2001, "eventtype": "repeat"}, {"buttonevent": 2002, "eventtype": "short_release"}, {"buttonevent": 2003, "eventtype": "long_release"}]}, {"repeatintervals": [800], "events": [{"buttonevent": 3000, "eventtype": "initial_press"}, {"buttonevent": 3001, "eventtype": "repeat"}, {"buttonevent": 3002, "eventtype": "short_release"}, {"buttonevent": 3003, "eventtype": "long_release"}]}, {"repeatintervals": [800], "events": [{"buttonevent": 4000, "eventtype": "initial_press"}, {"buttonevent": 4001, "eventtype": "repeat"}, {"buttonevent": 4002, "eventtype": "short_release"}, {"buttonevent": 4003, "eventtype": "long_release"}]}]}}

光传感器

{"id": 5, "name": "Hue ambient light sensor 1", "type": "ZLLLightLevel", "modelid": "SML001", "manufacturername": "Signify Netherlands B.V.", "productname": "Hue ambient light sensor", "uniqueid": "00:17:88:01:04:b7:b5:20-02-0400", "swversion": "6.1.1.27575", "state": {"lastupdated": "2021-07-10T12:28:17", "dark": true, "daylight": false, "lightlevel": 14606}, "capabilities": {"certified": true, "primary": false}}

控制 Hue

可以通过发布对象到 hue2mqtt/light/{{UNIQUEID}}/sethue2mqtt/group/{{GROUPID}}/set 主题来控制灯光和组。

该对象应包含要更改的状态值的 JSON 对象。

{"on": "true"}

Docker

包含基本的 Dockerfile 和 docker-compose 示例。

连接到 Docker 主机

要建立到 Docker 主机(localhost 是 docker 实例)的 MQTT 连接,请在 hue2mqtt.toml 中使用 host.docker.internal。

host = "host.docker.internal"

项目详细信息


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

hue2mqtt-0.4.2.tar.gz (13.3 kB 查看哈希值)

上传时间

构建分布

hue2mqtt-0.4.2-py3-none-any.whl (14.1 kB 查看哈希值)

上传时间 Python 3

支持者