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
(C) Rod Toll 2015-2017, Licensed under the MIT-LICENSE.
Requires Homebridge v1.0+. Please see revised installation notes below.
Support for ISY 5.0.16+
Installable & Configurable using Homebridge Config-UI X WORKS as of RC3
NEW: Configurable device naming convention (See sample config below).
You can now configure how the device name should be passed to its corresponding Accessory (using javascript string interpolation syntax). For example, if "${location ?? folder} ${spokenName : name}" is provided to the config, all devices will be named according to the convention, location unless blank, then folder + spoken name, unless blank, then name.
Pulls folders and notes from ISY
Additional parameters available to filter devices (Device Family (e.g. Insteon, Zigbee, ZWave, etc...), Folder (ref. above), ISY Type Code (e.g. 15.1.1.1) and NodeDef (KeypadButton_ADV) if you want to use either NodeDef or Type Code please let me know)
Global Renames - i.e. replace any instance of '.' with ' ' -> Switch.Vent -> Switch Vent or remove any instance of certain words e.g. Bathroom.Switch.Vent -> Bathroom Vent... see config sample below
Support for additional devices (Need Testers): Insteon Thermostat/Thermostat Adapters Leak Sensors CO/Smoke Bridges (WIP) Remotes
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.
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 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
}
]
}
]