小米温湿度计2通过ESPHOME接入Home assistant

没有500M宽带的,可以关闭页面了,图有几张,加载慢,别骂人,啊哈哈哈。

前几天用天猫红包8块多买了个小米温湿度计2,搜了下帖子,没发现有通过ESP32刷ESPHOME接入的详细教程,自己抽空折腾了下,能接入,但稳定性还没长时间测试,我初步观察,这玩意儿真的像前辈说的,10分钟才刷一次数据,不过好在温湿度对实时性要求不高,日常做一些反馈影响不大。在我看来,真不喜欢蓝牙设备,要不是才几块钱,十几块我都嫌贵,肯定不会买。ESP32不知道蓝牙信号怎么样,如果信号覆盖不行,每个温湿度计都要贴脸配个ESP32的话,那更是得不偿失。

ESPHOME目前只有dev开发版支持这个温湿度计,我感觉稳定性估计不会好到哪里,聊胜于无吧,小白最懂小白的苦,我详细分享下接入过程,希望可以帮到其他跟我一样的小白。

一、准备工作

  • 获取温湿度计2的bindkey
    1、去下载老毛子大神的和谐版米家APP,我用的版本号是MiHome_5.6.88_63028_vevs.apk,刚才看,最新的是 https://ru.kapiba.ru/mihome/files/old/MiHome_5.6.93_63033_vevs.apk 密码: 6412784445,应该通用的吧;
    2、安装和谐版米家APP,手机里存储器下新建/vevs/logs目录;
    3、 如果原先已经在米家APP添加过温湿度计2的,请从你的设备列表里将其删除,然后重启手机,重启手机,重启手机;
    4、重启手机后,重新添加你的温湿度计2设备,添加成功后,到前面新建的/vevs/logs目录下打开pairings.txt,里面有你需要的bindkey,把bindkey跟mac地址都复制出来备用。

  • 搭建ESPHOME环境编译固件
    1、请注意,要拉取esphome/esphome:dev 这个镜像,目前只有开发板支持温湿度计2,稳定版还不行;
    2、我是用群晖docker搭建的,群晖搭建的话,注册表中搜【ESPHOME】,在搜索结果中选择【esphome/esphome】,标签选择【dev】拉取镜像;


    3、镜像拉取完成后,自己新建一个esphome的目录,名字自己取。在映像里双击esphome/esphome:dev镜像,选择【高级设置】-【卷】-【添加文件夹】选择刚刚自己新建的目录,装载路径填入【/config】,然后选择【网络】勾选【使用与Docker Host相同的网络】,应用并运行esphome容器



4、非群晖Docker 搭建方法

拉取镜像

docker pull esphome/esphome:dev

配置容器

docker run -d \

> --name="ESPHome" \

> -e TZ=Asia/Shanghai \

> --hostname="esphome" \

> -v /opt/esphome:/config \

> --net=host \

> esphome/esphome:dev

5、上述两种方法都可以搭建esphome编译环境,浏览器输入http://主机地址:6052有Dashboard页面跳出来,那就搭建成功了。

二、编译固件

打开Dashboard页面,单击右下角【+】号图标,跳出如下界面:

  • Node Name 随便填个名称
  • Device Type 如果跟我一样的设备,选择NodeMcu-32S,一般大家玩的都是这种吧,不一样的,自己验证,我也是小白,也不是懂太多。
  • WiFi & Updates 前面两行填一下自己的wifi ssid名称跟wifi密码,最后ota密码不用填。
  • 最后 Finish,你可以在Dashboard页面下看到刚刚创建的这个Node。
    微信图片_20200612161236
  • 点【EDIT】编辑yaml文件,在OTA后面加入,
    esp32_ble_tracker:
    sensor:
    - platform: xiaomi_lywsd03mmc
        mac_address: "A4:C1:你的mac"
        bindkey: "xxxxxxxxxxx你的bindkey"
        temperature:
           name: "LYWSD03MMC Temperature"
        humidity:
          name: "LYWSD03MMC Humidity"
        battery_level:
          name: "LYWSD03MMC Battery Level"


也可以用我分享的yaml文件,复制修改成自己对应的。

三、刷入固件

  • 电脑连接ESP32
  • 打开ESPHome-Flasher-1.2.0-windows-x64,选择好对应com口,以及刚下载保存的固件,点击【Flash Esp】完成刷机过程。
  • 这里有个坑,如果刷机过程中提示Unexpected error: Error while retrieving firmware file 'https://raw.githubusercontent.com/espressif/arduino-esp32/1.0.4/tools/sdk/bin/bootloader_dio_40m.bin': ……这样的错误,那你得扶墙了。

四、接入Home assistant

在【集成页面】homeassistant应该能自动发现esphome,点配置添加就行了,如果没发现,那自己在集成里搜esphome,把esp32的ip配置下,完成添加。

用到的附件

esp32.yaml (859 字节)
ESPhome-flasher
https://houhd.lanzous.com/iCDwcdl9n2d
米家app 100多M太大了,自己下吧,呵呵。

感谢解锁新玩法,谢谢分享

是不是十分钟上报一次?

用了半天,我发现,还不只是10分钟的问题,我发现如果数值没变化就不上报。比如温度31℃,湿度77%,下一次扫描,温度30℃,湿度还是77%,这时,只上报温度,湿度则不会上报,因为湿度数据没变化。