Custom Integration: Linksys Velop

@uvjim, This is an excellent integration and in my opinion should be part of HASS. Confirmed working with HA core 2022.6 using a model MR8300 on firmware version 1.1.10.210186.

2022.11.2b0 should now be available in HACS if viewing betas is enabled.

What’s Changed

  • bump pyvelop to 2022.11.1
  • tidy and avoid multiple calls for device trackers
  • stop using optional typing

N.B. The changes to the device trackers should benefit those that have multiple device trackers configured. Previously a call would be made to the API for each device tracker that was configured. Now, with the changes in pyvelop a single call can be made to retrieve details for a list of devices thereby reducing the number of calls made. Everything else should stay the same for device trackers (assuming that I haven’t broken anything in the tidying process).

2 Likes

I said I was working on a new example UI for details provided by the integration. I’ve made an animation of the UI.

There’s quite a lot of YAML that goes behind this. As with the previous example UI there’s a requirement for some custom cards to be installed. It takes advantage of the sub-views now available in HA. Also, HA 2022.11.x is needed as it uses some of the new CSS variables available for the colours.

If anyone is interested, I can look into writing it all up and making the YAML available.

New UI Resized

This is an awesome integration, thanks for creating and maintaining it :muscle:

How are y’all creating automations with the device tracking feature? I’d like to create an automation along the lines of “if device X hasn’t been seen in Y, do Z”

Do I need to dive into some YAML for that or can it be done through the UI?

Thanks for the kind words.

You should be able to do all of this in the standard automation UI. A couple of things to remember: -

  • If you create a device tracker then it will use the timeout configured before it shows as away. What does this mean for your automation? Well, the device will be seen as offline based on the “scan interval for device trackers”, once it’s seen it’ll wait for “time to wait before switching to not_home”. That’s the point that your automation will trigger. IIRC the defaults are 10 seconds and 180 seconds respectively (these can be changed). So, you could be waiting up to 189 seconds for the automation to trigger.
  • You can use a state trigger to monitor the state of the device tracker combined with the “For” option to say how long it needs to have been in that state for. Let’s assume that you set that to 60 seconds. Now, the trigger won’t fire for anywhere up to 249 seconds after the device actually went offline.

You can use these concepts combined to ensure that device trackers are responded to on different timescales, i.e. something fires as soon as a device tracker is considered away, whereas something else happens when a different device is considered away for a longer period of time. You could even decide to do multiple things when a device is considered away at different time intervals, e.g. arm the alarm as soon as my phone is considered away and an hour later turn a random light on.

Hope that helps.

2022.11.2b1 should now be available in HACS if viewing betas is enabled.

What’s Changed

  • bump pyvelop to 2022.11.2
  • add service for renaming a device
  • bump pyvelop to 2022.11.3
  • combine id and name for delete device service
  • add service to control internet access for a device

Breaking Change

The service for deleting a device now only accepts a single parameter for the device. The service code will distinguish between a device ID and a name. You will need to adapt any service calls you use that rely on this service.

Notes

This is the first iteration of trying to mimic the ability to allow/block internet access for a given device. In this iteration if the device already has scheduled rules (not rules that are all allow or all block) then a warning will be displayed in the logs. If you want to force the allow/block then you need to use the overwrite argument which will remove any existing scheduled rule for the device before carrying out the allow/block.

This closely mimics the Linksys Web UI which only allows a single type of schedule to be in place at any one time. However, the Linksys app takes this a step further and will back up the scheduled rules, apply the allow/block and then restore the scheduled rules when you remove the allow/block. At the moment I’m trying to work out how the encoding of that backup is done. I know where it should be stored but just don’t know how it is encoded. Hopefully I can work this out and add that functionality in as well.

1 Like

Apologies for the quick beta release.

2022.11.2b2 should now be available in HACS if viewing betas is enabled.

What’s Changed

  • collapse allow/block to a single service
  • service tidy up

Breaking Change

The service for deleting a device now only accepts a single parameter for the device. The service code will distinguish between a device ID and a name. You will need to adapt any service calls you use that rely on this service.

Notes

This is the first iteration of trying to mimic the ability to allow/block internet access for a given device. In this iteration if the device already has scheduled rules (not rules that are all allow or all block) then a warning will be displayed in the logs. If you want to force the allow/block then you need to use the overwrite argument which will remove any existing scheduled rule for the device before carrying out the allow/block.

This closely mimics the Linksys Web UI which only allows a single type of schedule to be in place at any one time. However, the Linksys app takes this a step further and will back up the scheduled rules, apply the allow/block and then restore the scheduled rules when you remove the allow/block. At the moment I’m trying to work out how the encoding of that backup is done. I know where it should be stored but just don’t know how it is encoded. Hopefully I can work this out and add that functionality in as well.

1 Like

Thank you for your reply :slight_smile:

As a home assistant novice (I only configured it a few days ago on my Raspberry Pi), where in the UI do I go to select the tracked device? I don’t see it in the device entity pages.

The device track is definitely configured for the integration.

Never mind - figured it out. When creating an automation, under trigger, you need to select “State”. Easy :slight_smile:

Hi,

I managed to catch sight of the screenshot before you edited the message. Can I ask how many device trackers you’ve enabled? I noticed that you had about 60 entities with only the Mesh and a single node (assuming I saw it right). I have 61 entities with 4 nodes, the Mesh and 2 device trackers?

I’m just wondering if you need all the trackers that you’ve enabled. They really should be used for tracking devices that you’re interested in when they drop off the network, e.g. a mobile phone to detect presence in the home etc.

Heya, nope just 30 entities. All are default and I’m only tracking 1 device at the moment.

image

That’s good then. Just my eyes and memory playing up then.

2022.11.2b3 should now be available in HACS if viewing betas is enabled.

What’s Changed

  • allow not showing function names in log messages
  • deprecate check_updates and start_speedtest
  • update readme

Breaking Change

The service for deleting a device now only accepts a single parameter for the device. The service code will distinguish between a device ID and a name. You will need to adapt any service calls you use that rely on this service.

Notes

This is the first iteration of trying to mimic the ability to allow/block internet access for a given device. In this iteration if the device already has scheduled rules (not rules that are all allow or all block) then a warning will be displayed in the logs. If you want to force the allow/block then you need to use the overwrite argument which will remove any existing scheduled rule for the device before carrying out the allow/block.

This closely mimics the Linksys Web UI which only allows a single type of schedule to be in place at any one time. However, the Linksys app takes this a step further and will back up the scheduled rules, apply the allow/block and then restore the scheduled rules when you remove the allow/block. At the moment I’m trying to work out how the encoding of that backup is done. I know where it should be stored but just don’t know how it is encoded. Hopefully I can work this out and add that functionality in as well.

The Check for Updates and Execute Speedtest services have been deprecated. If you were using them please look into migrating to using the native button.press service (here) provided by Home Assistant. A warning will be put in the logs if you are using these services.

1 Like

I am VERY new to this and trying to install this integration. I did get HACS installed and connected to GIthub per the directions.

I’m stuck on something I’m sure is simple. When I click in Home Assistant and select add repositories it wants a web link to the repository. No matter what I try I get an error.

'Cmd('git') failed due to: exit code(128) cmdline: git clone -v --recursive --depth=1 --shallow-submodules https://github.com/uvjim/linksys_velop/tree/main/custom_components/linksys_velop /data/addons/git/e805f3b8 stderr: 'Cloning into '/data/addons/git/e805f3b8'... fatal: repository 'https://github.com/uvjim/linksys_velop/tree/main/custom_components/linksys_velop/' not found '

I’m sure its something to do with Github isn’t connected through HACS right, but I got the proper results when I did that setup?

Just a pointer to what I’m missing, I can usually work my way through these things even when I’m not sure what I’m doing.

I’m not sure where that message is coming from. I’m pretty sure you only need to add https://github.com/uvjim/linksys_velop as a custom repository in HACS.

Mind you, I have just had to authenticate again to github whilst pushing some changes so maybe it was having an off moment.

Thank you, I believe I finally found where to add it to HACS and downloaded it. So now onto to try and find where to finish the setup. I appreciate your help.

Thank you again, I have it loaded, just need to learn how to add the Lovelace UI part.

2022.11.2b4 should now be available in HACS if viewing betas is enabled.

What’s Changed

  • only rename device if the names are different
  • tidy device_internet_access service
  • bump pyvelop to 2022.11.4
  • bump pyvelop to 2022.11.5
  • update internet access service to allow backup/restore of schedule
  • make service warnings consistant

Breaking Change

The service for deleting a device now only accepts a single parameter for the device. The service code will distinguish between a device ID and a name. You will need to adapt any service calls you use that rely on this service.

Notes

This beta brings the second iteration of allowing/blocking internet access for a given device. This iteration more closely mimics the Linksys app rather then the web UI. Due to this a more subtle naming convention is used and Internet access is now paused and resumed. This release allows you to pause Internet access at any time. It will backup any existing schedules ready for them to be restored. This backup is carried out in the same way the app does it by encoding the schedule and storing in a property against the device. When you resume access the schedule is decoded and overwrites the “paused” schedule. If you attempt to “resume” access when there are already schedules in place a warning is logged.

The Check for Updates and Execute Speedtest services have been deprecated. If you were using them please look into migrating to using the native button.press service (here) provided by Home Assistant. A warning will be put in the logs if you are using these services.

1 Like

2022.11.2 has now been released.

2 Likes

Some of you may have spotted a b0 release. This was a bug-fix release for reported issue.

2022.12.1b1 has been released.

What’s Changed

  • add dhcp sensor
  • allow extra state attribute to be a property name
  • split dhcp reservations into own sensor
  • bump pyvelop to 2022.12.2
  • add express forwarding binary_sensor
  • add SIP binary_sensor
  • add UPnP binary_sensors
1 Like

So I have this setup and running, it list the devices on the mesh. If I go to the attributes drop down of the online devices card, it list all the details of my devices on the mesh. My question is do you know why when I click the trackers setup upon installation or reconfiguring it list nothing in the drop down list?

Screenshot 2023-01-01 162442

I am sure I’m just missing the big picture or what I was supposed to do to create a tracker device?