-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Welcome to the glinet-router documentation. This wiki is meant to help you find the right guide quickly, whether you are setting up the integration for the first time or looking for a specific feature.
glinet-router is a local polling Home Assistant integration for GL.iNet travel and home routers (such as the Beryl, Slate, Mango, Flint, and similar product lines). It talks directly to the router's built-in JSON-RPC endpoint (/rpc) over your local network — no cloud account, no third-party service, and no outbound traffic is required.
The integration provides:
- Core router telemetry — system load, memory/flash usage, CPU temperature, uptime, and WAN status for every detected interface.
- Device tracking & diagnostics — connected clients with per-client bandwidth and IP address sensors.
- WiFi and hardware controls — enable/disable individual SSIDs, toggle the system LED, run a fan test, or reboot the router.
- Optional modules — cellular/modem status, repeater site surveys and saved networks, SMS send/receive, WireGuard & OpenVPN client/server toggles, Tailscale, ZeroTier, AdGuard Home, firewall rules & port forwards, KMWAN/MWAN3 multi-WAN policy, parental and access control, MCU battery & OLED configuration, and an API playground.
- Firmware updates — a native Home Assistant update entity that pulls release notes from the router.
- Sanitized diagnostics — diagnostic downloads with all sensitive data (passwords, tokens, MACs, phone numbers) masked.
All communication happens over your local network using the credentials you provide during setup. If a feature isn't available on your router model, the integration detects that automatically and skips the related calls without breaking the rest of the integration.
- Open HACS in Home Assistant.
- Search for GL.iNet Router.
- Click Download, then restart Home Assistant when the install finishes.
- Download the latest source code or release ZIP from the repository.
- Extract the
custom_components/glinet_routerdirectory. - Copy the
glinet_routerfolder into Home Assistant'sconfig/custom_components/directory. - Restart Home Assistant.
- A GL.iNet router running a firmware that exposes the local JSON-RPC API at
/rpc(most recent GL.iNet 3.x and 4.x firmwares). - The admin password for the router's
rootaccount (this is the same password used to log in to the GL.iNet admin web UI). - Network reachability from the Home Assistant host to the router (default address
http://192.168.8.1).
- In Home Assistant, go to Settings → Devices & Services.
- Click Add Integration in the bottom-right corner.
- Search for GL.iNet and select it.
- Enter your router URL (default:
http://192.168.8.1) and admin password. - Choose your setup options, including whether you want device tracking, the polling update frequency, and any optional features to enable.
- The integration will test the connection and authenticate before saving the entry.
The router is auto-discovered via DHCP if its hostname starts with
gl-and the MAC prefix matches a known GL.iNet OUI (94:83:C4:*). In that case, Home Assistant will offer the integration in the Discovered section of Devices & Services.
To completely remove the GL.iNet Router integration from Home Assistant:
- Go to Settings → Devices & Services.
- Find the GL.iNet Router integration card and click it.
- Click the three-dot menu in the top-right corner of the device page and choose Delete.
- Confirm the deletion in the dialog.
When removed, Home Assistant will:
- Unload all platforms (sensors, switches, buttons, device trackers, select, update, binary sensor) created by the integration.
- Remove the integration's config entry from
.storage/core.config_entries. - Remove the device and its entities from the entity and device registries.
- Forget the device's MAC address as a unique ID so you can re-add the same router later.
Removing the integration does not change any settings on the router itself — the router will continue running with whatever configuration you have on it. The integration only stops talking to the local JSON-RPC API.
If you installed via HACS, you can additionally remove the custom repository from HACS to keep your store clean. If you installed manually, delete the custom_components/glinet_router directory and restart Home Assistant.
These pages cover what the integration provides, how to configure it, and how to use it in Home Assistant.
- Feature Matrix - A quick overview of supported features and actions.
- Entity Reference - Detailed list of sensors, switches, buttons, and trackers.
- Services & Actions - Guide on using Home Assistant services to control your router.
- Automation Templates - Ready-made automations you can paste into Home Assistant.
- Smart Fan - Fan status, speed, and temperature threshold controls.
- Unknown Device Management - Discovery, cleanup, and allow/blocklist handling for unknown devices.
- SSL Verification - Manage TLS certificate validation for self-signed router certificates.
- Refresh Clients - Force a client list refresh outside the normal polling cycle.
-
Targeting a Specific Router - Use the optional
macparameter to address a single router. - Triggers - Building automations that react to GL.iNet router state.
- Conditions - Using Home Assistant's built-in conditions on integration entities.
- Buttons - Reboot and fan test buttons.
- Firmware Update - Native Home Assistant firmware update entity.
- Device Trackers - Per-client device tracking.
- System Sensors - CPU, load, memory, flash, WAN status, and client bandwidth sensors.
- Core Switches - WiFi interface and system LED switches.
- Core Binary Sensors - Fan status and other core binary sensors.
These pages cover configuration, entities, and services for optional modules that can be enabled on supported routers:
- Cellular - Monitor cellular connection, signals, and modem diagnostics.
- Repeater - Connect to and scan for external WiFi networks, manage saved networks.
- SMS - Send, receive, and delete text messages.
- Tailscale - Enable or disable Tailscale integration.
- WireGuard Client - Toggle configured WireGuard client profiles.
- WireGuard Server - Manage the built-in WireGuard server.
- OpenVPN Client - Manage and select OpenVPN client configurations.
- OpenVPN Server - Manage the built-in OpenVPN server.
- ZeroTier - Enable or disable ZeroTier VPN connections.
- AdGuard Home - Enable/disable AdGuard Home and DNS redirection.
-
Firewall - Manage firewall rules, port forwarding, and DMZ settings.
- Firewall Rules - Add and remove custom firewall rules.
- Port Forwards - Add and remove port forwarding rules.
- DMZ - Toggle the DMZ and configure the target IP.
- WAN Access - Toggle WAN ping, HTTPS, and SSH remote access.
- MCU Battery - Monitor battery status and configure high/low temperature warnings.
- MCU OLED - Configure what is displayed on the router's OLED screen.
-
Parental & Access Control - Manage internet access blocks and parental group rules per client.
- Parental Control - Group switches, filtering mode, overrides, and signature updates.
- Access Control - Per-client internet access switches and blacklist/whitelist controls.
- KMWAN - Read and update GL.iNet's KMWAN multi-WAN configuration.
- MWAN3 - Read and update MWAN3 multi-WAN configuration.
- API Playground - Send custom JSON-RPC or ubus commands and inspect the response.
These pages are aimed at the architecture, API details, and maintenance work behind the integration.
- Developer Reference - Start here for contribution notes, tooling, and project structure.
- Architecture - How the integration is structured and interacts with Home Assistant.
-
Runtime State & Poller (Hub) - Details on the
GLinetHubandDataUpdateCoordinator.- Hub Core Functions - Coordinator lifecycle and API helpers.
- Data Fetching - Per-feature polling methods.
- Action Functions - Hub write methods.
- Option Updates - Runtime application of configuration option changes.
- Parental Control Helpers - Group lookup and access control helpers.
- Router API Notes - Notes on the GL.iNet JSON-RPC API and authentication.
- Modem API Coverage - Details on the optional cellular modem API.
- CI and Release Workflows - How automated testing and releases work.