Closed Sanfam closed 5 years ago
Thanks for this! That looks really good.
The my.chevy website hasn't worked for me for the last month or two. I've got some other onstar things to figure out that need a customer service call, so I was going to complain about the website at the same time. So it's not just you, it's just that their website seems completely broken.
@sdague I suppose that's good, then. It's a shame their service basically sucks anywhere it isn't absolutely necessary not to.
I was thinking about alternatives and noticed that while both the OnStar and my.chevrolet.com websites fail to return data, that both of their android apps (OnStar Remotelink and MyChevrolet) do seem to reliably fetch and pull data.
Is there any potential worth in tracing the API calls used by these apps and refactoring your calls around them? So long as they aren't obfuscated too heavily, this seems like a good branching-off point may exist.
As a bit of a follow-up, I've hit a wall at attempting to sniff out the http requests being generated by the app. Following the instructions here, I've set up a proxy app and confirmed it makes calls to two URLs, https://gmmobileservices.gm.com
and https://api.gm.com
, but I'm unable to analyze their content since Android Nougat changed how apps define which root CAs they trust. This prevents a connection from being negotiated successfully when middleman certs for Fiddler and Charles Proxy are installed ("Failure | Client SSL handshake failed: An unknown issue occurred processing the certificate (certificate_unknown)"
).
I'm stuck at not being sure how to add/force trust of the proxy certificate in a way that complies with Android 7's changes to default trust sources.
I believe what that means is the APP uses the official gm api, which they don't make available easily. For the my.chevy website that official API is hidden in a backend service, which constantly seems to fall over, then there is a web UI that pushes against it. It's good that they are encrypting that traffic, but it also means there are probably API keys embedded in the app that you'd need to make any of those calls.
It does explain why the reliability is so different between the two systems.
So, this should end up fixed with the 1.0.1 release. We no longer are using selenium. Will update home assistant code to use this soon.
Description
Largely for the sake of education, I'm creating a docker image of HASS compatible with myChevy. While I believe everything necessary for it to function is in place I've continued to be unable to successfully use the
mychevy
component, though I'm not certain if this is now due to a bug with my.chevrolet.com or how I have configured my instance. As of right now, their website displays an error instead of efficiency metrics.Error:
Is what I'm seeing in the logs below the expected output of what my.chevrolet is giving me above?
What I Did
Error received during startup:
Dockerfile:
image available under sanfamite/home-assistant-mychevy. Feedback is welcome!