at first you have to make sure, you understand what you’re doing! 
so, node-red is a means to connect diverse hardware, APIs, or other data-driven sources together. much like openHAB does for home-automation; except node-red is “low code”, with a UI to achieve nearly 80% of the tasks at hand. OH has a similar low-code approach within rules, if you use blockly for it.
So, what the bluelinky node-red integration does is simply providing access to the Hyundai/Kia API and then you can use node-reds built-in methods to use the information to update OH3-items or get OH3-commands to do something with the bluelinky commands. I use the MQTT binding to import external information info openHAB and use it to trigger external hardware, more on this here:
First step is to get a feeling for node-red
next step for you is to get an overview over the bluelinky options here:
so, within node-red just add the node-red-contrib-bluelinky via option “manage palette” - “install” and then you can use the nodes provided on the left side under “bluelinky”, there’s all the on github options available.
You have to use at least the “login”-node, which I reload every 4hours:
login node
[{"id":"37ecbb20.e4fe7c","type":"inject","z":"a351eaa.aed7b98","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"14400","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":110,"y":820,"wires":[["a4e75205.77e69"]]},{"id":"a4e75205.77e69","type":"login","z":"a351eaa.aed7b98","name":"Login","bluelinky":"77eb8168.bc8b58","x":230,"y":820,"wires":[["928c79a9.033078"]]},{"id":"928c79a9.033078","type":"debug","z":"a351eaa.aed7b98","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":470,"y":820,"wires":[]},{"id":"77eb8168.bc8b58","type":"bluelinky","username":"your@email.here","password":"password","region":"EU","pin":"1234","vin":"yourPINhere","brand":"kia"}]
Then I use the full status node and break it down to single information, which I then send to my MQTT broker:
full status
[{"id":"c768e168.ac57a","type":"inject","z":"a351eaa.aed7b98","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"900","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":110,"y":140,"wires":[["4703539f.230824"]]},{"id":"4703539f.230824","type":"car-fullstatus","z":"a351eaa.aed7b98","name":"Full Status - cached","dorefresh":false,"bluelinky":"77eb8168.bc8b58","x":320,"y":160,"wires":[["824a6cde.0267f","ed166b85.4d2ac8"]]},{"id":"824a6cde.0267f","type":"json","z":"a351eaa.aed7b98","name":"","property":"payload","action":"str","pretty":true,"x":510,"y":200,"wires":[["ed166b85.4d2ac8","c90f8db5.711df8","3b7d3b67.6e99ac","403cf6cb.e7b098","e2f706d6.e3b39","a11c5950.5c856","2ddbf40d.1bb2fc","5d11660d.c99858","4ccd246a.e548a4","59df54d4.2312ec","c7ca3a28.5e17a8","1d1460f4.3c2387","513511d2.14fa48","958dfb0e.93aab","ea8819aa.289f48","d735782f.f8c158","e1a8ef89.2de5c8","c47c7e70.10695","4d3e7fbc.8727e","232ec92a.65b69e","266dc2a3.ad6b4e","8067e9d8.40224","38c6a75d.2ceb7","a99ae00d.33555"]]},{"id":"e2f706d6.e3b39","type":"function","z":"a351eaa.aed7b98","name":"lastUpdate","func":"// JSON parsen\nparsed = JSON.parse(msg.payload);\nmsg.payload = parsed.vehicleStatus.time;\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":750,"y":200,"wires":[["6648e567.5c7f9c"]]},{"id":"c90f8db5.711df8","type":"function","z":"a351eaa.aed7b98","name":"batteryStatus","func":"// JSON parsen\nparsed = JSON.parse(msg.payload);\nmsg.payload = parsed.vehicleStatus.evStatus.batteryStatus;\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":760,"y":240,"wires":[["14e95857.3047d8"]]},{"id":"6648e567.5c7f9c","type":"rbe","z":"a351eaa.aed7b98","name":"nur neue","func":"rbe","gap":"0.6","start":"","inout":"out","property":"payload","x":980,"y":200,"wires":[["e7409718.2b5dc"]]},{"id":"14e95857.3047d8","type":"rbe","z":"a351eaa.aed7b98","name":"nur neue","func":"rbe","gap":"0.6","start":"","inout":"out","property":"payload","x":980,"y":240,"wires":[["56422ed4.feabd8"]]},{"id":"e7409718.2b5dc","type":"mqtt out","z":"a351eaa.aed7b98","name":"mqtt","topic":"openHAB/master/Kia/lastupdate","qos":"1","retain":"true","broker":"4672ca10.309984","x":1130,"y":200,"wires":[]},{"id":"56422ed4.feabd8","type":"mqtt out","z":"a351eaa.aed7b98","name":"mqtt","topic":"openHAB/master/Kia/batteryStatus","qos":"1","retain":"true","broker":"4672ca10.309984","x":1130,"y":240,"wires":[]},{"id":"77eb8168.bc8b58","type":"bluelinky","username":"your@email.here","password":"password","region":"EU","pin":"1234","vin":"VIN","brand":"kia"},{"id":"4672ca10.309984","type":"mqtt-broker","name":"Synology","broker":"YourBrokerURLIP","port":"YourBrokerPort","clientid":"YourClientID","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"openHAB/master/nodered","birthQos":"2","birthRetain":"true","birthPayload":"ON","closeTopic":"openHAB/master/nodered","closeQos":"2","closeRetain":"true","closePayload":"OFF","willTopic":"openHAB/master/nodered","willQos":"2","willRetain":"true","willPayload":"OFF"}]
last step is to send commands to the car, in that case node-red listens to topics and triggers an action:
cmd Car
[{"id":"191cf448.4a4e04","type":"start-charge","z":"a351eaa.aed7b98","name":"Start Charging","bluelinky":"77eb8168.bc8b58","x":300,"y":440,"wires":[[]]},{"id":"98fea53f.45f8d","type":"mqtt in","z":"a351eaa.aed7b98","name":"cmdStartCharging","topic":"openHAB/master/Kia/cmdStartCharging","qos":"2","datatype":"auto","broker":"4672ca10.309984","x":100,"y":440,"wires":[["191cf448.4a4e04"]]},{"id":"77eb8168.bc8b58","type":"bluelinky","username":"your@email.here","password":"yourPassword","region":"EU","pin":"1234","vin":"YourVIN","brand":"kia"},{"id":"4672ca10.309984","type":"mqtt-broker","name":"Synology","broker":"YourBrokerURLIP","port":"YourBrokerPort","clientid":"YourClientID","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"openHAB/master/nodered","birthQos":"2","birthRetain":"true","birthPayload":"ON","closeTopic":"openHAB/master/nodered","closeQos":"2","closeRetain":"true","closePayload":"OFF","willTopic":"openHAB/master/nodered","willQos":"2","willRetain":"true","willPayload":"OFF"}]
With that you can start your own way to deal with this… 