Allow the end-user to specify MyQ user agent

It’s no secret that the MyQ integration has been going Tango Uniform quite a bit recently. The problem seems to be the user-agent of the integration is changing. This can be easily “patched” by anyone who possesses some Linux skills, or they can wait for a new version to be published.

However, neither of these are ideal situations. Having to publish a new version of the software is a bit over the top, and for those that are relying on MyQ waiting is a frustrating experience. Sure, they can dust off some terminal and vi knowledge and follow one of the many step-by-step-keystroke-by-keystroke guides people are writing. For example, this one shows you how to update the user-agent in your docker container. It works great. But how about letting the end user specify the user-agent, as described by @ssilence (I’m assuming ssilence and ssilence5 are the same peeps). His solution is to allow you to set the user-agent in the configuration


---
#
# https://www.home-assistant.io/integrations/myq/
#
platform: myq
username: !secret myq_username 
password: !secret myq_password
type: chamberlain
user_agent: 'myQ/14041 CFNetwork/1107.1 Darwin/19.0.0'

I know for some it’s anathema to rely on the internet because they are wedded to a closed system, but since MyQ has to use the internet anyways, why can’t this user-agent point to a simple URI such as text file in the repo?

If someone shows me how to find what the new user agent should be, I’ll write and publish a service that will create a URI for everyone to use. Basically an automation that discovers MyQ has stopped working, finds the correct user-agent and publishes it somewhere.

I’m not hardcore on a particular implementation, but we really should find an easier way for people to update this setting that doesn’t require waiting for a new build or hitting up the command line.

Thoughts?

Pinging @bdraco, @ChadGnad, @GaryOkie (please add others who you’ve seen express interest in this issue)

While I wholly support the ability to easily configure the user agent retroactively, I was thinking there might be a better way.

If in fact it is feasible to determine the URI programmatically as a service or utility, why can’t said utility be a function in pymyq when it detects a connection error? It can then try again with the new URI and restore connectivity automatically - no configuration tweaks at all required.

4 Likes

Bump, due to MyQ taking a dump on HA users…

1 Like

FYI, PR https://github.com/home-assistant/core/pull/44972 has been submitted allowing user to provide user agent. Unsure if will be approved