VegTrug ESP32 configuration

Struggling a bit here. If I use the -all.bin I see the device in MQTT but only a /config channel and not the values. if I use the BLE bin I don’t see the device at all but do see BLE beacons as separate devices.
I would compile my own but I’m not really sure what to include.

bin ending by -all should not be used ( we are going to not publish them for the next release).

At least if they are not converted into temperature, moisture… data you should see the service data outgoing from them, if it is the case could you post some samples of the full json?

This is the config message - no other messages from the device - they come on a homeassistant topic
{“stat_t”:“ESP32/BLE/BTtoMQTT/C47C8D6B3BE0”,“name”:“MiFlora-lux”,“uniq_id”:“C47C8D6B3BE0-MiFlora-lux”,“dev_cla”:“illuminance”,“val_tpl”:"{{ value_json.lux | is_defined }}",“unit_of_meas”:“lx”}
{“stat_t”:“ESP32/BLE/BTtoMQTT/C47C8D6B3BE0”,“name”:“MiFlora-tem”,“uniq_id”:“C47C8D6B3BE0-MiFlora-tem”,“dev_cla”:“temperature”,“val_tpl”:"{{ value_json.tem | is_defined }}",“unit_of_meas”:“°C”}
{“stat_t”:“ESP32/BLE/BTtoMQTT/C47C8D6B3BE0”,“name”:“MiFlora-fer”,“uniq_id”:“C47C8D6B3BE0-MiFlora-fer”,“val_tpl”:"{{ value_json.fer | is_defined }}",“unit_of_meas”:“µS/cm”}
{“stat_t”:“ESP32/BLE/BTtoMQTT/C47C8D6B3BE0”,“name”:“MiFlora-moi”,“uniq_id”:“C47C8D6B3BE0-MiFlora-moi”,“val_tpl”:"{{ | is_defined }}",“unit_of_meas”:"%"}
These come on ESP32 topic (which is what I set)
001A221265E0 = {“id”:“00:1A:22:12:65:E0”,“name”:“CC-RT-BLE”,“rssi”:-79,“distance”:8.651812}
5F152587944A = {“id”:“5F:15:25:87:94:4A”,“name”:“nut”,“rssi”:-87,“distance”:18.07764,“servicedata”:“5f152587944a”}
2A6B2B614C00 = {“id”:“2A:6B:2B:61:4C:00”,“name”:“nut”,“rssi”:-77,“distance”:7.119795,“servicedata”:“2a6b2b614c00”}
5862AA354975 = {“id”:“58:62:AA:35:49:75”,“rssi”:-67,“distance”:2.509097}
3D55C844A43E = {“id”:“3D:55:C8:44:A4:3E”,“rssi”:-69,“distance”:3.119501}
52E7742F194D = {“id”:“52:E7:74:2F:19:4D”,“rssi”:-75,“distance”:5.832737}
4053642AEF32 = {“id”:“40:53:64:2A:EF:32”,“rssi”:-89,“distance”:21.51847}
565C2B57E65D = {“id”:“56:5C:2B:57:E6:5D”,“name”:“nut”,“rssi”:-81,“distance”:10.46739,“servicedata”:“565c2b57e65d”}
7DFB25756713 = {“id”:“7D:FB:25:75:67:13”,“name”:“nut”,“rssi”:-85,“distance”:15.12852,“servicedata”:“7dfb25756713”}
4E4FD813F6B4 = {“id”:“4E:4F:D8:13:F6:B4”,“rssi”:-88,“distance”:19.7325}
7C3CFAD19D13 = {“id”:“7C:3C:FA:D1:9D:13”,“rssi”:-61,“distance”:1.274439}

Into the home topic you have only the beacon messages?
That’s strange

I’ve moved it within a couple of metres and it’s now appearing. I now need to stop the errors in openHAB because the topic doesn’t contain the parameter and the JSON only has one of the parameters in each message .

If this message is sent

{“id”:“C4:7C:8D:6B:3B:E0”,“name”:“Flower care”,“rssi”:-90,“distance”:23.44428,“model”:“HHCCJCY01HHCC”,“fer”:97}

It will generate an error message in the other three items because the JSON doesn’t match.

Number Flower_Moisture “Moisture” { mqtt="<[mosquitto:ESP32/BLE/BTtoMQTT/C47C8D6B3BE0:state:JSONPATH($.moi)]"}

Number Flower_Fertility “Fertility” { mqtt="<[mosquitto:ESP32/BLE/BTtoMQTT/C47C8D6B3BE0:state:JSONPATH($.fer)]"}

Number Flower_Light “Moisture” { mqtt="<[mosquitto:ESP32/BLE/BTtoMQTT/C47C8D6B3BE0:state:JSONPATH($.lux)]"}

Number Flower_Temp “Temperature” { mqtt="<[mosquitto:ESP32/BLE/BTtoMQTT/C47C8D6B3BE0:state:JSONPATH($.tem)]"}

I resolved it by sending it to Node-Red first. It would be better to either send all the readings in one message or use a sub-topic for each (like the homeassistant config statements homeassistant/sensor/C47C8D6B3BE0-MiFlora-lux)



Sent from Mail for Windows 10

EDIT: moving the unit closer to the ESP and changing the battery seems to resolve it; will do some more testing but hopefully adding an antenna to the ESP will allow to move it further/increase range subtantially as it will be used to track plants in the backyard…

Did you manage to resolve the issue?; just got my first MiFlora device (latest firmware 3.3.1 + stock BLE OMG on ESP32)
Same here, All I get in MQTT is upon syncing the device (one general topic for name/rssi/distance etc. + HA topic for each feature), after that, nothing seems to update…
maybe related to the latest firmware ?

{“id”:“C4:7C:8D:6C:97:04”,“name”:“Flower care”,“rssi”:-71,“distance”:3.860897,“model”:“HHCCJCY01HHCC”,“fer”:0}

{“stat_t”:“home/OpenMQTTGateway_ESP32_BLE/BTtoMQTT/C47C8D6C9704”,“name”:“MiFlora-tem”,“uniq_id”:“C47C8D6C9704-MiFlora-tem”,“dev_cla”:“temperature”,“val_tpl”:"{{ value_json.tempc | is_defined }}",“unit_of_meas”:“C”}

etc. same for hum, tem , moi, tempf, tempc

Let me know what you think,
anything I should configure differently, troubleshooting tips?


The range of the device for sensor data seems to be quite short. I only resolved it by putting the ESP32 within 2m

Wow, not exactly what I was expecting from a range perspective;
Just ordered the ESP32-WROOM-32U + antenna, will see if that helps.
Otherwise I guess I’ll have to put the ESP32 in some enclosure outdoors.

Are you the same Pmknowles from this thread ? =)

Am under Homeseer666 there, our paths are crossing again :wink:

I got my best range with the OLIMEX ESP32 gateway, also to catch my outdoor mi floras I have a LOLIN LITE running Low power on a battery (1-month autonomy)
I will publish an update of the lolin lite configuration, by scanning every 3min with 1s scan duration.

Thanks Florian

What was the approximate range gain/difference vs other ESP32?

Did you have a chance to compare vs ESP32-WROOM-32U + antenna ?

Actually I’m not even sure if then antenna serves both the Wifi and Bluetooth.

The ESP32 LOLIN LITE is approximatively 9m from the mi flora currently, during my previous tests and an ESP32Dev board, I got 25m.

With the OLIMEX ESP32 Gateway and an LYWSD03MMC I get 60m
Note that I have an improved antenna on it see photos here

Thank you,
I ordered a ESP32-WROOM-32U + antenna;
I can easily deploy it outdoors if needed (House has aluminium siding…) as I have a sheltered space + power.
Just need reasonable range in order to centralize to a single gateway.

Keeping the Olimex as a backup plan since it’s much more expensive.

will do some testing and report back.