最近青岛疫情闹得凶,闲来无事,看着家里的好几千的斐讯TC1,虽然能远程控制了,但感觉还是差点东西,毕竟原来也是智能设备,就想着看把它接入小爱。不知道是不是我太菜,搜到的网上说接入小爱好像都只是APP控制,和小爱并无关系。
感谢a2633063的固件,xywzxw的营业执照,个人交流使用,如有侵权,请联系删除。
这里是演示视频
本篇文章要求的东西比较高,请量力而为。
一、准备材料:
1、营业执照,是的,你没看错,小米iot平台对接需要,没有就找朋友借,借不到就可以划走了
2、一台服务器,云服务器最好,普通家里的软路由,带有docker的nas也可以(需要公网映射端口)
3、自己的域名,用来申请https,如果有其他渠道可直接部署https,也可省略
4、斐讯TC1,A1版本能刷机,或者其他能接入mqtt的设备(如果你也稍微能改点代码的话)
二、环境搭建
请准备好准备材料之后在进行,少了啥都不行。
过程从头细说过于麻烦,重点部分是小米iot平台的申请,基础部分将略过,如果需要的人比较多再考虑出一版详细的。
搭建APP远程控制的部分
1、刷机
参考GitHub上的这篇,在接入小爱之前,一直用着他的这个,本篇也是在他的基础之上扩展功能斐讯TC1智能排插个人固件. 仅支持TC1硬件版本为a1的版本 ,记住设备MAC地址备用
2、搭建MQTT服务器
EMQX有提供免费的套件,功能给个人使用属于牛刀杀鸡,足够用了,而且文档也非常详细
搭建完成之后测试一下github上的APP远程控制,记住MQTT服务器地址,备用。完成之后再进行下一步
搭建服务器环境
3、搭建宝塔面板
docker上的或者云服务器上的都可以,宝塔安装,Docker安装宝塔
4、安装nginx、tomcat。宝塔的软件商店可以一键安装
5、将自己的域名指向服务器,nginx新建一个网站并开启ssl,用宝塔自带的就可以了
6、将war包部署到tomcat,然后反向代理设置到tomcat的路径。注意Tomcat端口,我是改了的,也可以不改。打开"目标url+/PHICOMM_TC1_Server_war/Login.html",出现设置页面说明可以了。(目标url是tomcat的地址,可以和nginx同一个服务器,也可以不是同一个)
小米iot平台申请
7、到小米iot平台申请账号,需要用到营业执照,是个营业执照应该就可以。跟着流程走,这块我是借朋友的,最后能够出现企业管理就可以
8、进入控制台->应用->云接入OAuth管理-> 服务器调试,按照自己服务器的地址做如下配置
9、进入控制台->产品,新建“已上市非连接小米IoT的产品接入小爱同学”产品,产品类型选择插座,产品描述、型号等根据自己爱好填写
9、设备新建之后,进入详情->基础配置,产品品牌选其他品牌,图标注意用它的工具处理成透明底色
10、进入功能定义,将非必要功能全部删掉,switch的详情只保留on
11、在功能定义中查看json,将类型复制下来备用。
将设备接入服务
12,打开米家APP,进入我的->其他平台设备-添加设备->滑动到最下方选择自己注册的公司->点击绑定账号
13、用户名随意填写;型号是前边查看json数据复制下来的;mac是设备的mac地址,如果有多个设备用英文逗号分割;版本1是旧版,2是新版,区分版本是根据github中描述的新旧版本。mqtt地址是EMQX的mqtt地址,server地址是服务器地址(因为反向代理服务器和tomcat是可以分开设置的)。
14,完成后点击提交,若能走通将可以看到绑定的设备,配置的设备保存在WEB-INF/device_saved中,米家APP刷新出设备后,即可通过小爱控制设备
三、故障排查
1、米家APP添加其他平台设备无自己的公司:平台应用配置问题
2、米家APP绑定账号时,无法打开登录页:OAuth配置问题或者服务器ssl配置、服务器地址、反向代理等问题。
3、绑定后device_saved文件中没有数据:登录页面数据填写错误
4、device_saved文件由内容,但是设备刷新是空的:MQTT服务器设置配置有问题
总结,接入小爱,走的是云对云接入,接入不对个人用户开放,所以必须用营业执照。代码是个人测试使用,所以基本没有安全设置。