- 支持当前播放内容上传 主题:xiaoai/序列号/stat/context JSON数据
- 支持当前音量上传 主题:xiaoai/序列号/stat/volume 0-100
- 支持当前播放上传 主题:xiaoai/序列号/stat/status 0-2 0:开机未播放 1:播放中 2:暂停播放
- 支持下发TTS 主题:xiaoai/序列号/cmnd/tts 播放文字
- 支持下发音量大小 主题:xiaoai/序列号/cmnd/volume 0-100|up|down
- 支持下发控制播放 主题:xiaoai/序列号/cmnd/player ch|prev|next|play|pause|toggle|http地址
- 支持下发shell命令 主题:xiaoai/序列号/cmnd/cmd shell命令
让小爱支持控制任意设备
程序主要逻辑来源于:https://github.com/FlashSoft/mico
主要逻辑是:
- 检测小米服务器响应的日志变化
- 捕获响应日志中,如果是未知设备(也等于你自己的自制设备)
- 则让小爱停止播放找到未知设备的播报
- 通过curl转发asr和res日志内容给自己的远端接口
- 远端接口去跟HA通讯来控制自制设备
- 远端接口返回需要小爱播报的文本内容
- 如果之前小爱在播放音乐的话就接着播放音乐
- 下载xiaoaimqtt.back文件放在 /data下
- 添加并编辑该文件/etc/init.d/mico_enable
#!/bin/sh /etc/rc.common
START=96
start() {
/data/xiaoaimqtt.black &
}
stop() {
kill `ps|grep '/data/xiaoaimqtt.black'|grep -v grep|awk '{print \$1}'`
}
- 设置权限在 shell下执行
chmod a+x /data/xiaoaimqtt.black
chmod a+x /etc/init.d/mico_enable
/etc/init.d/mico_enable enable
/etc/init.d/mico_enable start - 浏览器打开小爱的IP 设置 接口 MQTT 等信息
1 现在xiaoaimqtt文件放在 /data下
2. 设置权限 在shell下执行
chmod a+x /data/xiaoaimqtt
3. 使用其他方式来启动,参考以下
参照连接完成破解 https://bbs.hassbian.com/forum.php?mod=viewthread&tid=8903
需要把
"test `ps|grep 'sh /data/mico.sh'|grep -v grep|wc -l` -eq 0 && sh /data/mico.sh > /tmp/mico.log 2>&1 &"
换成
"test `ps|grep '/data/xiaoaimqtt'|grep -v grep|wc -l` -eq 0 && /data/xiaoaimqtt > /tmp/mico.log 2>&1 &"
使用 https://github.com/qlwz/esp 里面的xiaoai固件
PCB板:https://github.com/qlwz/esp/tree/master/file/pcb/XiaoAi
使用的是EPS-12S
焊接好后打开ESP地址可以设置小米密码,并且会自动启动本软件
参考链接完成破解 https://bbs.hassbian.com/forum.php?mod=viewthread&tid=8754&page=1#pid283801 最后的 /data/init.sh 文件追加
/data/xiaoaimqtt &
绿板(makefile默认)
- 参照:https://www.cnblogs.com/flyinggod/p/9468612.html 配置环境
- 然后进入目录 make
黑版
请下载 https://www.veryarm.com/aarch64-linux-gnu-gcc
绿板(makefile默认)
- 从https://blog.csdn.net/lg1259156776/article/details/52281323 里面下载Windows安装版
- 安装 MinGW
- 配置好 make.exe 和 arm-linux-gnueabihf-gcc.exe
- 然后进入目录 make
黑版
请下载 https://www.veryarm.com/aarch64-linux-gnu-gcc
makefile默认是绿板的,黑版的需要在makefile去掉以下注释
#DIR_LIB=./lib.back
#CCFILE=aarch64-linux-gnu-gcc
#TARGET=xiaoaimqtt.back