A Home Assistant custom integration (installable via HACS) that bridges growbot ESPHome Bluetooth proxies to the miflora plant sensors they detect.
- Discovers ESPHome devices whose name starts with
growbot(via mDNS/zeroconf and the live Bluetooth scanner registry). - Lets you multi-select which growbot proxies to integrate.
- For each selected growbot proxy, lists the Bluetooth devices whose name
starts with
miflorathat that proxy has detected, and lets you select them. - Exposes each selected miflora device as a set of plant sensors — soil moisture, temperature, conductivity (fertility), illuminance, and battery — nested in the device tree under the growbot proxy that sees them.
This integration is a convenience layer on top of Home Assistant's built-in
bluetooth and esphome integrations. It does not talk to the ESPHome
devices directly; it reads the Bluetooth advertisements they relay.
Before adding it, for each growbot device you must:
- Flash ESPHome firmware that enables the Bluetooth Proxy
(
bluetooth_proxy:+esp32_ble_tracker:), with a node/friendly name starting withgrowbot. - Add the device to Home Assistant via the ESPHome integration so it becomes a live Bluetooth scanner.
Once those proxies are online, miflora plant sensors in range are relayed to HA
and this integration scopes them per-proxy using the advertisement source.
- HACS → Integrations → ⋮ → Custom repositories → add this repo as an Integration.
- Install Growbot, then restart Home Assistant.
- Settings → Devices & Services → Add Integration → Growbot (or accept the zeroconf discovery prompt), and follow the wizard.
- A config entry can hold multiple growbot proxies; each is registered as a hub
device, with its miflora sensors nested beneath it (
via_device). - Parsing uses the
xiaomi-blelibrary, which handles genuine Xiaomi Flower Care (HHCCJCY01) devices. If yourmiflora*devices use a custom advertisement format, swap the parser incustom_components/growbot/coordinator.py(build_growbot_coordinator). - Battery and some realtime values require an active GATT connection through a connectable proxy; passive-only setups may not report them.
MIT — see LICENSE.