HOME ASSISTANT · 6 MIN READ

Build your Home Assistant dashboard

Turn ESPectre's discovered entities into a focused dashboard for motion, movement history, runtime controls, and on-demand diagnostics.

An ESP32 sending sensing data to the ESPectre dashboard in Home Assistant
ESPectre publishes sensing, control, and diagnostic entities; Home Assistant arranges them into one focused dashboard.

Before you start

Starting from a blank board? Complete the flash and setup guide first. Native firmware and Home Assistant must use the same MQTT broker; MQTT Discovery is enabled by default in published Native firmware.

Step 1 — Find your entity IDs

The maintained dashboard template uses the default ESPHome entity IDs, which start with espectre_. For MQTT Discovery, Home Assistant generates each entity ID when it first registers the entity and preserves later manual changes. Current Home Assistant versions do not derive that ID from the discovery topic's object_id; see Naming of MQTT entities.

  1. Open the entity list

    Go to Settings → Devices & services → Entities, then filter for your ESPectre device.

  2. Identify the active entities

    Open Movement Score, confirm that it belongs to the intended ESPectre device and has a current value, then copy its complete entity ID.

  3. Check whether one prefix is enough

    If the ID ends in movement_score, the part before that suffix is the prefix you can reuse throughout the template. If it ends in a collision suffix such as movement_score_2, you must verify and replace the complete ID of each dashboard entity individually.

SituationMovement Score exampleDashboard change
Default ESPHome namesensor.espectre_movement_scoreNo prefix change
Default Native or Micro device namesensor.espectre_c3_f61093_movement_scoreReplace espectre_ with espectre_c3_f61093_
Entity-ID collisionsensor.espectre_c3_f61093_movement_score_2Replace each affected complete entity ID

These are examples, not values to guess. The chip label, short device ID, custom device name, manual renames, and existing registry entries can all change the final ID. If Home Assistant shows both an unsuffixed entity and an _2 variant, it registered two entities that requested the same ID. The suffix is not part of the device prefix and may differ from one entity to another; use the entities attached to the active device rather than mixing both sets.

Optional — Recreate clean MQTT entity IDs

Use this reset only for Native or Micro MQTT Discovery when stale registrations keep producing duplicate IDs. Dashboard cards and recorder history refer to entity IDs, so note the current IDs and back up the dashboard before changing them.

  1. Keep only one publisher

    Turn off or disconnect every old ESPectre instance that uses the same device identity. Leave the intended device disconnected while cleaning the retained discovery configuration.

  2. Find this device's discovery topics

    With an MQTT client such as MQTT Explorer or your broker tooling, inspect retained topics matching homeassistant/<component>/<object-id>/config. Match the payload's device identifier, device name, and unique_id to the ESPectre device you are resetting.

  3. Remove only the matching configurations

    Publish an empty retained payload to every matching config topic for that device. Home Assistant treats the empty discovery payload as removal of that component; wait for the old entities to disappear. Do not clear homeassistant/# or another device's discovery topics.

  4. Publish one clean entity set

    Reconnect or reboot the intended ESPectre device. It republishes its MQTT Discovery configuration, and Home Assistant creates the entities again. When the unsuffixed IDs are free, the new entities should no longer need _2.

  5. Verify before editing the dashboard

    Confirm that every recreated entity belongs to the intended device, has a current value, and shares the expected prefix. Then update the dashboard template with those exact IDs.

If there is only one active entity set and you merely want cleaner names, open each entity's settings and edit its entity ID instead. ESPectre supplies a unique_id, so Home Assistant stores the rename in its Entity Registry; a Discovery reset is unnecessary.

Step 2 — Create an empty dashboard

  1. Add the dashboard

    Go to Settings → Dashboards, select Add dashboard, and choose New dashboard from scratch.

  2. Name it

    Use a clear name such as ESPectre, choose whether it appears in the sidebar, then select Create.

  3. Take control

    Open the new dashboard, select the edit button, then use the three-dot menu to take control if Home Assistant asks. The template uses the responsive Sections view.

Home Assistant documents the same flow in its dashboard guide and explains the responsive grid in the Sections view reference.

Step 3 — Paste the maintained template

  1. Copy the YAML

    Open the maintained ESPectre dashboard template, select Raw, and copy all of it. This file is the source of truth for the example dashboard.

  2. Open the raw editor

    In the dashboard editor, open the three-dot menu, select Raw configuration editor, replace the existing content with the copied YAML, and save.

  3. Replace the stable prefix

    If Step 1 found a consistent prefix other than espectre_, replace every occurrence of espectre_ with that exact prefix, then save again.

  4. Resolve collision suffixes

    If any active entity ends in _2 or another numeric suffix, replace that complete entity ID on its dashboard row. Do not append the suffix to the shared prefix.

Do not change the entity domains before the dot: Motion Detected remains a binary_sensor, Movement Score remains a sensor, Threshold remains a number, and the other rows retain their discovered domains.

Step 4 — Verify the result

The first column shows motion state, a full-width Movement Score bar, and 30 minutes of movement-versus-threshold history. The second column groups the detection controls and the diagnostics that matter most during installation.

Home Assistant dashboard showing ESPectre motion detected, a full movement-score bar, movement-versus-threshold history, detection profile, threshold, calibration, and CSI diagnostics
The maintained two-column dashboard: live sensing on the left, runtime controls and on-demand diagnostics on the right.

Troubleshooting

Cards show “Entity not available”

  • Compare each entity ID with Settings → Devices & services → Entities.
  • Replace the stable prefix, including its final underscore, then update any numeric-suffixed IDs individually.
  • Remove rows for capabilities that your frontend does not expose.

The graph is empty

  • Wait for Movement Score and Threshold to publish.
  • Confirm that Home Assistant's recorder is enabled for both entities.
  • The template intentionally shows only the most recent 30 minutes.

Diagnostics are stale

  • Select Refresh Diagnostics: these entities are intentionally on demand.
  • Wait a moment for the latest cached sample to appear.
  • Use Traffic TX Rate, CSI Admitted Rate, and RSSI together when checking placement.
Movement Score normally updates every detector evaluation, which is four times per second with the published defaults. If database growth matters more than the history card, exclude that entity from Home Assistant's recorder.