Hey there, I am well on my way to reverse-engineering the app.eviqo.io websockets protocol. I have not yet done a 3rd party HACS integration but am interested on this being my first one. Unfortunately the device is cloud only so its not the premiere “local polling.” If there is interest, I will publish it.
I pushed the repository that is successfully reverse engineering the websocket connection to the main website. Creating a hacs integration is next!
Some stuff you will get if you clone and try it out would be basic power stats for a session (mine is at ~30A at ~240V):
22:51:06 - evipy - listen:432 - {'widget_id': '5', 'widget_name': 'Voltage', 'device_id': '89349', 'widget_value': '239.02'}
22:51:06 - evipy - listen:432 - {'widget_id': '2', 'widget_name': 'Power', 'device_id': '89349', 'widget_value': '7.09'}
22:51:06 - evipy - listen:432 - {'widget_id': '4', 'widget_name': 'Amperage', 'device_id': '89349', 'widget_value': '29.6'}
22:51:09 - evipy - listen:432 - {'widget_id': '5', 'widget_name': 'Voltage', 'device_id': '89349', 'widget_value': '239.01'}
22:51:09 - evipy - listen:432 - {'widget_id': '2', 'widget_name': 'Power', 'device_id': '89349', 'widget_value': '7.09'}
The next iteration of the project would be to figure out how to set the current limits which you can do via the web app. The device supports ~50A down to ~5A I believe. It is fully configurable if you wanted to reduce the amperage during peak TOU for lesser cost for example.
Hey ya thank you! Awaiting the HACS integration lol!
I got delayed with some personal stuff but will try to get the HACS out the door soon. I too want to get some of this date into HA so am deeply interested. I won’t support more than 1 charger for now to reduce complexity and would be surprised if the 2 people in the world with 2 Eviqo chargers also use HA, so I am not worried about it for now.
OK first draft is released and use at your own risk. There is some strange state logic that is required to be adhered to and it can cause you to need to reload the integration sometimes.
Thanks for this @dr_ransom. I’ve been wanting to create an MQTT gateway for Eviqo for a while now (I created/maintain ring-mqtt so MQTT is my preferred protocol) but I haven’t had time to do the reverse engineering. This will give me a nice head start when I finally get there!
Hi @dr_ransom
i tried and was able to import into the HACS storage. However when i try to connect to the same. i receive a message stating Cannot Connect.
I am also getting this error “cannot_connect”
Sorry all, I am not able to devote much time to this and I am guessing the company may be using a hostile API as we are having to connect to the cloud. Ideally we would be able to connect to the device over local LAN which I have not figured out.
For those interested in this, I’ve created an MQTT gateway for EVIQO devices that also works as a Home Assistant addon (and generic Docker container as well).
The original basis was the API here, but I ported it to NodeJS (because that’s what I know from my work with ring-mqtt) and did a bunch of tweaks including adding support for setting the amps and for triggering charging startup. I’ve been using it for about a month and it seems to be approaching usable status. If anyone wants to give it a try you can add the repo to Home Assistant as an addon repo (not HACS) and install it, but you will also need MQTT setup and working.
Not trying to take anything away from the project here, but I really needed a way to use this device with MQTT because the EVIQO charger didn’t work well with my wife’s scheduled charging feature (thanks GM) and the app wasn’t quite flexible enough. I wouldn’t have managed to get this far without the work dr_ransom had done on the python API first!
And a quick screenshot of a charging session in my HA Dashboard:
Really brilliant to take this up and make it usable. I have been too busy to polish it and bring it the extra mile. I will give this integration a try and we can put our efforts into one code base.
I archived my python version and pointed to @tsightler 's version. I have installed the docker version and have had better success with it than I have had with my python version. Thanks!!!
There’s still definitely room for improvement, I know there’s an issue with websocket recovery after, for example, a loss of internet connection. I have code that attempts to detect this and recover/reconnect, but it doesn’t seem to be working, at least not in all cases. I also plan to change the code to only update duration every 10 seconds, or perhaps even make it configurable, as the current model somewhat overloads the metrics database with an update every second.
I’m travelling for the next two weeks, but I’ll try to get both if these fixes when I get back.

