首页
/ Zigbee2MQTT项目:支持Tuya无源开关K9Z(TY)的技术实现

Zigbee2MQTT项目:支持Tuya无源开关K9Z(TY)的技术实现

2025-05-17 00:23:59作者:郦嵘贵Just

背景介绍

在智能家居领域,Tuya(涂鸦)是一家知名的物联网解决方案提供商,其产品线丰富多样。其中K9Z(TY)是一款无源开关设备,采用Zigbee Green Power技术实现无线控制。这类设备不需要电池供电,通过机械按键产生的能量即可发送信号,具有环保和免维护的特点。

技术挑战

K9Z(TY)设备在Zigbee2MQTT项目中面临的主要技术挑战包括:

  1. 设备使用Green Power协议,与传统Zigbee设备通信方式不同
  2. 设备上报的数据格式需要特殊解析
  3. 设备配对过程需要特定操作

解决方案实现

1. 创建外部转换器

在Zigbee2MQTT的配置目录中创建external_converters/encrypted_gp_switch.js文件,内容如下:

const exposes = require('zigbee-herdsman-converters/lib/exposes');
const utils = require('zigbee-herdsman-converters/lib/utils');
const e = exposes.presets;

const fzLocal = {
    cluster: "greenPower",
    type: ["commandNotification", "commandCommissioningNotification"],
    convert: (model, msg, publish, options, meta) => {
        const commandID = msg.data.commandID;
        if (utils.hasAlreadyProcessedMessage(msg, model, msg.data.frameCounter, `${msg.device.ieeeAddr}_${commandID}`)) return;
        if (commandID === 224) return; // 跳过配对命令

        const lookup = {
            32: "press_1",
            33: "press_2",
            17: "press_3",
        };

        const action = lookup[commandID] !== undefined ? lookup[commandID] : `unknown_${commandID}`;
        return {action};
    },
};

const definition = {
    zigbeeModel: ['GreenPower_2'],
    model: 'GreenPower_2',
    vendor: '',
    description: 'Automatically generated definition',
    extend: [],
    meta: {},
    fromZigbee: [fzLocal],
    exposes: [
        e.action([
            "press_1",
            "press_2",
            "press_3",
        ]),
    ],
};

module.exports = definition;

2. 设备配对流程

  1. 删除已配对的设备(如存在)
  2. 重启Zigbee2MQTT服务
  3. 长按设备配对按钮并同时按下任一开关按钮
  4. 确保设备Zigbee信道与协调器匹配(默认0对应信道11)

3. 预期输出

成功配对后,设备按键操作会产生如下MQTT消息:

press_1 - 第一路开关按下
press_2 - 第二路开关按下
press_3 - 第三路开关按下(如设备支持)

技术原理

该解决方案的核心在于:

  1. 使用Green Power集群接收设备通知
  2. 解析命令ID并映射为可读的动作名称
  3. 处理重复消息避免重复触发
  4. 过滤配对过程中的特殊命令(224)

注意事项

  1. 不同型号的协调器可能需要特殊配置,如Casa SkyConnect需要启用RTS/CTS流控
  2. 部分协调器可能需要通过其他路由器中转才能正常工作
  3. 多路开关设备会报告不同的按键动作,需要根据实际设备调整命令ID映射表

总结

通过上述方法,开发者可以成功将Tuya K9Z(TY)无源开关接入Zigbee2MQTT系统。这种方案不仅适用于该型号设备,其原理也可推广到其他使用Green Power技术的Zigbee设备。随着物联网技术的发展,这类无源设备将在智能家居领域发挥越来越重要的作用。

登录后查看全文
热门项目推荐

热门内容推荐

最新内容推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
176
260
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
854
505
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
182
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
254
295
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
331
1.08 K
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
397
370
note-gennote-gen
一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。
TSX
83
4
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
kernelkernel
deepin linux kernel
C
21
5