Mi Flora battery life

OK, an update about the “strange” Battery behave for MiFlora Sensors…

Here is the history of my three plant-sensors and their battery state over the period of March…
I would not expect an increasing of their battery state - but again, I guess, there’s an issue in the firmware.

The Battery state will probably be calculated out of the voltage of the battery.
And I do think, that this value might increase when the sensor will be hit by sunlight and warming up.
Therefore, the resistance is changing and the voltage information changes → then, the sensor will report a higher battery state …

Why do I beleive this?
→ the light blue device (bogenhanf) is placed on the floor, while the others are near a window and therefore will be hit when the sun is shining through the window and warming the sensors up.

3 Likes

Let me ask the question, do you really need to know the battery state every 6 hours?

Pulling the battery state is an expensive operation for the miflora sensor. It requires an active connection be made to the sensor, that is accomplished over multiple operations.

A Miflora will passively beacon their state down to about ~20% of the battery, sometimes even lower. The active connection required to obtain battery status requires a battery which is closer to 40%; the act of requesting the battery status will sometimes cause the miflora device to go offline/do-a-hard-restart.

I currently check the battery state every two weeks; a miflora sensor will run for months, the battery declines along a graceful curve.

My Mi Flora’s previously had great battery life but in recent months I’ve noticed them getting drained extremely fast. I previously used the ESPhome component to manage them but swapped over to having the ESP’s act purely as Bluetooth Proxies and letting HA manage the Mi Flora’s… It seems that the battery life took a dive after making this change.

Anyone else have the same situation?

How fast is “extremely fast”? I track my battery changes with Grocy and using the same setup as you (ESP proxies) and I get around 8-10 months between changes.

I have one which died in about 2 months, another which is reporting 41% after a month.

In my experience the percentage values that the sensors report are not reliable. Most of my sensors (16) can report 100% from the day they have a fresh battery until they die.

2 months is bad however.

Over the years of running these I have found the same thing. That goes for my various ZigBee wireless buttons too.

I’m going to replace a few Mi Flora batteries tonight and try to keep track of how long they last.

1 Like

In HA, Bluetooth>settings you can change to be only passive scanning. I personally did not like it to be directly in HA because I have many of temp/humidity Bluetooth sensors and this mi plant sensor and they are sending a lot of readings to HA with decimals in up and downs. now you in HA you can remove decimals but still a lot of data. So I prefer to still use esphome in esp32 to get data in passive mode and filter for my needs. I removed battery level to be sure nothing depletes battery faster. Buying often button battery it is more important to me that battery level.

Given that your data is correct (where did you get these numbers?), your suggestions make sense.

However, even with 6 hour interval between checks, my sensors last through a season (appx. 5-6 months) - which is good enough for me.

I haven’t had any issues with the battery life of the MiFlora Sensors so far… they are still all working fine.
BUT:
The information given by the sensor is just poor…

I have one device, which is reporting 0% State of Charge for quite a while now… yet, the sensor is still working fine

grafik

hi @CChris , what firmware version are you running? mine is 3.3.5
if you don’t mine can your share your yaml for the card?

I’ve added template sensors that detect when a plant sensor has stale data, I found that more reliable than the battery sensors. I am using the illuminance senors with a time frame of 12 hours.

  - name: Plant 1 stale sensor
    icon: mdi:flower
    state: >-
      {% if as_timestamp(now()) - as_timestamp(states.sensor.plant_1_illuminance.last_updated) > 43200 %}
        true
      {% else %}
        false
      {% endif %}
1 Like

Hi,
The Firmware Version is 3.3.6
… I’m not sure If this is running on all devices, but there’s no newer version available.

Anyway - the dasboard yaml is pretty simple.

I do have a plant.yaml - there are all min/max values configured

  Calathea:
    sensors:
      moisture: sensor.ctenanthe_setosa_moisture
      temperature: sensor.ctenanthe_setosa_temperature
      conductivity: sensor.ctenanthe_setosa_conductivity
      brightness: sensor.ctenanthe_setosa_illuminance
    min_moisture: 15
    max_moisture: 60
    min_conductivity: 350
    max_conductivity: 2000
    min_temperature: 5
    max_temperature: 35
    min_brightness: 4000
    max_brightness: 50000

Then,
I do have a nother configuration for the Image (custom.yaml)

  customize:
    plant.benjamin:
      friendly_name: Birkenfeige (Ficus Benjamin)
      entity_picture: /local/img/plants/benjamin.jpg

    plant.bogenhanf:
      friendly_name: Bogenhanf (Sanseveria)
      entity_picture: /local/img/plants/bogenhanf.jpg

    plant.oleander:
      friendly_name: Oleander
      entity_picture: /local/img/plants/oleander.jpg

    plant.calathea:
      friendly_name: Calathea
      entity_picture: /local/img/plants/calathea_.jpg

    plant.strahlenaralie:
      friendly_name: Strahlenaralie
      entity_picture: /local/img/plants/strahlenaralie.jpg

And here’s the Dashboard/Card

type: vertical-stack
cards:
  - type: plant-status
    entity: plant.benjamin
    name: Birkenfeige (Ficus benjamini)
  - square: true
    type: grid
    cards:
      - type: conditional
        conditions:
          - entity: sensor.benjamin_moisture
            state_not: unavailable
        card:
          type: gauge
          entity: sensor.benjamin_moisture
          name: Feuchtigkeit
          segments:
            - from: 0
              color: '#db4437'
            - from: 20
              color: '#ffa600'
            - from: 30
              color: '#43a047'
            - from: 50
              color: '#ffa600'
            - from: 60
              color: '#db4437'
          needle: true
      - type: conditional
        conditions:
          - entity: sensor.benjamin_temperature
            state_not: unavailable
        card:
          type: gauge
          entity: sensor.benjamin_temperature
          name: Temperatur
          needle: false
      - type: conditional
        conditions:
          - entity: sensor.benjamin_conductivity
            state_not: unavailable
        card:
          type: gauge
          entity: sensor.benjamin_conductivity
          name: Nährstoffe
          segments:
            - from: 0
              color: '#db4437'
            - from: 350
              color: '#ffa600'
            - from: 500
              color: '#43a047'
            - from: 1850
              color: '#ffa600'
            - from: 2000
              color: '#db4437'
          min: 0
          max: 2500
          needle: true
  - type: horizontal-stack
    cards:
      - type: tile
        entity: sensor.benjamin_signal_strength
        name: Signalstärke
      - type: tile
        entity: sensor.benjamin_battery
        name: Batterie

These are samples, not all from the same plant sensor…
And here’s how I have included the files into the configuration.yaml

# Inlcudes
homeassistant: !include custom.yaml               # includes customizations
plant: !include plants.yaml                       # Plant Info

// the yaml will be shared when I’m at the Computer…
Can’t be done on the Phone…

1 Like

Hmm is 3.2V close enough to 3V?

I wonder if a solar light could be hacked as a solar power manager and power source?

https://www.bunnings.com.au/solar-magic-lithium-14500-3-2v-rechargeable-battery-2-pack_p4351891

There are variopus dirt cheap versions available in oz.

https://www.bunnings.com.au/click-solar-led-garden-light_p4351452

https://www.bunnings.com.au/products/lighting-electrical/lighting/solar-lights/path-lights-bollards?sort=PriceAscending&page=1

Crush or desolder the LEDs?

Edit: I had a closer look at my local hardware shop (Bunnings). There were only a couple that were 3.2V. They tend to be the higher lumen, higher cost ones (so not so tempting to tinker). Most of the cheap ones are 1.2V. Quite a few use 3.7V (especially in the higher lumen range).

1 Like

Thank you @CChris when you will have time, can you share also the yaml file?

Hi, Sorry - I don’t use this dashboard design anymore, since I’ve added a bunch of more sensors - and the dashboard became unhandy.

Right now, I am using the Xiaomi BLE integration in addition to:

The Plant Integration is creating a “device” for the plant, with the ability to add sensors from different sources (FlowerCare Sensors, Humidity Sensors, and whatever).
In Combination with the OpenPlantBook integration, you can also pull the specific parameters for your plant from OpenPlantBook.

All will then be included in a Card like this:
image

And this is how my dashboard is now looking (there are two plants with no images available at the moment)

1 Like