设备配置
2026-10-03 开发增量(UNTESTED):新增独立 PCA9685 PWM 类型57及配置/操作/规则表单,按 默认禁用样例与流程 使用。配置启用不等于芯片就绪;运行期准备 OE 后须人工重新上电确认,初始化与启用输出分开。任意配置修订改变可能停止会话,恢复不自动启用。生产和界面代码尚待集中验证,未部署、未实物验收。
当前说明与历史记录
截至2026-10-04,下面的整组暂存、启动恢复、可复用方案导出和换板接线映射已接入软件;precheck r8的Host/Native与新Web页面186项、配置121项已通过,但S3/C6固件容量失败,尚不能作为可发布候选。后续容量修复和同版本完整验证见候选状态。本文带日期的“未测试”“待开发”描述对应当时增量,不能累计为当前未实现事项,也不能把本地通过算作NC04两板迁移或独立用户试用通过。
坏配置、启动失败或维护前的身份/配置核对见故障恢复与配置保全;配置迁移、网络回退与OTA回滚分别适用,不能相互替代。
2026-10-03 21:44开发增量(未测试/发布):迁移工具仍在首次点击时加载;风险文字更精简,但保全、预检及确认步骤保持完整。用户管理与规则脚本表单也随对应页面按需加载,关闭后卸载。资源预算与首次打开行为待统一验证,不代表设备已更新。
开发中:迁移工具按需加载(2026-10-03 21:22,未测试/发布)
进入设备配置页时先显示基本设置;首次点击导入、导出、换板迁移、迁移状态或处理暂存时加载迁移工具及确认表单。加载期间重复点击不会叠加操作,超时可重新点击;离开页面后迟到的加载结果不会自动继续旧操作。原有风险审阅、凭据保全、明确确认和恢复步骤保留。这批优化尚待统一验证,不代表设备已更新或迁移验收完成。
开发中:可复用方案与换板接线(2026-10-03 20:46,未测试/发布)
“原始备份”可能包含现场秘密,应私下保管;“导出可复用方案”只导出功能、外设、执行、屏幕和历史配置,不带设备身份、网络、协议、用户、认证、转换脚本或红外文件。标准凭据字段清空,所有外设/执行规则停用;逻辑ID、名称、静态文本和模板保留,下载前仍须审阅这些内容。包含命令脚本或通用发送的执行文件会拒绝公开,可取消选择该文件后再导出。文件在导出期间变化会停止,原设备配置不修改。
导入方案会进入“换板接线迁移”,读取目标活动板型后逐个源GPIO选择目标GPIO;原编号不自动套用。不同源引脚不能合并,硬禁引脚不可选。逻辑ID、提供器/总线引用、地址/通道保留,全部外设与执行/转换规则暂停;未选来源规则文件时保留目标规则内容并暂停,确认前后发生编辑则拒绝。目标协议仍须与新接线和数据含义逐项核对,索引存在并不证明仪表等价。
整组预检通过且明确确认后只安排下次启动,不自动重启或启用输出。禁用配置中的潜在GPIO/资源冲突仍需修正。重启后须核验接线、数据源与规则含义,再从各页面单独启用;不能把暂存、命令确认当作实物通过。
若开始暂存时掉电导致记录残缺,且固件确认从未进入应用阶段,“处理暂存”可另行确认整目录保全。原证据不删除、当前配置不变,保全后可重新开始迁移;已有保全副本、未知文件或应用中恢复异常则拒绝此路径。普通文件接口不能读取私有暂存。上述新增代码尚未运行统一测试或部署,不是NC04实物/独立试用通过。
开发中:整包迁移与启动恢复(2026-10-03,未测试/发布)
配置包页面改为先整组暂存、目标预检、确认后等待下次重启应用,最多128KiB。服务器检查候选外设/规则/显示/历史引用、功能和资源,并绑定预览摘要;目标当前配置或固件后来变化时拒绝应用。目标设备身份、产品/账号绑定、开发模式、网络与凭据保持不变;页面只能合并允许的名称/位置/描述/时间/日志字段,服务器再次核验。
准备成功不会自动重启。请使用“迁移状态”区分暂存、待重启、已应用、已恢复和冲突;回包丢失时先查询,不直接重发或重启。启动应用途中失败会尝试恢复整组原主文件和备份,无法确认恢复则阻止正常启动。原暂存/恢复副本保留,“清理暂存”须另行明确确认;清理未应用记录会取消该次迁移,但不改变当前配置。
这是待统一测试的源码行为,不是已部署功能或实物验收。未知来源、资源冲突、旧布局/控制绑定和IR双重所有权可能阻止预检;缺接线、模块资料或参数语义证据时不得强行应用。下方逐文件/专用接口说明保留为较早实现记录,整包页面已使用上述新流程;最终HTTP/存储故障/浏览器/固件及NC04仍待验收。
开发中:整份外设配置导入(2026-10-03,未测试/发布)
peripherals.json新增专用预检/导入路径,最多24KB,条目容量取决于目标固件。完整候选检查外设ID、配对/总线/提供器引用、单实例和资源冲突;Modbus仍由协议配置管理。未知字段或启动解析会截断、夹取的值直接拒绝,请在配置页面修正后重新导出,不会悄悄删字段。
目标预检涉及绑带、板载共享、UART0或ADC2/Wi-Fi风险时会再次明确确认。提交使用当前修订并重新预检;保存成功等待重启,待应用期间其它外设配置保存被拒绝,避免旧运行配置覆盖新文件。MCP23017须禁用导入,之后按整组审查流程启用;这不替代现场接线和输出安全确认。丢响应先核验,不重试整包。整份外设往返的代码/回归准备已完成,尚未测试或发布;跨文件事务、完整协议/功能依赖及NC04仍待验收。
开发中:屏幕与点位历史导入(2026-10-03,未测试/发布)
配置导入支持screen_panel.json和point_history.json的专用保存接口:读取目标设备当前修订后单次提交,不采用备份中的旧修订。屏幕文件最大20KB,须带当前touchUiMigration=2标记;旧文件请先在屏幕编辑器检查并重新导出。布局依赖须已在目标设备可用,服务端重新校验。历史配置最大4096字节,最多24个不重复来源,空白名单允许任意来源;仅迁移采集设置,不导入历史样本,禁用会释放运行历史缓存。
保存成功仍可能尚未应用或需重启,页面分别提示。响应丢失、冲突、旧固件或不完整确认时停止,先核验设备再恢复,不自动重试或改用普通上传。此项仍是逐文件操作,不能当作跨文件原子迁移;代码与故障回归待集中测试,尚未部署或实物验收。
2026-10-03 16:36开发补充(未测试/发布):转换规则普通新增/修改/删除/启停也改为先确认磁盘提交、再替换运行配置,与专用导入使用同样上限和校验。失败保留运行规则;丢响应仍须先核验。规则页面会刷新列表,未确认保存的编辑器禁止直接重复提交,须核验后重新编辑。此项仍不提供跨文件事务或多人编辑合并。
开发中:规则脚本专用导入(2026-10-03 16:05,未测试/发布)
选择rule_scripts.json时现在走规则脚本专用导入,要求规则脚本功能可用、已登录并开启开发模式。整份替换最多64条/24KB,保留规则ID;每条须有明确布尔enabled及支持的触发/协议整数。未知字段、重复ID、空启用脚本、非法主题过滤/重定向和字符串复制失败会拒绝。ID/名称/模板/主题的字节上限依次40/128/2048/256;这是导入上限,脚本MQTT离线入队另受512字节限制。
完整候选先提交磁盘,确认成功后才替换运行规则;保存失败保留旧运行规则,启动加载可沿用既有备份恢复路径。成功立即影响之后的转换,不要求重启;已开始的转换和已排队MQTT消息不撤回、不重新转换。预览显示数量和即时应用提示,页面核对文件/字节数/规则数/保存及应用状态,响应丢失或旧固件不支持时停止,不自动改用普通文件写入或重试。
仍未测试或发布,没有操作设备。此功能不是跨文件原子迁移,导入多个文件仍可能部分完成;其它受管文件、目标能力/接线检查及断电组合验收继续待办。详细语义见脚本系统。
开发中:普通分片导入会话(2026-10-03 05:55,未测试/发布)
普通配置上传先建立服务端会话,绑定文件、分片数量和UTF-8总字节,再按顺序上传;普通文件最大24KB。已有上传进行中时不能用另一上传或普通整文件导入覆盖,60秒无新片进展后才可建立新会话。缺少会话的旧页面请求被拒绝;新页面遇到不支持会话的旧固件会停止,不自动降级上传协议。
最后已收片再次到达时,只有内容逐字节一致才返回之前的确认,不重复追加或提交。乱序、换文件、过期会话、不同内容均拒绝;部分写入或提交失败后该会话不再接收。页面仍不会自动重建会话或重放整包;请求结果未知时,应核验设备配置及已确认保存的文件再恢复。会话建立失败或响应丢失不会发送后续配置分片,但可能需等60秒后重新尝试。
成功只代表该文件曾保存、仍待应用,不保证其它配置写入口不会修改它。此增量没有跨文件原子性、跨重启续传或自动回滚;受管外设执行导入保持原专用流程。源码和回归均待集中验证,未生成新固件/Web或在设备导入。
开发中:导入保存确认与断连处理(2026-10-03 05:20,未测试/发布)
普通配置导入只有磁盘提交完成后才确认已保存,不再把延迟缓存视为保存成功。页面检查每片的文件名、序号、累计字节及保存状态;完整成功显示待应用,不能将保存等同运行状态已切换。
普通分片请求断连、超时、被拒绝或响应字段不一致时停止,不自动从首片重新覆盖。设备可能已经写入,尤其最后响应丢失时;应先核验设备配置与已确认文件,再决定恢复。旧固件缺少新增确认字段也会停止,不能据此断言设备没有写入。受管外设执行配置仍使用自身的会话/范围去重流程。
本节05:20回归代码尚未执行,没有新固件/Web发布或实际导入。普通分片隔离后续开发见上方05:55节;全部受管文件导入及跨文件事务/断电恢复尚待完成,逐文件仍可能部分保存。
开发中:导入目标类型与配对输入(2026-10-03,未测试/发布)
同时选择规则与外设文件时,导入预览会阻止已知的动作/目标类型不兼容,例如SD状态动作指向RTC,或UART发送指向普通数字输出;禁用规则也会检查。PWM还区分无源蜂鸣器和扩展器数字通道,不能把PCF/MCP数字通道当作PWM使用。所选DI配对输入若自指、目标缺失或指向输出,也会阻止确认。双向DI配对允许,目标禁用会提示但不代表可用。
未选外设文件或元数据不足时仍显示未解析,不会猜测目标设备配置。提示仅含数量,不展示导入的ID或敏感值。以上为未发布的软件候选,回归代码尚未运行;不能替代目标板卡、参数、接线与资源检查,更不是跨文件原子事务。逐文件导入的部分保存和恢复边界仍须遵守。
开发中:时间来源与失鲜(2026-10-02)
2026-10-03来源记录进一步绑定精确修订,忙锁SNTP回调也使旧记录失效;应用设时遇到更新的观察不再发布本次来源,失败不表示时钟写入已撤销。新增竞争回归仍未运行,SDK设时到回调的实际时间窗口与实物精度尚未验收。
2026-10-03后续候选(UNTESTED):观察到非法时间、超过5秒的未跟踪偏移或单调计时回退后,旧来源记录持续失效;时间回到原值也不会自动恢复“已同步”,须有新的成功同步。页面仅在来源、认证、有效标记、年龄和修订字段完整一致时显示同步状态,并提示来源与采样时的同步年龄;矛盾/旧接口不显示成功。提示不会自行保证页面持续新鲜,采样间未观察到的跳变也不在检测保证内。新增代码/回归尚未集中运行、未部署,不改变现场时间。
主目录新增时间来源/质量展示,尚未集中测试或以本计划部署。联网不再等于已校时:未知、无效、忙碌、超过24小时、时钟被另行改动会分别显示;SNTP/HTTP/MQTT为未认证来源,HTTPS证书验证只表示传输认证,不保证服务器准确或RTC精度。本次校时请求是否成功与当前时间是否仍有效分开判断。
RTC“复制系统本地时间”动作要求当前有有效来源记录,拒绝未知/过期来源;复制时保留配置时区和RTC停走状态。写后来源变化或回读失败可能已写入,不能当作回滚。系统时间、RTC无时区日历、电池保持与真实走时仍分别验收。新接口/页面和新增时区修复均待最后集中测试。
概述: 设备配置管理设备身份、NTP 时间、日志级别和开发环境保护。基础信息保存在 LittleFS 的
/config/device.json中;配置导入仅合并允许的基本信息字段,保留目标身份、产品/账号绑定及开发模式,不等同于恢复整个设备身份。
功能说明
设备配置页面用于管理设备的基本信息和系统级设置,包括设备名称、固件信息、NTP时间同步、调试选项等。

页面中的基础配置用于维护设备身份和时间同步;涉及外设新增、删除、编辑的现场保护项集中在“高级配置”中。
操作指南
- 进入 Web 界面 → 设备配置
- 修改需要的配置项
- 点击 保存 应用更改
- 部分配置修改后需重启设备生效
参数说明
| 配置项 | 说明 | 默认值 |
|---|---|---|
| 设备名称 | 设备显示名称;MQTT ClientId 还取决于协议与身份配置 | fastbee |
| 设备编号 | 平台侧使用的设备标识;留空时按芯片 MAC 自动生成 | FBE + MAC |
| 用户ID (userId) | 用户ID,配网时可通过手机 App 的 /api/wifi/connect 接口下发 | 空 |
| 产品编号 (productNumber) | 产品编号,配网时可通过手机 App 的 extra 参数下发(仅接受正整数) | 0 |
| NTP 服务器 | 时间同步服务器地址 | http://iot.fastbee.cn/prod-api/iot/tool/ntp |
| 时区 | POSIX 时区字符串 | CST-8(UTC+8) |
| 日志级别 | 系统日志输出级别 | INFO |
| 开发环境功能 | 控制外设配置、外设执行、Modbus 子设备的新增/删除/编辑/映射入口 | 关闭 |
高级配置:开发环境功能
设备配置的“高级配置”页提供“开发环境功能”开关。当前出厂模板、缺少该字段的新配置和恢复出厂设置均为关闭;已有设备按其保存值判断。启用或禁用时需要输入当前登录用户的登录密码,确认开启后再编辑外设或规则。
禁用后:
- 外设配置中的新增、编辑、删除、启用/禁用按钮不可用。
- 外设执行中的新增、编辑、删除、启用/禁用以及“执行一次”接口均受开发环境保护;禁用时后端返回
403。 - Modbus RTU 子设备和采集任务的新增、删除、编辑、寄存器映射以及 Modbus RTU 配置保存不可用。
- 设备监控、传感器读取、Modbus 实时控制、网络配置和普通设备信息查看不受影响。
后端接口也会校验该状态。即使绕过 Web 页面直接调用外设、外设执行或 Modbus RTU 配置写接口,禁用开发环境时也会返回 403。
配置示例
修改设备名称
设备名称用于页面和设备展示。MQTT 客户端 ID 依据通信协议与设备身份生成或填写,修改显示名称不保证改变 ClientId。
NTP 时间配置
启用 NTP 后,设备联网尝试同步时间,供日志和每日时间点规则使用。当前定时触发支持间隔和每日 HH:MM,不提供通用 Cron 表达式;联网不等于校时成功,需核对时间来源、有效性和年龄。
常用 NTP 服务器:
http://iot.fastbee.cn/prod-api/iot/tool/ntp— FastBee 官方(默认)cn.pool.ntp.org— 全球 NTP 池(备用)
故障排除
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 时间不正确 | NTP 同步失败 | 检查网络连通性和 NTP 服务器地址 |
| 配置不保存 | Flash 写入失败 | 检查 LittleFS 文件系统空间 |
| 重启循环 | 配置错误 | 使用 AP 模式恢复默认配置 |
配置导入导出完整指南
功能位置: Web 界面 → 设备配置 → 高级配置 → 配置导入/导出
支持的配置类型
下表对应当前整组迁移实现。旧固件及旧 Web 入口需按实际版本核对,不能用历史逐文件导入记录推断当前流程已经在目标设备验证。
| 类型 | 文件 | 说明 |
|---|---|---|
| 配置包 | fastbee-config-*.json | 组合本入口支持的所选文件;“全部”不包括网络、协议及认证等系统文件 |
| 设备信息 | device.json | 可导出;导入仅合并允许的名称、位置、描述、时间、日志等字段,保留目标身份及绑定 |
| 功能配置 | features.json | 运行时功能配置;以目标原有选择为基线,不能将稀疏文件视为增量补丁 |
| 外设配置 | peripherals.json | 本地 GPIO、UART、I2C、传感器、显示屏等外设 |
| 外设执行 | periph_exec.json | 本地自动化规则、触发条件、动作列表 |
| 规则脚本 | rule_scripts.json | MQTT/Modbus RTU 数据转换规则 |
| 屏幕布局 | screen_panel.json | 屏幕配置及其数据源引用 |
| 点位历史配置 | point_history.json | 记录来源与策略,不包含历史采样数据 |
| 红外按键 | ir_keys.json | 取决于目标固件红外能力及文件是否存在 |
当前浏览器统一导入/导出白名单不包含 network.json、protocol.json、users.json、auth.json。网络、MQTT/Modbus、用户和认证使用各自管理入口;目标网络和协议配置可以作为整组预检的只读依赖,但不会随导入包迁入。
device.json 当前只允许合并 deviceName、location、description、enableNTP、ntpServer1、ntpServer2、timezone、syncInterval、logLevel、cacheDuration;其他目标字段保持原值,并由服务端校验。
提示: 统一固件默认启用 FASTBEE_ENABLE_CONFIG_TRANSFER=1,但定制文件 API 默认关闭(FASTBEE_ENABLE_FILE_MANAGER=0)且没有独立页面,4MB 出厂环境关闭 OTA。当前发布环境启用用户管理并使用多用户模式(FASTBEE_SINGLE_ADMIN_MODE=0);用户管理菜单是否显示仍取决于 userAdmin 的运行时状态。
推荐使用方式
日常备份建议优先按类型导出,尤其是:
- 外设执行规则
- 外设配置
- 功能配置及实际使用的屏幕、历史等依赖配置
恢复或调整时,应将相互依赖的文件一起审阅和选择。所选外设、执行等文件按完整候选内容处理,不是自动追加条目;修改已有设备时先在导出基线上合并,保留未涉及内容和 ID。
组合多个模块时使用配置包,但它不是整机镜像,不能迁入网络、协议连接或账户凭据。换板时使用下方可复用方案及接线迁移流程;同一目标调整则走普通整组导入。确认准备状态后单独安排重启,检查新配置的应用或恢复结果,不能把暂存成功等同于运行态已经切换。
如希望用自然语言减少逐项配置,可参考AI辅助生成配置,生成文件后仍通过本页既有流程预检和应用。
为什么不再使用大文件内联导入
ESP32 Web 服务解析表单时会临时占用 RAM。较大的配置文件如果通过 /api/config/transfer/import 一次性内联上传,容易触发内存不足。
分块上传可以限制单次请求的临时占用,但最终配置解析、规则校验和运行态仍需要 RAM;不能据此认为文件大小或规则数量没有限制。统一固件按硬件能力、配置和实时内存决定是否接纳操作,不区分产品档位。
外设执行专用接口与历史验证
专用入口 POST /api/periph-exec/import-chunk 用于单独导入 periph_exec.json,需要有效登录和已启用的开发环境功能。当前设备配置页面即使只选择一个外设执行文件,也使用下方整组迁移流程。本节保留专用 API 约定和 r14 历史验证,仅供使用该接口的工具及对应旧版本查阅,不作为当前页面操作步骤或当前版本通过证据。
- 文件最多 96 KiB(98304 字节),每片
chunk最多 1536 字节,按 UTF-8 文件内容的字节计算;中文字符数量不等于字节数量。 - 表单字段为
session、offset、size、chunk。session为 32 位小写十六进制字符串,offset从 0 开始、size为文件总字节数。 - 同时只接收一个会话,分片顺序追加。相同内容的重传可重用已有进度;不同内容、偏移冲突或并行会话返回
409。未完成会话空闲 60 秒后才允许从偏移 0 开始新会话。 - 上传先写暂存文件,全部收到后进入完整配置校验和原子提交;不能以某个分片返回成功视为整份配置已保存。短写或校验失败保留原主配置。
- 完成响应以
saved=true、applied=false、restartRequired=true表示已保存、尚未应用。需重启设备后加载,导入请求本身不执行规则或控制动作。新文件中已启用的规则可在重启加载后按触发条件运行。 - 96 KiB 是上传上限,不是可运行规则数量承诺。仍受规则数、字段、触发器/动作和当前可用内部 RAM 约束;低内存可能返回
503,暂不接纳操作。 - 最终校验阶段出现
CONFIG_MEMORY_PRESSURE或RULE_SERVICE_BUSY时,返回503和 5 秒重试提示,保留已完整上传的暂存文件,允许相同会话和分片重试。已经提交后不再接收另一份配置,需先重启加载。 - 重启加载出错时,规则查询返回
409 / CONFIG_LOAD_FAILED,避免把加载失败误显示为“没有规则”。请求断开不一定表示提交失败,应核对保存响应、配置回读和重启状态,不要直接重复导入。
r14 验证记录(2026-09-23):相关主机真实方法测试 26 项通过;路由测试另外覆盖权限、短写、乱序、冲突、重传和最终内存保护后恢复。r14 已部署到 ESP32-C3 和普通 ESP32。主机模拟故障测试不能代替实物断电验收,也不表示所有大小的配置都能运行。
| 设备 | 专用导入实测 | 验收边界 |
|---|---|---|
| ESP32-C3(COM4) | 无效配置返回 422 且原文件保留;原有 6727 字节、3 条规则同配置导入成功,单次重启后文件 SHA 和运行规则数量一致 | 重启后首次导出发生传输失败,后续只读回读通过;后续 status 仍出现连接阶段超时而 health 成功,20 次 ping 丢包 85%,需先改善无线链路,不据此宣称网络长时间稳定或任意容量可用 |
| 普通 ESP32(COM16) | 无效配置返回 422 且原有 6 条规则文件保留;新会话 10 个分片完整导入,返回 saved=true、applied=false、restartRequired=true | 单次重启后同 MAC、配置 SHA 和 6 条运行规则回读一致;同窗口 ping 丢包 20%,此前连接中断仍保留,不能据此宣称长期网络稳定 |
导入导出步骤(当前软件候选)
下列步骤对应当前整组迁移页面;软件候选的测试、部署和独立用户验收仍按最新实施记录分别确认。导出备份、暂存成功或预检通过均不表示设备已应用配置。
导出配置
- 进入 设备配置 → 高级配置 → 配置导入/导出
- 现场保全选择 原始备份,在弹窗选择需要的文件。当前只导出白名单中的文件,不是全机备份;名称、模板或脚本仍可能含私有内容,须私下审阅,不能直接作为公开方案。
- 换板复用选择 导出可复用方案,审阅来源板型、驱动和动作声明。方案仅包含功能、外设、执行、屏幕及点位历史配置;设备身份、网络、协议、用户、认证、转换脚本与红外文件不随方案导出。
- 标准凭据字段会清空,外设和执行规则会停用;名称、静态文本和模板仍须人工审阅。命令脚本或通用发送等不支持的内容会拒绝导出,不绕过检查公开原始备份。
导入配置
- 进入 设备配置 → 高级配置 → 配置导入/导出
- 确认已登录且“开发环境功能”已开启,保全目标配置,再选择 JSON 文件或配置包。旧备份或外部文件不代表其中每项都可导入;当前整组候选仅允许 device、features、peripherals、periph_exec、rule_scripts、screen_panel、point_history、ir_keys 对应的 JSON 文件,文件内容合计最多 128 KiB,单文件还受各自限制。网络、协议、用户和认证配置不在此导入范围。
- 审查选中文件的风险与依赖,将需要一起变更的完整候选文件同时选择。普通导入保留文件中的启用意图,已启用规则可在重启后触发。跨板则使用 换板接线迁移;可复用方案会自动进入此流程,须包含完整外设配置并逐项选择目标 GPIO,不能直接套用源板编号。在换板流程中,外设、执行规则和转换规则会停用;未选入的目标规则保留内容并停用。
- 确认接线与保全条件后整组暂存,等待目标设备检查配置、引用、功能及资源。目标身份、网络与凭据保持;device.json 只允许合并名称、位置、描述、时间与日志等指定字段。
- 审阅目标预检与风险确认。准备成功仅表示 待下次重启应用(prepared、applied=false、restartRequired=true),页面不会自动重启或启用输出。
- 若响应丢失、超时或结果不完整,先点击 迁移状态,不要直接重发或重启。确认准备状态、设备身份与现场条件后另行安排重启,再检查已应用/已恢复/冲突状态及配置回读。换板后的外设与规则须逐项复核后单独启用。
配置迁移最佳实践
2026-10-03 后继源码增加可复用方案来源审阅(尚待集中验证、未部署):方案必须带版本、来源板型/修订/芯片、声明驱动和动作清单,以及目标预检、接线重映射、默认停用要求。页面按选中文件显示这些有界声明,缺失或畸形时要求重新导出;不展示配置内的身份或凭据。来源声明不证明目标兼容,未提供的固件/驱动版本明确保持未知,服务端完整候选校验与接线审阅不能跳过。
历史逐文件预览记录
以下保留较早候选的行为与回归数量。其中“逐文件部分保存”“schema 过滤”“未实现跨文件事务”描述当时实现,不适用于上方当前整组暂存与启动恢复流程,也不能据这些历史通过数量宣称当前候选通过。
2026-10-02开发增量(尚未测试、未部署):导入预览按当前选择检查部分外设引用。重复文件名、外设ID重复/空/无效、必需引用为空、选中的外设表缺少目标、扩展器/I2C父类型不符时不能确认;禁用规则同样检查。预览只显示数量,不展示ID或敏感值。没有选择外设文件、Modbus/规则/事件等尚未解析来源会标记未解析,不声称已核验目标设备。改变选择仍需重新确认,同名文件只选择一份时仅导入那份。实际写入前再次检查,预览失败不进入写入;这不取代服务端校验,也未实现跨文件原子事务。下方旧候选通过数量不覆盖本增量;按当前执行顺序,开发完成后集中验证。
2026-10-01 后续候选增加“迁移风险预览”:选择文件后显示条目/显式启用数量、ID 异常、旧 RTC 动作兼容、目标能力未验证及敏感配置风险,不显示口令、令牌、地址或身份值。必须勾选已审查、已保全配置并确认恢复路径,才能继续;改变选择会撤销确认,重新打开不继承同意。缺少预览时拒绝导入,导出流程保持原样。
预览不是跨板卡兼容证明,也不自动修复接线或引用。逐文件导入不是跨文件事务:后续失败时,先前文件可能已保存,不自动回滚。 已启用规则在应用/重启后可能自行执行,必须先确认现场安全。配置字段仍可能根据目标设备 schema 过滤。
当时候选摘要及模板回归 47 项、迁移模态窗双视口 20 项通过,仅离线 mock,无实际设备导入;不能作为当前目标板卡预检、完整依赖解析、原子恢复或独立用户迁移的通过证据。
当前迁移顺序
- 迁移前备份:保全目标当前配置、身份和凭据,确认恢复入口。
- 审阅完整候选:一起选择有依赖的外设、执行、显示与历史配置;换板时重新映射接线并保持停用。目标协议配置保留,须另行核对其仪表地址、数据含义与新接线,不能假设跟随方案迁入。
- 整组预检与准备:修正全部错误和冲突后再次预览并明确确认。未知字段或会在启动时截断的值不能依赖静默过滤通过。
- 确认后安排重启:先用迁移状态确认阶段,再检查重启后的已应用或恢复结果;启动恢复无法确认时不得强行绕过。
- 分别验收:核对数据源、逻辑 ID、显示及规则含义,再在获准条件下逐项启用。GPIO 读回、负载反馈和 NC04 独立用户试用分别留证,未运行项保留 NOT_RUN。
故障排除
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 导入失败 | 配置格式错误 | 检查 JSON 格式是否正确 |
| 导入后外设不工作 | 引脚冲突 | 检查引脚分配是否冲突 |
| 规则不执行 | 触发器配置错误 | 检查触发器类型和参数 |
| 低内存设备导入失败或返回 503 | 当前内存保护拒绝重操作,或请求结果尚未确认 | 先查询迁移状态并保留错误记录;结果未知或已准备时不直接重放整包。核实未应用及恢复路径后按 Retry-After 再安排操作,不为减小文件量拆散必需依赖 |

