本帖最后由 sunfang1cn 于 2021-4-23 23:14 编辑
家里装了布朗新风(非美国百朗,是国内代工厂自己做起来的品牌),布朗自己有一个app但是非常难用。为了接入Homeassistant,仔细做了研究,并且实现了其中一个方案(另一个接入方案在帖子尾部简单讲一下)。
方案一:基于机智云的API接入。
第一步:在 http://download.bllc.com.cn/ 下载安装布朗新风的APP,将家中新风配网并绑定(这一步用ios或安卓均可)。
第二步:使用一个已经ROOT的安卓手机,或者蓝叠一类的安卓模拟器,安装 http://download.bllc.com.cn/ 中的安卓版本APP,并且用第一步中一样的手机号登录,然后进入新风机界面随便操作几下。
第三步:在第二步的安卓机器中,使用文件管理器,打开 /data/data/com.bulang.app/files/GizSDKLog/Daemon/GizSDKLogFile.sys,是文本文件,搜索 "<appid:"(不含引号),会找到一行类似<appid:5c3123456784ed9ac25682ebb91269f,uid:6b12a85f1c19492e8871234567a745,token:e882a11234567386448a0325354cc3> 这样的日志,记录下来。
第四步:还是在第三步的环境下,文本打开 /data/data/com.bulang.app/files/GizSDKLog/Client/GizSDKClientLogFile.sys ,搜索 "did" (包含引号) ,得到一串 "did":"1aXCalDwVww2RnWN3Sp2BI" 这样的数字,记录下来。
第五步:在 https://github.com/sunfang1cn/homeassistant-bllc 或本帖附件下载插件,放入 hass的 custom_components 文件夹中。并且在configuration.yaml中增加配置如下:
homeassistant-bllc-main.zip
(3.69 KB, 下载次数: 10)
fan:
- platform: bllc
applicationId: '第三步中的appid'
deviceId: '第四步中的did'
userToken: '第三步中的token'
重启hass,接入完毕。
插件实现了风速控制和温湿度、滤网剩余信息的读取。在布朗BE系列上测试过,其他系列估计大同小异,如果有问题可以回帖。
方案二:基于MQTT服务器劫持做本地接入。
由于时间的关系没有实现这个方案,简单描述下思路:
新风控制板联网后,是与机智云的mqtt服务器进行通信的,mqtt服务器为m2m.gizwits.com,端口为1883,新风设备到服务器通信未加密。mqtt服务器需要验证clientid和账号密码不过不重要(需要解析的话抓mqtt connect 包可以明文抓到)。
mqtt通信有4个topic。核心如下两个:
app2dev/<设备id>/<用户id> 用于接收app对设备的指令;
dev2app/<设备id> 用于设备发送状态更新给app。
这两个topic的数据内容格式为机智云的raw格式,参照官方文档和新风的数据定义不难解析出。之后,通过修改路由器的dns hosts文件,劫持m2m.gizwits.com到本地内网的mqtt服务器地址,通过mqtt收发完成本地控制,不依赖机智云云端api,不过官方app也没法用了(反正很难用)。
有大神有兴趣的,可以根据本方案实现一下。
|