『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 1183|回复: 30

[技术探讨] 通过 matter 在 HA docker 中接入 aqara 设备

[复制链接]

1

主题

16

帖子

111

积分

注册会员

Rank: 2

积分
111
金钱
95
HASS币
0
发表于 2025-2-11 18:00:50 | 显示全部楼层 |阅读模式
本帖最后由 conanlau 于 2025-2-11 18:05 编辑

1. 背景
我家里去年刚装修好,主要是 Aqara 的设备(60 多个),平时用 Homekit 控制。还有少部分米家设备(10 几个),通过 HA 接入到 Homekit 里凑合着用。用了一年多,整体还是蛮顺畅的,但是日常想让米家和 aqara 做一些联动,发现不是很方便。因为之前已经把 Aqara 桥接到 Homekit 了,反向接入要移除 Homekit 里的 Aqara 桥接,不想重新配置一遍,就一直懒得弄。最近看到 Aqara 官方支持了 matter 桥接,就想动手试试在 HA 里用 matter 把 Aqara 给接入进来。

2. 现状
先说下我家里的现状:
共有 2 个 Aqara M2 网关,各自接了 30+ 设备。目前通过 matter 桥接到 HA 之后,一共展示了 20+ 个设备,80+ 实体。还有相当一部分没接入进来(不确定是我配置的问题导致没识别到,还是官方没支持)。最后我会列一下目前桥接成功的设备明细。
已经接入进来的部分,比如开关、灯光驱动,都可以局域网离线控制,基本没延迟,也能和米家设备顺畅联动,达到了我最开始的目的。

20250211-161558.jpeg

3. 接入方式
写这篇帖子,主要是为了记录一下我的接入过程,也顺便跟大家分享一下我的心得,如果有哪里写的不正确的内容,欢迎大家斧正(过去一年在论坛里泡了很久,看了很多朋友的分享,很感谢大家的无私奉献)

3.1 我家的硬件/软件情况
- 绿联 NAS 4600:ugos pro,debian x86_64
- Home Assistant:基于 docker 部署,无 add-on,core 版本 2025.1.2
- Aqara 网关:M2 POE 版,固件版本 4.3.1

3.2 安装 matter 镜像
因为我部署的 HA 没有 add-on,所以需要单独部署一套 matter 服务(如果安装了 HAOS 的朋友,可以直接在 add-on 里启动 matter 服务)。
部署 matter 服务所需要的镜像是 home-assistant-libs/python-matter-server。需要注意的是,官方提供的镜像是托管在 ghcr 的,而不是 docker hub,镜像官方地址是 https://github.com/home-assistant-libs/python-matter-server/pkgs/container/python-matter-server

在我的 NAS 设备上,绿联官方的 docker app 没法直接下载非 docker hub 的镜像(哪怕我已经单独添加了 gchr 的镜像源也不行),所以我尝试了好几种方式进行下载:
1. 通过 ssh 登录 NAS,直接 sudo docker pull 拉取。我通过旁路由进行了科学上网,但是速度还是太慢了,最终放弃(其实多等一等也能下载完
可以使用 ssh 的朋友直接执行这行命令就就行:
docker pull ghcr.io/home-assistant-libs/python-matter-server:stable

2. 本地执行 docker pull,通过 NAS 上 docker app 的导入镜像功能,将镜像导入进去。我最终是通过这个方式导入完成的,但是要注意,官方对镜像运行的系统是有限制的
我遇到的问题是:本地电脑是 Mac M3,直接 pull stable 拉取到的是 arm64 的镜像,但是我的 NAS 设备是 amd64 的架构,导致我第一次传上去的镜像,根本启动不了。
一开始我也没意识到这个问题,因为容器启动不起来,一行日志都没输出,直接就挂了。看了官方的说明才反应过来,参考官方文档 OS Requirements

screenshot-20250211-163749.png

我最终在本地下载的镜像,使用的是下面的命令,这个 tag 是官方提供的适用于 linux/amd64 的镜像
docker pull ghcr.io/home-assistant-libs/python-matter-server:7.0.1@sha256:e3e9855a5ff669ca421f6440cbb60f8134ca40f9c38f47e54caabf69d91f2222


3.3 部署 matter 容器
如果可以执行 docker 命令(例如通过 ssh),可以直接执行官方给的命令:
(需要提前创建一个 data 目录,和容器内的 data 目录做绑定)
docker run -d \
  --name matter-server \
  --restart=unless-stopped \
  --security-opt apparmor=unconfined \
  -v $(pwd)/data:/data \
  --network=host \
  ghcr.io/home-assistant-libs/python-matter-server:stable

我是通过 NAS 自带的 docker app 创建的容器,关注下面几个内容就行:
1. 添加目录映射
2. 网络使用 host 模式

screenshot-20250211-164617.png

然后就可以正常启动容器了。虽然日志里提示 network 有报错,但实际上容器也正常启动了,我的 HA 里也自动检测到了 matter 集成,所以这个问题我就暂时没管了。

screenshot-20250211-164941.png

3.4 添加 matter 集成
因为我 NAS 的 5580 端口没被占用,所以这里我就没改,直接按提示操作就行了。
screenshot-20250211-165128.png
screenshot-20250211-165137.png

3.5 添加 matter 设备
集成添加好了之后,在 HA 的设备页面,添加 matter 设备,输入 Aqara 网关的 matter 配对码就行了。
- Aqara 网关的 matter 配对码在哪里:Aqara Home App - 网关 - 查看详情 - 通用设置 - Matter 生态 - Matter 配对码
飞书20250211-165754.gif
screenshot-20250211-172005.png

4. 结语
对于有 add-on 的朋友来说,可能整体流程会比较简单,不过由于我的场景下,只能基于 docker 做部署,所以在安装 matter-server 的镜像上花了一些时间。
希望同时拥有 Aqara 以及其他智能家居的朋友,可以愉快的在 HA 里进行互动。


5. 附:
我家现有的设备中,可以通过 mater 桥接接入 HA 的设备情况如下:
已接入:
网关
Aqara M2 2022 款(不包含网关的红外指令)

灯光
Aqara 双色温驱动器 T1 Pro
Aqara 智能恒流驱动器 T1-1
LED 灯泡 T1(可调色温)

开关
智能墙壁开关 H1(零火线双键版)
智能墙壁开关 H1(零火线三键版)
Aqara 无线开关

传感器
光照传感器 T1
高精度人体传感器
动静贴

窗帘电机
智能卷帘伴侣 E1


暂无法接入:
摄像头
智能可视门铃 G4

门锁
Aqara 人脸识别智能门锁 D200


灯光
Aqara 智能调光模块 T1(0-10v)
Aqara 吸顶灯 L1-350

开关
智能墙壁开关 H1(零火线单键版)
智能墙壁开关 T1(零火线单键版)
单路控制器 T1(零火版)
智能温控器 S3
VRF 控制器 T1

传感器
人体传感器 E1
门窗传感器 E1
人体场景传感器 FP2

窗帘电机
Aqara 智能窗帘电机 C3

其他
虚拟子设备-插座

回复

使用道具 举报

2

主题

21

帖子

154

积分

论坛技术达人

积分
154
金钱
128
HASS币
20
发表于 2025-2-11 21:01:34 | 显示全部楼层
其实这个是最完美的方案,延迟低,走局域网,HAOS里能一键开启,加入设备也很简单,但由于Aqara官方的摆烂,支持设备太少了,我一水的D1开关一个也用不了。一开始以为自己哪里没调好,后来看到官方支持清单才知道
回复

使用道具 举报

1

主题

16

帖子

111

积分

注册会员

Rank: 2

积分
111
金钱
95
HASS币
0
 楼主| 发表于 2025-2-11 22:10:58 | 显示全部楼层
bernard3378 发表于 2025-2-11 21:01
其实这个是最完美的方案,延迟低,走局域网,HAOS里能一键开启,加入设备也很简单,但由于Aqara官方的摆烂 ...

是的,目前我试了下延迟挺低的。就是可接入的设备是我全部设备的 1/3,官方有点摆烂。

所以我今天参考另一篇帖子的楼主开发的 Aqara Bridge 插件,走云端的方式,把剩下的设备也导入进来了。目前对延迟不高的场景,基本也够用了。
回复

使用道具 举报

0

主题

3

帖子

30

积分

新手上路

Rank: 1

积分
30
金钱
27
HASS币
0
发表于 2025-2-12 10:08:17 | 显示全部楼层
你好,我是新手一枚。买了绿米m3,用虚拟机部署的homeassiatant,打算用matter链接。但是一直连不上去,是不是需要端口映射的?
回复

使用道具 举报

0

主题

17

帖子

330

积分

中级会员

Rank: 3Rank: 3

积分
330
金钱
313
HASS币
0
发表于 2025-2-12 10:11:31 | 显示全部楼层
感谢楼主的分享!
我强烈建议大家通过虚机部署HA,而不要通过docker。毕竟docker功能受限,没有add-on,有些功能实现起来增加复杂度。其实不管是用NAS还是低功耗主机部署,一般能跑docker的都应该能跑虚机。以我自己为例,我用的是群晖NAS,原来也是通过docker部署HA,后面才转到虚机方式。用下来发现,虚机部署起来也很简单,而且后面还可以一键升级,个人感觉使用起来更方便!
回复

使用道具 举报

1

主题

16

帖子

111

积分

注册会员

Rank: 2

积分
111
金钱
95
HASS币
0
 楼主| 发表于 2025-2-12 13:35:12 | 显示全部楼层
csy1989220 发表于 2025-2-12 10:08
你好,我是新手一枚。买了绿米m3,用虚拟机部署的homeassiatant,打算用matter链接。但是一直连不上去,是 ...

你的 HA 里启动 matter 的服务了吗?虚拟机的话应该 add-on 就有,启动好了之后,你选择添加设备,输入绿米 m3 网关的 matter 配对码就行。
你是卡在哪一步了呢?
回复

使用道具 举报

1

主题

16

帖子

111

积分

注册会员

Rank: 2

积分
111
金钱
95
HASS币
0
 楼主| 发表于 2025-2-12 13:36:21 | 显示全部楼层
twins666 发表于 2025-2-12 10:11
感谢楼主的分享!
我强烈建议大家通过虚机部署HA,而不要通过docker。毕竟docker功能受限,没有add-on,有 ...

能升级是真的好,我现在每次都得先备份,然后停掉容器,重新 pull 镜像再部署,太恼火了。(手动贴一张猴哥烦死了的表情包
回复

使用道具 举报

0

主题

17

帖子

330

积分

中级会员

Rank: 3Rank: 3

积分
330
金钱
313
HASS币
0
发表于 2025-2-12 15:05:06 | 显示全部楼层
conanlau 发表于 2025-2-12 13:36
能升级是真的好,我现在每次都得先备份,然后停掉容器,重新 pull 镜像再部署,太恼火了。(手动贴一张猴 ...

那为啥不转成虚机方式部署呢?方法很简单,docker版先备份,然后新建虚机部署HA,把docker版的备份还原到虚机上新部署的HA就行了,我之前做迁移,不到半小时搞定!
回复

使用道具 举报

1

主题

16

帖子

111

积分

注册会员

Rank: 2

积分
111
金钱
95
HASS币
0
 楼主| 发表于 2025-2-12 15:38:35 | 显示全部楼层
twins666 发表于 2025-2-12 15:05
那为啥不转成虚机方式部署呢?方法很简单,docker版先备份,然后新建虚机部署HA,把docker版的备份还原到 ...

太懒了
回复

使用道具 举报

0

主题

3

帖子

20

积分

新手上路

Rank: 1

积分
20
金钱
17
HASS币
0
发表于 2025-2-12 16:28:34 | 显示全部楼层
conanlau 发表于 2025-2-12 13:36
能升级是真的好,我现在每次都得先备份,然后停掉容器,重新 pull 镜像再部署,太恼火了。(手动贴一张猴 ...

外挂config目录还需要备份吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2025-3-4 19:26 , Processed in 0.294635 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表