🪴 Material Plant Card – a Material 3 Expressive card for plant monitor (range tiles, history graphs, compact gauges)

Hi everyone! :waving_hand:

After Material Thermostat Card and Material Purifier Card, my plants were the last thing on the dashboard still using the old look, so here’s the third sibling. Material Plant Card is a Material 3 Expressive card for Olen’s plant monitor integration, meant as a drop-in replacement for the much-loved flower-card. It pairs nicely with Nerwyn’s material-you-theme.

:sparkles: Highlights

  • :repeat_button: Drop-in flower-card replacement: change type: and your existing config keeps working (entity, name, display_type, show_bars, hide_species, hide_image, battery_sensor).
  • :compass: Two modes: Full metric tiles, or Compact circular gauges that are actually smaller than flower-card (327×160 vs 327×203 at the same width).
  • :straight_ruler: Range tiles instead of bars: ticks at the ideal bounds, the period’s min→max drawn green inside the ideal range and red outside it, a ring for the current value, a triangle for the average, and Min / Avg / Max that turn into red badges when they’re out of range.
  • :chart_increasing: History graphs for any metric: zoomed to what was actually observed, with min / avg / max gridlines, a line that’s green when ideal and red when not, min/max markers, and a hover/scrub bubble with the time and value. Touching the graph doesn’t open more-info, so scrubbing works on phones. Today and 24h graphs use 5-minute statistics.
  • :sunrise: Daylight-aware light, more below.
  • :seedling: DLI that makes sense: the daily maximum (that day’s total) over 1 to 30 days, instead of a 24h min/max of a counter that resets at midnight.
  • :police_car_light: Problem states at a glance: a badge on the photo, a Moisture low · DLI low subtitle and red tiles. Each metric can follow plant monitor’s own triggers or use its own: outside the range, too low only, too high only, or never.
  • :battery: iOS-style battery with the percentage inside the icon, red below 10%.
  • :puzzle_piece: Metrics you add, like the features in the sister cards: each one gets its own icon, display (summary or graph), history window (today, 24h, 3 / 7 / 14 / 30 days) and problem trigger. Mix summary and graph tiles in the same card.
  • :clapper_board: Entry animations, Material You colours with HA theme fallbacks, reduced motion respected.
  • :hammer_and_wrench: Full visual editor with an add / drag-to-reorder / edit metrics list.
  • :package: No extra integrations: all history comes from Home Assistant’s own recorder statistics, in your HA time zone.

:sunrise: Daylight-aware light

Light is the metric every plant card gets wrong. At night every sensor reads 0 lx, so “min 0” tells you nothing, the average gets dragged down by darkness, and a red “too low” at 2 am is just noise. So the card looks at the sun:

  • It works out sunrise and sunset from your Home Assistant location and only counts readings between sunrise + 30 min and sunset − 30 min. The golden-hour padding is configurable per card.
  • Min / Avg / Max and the range bar describe the daylight your plant actually got, using 5-minute statistics so the cutoff lands where the marker is drawn.
  • On graphs the line still shows the whole day, with sunrise/sunset icons and dotted lines marking the cutoff, and the min/max markers ignore the night.
  • A dark reading after sunset isn’t shown in red unless plant monitor itself says it’s a problem.


:camera_with_flash: A few more shots




:package: Install

It’s a HACS custom repository (category Dashboard):

Open in HACS

:right_arrow: GitHub: GitHub - lageorgem/ha-material-plant-card: A Material 3 Expressive plant card for Home Assistant's plant monitor integration: summary or graph metric tiles, compact circular gauges, problem states and a battery indicator. · GitHub
(full docs, a gallery with the YAML for every screenshot, and manual-install steps in the README)

:rocket: Quick start

type: custom:material-plant-card
entity: plant.monstera
battery_sensor: sensor.monstera_battery
metrics:
  - type: moisture
  - type: temperature
  - type: illuminance
    display: graph
  - type: dli
    days: 14

Coming from flower-card? Just change the type:

type: custom:material-plant-card   # was custom:flower-card
entity: plant.monstera
battery_sensor: sensor.monstera_battery
show_bars: [temperature, humidity, moisture, illuminance, dli, vpd]

…and for the small version, add display_type: compact (optionally gauges_per_row: 3 and gauge_size: 60).

:electric_plug: What it needs

The plant monitor integration with its sensors, and the recorder (on by default) for history. DLI comes from plant monitor’s own DLI sensor, and the battery is any battery sensor you point it at. I’ve been running it on 11 plants at home.

:speech_balloon: Feedback welcome

It’s MIT-licensed, has a visual editor for everything, and ships with 500+ automated tests. It’s inspired by flower-card but written from scratch, so huge thanks to Olen for both the integration and the original card. I’d love to hear how it behaves with your sensors, units and themes: what works, what’s missing, what breaks. Issues and PRs very welcome. :folded_hands: