Norwegian Pony Master

    bluelinky
    TypeScript icon, indicating that this package has built-in type declarations

    7.6.6 • Public • Published

    bluelinky

    An unofficial nodejs API wrapper for Hyundai BlueLink

    CI npm Discord

    Install

    npm install bluelinky

    Example

    const BlueLinky = require('bluelinky');
    
    const client = new BlueLinky({
      username: 'someguy@example.com',
      password: 'hunter1',
      brand: 'hyundai',
      region: 'US',
      pin: '1234'
    });
    
    client.on('ready', async () => {
      const vehicle = client.getVehicle('5NMS55555555555555');
      try {
        const response = await vehicle.lock();
        console.log(response);
      } catch (err) {
        // log the error from the command invocation 
      }
    });
    
    client.on('error', async (err) => {
      // something went wrong with login
    });

    Debug locally

    Ensure you have a config.json that matches the structure of the following, with your account details

    {
      "username": "email",
      "password": "password",
      "pin": "pin",
      "brand": "kia" or "hyundai",
      "vin": "vin"
    }

    Run an install for all the dependencies, npm install

    Now you can invoke the debug.ts script with npm run debug

    Documentation

    Checkout out the docs for more info.

    Important information for login problems:

    • If you experience login problems, please logout from the app on your phone and login again. You might need to ' upgrade ' your account to a generic Kia/Hyundai account, or create a new password or PIN.
    • After you migrated your Bluelink account to a generic Hyundai account, or your UVO account to a generic Kia account, make sure that both accounts have the same credentials (userid and password) to avoid confusion in logging in.

    Custom Stamps

    In the EU region, stamps are used to sign every API queries. These stamps have a 1 week validity. Those stamps are using a tricky algorithm and cannot be replicated by Bluelinky and have to be generated by an external solution. An http call is performed to get the existing tokens. It is possible to specify an other path using the stampFile option. This path can be a local file prefixed by file:// or from any webserver.

    By default the case is 24H, but it can but customized at will. A nice trick is to run you own stamp generator http server and querying it regularly (with low cache timeout) for fresh stamps.

    The JSON file must respect this format

    Supported Features

    • Lock
    • Unlock
    • Start (with climate control)
    • Stop
    • Status (full, parsed, cached)
    • odometer
    • location
    • startCharge
    • monthlyReport
    • tripInfo
    • EV: driveHistory
    • EV: getChargeTargets
    • EV: setChargeLimits

    Supported Regions

    | Regions

    Show your support

    Give a ⭐️ if this project helped you!

    Keywords

    none

    Install

    npm i bluelinky

    DownloadsWeekly Downloads

    452

    Version

    7.6.6

    License

    MIT

    Unpacked Size

    240 kB

    Total Files

    69

    Last publish

    Collaborators

    • hacksore