ptz0n / homebridge-verisure

 Platform plugin for Homebridge allowing to manage and control Verisure devices.
https://www.npmjs.com/package/homebridge-verisure
MIT License
65 stars 15 forks source link
homebridge homebridge-plugin iot verisure

homebridge-verisure

Verified by Homebridge

Synk badge

GitHub Actions badge

This is a plugin for Homebridge. It's an implementation for your Verisure installation and exposes the following devices:

Protect linked devices & accounts

If configured, this plugin will expose your security system and door lock. Please protect you installation from unauthorised access:

  1. Generate a unique pin for your config. Never, ever use the default one.
  2. Lock all devices with access to your installation when not in use.
  3. Remove access from users that no longer need it.
  4. Keep your devices up to date.

Installation

npm install -g homebridge-verisure

Now you can update your configuration file to enable the plugin, see sample snippet below.

Configuration

As part of your configuration, add an object with your Verisure credentials to your array (list) of enabled platform plugins. Example config:

"platforms": [
  {
    "platform" : "verisure",
    "name" : "Verisure",
    "email": "your@email.com",
    "password": "yourT0p5ecre7Passw0rd",
    "cookies": [
      "vid=myTopSecretToken",
      "vs-access=myAccessToken",
      "vs-refresh=myRefreshToken"
    ],
    "alarmCode": "0000",
    "doorCode": "000000",
    "installations": ["Alias"],
    "pollInterval": 60
  }
]

Multi-factor authentication

[Verisure] MFA is enabled for user. Please see README.

In 2021 Verisure started enrolling MFA which requires you to obtain cookies. These cookies are used instead of a password in your config and will need to be renewed yearly. After installing the plugin, run npx homebridge-verisure in your terminal and copy the output values into your config.

$ npx homebridge-verisure
✔ What is your login email? · foo@bar.com
✔ What is your password? · ********************

 One-time code sent.

✔ What is your one-time code? · FAKE12

 Your config is ready.

{
  "platform": "verisure",
  "name": "Verisure",
  "email": "foo@bar.com",
  "cookies": [
    "vid=myTopSecretToken",
    "vs-access=myAccessToken",
    "vs-refresh=myRefreshToken"
  ]
}

Environment variables

For convenience, the following environment variables can be used instead of placing secrets in your config.json.