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’sreportattribute: 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.mdfor 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.yamlsums whichever are mapped. Seemodule-energy.mdfor 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.mdfor 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’sinput_textalready 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. Seemodule-grow-tracker.mdfor the full detail. - Cameras (M13, optional) - added Phase 9 (decision R19). Four
input_text.grow_camera<N>_entity_idmapping fields, one per camera slot - only the reference to an already-configuredcamera.*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. Seemodule-camera.mdfor 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.