『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 13999|回复: 8

[新奇玩法] 小爱pro蓝牙网关接入HA

[复制链接]

18

主题

587

帖子

4291

积分

元老级技术达人

积分
4291
金钱
3669
HASS币
182
发表于 2021-6-9 23:33:51 | 显示全部楼层 |阅读模式
本帖最后由 louis_lee 于 2021-6-10 11:11 编辑

前言

        最近楼主的飞利浦牙刷电机坏了,索性就买了一个米家t500电动牙刷。其实实际体验也就那样,不过好在能接入米家,总觉得玩法有可以开发空间。经过一番折腾,发现根本不能与其他设备联动。如果要想实现联动,必须得买米家t700。服了,本来没什么硬件上的差异,理论只要米家后端支持就行。。。。。。本着少花钱的原则,楼主开始论坛上搜寻解决之道,就看到了大佬XCray有关蓝牙网关TTL2MQTT的帖子。拜读之后,发现有搞头,可是手里只有小爱pro作为蓝牙网关。而且还得接个ESP8266做转发,一想到我这硬件动手能力,直接就放弃了,想当初我可以焊坏了好几个米家门磁。。。

       那么有什么不用拆解、焊接,就能实现的方法的呢没有哈哈,至少本文没有,需要你至少开启了小爱pro的SSH功能)各种瞎翻之后,发现小爱文件系统中,/tmp/log/messages这个文件存储有蓝牙输出的log,而且小爱系统自带mosquitto client。这就很棒了,直接截取后就可以发到mqtt server上。于是,就有了这篇分享文。
//如下是截取的log

Jun  9 22:52:**.*** mico mibt_mesh[310]: [I][mible_beacon] send_rpc_to_wifi 984: id = 18***, rpc = {"method":"_async.ble_event","params":{"dev":{"did":"blt.3.****,"mac":"FB:***","pdid":1161},"evt":[{"eid":16,"edata":"0034"}],"frmCnt":18*,"gwts":162****}}


实现步骤

1. 首先,你需要将你的小爱pro成功实现SSH
请参考snowwolf725大佬的文章

拆解新买的小爱音箱Pro, 更新固化开机启动 SSH 教学

逆向分析下小爱音箱root密码, 顺带提供密码算号器


2.将GitHub上文件copy到小爱pro /data 目录下,修改一下miaible.sh里边的mqtt配置,再改一下权限,直接启动服务就行
git_url: https://github.com/louisslee/miai_bt2mqtt

chmod 777 /data/miaible.sh
chmod 777 /data/miaible_service

/data/miaible_service start
如果你想实现开机自启动这个脚本,还得再利用snowwolf725大佬的方法,将整个文件系统dd 备份出来,然后再找台linux主机添加一下启动项

3.至此有关小爱pro的部分已经完事了,你只需要在mqtt消费端做逻辑处理就行,可以直接用HA,也可以接入node-red。
收到的json串是下边这样,其中did应该是设备识别码,pdid我猜是产品类型,我的牙刷就是1161;eid是事件类型,16就是牙刷一启动就触发。根据自己的设备情况,试几次基本上都能猜到是啥了。
{
     "method": "_async.ble_event",
     "params": {
     "dev": {
         "did": "blt.3.16****",
         "mac": "FB:***",
         "pdid": 1161
         },
     "evt": [{
         "eid": 16,
         "edata": "0011"
       }],
     "frmCnt": 291,
     "gwts": 1613422278
   } 
}


写在后边

楼主shell脚本基本小白,就愣仿照着F大小爱语音接入脚本抄的,如果哪里写的不好,请不吝赐教哈。

目前,就一周的使用经验看,反应速度还是可以的,而且不咋会丢失数据。楼主使用的1.58.15版本的小爱固件哈。

欢迎尝试~








评分

参与人数 1金钱 +8 收起 理由
XCray + 8 感谢分享!

查看全部评分

回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12103
金钱
9084
HASS币
460

教程狂人突出贡献

发表于 2021-6-10 06:33:43 | 显示全部楼层
有ssh接入、log和mqtt client,理所当然比 8266转发ttl更科学!
回复

使用道具 举报

18

主题

587

帖子

4291

积分

元老级技术达人

积分
4291
金钱
3669
HASS币
182
 楼主| 发表于 2021-6-10 10:42:18 | 显示全部楼层
XCray 发表于 2021-6-10 06:33
有ssh接入、log和mqtt client,理所当然比 8266转发ttl更科学!

多谢大佬暖贴
回复

使用道具 举报

11

主题

271

帖子

2658

积分

金牌会员

Rank: 6Rank: 6

积分
2658
金钱
2377
HASS币
50
发表于 2021-6-10 10:47:48 来自手机 | 显示全部楼层
这个牛B啊,利用自带mqtt,比硬件ttl转发更好,现在大家研究得越来越深了。
回复

使用道具 举报

18

主题

587

帖子

4291

积分

元老级技术达人

积分
4291
金钱
3669
HASS币
182
 楼主| 发表于 2021-6-10 10:51:06 | 显示全部楼层
秋雨轩 发表于 2021-6-10 10:47
这个牛B啊,利用自带mqtt,比硬件ttl转发更好,现在大家研究得越来越深了。 ...

哈哈是的。其实不用MQTT,走http请求,也可以发到node-red上。
但毕竟http开销更大一些,所以选了MQTT
回复

使用道具 举报

6

主题

170

帖子

2220

积分

金牌会员

Rank: 6Rank: 6

积分
2220
金钱
2050
HASS币
20
发表于 2021-6-15 13:45:57 | 显示全部楼层
可以和罗总的 MQTT一起使用吗?
https://github.com/qlwz/xiaoaimqtt
回复

使用道具 举报

3

主题

42

帖子

243

积分

中级会员

Rank: 3Rank: 3

积分
243
金钱
201
HASS币
0
发表于 2021-6-20 23:19:45 | 显示全部楼层
你好,请问能告知一下LX06最新的通配符吗??版本1.74.1
回复

使用道具 举报

10

主题

680

帖子

5656

积分

论坛元老

Rank: 8Rank: 8

积分
5656
金钱
4971
HASS币
50
发表于 2021-11-30 23:26:59 来自手机 | 显示全部楼层
这个可以控制mesh墙壁开关吗
回复

使用道具 举报

14

主题

187

帖子

2719

积分

金牌会员

Rank: 6Rank: 6

积分
2719
金钱
2532
HASS币
0
发表于 2023-1-27 22:21:19 | 显示全部楼层
linoul 发表于 2021-6-15 13:45
可以和罗总的 MQTT一起使用吗?
https://github.com/qlwz/xiaoaimqtt

罗总的MQTT你现在还在用吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-28 09:47 , Processed in 0.074380 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表