Provides an integration between EdgeOS (Ubiquiti) routers to Home Assistant.
- EdgeRouter with at least firmware version 2.0
- EdgeRouter User with 'Operator' level access or higher
- Traffic Analysis set to 'Enabled' (both
dpi
andexport
enabled undersystem/traffic-analysis
) - To enable / disable interfaces an
admin
role is a required
- In HACS, look for "Ubiquiti EdgeOS Routers" and install and restart
- In Settings --> Devices & Services - (Lower Right) "Add Integration"
To add integration use Configuration -> Integrations -> Add EdgeOS
Integration supports multiple EdgeOS devices
Fields name | Type | Required | Default | Description |
---|---|---|---|---|
Host | Textbox | + | - | Hostname or IP address to access EdgeOS device, can hold also port (HOST:PORT), default port is 443 |
Username | Textbox | + | - | Username of user with Operator level access or higher, better to create a dedicated user for that integration for faster issues identification |
Password | Textbox | + | - |
Errors |
---|
Cannot reach device (404) |
Invalid credentials (403) |
General authentication error (when failed to get valid response from device) |
Could not retrieve device data from EdgeOS Router |
Export (traffic-analysis) configuration is disabled, please enable |
Deep Packet Inspection (traffic-analysis) configuration is disabled, please enable |
Unsupported firmware version |
If a persistent notification popped up with the following message:
Encryption key got corrupted, please remove the integration and re-add it
It means that encryption key was modified from outside the code, Please remove the integration and re-add it to make it work again.
Configuration -> Integrations -> {Integration} -> Options
Fields name | Type | Required | Default | Description |
---|---|---|---|---|
Host | Textbox | + | - | Hostname or IP address to access EdgeOS device, can hold also port (HOST:PORT), default port is 443 |
Username | Textbox | + | - | Username of user with Operator level access or higher, better to create a dedicated user for that integration for faster issues identification |
Password | Textbox | + | - | |
Clear credentials | Check-box | + | Unchecked | Will reset username and password (Not being stored under options) |
To set the log level of the component to DEBUG, please set it from the options of the component if installed, otherwise, set it within configuration YAML of HA:
logger:
default: warning
logs:
custom_components.edgeos: debug
Entity Name | Type | Description | Additional information |
---|---|---|---|
{Router Name} Unit | Select | Sets whether to monitor device and create all the components below or not | |
{Router Name} CPU | Sensor | Represents CPU usage | |
{Router Name} RAM | Sensor | Represents RAM usage | |
{Router Name} Uptime | Sensor | Represents last time the EdgeOS was restarted | |
{Router Name} Unknown devices | Sensor | Represents number of devices leased by the DHCP server | Attributes holds the leased hostname and IPs |
{Router Name} Firmware Updates | Binary Sensor | New firmware available indication | Attributes holds the url and new release name |
{Router Name} Log incoming messages | Switch | Sets whether to log WebSocket incoming messages for debugging |
Entity Name | Type | Description | Additional information |
---|---|---|---|
{Router Name} {Device Name} Monitored | Sensor | Sets whether to monitor device and create all the components below or not | |
{Router Name} {Device Name} Received Rate | Sensor | Received Rate per second | Statistics: Measurement |
{Router Name} {Device Name} Received Traffic | Sensor | Received total traffic | Statistics: Total Increment |
{Router Name} {Device Name} Sent Rate | Sensor | Sent Rate per second | Statistics: Measurement |
{Router Name} {Device Name} Sent Traffic | Sensor | Sent total traffic | Statistics: Total Increment |
{Router Name} {Device Name} | Device Tracker | Indication whether the device is or was connected over the configured timeframe |
Entity Name | Type | Description | Additional information |
---|---|---|---|
{Router Name} {Interface Name} Status | Switch | Sets whether to interface is active or not | Available only if user level is admin |
{Router Name} {Interface Name} Status | Binary Sensor | Indicates whether interface is active or not | Available only if user level is not admin |
{Router Name} {Interface Name} Connected | Binary Sensor | Indicates whether interface's port is connected or not | |
{Router Name} {Interface Name} Monitored | Switch | Sets whether to monitor interface and create all the components below or not | |
{Router Name} {Interface Name} Received Rate | Sensor | Received Rate per second | Statistics: Measurement |
{Router Name} {Interface Name} Received Traffic | Sensor | Received total traffic | Statistics: Total Increment |
{Router Name} {Interface Name} Received Dropped Packets | Sensor | Received packets lost | Statistics: Total Increment |
{Router Name} {Interface Name} Received Errors | Sensor | Received errors | Statistics: Total Increment |
{Router Name} {Interface Name} Received Packets | Sensor | Received packets | Statistics: Total Increment |
{Router Name} {Interface Name} Sent Rate | Sensor | Sent Rate per second | Statistics: Measurement |
{Router Name} {Interface Name} Sent Traffic | Sensor | Sent total traffic | Statistics: Total Increment |
{Router Name} {Interface Name} Sent Dropped Packets | Sensor | Sent packets lost | Statistics: Total Increment |
{Router Name} {Interface Name} Sent Errors | Sensor | Sent errors | Statistics: Total Increment |
{Router Name} {Interface Name} Sent Packets | Sensor | Sent packets | Statistics: Total Increment |
Allows to set:
- Consider away interval - Time to consider a device without activity as AWAY (any value between 10 and 1800 in seconds)
- Log incoming messages - Enable / Disable logging of incoming WebSocket messages for debug
- Store debug data - Enable / Disable store debug data to './storage' directory of HA for API (edgeos.debug.api.json) and WS (edgeos.debug.ws.json) data for faster debugging or just to get more ideas for additional features
- Update API interval - Interval in seconds to update API data
- Update Entities interval - Interval in seconds to update entities
More details available in Developer tools
-> Services
-> edgeos.update_configuration
service: edgeos.update_configuration
data:
device_id: { Main device ID }
log_incoming_messages: true
consider_away_interval: 180
update_api_interval: 30
update_entities_interval: 1