Repository navigation
How to update. Make a full Home Assistant backup first.
- Home Assistant 2026.11 or later: open Settings → System → Updates (or Settings → Marketplace) and install Apollo mmWave 2.4.0. The first time you open the Marketplace, it asks you to read and accept its warning before it installs or updates anything.
- Home Assistant 2026.10 or earlier (HACS 2.0.5): install the update from Settings. Update one thing at a time, and if a download fails, retry it until it finishes before you restart.
Then restart Home Assistant and reload the page: press Ctrl/Cmd+Shift+R in a browser, or close the Home Assistant phone app fully and open it again. If a card still looks old, reset the app's cache: Android Settings → Companion app → Troubleshooting → Reset frontend cache; iPhone and iPad Settings → Companion app → Debugging → Clear web view cache. If you installed main to test 2.4.0 and skipped the 2.3.0 update, this release is newer, so it is offered normally.
On Home Assistant 2026.11, update from 2.3.0 if you still have zones from before 1.2.0 or from the standalone Zone Mapper: 2.3.0's setup fails there until you do (see the Home Assistant 2026.11 item below).
The zone map on R PRO-1 and MTR-1 tabs now shows what each zone is doing: a
zone lights up while someone is in it, each target is a numbered dot with a
short trail, and Coverage paints where people have been. Zones are added,
named and set in a Zones panel right under the map, instead of two
levels down under Configure → Zones. A zone can stay on for someone who
sits still, or ignore a fan or a curtain. The map is twice as wide on a wide
screen, fills the whole window with one press, and zooms in up to 8x, and
corners snap to round values, so you can place them to the centimeter. You
can mark a zone's corners by walking them,
read a zone's size while you draw it, put a view-only map on a phone
dashboard, and, as an administrator, replay up to 24 hours of movement. On a
phone, a locked map now scrolls the page. If someone used Take control
on the Apollo mmWave dashboard, so it misses the cards added since, a repair
offers to restore the automatic dashboard and keeps the copy. An Apollo
R PRO-1's or MTR-1's Target X and Y now show mm, the unit the radar reports,
instead of the inches Home Assistant picks on US customary units. Gate radar
tabs show the radar's own answer under the Gate Energy chart, and from the
next update on, every tab says when the page runs other cards than Home
Assistant. What changed since the last test build is under
Changed since 2.4.0b3.
Nothing needs changing by hand unless your Lovelace resources are managed in
YAML (replace both ?v= URLs; see
Lovelace resources), or an
automation expects zone presence to read off while the radar is offline. It
now reads unavailable, also after every Home Assistant restart until the
radar connects, so a to: "off" trigger without from: fires when the radar
comes back (see the offline item below). Zone presence also waits for both
of a target's coordinates now, so a zone can turn on or off up to about half
a second later than in 2.3.0 (see the presence item below). Something that
reads an Apollo radar's Target X or Y in inches and that Apollo mmWave cannot
see, such as a YAML template sensor, a dashboard card or another tool, reads
mm after the update (see the Target X and Y item below).
-
Zones under the map. A Zones panel right under the map holds
Add zone, a chip for each zone with a dot in its color, and an editor
for the picked zone. Press a chip, or tap the zone on the map, to pick it.
The editor has the zone's Name, which saves when you press Enter or
leave the field (there is no Save button), its size, Type and
Hold with a line that says what they do, Now (whether someone is
in it), how to draw it, and Delete zone, which asks first. A name,
Type or Hold shows "Saving..." and then "Saved" beside the zone's
heading. A radar with no zones says "No zones yet. Press Add zone, then
drag on the map to draw it." Add zone stops at 32 zones. See
The Zones panel. -
Map settings. Configure is now Map settings, at the bottom of
the card, with Cone rotation, the flip, Movement history and
Clear all shapes. Clear all shapes replaces Clear All Zones
under the map, asks first and says "All shapes cleared". Double-clicking a
zone's chip no longer clears its shape, and a click or a tap in Ellipse
mode picks the zone under it instead of saving a 1 mm ellipse. -
Lit zones, numbered dots and trails. A zone is filled and outlined
solid while its presence sensor is on, pale and dashed while it is off,
and gray while the radar is offline, so you can watch a zone react as you
walk through it. Each target is a dot with its number (Target 1, 2 or 3)
and a fading trail of its last 3 seconds. A zone that stays on because of
its hold time adds "(held)" to its label. A distance label that a zone's
name or a button over the map would cover is left out. See
What the map shows. -
Zoom and pan. The zone map zooms in up to 8x with +, − and
Fit over its lower right corner, with Ctrl or Cmd and the scroll
wheel, or a trackpad pinch in Chrome, Edge and Firefox, and with two
fingers on a phone, also on a locked map. Shift and drag, the middle mouse
button or two fingers move a zoomed map. Fit shows your zones, and
pressed again the whole map. Grid lines get finer as you zoom in, down to
10 cm or 3 in. A plain scroll still scrolls the page, and a view-only map
has no zoom. See
Zoom and pan. -
Expand map. The button in the map's top right corner (Expand
map) fills the browser or app window with the map. Walk, Coverage,
History, the Zones panel and Map settings sit beside it, or under
it on a phone held upright, so you can draw, pick, rename and delete zones
there. Your zoom, the picked zone and an unfinished polygon come along
both ways. On a large screen, where the map is drawn wider than the
card's 800 px, the grid lines and the snap can get finer. To return,
press × before the title, the same corner button, Esc, or Back on
Android. Esc first puts back a zone name you were changing, drops an
unfinished polygon's corners, or closes a Delete zone or Clear all
shapes question; the next Esc closes the window. A view-only map, the
card editor's preview and a map inside a pop-up have no expand button.
See Expand the map. -
A sharper map. The map is drawn at the screen's own resolution, so it
is sharp on phones and other high-resolution screens. The zone map card
draws Home Assistant's own card background, border and corner radius, so
it lines up with the cards around it, and without the padding it had
around it the map is up to 32 px wider. -
Corners snap. Corners you draw land on round values, about a tenth of
the grid line spacing: every 10 cm at 1 m lines, every 2 in at 2 ft
lines, and finer as you zoom in. Hold Alt (Option on a Mac) to place one
freely. Corners marked by walking never snap. See
Drawing zones. -
A wider map. On R PRO-1 and MTR-1 tabs the zone map's column is twice
as wide as the others on a wide screen, and the map is never taller than
the window less about 200 px. On an MTR-1 tab, Start here and Radar setup
sit side by side above the map. Phones are unchanged. -
Zone size. While you draw a rectangle, ellipse or polygon, its width
and depth show above the pointer in the map's unit, such as
"2.4 m × 1.8 m" or "7 ft 11 in × 9 ft 10 in", to the centimeter while
corners snap finer than 10 cm, and higher up on a touch screen so your
finger does not cover them. Near the radar, where there is no room above,
a finger's readout sits beside it. Each zone's editor under the map shows
its size too. -
View-only map. Add a zone map card with
view_only: true, or tick
View only (the map without drawing tools) in its card editor, to show
the map with its lit zones, dots and trails and nothing to press. A finger
on it scrolls the page, so it suits a phone dashboard. The Apollo mmWave
dashboard keeps the full map. See
Card options. -
Mark corners by walking. An administrator can press 🚶 (Mark corners
by walking) in the drawing menu of an unlocked map, or the 🚶 Mark
corners by walking chip under the map on a phone or tablet, stand still
for about 3 seconds in each corner of an area and press Corner here,
then Finish. Two corners make a rectangle, three or more a polygon.
Only the person walking may be on the map, and a zoomed map pans after
them. See
Mark corners by walking. -
Coverage paint. Coverage under the map paints every spot a target
has been since the page opened, so you can see where the radar picks people
up, ghosts included. It stays in your browser, and Clear coverage
empties it. -
Hold time. Each zone has a Hold setting in its editor: Off
by default and up to 30 minutes in the card, or 0 to 3600 seconds with
apollo_mmwave.update_zone's newhold_s. It keeps the zone on after
someone inside goes still and the radar loses them, and still turns the
zone off when the radar sees them walk out: within about 3 seconds when
they walk out into the room, or at once when they walk out of its view
after about two seconds of walking in the zone. Someone seen in the zone
for under about 1.2 seconds walks out only within 0.3 m of an edge,
unless the radar saw them walk at 0.85 m/s or more, so someone who walks
into a couch or bed zone and is lost as they sit down is held. A shorter
or slower walk out of view, from a seat beside a door for example, can
keep the zone held.
Someone new the radar picks up within a few meters in the first 3 seconds
can end a hold early; someone or something it was already tracking counts
only within 0.6 m. A radar reconnect or a Home Assistant restart ends a
hold. The presence sensor'sheldattribute says when a zone is held.
See
Ignore zones and hold time. -
Ignore zones. Set a zone's Type to Ignore to drop every target
inside it, such as a fan or a moving curtain, before the radar's other
zones are checked: it turns no zone on and ends no hold. An ignore zone is
hatched on the map, its targets are hollow gray rings, and its own
presence sensor always readsoff. This is a mask inside Home Assistant,
not the LD2450 Zone Type setting of the R PRO-1 and MTR-1, which should
stay Disabled. Automations can set it withupdate_zone's new
zone_type. -
Zone presence pairs X and Y. A target's X and Y are two writes, and
the R PRO-1 writes Y about 0.45 seconds after X. Zone presence now waits
for both before it tests a zone, so a zone beside a walking path no
longer turns on for a moment at a point between them, a new X with the
old Y, where nobody stood. A zone can turn on or off up to about half a
second later than in 2.3.0, never sooner, and a move along one axis only
counts 0.55 seconds after it is written. The exception is a zone with a
hold time when the radar loses someone between the two writes: it reads
their last X write with the old Y once, as where they were lost, so it
can turn on there and stay on for its hold time. See
Zones in automations. -
Offline presence reads unavailable. While the radar is offline, its
zone presence sensors readunavailableinstead ofoff(ignore zones
stayoff), the zones turn gray and the map says "Radar offline". The same
happens after every Home Assistant restart until the radar connects, and
the Zone presence rows on the dashboard hide meanwhile. An automation
triggered byto: "off"withoutfrom:now also fires when the radar
comes back, which suits lights-off automations. Addfrom: "on"only
where thatoffwould be wrong, such as a notification or a counter: it
then also skips someone who left while the radar was offline, whose zone
goes fromontounavailabletooff. See
Zones in automations. -
Target X and Y in mm. The LD2450 reports where each target is in mm,
and the radar's built-in zone corners and Apollo's zone guides use mm too,
but Home Assistant on US customary units picks inches for the Target X and
Y sensors on its own. Apollo mmWave now shows them in mm on Apollo R PRO-1
and MTR-1 radars:- A radar you add while Home Assistant runs shows mm about 2 seconds
after its sensors appear, with no message. - A radar you already have is switched once, after Home Assistant has
started with 2.4.0. A notification, "Apollo mmWave: Target X and Y now
in mm", lists the radars and sensors it switched and says "Nothing was
written to the radar." - Only the unit Home Assistant picked on its own is switched. A unit you
picked in a sensor's settings stays, and so does a sensor that an
automation, a script or a helper uses, including a device trigger or a
template in an automation. A metric install already shows mm. Each sensor is decided
once, so Apollo mmWave never changes it again, and Target Distance,
Speed and Resolution keep their units. - To go back, open the sensor's settings (⚙), choose in under Unit
of measurement and select Update. - For a radar whose sensors were left alone, the Radar setup card
above the zone map tells administrators which unit Home Assistant shows
and offers Show Target X and Y in mm.
Automations, templates and history graphs read these sensors in mm after
the switch, and a history graph that spans it shows a step of 25.4 times.
The zone map and zone presence work in either unit, as they have since
2.2.7. The zone map's grid line under Map settings names the unit the
target sensors show, and the support file says for each one whether its
unit was picked and whether Apollo mmWave switched it or left it. See
Target X and Y units. - A radar you add while Home Assistant runs shows mm about 2 seconds
-
Movement history. Off until an administrator ticks Movement
history for a radar under Map settings. Home Assistant then keeps up
to 24 hours of that radar's target positions in
.storage/apollo_mmwave.movement, and History under the map replays
them, with the zones lighting up, a heatmap and a timeline. A move is
recorded once both of its coordinates are in. Only administrators can
turn it on, open it or clear it. Backups include the file. The support
file never does: it only says whether history is on and how many points it
holds. Turning it off deletes that radar's history from Home Assistant,
while backups made before keep their copy. See
Movement history. -
Flip left to right. If, with the map turned the way the room is, a
dot moves the opposite way from you, an administrator can tick Flip the
map left to right (display only) under Map settings, and everyone
sees that radar's map flipped. Zones, presence and history are not
changed.update_zonetakes it asmirror_x. A hint under Cone
rotation says to mount the sensor before you set it. -
Restore the automatic dashboard. A dashboard someone took control of
keeps the cards of the release it was saved under, so it misses the Radar
setup card, LD2450 Controls (Zone Type and Multi Target Tracking), the
Device card and this release's layout. While the dashboard Apollo mmWave
created is such a saved copy, Settings → System → Repairs lists "The
Apollo mmWave dashboard is a saved copy", and the integration's options
offer Restore the automatic dashboard. Nothing changes until you press
Submit. Then your copy is kept as a dashboard of its own, Apollo
mmWave (saved copy), out of the sidebar (open it from Settings →
Dashboards), and only after that is/apollo-mmwavethe automatic
dashboard again. The repair covers only the dashboard the integration
still knows as the one it created: not one taken control of under 2.2.5
or earlier, nor one whose options were saved after it was taken control
of, from 2.2.6 to 2.4.0b3, since those releases forgot it then. See
A saved copy misses new cards
and its Troubleshooting item for those. -
Phone and lock fixes. A swipe that starts on a locked map, on a map in
Walk, or on a map with no zone selected scrolls the page instead of being
taken for drawing. The lock covers drawing, Walk, Clear all shapes and
Cone rotation: while the map is locked, Clear all shapes clears
nothing and says "Unlock the map to clear zones.", a tap on a zone picks
it, and the zone's editor has an Unlock button. Names, Type, Hold,
Add zone and Delete zone work while it is locked. The lock
messages say "map" instead of "grid". Finishing a polygon with fewer than
3 points now says "A polygon needs at least 3 different points." A radar
going offline or coming back no longer rebuilds the dashboard, which
dropped a zone being drawn on any tab; a tab's "Offline right now" note
now stays until you reload the page. -
Zone names. Clearing a zone's name sets its entities back to "Zone 1"
and "Zone 1 presence" instead of "Zone 1 - Zone 1". A name sent with
update_zonein the call that creates a zone now renames its entities
too, and a zone that reuses the number of a deleted one starts with fresh
entity names (its entity id still comes back; see
Zones in automations). -
LD2450 Presence. The first row of LD2450 Live and the LD2450's line in
the occupancy history read "LD2450 Presence" on every tab, so it is clear
that it covers the radar's whole view, not a zone. -
Counts as whole numbers. LD2450 Live showed the radar's Target Count
as "0.0", and the Radar's built-in zones card showed each zone's
counts the same way. The Target Count now sits under LD2450 Live's rows as
a whole number, and the built-in zones' counts are a table of whole
numbers under their corners. Nothing is written to the sensors. -
Combined Presence in Start here. On R PRO-1 firmware newer than
26.3.2.1, which adds Combined Presence (on while either radar sees
someone), Start here recommends it for whole-room automations, as the
Apollo wiki does. With older firmware the advice is unchanged. See
Start here. -
Gate radar tabs. The Gate Energy chart's legend says "outlined bar =
above threshold" instead of "(detecting)", gates outside the radar's range
are faded, and while Radar Engineering Mode is on a line under the chart
gives the radar's own answer, such as "The radar reports no target." On an
LD2410 that reports no target while a bar is outlined, a second line says
that it often needs someone who sits still to move before it detects them
again. The Distances card reads "distance unknown" instead of drawing 0
while the radar reports a target with no distance. On MSR-1 and MSR-2
tabs, Start here and the LD2410 Zone Config note recommend Radar
Target for automations instead of Any zone, since the zone sensors
need that distance. The Auto-calibrate card says to raise Radar Timeout to
60 s or more if Radar Target turns off while someone sits still. See
Gate radar cards. -
Out-of-date pages. After an update, the Radar setup card, or the zone
map card when it comes first on the page, says when the page still runs
the old cards, with a Reload button, or when Home Assistant needs a
restart to finish updating. This works from the next update on, once the
page runs these cards: cards from 2.4.0b2 and earlier, 2.3.0 among them,
have no check, so on the update from them, reload the page even when no
notice shows. See
After an update. -
README links. Old links to the README's
#install-with-hacs, such
as the one in the 2.2.6 notes, land on the install heading again. -
Going back to 2.3.0. Before going back to 2.3.0, turn Movement history
off on every radar. 2.3.0 neither reads nor deletes the movement history
file, so it would stay on disk and in every later backup. 2.3.0 also
forgets each radar's flip, treats ignore zones as detect zones and holds
no zone. It ignoresview_only, so view-only cards show the full map with
its drawing tools again, and on a phone a swipe that starts on the map
does not scroll the page: remove or replace those cards first. A saved
copy that a restore kept stays a dashboard of its own. See "Going back to
an older release" under
Troubleshooting. -
Credits. Ideas for several of these features, such as the hold time
and movement replay, came from
bb12ett/esphome-radar-suite
and baes-cloud/ha-rmm-replay,
both MIT licensed. They were reimplemented here, and no code was copied.
Changed since 2.4.0b3
2.4.0b3 owners found the zone settings hard to reach, under Configure →
Zones below the map, and the map cramped. A dashboard taken control of
under an older release showed none of the cards added since, such as
LD2450 Controls with Multi Target Tracking, and moving Target X and Y
off inches meant opening six sensors' settings one at a time.
- Zones panel. New: Zones under the map, with Add zone, the
zone chips and the picked zone's editor (name, size, Type, Hold, Now, how
to draw it and Delete zone). Configure → Zones is gone. The name
saves on Enter or when you leave the field, with no Save button, and
Name, Type and Hold show "Saving...", "Saved" or "Not saved" beside the
zone's heading instead of a "Couch saved" message. A tap on a zone on the
map picks it. - Map settings. Configure is renamed Map settings. Clear All
Zones moved there as Clear all shapes, which asks first; its message
is now "All shapes cleared". Delete zone asks first too. A
double-click on a zone's chip no longer clears its shape, and a click or a
tap in Ellipse mode no longer saves a 1 mm ellipse. - Restore the automatic dashboard. New: the repair "The Apollo mmWave
dashboard is a saved copy" and the options action Restore the automatic
dashboard, which keep your copy as Apollo mmWave (saved copy) and
put the automatic dashboard back. A saved copy also stays recorded when
you save the options, so the restore stays on offer. Deleting the
integration's dashboard while it runs makes it forget that dashboard, so
one you make on/apollo-mmwavelater is not taken for a saved copy. - Dashboard text. The MTR-1 and R PRO-1 Start here steps, the Zone
presence card's hint and the note under LD2450 Controls now point to
Add zone, Map settings and Hold under Zones. - Expand map. New: the expand button in the map's top right corner
fills the window with the map and its Zones panel. × before the title, the
same button, Esc or Back returns to the card with your zoom and picked
zone. - Sharper map and card edge. New: the map is drawn at the screen's own
resolution, and the card draws Home Assistant's card background, border
and corner radius instead of its own padding, so the map is up to 32 px
wider. - Target X and Y in mm. New: Apollo R PRO-1 and MTR-1 radars show
Target X and Y in mm, a new radar at once and an existing one once after
the start, with one notification and the safeguards described above. The
Radar setup card offers Show Target X and Y in mm to administrators
for sensors left alone. The zone map's grid line names the units the
target sensors show, and the support file says whether each one's unit
was picked and who picked it. - Counts as whole numbers. LD2450 Live's Target Count and the built-in
zones' counts read whole numbers instead of "0.0". - Combined Presence in Start here. On R PRO-1 firmware newer than
26.3.2.1, Start here recommends Combined Presence for the whole room. - README links. Old
#install-with-hacslinks land on the install
heading again. - Card size. The zone map card now gives Home Assistant a card size of
14 instead of 8, so a masonry view of your own may place the cards around
it differently. - Out-of-date pages. 2.4.0b3's cards have the check, so after updating
from 2.4.0b3 a page that still runs it says so, with a Reload button. - Home Assistant 2026.11. Fixed: on Home Assistant 2026.11, setup failed
on every start for anyone who still had zones from before 1.2.0 or from
the standalone Zone Mapper and no Apollo mmWave zone store yet, because
Home Assistant 2026.11 changed how restored states are read. 2.3.0 and
earlier have this problem on 2026.11. On 2026.11, a zone you renamed also
shows the device name in front of its name, as other entities do.