Skip to content

2.4.0

Latest

Choose a tag to compare

@Bunton33 Bunton33 released this 05 Nov 11:24
2c10817

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 new hold_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's held attribute 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 reads off. 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 with update_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 read unavailable instead of off (ignore zones
    stay off), 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 by to: "off" without from: now also fires when the radar
    comes back, which suits lights-off automations. Add from: "on" only
    where that off would be wrong, such as a notification or a counter: it
    then also skips someone who left while the radar was offline, whose zone
    goes from on to unavailable to off. 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.

  • 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_zone takes it as mirror_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-mmwave the 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_zone in 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 ignores view_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-mmwave later 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-hacs links 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.