As an alternative to the router-based device tracking, it is possible to directly scan the network for devices by using Nmap. The IP addresses to scan can be specified in any format that Nmap understands, including the network-prefix notation (
192.168.1.1/24) and the range notation (
If you are running Home Assistant Core in a Python virtual environment, you might have to install the packages for
On Debian based hosts (for example Raspbian) do so by running
sudo apt-get install net-tools nmap.
On a Fedora host run
sudo dnf -y install nmap.
Adding Nmap Tracker to your Home Assistant instance can be done via the user interface, by using this My button:
If the above My button doesn’t work, you can also perform the following steps manually:
An example of how the Nmap scanner can be customized:
Network range to scan using CIDR notation. In the example above it will scan addresses from
Frequency of the scans. The lower the number, the quicker it will detect devices connected and disconnected usually at the cost of the devices battery life. The example above will scan every minute.
A comma-separated list of IP addresses not to scan. The above example will skip
Nmap command line parameters which can be used to configure how Nmap scans the network. For more details see Nmap reference guide.
On Linux systems (such as Hass.io) you can extend the functionality of Nmap, without having to run it as root, by using Linux capabilities. Be sure to specify the full path to wherever you installed Nmap:
sudo setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip /usr/bin/nmap
And you can set up the device tracker scan options with
See the device tracker integration page for instructions how to configure the people to be tracked.