Custom Integration: Linksys Velop

I’ve been looking at the update entity that was recently introduced and believe that we should be able to initiate an update of Velop firmware from inside HASS.

This will only be useful for those that have automatic updates turned off. For those with automatic updates turned on, I have already pulled that information into the integration and set the relevant attribute for the entity.

I’ve set up a poll because I’m really in two minds about whether to do this or not. It won’t necessarily be quick to implement because I’ll have to keep rolling back firmware to test things out.

Any thoughts and feedback would be appreciated.

Would you like to be able to update Velop firmware from inside HASS?
  • Yes
  • No

0 voters

2022.4.2b0 is out: -

  • Allow a node to be removed
  • Alert new node found
  • Fire event on new node
  • README updated

2022.4.2b1 is out: -

  • Allow a node to be removed
  • Alert new node found
  • Fire event on new node
  • only attempt to remove services when necessary
  • add debug logging to setup
  • Detect change in primary node
  • tidy up config flow
  • README updated

2022.4.2b2 is out: -

  • Allow a node to be removed
  • Alert new node found
  • Fire event on new node
  • only attempt to remove services when necessary
  • add debug logging to setup
  • Detect change in primary node
  • tidy up config flow
  • Remove persistent notification for new node
  • Streamline payload info
  • update DataUpdateCoordinator name
  • README updated

2022.4.2b3 is out: -

  • Allow a node to be removed
  • Alert new node found
  • Fire event on new node
  • only attempt to remove services when necessary
  • add debug logging to setup
  • Detect change in primary node
  • tidy up config flow
  • Remove persistent notification for new node
  • Streamline payload info
  • update DataUpdateCoordinator name
  • fix incorrect versions on update entity
  • gather more information from SSDP for firing events
  • add unique_id to events where possible
  • primary node change detected in DataUpdateCoordinator
  • better target config entry devices when getting the mesh id
  • README updated

Some context around the new features in this release: -

Allow a node to be removed - if a node has been removed from the Mesh it will currently show as offline all the time in the integration. This feature allows you to remove it without needing to remove the entire integration. If you remove a node that still exists it will return at the next poll interval.

Alert new node found - when a new node is found on the mesh a persistent notification will be shown informing you about the new node. A node may be considered new if it has just been added to the mesh or was previously removed from the HASS UI.
I’ve removed the alert now as I realised it wouldn’t have been translatable and broke the model I’d used on previous events. Instead I have updated the README to include an automation that mimics the alert that would have been created.

Fire event on new node - using the same criteria as the alert an event is also fired called linksys_velop_new_node_on_mesh. The event allows you to have an automation execute when a new node is found. The data for this event also includes the ID of the persistent notification just in case you want to dismiss the notification as part of the automation.

Detect change in primary node - only applicable if using SSDP. The integration will detect if the primary node has changed (based on a combination of serial number and IP address if using SSDP or node type and serial number during polling). If it has it will fire an event linksys_velop_new_primary_node.


2022.4.2 is now out and available in HACS

1 Like

I’m a bit confused. When I search on HACS, the only Linksys Velop repository is by a different person for presence detection. Just set up my netwrk today and looking forward to this. Thanks for the hard work.

Hi, you’ll need to add the GitHub repository as a custom repository in HACS.

Thanks for the quick response, first time I’ve done that and didn’t see the ‘…’ in the upper right of the Integrations Screen. Building your view and got all of the necessary cards installed, downloaded the MX42 image and added the 4 cards. On the fourth card, I’m getting ‘Entity not available: select.velop_mesh_devices’. Obviously that means I don’t have an entity of that name. Do I need to create one or do I change the card configuration to a different entity. Thanks again, awesome work on this.

The select entity is disabled by default as it probably won’t be used by many people. You’ll need to enable the entity before the card can be used.

I am going here a bit off-topic, but I believe this is the best place to ask this kind of question.

I am struggling for a while with my Google Home devices, since the beginning of the year or just after Christmas. My groups stopped working, my paired speakers stopped working as a pair, etc. During the weekend I managed to find the probable reason why the devices are not working together as they cannot discover each other through mDNS/Multicast.
At this stage I am quite a bit confused what is really the route cause, is it the devices themselves or the Linksys Velop AX5300 nodes (running in bridge mode).
The reason why I cannot pinpoint it, because when I restart the mesh, all Google Home devices starts to work together again. Either can be the nodes are crashing some way, or the devices are not sending mDNS/Multicast messages as they should.

So the question is, does any of you have similar issues with a Velop mesh and Google Home devices?

I’m only 2 days into using Velop and no issues so far. I’m sure others with more time under their belt can chime in.

1 Like

@dzapola, thanks for the reply, to be clear, I haven’t had any issues before Christmas. It started after, around that time. It might have been due to the changes what Google implemented as a result of the Sonos lawsuit, or a firmware change on the Velops. Might be both. I don’t know, and I cannot pinpoint it what is exactly causing it.
Actually the recent firmware changes have made one of my nodes working better and dropping less connections as well. Devices which were dropping of the WiFi hasn’t done that since February, I believe.
So, I really don’t know what is going on.

Not a problem I’m having but I don’t use Google Home. You could check that the Mesh isn’t set to filter multicast.

I use an app on my Android phone that allows me to see the UPnP and Bonjour/mDNS devices that are announced. If you have similar you should be able to see if the devices can be seen when they advertise themselves.

Not sure if this is the place to request a feature, but here goes: It would be really handy for HA to know the number of guest devices connected to the entire mesh. I can access the guest_devices information through the array data from each node, but a simple “number of connected guest devices” for the entire system would be much easier to parse in node-red, etc.

You can also parse the list held of online devices at the Mesh level - that also holds whether a connected device is on the guest network or not.

A sensor would possibly be easier still for you mind you. You could always create a template sensor for it (using the mesh level list instead of going through all nodes).

It wouldn’t be too difficult to add a sensor for it mind you. I’ll have a look when I have time.

Edit: feature request created here: [FR] Sensor for number of devices on guest network · Issue #184 · uvjim/linksys_velop · GitHub

That’s super helpful! I thought the mesh level “connected devices” only returned a number, but it does contain all that data. I’m not really sure how to parse through that array to get to the guest_network info since each device is labeled by name within the array. eg: (data.attributes.devices[##][“DEVICE_NAME”].guest_network). We run an airbnb and I basically need to know if there are guests connected to the system or not, and I won’t know the device name! I will do some more searching on how to code through that array, but still wishing for a single data point from the integration. Thanks for your help.

That whole attribute could do with another rework really. You caught me whilst I was looking at something else in HASS so thought I’d look at a Jinja template for you. I don’t have any guests on the mesh at the moment so this is just a best effort.

The variable results.guests is a list of all the names that are on the guest network and the last line just outputs the count of those.

Hope it helps until I put the other sensor in.

{% set devices = state_attr("sensor.velop_mesh_online_devices", "devices") %}
{% set results = namespace(guests=[]) %}
{% for dev in devices -%}
  {% set name, details = devices[loop.index - 1].items() | list | first %}
  {% if details.guest_network is eq true %}
    {% set results.guests = results.guests + [name] %}
  {% endif %}
{%- endfor %}

{{ results.guests | count }}

You are awesome! Thank you!

1 Like

2022.5.1b0 is out: -

  • Restructure online devices sensor attributes
  • add sensor for guest network devices
  • device counts for sensors now use new function

2022.5.1b1 is out: -

  • Restructure online devices sensor attributes
  • add sensor for guest network devices
  • device counts for sensors now use new function (internal code tidy)
  • deduplicate mesh entity definition (internal code tidy)
  • deduplicate node entity definition (internal code tidy)

2022.5.1b2 is out: -

  • Restructure online devices sensor attributes
  • add sensor for guest network devices
  • device counts for sensors now use new function (internal code tidy)
  • deduplicate mesh entity definition (internal code tidy)
  • deduplicate node entity definition (internal code tidy)
  • fix device trackers

2022.5.1b3 is out: -

  • Restructure online devices sensor attributes
  • add sensor for guest network devices
  • device counts for sensors now use new function (internal code tidy)
  • deduplicate mesh entity definition (internal code tidy)
  • deduplicate node entity definition (internal code tidy)
  • fix device trackers
  • remove warning log for device tracker updates

2022.5.1b4 is out: -

  • Restructure online devices sensor attributes
  • add sensor for guest network devices
  • device counts for sensors now use new function (internal code tidy)
  • deduplicate mesh entity definition (internal code tidy)
  • deduplicate node entity definition (internal code tidy)
  • fix device trackers
  • remove warning log for device tracker updates
  • refactor device tracker entities

Breaking Change

The restructure of the online devices sensor may break any automations you have but hopefully it’s a little friendlier to work with now. The README has been updated so that the mesh card (card 2) has been update to reflect this change as well.

2 Likes

The “Guest Devices” sensor should be in the beta now. It will be disabled by default on the mesh but you should be able to enable it once you upgrade.

I don’t use NodeRed but hopefully that’ll make life a bit easier for you. I’m not sure there’s many more tweaks/changes/updates to do so the beta is likely to be released soon unless I get any issues in the meantime.

I have tested with the HASS 2022.5.x releases as the beta has been going through and there doesn’t seem to be any breakages with that either.

Apologies. Don’t go to the beta if you’re using device trackers… Some tidying up has killed them being created. Will fix it ASAP.

Edit: 2022.5.1b2 should fix the device trackers. They need a bit of a rework really as they currently override a property marked as final in versions of HASS since 2022.2.x

Edit: 2022.5.1b4 is now out and has the rework for device trackers in. Please double check that I haven’t broken them for you. :wink:

2022.5.1b5 is out: -

  • Restructure online devices sensor attributes
  • add sensor for guest network devices
  • device counts for sensors now use new function (internal code tidy)
  • deduplicate mesh entity definition (internal code tidy)
  • deduplicate node entity definition (internal code tidy)
  • fix device trackers
  • remove warning log for device tracker updates
  • refactor device tracker entities
  • bump pyvelop to 2022.5.1 (should fix a division by 0 error in the storage sensor)

Breaking Change

The restructure of the online devices sensor may break any automations you have but hopefully it’s a little friendlier to work with now. The README has been updated so that the mesh card (card 2) has been update to reflect this change as well.

The sensor update works perfectly! Thanks for making this happen.