# homeassistant-plant: each plant as a device with its own thresholds

> The Plant Monitor integration for Home Assistant models a plant as a device with its own sensors, threshold entities, Daily Light Integral and vapour pressure deficit readings, and pulls species data from OpenPlantbook to pre-fill sensible limits. The judgement is that treating thresholds as entities is the design decision that makes the integration automatable, and that the compatibility warning at the top of the documentation is the first thing to read.

**Olen/homeassistant-plant** — Alternative Plant component of home assistant

- Repository: https://github.com/Olen/homeassistant-plant
- Stars: 874 · Forks: 52
- Language: Python
- License: GPL-3.0
- Published: 2026-10-20 · Updated: 2026-10-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/olen-homeassistant-plant

## A plant becomes a device with its own entities

The core idea is that each plant is a device in Home Assistant, which groups all of its related entities together rather than scattering them across the entity list. On top of that grouping come the features that make the integration more than a note-taking device. Setup is UI based, through a guided multi-step config flow with an optional OpenPlantbook search. Every threshold is its own entity, adjustable from the user interface or through automations, so a limit can be part of an automation rather than a value someone remembers. A Daily Light Integral sensor is created for each plant, calculated automatically from illuminance sensors, and vapour pressure deficit is computed from temperature and humidity. Sensors, thresholds, species and images can all be changed without restarting Home Assistant. Problem detection is configurable per sensor, and a sensor with no source entity behind it is disabled automatically, which keeps the entity list clean when a probe is unplugged.

## The warning about the built-in integration comes first

The very first thing the documentation does after the intro is warn you, and the warning is unambiguous: this integration is not compatible with the original built-in plant integration in Home Assistant. That is a practical constraint rather than a technical subtlety, since the two occupy the same integration slot in the configuration, and running both means the plant entities collide. So the decision comes before the install. The second fact to hold on to is the maturity level, since the packaging metadata describes the project as Development Status 4 - Beta, which is a more candid label than the version numbers suggest. The licence is GPL-3.0-only, which matters if you intend to modify the component and distribute it, and the repository is published under the Automattic HACS Custom integration type, so the normal route to installing it is through HACS rather than a package index.

## Three installs: OpenPlantbook, the card, and the integration

The installation is described as three separate steps, and the first two are optional. The OpenPlantbook integration automatically fetches species data, thresholds and images, and it is optional but recommended, because without it you have to set all thresholds manually. You install it from HACS or manually, register at open.plantbook.io for free, add your client_id and secret in the integration configuration, and test it with the openplantbook.search action. The second optional piece is the Lovelace Flower Card v2, recommended for displaying plant data, installed through HACS or manually. The third step is Plant Monitor itself, and it has two routes. Through HACS you add the repository as a Custom Repository with type Integration, click Install in the Home Assistant Plant integration, and restart Home Assistant. Manually, you copy custom_components/plant/ into your config directory's custom_components folder and restart. After the restart you add plants through Settings, then Devices and Services, then Add Integration, then Plant Monitor.

## Four steps in the config flow

The guided flow has four stages, and the logic between them is easier to grasp before you start. Step one asks for a name and a species. If OpenPlantbook is installed and a species is entered, the flow continues to species selection, and if no species is entered, or OpenPlantbook is not installed at all, it skips straight to sensor selection. Step two, only when OpenPlantbook is present, lists the matches in a dropdown, and you can re-search with a different term or go back and search again if the first choice was wrong. Step three associates physical sensors with the plant, and all of them are optional and can be added or changed later. The available types are temperature, soil moisture, conductivity for soil nutrient level, illuminance, air humidity, carbon dioxide and soil temperature, each with its own device class. Sensors without a source entity are disabled automatically, which the documentation repeats as a tip. Step four sets the minimum and maximum limits for the sensor types you selected, pre-filled from OpenPlantbook when that data is available, and only the thresholds for selected sensor types are shown, unless nothing was selected, in which case all of them appear. You can also set a custom image URL and turn the species name on or off there.

## Thresholds as entities, and unit awareness

The threshold model is what makes this integration usable in a home that is already automated. All thresholds are their own entities, and they can be changed from the user interface or by automations and scripts, and the changes take effect immediately with no restart needed. That last point is the difference between a threshold and a setting: an automation can raise the soil moisture limit for a plant in a humid week without anyone editing a YAML file. Unit handling is handled too. The maximum and minimum temperature thresholds adapt to your Home Assistant unit of measurement, whether that is Celsius or Fahrenheit, and the threshold values update automatically if you change the unit later, so a house that switches units does not end up with limits that silently mean something different. The same pattern applies to the other sensor types, and the sensor table in the documentation maps each one to a device class, which is what allows the values to be displayed and compared correctly.

## DLI and the factor that decides whether it is right

A Daily Light Integral sensor is created automatically for each plant, measuring the total photosynthetically active light received per day, and the documentation links the Wikipedia article on the topic for background. The calculation converts illuminance in lux into PPFD, and that conversion is where the judgement call sits. The default factor is 0.0185, and it is optimised for sunlight, but different light sources need different factors, which is why the factor is exposed as a Lux to PPFD factor entity that you adjust per plant. A grow light and a window produce the same lux reading for very different amounts of useful light, so a plant under a lamp will report a healthy DLI while it is actually starved, unless that factor is set for the lamp. A separate document, DLI.md, covers the calculation pipeline, the conversion factors, troubleshooting low readings and an optional rolling 24-hour sensor for cases where the daily figure is not what you need.

## The repository behind a Home Assistant custom component

The tree shows a conventional custom component with a good deal of supporting work around it. There is a custom_components directory holding the integration itself, a tests directory, a scripts directory, a docs directory, a directory of ready made dashboards including dashboard_all_plants_problems.yaml, and a collection of documents that answer the questions users actually ask, including TIPS.md, MISSING_SENSORS.md, DLI.md, DEVELOPMENT.md, experiments.md and separate notes for version 1 and version 2. The packaging is a plain setuptools build, and the metadata is explicit about the floor:

```toml
[project]
name = "home-assistant-plant"
version = "2025.8.0"
requires-python = ">=3.12"
license = "GPL-3.0-only"
```

The test tooling is unusually thorough for a custom component, with pytest alongside pytest-asyncio, pytest-cov, pytest-freezer, pytest-timeout, pytest-homeassistant-custom-component, syrupy for snapshot testing, black and ruff for formatting, and cronsim for simulating cron schedules. The ruff configuration is aligned with the rule groups Home Assistant core enforces, with the note that the Home Assistant specific pylint plugins are not usable outside the core repository, so this is the portable equivalent. Coverage is measured on custom_components/plant with the tests directory omitted. One inconsistency deserves attention: the packaging metadata still reads 2025.8.0 while the published releases are the 2026.8 and 2026.9 series, with v2026.9.0 tagged on 2026-09-01, v2026.8.1 on 2026-08-11 and v2026.8.0 on 2026-08-05, and the last push to the branch was on 2026-10-07 with the repository not archived.

## Conclusion

homeassistant-plant fits a Home Assistant household that already has soil and light sensors and wants the plant care logic to live in automations rather than in a person's head, since every threshold is an entity that can be read, written and alerted on. It is the wrong choice if you want a drop in that works without any hardware, because the integration does nothing for a plant with no sensors, and it is a poor fit for a house that still runs the built-in plant integration, since the two are declared incompatible. Before you install it, read the warning about the built-in integration, decide whether you will run the OpenPlantbook companion to get species thresholds or set every limit by hand, and set the lux to PPFD factor for your light source rather than leaving the sunlight default in place.

## FAQ

### How do I install the Plant Monitor integration in Home Assistant?

Through HACS, add the repository as a Custom Repository with type Integration, click Install in the Home Assistant Plant integration and restart Home Assistant. Manually, copy custom_components/plant/ into your config directory's custom_components folder and restart. Then add plants through Settings, then Devices and Services, then Add Integration, then Plant Monitor.

### Can I use homeassistant-plant together with the built-in Home Assistant plant integration?

No. The documentation carries a warning that this integration is not compatible with the original built-in plant integration in Home Assistant, so you have to choose one of them rather than run both.

### Which sensors can I attach to a plant in homeassistant-plant?

Temperature, soil moisture, conductivity for the soil nutrient level, illuminance, air humidity, carbon dioxide and soil temperature, each with its own device class. All of them are optional and can be added or replaced later, and a sensor with no source entity behind it is disabled automatically.

## Sources

- [Issues](https://github.com/Olen/homeassistant-plant/issues)
- [License: GPL-3.0](https://github.com/Olen/homeassistant-plant/blob/main/LICENSE)
- [Olen/homeassistant-plant on GitHub](https://github.com/Olen/homeassistant-plant)
- [README](https://github.com/Olen/homeassistant-plant/blob/main/README.md)
- [Releases](https://github.com/Olen/homeassistant-plant/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/olen-homeassistant-plant
