rodtoll / homebridge-isy-js Goto Github PK
View Code? Open in Web Editor NEWHomebridge platform plugin for the ISY series of home controllers from Universal Devices.
License: MIT License
Homebridge platform plugin for the ISY series of home controllers from Universal Devices.
License: MIT License
For some reason, I can turn Insteon devices on with this bridge (and set brightness levels), but turning them off never works, even though HomeKit reports the device off.
I keep getting this message:
`[10/1/2016, 11:43:34 PM] [isteon] Initializing isy-js platform...
/usr/lib/node_modules/homebridge-isy-js/node_modules/isy-js/isy.js:404
if (response instanceof Error || response.statusCode != 200) {
^
TypeError: Cannot read property 'statusCode' of null
at Request. (/usr/lib/node_modules/homebridge-isy-js/node_modules/isy-js/isy.js:404:50)
at emitTwo (events.js:106:13)
at Request.emit (events.js:191:7)
at Request._fireError (/usr/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:207:10)
at ClientRequest. (/usr/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:246:14)
at emitOne (events.js:96:13)
at ClientRequest.emit (events.js:188:7)
at Socket.socketOnData (_http_client.js:366:9)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at readableAddChunk (_stream_readable.js:176:18)
at Socket.Readable.push (_stream_readable.js:134:10)
at TCP.onread (net.js:543:20)
`
Not sure if I need to change something on my ISY, but my sensor shows as ON when my garage is closed - this makes sense because the magnet triggers the sensor when the door is closed.
Unfortunately, HomeKit shows my garage as Open when it's actually closed, and closed when it's opened. I tried using "alternate" as true and it makes no difference in my home kit app. Is there something else I should do to make this work correctly?
Thanks,
R.
Any idea if there is a way to set the device type for the insteon accessories so that the icon can be changed in the iOS 10 Home app? In the new app for example, I would like to be able to designate my 240v Load Controllers to something other than a light as the app reports that it is a light when it actually is a Pool Pump. I also would like a on/off module to show a heater instead of a switch. Not sure if this is possible.
When issuing the command to Siri to turn off the fan it causes the following exception. Please let me know if you need anymore information. Even using MyTouchHome to turn off the fan results in the same exception.
assert.js:89
throw new assert.AssertionError({
^
AssertionError: Unexpected fan level: undefined
at ISYFanDevice.ISYBaseDevice.sendFanCommand (/usr/local/lib/node_modules/homebridge-isy-js/node_modules/isy-js/isydevice.js:156:9)
at ISYFanAccessory.setFanRotationSpeed (/usr/local/lib/node_modules/homebridge-isy-js/index.js:245:15)
at ISYFanAccessory.setFanOnState (/usr/local/lib/node_modules/homebridge-isy-js/index.js:270:9)
at emitThree (events.js:97:13)
at emit (events.js:175:7)
at Characteristic.setValue (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Characteristic.js:152:10)
at Bridge.Accessory._handleSetCharacteristics (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:516:22)
at emitThree (events.js:97:13)
at HAPServer.emit (events.js:175:7)
at HAPServer._handleCharacteristics (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/HAPServer.js:682:10)
I add or change stuff to my Insteon network or in my ISY. Is there a procedure for getting these changes (or new devices) to show up in homekit without having to delete the homekit database and persist folder in homebridge? So far that's the only way I've been able to get new devices to show up, but it means recreating all of my rooms from scratch.
HI. I am trying to get this to run but have not had any success. Here's the error code I am receiving:
[9/5/2016, 11:51:17 AM] [isy-js] Initializing isy-js platform...
/usr/local/lib/node_modules/homebridge-isy-js/node_modules/isy-js/isy.js:404
if (response instanceof Error || response.statusCode != 200) {
^
TypeError: Cannot read property 'statusCode' of null
at Request. (/usr/local/lib/node_modules/homebridge-isy-js/node_modules/isy-js/isy.js:404:50)
at emitTwo (events.js:87:13)
at Request.emit (events.js:172:7)
at Request.mixin._fireError (/usr/local/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:207:10)
at ClientRequest. (/usr/local/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:246:14)
at emitOne (events.js:77:13)
at ClientRequest.emit (events.js:169:7)
at Socket.socketOnData (_http_client.js:327:9)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
If anyone can point me in the right direction, I'd be very appreciative!
Started homebridge today and got the following error:
2016-1-4#9:31:2- ISY-JS: Error while contacting ISYError: socket hang up
/usr/local/lib/node_modules/homebridge-isy-js/node_modules/isy-js/isy.js:542
throw new Error("Error calling ISY"+err);
^
Error: Error calling ISYError: socket hang up
at Request. (/usr/local/lib/node_modules/homebridge-isy-js/node_modules/isy-js/isy.js:542:15)
at emitTwo (events.js:105:20)
at Request.emit (events.js:185:7)
at Request.mixin._fireError (/usr/local/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:206:10)
at ClientRequest. (/usr/local/lib/node_modules/homebridge-isy js/node_modules/restler/lib/restler.js:246:14)
at emitOne (events.js:90:13)
at ClientRequest.emit (events.js:182:7)
at TLSSocket.socketOnEnd (_http_client.js:298:9)
at emitNone (events.js:85:20)
at TLSSocket.emit (events.js:179:7)
at endReadableNT (_stream_readable.js:906:12)
at nextTickCallbackWith2Args (node.js:475:9)
at process._tickCallback (node.js:389:17)
Would it be possible to add a "last changed" or "last event" characteristic that contained a timestamp?
It would be nice to be able to see when the last time a motion sensor was tripped for example.
I also have an isy-js program im working on that will pan my ptz camera and start recording when motion is detected in the driveway, but i want to ignore the event if i pressed my "im leaving home" keypad button within the last 2 minutes.
Hello, I recently tried to add the ISY-JS plugin to Homebridge and encountered the "This callback function has already been called by someone else" error. I then uninstalled Homebridge and all plugins and reinstalled just Homebridge and ISY-JS but still get the same error. Below are the config.json and terminal output.
Has anyone encountered this error before or have an idea for a fix?
Config.json:
{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:30",
"port": 51826,
"pin": "031-45-154"
},
"description": "Homebridge Test",
"platforms": [
{
"platform": "isy-js",
"name": "isy-js",
"host": "10.0.1.10",
"username": "********",
"password": "********",
"elkEnabled": false,
"useHttps": false,
"debugLoggingEnabled": true,
"includeAllScenes": true
}
]
}
Terminal Output:
*** WARNING *** The program 'nodejs' uses the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see http://0pointer.de/avahi-compat?s=libdns_sd&e=nodejs
*** WARNING *** The program 'nodejs' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see http://0pointer.de/avahi-compat?s=libdns_sd&e=nodejs&f=DNSServiceRegister
[1/21/2017, 1:30:55 PM] Loaded plugin: homebridge-isy-js
[1/21/2017, 1:30:55 PM] Registering platform 'homebridge-isy-js.isy-js'
[1/21/2017, 1:30:55 PM] ---
[1/21/2017, 1:30:55 PM] Loaded config.json with 0 accessories and 1 platforms.
[1/21/2017, 1:30:55 PM] ---
[1/21/2017, 1:30:55 PM] Loading 1 platforms...
[1/21/2017, 1:30:55 PM] [isy-js] Initializing isy-js platform...
2017-0-6#13:30:56- Ignoring disabled device: Master Bathroom
2017-0-6#13:30:56- ISY-JS: Error loading variables from isy. Device likely doesn't have any variables defined. Safe to ignore.
2017-0-6#13:30:56- ISY-JS: Error loading variables from isy. Device likely doesn't have any variables defined. Safe to ignore.
2017-0-6#13:30:56- ISY-JS: Error loading variables from isy. Device likely doesn't have any variables defined. Safe to ignore.
[1/21/2017, 1:30:56 PM] [isy-js] 117-0-6#13:30:56- ISYPLATFORM: Filtered device has: 9 devices
[1/21/2017, 1:30:56 PM] [isy-js] Initializing platform accessory 'Theatre Front'...
[1/21/2017, 1:30:56 PM] [isy-js] Initializing platform accessory 'Theatre Back'...
[1/21/2017, 1:30:56 PM] [isy-js] Initializing platform accessory 'Theatre Pot'...
[1/21/2017, 1:30:56 PM] [isy-js] Initializing platform accessory 'Living Room Pot'...
[1/21/2017, 1:30:56 PM] [isy-js] Initializing platform accessory 'Kitchen Table'...
[1/21/2017, 1:30:56 PM] [isy-js] Initializing platform accessory 'Kitchen Island'...
[1/21/2017, 1:30:56 PM] [isy-js] Initializing platform accessory 'ISY'...
[1/21/2017, 1:30:56 PM] [isy-js] Initializing platform accessory 'Theatre All On'...
[1/21/2017, 1:30:56 PM] [isy-js] Initializing platform accessory 'Auto DR'...
2017-0-6#13:30:56- ISY-JS: Error loading variables from isy. Device likely doesn't have any variables defined. Safe to ignore.
[1/21/2017, 1:30:56 PM] [isy-js] 117-0-6#13:30:56- ISYPLATFORM: Filtered device has: 9 devices
/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/once.js:11
throw new Error("This callback function has already been called by someone else; it can only be called one time.");
^
Error: This callback function has already been called by someone else; it can only be called one time.
at /usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/once.js:11:13
at /usr/lib/node_modules/homebridge-isy-js/index.js:207:3
at ISY.finishInitialize (/usr/lib/node_modules/homebridge-isy-js/node_modules/isy-js/isy.js:368:5)
at /usr/lib/node_modules/homebridge-isy-js/node_modules/isy-js/isy.js:539:30
at Request. (/usr/lib/node_modules/homebridge-isy-js/node_modules/isy-js/isy.js:410:13)
at emitTwo (events.js:87:13)
at Request.emit (events.js:172:7)
at Request.mixin._fireSuccess (/usr/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:229:10)
at /usr/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:161:20
at IncomingMessage.parsers.auto (/usr/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:402:7)
Example:
Output 3 = Open/Close momentary relay
Zone 14 = Door status (Violated = Open, Normal = Closed)
Hi, any idea what this crash data could be from? I have the docker container set to --restart=always, but it did not..
/usr/lib/node_modules/homebridge/node_modules/mdns/lib/advertisement.js:56
stderr
19:04:49
dns_sd.DNSServiceRegister(self.serviceRef, flags, ifaceIdx, name,
stderr
19:04:49
^
stderr
19:04:49
stderr
19:04:49
Error: dns service error: unknown
stderr
19:04:49
at Error (native)
stderr
19:04:49
at new Advertisement (/usr/lib/node_modules/homebridge/node_modules/mdns/lib/advertisement.js:56:10)
stderr
19:04:49
at Object.create [as createAdvertisement] (/usr/lib/node_modules/homebridge/node_modules/mdns/lib/advertisement.js:64:10)
stderr
19:04:49
at Advertiser.startAdvertising (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Advertiser.js:43:30)
stderr
19:04:49
at Bridge.Accessory._onListening (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:498:20)
stderr
19:04:49
at emitNone (events.js:80:13)
stderr
19:04:49
at HAPServer.emit (events.js:179:7)
stderr
19:04:49
at HAPServer._onListening (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/HAPServer.js:169:8)
stderr
19:04:49
at emitNone (events.js:80:13)
stderr
19:04:49
at EventedHTTPServer.emit (events.js:179:7)
Dimmable devices can dim and turn off but when an app or Siri turns the device on the dim % doesn't change and the device doesn't turn on.
Currently if a scene is exposed by the plug-in it appears as as simple on/off device. If a scene in ISY is created and includes only devices which are dimmable (e.g. 3 way switches) then the scene itself is dimmable.
The reason this would be nice to have is that if I tell Siri right now to turn on the Living Room Lights (a single device) then the 3 way switch for the Living Room Lights does not respond and show the proper level. If however you control it through a scene then all responders are updated. The drawback is that the scene is not dimmable and therefore the lights can no longer be dimmed through homelink.
It would be great if there was a way to see and set state values. To make it really useful we would need a way to configure possible values and maybe even names for those values. I use states for all kinds of things but the first one that comes to mind is occupancy. I have a state that is 1 when people are home and 0 when no one is home (away). I then use that state in programs to do all sorts of things. It would be great to be able to use Siri to change this state.
@rodtoll
I'm getting an error on the new implementation for Garage doors.
Update: I didn't catch the new config.js requirements. I'm now retrying.
I've set up my 3 garage door i/o lyncs and and they all show up in homekit correctly as garage doors. However their statuses do not appear correct when homebridge starts up. If I open and close the doors using a keypad link their statuses do not update. I have logging turned on, what can I do to debug the issue?
Hey @rodtoll now that I have ISY-JS up and running I am learning the true power of it. It's an incredible plugin. Thank you so much for providing and updating it. You've achieved what Insteon failed with their very own Hub Pro.
I'm wondering if it would be possible to include some code to change the device type of select Insteon devices via the config file. Here are a few examples:
Keypad Buttons -> By default these get imported as "lights" into HomeKit. I would love to import them as "triggers" instead. I'm not 100% sure if there is a "switch" trigger in HomeKit yet but even just changing it to "motion sensor" would be helpful. That way I could use the button to trigger HomeKit scenes. I could do that with the button being a light as well but the downside is that if I tell Siri "turn on all lights" the button would light up and execute my scene.
Define "lights" as "other devices" -> all Insteon DIN modules are automatically imported as lights which is fine most of the time. However, one of my On//Off DIN modules controls my towel heater and I'd like to have a way to configure it as an "outlet" or "heater" instead. That way the towel heater won't accidentally turn on when I ask Siri to turn on the lights. Could be dangerous.
Insteon Open/close micro module -> I have a few open/close micro modules that control my window shutters. I haven't imported them into my ISY and Homebridge setup yet but I assume they will show up as lights as well, correct? I would love to be able to define them as "window coverings" like my Lutron blinds. That way when I tell Siri to open all blinds my shutters will open as well.
These are just three examples but I think it would be extremely helpful if one could call out select devices and assign them a different HomeKit type if need be. Would give users another level of control.
Is this something you're considering? I have an additional open/close micro module laying around and would be happy to send it to you if you're interested.
Anyways, keep up the good work. It's really incredible!
Hi all...I keep getting this error when trying to start:
[2/19/2017, 4:25:52 PM] Homebridge is running on port 51826.
2017-1-0#16:25:52- ISY-JS: Error loading variables from isy. Device likely doesn't have any variables defined. Safe to ignore.
[2/19/2017, 4:25:52 PM] [isy-mpr1310] 117-1-0#16:25:52- ISYPLATFORM: Filtered device has: 13 devices
/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/once.js:11
throw new Error("This callback function has already been called by someone else; it can only be called one time.");
^
Error: This callback function has already been called by someone else; it can only be called one time.
at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/once.js:11:13
at /usr/local/lib/node_modules/homebridge-isy-js/index.js:207:3
at ISY.finishInitialize (/usr/local/lib/node_modules/homebridge-isy-js/node_modules/isy-js/isy.js:368:5)
at /usr/local/lib/node_modules/homebridge-isy-js/node_modules/isy-js/isy.js:539:30
at Request. (/usr/local/lib/node_modules/homebridge-isy-js/node_modules/isy-js/isy.js:410:13)
at emitTwo (events.js:106:13)
at Request.emit (events.js:191:7)
at Request._fireSuccess (/usr/local/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:229:10)
at /usr/local/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:161:20
at IncomingMessage.auto (/usr/local/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:402:7)
at Request._encode (/usr/local/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:198:29)
at /usr/local/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:157:16
at Request._decode (/usr/local/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:173:7)
at IncomingMessage. (/usr/local/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:150:14)
at emitNone (events.js:91:20)
at IncomingMessage.emit (events.js:185:7)
Here is a copy of my json file:
{
"bridge":{
"name":"TaylorSt",
"username":"AC:12:3D:E3:CE:23",
"port":51826,
"pin":"134-22-223"
},
"platforms":[
{
"platform":"isy-js",
"name":"isy-mpr1310",
"host":"192.168.1.206",
"username":"admin",
"password":"admin",
"elkEnabled":false,
"useHttps":false,
"debugLoggingEnabled":true,
"includeAllScenes":false,
"ignoreDevices":[
]
}
]
}
I've tried uninstalling and reinstalling and tried resetting the ISY and PLM to default, but still am having no luck.
Any help on this is appreciated.
I have two Icon On/Off switches on my network that show up as fans and HomeKit doesn't let me change the device type like some others. Any way to fix?
Looks like I'm having a common issue.. I have an ISY-99 with the most current shipping firmware (admittedly, the manufacturer has deprecated this unit and stopped updating firmware.)
Devices populated in HomeKit and I'm able to turn them on, but not off - or the other way around, depending on the initial state Here's a snippet of console output:
**** Turn device OFF in HomeKit app - command succeeds ****
[10/18/2016, 4:19:27 PM] [isy-js] 116-9-2#16:19:27- LIGHT: Bathroom Shower Setting powerstate to 0
[10/18/2016, 4:19:27 PM] [isy-js] 116-9-2#16:19:27- LIGHT: Bathroom Shower Changing powerstate to 0
2016-9-2#16:19:27- ISY-JS: Sending command...http://192.168.1.9/rest/nodes/25 5B 56 1/cmd/DOF
**** Turn device ON in HomeKit app - command ignored ****
[10/18/2016, 4:19:35 PM] [isy-js] 116-9-2#16:19:35- LIGHT: Bathroom Shower Setting powerstate to 1
[10/18/2016, 4:19:35 PM] [isy-js] 116-9-2#16:19:35- LIGHT: Bathroom Shower Ignoring redundant setPowerState
**** Turn device OFF in HomeKit app - command succeeds ****
[10/18/2016, 4:19:43 PM] [isy-js] 116-9-2#16:19:43- LIGHT: Bathroom Shower Setting powerstate to 0
[10/18/2016, 4:19:43 PM] [isy-js] 116-9-2#16:19:43- LIGHT: Bathroom Shower Changing powerstate to 0
2016-9-2#16:19:43- ISY-JS: Sending command...http://192.168.1.9/rest/nodes/25 5B 56 1/cmd/DOF
Any tips how I can get this back in sync? What's the issue here? Is HomeBridge getting state updates from the ISY? Is my ISY too old?
I'm still moving through the set up of all my devices. For some reason, I can't get a RemoteLinc to initialize. It keeps saying it's an unsupported device and returning a generic device, but I don't see anything added. Is it not supported?
2017-2-3#5:41:22- Device: RemoteLinc Keypad - B type: 0.26.56.0 is not specifically supported, returning generic device object.
2017-2-3#5:41:22- Device: Good Night type: 0.26.56.0 is not specifically supported, returning generic device object.
2017-2-3#5:41:22- Device: Movie type: 0.26.56.0 is not specifically supported, returning generic device object.
2017-2-3#5:41:22- Device: RemoteLinc Keypad - C type: 0.26.56.0 is not specifically supported, returning generic device object.
2017-2-3#5:41:22- Device: RemoteLinc Keypad - F type: 0.26.56.0 is not specifically supported, returning generic device object.
2017-2-3#5:41:22- Device: RemoteLinc Keypad - E type: 0.26.56.0 is not specifically supported, returning generic device object.
2017-2-3#5:41:22- Device: RemoteLinc Keypad - H type: 0.26.56.0 is not specifically supported, returning generic device object.
2017-2-3#5:41:22- Device: RemoteLinc Keypad - G type: 0.26.56.0 is not specifically supported, returning generic device object.
It seems that there is a specific Accessory type in HomeKit for Garage doors (Its also defined in hap-nodejs/accessories/GarageDoorOpener_accessory.js
. If you say "Siri, open the garage door" she responds with "I wasn't able to find any garage doors".
Of course an I/O Linc can be used for a lot of different purposes, but probably the most common one is to control a garage door. I was thinking that having an object in the config similar to "ignoreDevices" called "myGarageDoors" which would allow you to designate a specific IOLinc as a garage door.
Tapping identify on any lightbulb device will kill the homebridge process. This is particularly painful when adding a whole Insteon network when first getting started. This doesn't seem to be a problem for switch devices.
https://imgur.com/gallery/QxCVg
By the way, this plugin and isy-js are amazing projects. Thanks for sharing your work!
My insteon hub runs on port 25105. When I put everything as documented in my config.json, and start homebridge, it doesnt do anything for a minute or so and then throw a timeout error, and I can see from log that it is trying to connect to my insteon hub at port 80 instead of port 25105.
When I run this in my browser, my garage door opens, but it seems like isy-js is not looking at this port?
"http://admin:[email protected]:25105/3?0262348H7D0F12ff=I=3
Any advice or feedback will be appreciated.
I've tried to add more than one ISY scenes doing the following
.....
"includeAllScenes": false,
"includedScenes": [
"27346",
"43224"
],
.......
But no matter what, it does not work with multiple entries. I have to remove the , and second entry. I've successfully tried many single entries and all work fine, so I know it's not an issue with the names being the same, etc.
Is anyone else able to do multiple scenes?
Thanks
I can cause the home bridge server to crash every time by pressing "Tap to identify" within a device.
Not sure if this is bug with MyHome app or homebridge-isy-js but based on the output it may since the error happens in the homebridge-isy-js/... here is the text of app crashing on my Raspberry Pi:
Homebridge is running on port 51826.
/usr/local/lib/node_modules/homebridge-isy-js/index.js:482
this.device.sendLightCommand(false, function(result) {
^
TypeError: Cannot read property 'sendLightCommand' of undefined
at /usr/local/lib/node_modules/homebridge-isy-js/index.js:482:14
at Request. (/usr/local/lib/node_modules/homebridge-isy-js/node_modules/isy-js/isy.js:673:13)
at emitTwo (events.js:87:13)
at Request.emit (events.js:172:7)
at Request.mixin._fireSuccess (/usr/local/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:229:10)
at /usr/local/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:161:20
at IncomingMessage.parsers.auto (/usr/local/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:402:7)
at Request.mixin._encode (/usr/local/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:198:29)
at /usr/local/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:157:16
at Request.mixin._decode (/usr/local/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:173:7)
pi@raspberrypi:~ $
/usr/lib/node_modules/homebridge-isy-js/index.js:71
for (var index = 0; index < this.config.ignoreDevices.length; index++) {
Keep getting this error. Here is my config:
"platform": "isy-js",
"name": "isy-js",
"host": "192.168.1.46",
"username": "admin",
"password": "password",
"elkEnabled": true,
"useHttps": false,
"debugLoggingEnabled": true,
"includeAllScenes": false
TypeError: Cannot read property 'length' of undefined
at ISYPlatform.shouldIgnore (/usr/lib/node_modules/homebridge-isy-js/index.js:71:56)
at /usr/lib/node_modules/homebridge-isy-js/index.js:120:13
at ISY.finishInitialize (/usr/lib/node_modules/homebridge-isy-js/node_modules/isy-js/isy.js:368:5)
at Request. (/usr/lib/node_modules/homebridge-isy-js/node_modules/isy-js/isy.js:529:46)
at emitTwo (events.js:87:13)
at Request.emit (events.js:172:7)
at Request.mixin._fireSuccess (/usr/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:229:10)
at /usr/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:161:20
at IncomingMessage.parsers.auto (/usr/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:402:7)
at Request.mixin._encode (/usr/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:198:29)
at /usr/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:157:16
at Request.mixin._decode (/usr/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:173:7)
at IncomingMessage. (/usr/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:150:14)
at emitNone (events.js:72:20)
at IncomingMessage.emit (events.js:166:7)
at endReadableNT (_stream_readable.js:921:12)
at nextTickCallbackWith2Args (node.js:442:9)
at process._tickCallback (node.js:356:17)
Is there any plans to add Programs to the items that can be controlled?
Bought an Insteon Hub Pro and several thousands worth of Insteon devices retrofitting all the outlets and switches (40+) and keypads and custom etched labels. The hardware looks great and integrated unlike all the alternatives but with the major benefit of HomeKit support so don't have to use the horrible Insteon+ app.
Started using the moment Apple Home app iOS 10 was in beta and from day one experienced an issue where all the devices said "No Response". For months Insteon wouldn't acknowledge an issue and I assumed it was because iOS 10 was beta. Sadly when it became stable the problem persisted and countless others on the forums confirmed and eventually Insteon admitted it's an issue on their end since 10+ devices requires a special group command by Apple with Insteon still doesn't support.
That all said if I buy the top of the line ISY and enable this Homebridge add-on, will I be able to access all the current devices from my Hub Pro in Home App, once I start fresh with ISY? Any known issues in regards to "No Response" with 10+ devices?
Insteon Hub supports Sonos through Insteon keypads http://www.insteon.com/sonos/ but oddly the new Hub Pro does not. Does ISY support Sonos through Insteon keypads?
iOS 10.3 now supports programmable keypads for HomeKit scenes. Hub Pro has not mentioned any upcoming support for this. Does ISY and or Homebridge-ISY-JS support this or may in the future?
Home app supports a grouping feature which is wonderful since you can group say three way switches to appear as one device in home app, thus if I say set kitchen to 50% it can update all the 3 switches that control that light and update the status lights on them as well because I have them all linked to each other. Since that all works with Hub Pro and HomeKit, is there any known issue accomplishing the same with ISY and Homebridge-ISY.
In general, color connected light bulbs (such as Lifx and Hue) aren't compatible with Insteon/regular switches because turning off a connected bulb or dimming it will cause them to not work. Lutron is closest with http://www.lutron.com/en-US/Products/Pages/Components/ConnectedBulbRemoteControl/Overview.aspx but no HomeKit support. My question is, with ISY and an Insteon Dimmable Switch, can the switch be programmed so when you turn the switch off it doesn't cut power but instead sends a signal to lifx to turn the light on, and when dimming rather than reducing power send a signal to lifx to dim?
ISY Mac app? From all my googling of ISY all the images seem to show an 90s style windows app. Does anyone have screenshots of the current day Web app (or Mac app).
Not sure if this is the right place to be asking these questions, so any advice or thoughts on any would be greatly appreciated. Thank you!
It used to work but I no longer get any scenes.
I'm usining the Free Insteon+ iOS app from the app store in order to pair my phone with homebridge. It paired successfully.
The Siri commands seem to work fine so I do not know if this is a bug with the insteon app or the homebridge ISY plugin. Apologies if this isn't the right place to report this!
The problem:
I have an ISY994i. When using the Insteon+ app GUI to turn the light off, the ISY receives an off command immediately followed up by an on command (confirmed by watching the event log on the ISY Admin console).
Note that when sending commands via Siri it seems to work okay.
I've noticed that if just one light in a scene is on or (>1%) then homebridge thinks the scene is already on and therefore doesn't really turn the scene on. Siri states that the scene is turned on, but it actually doesn't trigger the scene within the ISY. However, If I make sure all lights within the scene are truly showing "Off" then it works fine.
Is anyone else noticing this behavior?
I'm getting the following error when running Homebridge. Any Ideas?
Error: dns service error: name conflict
at Error (native)
at new Advertisement (/usr/local/lib/node_modules/hap-nodejs/node_modules/mdns/lib/advertisement.js:56:10)
at Object.create as createAdvertisement
at Advertiser.startAdvertising (/usr/local/lib/node_modules/hap-nodejs/lib/Advertiser.js:43:30)
at Bridge.Accessory._onListening (/usr/local/lib/node_modules/hap-nodejs/lib/Accessory.js:524:20)
at emitOne (events.js:77:13)
at HAPServer.emit (events.js:169:7)
at HAPServer._onListening (/usr/local/lib/node_modules/hap-nodejs/lib/HAPServer.js:183:8)
at emitOne (events.js:77:13)
at EventedHTTPServer.emit (events.js:169:7)
So far all the devices I have added to my ISY994i automatically show up in my Homebridge. However, I just added 4 "Insteon Micro Open/Close Modules" to my ISY994i and they will not show up in Homebridge.
The only way to get them into Homebridge, currently, is to add a scene, add the device to the scene, and then add that scene in the config.json.
I wouldn't even mind this workaround but there seems to be a further complication with this: if I do not also add a "Keypad" button to the scene the device status will be updated in HomeKit when triggered on the ISY but the commands triggered in HomeKit will not be sent back to the ISY.
If I add a physical Keypad button to the scene the communication works both ways.
Here is my example set up:
Three of my shutters are in the master bedroom. I have one scene that will close/open all three. That scene also has a button assigned so that I can open/close them from my Insteon Keypad. This scene works great. Then I have a scene for just the two window shutters and one more scene for just the door shutter. Neither of those two scenes have a button assigned since I only want to control them with HomeKit. However, these do not execute.
So I am finding two bugs at the moment:
Would love to get those issues resolved if possible. Let me know if I can do anything to help!
Thanks,
Philipp
I've added many device strings to the ignore list, but they appear to still be included in the devices passed to homekit. This is causing an issue where I'm passing more than 100 devices. Is this a known issue? I also can't seem to find the DEBUG output for isy-js (even after setting the flag to true).
Here's a snipped from config.json
{
"nameContains": "Kitchen:B:Deck"
}
And snippet from output of homebridge command:
[isy-js] Initializing platform accessory 'Kitchen:B:Deck'...
Any help would be appreciated,
Thanks!
Hey,
I installed Homebridge and the ISY Homebridge plugin but I'm having a hard time getting getting it running. Once I add the the ISY code into my config.json Homebridge will no longer start. It'll quit with the following error message:
Philipp-iMac-Home:~ Philipp$ homebridge
[1/22/2017, 3:27:26 PM] Loaded plugin: homebridge-isy-js
[1/22/2017, 3:27:26 PM] Registering platform 'homebridge-isy-js.isy-js'
[1/22/2017, 3:27:26 PM] ---
[1/22/2017, 3:27:26 PM] Loaded config.json with 0 accessories and 1 platforms.
[1/22/2017, 3:27:26 PM] ---
[1/22/2017, 3:27:26 PM] Loading 1 platforms...
[1/22/2017, 3:27:26 PM] [isy-js] Initializing isy-js platform...
[1/22/2017, 3:27:26 PM] [isy-js] Initializing platform accessory 'Mirror'...
[1/22/2017, 3:27:26 PM] [isy-js] Initializing platform accessory 'Shower'...
[1/22/2017, 3:27:26 PM] [isy-js] Initializing platform accessory 'Ceiling'...
[1/22/2017, 3:27:26 PM] [isy-js] Initializing platform accessory 'Keypad 1A'...
[1/22/2017, 3:27:26 PM] [isy-js] Initializing platform accessory 'Keypad 1B'...
[1/22/2017, 3:27:26 PM] [isy-js] Initializing platform accessory 'Keypad 1C'...
[1/22/2017, 3:27:26 PM] [isy-js] Initializing platform accessory 'Keypad 1D'...
Scan this code with your HomeKit App on your iOS device to pair with Homebridge:
┌────────────┐
│ 032-45-156 │
└────────────┘
/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/once.js:11
throw new Error("This callback function has already been called by someone else; it can only be called one time.");
^
Error: This callback function has already been called by someone else; it can only be called one time.
at /usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/once.js:11:13
at /usr/local/lib/node_modules/homebridge-isy-js/index.js:207:3
at ISY.finishInitialize (/usr/local/lib/node_modules/homebridge-isy-js/node_modules/isy-js/isy.js:368:5)
at /usr/local/lib/node_modules/homebridge-isy-js/node_modules/isy-js/isy.js:539:30
at Request.<anonymous> (/usr/local/lib/node_modules/homebridge-isy-js/node_modules/isy-js/isy.js:410:13)
at emitTwo (events.js:106:13)
at Request.emit (events.js:191:7)
at Request._fireSuccess (/usr/local/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:229:10)
at /usr/local/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:161:20
at IncomingMessage.auto (/usr/local/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:402:7)
ISY is the only plugin I'm currently running. Here is my config.json:
{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:40",
"port": 50920,
"pin": "032-45-156"
},
"platforms": [{
"platform": "isy-js",
"name": "isy-js",
"host": "192.168.7.100",
"username": "admin",
"password": "purell8fl",
"elkEnabled": false,
"useHttps": false,
"debugLoggingEnabled": false,
"includeAllScenes": false,
"includedScenes": [
""
],
"ignoreDevices": [{
"nameContains": "ApplianceLinc",
"lastAddressDigit": "",
"address": ""
}, {
"nameContains": "Bedroom.Side Gate",
"lastAddressDigit": "",
"address": ""
}, {
"nameContains": "Remote",
"lastAddressDigit": "",
"address": ""
}, {
"nameContains": "Test",
"lastAddressDigit": "",
"address": ""
}]
}]
}
Any help would be very much appreciated. I'd really love to get this running.
Thanks!
Philipp
I'm having a problem turning devices off and on. I can turn them on, but never off. I'm using an isy 994 with firmware 4.51 I have built out a PI system as well as a VM running ubuntu and get the same results.
I get the Ignoring redundant power state when I turn the device off. It's doesn't seem to matter if I wait a couple of seconds or 30 minutes before issuing the off command. Always get the same message in the logs.
[10/9/2016, 3:52:37 PM] [isy-js] 116-9-0#15:52:37- LIGHT: Living Room Light Setting powerstate to 0
[10/9/2016, 3:52:37 PM] [isy-js] 116-9-0#15:52:37- LIGHT: Living Room Light Ignoring redundant setPowerState
I have 3 garage doors. I will paste the code below but Garage 2 and 3 are naming fine but the first one is not. I tried reordering it, changing names, deleting all devices and re-adding. Nothing but 2 and 3 woe great. Device 15 18 05 is the issue. I triple checked the device ID and even tried it like 15.18.05.1 No luck. HELP!!!
Everything else is working great. I just have about 600 devices so i had to do a lot of filtering!!!
"garageDoors": [ {
"address": "15 18 05 1",
"name": "Tucker's Garage",
"timeToOpen": 12000
},{
"address": "15 16 A5 1",
"name": "Casey's Garage",
"timeToOpen": 12000
}, {
"address": "15 17 2D 1",
"name": "Jeff's Garage",
"timeToOpen": 12000
}
],
I installed a GoControl WS15Z-1 Z-Wave on/off switch (not a dimmer) and it's not being detected by homebridge-isy-js. I tried making a scene for it but it won't respond to any on/off commands.Is there any way that support can be added?
I can turn on the insteon lights, but the off command doesn't work. Any ideas?
Most of my device names are plural (lights & doors) and I am wondering if it is possible to change the phrase that Siri says after a state change. For example, when I say, "turn on the floodlights", Siri says "the floodlights is on." Is it possible to change Siri to say, "the floodlights are on"? I've looked around inside the files and cannot find where Siri is told how to respond. Is that in the plugin or is that native to Siri?
I have my garage door controlled by an I/O Linc. The Sensor is ON when the door is CLOSED. If I set up that device as a garage door in the JSON, it shows up in Home, but always initializes as OPEN when I start homebridge. how do I tell it to swap the status? I can't open the garage door every time homebridge restarts. it seems to control just fine though, just has the status backwards.
When you start up HomeBridge with the door open, and the motor is activated through the relay, HomeBridge doesn't know what state the door is in. Is it opening or closing? It's not clear, it depends on what last happened with the door before HomeBridge was started.
Is there support for Insteon Venstar Thermostat? For some reason these do not show up in homebridge as a device. If they aren't currently supported, is it possible to support?
Thanks!
Is it possible to add ISY Scenes (groups in the rest node list response)? I prefer to use scenes to control the devices in order to keep keypad lights in sync.
Noticed during testing. Now fixed. Entering issues so others searching would find it.
Issue was if you set brightness to 0 on a dimmable light it would pop up to 100% and on.
I have a question:
If I use the ISY994i Pro (instead of the Insteon Hub) I can use that to program my Insteon Keypads and Insteon DIN modules, correct? Now, if i use this Homelink Plugin will it sync the Insteon device status and HomeKit status?
So for example, if I press Button B on my keypad, which turns on my dining room light, will this also show the dining room light as turned on in HomeKit?
I'm currently using the Insteon Hub Pro and it will not keep the keypads and HomeKit in sync. It's a disaster. Hoping this could be the solution?
I seem to be having a problem running this against my ISY. I am running 5.0.2 and I'm seeing the following error when running homebridge.
[root@automation isy-js]# homebridge
*** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see http://0pointer.de/avahi-compat?s=libdns_sd&e=node
*** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see http://0pointer.de/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegister
[Wed Mar 16 2016 16:30:29 GMT-0400 (EDT)] Loaded plugin: homebridge-isy-js
[Wed Mar 16 2016 16:30:29 GMT-0400 (EDT)] Registering platform 'homebridge-isy-js.isy-js'
[Wed Mar 16 2016 16:30:29 GMT-0400 (EDT)] ---
[Wed Mar 16 2016 16:30:29 GMT-0400 (EDT)] Loaded config.json with 0 accessories and 1 platforms.
[Wed Mar 16 2016 16:30:29 GMT-0400 (EDT)] ---
[Wed Mar 16 2016 16:30:29 GMT-0400 (EDT)] Loading 1 platforms...
[Wed Mar 16 2016 16:30:29 GMT-0400 (EDT)] [isy-js] Initializing isy-js platform...
2016-2-3#16:30:29- Device: ZW 002 Binary Sensor type: 4.32.1.0 is not specifically supported, returning generic device object.
2016-2-3#16:30:29- Device: ZW 002 Multilevel Sensor type: 4.32.1.0 is not specifically supported, returning generic device object.
2016-2-3#16:30:29- Device: ZW 002 Energy Meter type: 4.32.1.0 is not specifically supported, returning generic device object.
2016-2-3#16:30:29- Device: ZW 003 Repeater type: 4.15.1.0 is not specifically supported, returning generic device object.
2016-2-3#16:30:29- Device: ZW 004 Repeater type: 4.15.1.0 is not specifically supported, returning generic device object.
2016-2-3#16:30:29- Device: ZW 005 Binary Sensor type: 4.32.1.0 is not specifically supported, returning generic device object.
2016-2-3#16:30:29- Device: ZW 005 Multilevel Sensor type: 4.32.1.0 is not specifically supported, returning generic device object.
2016-2-3#16:30:29- Device: Main Floor Thermostat type: 1.1.0.0 is not specifically supported, returning generic device object.
2016-2-3#16:30:29- Device: Upstairs Thermostat type: 1.1.0.0 is not specifically supported, returning generic device object.
/usr/lib/node_modules/homebridge-isy-js/node_modules/isy-js/isy.js:404
if (response instanceof Error || response.statusCode != 200) {
^
TypeError: Cannot read property 'statusCode' of null
at Request. (/usr/lib/node_modules/homebridge-isy-js/node_modules/isy-js/isy.js:404:50)
at Request.emit (events.js:98:17)
at Request.mixin._fireError (/usr/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:207:10)
at ClientRequest. (/usr/lib/node_modules/homebridge-isy-js/node_modules/restler/lib/restler.js:246:14)
at ClientRequest.emit (events.js:95:17)
at Socket.socketOnData (http.js:1644:9)`
My config.json file looks like this.
{ "bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:30",
"port": 51826,
"pin": "031-45-154"
},
"description": "This is an example configuration file with one fake accessory and one fake platform. You can use this as a template for creating your own configuration file containing devices you actually own.",
"platforms": [
{
"platform": "isy-js",
"name": "isy-js",
"host": "192.168.XX.XX",
"port": "80",
"username": "admin",
"password": "passwordofawesomeness",
"elkEnabled": false,
"useHttps": false,
"debugLoggingEnabled": true,
"includeAllScenes": true
}
]
}`
When I run the query by hand it seems that it is querying for type "1" which comes back and undefined.
I have a ISY994i that I am using as a controller for three LampLincs and about a dozen SwitchLincs. I am able to control each of the devices individually as well as in groups, using scenes, via the ISY’s built-in web-based (Java) interface. I also use Mobilinc HD on my iPad and iPhone to control the devices and scenes.
I’ve just installed the latest version of HomeBridge on a Raspberry Pi 2 B along with homebridge-isy-js. When I start the HomeBridge server, it initializes the ISY platform as well as the LampLincs exposed by the ISY (thanks to the new "Bridged Mode"). However, it does not seem to pick up on the SwitchLincs via Bridge Mode. Am I missing something?
Any advice/pointers would be greatly appreciated. Many thanks in advance!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.