Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

mqtt-arp is an imaginatively named program that uses the Linux kernel netlink interface to watch for details of hosts making ARP requests. It uses these requests to determine if a device is present and report that information via MQTT. I use it on my OpenWRT router to report to a Home Assistant instance.

Rather than reporting all MAC addresses seen mqtt-arp takes a list of MACs to watch for. I have this configured for my phone, resulting in a reasonable proxy for whether I am home or not. mqtt-arp will report as soon as the device is seen, and send rate-limited (at most once every 2 minutes) updates when it is seen again. If the device is not seen for at least 10 minutes the location will be reported as "unknown".

There is basic configuration file support; by default mqtt-arp will read /etc/mqtt-arp.conf. The following aspects can be configured at run time:

  • MQTT host (-h / --host / mqtt_host)
  • MQTT post (-p / --port / mqtt_port)
  • MQTT username (-u / --username / mqtt_user)
  • MQTT password (-P / --password / mqtt_pass)
  • MQTT topic (-t / --topic / mqtt_topic)
  • Location to report when device is present (-l / --location / location)
  • Path to SSL certificate bundle (-c / --capath / capath)
  • MAC addresses to watch for (-m / --mac / mac)

This code is released as GPLv3+ and is available at;a=summary or on GitHub for easy whatever at


Simple tool to watch for ARP presence via Netlink and report using MQTT




No releases published


No packages published