Nietzsche's Preposterous Moustache
    Have ideas to improve npm?Join in the discussion! »

    homebridge-jlr-incontrol

    0.7.0 • Public • Published

    homebridge-jlr-incontrol

    Jaguar Land Rover InControl plug in for Homebridge.

    Example config.json:

    {
      "accessories": [
        {
          "accessory": "Jaguar Land Rover InControl",
          "name": "I-PACE",
          "vin": "1AAAAA111AA111111",
          "username": "foo@bar.uk",
          "password": "foobar",
          "pin": 1234,
          "deviceId": "UUID",
          "lowBatteryThreshold": 25,
          "targetTemperature": 21
        }
      ]
    }
    
    • deviceId needs to be a unique device identifier to identify your Homebridge.
    • lowBatteryThresold defines the battery level below which the battery is considered to be low. Defaults to 25% if the value is not specified.
    • targetTemperature define the default target temperature (in ℃) when preconditioning the vehicle. Defaults to 22℃ if the value is not specified

    Exposes:

    • Battery service;
    • Door Lock service;
    • Vehicle pre-conditioning on/off switch.

    If you use the example above, you would gain Siri commands like:

    • "What is the charge level on the I-PACE?" (check the charge level of the battery)
    • "Is the I-PACE charging?" (is the car charging?)
    • "Is the I-PACE locked?" (check if the car is locked)
    • "Open the I-PACE" (unlock the vehicle)
    • "Turn on the I-PACE Preconditioning" (pre-condition the I-PACE)
    • "Set the I-PACE Preconditioning to 18 degrees"

    Multiple Vehicles

    Have a garage full of Jaguar Land Rovers? You can easily add all of them to HomeKit by creating a separate accessory for each one distinguished by their unique VIN numbers:

    {
      "accessories": [
        {
          "accessory": "Jaguar Land Rover InControl",
          "name": "I-PACE",
          "vin": "1AAAAA111AA111111",
          "username": "foo@bar.uk",
          "password": "foobar",
          "pin": 1234,
          "deviceId": "951208e8-a75d-4009-9faf-0039f728f82e",
          "lowBatteryThreshold": 30,
          "targetTemperature": 21
        },
        {
          "accessory": "Jaguar Land Rover InControl",
          "name": "Range Rover",
          "vin": "2BBBBB222BB22222",
          "username": "foo@bar.uk",
          "password": "foobar",
          "pin": 1234,
          "deviceId": "69df52b-0c86-49eb-b115-de789fd4400d",
          "targetTemperature": 18,
          "disableEV": true
        }
      ]
    }
    

    If you use the example above, you would gain Siri commands like:

    • "Open the I-PACE" (unlock the I-PACE)
    • "Open the Range Rover" (unlock the Range Rover)
    • "Turn on the I-PACE Preconditioning" (pre-condition on the I-PACE)

    Development

    You can run Rollup in watch mode to automatically transpile code as you write it:

      npm run dev

    Acknowledgements

    This plug in is based on the work of jlrpy and the excellent reverse engineering of the InControl API contributed by ardevd.

    Install

    npm i homebridge-jlr-incontrol

    DownloadsWeekly Downloads

    29

    Version

    0.7.0

    License

    ISC

    Unpacked Size

    62.8 kB

    Total Files

    3

    Last publish

    Collaborators

    • avatar