Home Assistant多实体MQTT设备接入:自动发现与桥接方案详解
玩过 Home Assistant 的人大概率都遇到过这种场景设备越来越多一个网关下面挂着十几个传感器温度、湿度、开关量、能耗全都有。如果还是用老办法一个个在配置文件里手动加实体光是复制粘贴就够喝一壶的更别说后面还要维护、排查、换设备。我之前做一套小型环境监控系统时光一个 485 采集器上就挂了 8 路温度、2 路湿度、4 路开关量那会儿我就在琢磨到底有没有更聪明的办法能让 HA 一次性把这一堆 MQTT 实体全部接进来。试了一圈下来市面上常用的方案其实可以归纳成三条路手动定义、自动发现、桥接转换。这篇内容就写给正在被多实体设备接入折磨的朋友不管你是刚从 YAML 入门的新手还是已经在用 Node-RED 和网关做项目的老手都能从中找到适合自己场景的那条路。我把每一条路背后的原理、适用场景、具体配置和踩过的坑都掏出来讲希望能帮你少走几个月的弯路。1. 先理解底层MQTT 接入 HA 这件事的本质1.1 发布订阅模型与主题树MQTT 的模型其实很朴实它不关心谁发消息、谁收消息中间全靠一个叫 Broker消息服务器的家伙做中转。设备往某个“话题”上发消息需要数据的人订阅这个“话题”就能收到。话题用斜杠分层就像文件夹路径一样。比如balcony/temperature这条话题的意思是“阳台温度”负载可以是{value:25.6}订阅它的人拿到手就能用。用生活来类比MQTT Broker 就像一个公告栏设备把公告贴上去HA 在公告栏登记自己关心的话题一旦有新公告就取下来。谁贴的不重要重要的是话题和内容本身。这比 HTTP 那种一问一答的模式省心太多了——设备不用知道 HA 在哪HA 也不用轮询设备只要 Broker 在线两边随时都能聊。我做项目时最看重的一点就是设备端和 HA 完全解耦哪边重启都不影响另一边消息会暂存在 Broker 里等对方上线再补发。这套模型对多实体设备特别友好。一个设备可以把不同数据挂在不同主题下也可以把一堆数据塞进一条 JSON 消息里用不同的字段区分。HA 这边想接几个实体就定义几条解析规则互不干扰。理解了这个模型后面三种接入方式都会变得很好懂。1.2 HA 的 MQTT 集成到底做了什么在 HA 里配置好 MQTT 集成后HA 本质上变成了一个 MQTT 客户端角色连上 Broker订阅一堆主题收到消息后解析成实体的状态。所以不管用哪种方式接入最后落到实体配置上其实都是在告诉 HA 三件事该订阅哪个主题去拿数据state_topic拿到的负载应该怎么解析value_template设备的在线离线怎么判断availability_topic把这三件事搞明白了MQTT 接入基本就通了一半。剩下那些name、unique_id、device_class之类的参数都是给实体起名字、归类、加小图标的装饰性配置。很多人一开始被一堆 YAML 配置吓住其实剥开来看就是这层逻辑。有一点需要特别注意HA 的 MQTT 集成并不是从设备那里“拉数据”而是被动地“收数据”。所以设备端如果不发消息HA 这边的实体状态就不会变化除非你配合availability_topic做在线判断否则很难区分“设备离线”和“设备只是没更新”这两种情况。这个理解对后面排查故障很有帮助。1.3 三种方式的对比与选型逻辑为了让你对三条路有个整体感觉我先画个对比表方式核心思路适合场景上手难度手动定义在配置里逐条写实体实体少、参数需要精细控制低自动发现设备端发布发现主题HA 自动注册多实体设备、固件支持自动发现中桥接转换通过网关把异质设备转成 MQTT 再接入485/Modbus、不能改固件的存量设备中高选型时我一般先问一个问题设备端能不能改如果是一块自己写的 ESP32 板子改起来毫无压力那自动发现是最爽的如果是买回来的成品传感器只开放了 MQTT 上报功能那就老实手动配置如果是一堆只在串口/485 上报数据的旧设备那只能走桥接转换这条路。搞清楚你的设备“能说什么话”再去选接入方式逻辑就顺了。还有一种常见误区是三种方式只能选一种。其实完全可以混用一个项目里自研板子走自动发现外购传感器走手动配置老 485 设备走网关桥接。HA 对混合接入没有限制反而是最健康的形态。2. 开工前要准备好的地基Broker 与集成配置2.1 Broker 选型与参数建议先别急着接设备Broker 一定要先立起来。我用过 Mosquitto 和 EMQX 两种说下感受。Mosquitto 走轻量化路线资源占用极小一台树莓派跑它绰绰有余。如果你的 HA 是 Home Assistant OS 或 Supervised 方式部署直接在加载项商店里装官方 Mosquitto add-on 就行图形化配置几分钟就能搞定。如果是 Docker 部署跑一个eclipse-mosquitto容器也很快。EMQX 则是功能更全的大家伙自带 Web 控制台能可视化地看主题、消息、客户端连接还支持规则引擎。设备数量上百、或者需要给多个团队划分访问权限的时候EMQX 明显更从容。代价是内存占用高不少低配小主机带它会有点吃力。参数上内网至少要做到三点1883 端口用于 TCP 通信8883 留给 TLS 加密启用用户名密码认证禁止匿名访问为 HA 的账号配置独立的访问权限ACL。匿名访问虽然省事但在多设备场景里一旦某个设备被入侵整个主题树都裸奔连改密码的机会都没有。2.2 在 HA 里完成 MQTT 集成配置在 HA 中配置的路径是设置 → 设备与服务 → 添加集成 → 选 MQTT → 填 Broker 地址、端口、用户名密码。如果你用的是官方 Mosquitto add-onHA 通常能自动发现并填入连接信息几乎不用手动敲配置。配置完成后最好随手验证一下链路。我习惯先用mosquitto_pub往某个测试主题发一条消息再用 HA 的开发者工具去订阅同一个主题看看能不能收到。这一步能快速确认 HA 到底有没有真正连上 Broker而不是只保存了一组配置。还有一个细节HA 的 MQTT 集成建好后会在系统里注册一个mqtt域后面所有 MQTT 实体都挂在它下面。如果你有多个 Broker比如一个内网、一个云端可以配置多个 MQTT 集成HA 会按个管理互不冲突但实体命名上要小心别撞车。2.3 主题规划从第一天就要做好很多人会忽略主题规划觉得不就是个字符串吗结果设备一多就乱了。我强烈建议从一开始就约定统一格式比如homeassistant/{device_type}/{device_id}/{entity_name}/state或者用更简短的设备维度写法device/{device_id}/{entity_name}关键是同一个设备的所有实体共享一个前缀这对接自动发现里的device配置非常方便。我自己项目里用过的典型主题有这些esp32/balcony/temperatureesp32/balcony/humiditygw01/modbus/reg_40101主题命名有几个不成文的规矩尽量别用空格和中文虽然协议支持但排查时很容易因为编码问题抓狂层级别超过 5 层不然看主题树都要滚半天负载统一用 JSON不要有的发纯文本、有的发 JSON不然 HA 端解析规则要写两套平白增加维护成本。主题规划真正的作用是让上下游“对暗号”设备端和 HA 端只需要围绕一个约定好的主题树来收发数据谁改了约定另一端就要跟着改。我在项目里会专门维护一份主题清单文档哪怕只有 10 个实体也要写因为三个月后回来看你根本不会记得当时为什么取名叫reg_40101。3. 方式一手动定义实体适合小批量精细调参3.1 从 configuration.yaml 开始的手动配置先看一个完整的例子。假设我有一个阳台传感器通过 ESP32 上报温度和湿度负载格式是 JSON{t:25.6,h:60}那么配置长这样mqtt: sensor: - name: Balcony Temperature state_topic: esp32/balcony/temperature unit_of_measurement: °C value_template: {{ value_json.t }} unique_id: esp32_balcony_temperature - name: Balcony Humidity state_topic: esp32/balcony/humidity unit_of_measurement: % value_template: {{ value_json.h }} unique_id: esp32_balcony_humidity这里最关键的是value_template。它的作用是从收到的负载里提取需要的值。如果你订阅的主题是esp32/balcony/temperature而负载是{t:25.6,h:60}那{{ value_json.t }}就能取出 25.6。很多新手在这里栽跟头主题订阅对了但字段名写错比如设备端发的是temp模板里却写t结果实体状态一直是不可用。unique_id是另一个不能忽略的参数。它决定了实体在 HA 里的“身份证号”一旦设了之后改名、改单位都不会让实体重新生成历史数据也不会丢。不设unique_id的话每次重启 HA 实体都可能是新的仪表盘上会出现一堆“同名但不同人”的实体。3.2 用 !include 拆分配置把多实体管理起来一个 YAML 文件里写 30 个实体后期想改其中一个的量程都费劲。所以实体数量稍微多一点就该考虑用!include把配置拆开。我最常用的组织方式是这样的# configuration.yaml mqtt: !include mqtt/mqtt.yaml # mqtt/mqtt.yaml sensor: !include_dir_list mqtt/sensors/ switch: !include_dir_list mqtt/switches/ binary_sensor: !include_dir_list mqtt/binary_sensors/然后把每个实体单独拆成一个文件放进对应目录。!include_dir_list会按文件名顺序加载目录里的所有文件文件里直接写实体列表就行。这种方式的维护体验好在哪里举个例子某天你发现阳台温度传感器的量程设置错了只需要打开mqtt/sensors/balcony_temperature.yaml改一行然后重启 HA。其余十几个实体完全不受影响不像以前改一个配置整个 MQTT 配置块都要跟着重启、甚至可能因为一个多余逗号报错。如果你的实体数量已经超过 15 个我建议直接从这种方式起步别再用单文件硬扛。3.3 配置检查与实体验证每次改完配置记得做两件事。第一是配置检查HA 开发者工具 → YAML → 检查配置或者用ha core check命令确认没有语法错误再重启。第二是去开发者工具 → 状态搜索实体名看看状态有没有变成“未知”。手动配置最常见的失败原因就那么几个主题名多打一个斜杠或少写一个层级、JSON 字段名对不上、value_template里的表达式写错。针对这些我建议在排查时先用 MQTT Explorer 或mosquitto_sub直接订阅你写的那个主题看看设备到底有没有发数据、发出来的负载长什么样。很多时候不是 HA 配错了是设备压根没往这个主题发消息。手动定义适合实体数量少、又需要精细控制的场景。数量一旦超过三五十个配置文件维护成本就开始飙升这时候就该考虑自动发现或桥接方式了。4. 方式二MQTT 自动发现设备端批量注册实体4.1 自动发现的原理与配置主题设计MQTT 自动发现MQTT Discovery的思路很像设备端充当“人力资源部”它自己把简历配置信息贴到公告栏上HA 看到后自动创建实体不需要你在 HA 里写任何 YAML。具体格式是设备向下面这个主题发布一段 JSONhomeassistant/sensor/{device_id}/{object_id}/config这段 JSON 里面写清楚这个传感器叫什么名字name、去哪订阅数据state_topic、如何解析value_template等。HA 一旦收到就会自动创建并注册实体。这个机制有两个关键点少一个都会让人抓狂设备发布 config 主题时一般要设置retaintrue。这样 HA 重启后重新连接 Broker 时能立刻收到之前留存的那份公告实体才会自动恢复。如果没设 retainHA 一重启实体就“消失”了只有等设备再次发布 config 才会回来。如果设备想删除某个实体往对应的 config 主题发布一条空消息零负载即可。这个动作用来清理已经下线或废弃的设备非常实用。我见过太多人在论坛里问“为什么我的实体只有刚接电时出现HA 一重启就全部消失”十有八九就是 Discovery 消息没加 retain。这条经验值一个下午的排查时间。4.2 同一设备多实体device 与 object_id 的正确写法一个设备挂多个实体时要把它们“绑定”成同一个 HA 设备不能各管各的。做法是在每个实体的 config JSON 里带上device字段且identifiers的值保持相同。以一块自研的多路采集板为例它上报 1 路温度、1 路湿度和 1 路开关量设备 ID 是gw01。温度实体的配置负载长这样{ name: Room Temperature, state_topic: gw01/data, value_template: {{ value_json.temp }}, unique_id: gw01_temp_uid, device_class: temperature, device: { identifiers: [gw01], name: GW01 Multi Sensor, manufacturer: DIY, model: 485-GW, sw_version: 1.0.0 } }湿度实体也发到homeassistant/sensor/gw01/humidity/configstate_topic可以继续用gw01/data但value_template里取{{ value_json.hum }}。开关实体则发到homeassistant/switch/gw01/relay1/config负载里带上command_topic用于下发指令。这样配置完之后HA 的“设备”页面会只出现一个名字叫 GW01 Multi Sensor 的设备下面挂着三个实体。整个结构看起来就是一个“多实体设备接入成功”的干净状态。两个容易踩雷的细节unique_id不能和其他实体冲突否则 HA 会串实体状态互相覆盖。device.identifiers要全局唯一不能多个设备共用同一个标识符否则 HA 会把它们合并成一个设备。4.3 批量发布发现配置的 Python 脚本设备有几十个实体时手写 JSON 再一条条 publish 到 Broker 实在太痛苦。我建议写一个小脚本在网关启动或配置变更时统一发布。下面这段 Python 用的是paho-mqtt库核心逻辑是循环生成 config 负载并发布import json import paho.mqtt.client as mqtt BROKER 192.168.1.10 PORT 1883 USER ha_user PASS ha_pass DEVICE_ID gw01 BASE_TOPIC homeassistant entities [ {object_id: temp, name: Room Temperature, topic: gw01/data, template: {{ value_json.temp }}, unit: °C, cls: temperature, uid: gw01_temp}, {object_id: hum, name: Room Humidity, topic: gw01/data, template: {{ value_json.hum }}, unit: %, cls: humidity, uid: gw01_hum}, {object_id: relay1, name: Relay 1, topic: gw01/relay1, cmd_topic: gw01/relay1/set, uid: gw01_relay1}, ] client mqtt.Client() client.username_pw_set(USER, PASS) client.connect(BROKER, PORT, 60) device_block { device: { identifiers: [DEVICE_ID], name: GW01 Multi Sensor, manufacturer: DIY, model: 485-GW } } for e in entities: payload {name: e[name], state_topic: e[topic], unique_id: e[uid], **device_block} if e.get(template): payload[value_template] e[template] if e.get(unit): payload[unit_of_measurement] e[unit] if e.get(cls): payload[device_class] e[cls] if e.get(cmd_topic): payload[command_topic] e[cmd_topic] topic f{BASE_TOPIC}/sensor/{DEVICE_ID}/{e[object_id]}/config client.publish(topic, json.dumps(payload), retainTrue) client.disconnect()跑完脚本后HA 几乎秒级创建实体。我实际项目中都是把这段脚本集成到网关的启动流程里网关一开机就发布所有实体公告HA 那边零手工配置。如果你用的是 Tasmota 或 ESPHome 这类固件它们本身就内置了自动发现逻辑开个开关就自动注册实体连脚本都不用写。自动发现适合自己焊的 ESP32 板、能改代码的网关、以及支持自动发现的成品固件。它的最大优势是解耦HA 侧完全不需要维护配置设备上线即注册下线即移除。5. 方式三桥接转换式接入统一异质设备到 MQTT5.1 适用场景设备不原生支持 MQTT 怎么办很多设备的“母语”并不是 MQTT最常见的就是工业 485 总线设备。比如一个 Modbus RTU 采集器总线下面挂着温湿度传感器、开关量模块、电表设备本身只支持 Modbus 寄存器读写。要让 HA 用 MQTT 把它管起来正确做法是在中间加一层桥接485 → 网关 → MQTT → HA Discovery。HA 全程只跟 MQTT 网关聊天完全不关心 485 侧的时序、波特率、CRC 校验。这种方式的本质是“转译”把设备协议翻译成 MQTT 消息好处有两点——设备本身保持原样不用改周期、不用刷固件MQTT 侧的数据格式完全由你定义接入 HA 的实体想怎么映射都行。5.2 485 设备网关桥接实战读取与下发指令用一个 8 路温度采集器举例。网关可以是支持 Modbus 转 MQTT 的成品硬件也可以是自己用串口服务器加脚本实现循环读取 Modbus 寄存器寄存器 40101第 1 路温度寄存器 40102第 2 路温度以此类推网关把读到的值包装成 JSON发布到 MQTT 主题gw01/modbus/temp_1 {value: 25.6}HA 侧可以采用第 4 章的自动发现方式接收只是发现消息由网关来发。本质上还是那套 Discovery 机制只不过发布 config 的主体从“设备”变成了“网关”。这里有一个热词里经常被问到的场景怎么通过 MQTT 给 485 设备发指令 以写入一个继电器寄存器为例完整链路是HA 里的switch实体把ON命令发布到gw01/relay1/set也就是command_topic。网关订阅这个主题收到消息后通过 Modbus 写寄存器指令比如写寄存器 40201 值为 1。设备执行动作后网关再把寄存器状态读回来通过gw01/relay1state_topic反馈给 HA。这里最关键的一点是command_topic和state_topic是两个主题不能混用一个。前者是 HA 到设备的“下行指令通道”后者是设备到 HA 的“状态反馈通道”。混用会导致指令发出去之后状态始终不更新因为 HA 只认state_topic上的消息。在 485 设备下发的实际项目中还要注意时序Modbus 是主从协议从站不会主动上报必须由网关轮询。所以即使 HA 这边发了写寄存器指令网关也要在下一个轮询周期里把状态读回来才能反馈。这个延迟通常几百毫秒到几秒不等测试时别误判为故障。5.3 桥接层的数据处理与实体映射桥接层最容易出问题的不是 MQTT 部分而是协议解析。这里分享几个我踩出来的核心要点。第一字节序和大小端问题。485 设备的寄存器值有各种编码方式16 位整型、16 位浮点、32 位长整型还有 AB 字节序和 BA 字节序的区别。网关解析时如果不小心温度变成几千度都是可能的。建议先在网关调试口或串口工具里抓一帧原始报文确认字节序再写解析逻辑。第二寄存器映射表一定要做成配置文件。把“寄存器地址 → 含义 → 量程 → 倍率”全部列出来方便排查。比如某路温度寄存器原始值是 2600实际温度是 26.00倍率 0.01这种换算逻辑最好在网关或者脚本里算好输出标准单位不要让 HA 去算。HA 里做模板计算一是性能浪费二是调试不方便。第三上报频率要控制。485 采集器通常按秒或按分钟扫寄存器上报 MQTT 的频率要权衡。8 路温度每 2 秒上报一次、每路一条消息流量还能接受如果是 32 路能耗数据最好采用批量 JSON 上报——一路消息带所有字段HA 侧用value_template分别取值这样总流量能省一大半。第四硬件层面的隔离。485 总线属于长线传输现场往往有电机、变频器这类干扰源。桥接网关选型时优先带隔离的方案485 总线上加终端电阻A/B 线不要反接。看起来是工控问题但它会直接表现为 HA 数据偶尔抖动或丢失排查起来很头大。这种方式对工程能力的依赖最大但也最能打生产环境。我做过一个车间环境监测项目用一台 Modbus 网关把配电柜里的电表、温湿度传感器、烟雾报警器全部转成 MQTT统一接入 HA 面板。实体数量 60 多个HA 端零 YAML全靠网关启动时跑一遍自动发现脚本整条链路跑了大半年没出过配置事故。6. 实战中避不开的坑与排查记录6.1 高频问题速查表问题现象可能原因解决办法HA 重启后实体消失Discovery 消息没 retainconfig 主题发布时设置 retaintrue实体状态一直不变state_topic 或 JSON 路径写错用 MQTT Explorer 看实际数据流量一个设备出现多个“同名”实体缺少 device 字段绑定config JSON 里加 device.identifiers改实体名后旧的还在unique_id 缺失或变了设置唯一 unique_id改名用 name 字段下发开关指令没反应command_topic 配置错或网关没订阅检查 topic 配置和网关侧日志数值突然暴涨或变成负数字节序、数据类型解析错误抓原始报文核对大小端和数据类型实体显示不可用availability_topic 没有周期心跳设备端加心跳发布比如 30 秒一次数据偶尔丢失或抖动485 干扰或上报频率过高检查 485 总线隔离、终端电阻降低上报频率6.2 很少有人注意的细节与建议第一个细节是主题权限。有人为了方便把 HA 的 MQTT 账号权限设置成全局读写结果就是项目里其他设备也能往 HA 的command_topic发指令这在安全上是很大的漏洞。建议在 Broker 里给 HA 账号配上 ACL只允许它读设备专属的/state主题、写设备专属的/set主题把控制权限尽量收窄。第二个细节是自动发现的消息生命周期。设备离线后只要 retain 消息还在HA 就不会自动删除实体。所以设备端在关机或断连前最好主动发布一条空 config 来让 HA 清理实体。否则你可能会在 HA 里看到一堆“幽灵实体”它们在设备已经退役后还一直存在甚至会干扰后续新设备的注册。第三个细节是value_template的写法。很多人以为模板里只能写一个字段路径其实可以做简单运算。比如{{ value_json.temperature / 10 }}就能完成倍率换算。但正如前面说的能不做尽量别在 HA 里做把问题在前端设备解决会让整套系统更可维护。第四个细节是 485 设备写入反馈慢的问题。在 HA 里给开关实体配置optimistic: true可以做乐观更新UI 上点一下立刻切换状态手感很好。但要注意这个只是“假装”切换了实际设备没执行或执行失败时状态会在下一次轮询后变回来。重要控制场景比如门锁、消防设备不建议开乐观更新老老实实等真实状态反馈。最后一个建议也是我在项目里反复验证过的正式接入前先画一张主题规划表。把所有设备列出来确定每类实体的 topic 格式、负载字段、上报频率然后统一写进一份文档。有了这份文档无论你用三种方式中的哪一种后面的排查和扩展都会顺畅很多。我个人在实际操作中的体会是方式一适合学习起步方式二适合自己的设备方式三适合工程项目。真正稳定跑了大半年、几乎没再动过的还是自动发现加桥接的组合设备端发 JSON网关负责转译和注册HA 只管收状态、发指令中间不掺和配置文件事故。如果你也被一堆 MQTT 实体折磨过先把主题规划和设备清单理顺再决定用哪条路多数坑其实都是可以提前绕开的。

相关新闻

agent-skills实战指南:从技能拆解到智能体稳定落地

agent-skills实战指南:从技能拆解到智能体稳定落地

1. agent-skills是什么,为什么智能体突然需要一门"技能"做了两年多AI Agent相关的工作,我越来越明确一个判断:智能体应用能不能落地,关键不在模型有多强,而在它到底"会做什么"。所谓"会做什么…

2026/10/7 4:20:15 阅读更多 →
Claude API本地内存缓存方案设计与实践

Claude API本地内存缓存方案设计与实践

我无法根据当前输入生成符合要求的博文。原因如下:项目标题为 "claude-mem",但项目正文、关键词、摘要描述全部为空;所谓“相关热搜词”和“最新网络热词”仅重复出现“claude-mem”,无任何实质内容支撑;没有…

2026/10/7 4:20:15 阅读更多 →
JSP+Bootstrap+MySQL停车管理系统设计与实现

JSP+Bootstrap+MySQL停车管理系统设计与实现

简介:本资源是一份面向计算机专业本科生与初级开发者的课程设计文档,聚焦智能停车管理系统的全流程实现,旨在解决城市停车难问题并提升停车场信息化管理水平。文档完整覆盖可行性分析、需求分析、总体与详细设计、系统实现及测试等软件工程核…

2026/10/7 4:20:15 阅读更多 →

最新新闻

C#高并发Socket实战:SAEA模型、粘包拆包与性能避坑指南

C#高并发Socket实战:SAEA模型、粘包拆包与性能避坑指南

简介:这份C#高并发SOCKET服务器与客户端完整工程实例源码,面向希望深入理解网络通信底层机制的.NET开发者,尤其适合需要掌握多线程与异步编程模型的进阶学习者。资源包共431个文件,约4.1MB,以cs源代码、csproj项目文件…

2026/10/7 4:54:43 阅读更多 →
Go 并发编程:全面解析 goroutine 泄露的根源、排查与修复

Go 并发编程:全面解析 goroutine 泄露的根源、排查与修复

1. 先搞清楚:goroutine 泄露到底是个什么“病”写了几年 Go,我最大的感受是:goroutine 轻量是真轻量,但一旦用不好,它带来的麻烦一点也不比线程少。很多人一听到 goroutine 泄露,第一反应是“内存占用高”&…

2026/10/7 4:54:43 阅读更多 →
Avaya CM 5.2 SIP中继配置与Diversion头实战指南

Avaya CM 5.2 SIP中继配置与Diversion头实战指南

简介:本资源是一份面向企业通信系统管理员与VoIP技术实施人员的Avaya SIP配置权威指南,聚焦Avaya Aura™ Communication Manager 5.2版本核心功能落地,解决SIP协议集成、呼叫路由优化及跨终端协同等典型部署难题。文档为单文件PDF格式&#x…

2026/10/7 4:54:43 阅读更多 →
Ollama三个类Jev决策模型实测:免费本地部署与推理优化指南

Ollama三个类Jev决策模型实测:免费本地部署与推理优化指南

最近Ollama模型库悄悄上架了一组新的决策模型,对外统一称为“三个类Jev决策模型”,最让人心动的两点:完全免费、完全本地运行。不用注册任何云服务,不消耗API token,断网状态下照样能跑决策推理。我第一时间拉下来&…

2026/10/7 4:54:43 阅读更多 →
零基础搭建团队AI知识库:RAG全流程拆解与实战指南

零基础搭建团队AI知识库:RAG全流程拆解与实战指南

最近被问得最多的一个问题,基本可以排到前三:“零基础怎么搭一个属于自己团队的 AI 知识库?”问的人里有做运营的、有搞行政的、有刚开始学编程的,也有想给公司弄一套内部文档助手的研发。大家的需求其实非常一致:手头…

2026/10/7 4:54:43 阅读更多 →
黑盒测试之完整性测试:从功能清单到端到端流程全攻略

黑盒测试之完整性测试:从功能清单到端到端流程全攻略

黑盒测试里有一个经常被低估、但实际作用非常大的测试类型,就是完整性测试。它不做代码层面的审查,也不盯某一个函数内部的逻辑是否正确,而是站在用户入口处,把整个系统当成一个不透明但可操作的黑箱子,从登录到退出、…

2026/10/7 4:53:43 阅读更多 →

日新闻

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:01:58 阅读更多 →
用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →
芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 7:15:40 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 5:29:09 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 6:26:51 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 8:21:32 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 4:21:51 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 1:18:13 阅读更多 →