uvjim / linksys_velop Goto Github PK
View Code? Open in Web Editor NEWHome Assistant integration for the Linksys Velop
Home Assistant integration for the Linksys Velop
Device tracker unavailable after recent update
The results shown for the Speedtest function differ between this integration and the Linksys web UI.
This implementation...
Download: 370.48 Mbps
Upload: 35.99 Mbps
Linksys web UI...
Download: 379.4 Mbps
Upload: 36.9 Mbps
Raw...
Download: 379376
Upload: 36855
Router Connected Devices do not add up to Online Devices Online Device. Show 33 Online Devices but only 25 connected devices. Logs attached.
The title says it all really. There are reported occasions when a node can go wobbly and needs a restart. The functionality, albeit cumbersome to get to, is possible in the web UI.
Btw it also shows a notice that
The following integrations and platforms could not be set up:
device_tracker (Show logs)
Please check your config and logs.
here's the log
Logger: homeassistant.setup
Source: components/device_tracker/legacy.py:340
First occurred: 10:54:20 PM (1 occurrences)
Last logged: 10:54:20 PMError during setup of component device_tracker
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/setup.py", line 253, in _async_setup_component
result = await task
File "/usr/src/homeassistant/homeassistant/components/device_tracker/init.py", line 71, in async_setup
await async_setup_legacy_integration(hass, config)
File "/usr/src/homeassistant/homeassistant/components/device_tracker/legacy.py", line 195, in async_setup_integration
legacy_platforms = await async_extract_config(hass, config)
File "/usr/src/homeassistant/homeassistant/components/device_tracker/legacy.py", line 340, in async_extract_config
raise ValueError(
ValueError: Unable to determine type for linksys_velop: None
I have a lot of these error messages:
This error originated from a custom integration.
Logger: homeassistant
Source: custom_components/linksys_velop/sensor.py:112
Integration: Linksys Velop (documentation, issues)
First occurred: 3 May 2022, 22:03:22 (6587 occurrences)
Last logged: 13:24:23
Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 137, in _handle_refresh_interval
await self._async_refresh(log_failures=True, scheduled=True)
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 268, in _async_refresh
update_callback()
File "/config/custom_components/linksys_velop/__init__.py", line 417, in _handle_coordinator_update
super()._handle_coordinator_update()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 328, in _handle_coordinator_update
self.async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 532, in async_write_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 570, in _async_write_ha_state
state = self._stringify_state(available)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 538, in _stringify_state
if (state := self.state) is None:
File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 410, in state
value = self.native_value
File "/config/custom_components/linksys_velop/sensor.py", line 320, in native_value
return self.entity_description.state_value(self._mesh)
File "/config/custom_components/linksys_velop/sensor.py", line 112, in <lambda>
state_value=lambda m: len(m.storage_available)
File "/usr/local/lib/python3.9/site-packages/pyvelop/mesh.py", line 970, in storage_available
"used_percent": round((partition.get("usedKB") / partition.get("availableKB")) * 100, 2),
ZeroDivisionError: division by zero
I guess somehow availableKB must end up being zero. No idea why.
Hi
after Upgrading to the Linksys Velop 2022.4.2b2 the integration stoped working for my two separate Velops, and receive the following error:
Logger: custom_components.linksys_velop
Source: custom_components/linksys_velop/__init__.py:199
Integration: Linksys Velop (documentation, issues)
First occurred: 02:39:25 (2 occurrences)
Last logged: 02:39:25
Unexpected error fetching linksys_velop (#############) data: 'NoneType' object has no attribute 'lower'
Unexpected error fetching linksys_velop (#############) data: 'NoneType' object has no attribute 'lower'
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 190, in _async_refresh
self.data = await self._async_update_data()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 150, in _async_update_data
return await self.update_method()
File "/config/custom_components/linksys_velop/__init__.py", line 193, in _async_get_mesh_data
previous_nodes: Set[str] = {
File "/config/custom_components/linksys_velop/__init__.py", line 199, in <setcomp>
dr_device.name.lower() != "mesh",
AttributeError: 'NoneType' object has no attribute 'lower'
Any advice?
Only the current version of firmware is identified. It would be nice if the newest version of firmware was also identified and an update available sensor set.
Reported from the community: https://community.home-assistant.io/t/custom-integration-linksys-velop/342874/28
HASS 2021.12 now uses StrEnum
to represent device classes. This puts the DEVICE_CLASS_*
variables into a deprecated state.
Look to update the code to reflect this without bumping the HASS minimum version.
When configuring the integration the setting for API command timeouts is stored but the key is incorrect. This only seems to happen on the initial configure, subsequent configuration changes are correct.
Good evening,
sorry to shoot this in as a issue but I cannot get it right.
So I created the velop_node folder in www, but I cannot got the picture up and running. I have 4 whw03 nodes. Can somebody please help guide me in this.
I love the intergration, but as cherry on the cake I also would this so I can start building a new dash.
Whilst fixing #239 it turns out that the properties weren't available for a device that only had IPv6 addresses. Have a look at if these are already available in the library end make available if need be.
Currently no unique_id is assigned to the configuration entry when being configured by a user. This could result in two configurations for the same Mesh being created.
HA is reporting the following error on version 2022.11.2:
Unexpected exception importing component custom_components.linksys_velop
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/loader.py", line 599, in get_component
cache[self.domain] = importlib.import_module(self.pkg_path)
File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 850, in exec_module
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "/config/custom_components/linksys_velop/__init__.py", line 28, in <module>
from pyvelop.const import _PACKAGE_AUTHOR as PYVELOP_AUTHOR
File "/usr/local/lib/python3.9/site-packages/pyvelop/__init__.py", line 4, in <module>
def signal_strength_to_text(rssi: int | None) -> str | None:
TypeError: unsupported operand type(s) for |: 'type' and 'NoneType'
@uvjim =Any way to associate the device tracker device to show the room of the Node - VS the Room of the Mesh? (Enhancement request)
See Image - I have selected to track the Garage Camera but its connected to the Garage Node in the Garage Room. But currently shows in the Mesh Room of the Front Room (Primary Node)
Reason - I have a camera that sometimes connects to the Primary Node VS the Stronger better signal in the Garage Node. When this happens I have a smart plug that I have to Turn Off and Back on for the Camera - so that it reconnects to the Better Node Aka Garage Node. Which I want to make an automation to run whenever it does that.
Hi uvjim,
Thanks again for your help on this. The diagnostic information is attached. Please let me know if you need any more details.
{
"home_assistant": {
"installation_type": "Home Assistant OS",
"version": "2022.4.1",
"dev": false,
"hassio": true,
"virtualenv": false,
"python_version": "3.9.9",
"docker": true,
"arch": "aarch64",
"timezone": "Europe/London",
"os_name": "Linux",
"os_version": "5.10.103-v8",
"supervisor": "2022.03.5",
"host_os": "Home Assistant OS 7.6",
"docker_version": "20.10.9",
"chassis": "embedded",
"run_as_root": true
},
"custom_components": {
"yalebinarysensor": {
"version": "2.2.0",
"requirements": [
"yalesmartalarmclient==0.3.4"
]
},
"hacs": {
"version": "1.24.3",
"requirements": [
"aiogithubapi>=21.11.0"
]
},
"linksys_velop": {
"version": "2022.3.3",
"requirements": [
"pyvelop==2022.4.6"
]
},
"frigate": {
"version": "2.2.2",
"requirements": []
}
},
"integration_manifest": {
"codeowners": [
"@uvjim"
],
"config_flow": true,
"dependencies": [
"ssdp"
],
"domain": "linksys_velop",
"documentation": "https://github.com/uvjim/linksys_velop",
"iot_class": "local_polling",
"issue_tracker": "https://github.com/uvjim/linksys_velop/issues",
"name": "Linksys Velop",
"requirements": [
"pyvelop==2022.4.6"
],
"ssdp": [
{
"st": "urn:schemas-upnp-org:device:InternetGatewayDevice:2",
"manufacturer": "Linksys"
}
],
"version": "2022.3.3",
"is_built_in": false
},
"data": {
"config_entry": {
"entry_id": "cc90324d9eeba83202cc395d259b079f",
"version": 1,
"domain": "linksys_velop",
"title": "Linksys Velop Mesh",
"data": {},
"options": {
"node": "192.168.0.45",
"password": "**REDACTED**",
"api_request_timeout": 10,
"scan_interval": 60,
"scan_interval_device_tracker": 10,
"consider_home": 180,
"tracked": []
},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "user",
"unique_id": "20J20M38B31432",
"disabled_by": null
},
"mesh_details": {
"raw_devices": {
"revision": 19447,
"devices": [
{
"deviceID": "93387984-c318-e9e0-d53f-d8ec5e78c709",
"lastChangeRevision": 19130,
"model": {
"deviceType": "Infrastructure",
"manufacturer": "Linksys",
"modelNumber": "WHW03B",
"hardwareVersion": "2",
"description": "Velop"
},
"unit": {
"serialNumber": "20J2**REDACTED**",
"firmwareVersion": "2.1.18.206964",
"firmwareDate": "2021-06-24T00:38:15Z"
},
"isAuthority": true,
"nodeType": "Master",
"isHomeKitSupported": true,
"friendlyName": "Linksys31432",
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wired"
}
],
"connections": [
{
"macAddress": "**REDACTED**",
"ipAddress": "169.254.69.62"
}
],
"properties": [
{
"name": "userDeviceLocation",
"value": "Guest Bedroom"
},
{
"name": "userDeviceName",
"value": "Guest Bedroom"
}
],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "09e88d7e-f39b-4f43-8cfa-a2c297e8d1a1",
"lastChangeRevision": 11506,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "5GHz"
}
],
"connections": [],
"properties": [
{
"name": "userDeviceOS",
"value": "**REDACTED**"
},
{
"name": "userDeviceManufacturer",
"value": "**REDACTED**"
},
{
"name": "userDeviceModelNumber",
"value": "**REDACTED**"
}
],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "d4b8419d-8e4d-cdff-f4ab-d8ec5e78d532",
"lastChangeRevision": 19407,
"model": {
"deviceType": "Infrastructure",
"manufacturer": "Linksys",
"modelNumber": "WHW03B",
"hardwareVersion": "2",
"description": "Velop"
},
"unit": {
"serialNumber": "20J2**REDACTED**",
"firmwareVersion": "2.1.18.206964",
"firmwareDate": "2021-06-24T00:38:15Z"
},
"isAuthority": false,
"nodeType": "Slave",
"isHomeKitSupported": true,
"friendlyName": "LINKSYS32157",
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
},
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
},
{
"macAddress": "**REDACTED**",
"interfaceType": "Wired"
},
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
},
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
}
],
"connections": [
{
"macAddress": "**REDACTED**",
"ipAddress": "192.168.0.60",
"ipv6Address": "fe80:0000:0000:0000:daec:5eff:fe78:d532",
"parentDeviceID": "92632e9f-8282-9324-e36a-d8ec5e78c68c"
},
{
"macAddress": "**REDACTED**",
"ipAddress": "192.168.20.136"
}
],
"properties": [
{
"name": "userDeviceLocation",
"value": "Master Bedroom"
},
{
"name": "userDeviceName",
"value": "Master Bedroom"
}
],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "84e83ee7-e5f3-4c0a-852e-f6ba34dc7906",
"lastChangeRevision": 19431,
"model": {
"deviceType": "Computer",
"manufacturer": "**REDACTED**",
"modelNumber": "**REDACTED**"
},
"unit": {
"operatingSystem": "**REDACTED**"
},
"isAuthority": false,
"friendlyName": "**REDACTED**",
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "5GHz"
}
],
"connections": [
{
"macAddress": "**REDACTED**",
"ipAddress": "192.168.0.6",
"ipv6Address": "fe80:0000:0000:0000:144c:1aa1:53c5:bc3b",
"parentDeviceID": "93387984-c318-e9e0-d53f-d8ec5e78c709"
}
],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "9ac49734-f04c-442c-9c09-ae9432c02e26",
"lastChangeRevision": 14810,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "2.4GHz"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "6291e7f6-5ebf-4b47-8747-0320cbd0c696",
"lastChangeRevision": 19239,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wired"
}
],
"connections": [
{
"macAddress": "**REDACTED**",
"ipAddress": "192.168.0.1",
"ipv6Address": "fe80:0000:0000:0000:8275:1fff:fefc:3959",
"parentDeviceID": "92632e9f-8282-9324-e36a-d8ec5e78c68c"
}
],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "355b2ad3-b0dc-4ee4-a2d3-23e5320ff19b",
"lastChangeRevision": 17627,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "5GHz"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "1af9ee73-b71d-43ee-9f89-7d7a8cc440dc",
"lastChangeRevision": 18838,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wired"
}
],
"connections": [
{
"macAddress": "**REDACTED**",
"ipv6Address": "fe80:0000:0000:0000:ee71:dbff:fe2a:f8fc",
"parentDeviceID": "92632e9f-8282-9324-e36a-d8ec5e78c68c"
}
],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "b71907c1-ba84-4662-851d-7cea34226735",
"lastChangeRevision": 18383,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wired"
}
],
"connections": [
{
"macAddress": "**REDACTED**",
"ipAddress": "192.168.0.90",
"ipv6Address": "fe80:0000:0000:0000:e85c:2f91:c7b0:b093",
"parentDeviceID": "92632e9f-8282-9324-e36a-d8ec5e78c68c"
}
],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "82d812d1-e3cd-4a49-857e-9de1d98c6880",
"lastChangeRevision": 18388,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wired"
}
],
"connections": [
{
"macAddress": "**REDACTED**",
"ipAddress": "192.168.0.25",
"ipv6Address": "fe80:0000:0000:0000:0290:a9ff:fed5:feb0",
"parentDeviceID": "d4b8419d-8e4d-cdff-f4ab-d8ec5e78d532"
}
],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "abcf9c5a-3c57-4c97-a84e-f2d7829c91e2",
"lastChangeRevision": 0,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "a4e87dab-1dab-440c-9a1b-3cd7770f8a99",
"lastChangeRevision": 19442,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "2.4GHz"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "96802c26-3aec-4bf4-a154-d64b7efcfcf4",
"lastChangeRevision": 19206,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "5GHz"
}
],
"connections": [
{
"macAddress": "**REDACTED**",
"ipAddress": "192.168.0.13",
"ipv6Address": "fe80:0000:0000:0000:f603:2aff:fea3:e5dc",
"parentDeviceID": "93387984-c318-e9e0-d53f-d8ec5e78c709"
}
],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "25860eb8-1d39-4b7e-b4aa-5a10c8726d4c",
"lastChangeRevision": 16030,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "0112e45b-ce65-469c-a3c0-00deaa4934c9",
"lastChangeRevision": 16028,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "2.4GHz"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "22ff2b39-7682-4d07-9f0c-0ecc2085557c",
"lastChangeRevision": 19131,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "2.4GHz"
}
],
"connections": [
{
"macAddress": "**REDACTED**",
"ipv6Address": "fe80:0000:0000:0000:0255:daff:fe5f:b77d",
"parentDeviceID": "92632e9f-8282-9324-e36a-d8ec5e78c68c"
}
],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "2d9bafff-ec69-4951-b63b-81d233d909b5",
"lastChangeRevision": 16783,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "2.4GHz"
}
],
"connections": [
{
"macAddress": "**REDACTED**",
"ipAddress": "192.168.0.15",
"ipv6Address": "fe80:0000:0000:0000:f2f0:a4ff:fef8:bc5d",
"parentDeviceID": "93387984-c318-e9e0-d53f-d8ec5e78c709"
}
],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "92632e9f-8282-9324-e36a-d8ec5e78c68c",
"lastChangeRevision": 19153,
"model": {
"deviceType": "Infrastructure",
"manufacturer": "Linksys",
"modelNumber": "WHW03B",
"description": "Velop"
},
"unit": {
"serialNumber": "20J2**REDACTED**",
"firmwareVersion": "2.1.18.206964"
},
"isAuthority": false,
"nodeType": "Slave",
"isHomeKitSupported": true,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
},
{
"macAddress": "**REDACTED**",
"interfaceType": "Wired"
},
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
},
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
},
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
}
],
"connections": [
{
"macAddress": "**REDACTED**",
"ipAddress": "192.168.0.62",
"ipv6Address": "fe80:0000:0000:0000:daec:5eff:fe78:c68c",
"parentDeviceID": "93387984-c318-e9e0-d53f-d8ec5e78c709"
},
{
"macAddress": "**REDACTED**",
"ipAddress": "192.168.20.141",
"parentDeviceID": "93387984-c318-e9e0-d53f-d8ec5e78c709"
}
],
"properties": [
{
"name": "userDeviceLocation",
"value": "Gaming room"
},
{
"name": "userDeviceName",
"value": "Gaming room"
}
],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "3ae2c1a6-6b96-4c5c-8ac5-1bac52c4ee9e",
"lastChangeRevision": 14808,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "2.4GHz"
}
],
"connections": [
{
"macAddress": "**REDACTED**",
"ipAddress": "192.168.0.16",
"ipv6Address": "fe80:0000:0000:0000:92a8:22ff:fe21:e1b9",
"parentDeviceID": "93387984-c318-e9e0-d53f-d8ec5e78c709"
}
],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "e4aaa69a-34d4-49d2-b787-bfec9a9cdcbb",
"lastChangeRevision": 19378,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "5GHz"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "d2757b4e-6170-472a-ab4e-dab0f83c3f0d",
"lastChangeRevision": 16781,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "2.4GHz"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "e8ce6f27-9f66-4e5e-9c71-fbad8ef7ba66",
"lastChangeRevision": 19443,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "5GHz"
}
],
"connections": [
{
"macAddress": "**REDACTED**",
"ipAddress": "192.168.0.20",
"ipv6Address": "fe80:0000:0000:0000:1024:7181:b64b:fe6a",
"parentDeviceID": "92632e9f-8282-9324-e36a-d8ec5e78c68c"
}
],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "5aa85673-9546-409a-b350-9f61957b52a6",
"lastChangeRevision": 19173,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wired"
}
],
"connections": [
{
"macAddress": "**REDACTED**",
"ipAddress": "192.168.0.51",
"parentDeviceID": "93387984-c318-e9e0-d53f-d8ec5e78c709"
}
],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "375b2ecf-dd40-4bb6-91e9-1dcc1e2024bf",
"lastChangeRevision": 17313,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "5GHz"
}
],
"connections": [
{
"macAddress": "**REDACTED**",
"ipAddress": "192.168.0.14",
"ipv6Address": "fe80:0000:0000:0000:4a78:5eff:feb3:a74a",
"parentDeviceID": "d4b8419d-8e4d-cdff-f4ab-d8ec5e78d532"
}
],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "bdb16b7f-5d45-4f21-a6b3-ce2b9d695f2c",
"lastChangeRevision": 0,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "3cf33ab4-705c-4ee4-807c-7a962688aea6",
"lastChangeRevision": 290,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "2.4GHz"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "d1c8e3fa-4afd-4e49-a107-255a26b24c1b",
"lastChangeRevision": 0,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "c9f8f3c2-8cca-49a1-83f9-a9130ac148e5",
"lastChangeRevision": 19387,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "5GHz"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "b4350766-0842-4c17-9019-d4a2aca82435",
"lastChangeRevision": 19447,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "5GHz"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "bf8aac32-17f7-4af3-856c-f91ee7a1b6cd",
"lastChangeRevision": 16,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "ef93cf53-5c48-4173-bc19-036b12cc4257",
"lastChangeRevision": 18766,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "2.4GHz"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "ca8b5a25-61fd-4e80-b223-9aac17535886",
"lastChangeRevision": 0,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "9dfc087c-2600-4840-925e-6ede43e4a700",
"lastChangeRevision": 18495,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
}
],
"connections": [
{
"macAddress": "**REDACTED**",
"ipAddress": "192.168.0.32",
"ipv6Address": "fe80:0000:0000:0000:185e:4015:39da:2889"
}
],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "ea9328be-4f93-4bb5-8501-70359a65616a",
"lastChangeRevision": 19120,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "5GHz"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "f5bb6c92-ec80-4360-b9c5-08f5e43de1af",
"lastChangeRevision": 0,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "a1262ccd-511c-4fb5-95b4-1f73a0e02606",
"lastChangeRevision": 19151,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "2a4b9a25-8dfe-4058-83bd-13b925c2f308",
"lastChangeRevision": 0,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "8cb00670-7563-4da4-904c-fa8c626d1be8",
"lastChangeRevision": 0,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "be2650f2-93d3-486d-9fd9-1af3305316a1",
"lastChangeRevision": 19304,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "2.4GHz"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "d6217877-6634-45b0-bc44-d3cba0c77964",
"lastChangeRevision": 17572,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "5GHz"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "3c9d9aa2-70dd-4950-a447-19bfdff924f0",
"lastChangeRevision": 359,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wired"
}
],
"connections": [
{
"macAddress": "**REDACTED**",
"ipAddress": "192.168.0.221",
"ipv6Address": "fe80:0000:0000:0000:021c:2bff:fe2e:fbe7",
"parentDeviceID": "92632e9f-8282-9324-e36a-d8ec5e78c68c"
}
],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "44474350-0e0b-426b-b3e9-b54342ba30d1",
"lastChangeRevision": 18749,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "2.4GHz"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "ce172874-bba7-4956-8d71-8e6cd3ee92a9",
"lastChangeRevision": 19438,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
}
],
"connections": [
{
"macAddress": "**REDACTED**",
"ipAddress": "192.168.0.74",
"parentDeviceID": "d4b8419d-8e4d-cdff-f4ab-d8ec5e78d532"
}
],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "103be3db-8a53-41d6-9329-1fdf467852a8",
"lastChangeRevision": 0,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "cce702bb-ae1d-4f43-8dca-da269fa06658",
"lastChangeRevision": 14029,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "3d513100-eb35-48d0-972d-6f8fbd05cf2d",
"lastChangeRevision": 0,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "05777ea9-4cc3-4ecc-af85-f4c10dd10a52",
"lastChangeRevision": 0,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "58d2e823-0c59-4f40-a3e8-dcd2f0169b47",
"lastChangeRevision": 0,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "2505a143-ae43-4922-835f-02599cfddad9",
"lastChangeRevision": 12593,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "5GHz"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "dbf11ccf-7d9b-4e5e-a97d-12671962a868",
"lastChangeRevision": 19166,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "5GHz"
}
],
"connections": [
{
"macAddress": "**REDACTED**",
"ipAddress": "192.168.0.63",
"ipv6Address": "fe80:0000:0000:0000:1ce8:fa92:0980:1a41",
"parentDeviceID": "92632e9f-8282-9324-e36a-d8ec5e78c68c"
}
],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "12189ce7-2310-46bf-94ed-9699dd8c167b",
"lastChangeRevision": 0,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "0bba272f-e310-48f8-9d9d-b2c520417fe3",
"lastChangeRevision": 0,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "6cac63de-ed4f-45a9-89c1-d800e69bc7c8",
"lastChangeRevision": 0,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "bb51d93c-e379-4087-9ab1-6a742555ce74",
"lastChangeRevision": 0,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "f63e244f-bcf7-4cc7-bc76-c217d9f0e094",
"lastChangeRevision": 0,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "8a6cf167-aa51-437e-85fc-33da02f0e17a",
"lastChangeRevision": 301,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "5GHz"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "481e5c9e-477a-4731-bcf5-eabfa6bdda62",
"lastChangeRevision": 317,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "2.4GHz"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "c1f8c698-2960-4a02-8d31-38bf292cbe11",
"lastChangeRevision": 19377,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "5GHz"
}
],
"connections": [],
"properties": [
{**REDACTED**
}
],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "e2e4cb07-aee4-4e9c-b270-4382cb00aa73",
"lastChangeRevision": 18202,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "2.4GHz"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "aab30d83-5d35-4d24-9cac-af2b4de408d8",
"lastChangeRevision": 8791,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "e26029f6-0a03-4fc1-b6cb-8965fbcc8f5c",
"lastChangeRevision": 18086,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wired"
}
],
"connections": [
{
"macAddress": "**REDACTED**",
"ipAddress": "192.168.0.24",
"ipv6Address": "fe80:0000:0000:0000:fab1:56ff:feb9:93a7",
"parentDeviceID": "93387984-c318-e9e0-d53f-d8ec5e78c709"
}
],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "13928899-0ec3-467f-9b13-2cdddd5923cd",
"lastChangeRevision": 13824,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "5GHz"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
},
{
"deviceID": "7128ce4e-d61e-45e2-824e-91bea61f3fc8",
"lastChangeRevision": 19432,
"model": {
"deviceType": ""
},
"unit": {},
"isAuthority": false,
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Wireless",
"band": "2.4GHz"
}
],
"connections": [],
"properties": [],
"maxAllowedProperties": 16,
"results_time": 1649415527
}
]
},
"firmware_update_settings": {
"updatePolicy": "AutomaticallyCheckAndInstall",
"autoUpdateWindow": {
"startMinute": 0,
"durationMinutes": 240
}
},
"backhaul": {
"backhaulDevices": [
{
"deviceUUID": "d4b8419d-8e4d-cdff-f4ab-d8ec5e78d532",
"ipAddress": "192.168.0.60",
"parentIPAddress": "192.168.0.45",
"connectionType": "Wired",
"speedMbps": "1024",
"timestamp": "2022-04-08T10:52:10Z"
},
{
"deviceUUID": "92632e9f-8282-9324-e36a-d8ec5e78c68c",
"ipAddress": "192.168.0.62",
"parentIPAddress": "192.168.0.45",
"connectionType": "Wired",
"speedMbps": "1024",
"timestamp": "2022-04-08T10:52:03Z"
}
]
},
"guest_network": {
"isGuestNetworkACaptivePortal": false,
"isGuestNetworkEnabled": false,
"radios": [
{
"radioID": "RADIO_2.4GHz",
"isEnabled": false,
"broadcastGuestSSID": false,
"guestSSID": "**REDACTED**",
"guestWPAPassphrase": "**REDACTED**",
"canEnableRadio": true
},
{
"radioID": "RADIO_5GHz",
"isEnabled": false,
"broadcastGuestSSID": false,
"guestSSID": "**REDACTED**",
"guestWPAPassphrase": "**REDACTED**",
"canEnableRadio": true
}
]
},
"parental_control": {
"isParentalControlEnabled": false,
"rules": [],
"maxRuleDescriptionLength": 32,
"maxRuleMACAddresses": 10,
"maxRuleBlockedURLLength": 32,
"maxRuleBlockedURLs": 10,
"maxRules": 14
},
"speedtest_status": {},
"speedtest_results": {
"healthCheckResults": [
{
"resultID": 66535,
"timestamp": "2022-04-08T09:23:53Z",
"healthCheckModulesRequested": [
"SpeedTest"
],
"speedTestResult": {
"resultID": 66535,
"exitCode": "Success",
"serverID": "42760",
"latency": 10,
"uploadBandwidth": 29522,
"downloadBandwidth": 150290
}
},
{
"resultID": 77485,
"timestamp": "2022-04-08T09:06:35Z",
"healthCheckModulesRequested": [
"SpeedTest"
],
"speedTestResult": {
"resultID": 77485,
"exitCode": "Success",
"serverID": "42760",
"latency": 10,
"uploadBandwidth": 29528,
"downloadBandwidth": 150346
}
},
{
"resultID": 93077,
"timestamp": "2022-04-04T08:50:44Z",
"healthCheckModulesRequested": [
"SpeedTest"
],
"speedTestResult": {
"resultID": 93077,
"exitCode": "Success",
"serverID": "42760",
"latency": 10,
"uploadBandwidth": 29504,
"downloadBandwidth": 150282
}
},
{
"resultID": 10398,
"timestamp": "2022-04-01T10:15:09Z",
"healthCheckModulesRequested": [
"SpeedTest"
],
"speedTestResult": {
"resultID": 10398,
"exitCode": "Success",
"serverID": "42760",
"latency": 10,
"uploadBandwidth": 29596,
"downloadBandwidth": 150202
}
},
{
"resultID": 67438,
"timestamp": "2022-03-30T14:18:54Z",
"healthCheckModulesRequested": [
"SpeedTest"
],
"speedTestResult": {
"resultID": 67438,
"exitCode": "Success",
"serverID": "42760",
"latency": 11,
"uploadBandwidth": 29364,
"downloadBandwidth": 133577
}
},
{
"resultID": 65623,
"timestamp": "2022-03-30T14:18:13Z",
"healthCheckModulesRequested": [
"SpeedTest"
],
"speedTestResult": {
"resultID": 65623,
"exitCode": "Success",
"serverID": "42760",
"latency": 11,
"uploadBandwidth": 29436,
"downloadBandwidth": 110582
}
},
{
"resultID": 27070,
"timestamp": "2022-03-23T10:06:36Z",
"healthCheckModulesRequested": [
"SpeedTest"
],
"speedTestResult": {
"resultID": 27070,
"exitCode": "Success",
"serverID": "42760",
"latency": 10,
"uploadBandwidth": 29463,
"downloadBandwidth": 145768
}
},
{
"resultID": 52692,
"timestamp": "2022-03-23T10:04:40Z",
"healthCheckModulesRequested": [
"SpeedTest"
],
"speedTestResult": {
"resultID": 52692,
"exitCode": "Success",
"serverID": "42760",
"latency": 10,
"uploadBandwidth": 29529,
"downloadBandwidth": 128634
}
},
{
"resultID": 28324,
"timestamp": "2022-03-22T18:27:29Z",
"healthCheckModulesRequested": [
"SpeedTest"
],
"speedTestResult": {
"resultID": 28324,
"exitCode": "Success",
"serverID": "42760",
"latency": 10,
"uploadBandwidth": 29447,
"downloadBandwidth": 108649
}
},
{
"resultID": 33980,
"timestamp": "2022-03-20T08:47:09Z",
"healthCheckModulesRequested": [
"SpeedTest"
],
"speedTestResult": {
"resultID": 33980,
"exitCode": "Success",
"serverID": "42760",
"latency": 10,
"uploadBandwidth": 29497,
"downloadBandwidth": 134450
}
}
]
},
"check_update_state": {
"firmwareUpdateStatus": [
{
"deviceUUID": "93387984-c318-e9e0-d53f-d8ec5e78c709",
"lastSuccessfulCheckTime": "2022-04-07T23:25:04Z"
},
{
"deviceUUID": "92632e9f-8282-9324-e36a-d8ec5e78c68c",
"lastSuccessfulCheckTime": "2022-04-07T23:25:11Z"
},
{
"deviceUUID": "d4b8419d-8e4d-cdff-f4ab-d8ec5e78d532",
"lastSuccessfulCheckTime": "2022-04-07T23:25:06Z"
}
]
},
"wan_info": {
"supportedWANTypes": [
"DHCP",
"Static",
"PPPoE",
"PPTP",
"L2TP",
"Bridge",
"WirelessBridge",
"WirelessRepeater"
],
"supportedIPv6WANTypes": [
"Automatic",
"PPPoE",
"Pass-through"
],
"supportedWANCombinations": [
{
"wanType": "DHCP",
"wanIPv6Type": "Automatic"
},
{
"wanType": "Static",
"wanIPv6Type": "Automatic"
},
{
"wanType": "PPPoE",
"wanIPv6Type": "Automatic"
},
{
"wanType": "L2TP",
"wanIPv6Type": "Automatic"
},
{
"wanType": "PPTP",
"wanIPv6Type": "Automatic"
},
{
"wanType": "Bridge",
"wanIPv6Type": "Automatic"
},
{
"wanType": "DHCP",
"wanIPv6Type": "Pass-through"
},
{
"wanType": "PPPoE",
"wanIPv6Type": "PPPoE"
},
{
"wanType": "WirelessBridge",
"wanIPv6Type": "Automatic"
},
{
"wanType": "WirelessRepeater",
"wanIPv6Type": "Automatic"
}
],
"supportedWirelessModeSecurities": [
{
"band": "2.4GHz",
"supportedSecurityTypes": [
"None",
"WPA-Personal",
"WPA2-Personal",
"WPA-Mixed-Personal"
]
},
{
"band": "5GHz",
"supportedSecurityTypes": [
"None",
"WPA-Personal",
"WPA2-Personal",
"WPA-Mixed-Personal"
]
},
{
"band": "5GHz",
"supportedSecurityTypes": [
"None",
"WPA-Personal",
"WPA2-Personal",
"WPA-Mixed-Personal"
]
}
],
"isDetectingWANType": false,
"detectedWANType": "Bridge",
"wanStatus": "Connected",
"wanConnection": {
"wanType": "Bridge",
"ipAddress": "**REDACTED**",
"networkPrefixLength": 24,
"gateway": "**REDACTED**",
"mtu": 0,
"dhcpLeaseMinutes": 1440,
"dnsServer1": "192.168.0.1"
},
"wanIPv6Status": "Disconnected",
"linkLocalIPv6Address": "fe80:0000:0000:0000:daec:5eff:fe78:c709",
"macAddress": "**REDACTED**"
}
}
}
}
I added the cards in my dashboard. Really cool.
I have one issue: The pictures for my router and satellite in card 3 don't show.
In the code it seems to look into the local i.e. www folder in the subfolder velop_nodes on my HA instance for pictures
getEntityPicture: |
() => {
if (states[vars['ID_ENTITY_PICTURE']]) {
return states[vars['ID_ENTITY_PICTURE']].state
} else {
if (states[vars['ID_MODEL']]) {
return '/local/velop_nodes/' + states[vars['ID_MODEL']].state + '.png'
}
}
}
However on my HA there is no velop_nodes folder in my www folder. Is that supposed to be created during setup in HACS? Or do I manually need to upload it there? If the later where can I get the images?
On and one other thing, not a bug but a questions: in card 2 there is that huge globe icon that should show if my router is connected to the internet or not. I would like to make that a tad smaller. I found where to change the color in the code but I could not find the part where I can set the icon size. Can you point me to that?
Thanks.
Regression introduced with #42
HASS 2021.12 introduces a dataclass
in place of the discovery_info
dict.
Look to update the code to reflect this without bumping the HASS minimum version.
Maybe this issue is because my router is a Linksys AC2200 Smart Mesh Wi-Fi Router (model: MR8300v1, firmware: 1.1.8.203202) and it has a child Linksys Velop Mesh Router (model: WHW03Bv2, firmware: 2.1.18.206964) used to expand my Wi-Fi coverage.
It does the device tracker wonderfully, which is what I mostly wanted. Just thought I would share about these errors.
I get this error after each restart.
Logger: homeassistant.components.sensor
Source: custom_components/linksys_velop/entity_helpers.py:79
Integration: Sensor (documentation, issues)
First occurred: 8:15:11 PM (2 occurrences)
Last logged: 8:15:11 PM
Error adding entities for domain sensor with platform linksys_velop
Error while setting up linksys_velop platform for sensor
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 382, in async_add_entities
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 457, in _async_add_entity
device_info = entity.device_info
File "/config/custom_components/linksys_velop/entity_helpers.py", line 79, in device_info
"sw_version": node.firmware.get("version", ""),
File "/usr/local/lib/python3.9/site-packages/pyvelop/base.py", line 29, in getattribute
ret = object.getattribute(self, item)
File "/usr/local/lib/python3.9/site-packages/pyvelop/node.py", line 46, in firmware
available_updates = self.__attributes.get("updates", {}).get("availableUpdate", {})
AttributeError: 'list' object has no attribute 'get'
There seems to be a blank icon when a device is shown in the connected list for a node.
The icon should be the question mark as it is in the connected devices list for the mesh.
HASS 2022.2.x releases introduce this warning.
Logger: homeassistant.helpers.frame
Source: helpers/frame.py:74
First occurred: 21:00:07 (47 occurrences)
Last logged: 21:00:07
Detected code that uses str (diagnostic) for entity category. This is deprecated and will stop working in Home Assistant 2022.4, it should be updated to use EntityCategory instead. Please report this issue.
Detected code that uses str (config) for entity category. This is deprecated and will stop working in Home Assistant 2022.4, it should be updated to use EntityCategory instead. Please report this issue.
Use Case: Create an automation that alerts me when the Drive Way Camera is detected on the Correct Node being the Garage Node. When it is Not I will then restart it via a smart Plug.
{{ is_state_attr('sensor.garage_velop_connected_devices',Name,Value) }}
Would the proper way to make this work be:
{{ is_state_attr('sensor.garage_velop_connected_devices','Garage-Drive-Way-Camera',True) }} # This didnt work for me.
Name: being the Garage Drive Way Camera
Edit (uvjim): I've split the possible issue into another issue so that the two can be handled separately
Hello
Is it possible to have two separate linksys Velop's connected to HA?
I have two Linksys Velop networks, one for IoT and the other for regular internet use.
So I want to be able to connect both of them to Home Assistant if it is possible.
Thanks
Hey there, thanks for your all your work!
I set up the integration and it's been working great. Recently I swapped out and upgraded my parent node - as I kept the same IP address and local password, the previously set up integration continued to work fine.
However since then it has also appeared as if it's been newly discovered
Of course this is a minor issue as the discovered entry can just be ignored. Thanks!
Hello
In the beta version [2022.8.1b0 and 2022.8.1b0] the (Linksys Velop: Reboot Node) in not woking anymore.
First of all, thank you for this integration. I genuinely appreciate all the work you have put into it.
Device tracker reports a disconnected device as online shortly after being marked offline. This happens with both devices designated as a device trackers.
Running manually installed linksys_velop
Here are snippets of relevant logging while testing with my iPhone (MAC address privacy turned off).
iPhone Connected to WiFi
{'deviceID': 'cceaa045-4540-43ba-aa2e-43908dee92dd', 'lastChangeRevision': 75805, 'model': {'deviceType': ''}, 'unit': {}, 'isAuthority': False, 'knownInterfaces': [{'macAddress': 'F4:DB:E3:xx:xx:xx', 'interfaceType': 'Wireless', 'band': '5GHz'}], 'connections': [{'macAddress': 'F4:DB:E3:xx:xx:xx', 'ipAddress': '192.168.1.240', 'parentDeviceID': '0ddb3568-f47b-f6cc-9c04-e89f805a2651'}], 'properties': [{'name': 'userDeviceOS', 'value': 'iOS 15.6.1'}, {'name': 'userDeviceManufacturer', 'value': 'Apple'}, {'name': 'userDeviceModelNumber', 'value': 'iPhone 11'}], 'maxAllowedProperties': 16}
iPhone WiFi turned off
{'deviceID': 'cceaa045-4540-43ba-aa2e-43908dee92dd', 'lastChangeRevision': 75814, 'model': {'deviceType': ''}, 'unit': {}, 'isAuthority': False, 'knownInterfaces': [{'macAddress': 'F4:DB:E3:xx:xx:xx', 'interfaceType': 'Wireless', 'band': '5GHz'}], 'connections': [], 'properties': [{'name': 'userDeviceOS', 'value': 'iOS 15.6.1'}, {'name': 'userDeviceManufacturer', 'value': 'Apple'}, {'name': 'userDeviceModelNumber', 'value': 'iPhone 11'}], 'maxAllowedProperties': 16}
2022-10-10 10:41:30.132 DEBUG (MainThread) [custom_components.linksys_velop.device_tracker] _async_get_device_info (32N10xxxxxxxxx) --> Network Device: setting consider home listener for 2022-10-10 10:44:30
Marked offline, iPhone WiFi still off
{'deviceID': 'cceaa045-4540-43ba-aa2e-43908dee92dd', 'lastChangeRevision': 75814, 'model': {'deviceType': ''}, 'unit': {}, 'isAuthority': False, 'knownInterfaces': [{'macAddress': 'F4:DB:E3:xx:xx:xx', 'interfaceType': 'Wireless', 'band': '5GHz'}], 'connections': [], 'properties': [{'name': 'userDeviceOS', 'value': 'iOS 15.6.1'}, {'name': 'userDeviceManufacturer', 'value': 'Apple'}, {'name': 'userDeviceModelNumber', 'value': 'iPhone 11'}], 'maxAllowedProperties': 16}
2022-10-10 10:44:30.376 DEBUG (MainThread) [custom_components.linksys_velop.device_tracker] _async_get_device_info (32N10xxxxxxxxx) --> Network Device is now being marked offline
Marked as back online, iPhone WiFi still off
{'deviceID': 'cceaa045-4540-43ba-aa2e-43908dee92dd', 'lastChangeRevision': 75820, 'model': {'deviceType': ''}, 'unit': {}, 'isAuthority': False, 'knownInterfaces': [{'macAddress': 'F4:DB:E3:xx:xx:xx', 'interfaceType': 'Unknown'}], 'connections': [{'macAddress': 'F4:DB:E3:xx:xx:xx', 'ipAddress': '192.168.1.240', 'parentDeviceID': '0ddb3568-f47b-f6cc-9c04-e89f805a2651'}], 'properties': [{'name': 'userDeviceOS', 'value': 'iOS 15.6.1'}, {'name': 'userDeviceManufacturer', 'value': 'Apple'}, {'name': 'userDeviceModelNumber', 'value': 'iPhone 11'}], 'maxAllowedProperties': 16}
2022-10-10 10:46:30.246 DEBUG (MainThread) [custom_components.linksys_velop.device_tracker] _async_get_device_info (32N10xxxxxxxxx) --> Network Device: back online
iPhone WiFi turned on and reconnected
{'deviceID': 'cceaa045-4540-43ba-aa2e-43908dee92dd', 'lastChangeRevision': 75835, 'model': {'deviceType': ''}, 'unit': {}, 'isAuthority': False, 'knownInterfaces': [{'macAddress': 'F4:DB:E3:xx:xx:xx', 'interfaceType': 'Wireless', 'band': '5GHz'}], 'connections': [{'macAddress': 'F4:DB:E3:xx:xx:xx', 'ipAddress': '192.168.1.240', 'parentDeviceID': '0ddb3568-f47b-f6cc-9c04-e89f805a2651'}], 'properties': [{'name': 'userDeviceOS', 'value': 'iOS 15.6.1'}, {'name': 'userDeviceManufacturer', 'value': 'Apple'}, {'name': 'userDeviceModelNumber', 'value': 'iPhone 11'}], 'maxAllowedProperties': 16}
The thing that stuck out to me in the logs is the interfaceType. When it incorrectly reports device is online, the interfaceType remains "Unknown". It isn't until iPhone WiFi is turned back on that the interface correctly reports as "Wireless".
I am attaching the diagnostic file with the device in the "marked as online but WiFi is off" state.
config_entry-linksys_velop-e40dea6f692343a6700925ee89a75987.json.txt
HASS 2021.12 beta shows the following warning
Logger: homeassistant.components.sensor
Source: components/sensor/__init__.py:376
Integration: Sensor (documentation, issues)
First occurred: 17:15:37 (1 occurrences)
Last logged: 17:15:37
sensor.velop_mesh_speedtest_latest is providing a string for its state, while the device class is 'timestamp', this is not valid and will be unsupported from Home Assistant 2022.2. Please report it to the custom component author.
Hello Uvjim,
I update to Home Assistant 2022.11.0b0 (beta version) and got the following error:
Logger: homeassistant.setup
Source: setup.py:320
First occurred: 17:09:16 (2 occurrences)
Last logged: 17:09:16
Unable to prepare setup for platform linksys_velop.select: Platform not found (Exception importing custom_components.linksys_velop.select).
This error originated from a custom integration.
Logger: homeassistant.loader
Source: custom_components/linksys_velop/select.py:66
Integration: Linksys Velop (documentation, issues)
First occurred: 17:09:16 (2 occurrences)
Last logged: 17:09:16
Unexpected exception importing platform custom_components.linksys_velop.select
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/loader.py", line 728, in get_platform
cache[full_name] = self._import_platform(platform_name)
File "/usr/src/homeassistant/homeassistant/loader.py", line 745, in _import_platform
return importlib.import_module(f"{self.pkg_path}.{platform_name}")
File "/usr/local/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/config/custom_components/linksys_velop/select.py", line 66, in <module>
class LinksysVelopSelectDescription(
File "/usr/local/lib/python3.10/dataclasses.py", line 1185, in dataclass
return wrap(cls)
File "/usr/local/lib/python3.10/dataclasses.py", line 1176, in wrap
return _process_class(cls, init, repr, eq, order, unsafe_hash,
File "/usr/local/lib/python3.10/dataclasses.py", line 1025, in _process_class
_init_fn(all_init_fields,
File "/usr/local/lib/python3.10/dataclasses.py", line 546, in _init_fn
raise TypeError(f'non-default argument {f.name!r} '
TypeError: non-default argument 'key' follows default argument
Hello,
I will start by saying I know that this request is a stretch! You mentioned multiple times you are focusing your time on a different dashboard for the Velops which I respect. However I use your existing examples in the readme as that's all I have to go by and with your recent update to the services I know we can have the ability to rename devices. Could you add that function to the Device Detail Card? Also if its not to much to ask, the ability to then reserve the DHCP IP for it?
This is my use case: Your cards fit perfectly for my Portrait monitor so I enjoy the layout you originally took.
Would it be too much to ask for a simple example of a notification automation for new connected device? Failing that, with the trigger section it would be worth it. XD
After running "channel scan" I noticed the following error in the logs and for ~5 minutes the integration didn't have connectivity to my Linksys Velop nodes (the cards showed n/a). Seemed to self-recover, so not a critical issue IMHO.
Source: util/logging.py:156
First occurred: 8:59:55 AM (28 occurrences)
Last logged: 9:04:15 AM
Exception in _async_get_device_info when dispatching 'update_device_tracker': () Traceback (most recent call last): File "/config/custom_components/linksys_velop/device_tracker.py", line 192, in _async_get_device_info tracker_details: Device = await mesh.async_get_device_from_id( File "/usr/local/lib/python3.10/site-packages/pyvelop/mesh.py", line 730, in async_get_device_from_id resp = await self._async_gather_details( File "/usr/local/lib/python3.10/site-packages/pyvelop/mesh.py", line 415, in _async_gather_details responses: List[Tuple[api.Request, api.Response]] = await asyncio.gather( File "/usr/local/lib/python3.10/site-packages/pyvelop/mesh.py", line 260, in _async_make_request raise err from None File "/usr/local/lib/python3.10/site-packages/pyvelop/mesh.py", line 258, in _async_make_request req_resp = await req.execute(timeout=self._timeout) File "/usr/local/lib/python3.10/site-packages/pyvelop/jnap.py", line 176, in execute raise MeshTimeoutError from err pyvelop.exceptions.MeshTimeoutError: Timeout Error
Exception in _async_get_device_info when dispatching 'update_device_tracker': () Traceback (most recent call last): File "/config/custom_components/linksys_velop/device_tracker.py", line 192, in _async_get_device_info tracker_details: Device = await mesh.async_get_device_from_id( File "/usr/local/lib/python3.10/site-packages/pyvelop/mesh.py", line 730, in async_get_device_from_id resp = await self._async_gather_details( File "/usr/local/lib/python3.10/site-packages/pyvelop/mesh.py", line 415, in _async_gather_details responses: List[Tuple[api.Request, api.Response]] = await asyncio.gather( File "/usr/local/lib/python3.10/site-packages/pyvelop/mesh.py", line 260, in _async_make_request raise err from None File "/usr/local/lib/python3.10/site-packages/pyvelop/mesh.py", line 258, in _async_make_request req_resp = await req.execute(timeout=self._timeout) File "/usr/local/lib/python3.10/site-packages/pyvelop/jnap.py", line 182, in execute raise MeshConnectionError from None pyvelop.exceptions.MeshConnectionError: Connection Error
Hello Uvjim,
Is there a way to delete all offline device.
I tried creating a script but with no luck.
alias: Linksys Delete Offline Devices
sequence:
- service: linksys_velop.delete_device
data:
mesh: 57575757657657657657657575
device_name: >-
{% set Devices = state_attr ('sensor.velop_mesh_offline_devices',
'devices') %} {% for Devices in Devices %} {{ Devices }} {% endfor %}
mode: single
any advice?
I'm using the Google Dark theme for HA in conjunction with the scheduler card. However, the time selector is always black so I tried to change it with the following code:
card_mod:
style: |
.mdc-text-field .mdc-text-field__input {
color: white !important;
}
However, no change is applied whatsoever. The cardmod plugin is working fine on normal ha-cards so I guess it's fully functional. Any suggestions?
Looking for an enhancement or fix to the Reboot function of the cards
I receive this error when pressing the reboot button on the Garage Node
I think the error comes in play BC the mesh isn't defined in card. But reviewing the code I didn't see where mesh: data was located.
Calling this service Does work to reset the Nodes.
Request:
Can you move or add the "actions" from the Node cards to the Mesh Card and Add reboot Primary Node, Secondary (Garage) and Secondary node options with the data mesh included. Maybe add a notification that states if you reset the Primary Both get rebooted...
And/Or
Help me fix or determine Why actions reboot doesn't work in the Node Cards. I see the reboot under the second node but its not showing for the primary node. I don't get why it doesn't show up under the Primary node, with the option to reboot there.
Thanks for all you do, love these cards. Great for helping me troubleshot the network and find IP addresses for devices when needed. Maybe one day, you could add a service to add devices, or rename them!
It would be nice if the integration could automatically detect the primary node on the network. This should be achievable using UPnP.
Hi,
Thanks for this very useful addon, I have been using it for some days now and working well. I have three nodes in my house and my 5g is separated from 4g for stability .
Unfortunately, when I go out and back home, if my phone automatically connect to 4g I will not be detected as home until i manually connect to 5g.
I know this might be a missing setting or something. I was using ping before and never had this issue .
I have 2 Linksys MR9000s, one configured as Primary/Master and one as Bridge/Secondary. The Reboot Control is available on the Bridge/Secondary but not the Primary. Any thought on what might cause this?
config_entry-linksys_velop-0a4694e52b4b547b3072eb72e304cabf.json (1).txt
.
I have 4 Linksys Velop nodes. The primary is connected to each of the 3 secondary nodes via ethernet. I am able to verify this by viewing the sysinfo.cgi page on the primary node:
bh_report
Node (MAC) NODE IP PARENT IP Intf. Chan. RSSI(AP/STA) Speed State Timestamp
------------ --------------- --------------- ----- ----- ------------ --------- ----- ------------
C4411E9433CF 192.168.1.3 192.168.1.2 ethX wired 0 1024.000 up 1671754336
C4411E9433E3 192.168.1.5 192.168.1.2 ethX wired 0 1024.000 up 1671754322
C4411E9EAE4E 192.168.1.4 192.168.1.2 ethX wired 0 1024.000 up 1671754329
The Backhaul
entity for each of the secondary nodes is showing Unknown
- is that expected? The attributes for that entity does have some Backhaul info:
Connection Wired
Last checked December 22, 2022, 6:22:02 PM
Speed mbps 1,024
Signal strength —
Here is the diagnostic information (which does seem to indicate some backhaul info) (custom_components
and _Node__connected_devices
data removed):
{
"home_assistant": {
"installation_type": "Home Assistant OS",
"version": "2022.12.8",
"dev": false,
"hassio": true,
"virtualenv": false,
"python_version": "3.10.7",
"docker": true,
"arch": "aarch64",
"timezone": "America/Chicago",
"os_name": "Linux",
"os_version": "5.15.76-v8",
"supervisor": "2022.11.2",
"host_os": "Home Assistant OS 9.4",
"docker_version": "20.10.19",
"chassis": "embedded",
"run_as_root": true
},
"integration_manifest": {
"codeowners": [
"@uvjim"
],
"config_flow": true,
"dependencies": [
"ssdp"
],
"domain": "linksys_velop",
"documentation": "https://github.com/uvjim/linksys_velop",
"iot_class": "local_polling",
"issue_tracker": "https://github.com/uvjim/linksys_velop/issues",
"loggers": [
"pyvelop"
],
"name": "Linksys Velop",
"requirements": [
"pyvelop==2022.12.2"
],
"ssdp": [
{
"st": "urn:schemas-upnp-org:device:InternetGatewayDevice:2",
"manufacturer": "Linksys"
}
],
"version": "2022.12.1",
"is_built_in": false
},
"data": {
"device_entry": {
"area_id": "living_room",
"config_entries": [
"3d286c7a324f498b8244ce455e209ced"
],
"configuration_url": "http://192.168.1.5/ca",
"connections": [],
"disabled": false,
"disabled_by": null,
"entry_type": null,
"hw_version": "1",
"id": "7e2437ea15cdc4fe653bcdb84cec5053",
"identifiers": "**REDACTED**",
"is_new": false,
"manufacturer": "Linksys",
"model": "MX5300",
"name": "Living Room",
"name_by_user": "Living Room Linksys Velop",
"suggested_area": null,
"sw_version": "1.1.12.210066",
"via_device_id": null
},
"node": {
"_attribs": {
"deviceID": "116928a1-715d-daec-6ccf-c4411e9433e3",
"lastChangeRevision": 1325,
"model": {
"deviceType": "Infrastructure",
"manufacturer": "Linksys",
"modelNumber": "MX5300",
"hardwareVersion": "1",
"description": "Velop"
},
"unit": {
"serialNumber": "**REDACTED**",
"firmwareVersion": "1.1.12.210066",
"firmwareDate": "2020-03-05T04:54:12Z"
},
"isAuthority": false,
"nodeType": "Slave",
"friendlyName": "LINKSYS00883",
"knownInterfaces": [
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
},
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
},
{
"macAddress": "**REDACTED**",
"interfaceType": "Unknown"
},
{
"macAddress": "**REDACTED**",
"interfaceType": "Wired"
}
],
"connections": [
{
"macAddress": "**REDACTED**",
"ipAddress": "192.168.1.5"
}
],
"properties": [
{
"name": "userDeviceLocation",
"value": "Living Room"
},
{
"name": "userDeviceName",
"value": "Living Room"
}
],
"maxAllowedProperties": 16,
"results_time": 1671755085,
"backhaul": {
"deviceUUID": "116928a1-715d-daec-6ccf-c4411e9433e3",
"ipAddress": "192.168.1.5",
"parentIPAddress": "192.168.1.2",
"connectionType": "Wired",
"speedMbps": "1024",
"timestamp": "2022-12-23T00:22:02Z"
},
"updates": {
"deviceUUID": "116928a1-715d-daec-6ccf-c4411e9433e3",
"lastSuccessfulCheckTime": "2022-12-23T00:17:56Z"
}
},
"_MeshDevice__device_id": "116928a1-715d-daec-6ccf-c4411e9433e3",
"_Node__parent_name": "Far Garage"
}
}
}
If it's relevant, the nodes are running in Bridge mode as there is another device upstream that handles DHCP.
Thank you for the great integration and the sample code for Lovelace! Great work!
I am having a display issue with card 3 and the display of the model, serial, and IP address information. See below:
I've tried to mess around with the margins in the sample code but was unsuccessful in fixing this.
Thanks!
I’ve noticed over time my Velop starts running into Wi-Fi issues and using Channel Finder (from Wi-Fi advanced settings) solves the problems.
If this service was accessible I could automate to run this automatically every week and hopefully eliminate the problems proactively.
Maybe this issue is because my router is a Linksys AC2200 Smart Mesh Wi-Fi Router (model: MR8300v1, firmware: 1.1.8.203202) and it has a child Linksys Velop Mesh Router (model: WHW03Bv2, firmware: 2.1.18.206964) used to expand my Wi-Fi coverage.
It does the device tracker wonderfully, which is what I mostly wanted. Just thought I would share about these errors.
I get this error after each restart.
Logger: homeassistant.components.binary_sensor
Source: custom_components/linksys_velop/entity_helpers.py:79
Integration: Binary sensor (documentation, issues)
First occurred: 8:15:11 PM (2 occurrences)
Last logged: 8:15:11 PM
Error adding entities for domain binary_sensor with platform linksys_velop
Error while setting up linksys_velop platform for binary_sensor
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 382, in async_add_entities
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 457, in _async_add_entity
device_info = entity.device_info
File "/config/custom_components/linksys_velop/entity_helpers.py", line 79, in device_info
"sw_version": node.firmware.get("version", ""),
File "/usr/local/lib/python3.9/site-packages/pyvelop/base.py", line 29, in getattribute
ret = object.getattribute(self, item)
File "/usr/local/lib/python3.9/site-packages/pyvelop/node.py", line 46, in firmware
available_updates = self.__attributes.get("updates", {}).get("availableUpdate", {})
AttributeError: 'list' object has no attribute 'get'
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.