基于芯步开放平台的空调集中控制二次开发,其核心思路是通过统一的HTTP/MQTT接口屏蔽底层红外协议的差异——无论是格力、美的还是海尔,开发者调用的都是同一套device/control接口和相同的命令结构。芯步的智能空调遥控器产品已预置主流品牌红外码库,二次开发只需解决“业务系统如何调用接口”这一层问题,无需关心红外编码转换。
以下是一份完整的技术解决方案:
1. 背景与目标
在智慧办公、智慧酒店、智慧园区等场景中,往往存在同一场所使用格力、美的、海尔、大金等多个品牌空调的情况。传统红外遥控器无法实现远程集中控制,而各品牌自身的智能方案又不互通。
本方案的目标:利用芯步智能空调遥控器及开放接口,通过二次开发实现任意品牌(红外遥控型)空调的远程控制,包括开关机、模式切换、温度设定、风速调节等核心功能,并将控制能力集成到现有的楼宇自控系统、OA系统或APP中。
2. 总体技术架构
flowchart LR
subgraph A [业务应用层]
A1[Web管理端]
A2[移动APP]
A3[小程序]
A4[第三方系统]
end
subgraph B [芯步开放平台]
B1[HTTP/MQTT接口]
B2[设备管理]
B3[权限校验]
end
subgraph C [设备层]
C1[智能空调遥控器
格力]
C2[智能空调遥控器
美的]
C3[智能空调遥控器
海尔]
end
subgraph D [被控设备]
D1[格力空调]
D2[美的空调]
D3[海尔空调]
end
A -- RESTful API --> B
B -- 红外指令下发 --> C
C -- 红外信号 --> D架构说明
设备层:芯步智能空调遥控器,负责接收云端指令并转换为红外信号,覆盖市面上90%以上空调品牌
平台层:芯步开放平台,提供设备接入、状态管理、指令下发等能力
应用层:用户自研的业务系统,通过调用平台API实现空调远程控制
3. 二次开发核心流程
3.1 准备工作
在进行二次开发前,需要完成以下准备:
| 步骤 | 内容 | 说明 |
|---|---|---|
| 1 | 注册芯步账号 | 访问官网完成注册 |
| 2 | 创建工作台 | 进入物联网控制台模块 |
| 3 | 获取AppID和AppSecret | 在“开发设置”中获取,用于接口鉴权 |
| 4 | 采购智能空调遥控器 | 根据空调品牌和型号选择适配版本 |
| 5 | 设备配网 | 将遥控器连接至现场WiFi(须为2.4GHz) |
| 6 | 开启调试模式(可选) | 开发测试阶段可开启,临时跳过签名校验 |
若无实体设备,可使用平台提供的“演示设备”进行接口联调测试。
3.2 接口鉴权机制
所有API请求需携带签名参数进行身份验证:
http(s)://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}AppID:开发者ID,平台生成ts:Unix时间戳,秒级sign:签名值,根据AppSecret和请求参数计算
若不想在开发阶段处理签名逻辑,可先在控制台开启“调试模式”,该模式下不校验sign和ts。生产环境请一定要关闭。
3.3 设备控制接口
控制空调的核心接口是/device/control/,支持单设备控制和多设备批量控制。
请求方式:HTTP POST(推荐)或 GET
请求参数
| 参数 | 必填 | 说明 |
|---|---|---|
| device | 是 | 设备ID,可在控制台查看 |
| gateway | 否 | 网关设备ID(遥控器直连WiFi时可不填) |
| order | 是 | 控制命令,JSON格式 |
控制命令示例(以开关机、温度设定为例):
返回结果
code=200仅代表指令已下发至设备,不代表空调已执行。若需确认执行结果,应通过异步消息推送机制获取。
3.4 多品牌统一适配层设计
由于不同品牌空调支持的参数范围不同(如温度范围16-30℃ vs 18-32℃、模式编码差异等),在二次开发时封装一层品牌适配层
3.5 批量控制实现
芯步接口支持一次请求控制多台设备(最多100台),通过|或,分隔设备ID
device=123456|789012|345678
批量控制时,所有设备需支持相同的命令结构,适用于整楼断电、统一调温等场景。
4. 核心代码示例
4.1 Python版设备控制封装
4.2 定时任务与自动化
通过对接平台的定时任务接口(需额外调用),可实现:
工作日9:00统一开启办公区空调
19:00统一关闭
根据室外温度自动调节设定温度
5. 红外码库扩展方案
对于厂商未预置红外码库的空调品牌(如一些小众或老旧机型),可通过红外学习功能扩展。虽然芯步标准产品主打即插即用,但在二次开发场景下可参考以下开源方案思路:
技术原理:利用红外接收头捕获原装遥控器的红外波形,解析并存储码值,再通过发射头重放。
参考IRext开源红外码库的设计
IRext支持16类1000+品牌、上万个型号的家电遥控
提供在线/离线码库及编解码压缩算法
码库经压缩后可在低配置MCU上运行
若需自研红外学习网关,可基于IRext框架实现:
移植IRext解码库到嵌入式设备
通过红外接收采集原遥控器码值
调用
ir_decode()解析并存储控制时调用
ir_encode()生成波形并发射
使用芯步标准产品时,主流品牌已覆盖,一般无需自行扩展码库。
6. 异步消息与状态同步
由于红外控制是“单向”的(设备只发不收),空调的真实状态(如被人手动按遥控器改变)无法自动同步到云端。这是所有红外方案的共性限制。
解决方案:
| 方案 | 实现的方式是 | 适用场景 |
|---|---|---|
| 定期轮询 | 每隔5-10分钟查询一次设备当前状态 | 对实时性要求不高的场景 |
| 状态推定 | 以最后一次下发指令的状态为准 | 空调不会被手动干扰的场景 |
| 传感器辅助 | 增加温度传感器检测出风口温度变化 | 需要高可靠状态的场景 |
芯步平台支持异步消息推送,可在命令中携带extra字段用于关联业务上下文
平台回调时会原样返回该字段,便于业务系统追踪指令执行链路。
7. 常见问题与最佳实践
7.1 设备离线排查
确认遥控器供电正常(USB供电或电池)
确认WiFi为2.4GHz频段
检查网络配置:通过控制台“网络配置”重新配网
7.2 指令下发成功但空调无响应
遥控器与空调之间无障碍物遮挡
确认红外发射头对准空调接收窗
尝试将遥控器安装位置抬高(避免家具阻挡)
7.3 性能与稳定性
连接方式:推荐MQTT长连接,避免HTTP频繁握手开销
批量控制:单次最多100台设备,超过需分批
签名计算:将AppSecret存放在服务端,严禁在客户端代码中暴露
重试机制:网络波动时实现随机间隔(或逐次增大间隔)重试
8. 总结
基于芯步开放接口进行多品牌空调集中控制的二次开发,核心工作聚焦于:
设备接入层:完成设备配网和设备ID管理
业务适配层:封装品牌差异和边界处理
应用集成层:将控制能力嵌入现有业务系统
通过统一接口,开发者仅需关注业务逻辑,无需处理红外协议细节。对于有特殊品牌需求或更高控制精度的场景,可通过红外学习功能扩展或对接IRext等开源码库实现能力增强。
该方案已在智慧办公、酒店客控、校园教室空调集中管理等场景中验证可行,可有效降低多品牌空调统一管控的开发和运维成本。