上篇博客 https://mianao.info/2022/08/25/363507 写了我买了 SOFFON ZigBee USB Dongle Plus (93元)作为协调器,京鱼座四件套(99元)设备,还买了涂鸦的 ZigBee 零火开关单开(60元)。
安装完加载项 Zigbee2MQTT 和 Mosquitto broker 后就可以添加 ZigBee 设备了。
添加京鱼座四件套
京鱼座四件套性价比还是挺高的,闲鱼上现在 90 多一套。我开始用 ZHA 集成的时候有很多问题,换了 Zigbee2MQTT 就完美了。
本身 Zigbee2MQTT 是支持京鱼座套件的,可以在这里看到:
https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/devices/jxuan.js
但不知道为什么还有点问题,还好有网友做了补丁:
-
下载:https://share.mianao.info/Blog/jingxuan.js
其代码如下:const fz = require('zigbee-herdsman-converters/converters/fromZigbee'); const tz = require('zigbee-herdsman-converters/converters/toZigbee'); const exposes = require('zigbee-herdsman-converters/lib/exposes'); const reporting = require('zigbee-herdsman-converters/lib/reporting'); const extend = require('zigbee-herdsman-converters/lib/extend'); const e = exposes.presets; const ea = exposes.access; const fzLocal = { WSZ01_on_off_action: { cluster: '65029', type: ['attributeReport'], convert: (model, msg, publish, options, meta) => { const clickMapping = {0: 'release', 1: 'single', 2: 'double', 3: 'hold'}; return {action: `${clickMapping[msg.data[1]]}`}; }, }, }; module.exports = [ // 人体传感器 // 人传配对方式:长按重置键,网关发现后,每隔一秒按一次重置键 { zigbeeModel: ['wall pir'], model: 'PRZ01', vendor: 'J.XUAN', description: 'Human body movement sensor', fromZigbee: [fz.ias_occupancy_alarm_1_with_timeout, fz.battery], toZigbee: [], exposes: [e.occupancy(), e.battery_low(), e.battery()], }, // 无线开关 { zigbeeModel: ['JD-SWITCH\u000002'], model: 'WSZ01', vendor: 'J.XUAN', description: 'Wireless switch', supports: "action, battery, linkquality", fromZigbee: [fzLocal.WSZ01_on_off_action,fz.battery], toZigbee: [], exposes: [e.action(['release', 'single', 'double', 'hold']), e.battery()], }, // 插座 { zigbeeModel: ['00090bdc'], model: 'SPZ01', vendor: 'J.XUAN', description: 'plug', fromZigbee: [fz.on_off, fz.electrical_measurement, fz.metering], exposes: [e.switch(), e.power(), e.power_outage_memory().withAccess(ea.STATE_SET), e.energy()], toZigbee: [tz.on_off, tz.SPZ01_power_outage_memory], configure: async (device, coordinatorEndpoint, logger) => { const endpoint = device.getEndpoint(1); await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'haElectricalMeasurement']); }, }, ]
- 将该文件放到 Zigbee2MQTT 配置目录下
config\zigbee2mqtt
。
- 打开 Zigbee2MQTT 加载项的设置,添加
jingxuan.js
。
- 添加 ZigBee 设备。
打开 Zigbee2MQTT,点击允许添加新设备
;
按下设备重置键或配对键,等待网关 Zigbee2MQTT 自动发现;需要注意的是人体传感器,网关发现后还要每隔一秒按一下重置键,直到配对完成。
添加其他设备
打开 Zigbee2MQTT,点击允许添加新设备
;
涂鸦的 ZigBee 零火开关配对就很简单了,长按开关,等待网关 Zigbee2MQTT 自动发现,配对就完成了。
Zigbee2MQTT 网络图显示终端设备,路由设备,协调器的连接状态。
虽然 Zigbee2MQTT 支持的设备很多,但总有新设备开发出来,添加当前没支持的设备官网有介绍方法:
https://www.zigbee2mqtt.io/advanced/support-new-devices/01_support_new_devices.html#_3-adding-converter-s-for-your-device
添加天气集成
天气预报是很基本的集成,但 HomeAssistant 并没有默认内置一个,所以要自己添加。
首先就是到天气网站申请开发者账号,弄个 API。我申请的是彩云天气的,感觉相对简单一点。
https://dashboard.caiyunapp.com/
简单介绍一下彩云天气预报的安装:
- 进入 HACS 的集成,点击右下角 + 搜索
彩云天气
,安装后重启 HomeAssistant; - 进入 HACS 的前端,点击右下角+搜索Colorfulclouds Weather Card,安装后重启 HomeAssistant;
- 点击系统配置进入设备与服务,右下角添加集成,搜索
colorfulclouds
,填入前面在彩云网站申请的 key,经纬度填写自己的位置;
可在此查询:https://jingweidu.bmcx.com - 在概览里面添加天气预报的卡片 。
更新
现在 HomeAssistant 更新还是比较简单的,只要你访问国外网络通畅,无论是系统还是集成,加载项等,有更新就会有提示,直接点击安装就可以了。
每个月上旬系统更新较为频繁,建议在每个月下旬至少更新一次系统。
修改 SOFFON ZigBee USB Dongle Plus 发射功率
SOFFON ZigBee USB Dongle Plus 发射功率默认是 5,我们总希望信号更好,所以要修改发射功率,其实我在上篇就有,只是没单独写。
SOFFON 官方是给了一个手册,专门写了如何修改发射功率的,但我看了觉得不方便:
方法一,下载固件,修改 znp.syscfg 发射功率值,然后再烧录到设备。给的固件是 hex,我不知道用什么软件能打开了修改,文档也没说;
方法二,通过串口指令修改,但只给了发送的 4 位值:01 21 14 功率值,有没有功能指令不知道,文档也没说;
风险有点大啊,所以我没试。
Zigbee2MQTT 官方给了修改发射功率的配置,只需要在 Zigbee2MQTT 配置选项里添加很方便:
zigbee2mqtt.io/guide/configuration/adapter-settings.html#transmitter-power
advanced:
# Optional: Transmit power setting in dBm (default: 5).
# This will set the transmit power for devices that bring an inbuilt amplifier.
# It can't go over the maximum of the respective hardware and might be limited
# by firmware (for example to migrate heat, or by using an unsupported firmware).
# For the CC2652R(B) this is 5 dBm, CC2652P/CC1352P-2 20 dBm.
transmit_power: 5
from 不吐不快 https://ift.tt/sYSz1We
via IFTTT
评论
发表评论