Asuswrt


The asuswrt component is the main component to connect to a ASUSWRT based router.

There is currently support for the following device types within Home Assistant:

  • Presence Detection - The asuswrt platform offers presence detection by looking at connected devices to a ASUSWRT based router.
  • Sensor - The asuswrt sensor platform allows you to get upload and download data from your ASUSWRT within Home Assistant.

Configuration

To use an ASUSWRT router in your installation, add the following to your configuration.yaml file:

# Example configuration.yaml entry
asuswrt:
  host: YOUR_ROUTER_IP
  username: YOUR_ADMIN_USERNAME

Configuration Variables

host

(string)(Required)The IP address of your router, e.g., 192.168.1.1.

username

(string)(Required)The username of a user with administrative privileges, usually admin.

password

(string)(Optional)The password for your given admin account (use this if no SSH key is given).

protocol

(string)(Optional)The protocol (ssh or telnet) to use.

Default value: ssh

port

(integer)(Optional)SSH port to use.

Default value: 22

mode

(string)(Optional)The operating mode of the router (router or ap).

Default value: router

ssh_key

(string)(Optional)The path to your SSH private key file associated with your given admin account (instead of password).

require_ip

(boolean)(Optional)If the router is in access point mode.

Default value: true

sensors

(list)(Optional)List of enabled sensors

upload

TX upload sensor

download

RX download sensor

download_speed

download mbit/s sensor

upload_speed

upload mbit/s sensor

You need to enable telnet on your router if you choose to use protocol: telnet.

Example Sensor Configuration

To enable ASUSWRT sensors as part of your installation, reference the following example configuration:

# Example configuration.yaml entry
asuswrt:
  host: YOUR_ROUTER_IP
  username: YOUR_ADMIN_USERNAME
  ssh_key: /config/id_rsa
  sensors:
    - upload
    - download
    - upload_speed
    - download_speed

The example above, creates the following sensors:

  • sensor.asuswrt_download (unit_of_measurement: Gigabyte - Daily accumulation)
  • sensor.asuswrt_download_speed (unit_of_measurement: Mbit/s)
  • sensor.asuswrt_upload (unit_of_measurement: Gigabyte - Daily accumulation)
  • sensor.asuswrt_upload_speed (unit_of_measurement: Mbit/s)

Padavan custom firmware (The rt-n56u project)

The rt-n56u project does not store dnsmasq.leases which is used to track devices at /var/lib/misc/ as asuswrt do. However this component can still be used for the rt-n56u project by linking dnsmasq.leases during the boot process of the router.

Follow these steps to setup the link.

  1. SSH or Telnet into the router. (default ssh admin@my.router)
  2. Run the following command to find the file:
$ find / -name "dnsmasq.leases" 
  1. Copy or remember the full path of, example: /tmp/dnsmasq.leases
  2. Create the folder if it does not exist:
$ mkdir -p /var/lib/misc
  1. Add the linking process to the routers started script (one line):
$ echo "/bin/ln -s /tmp/dnsmasq.leases /var/lib/misc/dnsmasq.leases" >> /etc/storage/started_script.sh
  1. Reboot the router or link the file:
$ /bin/ln -s /tmp/dnsmasq.leases /var/lib/misc/dnsmasq.leases

The started script is also accessible and editable in the Router’s web interface. Advanced Settings -> Customization -> Scripts -> Custom User Script -> Run After Router Started