[REQUEST] Hyundai Bluelink driver

A couple of years ago, I was able to cobble together a way to control my Hyundai vehicle through their Bluelink service by running the node.js app Bluelinky as a service on a raspberry pi, sending requests to it using Rule Manager, and triggering those requests either within hubitat or by exposing vswitches to homekit for use with siri shortcuts.

This process works, but it would be great if there were a hubitat driver that could make the API calls directly to the Bluelink service. It seems like it should be a simple project to make a hubitat driver for it, since the bluelinky dev has already done the work of reverse engineering the API, but I'm an IT Ops guy, not a dev, so what do I know? :slight_smile:

Would any of our illustrious community developers be willing to consider taking on such a project?

2 Likes

As a new owner of a Kona EV Ultimate - I would love to see this. I believe there is an Amazon skill for Bluelink so maybe I can leverage that at least to control some functions.

I just looked at the Alexa skill and it looks promising. Most of the interesting stuff (remote start, lock/unlock, etc.) seems to be supported. I haven't tried using it with Alexa routines yet, so not sure how far the integration goes. I'm excited and I haven't even got my new Hyundai yet!

Does require the use of your Bluelink pincode after any request though. Just tried flashing the lights. Don't use Alexa routines...I would imagine the pin request would pause it?

Bluelinky stores the PIN in it's config, along with the username, password, VIN, etc. I would expect that a hubitat driver would do the same, storing that info in hubitat to use when needed.

In the past, when I wanted Google to remote start my vehicle for me, I created a virtual switch in hubitat which would send the remote start command through bluelinky when the vswitch turned on. That avoided any added complexity on the google end.

Does this work For US cars? Reason I ask is I was playing with this but i don't think it support US. But has been updated since then. node-red-contrib-bluelinky - npm
I currently use node-red to start my ford. node-red-contrib-ffpass (node) - Node-RED
I integrated node red with hubitat

I don't use node red, so I can't speak to that package specifically, but it should. Bluelinky was originally US only, with support for other countries being added sometime last year. I know there was a window recently where authentication was broken for US vehicles, but that was fixed within a couple of weeks.

FYI - I just posted a driver/app for Hyundai Bluelink support:

1 Like

Awesome, I’ll give it a shot!

Hi. Thank you for all your work. I can get my rather basic, 2017 Hyundai Sonata to start if I go into the device and click start. However, if I try to start using rule machine (treating the device like an actuator and utilizing custom command), it will not work. Here is the message I receive.

app:6732021-11-17 06:45:24.862 pm errororg.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'null' with class 'null' to class 'int'. Try 'java.lang.Integer' instead on line 556 (method Start)

Any idea what I could be doing wrong? Or, is there a way to potentially share what you did with webcore? What I'd like to do is have a switch on the ipad display dashboard. If you click it, the car starts.

Any help appreciated. Thanks -Brock

Okay, I was able to get it to work in webcore, but needed to add a parameter value of the profile I wanted. I reckon that rule machine is not sending a profile. If this is true, perhaps having the ability to default a profile to be sent automatically with a start command might fix the rule machine portion.

Great job on the app!

@baondayko Were you able to get the start command to work in Rule Machine? I haven't tried it yet, but RM allows you to set parameters in the custom action. You should be able to set the profile there, i.e. "Summer" or "Winter" or "Profile3".

I had been working on it for a while and could not find a place to select or even enter a parameter. When I re-reviewed this thread I saw that webcore was utilized and it was quite easy to figure out how to send the parameter. So, it is working. If you find out where the parameter is in rule machine let me know. I know how to set variables and things like that for simple logic choices within the rule, but I didn't see the optionality to send along with a command.

@baondayko In RM, there is a button on the page where you add or edit custom actions to add parameters. You select the parameter type (string, in this case) and then enter the string value.

Ah, I see it now! Thanks for the education!