mikrotik platform offers presence detection by looking at connected devices to a MikroTik RouterOS based router.
There is currently support for the following device types within Home Assistant:
- Presence Detection
You have to enable accessing the RouterOS API on your router to use this platform.
/ip service set api disabled=no port=8728
Go to IP -> Services -> api and enable it.
Make sure that port 8728 or the port you choose is accessible from your network.
To use a MikroTik router in your installation, add the following to your
# Example configuration.yaml entry mikrotik: - host: IP_ADDRESS username: ROUTEROS_USERNAME password: ROUTEROS_PASSWORD
The IP address of your MikroTik device.
The username of a user on the MikroTik device.
The password of the given user account on the MikroTik device.
The login method to use on the MikroTik device. The
plainmethod is used by default, if you have an older RouterOS Version than 6.43, use
tokenas the login method.
RouterOS API port.
8728 (or 8729 if SSL is enabled)
Use SSL to connect to the API.
Override autodetection of device scanning method. Can be
wirelessto use local wireless registration,
capsmanfor capsman wireless registration, or
dhcpfor DHCP leases.
Use ARP ping with DHCP method for device scanning.
As of version 6.43 of RouterOS Mikrotik introduced a new login method (plain) in addition to the old login method (token). With Version 6.45.1 the old token login method got deprecated.
In order to support both login mechanisms, the new config option
login_method has been introduced. If this option is not set, the component will try to login with the plain method first and the token method if that fails.
That can cause log entries on the router like
login failure for user homeassistant from 192.168.23.10 via api but doesn’t keep the component from working.
To get rid of these entries, set the
plain for Routers with OS versions > 6.43 or
token for routers with OS versions < 6.43.
To use SSL to connect to the API (via
api-ssl instead of
api service) further configuration is required at RouterOS side. You have to upload or generate a certificate and configure
api-ssl service to use it. Here is an example of a self-signed certificate:
/certificate add common-name="Self signed demo certificate for API" days-valid=3650 name="Self signed demo certificate for API" key-usage=digital-signature,key-encipherment,tls-server,key-cert-sign,crl-sign /certificate sign "Self signed demo certificate for API" /ip service set api-ssl certificate="Self signed demo certificate for API" /ip service enable api-ssl
ssl: true to
mikrotik device tracker entry in your
If everything is working fine you can disable the pure
api service in RouterOS:
/ip service disable api
To use this device tracker you need restricted privileges only. To enhance the security of your MikroTik device create a “read only” user who is able to connect to API and perform ping test only:
/user group add name=homeassistant policy=read,api,!local,!telnet,!ssh,!ftp,!reboot,!write,!policy,test,!winbox,!password,!web,!sniff,!sensitive,!romon,!dude,!tikapp /user add group=homeassistant name=homeassistant /user set password="YOUR_PASSWORD" homeassistant
mikrotik: - host: 192.168.88.1 username: homeassistant password: YOUR_PASSWORD ssl: true arp_ping: true method: dhcp track_devices: true - host: 192.168.88.2 username: homeassistant password: YOUR_PASSWORD ssl: true port: 8729 method: capsman track_devices: true
See the device tracker integration page for instructions on how to configure the people to be tracked.