Build your Home Assistant dashboard
Turn ESPectre's discovered entities into a focused dashboard for motion, movement history, runtime controls, and on-demand diagnostics.
Before you start
- Your ESPectre device is online in Home Assistant through ESPHome or Native MQTT Discovery. Micro-ESPectre works too when its optional MQTT Discovery adapter is enabled.
- You can see the device under Settings → Devices & services, and its Motion Detected and Movement Score entities have current values.
- You have administrator access, which Home Assistant requires to create and manage dashboards.
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.
Open the entity list
Go to Settings → Devices & services → Entities, then filter for your ESPectre device.
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.
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 asmovement_score_2, you must verify and replace the complete ID of each dashboard entity individually.
| Situation | Movement Score example | Dashboard change |
|---|---|---|
| Default ESPHome name | sensor.espectre_movement_score | No prefix change |
| Default Native or Micro device name | sensor.espectre_c3_f61093_movement_score | Replace espectre_ with espectre_c3_f61093_ |
| Entity-ID collision | sensor.espectre_c3_f61093_movement_score_2 | Replace 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.
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.
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, andunique_idto the ESPectre device you are resetting.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.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.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.
unique_id, so Home Assistant stores the rename in its Entity Registry; a Discovery reset is unnecessary.Step 2 — Create an empty dashboard
Add the dashboard
Go to Settings → Dashboards, select Add dashboard, and choose New dashboard from scratch.
Name it
Use a clear name such as ESPectre, choose whether it appears in the sidebar, then select Create.
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
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.
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.
Replace the stable prefix
If Step 1 found a consistent prefix other than
espectre_, replace every occurrence ofespectre_with that exact prefix, then save again.Resolve collision suffixes
If any active entity ends in
_2or another numeric suffix, replace that complete entity ID on its dashboard row. Do not append the suffix to the shared prefix.
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.
- Move in the room and confirm that Motion changes state and Movement Score updates.
- Confirm that the Threshold line appears in the history graph after the device has published its current value.
- Select Refresh Diagnostics to populate Traffic TX Rate, CSI Admitted Rate, WiFi RSSI, and WiFi Channel. These diagnostic states update on demand.
- Use Trigger Calibration only when the room can remain still during Lightweight calibration.
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.