Transforming the interactions with our Nissan Leaf from painful to seamless

Using the Nissan Carwings app has always been a pain and while the recent redesign certainly made it prettier, it still leaves the user staring at the spinning loader for tens of seconds between just about every interaction. And it’s been cold here lately, so we’ve been regularly testing out patience just to turn on preheating in the car.

Properly motivated, it was time to fix this, and so I set off to connect the Carwings API to our Home Assistant installation to get current battery and charging data, but more importantly to instantly toggle the remote AC. Ok, that’s not entirely true, as I cannot change the API that handles requests, so it will still take several slow steps to remotely toggle the AC. But, I can change what the user experience is like in achieving this goal. It really should be as simple as toggling the switch to express intent, and receiving a notification when the request has been completed. Easy and seamless.

The development itself was mostly done by others who created a variety of modules to communicate with the Carwings API, and so I just had to create a wrapper and consume the data from within Home Assistant.

Of course, in this bright new era of Voice Assistants, what could be more convenient than commanding our Google Home Mini to turn on the preheating? With this final touch in place using IFTTT the transformation of turning a terrible user experience, to a short and pleasant one was complete.


Links
Carwings npm module: https://github.com/blandman/carwings
Carwings python library (someone should make a HASSIO add-on out of): https://github.com/jdhorne/pycarwings2/blob/master/pycarwings2/pycarwings2.py
My Carwings Hassio add-on: https://github.com/suhajdab/hassio-carwings
Custom Google Assistant commands: https://ifttt.com/google_assistant