pradeepmouli / homebridge-isy-js

Homebridge platform plugin for the ISY series of home controllers from Universal Devices.
MIT License
28 stars 9 forks source link

Homebridge ISY

Note: The npm package has been changed to homebridge-ISY (ISY API lib is now called isy-nodejs)

Fork of homebridge-isy-js by rodtoll

Build Status

(C) Rod Toll 2015-2017, Licensed under the MIT-LICENSE.

Major Updates

Requires Homebridge v1.0+. Please see revised installation notes below.

New Functionality

Bug Fixes/Under the hood:

TODO:

Future Work:


Installation

  1. Install homebridge using: npm install -g homebridge@beta
  2. Install this plugin using: npm install -g homebridge-isy
  3. Update your configuration file. See sampleconfig.json in this repository for a sample. Please note that the platform name has been changed to "ISY".

IMPORTANT NOTE: Since the package and platform names are different (and the way accessory IDs are assigned), you can have both original version homebridge-isy-js and homebridge-isy installed (you will have two platform sections (one ISY and the other isy-js) your homebridge config). this is something I recommend if you have a lot of devices configured currently, and anything like the garage door opener/locks/elk that need to be tested. This way, you can wait to uninstall the old version once you've got everything configured and working correctly.

Requirements

Only the ISY 994 and newer devices running 5.0.16+ are supported. The ISY 99i device is no longer supported as this library depends on a later version of the REST/Websocket interface.

Configuration

Configuration sample (please refer to the homebridge-config-ui-x readme to add a section for that, and refer to the above if you want to add an additional section for homebridge-isy-js):

     "platforms": [
        {
            "platform": "ISY",
            "name": "ISY",
            "host": "10.0.1.12",
            "username": "admin",
            "password": "password",
            "elkEnabled": true,
            "useHttps": false,
            "debugLoggingEnabled": false,
            "garageDoors": [
                { "address": "17 79 81 1", "name": "Garage Door", "timeToOpen": 12000 }
            ],
             "deviceDefaults":
            {
                "exclude":false
            },
            "deviceNaming": {
                "format": "${location ?? folder} ${spokenName ?? name}",
                "remove": [
                    "Dimmer",
                    "Switch",
                    "Fan "
                ],
                "replace": [{
                    "replace": ".",
                    "with": " "
                }]
            },
            "devices": [{
                    "filter": {
                        "filterType": "family",
                        "family": "Scene"
                    },
                    "exclude": true
                },
                {
                    "filter": {
                        "filterType": "nodeDef",
                        "nodeDef": "KeypadButton"
                    },
                    "exclude": true
                },
                {
                    "filter": {
                        "filterType": "name"
                    },
                    "exclude": true
                },
                {
                    "filter": {
                        "name": "ApplianceLinc",
                        "filterType": "name"
                    },
                    "exclude": true
                },
                {
                    "filter": {
                        "name": "S -",
                        "filterType": "name"
                    },
                    "exclude": true
                },
                {
                    "filter": {
                        "name": "ApplianceLink",
                        "filterType": "name"
                    },
                    "exclude": true
                },
                {
                    "filter": {
                        "address": "1 24 A5 1",
                        "filterType": "address"
                    },
                    "exclude": true
                },
                {
                    "filter": {
                        "filterType": "family"
                    },
                    "exclude": true
                },
                {
                    "filter": {
                        "folder": "Old Stuff",
                        "filterType": "folder"
                    },
                    "exclude": true
                },
                {
                    "filter": {
                        "nodeDef": "KeypadButton",
                        "filterType": "nodeDef"
                    },
                    "exclude": true
                },
                {
                    "filter": {
                        "name": "Unused",
                        "filterType": "name"
                    },
                    "exclude": true
                },
                {
                    "filter": {
                        "name": "Remote",
                        "filterType": "name"
                    },
                    "exclude": true
                },
                {
                    "filter": {
                        "name": "Keypad",
                        "filterType": "name",
                        "lastAddressDigit": "2"
                    },
                    "exclude": true
                },
                {
                    "filter": {
                        "name": "Keypad",
                        "filterType": "name",
                        "lastAddressDigit": "3"
                    },
                    "exclude": true
                },
                {
                    "filter": {
                        "name": "Keypad",
                        "filterType": "name",
                        "lastAddressDigit": "4"
                    },
                    "exclude": true
                },
                {
                    "filter": {
                        "name": "Keypad",
                        "filterType": "name",
                        "lastAddressDigit": "5"
                    },
                    "exclude": true
                },
                {
                    "filter": {
                        "name": "Keypad",
                        "filterType": "name",
                        "lastAddressDigit": "6"
                    },
                    "exclude": true
                },
                {
                    "filter": {
                        "name": "Keypad",
                        "filterType": "name",
                        "lastAddressDigit": "7"
                    },
                    "exclude": true
                },
                {
                    "filter": {
                        "name": "Keypad",
                        "filterType": "name",
                        "lastAddressDigit": "8"
                    },
                    "exclude": true
                }
            ]
        }
    ]

Implementation Notes


History