AsusRouter Library and Home Assistant Integration

website·Indexed 32 days ago

https://asusrouter.vaskivskyi.com/

A Python library serving as a comprehensive API wrapper for interacting with ASUSWRT-powered routers. The project includes a Home Assistant integration for automating local networking, monitoring device maps, temperature, and WAN/WLAN status, and managing features like WireGuard, port forwarding, and parental controls.

Tokens
39.4K
Snippets
66
Records
382
Agent score
55%

What's inside AsusRouter

  1. Overview of AsusRouter project components

    AsusRouter is a collection of open-source projects designed to monitor and control network devices using Python and Home Assistant. It consists of the following components:

    • Python library: Core logic for device interaction.
    • Home Assistant integration: Allows device control within the Home Assistant ecosystem.
    • Python emulator: Mimics real device behavior for testing the library, integration, or custom projects without requiring physical hardware.
    • Documentation: Project guides and website.
  2. Overview of AsusRouter projects

    AsusRouter is a collection of open-source projects designed to monitor and control network devices using Python and the Home Assistant ecosystem. The project consists of a Python library, a Home Assistant integration, a Python emulator for testing without physical hardware, and official documentation.
  3. VPN and WAN monitoring capabilities

    Starting from version 0.24.0, the integration supports advanced networking and VPN monitoring for stock and Merlin firmware (388+):

    VPN Support:

    • VPN Fusion (VPN clients)
    • WireGuard (clients and server)
    • OpenVPN (clients and servers)

    WAN and Internet Sensors:

    • internet binary sensor: General state of the internet connection (IP address provided as an attribute).
    • wan and wan_secondary binary sensors: Status of primary and secondary WAN connections.
    • wan_ip and wan_ip_extra (and their _secondary counterparts): IP address sensors.
    • dualwan binary sensor: Status of Dual WAN configuration.
    • wan_aggregation binary sensor: Status of WAN aggregation.
  4. Understand connected device identity attributes

    Connected device identity provides base information about devices exposed in lists and events. The available attributes depend on the AsusRouter version:

    • v0.9.0+: mac (MAC address), ip (IP address), name (hostname).
    • v0.12.0+: connection_type (Wired, 2.4 GHz, 5 GHz, 5 GHz-2, 6 GHz), guest (boolean indicating if connected to guest network).
    • v0.13.0+: connected (connection time for the current session).
    • v0.15.0+: guest_id (ID of the guest network: 1, 2, or 3; 0 if not connected).
    • v0.17.0+: node (MAC address of the AiMesh node the device is connected to).
  5. Understand AiMesh node identity attributes

    AiMesh node identity provides base information about a node or router, used in node lists and events. Available in AsusRouter >= 0.17.0. Attributes include:

    • mac: MAC address of the device
    • ip: IP address assigned to the device
    • alias: User-defined alias from the Web UI
    • model: Device model
    • type: Node type (router or node)
    • connected: Current connection status (boolean)
  6. Asus GT-BE19000 compatibility with AsusRouter

    The Asus GT-BE19000 is reported to be compatible with the AsusRouter integration, although it may not have undergone exhaustive official testing. It supports both Stock and Merlin firmware.
  7. Asus ROG Rapture GT6 compatibility with AsusRouter

    The Asus ROG Rapture GT6 is reported to be compatible with the AsusRouter integration. While not explicitly tested by the maintainers, it is expected to work. The device features a 1.7 GHz tri-core processor and 512 MB of RAM.
  8. Manage connection settings using ARConnectionConfig

    The asusrouter.connection_config module provides tools to manage connection settings used by the Connection class. Configurations can be provided during AsusRouter initialization or set dynamically at runtime. The ARConnectionConfig class and ARConnectionConfigKey enum are used to define and access these settings.