Zigbee Map - Visualize your mesh network

Hi all.

Anyone else notice that the Zigbee map is now broken due to the zigbee2mqtt 2.7.0 update?

[ FAIL ] Probing 0x348d13fffe101235 # can’t access property “forEach”, a.neighbors is undefined

2 Likes

Good catch! @dandanache has been really good with his developments. Hopefully he’s aware.

2 Likes

I’ll update to 2.7.0 and see what changed. Thanks for the heads up!

1 Like

Released version 1.2.1 with the following small fix:

Fixed

  • Fix compatibility with Z2M version 2.7.0 - @Spidy

Click here if version 1.2.1 doesn't appear in the 'About' tab after updating.
  • Firefox browser:
    Press Ctrl + F5 (Linux/Windows) or Cmd + Shift + R (Mac).

  • Chrome browser:
    Press F12 (Linux/Windows) or Cmd + Option + I (Mac) to open Developer Tools. Right‑click the Reload button (the circular arrow next to the address bar). Select Empty Cache and Hard Reload.

  • Companion app:
    On your mobile device, go to SettingsCompanion appTroubleshootingReset frontend cache.

Have fun!

2 Likes

Thank you Dan. You deserve a coffe

1 Like

Stupid question; how do I make it work in the Android Companion app? I’ve cleared cache and data, still no go

1 Like

Better map than the actual Z2M maps, thanks!
One feature im searching for for ages is “persistant node positions”.
If i drag my nodes in position / direction aligned with reality they stay pinned just until next refresh.
It would be great for the map to remember the pinned positions, or at least the direction in correspondance of the coordinator. Like router 1 at top (0°), router 2 down left (170°)…
Thanks

1 Like

Doesn’t work on my Android either :frowning:

The console shows this message:
[ FAIL ] Probing 0x00124b0024bd539b # Cannot read properties of undefined (reading ‘forEach’)

1 Like

I’ve got it running fine on my Samsung S24+, so at least “works on my device” :rofl:
Did you already use the SettingsCompanion appTroubleshootingReset frontend cache trick I mentioned earlier? That usually clears things up.

Ah, bummer :confused: What version does it show under the About tab?

This is a legit request; I’ll mess around with it when I get a chance. Thanks for tossing the idea in!

2 Likes

It showed 1.2.0 until I did this:

AND closed the app and re-opened it.

2 Likes

Yup, @dandanache and @chairstacker, that did the trick. Thanks guys :slight_smile:

Awesome integration btw Dan.

1 Like

I seriously have no idea what’s going on. My integration reverted back to 1.2.0.

I then tried to set it up via GPM to get automatic updates and now I get this;

Logger: homeassistant.config_entries
Source: config_entries.py:761
First occurred: 11:15:14 AM (5 occurrences)
Last logged: 11:44:35 AM

Error setting up entry “Zigbee Map” custom panel for zigbee_map
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/config_entries.py”, line 761, in __async_setup_with_context
result = await component.async_setup_entry(hass, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/config/custom_components/zigbee_map/init.py”, line 42, in async_setup_entry
await panel_custom.async_register_panel(
…<8 lines>…
)
File “/usr/src/homeassistant/homeassistant/components/panel_custom/init.py”, line 125, in async_register_panel
frontend.async_register_built_in_panel(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
hass,
^^^^^
…<6 lines>…
config_panel_domain=config_panel_domain,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File “/usr/src/homeassistant/homeassistant/components/frontend/init.py”, line 347, in async_register_built_in_panel
raise ValueError(f"Overwriting panel {panel.frontend_url_path}")
ValueError: Overwriting panel zigbee-map

1 Like

Ugh, never mind, Ctrl-F5 several dozen times seemed to fix it.
Sorry for the traffic

1 Like

Hi @dandanache, it seems I have a little issue here:

I have two motion sensors that keep showing up as ‘missing’:

However, they respond to motion and change the state of their respective entities (binary_sensor.snzb_03_01_occupancy, binary_sensor.snzb_03_02_occupancy) as they should, i.e. they trigger the automations that they are supposed to trigger.

They’ve been showing up as missing since I started using the Zigbee Map, no refresh or ‘Start Again’ makes them show up.

BTW:
Can the search/filter in the devices tab be made to be sticky through the ‘Start Again’ process?
In the case mentioned above, it would be helpful not to have to type in the word ‘Missing’ after every reload.

1 Like

I’ve had the same thing happen with the SNZB‑01, 02, 03, and 04.

My theory goes like this:

Battery‑powered Zigbee devices pick one “parent” to talk to (and they only talk to their parents) and usually stick with it. They won’t switch unless that parent goes offline or the signal is consistently bad.

These devices spend most of their time “asleep” to save battery. While asleep, the radio chip is powered off, so they can’t be reached, even by their parent. They only wake up briefly when they’ve got something to report (motion detected, door opened, temp/humidity change, etc.), power on their radio, quickly send the message to their parent, then go back to sleep.

Normally, child devices should ping their parent occasionally, even if they don’t have anything to report to the Coordinator (Z2M), just to “keep the relationship alive”. My suspicion is that these Sonoff sensors skip this “check‑in” to squeeze out more battery life. That makes them “bad children” and their parent eventually drops them from the list, so they don’t show up in LQI responses, hence the Zigbee Map shows them as “missing” (no router device reported them as their child).

My personal Zigbee hygiene:

  • No Tuya devices - just too much hassle, too much drama.

  • No Sonoff or Aqara either - they’re cheap and popular, but in my experience they’re only reliable 99% of the time. That 1% when a button press doesn’t register or a motion event gets missed drives me nuts.

I am known to be wrong, so take this with a grain of salt :slight_smile:


Bottom line, if you’re happy with your Zigbee mesh, just ignore what Zigbee Map is saying. I only use it as a debug tool when things go wrong and I don’t know where to begin my investigation.

1 Like

I get your point - but I have to say: I like the Sonoff and Aqara devices.
With Tuya, I’m 100% with you - although the Tuya WiFi devices are even worse than the Zigbee ones. But sometimes … there’s not alternative, unfortunately (or at least there wasn’t when I looked).

1 Like

Hi @dandanache,

It looks great and I’m ready to use it as my ZB network is growing fast.

I’ve just installed the map, but it doesn’t show anything. No errors, no nodes.
Looking in the Chrome console, I can see it’s accessing the JS. It’s running the latest version: 1.2.1

I might be on to something, though. For historical reasons, the mqtt topic I’m using is not the standard “zigbee2mqtt” but “zigbee2mqtt-zbt”.

I’m not proficient enough to fully grasp the JS script myself.

Could the non-standard topic be the reason?

Thanks in advance,

Rudi

1 Like

Mhhh,

I just saw you are extracting the base_topic from the configuration, so that’s not the reason it’s not working.

1 Like

That’s unfortunate and not much to work with :slight_smile:

  • Does the panel load? Can you see the initial spinning animation, then the “Map”, “Devices”, “Options” tabs?
  • Any error in the tab named “Console” (the last one)?
  • Any info message or error in the browser console (F12) when you reload the /zigbee-map URL?

Released version 2.0.0 with the following new feature:

Added

  • Add Zigbee Log panel
  • Refactored the HA custom extension (for GPM install)

To manually install the Zigbee Log panel:

  1. Download the panel script: zigbee-log-panel.js

  2. Place the file in your Home Assistant instance’s conf/www directory

  3. Add the following configuration to your configuration.yaml file:

     panel_custom:
       - name: zigbee-log-panel
         url_path: zigbee-log
         module_url: /local/zigbee-log-panel.js
         sidebar_title: Zigbee Log
         sidebar_icon: mdi:list-box-outline
    
  4. Restart Home Assistant

  5. The Zigbee Log panel should now appear in your sidebar


Click here if version 2.0.0 doesn't appear in the 'About' tab after updating.
  • Firefox browser:
    Press Ctrl + F5 (Linux/Windows) or Cmd + Shift + R (Mac).

  • Chrome browser:
    Press F12 (Linux/Windows) or Cmd + Option + I (Mac) to open Developer Tools. Right‑click the Reload button (the circular arrow next to the address bar). Select Empty Cache and Hard Reload.

  • Companion app:
    On your mobile device, go to SettingsCompanion appTroubleshootingReset frontend cache. Restart the app.

Have fun!