你好,这里是 Oniums
这是一个关于嵌入式固件、无线协议与工程实践的个人站点。 为什么重新开始技术工作很容易留下大量碎片:一段日志、一个临时脚本、某次失败的构建,以及“当时好像是这样解决的”。 如果这些信息没有被整理成可验证的过程,它们很快就会失去价值。因此我希望这里不只是文章列表,而是一层公开、精炼的技术输出:每篇内容都尽量说明问题发生在哪一层、证据来自哪里、结论能够覆盖到什么范围。 这里会写什么 嵌入式固件的设计、调试与验证; Matter、Th...
Telink Matter SDK 入门:Zephyr、Matter 与底层库怎样组成一个固件?
第一次接触 Telink Matter SDK 时,很容易产生一个疑问:Zephyr 在一个仓库,Matter 在另一个仓库,底下还有 HAL、OpenThread 和一些静态库,执行一次 west build 后,它们怎么就变成了一个固件? 先记住最重要的结论: 通常不是先生成一个 Zephyr 固件和一个 Matter 固件,再把两个 BIN 拼起来。Matter、Zephyr、应用和芯片底层会先分别编译成许多目标文件或静态...
BLE GATT 入门:手机连上设备后,到底发生了什么?
打开一个蓝牙调试工具,点下 Connect,页面很快显示“Connected”。这是不是说明手机已经能读到设备数据,也能正常控制设备了? 不一定。 BLE 连接成功,只表示两台设备已经建立了一条无线链路。 后面通常还要发现 Service、找到 Characteristic、确认读写方式、订阅通知,应用数据才真正开始流动。 本文不从复杂的协议分层开始,而是跟着一台简单的 BLE 温度计,看清手机从“发现设备”到“收到温度变化”...
Matter over Thread 入网为什么这么复杂?与 Zigbee 一步一步对照看懂
Zigbee 设备打开允许加入、搜索网络、获得密钥,似乎就能完成入网。Matter over Thread 为什么还要扫码、连接 Bluetooth LE、建立临时安全通道、验证设备证书、写入长期身份、加入 Thread,再切换到 IP 网络重新连接? 这些步骤是在把简单问题复杂化,还是在解决不同的问题? 本文跟随一台刚恢复出厂的门磁传感器,从拆箱一直走到 App 能稳定显示“门已打开”或“门已关闭”。每走一步,我们都回答五个...
SmartThings Edge Driver 发布实战:从本地打包到 Channel 邀请链接
写完 SmartThings Edge Driver 只是第一步。要让测试者通过一个链接安装 Driver,还要完成云端上传、Channel 版本绑定、Hub 注册、Driver 安装和邀请创建。这些动作处在不同层级,任何一步“成功”都不能替代下一步验证。 先理解完整链路一条可复用的发布链是: 12345678910本地源码 -> fingerprint / profile / handler 静态检查 -> ...
电池设备的环境光传感器:IRQ、单次采样与低功耗取舍
在电池供电设备里,环境光传感器通常只需要偶尔提供一个 lux 值。此时“传感器带 IRQ”并不代表 IRQ 一定比定时读取省电。真正决定功耗的是:等待 IRQ 时传感器处于什么模式、转换期间 MCU 能否休眠,以及业务究竟需要周期数据还是实时阈值事件。 先确认 IRQ 的真实语义环境光传感器常见的 IRQ 至少有两种: Data Ready IRQ:一次转换完成后通知 MCU 读取结果; Threshold IRQ:光照超过...
Zigbee 第三方平台适配:ZHA、Z2M 与 SmartThings 的统一方法
同一台 Zigbee 设备在 ZHA、Zigbee2MQTT 和 SmartThings 中可能需要三套适配代码,但协议事实应该只有一份。高质量兼容工作的关键,是先建立产品中立的 Zigbee 行为矩阵,再把它映射到各平台的数据模型。 三个平台分别在做什么 平台 适配载体 主要语言 平台输出 ZHA Device Handler / Quirk Python Home Assistant Entity、De...
ZHA 第三方设备兼容:用 V2 Quirk 精确匹配和映射实体
ZHA Quirk 是 Zigpy 与 Home Assistant 之间的设备适配层。它适合修正非标准描述符、补充厂商 Cluster,或把已有 Zigbee 属性映射成正确的 Home Assistant Entity。 Quirk 的边界一个 Quirk 通常包含: Matcher:识别 Manufacturer、Model 和可选的设备条件; Cluster modification:增加、移除或替换 Cluster...
Zigbee2MQTT 第三方设备兼容:External Converter 开发与验证
Zigbee2MQTT 使用 zigbee-herdsman-converters 把 Zigbee 消息转换成 MQTT 状态和命令。External Converter 可以在不修改正式安装包的情况下开发和验证新设备支持。 开始前先做三件事 检查设备是否已在 Zigbee2MQTT 开发分支获得支持; 把日志级别设为 Debug; 完成设备 interview,并保存 Endpoint、Cluster 与 Basic 信息...
SmartThings Zigbee 第三方设备兼容:Edge Driver 的匹配、映射与测试
SmartThings Edge Driver 在 Hub 本地运行,用 Lua 把 Zigbee 设备行为转换成 SmartThings Capability。兼容工作的核心不是写很多 Handler,而是让 fingerprint、profile、默认处理和设备差异保持一致。 Driver 目录结构一个 Zigbee Edge Driver 通常包含: 1234567891011zigbee-example/├── con...