# 智控盒固件 **Repository Path**: cry-quietly/SmartPowerBox ## Basic Information - **Project Name**: 智控盒固件 - **Description**: 智控盒采用ESP32S3为核心,实现交流供电,同时支持两路交流输出控制。该设备有丰富的定时任务,精美的本地网页操作界面,同时设备端操作功能也很丰富,支持MQTT远程控制,也支持简单的接入到智能家居homeassistant中,实现更多的操作方式。 本项目硬件全开源。动手能力强的朋友可以自己制作。 - **Primary Language**: 其他 - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-03-14 - **Last Updated**: 2026-04-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智控盒说明书 版本:26.3.1701 适用固件版本:H26.2.10 ## 1 模式选择 ### 📴完全离线 此模式下,设备仅当作本地设备使用,不接入互联网,也不接入本地网络,设备自身也无WIFI热点。 设置方法:菜单-->网络设置-->WIFI功能设置为关,然后向下浏览选择“重启设备生效”即可。 ### 🛜本地使用 此模式下,设备自身启用WIFI热点,其它设备(如:手机、电脑、平板等)可以通过连接设备WIFI热点,设置和控制设备。 设置方法:菜单-->网络设置-->AP模式设置为开,WIFI功能设置为开-->重启设备生效 。设备重启后,可以连接到设备WIFI热点,热点名称:SSPRO_(设备ID),默认密码:87654321。然后使用浏览器访问:http://192.168.4.1,输入账号密码登录即可进入管理中心,默认账号:admin,默认密码:12345678。 ### ⓂMQTT模式 MQTT默式下,设备连接到MQTT服务器,其它设备可以通过订阅设备主题来获取设备状态,也可以通过发送控制信息到设备控制主题来控制设备。 设置方法: 1️⃣ 打开本地模式:菜单-->网络设置-->AP模式设置为开,WIFI功能设置为开-->重启设备生效 。 2️⃣ 配置服务器信息:电脑或手机等设备通过连接WIFI热点访问http://192.168.4.1,登录成功后到 **设置** 界面,浏览到 **WIFI设置** 填写可以连接到服务器的WIFI网络名称和密码。然后到 **服务器配置** 填写MQTT服务器地址(如:mqtt://8.8.8.8)、端口(如:1883)、用户名和密码。再到 **系统设置** 界面打开 **WIFI开关、MQTT功能开关**,保持 **HA 支持开关** 关闭状态。最后点击 **保存设置** ,提示成功是否需要重启时,选择重启。 3️⃣ 控制设备通过登录MQTT服务器,参考说明书 **MQTT通信协议** 进行控制。 ### ODFHome Assistant 模式 该模式下,可以连接到Home Assistant,设备上电开机后Home Assistant的MQTT集成能够自动发现该设备。设备名称为 **系统设置** 中设置的 **设备名称** 加**_(设备ID)** 。 设置方法: 1️⃣ 配置Home Assistant:设置-->设备与服务-->MQTT-->竖向3点-->重新配置-->设置与设备同样的MQTT服务器,然后提交。 2️⃣ 打开本地模式:菜单-->网络设置-->AP模式设置为开,WIFI功能设置为开-->重启设备生效 。 3️⃣ 配置服务器信息:电脑或手机等设备通过连接WIFI热点访问http://192.168.4.1,登录成功后到 **设置** 界面,浏览到 **WIFI设置** 填写可以连接到服务器的WIFI网络名称和密码。然后到 **服务器配置** 填写MQTT服务器地址(如:mqtt://8.8.8.8)、端口(如:1883)、用户名和密码。再到 **系统设置** 界面打开 **WIFI开关、MQTT功能开关、HA 支持开关** 。最后点击 **保存设置** ,提示成功是否需要重启时,选择重启。 4️⃣ 进入Home Assistant查看设备。设置-->设备与服务-->MQTT-->设备,可以看到自动添加进来的设备,选择设备可以查看设备信息。**设备信息界面点击访问可以打开设备控制界面**,前提是需要控制设备(如:电脑、手机、平板等)与该设备在同一个网络下。 ## 2 快捷 1️⃣ 快速重启。 ​ 主界面下,长按 **日志** 键约3秒放开,弹窗提示 “重启设备?”,选择“确定”,设备将重启。 2️⃣ 快速锁屏(关闭屏幕)。 ​ 主界面下,长按 **菜单** 键约3秒放开。锁屏后,点击任意按钮可以唤醒屏幕。需要注意的是:如果在 菜单-->显示设置中设置了打开了 **密码保护** 的话,请记住 **当前密码** ,否则唤醒后无法进入主界面。若忘记密码,只能通过登录网页管理中心查看和修改。 ## 3 OTA升级 OTA升级可以通过网页控制中心上传固件文件的方式,更新到最新版本,也可以通过此方法回退到旧版本。 OTA升级方法:登录到网页管理中心-->OTA升级-->选择正确的固件文件(bin格式)-->上传固件-->弹出确认窗口,选择确定-->等待上传完成-->提示上传成功,设备将自动重启,如果提示失败,请重新尝试。 重要提示:上传固件前,请确保固件的来源是安全的,否则可能造成设备无法使用或硬件故障。 ## 4 MQTT 通信协议 ### 主题 * 状态主题 ```` device/SmartPowerBox/设备ID/status ```` * 遗嘱主题 ```` device/SmartPowerBox/设备ID/will ```` * 控制主题 ```` device/SmartPowerBox/设备ID/command ```` ### 遗嘱内容 ````json // 固定内容 { "offline": true } ```` ### 状态内容 状态会定时发送,同时所有操作都会回复状态,如果需要即时查询,可以发送任意数据,建议发送空对象{}。设备返回状态如下模板: ````json { "name": "智控盒测试1号", // 设备名称 "version": "H26.2.10", // 固件版本号 "signal": 51, // wifi信号百分比 "tasks": [ // 定时任务数组 { // 定时任务对象 "taskID": 1773374010, // 定时任务ID "enable": false, // 该任务是否启用 "taskName": "每月任务", // 定时任务名称 "Time": "18:00", // 执行时间,时间格式HH:MM "frequency": 3, // 执行频率 0=单次 1=每天 2=按星期 3=按月 "weekMask": 0, // 星期标识:weekMask(1字节,bit0=周日,...,bit6=周六,bit7=全选) "monthMask": 16778241, // 日期标识:monthMask(4字节,bit0=1号,...,bit30=31号,bit31=全选) "CCH1": 1, // 通道1的开关 -1表示不操作当前通道 0-关闭 1-打开 "CCH2": 1 // 通道2的开关 -1表示不操作当前通道 0-关闭 1-打开 }, { // 定时任务对象2 "taskID": 1773374056, "enable": false, "taskName": "星期任务", "Time": "23:00", "frequency": 2, "weekMask": 42, "monthMask": 0, "CCH1": 0, "CCH2": 0 } ], "stamp": 1773387536, // 时间戳,单位:秒 "tem": 28.88031005859375, // 温度,单位:℃ "humi": 30.331611633300781, // 湿度,单位:% "channel_1": { // 通道1数据 "vol": 229.47784423828125, // 电压,单位:V "cur": 0, // 电流,单位:A "watt": 0, // 功率,单位W "CCH1": 0, // 开关状态 0=关 1=开 "power": 0.00018689382704906166 // 功率,单位:千瓦时 }, "channel_2": { // 通道2数据,值含义同通道1数据 "vol": 229.47784423828125, "cur": 0, "watt": 0, "CCH2": 0, "power": 0 } } ```` ### 控制方法 * 开关控制方法 同时控制两个通道,向控制主题发送以下JSON数据: ````json { "CCH1": 1, // 通道1控制 0=关 1=开 "CCH2": 1 // 通道2控制 0=关 1=开 } ```` 如果只需要操作一个通道,则只发送一个通道的数据即可,如下只控制通道2: ````json { "CCH2": 1 // 只控制通道2打开 } ```` * 定时任务增删改 添加定时任务,按以下模板向控制主题发送JSON数据: ````json { "tasks": [ // 任务数组,一次支持多个一起发送 { // 新增任务对象 "taskID": 1773374044, // 任务唯一ID,使用时间戳,单位:秒 "enable": false, // 是否启用任务 "taskName": "测试一个MQTT任务", // 任务名称,任务名称不宜过长 "Time": "19:00", // 任务执行时间,格式:HH:MM "frequency": 3, // 执行频率 0=单次 1=每天 2=按星期 3=按月 "weekMask": 0, // 星期标识:weekMask(1字节,bit0=周日,...,bit6=周六,bit7=全选) "monthMask": 16778241, // 日期标识:monthMask(4字节,bit0=1号,...,bit30=31号,bit31=全选) "CCH1": 1, // 通道1的开关 -1表示不操作当前通道 0-关闭 1-打开 "CCH2": 1 // 通道2的开关 -1表示不操作当前通道 0-关闭 1-打开 } ], "flag": 0 // 本次操作类型 0=添加 1=修改 2=删除 3=替换(删除所有旧定时任务,替换为新任务列表) } ```` 修改任务发送以下数据: ````json { "tasks": [ // 任务数组,一次支持多个一起发送 { // 修改任务对象 "taskID": 1773374044, // 要修改的任务ID "enable": false, // 是否启用任务 "taskName": "测试一个MQTT任务", // 任务名称,任务名称不宜过长 "Time": "19:00", // 任务执行时间,格式:HH:MM "frequency": 3, // 执行频率 0=单次 1=每天 2=按星期 3=按月 "weekMask": 0, // 星期标识:weekMask(1字节,bit0=周日,...,bit6=周六,bit7=全选) "monthMask": 16778241, // 日期标识:monthMask(4字节,bit0=1号,...,bit30=31号,bit31=全选) "CCH1": 1, // 通道1的开关 -1表示不操作当前通道 0-关闭 1-打开 "CCH2": 1 // 通道2的开关 -1表示不操作当前通道 0-关闭 1-打开 } ], "flag": 1 // 本次操作类型 0=添加 1=修改 2=删除 3=替换(删除所有旧定时任务,替换为新任务列表) } ```` 删除任务按以下模板发送数据: ````json { "tasks": [ // 任务数组,一次支持多个一起发送 { // 删除任务对象 "taskID": 1773374044, // 要删除的任务ID "enable": false, // 是否启用任务 "taskName": "测试一个MQTT任务", // 任务名称,任务名称不宜过长 "Time": "19:00", // 任务执行时间,格式:HH:MM "frequency": 3, // 执行频率 0=单次 1=每天 2=按星期 3=按月 "weekMask": 0, // 星期标识:weekMask(1字节,bit0=周日,...,bit6=周六,bit7=全选) "monthMask": 16778241, // 日期标识:monthMask(4字节,bit0=1号,...,bit30=31号,bit31=全选) "CCH1": 1, // 通道1的开关 -1表示不操作当前通道 0-关闭 1-打开 "CCH2": 1 // 通道2的开关 -1表示不操作当前通道 0-关闭 1-打开 } ], "flag": 2 // 本次操作类型 0=添加 1=修改 2=删除 3=替换(删除所有旧定时任务,替换为新任务列表) } // 可以简化为以下版本 { "tasks": [ { "taskID": 1773374044 // 仅包含任务ID } ], "flag": 2 // 删除标志 } ```` 替换任务时需要将新任务按以上模板添加到tasks数组,然后flag标志为3。执行这个操作将删除设备中现有所有的定时任务,同时将tasks中的任务全部添加到设备中。 ## 5 常见故障解决方法 * (1)WIFI设备成功后,更改了路由设置或原不WIFI节点无法连接怎么处理? ​ 解决方法: ​ 使用其它带有无线网络功能的设备(如:电脑、平板、手机等)扫描无线网络,查看是否有"SSPRO\_"开头的无线网络。如果一个环境中有多个设备,会 有多个"SSPRO_"开头的无线网络,此时通过查看设备ID来区分。 ​ 成功连接到设备的无线网络后,使用浏览器访问:http://192.168.4.1重新配置新的可以使用的WIFI,更新配置后需要重启设备生效。 * (2)设备异常、无法操作怎么处理? ​ 解决方法: ​ 首先在保证安全的情况下,排除电源连接是否存在问题,若电源连接没有问题,请排查连接到设备端的被控线路是否存在问题。 ​ 其次确保在不影响其它被控设备的情况下,尝试重启设备。 ​ 若无法重启设备,请操作关断输入电路,然后等待10秒以上重新开启输入电路。使用这种方式依旧无法使设备正常工作,则需要更换新设备。 ​ ## 固件激活 请在某鱼搜**智控盒激活码**。