- Initialize data using
async_request_refresh
instead ofasync_config_entry_first_refresh
to remove warning message
- Fix blocking call on startup
- Fix async dispatcher send
- Fix update interface state #145
- Handling undefined interface types #137
- Update supported interfaces, including interface type #137
- Update supported interfaces #137
- Removed unused constants
- Fix status entities, if EdgeOS user is admin, the switch will be available, if not, binary sensor
- Adjusted the code of entity validations (whether) to present or not
- Re-add interface status (Binary Sensor and Switch) #135
- Fix interface received rate sensor #133
- Re-added ability to set unit (Byte, KByte, MByte) - using SELECT component #133
- Re-added sensor state number format (number of digits):
- Data (Traffic / Rate) - 0 digits if unit is bytes, otherwise - 3 digits
- Devices, Dropped, Errors, Packets - 3 digits
- Re-added support for switch interfaces #130
Major refactor:
- Code cleanup
- Fix thread safe issues
- Fix typos
- Improve performance
- Add util for translations
- Removed service of update configuration
New components:
- Consider Away Interval - Number
- Update API Interval - Number
- Update Entities Interval - Number
- Log Incoming Messages - Switch
- Ignore interfaces that were removed
- Replaced soon (2025) to get deprecated SUPPORT_* constant with SourceType
Minimum HA Version: 2024.1.0b0
- Set minimum HA version for component to 2024.1.0b0
Minimum HA Version: 2024.1.0
- Adjust code to HA 2024.1.0
- Update pre-commit packages
- Fix 'TOTAL_INCREASING' for rate sensors by @Dude4Linux
Configuration breaking change
-
Adopt Unit of Data & Information from HA Core #90 #84
Changing the units will be available per entity instead of maintaining it with select component, native unit is bytes - B (information) or B/s (traffic)
Configuration breaking change
- Change units from Bytes, KBytes and MBytes to B, KB and MB, if the configured unit was other than Bytes, please re-configure it
- Last activity as seconds to return without milliseconds
- Upgrade pre-commit-configuration by @tetienne PR #91
- Fix integration reload after changing configuration
- Add support for Home Assistant integration and device diagnostics
- Removed debug API
- Avoid sending ping when no active WebSockets connection
- Fix warning message regarding of invalid unit's translation
- Fix units format #90
- Fix last restart sensor, switched to uptime in seconds #94
- Change log level of warning to debug level for session closed on HA restart
- Core fix: remove session close request, being handled by HA
- Add test file to run locally (requires environment variables)
- Cleaner code to resolve URLs
- Remove unused constants
- Core feature: BaseAPI to handle session initialization and termination
- Core fix: wrongfully reported logs of entities getting updated when no update perform
- Fix issue with new Select options
Version requires HA v2022.11.0 and above
- Aligned Core Select according to new HA SelectEntityDescription object
- Additional validation for WebSockets disconnection with more logging
- Documentation for API
- Core alignment
- Improved logic to identify interface types correctly and present all
- Removed configuration and service parameter of
store debug data
- Fix missing switch for monitoring
- Non admin user INFO message that prevents interface switch to turn on / off will be logged once
- Add interface line connected binary sensor
- Fix unhandled WS session disconnection
- Add support for special interfaces (vtun, switch, pppoe, openvpn)
Please note: For now, special interface do not support to turn on / off
Debugging became easier (less IO and Disk Space)
- Removed
Store Debug Data
switch (Moved to the API endpoints below) - Removed WebSocket messages sensors (Moved to the API endpoints below)
- Add endpoints to expose the data was previously stored to files and the messages counters
Endpoint Name | Method | Description |
---|---|---|
/api/edgeos/list | GET | List all the endpoints available (supporting multiple integrations), available once for integration |
/api/edgeos/{ENTRY_ID}/ha | GET | JSON of all HA processed data before sent to entities including messages counters, per integration |
/api/edgeos/{ENTRY_ID}/api | GET | JSON of all raw data from the EdgeOS API, per integration |
/api/edgeos/{ENTRY_ID}/ws | GET | JSON of all raw data from the EdgeOS WebSocket, per integration |
Authentication: Requires long-living token from HA
- Add support for all interfaces but
loopback
#76 - Improve WS connection management
- Fix WS ping message
- Change interval of ping message
- Add WS connection compression to support deflate
- Add 3 sensors for WS messages - Received, Ignored and Error
- Fix wrong parameters for service validation #77
- Fix core wrong reference
- Update core to latest
- Fix configuration migration process
- Removed port from configuration as it's not being used
- Add service data validation
- Fix binary sensor of interface status
- Fix configuration load, save and import processes
- Since user with operator role cannot update interface status, non-admin user will have binary sensor for status of interface instead of switch, in addition, an INFO log message will explain it
- Add IP address to status switch of its interface #71
- Constants clean up
- Add ability to set the interval to update data and entities separately, to update use the
edgeos.update_configuration
service and set the number of seconds perupdate_api_interval
and/orupdate_entities_interval
parameters, defaults are API: 30 seconds, Entities: 1 second - Improved logic of service
edgeos.update_configuration
- Add to store debug data HA data that is being used to generate HA components
- Add openvpn as supported interface type
- Fix wrong parameter for CPU #70
- Another fix json serialization when saving debug data
- Fix json serialization when saving debug data
- Fix missing validation of entry
Component refactored to allow faster future integration for additional features.
New features:
- Enable / Disable interface (Ethernet / Bridge) using a new switch per interface
- Enable / Disable interface monitoring for received and sent data / rate / errors / packets and dropped packets using a switch per interface
- Enable / Disable device monitoring for received and sent data and rate (including device tracker) using a switch per interface
- 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 - Firmware Update binary sensor including link to the new firmware
- Warning when prerequisites of traffic analysis (DPI and Export) are not turned on
- Asynchronous data updates of API and WebSocket to handle disconnection better
- New service:
Update configuration
allows to edit configuration of unit, store debug data, log incoming messages and consider away interval
Breaking Changes!
- Most of the configurations moved to be regular components of HA (Log incoming messages, Unit of measurement, Store debug data)
- Configuration UI will hold EdgeOS URL and credentials only:
- Hostname
- Port
- Username
- Password
System
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} Unknown devices | Sensor | Represents number of devices leased by the DHCP server | Attributes holds the leased hostname and IPs |
{Router Name} CPU | Sensor | Represents CPU usage | Attributes holds the leased hostname and IPs |
{Router Name} RAM | Sensor | Represents RAM usage | Attributes holds the leased hostname and IPs |
{Router Name} Last Restart | Sensor | Represents last time the EdgeOS was restarted | 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 | |
{Router Name} Store Debug Data | Switch | Sets whether to store API and WebSocket latest data for debugging |
Per device
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 |
Per interface
Entity Name | Type | Description | Additional information |
---|---|---|---|
{Router Name} {Interface Name} Status | Switch | Sets whether to interface is active 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 |
- Restore value exception handling for WebSocket
- Add Brazilian Portuguese Translation #66 by @LeandroIssa
- Add line number to WebSocket error log messages
- Add more log messages for WebSocket
- Device and Entity registry -
async_get_registry
is deprecated, change toasync_get
- Hotfix for
Handled %
before first message is being received (division by zero)
- Fixed incorrect lookup value for Rate (Sent / Received) per device
- Improved message parsing
- Added web socket messages counters to status binary sensor (Received, Ignored, Handled %)
BREAKING CHANGES!
- Added for each interface multiple statistics sensors instead of attributes under the main binary sensor of the interface
- Added for each device multiple statistics sensors instead of attributes under the main binary sensor of the device
- Removed: Uptime sensor, uptime in seconds will be part of the status binary sensor
- Removed: Store debug file from the integration's options
- New service: Generate Debug File to
.storage/edgeos.debug.json
- Removed entity / device delete upon restarting HA
- Added support for long term statistics
- Upgraded code to support breaking changes of HA v2012.12.0
- Fixed integration fails to load with EdgeOS version older than 2.0.9 #53
- Prevent the component to get installed or run with EdgeOS Firmware v1
- Fixed monitored_devices appear as disconnected #32 by @shlomki
- Added documentation of how to set manually log level as debug
- Fixed hassfest error (missing iot_class)
Fixed bugs:
- Fixed interface parameter that should indicate whether an interface connected or not (l1up vs. up) #34
Fixed bugs:
- Integration setup errors caused by invalid credentials (User input malformed / Unknown error occurred)
Implemented enhancements:
- Moved encryption key of component to .storage directory
- Removed support for non encrypted password (Breaking Change)
Fixed bugs:
- Better handling of password parsing
Fixed bugs:
- Don't block startup of Home Assistant #36
Implemented enhancements:
- Support MDI icons for HA 0.113 and above
- Removed NONE option from drop-down, NONE was workaround for a validation issue in Integration's Options and fixed as part of HA v0.112.0
Fixed bugs:
- Fix error message on load due to duplicate entities being created - Entity id already exists - ignoring: *. Platform edgeos does not generate unique IDs
Fixed bugs:
- Error fix on failed attempt to access the router
Fixed bugs:
- Re-run pre-commit
- Handle closing HA session better to avoid stuck upon restart
- Avoid closing manually sessions opened by HA
Fixed bugs:
- Fix logic of reconnect to avoid HA core getting stuck during restart
Fixed bugs:
- Fix
Entity id already exists
warning log message on startup
Fixed bugs:
- Fix incorrect error message displayed when WebSocket or API request failed
- Fix retry mechanism of API requests
- Fix integration's options error when device or interface list is empty
Implemented enhancements:
- Integration's options - Renamed
Update interval
toUpdate entities interval
(will reset the value to default in the first run) - Integration's options - Added
Update API interval
to set the interval in seconds of the component to access EdgeOS API to get new devices and router settings, default=60 #27 - Improved the logic of heartbeat to take place every 30 seconds for both WebSocket and API connections
Fixed bugs:
- Fix API disconnection that causes "Failed to load devices data" errors #29
- Fix error message on HA termination
Fixed bugs:
- Fix redundant calculation of bits to bytes as data is already bytes
Implemented enhancements:
- Consider away interval can be modified in integration's options, interval is in seconds, default=180
Fixed bugs:
- Fix default value of unit in integration's options
Fixed bugs:
- Fix WebSocket disconnections #26
Implemented enhancements:
- Improved device tracker is home logic to consider traffic instead of just DPI report
- Version validation upon adding new integration (Required at least v1.10)
Fixed bugs:
- Fix device_tracker didn't work correctly. It is always displayed not home
Implemented enhancements:
- More enhancements to options, ability to change setup details
- Support new translation format of HA 0.109.0
- Added main.py to root directory for debugging
Fixed bugs:
- Invalid credentials to EdgeOS Router when using IP #25
Fixed bugs:
- Async login without sleep 1 second
Fixed bugs:
- Fix disabled entity check throws an exception in logs
Fixed bugs:
- Fix disabled entities still being triggered for updates
Fixed bugs:
- Fix disabled entities are getting enabled after periodic update (update interval)
Implemented enhancements:
- Simplified the way calculating whether device is connected or not, based on report of traffic analysis instead of calculating amount of traffic (bps) over the last 3 minutes #24
- Moved service
edgeos.save_debug_data
to Integration -> Options as configuration (that being reset after doing the action once) - Moved service
edgeos.log_events
to Integration -> Options as configuration to toggle upon need - Added ability to configure the log level of the component from Integration - Options, more details in README
Fixed bugs:
- Fix connection maximum attempts and added keep-alive WS message every 30 seconds #21
Fixed bugs:
- Missing resource for update interval field #19
Implemented enhancements:
- Added changelog
- Added ability to configure update entities interval in seconds (Integrations -> Integration Name -> Options) #19 #15
- Added instructions how to install in HACS #16
- Added password encryption upon saving the integration settings
- Improved drop-down logic to choose device trackers, monitored devices and interfaces #9
- Moved code to new file structure
- More logs added for easier debugging
Fixed bugs:
- Login failure initiated reconnect mechanism instead of die gracefully