Skip to content

Dashboard 1 - Configuration

File: dashboards/dashboard_1_configuration.yaml

What it’s for

Dashboard 1 is the single place where you tell the Grow Assistant which physical Home Assistant entity plays which role - it never hardcodes an entity ID anywhere else in the project (see module-core.md for why). One input_text.grow_map_* field per mappable function; paste (or search-and- pick, see below) the real entity ID into it, and every other module picks it up automatically the next time its automations/templates run - no restart needed for a mapping change itself, only for a first-time package deployment.

Originally built entirely from stock Lovelace cards - no HACS dependency - so it worked immediately after a fresh Phase 1 deployment, before HACS was even installed. As of Phase 9 (2026-08-28), the two static explainer notes on this page (“How to fill in mappings”, “Energy Sub-Metering”) are collapsed inside a custom:expander-card (HACS, expanded: false by default) - see “Growlink polish” in dashboard-2-climate.md for the full rationale. Everything else here (every mapping field, the live “Setup Status” card) is still stock Lovelace and needs no HACS card to work.

Layout (single “Configuration” view)

  • How to fill in mappings without copy/paste - points at the search-based picker described in mapping-tool.md, the recommended way to fill these fields instead of typing entity IDs by hand.
  • Setup Status - live read of sensor.grow_core_validation’s report attribute: a green all-clear, or a bullet list of every current issue (missing required mapping, a mapped entity that no longer exists, the same entity assigned twice). This is the fastest way to tell if something broke after a Zigbee re-pairing, entity rename, or device replacement - check here first before digging into any specific module.
  • IO Devices - Required - Temperature Sensor, Humidity Sensor, and at least one of Dehumidifier/Humidifier. The Grow Assistant is designed to run safely with only these set; everything else below is optional.
  • IO Devices - Optional - every actuator the rest of the project can proxy through packages/grow_actuators.yaml: both light groups (4 slots each), both irrigation pumps, exhaust/intake/circulation fans, drain pump, AC, Power Master, CO2 valve/sensor. Leave anything you don’t physically have blank - the corresponding module treats it as “not installed”, not as a fault (see the “not a fault” clarifications added to Dashboard 2’s Devices/Light/Air tile grids in the 2026-08-28 UX pass).
  • Energy: Master Config - currency selector and price per kWh/liter of nutrient solution, moved here from Dashboard 2’s Energy view on 2026-08-29 together with the rest of this project’s one-time setup fields. See module-energy.md for how these feed the cost figures.
  • Energy Sub-Metering (Light/Climate Devices) - 15 independently optional per-device power-sensor fields (wattage, not the on/off switch), one section per group. Only map the devices you actually have power-monitoring hardware for; packages/grow_energy.yaml sums whichever are mapped. See module-energy.md for how Total/Light/Climate are derived from these.
  • Light Output Calibration (optional) - per-group Max Wattage and 3-point PPFD calibration (20/50/100% at a fixed 30cm reference distance), for both Top Light and Under Canopy - also moved here from Dashboard 2’s Light view on 2026-08-29. Requires the matching device(s) to be mapped under “Energy Sub-Metering - Light Devices” above; see module-light.md for the full Wattage %/PPFD estimator design.
  • Optional Weather Station Sensors - GW1200A-style extras (dew point, relative/absolute pressure, an extra soil-moisture sensor). Purely informational - never feeds any regulation logic, only the dashboard display.
  • Substrate Sensor 1-4 - VWC/EC/Temp mapping per physical probe, plus the input_boolean.grow_avg_include_sensor<N>_<metric> toggles that control whether each one counts toward the averaged sensors Irrigation and Dashboard 2 actually read.
  • Irrigation Parameters - plant count, dripper count, dripper flow rate (L/h) - used by Irrigation (M2) to compute delivered water volume per event.
  • Grow Tracker - Grow Cycle ID, the seedling/vegetation/flower/drying start dates, expected-flower-days, and Harvest Completed. This is now the only place any of these are editable - Dashboard 2’s Overview shows the derived read-only fields (Current Phase, Day in Phase, Flower Day, Expected Harvest Date) plus a read-only mirror of the Cycle ID, but has no editable copy of any of them (the Overview redesign of 2026-08-28 removed its duplicate editable card for exactly this reason - see dashboard-2-climate.md). Two buttons sit right below this card: Save Cycle ID posts a confirmation notification echoing back whatever is currently in the Grow Cycle ID field (Home Assistant’s input_text already auto-commits on edit, so this is a deliberate “yes, that’s saved” moment rather than a technically necessary step); Reset Cycle ID clears the field to empty, which also lets it auto-fill again from your next Seedling / Cutting Start date. See module-grow-tracker.md for the full detail.
  • Cameras (M13, optional) - added Phase 9 (decision R19). Four input_text.grow_camera<N>_entity_id mapping fields, one per camera slot - only the reference to an already-configured camera.* entity lives here, never a stream URL or credentials (those are set up directly in Home Assistant’s own camera integration). Each slot’s display Name, Enabled toggle, and the live view itself live on Dashboard 2’s new “Cameras” view instead, alongside the module’s other live control-panel fields - same split already used for Light’s per-slot “In Use” toggles. See module-camera.md for the full setup guide.

Relationship to the search-based mapping tool

Every input_text.grow_map_* field here - and the 4 grow_camera<N>_entity_id fields above, which live outside that naming prefix but use the same mechanism - can be edited two ways: type/paste an entity ID directly into the field, or use script.grow_assign_mapping (Developer Tools -> Actions -> “Grow Assistant: Set Mapping”) to search for and pick a device instead - see mapping-tool.md for the full walkthrough. Both write to the exact same helper; there’s no functional difference, the script just avoids having to look up and copy/paste an entity ID from elsewhere in Home Assistant.

Known limitation

Same one documented in module-core.md: sensor.grow_core_validation’s top-level issue count can lag one update cycle behind its own report attribute. Setup Status above reads the report attribute directly, so it is always current - only a raw look at the sensor’s bare state (not done anywhere on this dashboard) would show the stale number.