mirror of
https://github.com/mtan93/homebridge.git
synced 2026-03-15 21:03:05 +00:00
Added docs to the isy-js file.
This commit is contained in:
@@ -1,9 +1,61 @@
|
||||
/*
|
||||
ISY-JS
|
||||
|
||||
ISY-99 REST / WebSockets based HomeBridge shim.
|
||||
|
||||
Supports the following Insteon devices: Lights (dimmable and non-dimmable), Fans, Outlets, Door/Window Sensors, MorningLinc locks, Inline Lincs and I/O Lincs.
|
||||
Also supports ZWave based locks. If elkEnabled is set to true then this will also expose your Elk Alarm Panel and all of your Elk Sensors.
|
||||
|
||||
Turns out that HomeBridge platforms can only return a maximum of 100 devices. So if you end up exposing more then 100 devices through HomeBridge the HomeKit
|
||||
software will fail adding the HomeBridge to your HomeKit network. To address this issue this platform provides an option to screen out devices based on
|
||||
criteria specified in the config.
|
||||
|
||||
Configuration sample:
|
||||
|
||||
"platforms": [
|
||||
{
|
||||
"platform": "isy-js",
|
||||
"name": "isy-js",
|
||||
"host": "10.0.1.12",
|
||||
"username": "admin",
|
||||
"password": "password",
|
||||
"elkEnabled": true,
|
||||
"ignoreDevices": [
|
||||
{ "nameContains": "ApplianceLinc", "lastAddressDigit": "", "address": ""},
|
||||
{ "nameContains": "Bedroom.Side Gate", "lastAddressDigit": "", "address": ""},
|
||||
{ "nameContains": "Remote", "lastAddressDigit": "", "address": "" },
|
||||
{ "nameContains": "Keypad", "lastAddressDigit": "2", "address": "" },
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
Fields:
|
||||
"platform" - Must be set to isy-js
|
||||
"name" - Can be set to whatever you want
|
||||
"host" - IP address of the ISY
|
||||
"username" - Your ISY username
|
||||
"password" - Your ISY password
|
||||
"elkEnabled" - true if there is an elk alarm panel connected to your ISY
|
||||
"ignoreDevices" - Array of objects specifying criteria for screening out devices from the network. nameContains is the only required criteria. If the other criteria
|
||||
are blank all devices will match those criteria (providing they match the name criteria).
|
||||
"nameContains" - Specifies a substring to check against the names of the ISY devices. Required field for the criteria.
|
||||
"lastAddressDigit" - Specifies a single digit in the ISY address of a device which should be used to match the device. Example use of this is for composite
|
||||
devices like keypads so you can screen out the non-main buttons.
|
||||
"address" - ISY address to match.
|
||||
|
||||
Examples:
|
||||
|
||||
{ "nameContains": "Keypad", "lastAddressDigit": "2", "address": "" } - Ignore all devices which have the word Keypad in their name and whose last address digit is 2.
|
||||
{ "nameContains": "Remote", "lastAddressDigit": "", "address": "" } - Ignore all devices which have the word Remote in their name
|
||||
{ "nameContains": "", "lastAddressDigit": "", "address": "15 5 3 2"} - Ignore the device with an ISY address of 15 5 3 2.
|
||||
*/
|
||||
var types = require("HAP-NodeJS/accessories/types.js");
|
||||
var isy = require('isy-js');
|
||||
var Service = require("HAP-NodeJS").Service;
|
||||
var Characteristic = require("HAP-NodeJS").Characteristic;
|
||||
var inherits = require('util').inherits;
|
||||
|
||||
// Global device map. Needed to map incoming notifications to the corresponding HomeKit device for update.
|
||||
var deviceMap = {};
|
||||
|
||||
function ISYChangeHandler(isy,device) {
|
||||
|
||||
Reference in New Issue
Block a user