0家庭助理中的 MiFlora 植物传感器

I’ve been suing the MiFlora Home Assist­ant integ­ra­tion to get data on vari­ous house plants for a while. How­ever along the way I’ve had to over­come vari­ous hurdles includ­ing lim­ited range of bluetooth, bat­tery life issues, and get­ting the bat­tery val­ues to report. I finally seem to have cracked all of these and now have a sys­tem that works reli­ably with lots of plants around the house. I’ve sum­mar­ised what I’ve used below.

硬件

首先要说的是我确实有蓝牙 USB dongle attached to my home assist­ant sys­tem. This mon­it­ors the plants in range dir­ectly (即. 和 HA 盒子在同一个房间里的那些). To mon­it­or more dis­tance devices I have used an ESP32 board with built-in bluetooth mod­ule which I have inside a cheap little case and have powered with an old micro-USB 电话充电器

  • USB 加密狗: the one I got is no longer avail­able — due to age — but there are plenty of amazon and else­where — just make sure it has sup­port in linux
  • ESP32板: 我有一个 JZK ESP32‑S which is cur­rently £6.49 on amazon
  • ESP32 外壳: I found the case for a NodeM­CU Wroom-32D (short aer­i­al) fit­ted my board — this was £4.20 from 易趣

家庭助理的集成

Whilst the basic MiFlora integ­ra­tion is built in to home assist­ant I found it uses a lot of bat­tery when used nat­ively. 相反,我使用 Bluetooth Low Energy Mon­it­or 3rd party integ­ra­tion which you can install eas­ily using 落后
然后我还安装了 ESPHome integ­ra­tion for home assist­ant to man­age my ESP32 BLE repeater
最后, to dis­play the plants in a nice way I added a par­tic­u­lar fork of the 洛芙蕾丝植物卡 通过 LAG 插件

组态

Once BLE Mon­it­or was installed and con­figured with my bluetooth dongle it picked up the MiFlora sensors with­in range and lis­ted them in its “devices” drop down as well as list­ing the devices and entit­ies on it’s card in the HA configuration
The great thing about BLE mon­it­or is that it listens for the sensors to trans­mit, rather than act­ively polling them, which would run down their bat­ter­ies. 然而, the sensors don’t trans­mit bat­tery inform­a­tion so to get this we have to act­ively poll for it. 只为这个投票, and pass­ively listen­ing for the oth­er data seems to be the best com­prom­ise if you want to have all the data avail­able but also max­im­ise the sensor’s bat­tery life. I have sep­ar­ated my configuration.yaml into mul­tiple sep­ar­ate files to keep things a bit easi­er to man­age so I just have the fol­low­ing line in my configuration.yaml —

Then in sensors.yaml I have each plant lis­ted as follows

Next — to make the plants appear nicely I have a plants con­fig. 与之前的 configuration.yaml 中的一行一样开始: 

然后在plants.yaml中我有如下

Note the subtle dif­fer­ence between the entity name for the bat­tery com­pared with the oth­er sensors. The bat­tery entity is com­ing from the miflora plat­form in sensors.yaml whilst the oth­er 4 sensors are com­ing from the BLE integ­ra­tion. There IS a bat­tery entity lis­ted by the BLE integ­ra­tion but this just shows as “unknown” for this plant. This con­fig­ur­a­tion is needed for the plant card to show the plant in a nicely presen­ted way
然后只需转到您要添加植物的地方并添加lovelace植物卡. You will have to “con­fig­ure” the card manu­ally, but it only takes 3 lines…

Note that the spe­cies is lis­ted for 2 原因. Firstly it will dis­play the name on the card, 但更多的进口antly, it will also dis­play a pic­ture of the plant if you have down­loaded the plant images and added them into \config\www\images\plants using the lat­in names — the inform­a­tion on the data­base is avail­able on the lovelace plant card documentation

扩展范围

最后, 我们需要扩大我们可以达到的范围. 为此,我们需要 ESP32 设备. The first thing to do is to get it hooked up to your com­puter via USB 并使用基本的 ESPHome 映像对其进行闪烁
我用了 ESPHome Flash­ercp210x uni­ver­sal win­dows driver from SiL­abs and fol­lowed the guide provided by the ESPHome Home­As­sist­ant integration
The con­fig I used for my ESP32 device is below

然后通过 wifi 保存并更新到您的 esp32 设备. The ESP32 device will pick up the data from the miflora sensor and will ‘push’ it via wifi to the BLE integ­ra­tion which will cre­ate a device and entit­ies auto­mat­ic­ally. Devices pushed in this way do appear to show their bat­teyr level (thanks to the code at the bot­tom of the myhomeiot_ble_client sec­tion I believe). 然后你只需要给设备一个好听的名字 (and let the entit­ies be renamed too) and then cre­ate an entry in plants.yaml with the right entities

认为我们已经错过了什么? 让我们通过下面的评论知道. 如果您想订阅,请使用菜单上的订阅链接右上方. 您还可以通过使用下面的链接社会分享这与你的朋友. 干杯.

发表评论