斐讯M1刷固件连入HomeAssistant方案验证

【开场篇】

一年前买了三个斐讯M1放在家里看温度、测甲醛。近一年使用下来,还是有一定使用性。一直在考虑再买一台放置在客厅。最近终于下手了,还是从拼多多购入。价格比去年有所上升,贵了10多元。这一年突飞猛进的物价,吃碗面都比去年贵10元,一台M1贵上十几元,也算合理。

去年写过一篇文章记录如何将M1配置WiFi,劫持域名解决WiFi图标闪烁,接入HomeAssistant的解决方法。一年中陆陆续续收到评论,发现有些朋友无法正常接入HA。由于我也不是经常玩HA,所以也没有深入研究问题究竟发生在哪里。这次新购入M1后发现按之前的操作方法已经无法将M1接入HA。表现的现象是M1能配网成功,时间校队也成功,局域网内之前做的劫持域名和安装的HA也能让M1的WiFi图标不闪烁,但是在HA中无法获取这台新购入M1的数据。

购入这台新的M1本意就是放在客厅看一下时间,顺便测一下甲醛和PM2.5。但其它3台都接入HA了,就这1台无法接入,心里有点不爽。于是乎又开始爬论坛研究为什么。最终了解到最新市面的M1其中固件与去年固件有所不同,因此导致HA无法获取新M1的数据。解决的方法只有对M1进行刷机。也就是说将M1拆机后刷入大神自制的固件。这样的好处是配置WiFi联网更加方便,不用做域名劫持,能在线升级固件,还能与其它斐讯产品联动(当然联动我没有需求)。其实刷机方法去年也曾经了解到,但当时一方面怕麻烦,另一方面也有之前解决方法可以实现,因此没有折腾。好在大神自制的固件,从去年年底到今年年中一直都在更新,使得M1固件功能更加完善。加上这次被逼到没办法了,只能硬着头皮上。

【准备篇】

1. 先介绍一下大神固件的网址:https://github.com/a2633063/zM1

大神对斐讯其它产品也做了固件,M1只是其中一个。该固件官方网址上面介绍的很清楚。当然前提是需要多读几遍,就像大神写的,每个字都要认真读,仔细想,然后再准备动手。

2. 再介绍一个恩山上的刷机教程:https://www.right.com.cn/forum/thread-3768093-1-1.html

这篇文章也介绍的相当详细。与大神官网内容结合起来看,能够对刷机过程有更好的了解。特别是我从poboy作者文章中了解到了需要采购哪种jlink设备。

3. 什么值得买上面更详细的教程:https://post.smzdm.com/p/a5kqzv2k/

这篇文章介绍不光斐讯M1,还介绍了斐讯TC1刷机过程。更重要的是介绍了如何接入HA。去年我接入HA的方法只是针对当时HA软件0.103版本,从配置表中加载传感器,大概这么个意思。很多朋友反应,用了我的配置脚本,在后续HA版本中不成功。的确,我最近安装最新的HA软件0.118版本后,之前脚本也不成功。更重要的是,M1刷机后,需要从MQTT服务器上读取数据,与之前方式完全不同。在Memol作者这篇文章有很好的解释。

4. Jlink烧录设备购买关键字:兼容J-Link OB ARM 仿真调试器

淘宝上按这些关键字搜索,链接就不给了。价格大约在15元左右。参考图片如下:

5. 为什么写这篇文章?

既然这么多大神文章都这么详细,为什么我还要写文章?

  • 记录自己折腾过程,便于今后追溯和复习。
  • 补充内容:MQTT如何在HA中配置。
  • 补充内容:HA中如何添加M1各项传感器数据。
  • 补充内容:多台M1配置文件如何编写。

【实践篇】

1. M1刷固件。由于几位大神文章和官网文档中介绍的都非常详细。具体截图我就不一一显摆了。M1刷固件最大的工作量在于拆机器。从M1前面板入手,慢慢撬动面板。如果顺利的话,面板和边框可以一起撬下来。如果不行,先把面板撬下来也可以,然后再去搞定边框。上下各三个卡扣,左右各两个卡扣。我拆了四台M1,只有一个卡扣被撬坏了。耐心一点,应该没有问题。即使坏一两个卡扣,也不影响使用。面板和边框是通过胶固定的。使用撬片后,注意清洁胶上的灰尘和塑料削,避免影响后续粘力。拆面板和边框后,拆除排线和连接线,有四根,如下图。右边两根排线注意把黑色卡扣上抬,解除扣紧状态,再移除排线。左面两个,电源线轻轻用指甲拔出,剩下一根大胆用力拔下。最后将电池卸下。

安装好Jlink驱动,根据官方要求替换驱动,具体参考官方文档。然后将官网固件放入firmware文件夹中,改名为all.bin。执行分割固件操作。如果只刷一台M1,那么分割固件操作必须执行。如果刷多台机器,只需要执行一次分割即可。根据要求安装好驱动,分割好固件,下次直接进行烧录即可。

Jlink方面接线需要注意,根据定义来接线。具体参考官方文档。尤其注意Jlink上接线红色线并不一定是电源线,黑色线也并不一定是接地线。需要根据实际情况来调整。如果电源和接地接入正常,下图右侧卡扣下的绿灯会亮,证明电源(下图黑色和红色两根线)这块正常了。然后运行烧录程序。如果烧录程序一闪而过,说明下图蓝色和黄色两根线接触有问题。如果烧录程序停留超过40秒后再自动关闭,那么应该是烧录正确了。

检验烧录是否正确的方法是将Jlink接线全部拔掉,接上之前拔掉的四根排线和连接线,装回电池,插上电源。然后用手机WiFi搜索看看有没有SSID为zM1_XXXX(XXXX为M1的MAC地址后四位编码)。若搜索到对应SSID,说明刷固件正常。用手机或者笔记本电脑连接这个WiFi SSID,然后访问http://192.168.0.1 。在这里面输入需要连接的WiFi SSID和WiFi密码。配置成功后,M1成功联网,并自动校准时间。M1的WiFi图标不闪烁,不需要劫持域名。

完成WiFi配置后,刷机工作结束。最后一步,也是挺费劲的一步,就是把面板和边框装回去。特别是面板和边框粘在一起安装的时候,有时会有一只脚翘起来,很难用蛮力把它按回去,需要耐心用撬片慢慢调整。全部归位后,大功告成。

2. MQTT服务器安装。前面介绍过,刷机后的M1如需要连入HA,首先需要配置MQTT。M1新固件会发送各个传感器数据给MQTT服务器,然后再在HA配置MQTT,接收M1发给MQTT服务器的数据。再之前准备篇中推荐文章中,Memol作者有介绍过两种方式安装MQTT。我采用了其中最为简单、具有可视化界面的emqx作为MQTT服务器。安装方法是在群晖中docker中安装emqx。具体注册表如下:

安装比较简单。注意对应端口都按其内部端口设置即可。我也不太熟悉emqx,所以内部卷也没有映射出来。安装成功后,启动容器,通过http://IP:18083访问即可打开emqx MQTT服务器。默认用户名是admin,密码public。后续密码可在其中修改。访问emqx前台地址端口是18083,后续配置MQTT需要使用1883端口,,不要搞混了。

3. M1配置MQTT服务器。操作这一步需要安装大神固件配套的手机APP。在大神固件官网上有些。地址是:https://github.com/a2633063/SmartControl_Android_MQTT 。在手机安装后,无论配置MQTT服务器,添加M1设备等操作都非常方便。大家摸索一下即可。需要注意的是,手机需与M1在同一网段才能操作。

配置成功之后,在emqx服务器中可以看到连接的设备。

4. HomeAssistant安装和配置。如上所述,我去年安装过HA,一年过去了HA版本比较老,加上新版本不兼容老的脚本,懒得再研究,这次直接安装新的版本。依旧使用docker,使用注册表如下:

具体设置看我之前文章:《矿渣斐讯M1 WIFI联网,WIFI闪烁,加入HomeAssistant解决方法》。在HA中配置MQTT服务器方法是:点击左侧“配置”,在其中选择“集成”,然后选择添加“MQTT”服务器,填写服务器配置信息即可。

操作完之后,目前从HA中看不出任何变化。还需要做后面一步操作。

5. 在HA中接入M1。首先创建一个文本,将https://github.com/a2633063/zM1/wiki/homeassistant%E6%8E%A5%E5%85%A5 中的脚本复制到该文本中。文件另存为m1.yaml。在HA目录下创建packages文件夹,将m1.yaml放入packages文件夹中。编辑修改HA目录下configuration.yaml文件。在文件末位添加如下脚本:

homeassistant:
        packages: !include_dir_named packages

然后重启HA服务。重启后,从HA界面还看不出变化,但HA应该已经识别到M1通过MQTT传给HA的数据了。需要在界面上添加实体实体。

将每个传感器数据排版后,即可在HA界面上显示M1数据。

如何修改m1.yaml脚本?把官网上整段脚本复制到文件,然后将其中所有macmac都替换成M1的mac地址,mac地址都用小写字母。这个mac地址可以在机器底部贴标上获得,也可以在自己家里路由器中查看。再提醒一下,需要将所有macmac都替换成自己M1的mac地址(小写且不带冒号)。

配置多个M1,如何修改m1.yaml?复制官网脚本多份。将每份脚本中macmac替换成对应的M1的mac地址(小写且不带冒号)。将多份脚本合并。合并规则为每份脚本的sensor部分脚本都放在一块,light部分脚本都放在一块,homeassistant中customize部分脚本都放在一块。如下图:

至于能否分多个yaml文件,每个yaml文件管理一台M1配置,我没有尝试,也懒得尝试了。留个需要精细管理需求的朋友进行研究。

【尾声】

至此M1在今年又被我折腾了一下。感觉还是挺满意。感谢大神的固件。这个固件让M1摆脱了原先劫持域名这种半吊子的事情。从根本上解决了M1很多实际的功能需求。我看拼多多上面刷过机的M1与没有刷过机的M1价格还差了30元左右。估计都是拆M1的辛苦费用。总得来说,M1刷大神固件整体操作不复杂。

最后再次感谢本文中提到相关文章的作者。是你们的分享让M1这个设备更加实用,更加富有乐趣。谢谢!

发表评论

邮箱地址不会被公开。 必填项已用*标注