自制zigbee网关接入Homeassistant笔记

背景

近日通过小黄鱼购入了别人自制的zigbee2mqtt网关,踩了很多坑,学习了很多知识。写个笔记记录下来。

设备

zigbee2mqtt自制网关,购买连接不附,需要的可以自己搜索。购入价72含运费。自制网关芯片组为cc2530+esp12。运行系统为tasmota。

  • cc2530负责zigbee网络
  • esp12负责将zigbee数据转为wifi

工作模式主要有两种

  • z2m模式,该模式直接将cc2530的串口指令通过网络tcp协议发送给zigbee2mqtt软件。实际上是zigbee2mqtt监听的。
  • z2p模式,该模式将cc2530串口指令解析后通过mqtt发动到mqtt broker下,由订阅者处理。

自学的一些基本概念

zigbee2mqtt设备

自己学习了一下这个设备,发现网上大部分都是cc25xx芯片通过usb连接ha,其实原本设计就是usb dongle。后来比较著名的就是妖神设计的将esp8266和cc2530连起来,以wifi作为媒介转发,免去受usb必须插在宿主机上的限制。

芯片组上cc25xx差别主要体现在带机量上。目前没有比对过,不评价。

zigbee2mqtt.io 软件

这个是将zigbee设备识别,并转为mqtt协议的软件,支持千种以上设备,通用性较强,界面友好。网址

MQTT

这是一个通用消息软件,详细内容可以自行网上搜索。在homeassistant下作用就是可以通过mqtt discovery自动发现mqtt设备。通常需要一个MQTT broker作为服务器转发消息?;靖拍钌嫌邢⒎⒉颊呒岸┰恼?。消息发布者根据topic(主题)发布消息,订阅者订阅该topic读取消息。

基本网络链路

zigbee设备与自制zigbee网关配对。

  1. zigbee设备 -zigbee> 自制zigbee网关(z2m) -wifi/tcp> Zigbee2mqtt软件 -网络> MQTT broker -> MQTT订阅者(Homeassistant)
  2. zigbee设备 -zigbee> 自制zigbee网关(z2p) -wifi/mqtt> MQTT broker -> MQTT订阅者(Homeassistant)

方案2优点就是无需zigbee2mqtt软件。缺点就是对于mqtt homeassistant需要通过configuration.yaml自己配置设备。
方案1有点就是zigbee2mqtt软件直接可在homeassistant中集成并识别。缺点就是zigbeemqtt无法识别的设备自己还是要手工设置。

我的当前方案

方案1

实施步骤

1. 自制zigbee设备

  1. 初始状态下,通过手机wifi连接自制zigbee设备,手机会根据网络连接检查自动跳出wifi设置界面,本设备如果没有跳出的话可以通过192.168.4.1设置。
  2. 设置完wifi后等待设备重启,手机连回同一wifi网络,检查路由器下设备,找到该设备ip并通过网页访问。
  3. 在设置,??樯柚孟卵≡駔2m。

2. MQTT broker

  1. 在hass.io下,我用的是hassos(推荐,简单,不适合高手),supervisor加载项商店安装Mosquitto broker。
  2. 在配置里设置,自己设置(其实可以不设置)
logins:
  - username: ***
    password: ***
  1. 启动MQTT broker

3. MQTT集成

  1. 在homeassistant集成中,会自动出现MQTT等待配置,如果没有可以新增集成。只需保证enable discovery就行。其他会自行配置。实际上用的用户也不是我们设置的用户。

4. zigbee2mqtt.io

  1. 在hass.io下,supervisor加载项商店点击右上角三点,repositories,添加
    https://github.com/zigbee2mqtt/hassio-zigbee2mqtt
  2. 在hass.io下,supervisor加载项商店安装zigbee2mqtt
  3. 对于本文情况及设备,在配置页面,我只修改了serial,改为自制zigbee网关的ip地址
serial:
  port: 'tcp://***:8880'
  1. 启动zigbee2mqtt,如果配置正确,应该没有报错。我的是以下log
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] socat.sh: executing... 
[10:56:05] INFO: Socat not enabled, marking service as down
[cont-init.d] socat.sh: exited 0.
[cont-init.d] zigbee2mqtt.sh: executing... 
[10:56:05] INFO: MQTT available, fetching server detail ...
[10:56:05] INFO: MQTT server settings not configured, trying to auto-discovering ...
[10:56:06] INFO: Configuring 'mqtt://core-mosquitto:1883' mqtt server
[10:56:06] INFO: MQTT credentials not configured, trying to auto-discovering ...
[10:56:06] INFO: Configuring'addons' mqtt user
[10:56:06] INFO: Previous config file found, checking backup
[10:56:06] INFO: Creating backup config in '/config/zigbee2mqtt/.configuration.yaml.bk'
[10:56:06] INFO: Adjusting Zigbee2mqtt core yaml config with add-on quirks ...
[cont-init.d] zigbee2mqtt.sh: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
[10:56:07] INFO: Handing over control to Zigbee2mqtt Core ...
> zigbee2mqtt@1.18.1 start /app
> node index.js

以上就配置完成

个人经验

  1. 这种配置下zigbee2mqtt比较慢,设备识别也会有错的情况,多取消及配对几次可以成功。
  2. 同理,Permit Join按钮可以允许设备配对,有时候也会失败,等一下在按就行。
  3. 本人使用场景就是将米家贴墙开关的按钮事件通过mqtt触发homeassistant自动化,并通过remote homeassistant连接另一台homeassistant上通过yeelight-bluetooth连接的yeelight 初代蓝牙床头灯来,达到控制灯的开关功能。(何必呢,呵呵呵)家庭智能都是从这货开始的!
  4. 后续购入米家6键场景开关来控制暖气片三通通断。
  5. 补充一点,mqtt里的action需要触发一次才能在ha里正常识别并可作为触发条件使用。
最后编辑于
?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,100评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,308评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,718评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,275评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,376评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,454评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,464评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,248评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,686评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,974评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,150评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,817评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,484评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,140评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,374评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,012评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,041评论 2 351

推荐阅读更多精彩内容