I can’t get you all the way where you want to be, but a feature that released in 0.60 might help! Hass now emits events for all ISY control events, as documented here. By listening to the FDUP, FDDOWN, and FDSTOP events, you can tell exactly when the switches are being held and released. However, this will still not allow you to see the brightness “live” as you fade or dim. Unfortunately, I do not believe the devices send their status while dimming (it would probably clog up the bandwidth). I will double-check that though.
The goal is definitely to have everything working in 4.x and 5.x. That being said, I have 5.x installed on my ISY994 and so I don’t have a great way to test 4.x, so if you find any issues, please do let me know so I can fix them as quickly as possible! If you have the know-how, running Hass from master right now will get you my refactor changes and so you could test before 0.61 drops
I run it inside docker. Would just pulling the ISY related components from the source into my custom_components directory work? I might give that a go this evening.
@OverloadUT is there any chance that this could be expanded to support the Elk Plugin from ISY? I realize it may be a stretch, but just wanted to see if it was on your to do list or not. I realize that ha-elkm1 is a similar project to what I’m asking for, but it seems to be having a fair amount of issues at this time. I’m happy to help contribute testing/troubleshooting! Thanks!!
I would be up for giving it a shot. However, I don’t have one, which makes developing for it much much slower due to me having to pretty much guess about how everything works based on static snapshots of other people’s API payloads.
If you could supply me with your nodes API call (instructions in OP) I could at least check to see what Elk nodes look like to see how much of a lift it might be.
Also, being unfamiliar with Elk, can you let me know what it actually does in the ISY? Is it all read-only parameters, or can you actually send commands to the Elk? A full rundown of the provided functionality would be helpful!
I’ll attach my nodes.xml, but I don’t know that it’s going to be that simple… maybe I’m wrong though. Elk is pretty well engrained in the ISY. You can do things like view zone status, check the arming state, arm/disarm the alarm, etc. The panel and its associated functions don’t show up like a normal device does (such as a light or motion sensor)… Anyways, here is the attachment, let me know what you think! nodes.xml (8.7 KB)
I’m on HASS 0.62.0 and ISY 5.0.11C. I’m still not seeing the leak sensors function properly. They show up as dry, but when triggered HASS never shows the change. The ISY admin console shows the change though. Anyone else still having problems? I’ve got the console log trace of the state changes if that’s useful.
BTW - thanks for the work on the component! I’m hoping to contribute once I get my HASS setup established.
While I by no means understand all the code yet, I think I found the problem with the water sensor. In binary_sensor/isy994.py, the moisture device_type block doesn’t handle anything other than the heartbeat. If I add the same subnode_id == 2 handing code as the opening device_type, the moisture sensors appear to function properly.
Does this make sense @OverloadUT ? I’ll keep poking around, but if I’m on to something I’d be happy to make the fix and put in a PR.
@OverloadUT I’m not saying this is going to be easy to implement the Elk M1 into this, but I seem to be seeing updates in the HA log from the ISY plugin. Seems like we’ll just need to create devices or something from this. Here are some entries when I tripped a motion sensor on my Elk from the HA log:
Firstly, thanks so much @OverloadUT for all your work on the ISY component.
I’m curious if anyone else is having issues with HA staying in sync with all devices?
So far, I’ve been unable to get the ISY component to consistently remain in sync. Quite often, I’ll trigger the “Bedtime” HA scene (all lights off) and they’ll inevitably be 1-2 lights left on in the house. I’ll then manually go into HA and ISY separately and I can see that ISY is correct and shows the light as ON, but HA shows it as off.
Which is another thing I find odd. It would be nice if when you told HA to turn all devices off… that it would send off signals to all devices regardless if off or on. (just to be sure?)
Anyone know how I might fix this? I’m at the end of rope with this one.
Is is possible to get any additional data with the isy994_control event? For example, a Z-Wave lock produces an ALARM control event that specify if the lock was engaged from the outside or inside of the lock. I can trigger from isy994_control with control: ‘ALARM’ but I can’t actually see the additional information I need.
Hey @OverloadUT, thanks for the good work that you have done on the ISY 994 integration. My installation is large and mostly done using Insteon devices, but I also have ZWave devices connected to the ISY994. I was running the V4.62 firmware on the ISY and felt that the ISY - Hassio (under a RPi3) was rock solid.
I had to use a strange hack to get the ISY and Hass to work fast. In order to be able to trigger Hass scenes from a few Keypad Lincs, instead of detecting the button press Inside HASS, I wrote some ISY Programs that on a button press invoke a network resources on the ISY to call a scene via the HASS rest api. I had to do this to ensure that key presses in the Keypad lincs were immediately processed, as detecting the key presses in Hass sometimes takes up to 10 seconds. Maybe something is wrong on my Hassio environment, but it was taking that much. In this very moment I’m stuck on Hass version .72, as a lot of the weaker TLS ciphers were removed (see bug #12871) in 0.73, which prevents me from upgrading to 0.75.3 (at this moment is the latest Hass). The call from the ISY to Hass does not work under Hass 0.73 and upwards, as it cannot negotiate a common high strength cipher. If the button press event was raised quicker in Hass (< 1 sec), it would allow me to process the button presses in Hass, and that would be a big thing for usability.
On a separate thing, I’ve noticed that the state of devices on the ISY can sometimes take too long to be updated on Hass, which again deters from actively using Hass code to quickly detect events in the ISY.
Eventhough the previous two funny things are not trivial, all considered, this integration has allowed me to really move all the home automation processing logic to Hass, so I really like it a lot. I received the last batch of enhancements with a smile, because it made using sensors much more elegant.
Sorry, just noticed that I forgot to mention that about two weeks ago, I updated the ISY’s firmware to V5.20, and although the Hass integration works, I’ve noticed that at least a couple of times per day, when an automation script or scene in Hass tries to turn a device on the ISY, it has trouble getting the ISY to do it, and the error log in Hass indicates:
2018-07-31 20:48:09 WARNING (SyncWorker_9) [homeassistant.components.isy994] Bad ISY Request: http://192.168.1.16:80/rest/nodes/3D%2046%205B%201/cmd/DON
2018-07-31 20:48:09 WARNING (SyncWorker_9) [homeassistant.components.isy994] ISY could not turn on node: 3D 46 5B 1
but the ISY Error log does not show any error on the ISY at that sime time. What could I do to gain more insight on what is happening?
In the meantime, up your homeassistant.components.isy994 log level to debug and you should get a lot more information when the issue happens. I would be very interested in seeing that.
As for your comments about the delay from the ISY: I have been seeing that too and it drives me NUTS! I can’t depend on creating automations with switch presses, because as you said they are sometimes delayed by a maddening 10 seconds. As far as I can tell (without doing much actual debugging) this is a problem with the ISY’s streaming API - I think it’s simply not always sending updates in a timely manner. This is likely something we’ll need to bring to the ISY developers if we can get some tangible data proving that that’s where the slowness is in the chain.
Hi @OverloadUT, before anything, thanks for taking the time to help. It took me a while to have a chance to capture the log for the “Bad ISY request” problem. Here it is:
2018-09-21 08:46:45 DEBUG (Thread-2) [homeassistant.components.isy994] ISY HEARTBEAT: 2018-09-21T08:46:45.538319
2018-09-21 08:46:45 DEBUG (Thread-2) [homeassistant.components.isy994] ISY Update Received:
<?xml version="1.0"?><Event seqnum="391" sid="uuid:31"><control>_5</control><action>1</action><node></node><eventInfo></eventInfo></Event>
2018-09-21 08:46:45 INFO (SyncWorker_7) [homeassistant.components.isy994] ISY Response Recieved
2018-09-21 08:46:45 INFO (SyncWorker_7) [homeassistant.components.isy994] ISY turned on node: ZW023_1, To value: 90
2018-09-21 08:46:45 INFO (SyncWorker_7) [homeassistant.components.isy994] ISY updated node: ZW023_1
2018-09-21 08:46:47 DEBUG (Thread-2) [homeassistant.components.isy994] ISY Update Received:
<?xml version="1.0"?><Event seqnum="392" sid="uuid:31"><control>_5</control><action>0</action><node></node><eventInfo></eventInfo></Event>
2018-09-21 08:46:47 DEBUG (Thread-2) [homeassistant.components.isy994] ISY Update Received:
<?xml version="1.0"?><Event seqnum="393" sid="uuid:31"><control>DON</control><action>1</action><node>41 5C B9 1</node><eventInfo></eventInfo></Event>
2018-09-21 08:46:47 INFO (Thread-2) [homeassistant.components.isy994] ISY Node Control Event: 41 5C B9 1 DON
2018-09-21 08:46:47 DEBUG (Thread-2) [homeassistant.components.isy994] ISY Update Received:
<?xml version="1.0"?><Event seqnum="394" sid="uuid:31"><control>ST</control><action uom="100" prec="0">255</action><node>41 5C B9 1</node><eventInfo></eventInfo><fmtAct>100%</fmtAct></Event>
2018-09-21 08:46:47 INFO (Thread-2) [homeassistant.components.isy994] ISY Updated Node: 41 5C B9 1
2018-09-21 08:46:47 INFO (Thread-2) [homeassistant.components.isy994] ISY Node Control Event: 41 5C B9 1 ST
2018-09-21 08:46:47 INFO (SyncWorker_17) [homeassistant.components.isy994] ISY Request: http://192.168.1.16:80/rest/nodes/3E%209%208A%201/cmd/DON/40
2018-09-21 08:46:47 INFO (SyncWorker_3) [homeassistant.components.isy994] ISY Request: http://192.168.1.16:80/rest/nodes/13192/cmd/DON
2018-09-21 08:46:47 INFO (SyncWorker_3) [homeassistant.components.isy994] ISY Response Recieved
2018-09-21 08:46:47 DEBUG (Thread-2) [homeassistant.components.isy994] ISY Update Received:
<?xml version="1.0"?><Event seqnum="395" sid="uuid:31"><control>_1</control><action>3</action><node></node><eventInfo>[ 41 5C B9 1] DON 1</eventInfo></Event>
2018-09-21 08:46:47 INFO (SyncWorker_3) [homeassistant.components.isy994] ISY turned on scene: 13192
2018-09-21 08:46:47 DEBUG (Thread-2) [homeassistant.components.isy994] ISY Update Received:
<?xml version="1.0"?><Event seqnum="396" sid="uuid:31"><control>_1</control><action>3</action><node></node><eventInfo>[ 41 5C B9 1] ST 255 (uom=100 prec=0)</eventInfo></Event>
2018-09-21 08:46:47 DEBUG (Thread-2) [homeassistant.components.isy994] ISY Update Received:
<?xml version="1.0"?><Event seqnum="397" sid="uuid:31"><control>_5</control><action>1</action><node></node><eventInfo></eventInfo></Event>
2018-09-21 08:46:49 WARNING (SyncWorker_17) [homeassistant.components.isy994] Bad ISY Request: http://192.168.1.16:80/rest/nodes/3E%209%208A%201/cmd/DON/40
2018-09-21 08:46:49 DEBUG (Thread-2) [homeassistant.components.isy994] ISY Update Received:
<?xml version="1.0"?><Event seqnum="398" sid="uuid:31"><control>DON</control><action>1</action><node>41 5C B9 1</node><eventInfo></eventInfo></Event>
2018-09-21 08:46:49 WARNING (SyncWorker_17) [homeassistant.components.isy994] ISY could not turn on node: 3E 9 8A 1
2018-09-21 08:46:49 INFO (Thread-2) [homeassistant.components.isy994] ISY Node Control Event: 41 5C B9 1 DON
2018-09-21 08:46:49 DEBUG (Thread-2) [homeassistant.components.isy994] ISY Update Received:
<?xml version="1.0"?><Event seqnum="399" sid="uuid:31"><control>_3</control><action>WH</action><node>29 F3 38 1</node><eventInfo><status>1</status></eventInfo></Event>
2018-09-21 08:46:49 INFO (SyncWorker_1) [homeassistant.components.isy994] ISY Request: http://192.168.1.16:80/rest/nodes/29%20F3%2038%201/cmd/DON/40
2018-09-21 08:46:50 INFO (SyncWorker_1) [homeassistant.components.isy994] ISY Response Recieved
2018-09-21 08:46:50 INFO (SyncWorker_1) [homeassistant.components.isy994] ISY turned on node: 29 F3 38 1, To value: 40
2018-09-21 08:46:50 INFO (SyncWorker_1) [homeassistant.components.isy994] ISY updated node: 29 F3 38 1```
The ISY is at 192.168.1.16 and my HASSIO instance is at 192.168.1.19. ZWave node ZW023_1 controls the hallway leading to the room where one of the troubled nodes are. Node 45.5C.B9.1 is a motion sensor that detects that someone is in the room with the troubled dimmer. Insteon scene 1392 set the backlight brightness on the troubled dimmer, and is activated by a HASS scene that gets triggered by an automation that sets the mood in the room, first by setting the backlight of the dimmer, then by turning the dimmer to around 40%. The actual problem is at 2018-09-21 08:46:49, where I get "Bad ISY Request". Hope this captures all that you need. Let me know if there is anything else you may need.
The ISY is at 192.168.1.16 and my HASSIO instance is at 192.168.1.19. ZWave node ZW023_1 controls the hallway leading to the room where one of the troubled nodes are. Node 45.5C.B9.1 is a motion sensor that detects that someone is in the room with the troubled dimmer. Insteon scene 1392 set the backlight brightness on the troubled dimmer, and is activated by a HASS scene that gets triggered by an automation that sets the mood in the room, first by setting the backlight of the dimmer, then by turning the dimmer to around 40%. The actual problem is at 2018-09-21 08:46:49, where I get “Bad ISY Request”. Hope this captures all that you need. Let me know if there is anything else you may need.
This is Michel Kohanim from Universal Devices. Just wanted to thank the Home Assistant community for developing the integration between Home Assistant and ISY994. This topic is very important to us and thus you have our full support in your endeavors.
Integration between ISY and Home Assistant creates endless opportunities for some cool stuff. For instance, we just added integration support for Alexa Sensors/Actuators/Variables and Routines. This allows you to have Alexa literally talk to you! Now, combine this with Home Assistant integration and we’ll have pretty amazing scenarios. Just in case you are interested, here’s the link to the instructions: https://www.universal-devices.com/news/ …
Thanks for the support! You and your team have been helpful over on the UDI forums and over email when I was doing my big refactor of the ISY994 component here, so I’ve never been in doubt about your level of support!
I’ve got a lot more work to do to make this component perfect, but it’s well on its way.
One thing I’ve been meaning to dig in to and probably request some help from you is figuring out why we are getting unpredictable delays on the websocket API - often times we get updates within one second of them happening in the ISY, but sometimes they can be delayed up to 10 seconds. This makes automations based on ISY button presses and other events not a great user experience, and it’s my #1 wishlist item to get fixed.