Author Topic: Universal Devices ISY driver  (Read 20750 times)

iolaus

  • Jr. Member
  • **
  • Posts: 96
    • View Profile
Re: Universal Devices ISY driver
« Reply #30 on: September 27, 2011, 08:42:57 pm »
Alpha Version 0.21 of the ISY driver has been posted to my web site.  This fixes a bug with rules.  Program rules in particular should now work.  See http://www.bobsplace.com/ISYDriver/ for the new version.

Thanks Bob, I can't wait to try it out tomorrow.  I'll let you know how it works.

iostream212

  • Sr. Member
  • ****
  • Posts: 459
    • View Profile
Re: Universal Devices ISY driver
« Reply #31 on: September 29, 2011, 09:21:37 pm »
There was a updated driver posted and I am happy to say that it was working for me in elve v1.2. I only tried a few methods to test it out. Thank you so much for the update!
I always wanted to be somebody. In retrospect, I think I should have been more specific.

iolaus

  • Jr. Member
  • **
  • Posts: 96
    • View Profile
Re: Universal Devices ISY driver
« Reply #32 on: September 30, 2011, 11:24:29 am »
I apologize, I meant to reply much earlier.  I am now using Program triggers and they are working wonderfully!  I'm finally starting to get some really useful automation going with Elve and the ISY.

Thanks so much for the update!

bpwwer

  • Full Member
  • ***
  • Posts: 220
    • View Profile
Re: Universal Devices ISY driver
« Reply #33 on: September 30, 2011, 05:34:23 pm »
It's good to see a couple more people using the driver.     Any suggestions or problems, just post, pm, or email me.  The more feedback I get, the more motivated I am to improve ISYDriver :)


iolaus

  • Jr. Member
  • **
  • Posts: 96
    • View Profile
Re: Universal Devices ISY driver
« Reply #34 on: October 01, 2011, 06:11:55 pm »
It's good to see a couple more people using the driver.     Any suggestions or problems, just post, pm, or email me.  The more feedback I get, the more motivated I am to improve ISYDriver :)

Hey Bob,

I am seeing a couple of errors in the event log.  They don't seem to be preventing anything from working but here they are:

Code: [Select]
Date:     10/1/2011
Time:     6:54:34 PM
Severity: Error
Source:   DriverService
Computer: AUTOMATION
Context Type: Driver
Context Name: ISY Driver : ISY-99i
Description:
There is a bug in a driver... The driver attempted to process a device property change notification for a property named 'LightOnOffs' however the passed in index of '0' is outside the range specified in the property's ScriptObjectProperty attribute.

and

Code: [Select]
Date:     10/1/2011
Time:     7:09:59 PM
Severity: Fatal
Source:   DriverService
Computer: AUTOMATION
Context Type: Driver
Context Name: ISY Driver : ISY-99i
Description:
ID requested for unmapped device NTP

One additional thing I've noticed is that the Program Trigger event doesn't always seem to catch the 'Running True' status for quick programs.  I've been able to work around it by using the 'True' status instead for some programs.  Ideally, it would be nice to use the same 'Running True' status for all program triggers.  I'd use 'True' for everything but it doesn't fire until the program is completely done running the 'Then' statement which can sometimes involve a wait delay.

Thanks again for the great driver!

bpwwer

  • Full Member
  • ***
  • Posts: 220
    • View Profile
Re: Universal Devices ISY driver
« Reply #35 on: October 02, 2011, 09:49:04 am »

Hey Bob,

I am seeing a couple of errors in the event log.  They don't seem to be preventing anything from working but here they are:

Code: [Select]
Date:     10/1/2011
Time:     6:54:34 PM
Severity: Error
Source:   DriverService
Computer: AUTOMATION
Context Type: Driver
Context Name: ISY Driver : ISY-99i
Description:
There is a bug in a driver... The driver attempted to process a device property change notification for a property named 'LightOnOffs' however the passed in index of '0' is outside the range specified in the property's ScriptObjectProperty attribute.

I was seeing this too.  I found two problems.  The first was related to the array indexes.  They are suppose to start at 1, not 0, but I had a bunch of them starting at 0, except for LightOnOffs. So for whatever device was first configured,it got index 0 and thus would trigger this bug.  I added a bit of code to check for this and fix it, this means that whatever device you had that was at index 0 will now be moved to a new index in the array.  All other devices will stay the same.

There was also  a bug in the thermostat heat/cool set point properties.  I had a typo in the property names so that notifications of heat or cool set points would cause a bug too. That's been fixed.

Quote
Code: [Select]
Date:     10/1/2011
Time:     7:09:59 PM
Severity: Fatal
Source:   DriverService
Computer: AUTOMATION
Context Type: Driver
Context Name: ISY Driver : ISY-99i
Description:
ID requested for unmapped device NTP

This just means that an event came in from the ISY reporting it's time and there wasn't a device defined to handle it.  You'll might see these messages for ISY modules you have installed. The driver is only supporting a subset of the capabilities of the ISY right now.

Quote
One additional thing I've noticed is that the Program Trigger event doesn't always seem to catch the 'Running True' status for quick programs.  I've been able to work around it by using the 'True' status instead for some programs.  Ideally, it would be nice to use the same 'Running True' status for all program triggers.  I'd use 'True' for everything but it doesn't fire until the program is completely done running the 'Then' statement which can sometimes involve a wait delay.

If the ISY is actually sending the event, the driver should handle it.  All incoming events are queued and processed in order.  You should be able to log all of this if you increase the log level of the driver to 3 or 4 and it will log the incoming events.

When I take a very simple program (one that basically does nothing in either then or else clauses), I am not seeing the ISY send a running true or running false event.  It may be that the ISY only sends those if the program actually needs to wait for something to happen.


I can post a new version, but right now I have everything building with and for Elve 1.2 beta.  Do I need to re-install Elve 1.1 and create a package for that too?

iolaus

  • Jr. Member
  • **
  • Posts: 96
    • View Profile
Re: Universal Devices ISY driver
« Reply #36 on: October 02, 2011, 10:08:40 am »
Thanks for the info Bob.  As to your last question, I'm using Elve 1.2.  Can't speak for everyone but I'd think reasonable that you'd need to use the newest Elve to keep getting new driver features/fixes.

iostream212

  • Sr. Member
  • ****
  • Posts: 459
    • View Profile
Re: Universal Devices ISY driver
« Reply #37 on: October 02, 2011, 08:05:30 pm »
+1 with iolaus.
Also IDK about other users but I really think you should just focus on the Insteon support with ISY ie. not worrying about trying to integrate the add-on modules that ISY supports.  For me when I think ISY I think lighting.  Then scrolling through the different methods and seeing weather features doesn't make sense.  Most users will use another driver for integrated weather like the weather.com driver or the, dare I say, NOAA driver. But needless to say it has been awesome using this great driver in 1.2. Seeing the real time 2 way light control brings a tear to my eye.
I always wanted to be somebody. In retrospect, I think I should have been more specific.

iolaus

  • Jr. Member
  • **
  • Posts: 96
    • View Profile
Re: Universal Devices ISY driver
« Reply #38 on: October 03, 2011, 08:07:06 am »
+1 with iolaus.
Also IDK about other users but I really think you should just focus on the Insteon support with ISY ie. not worrying about trying to integrate the add-on modules that ISY supports.  For me when I think ISY I think lighting.  Then scrolling through the different methods and seeing weather features doesn't make sense.  Most users will use another driver for integrated weather like the weather.com driver or the, dare I say, NOAA driver. But needless to say it has been awesome using this great driver in 1.2. Seeing the real time 2 way light control brings a tear to my eye.

Certainly don't want to discourage any development but I'd agree with iostream on this one.  The ISY modules are cool but once a user has Elve I'd imagine they'd prefer to perform the ISY module tasks with Elve device drivers where possible.  Spoke & Hub over Daisy Chaining as it were.

bpwwer

  • Full Member
  • ***
  • Posts: 220
    • View Profile
Re: Universal Devices ISY driver
« Reply #39 on: October 03, 2011, 09:02:52 am »
New alpha release with a couple of bug fixes now available on my web site http://www.bobsplace.com/ISYDriver/

iostream212, iolaus,

Thanks for the feedback.  I agree that lighting is probably the main reason for using an ISY.  But it really is a lot more and figuring out how to integrate that properly with Elve is a challenge.  I implemented the WeatherBug module interface because it was easy to hook it up to the Elve weather interface.

If you start going down the list of what Insteon and the ISY support

The ISY supports the following Insteon devices
  • lighting devices
  • I/O devices
  • SynchroLinc device monitoring
  • Thermostats
  • Energy monitoring (iMeter)
  • IRLinc IR support
  • EZFlora Irrigation control

The ISY support the following
  • Programs
  • Network resources
  • Variables
  • WeatherBug/Irrigation
  • Brultech energy monitors
  • Elk security systems

I've probably missed a couple of things.  I could separate these out into multiple drivers, but I don't think that's the best solution.  Lumping it all together into one massive driver does not seem like a great solution either.

iolaus

  • Jr. Member
  • **
  • Posts: 96
    • View Profile
Re: Universal Devices ISY driver
« Reply #40 on: October 03, 2011, 09:11:58 am »
New alpha release with a couple of bug fixes now available on my web site http://www.bobsplace.com/ISYDriver/

iostream212, iolaus,

Thanks for the feedback.  I agree that lighting is probably the main reason for using an ISY.  But it really is a lot more and figuring out how to integrate that properly with Elve is a challenge.  I implemented the WeatherBug module interface because it was easy to hook it up to the Elve weather interface.

If you start going down the list of what Insteon and the ISY support

The ISY supports the following Insteon devices
  • lighting devices
  • I/O devices
  • SynchroLinc device monitoring
  • Thermostats
  • Energy monitoring (iMeter)
  • IRLinc IR support
  • EZFlora Irrigation control

The ISY support the following
  • Programs
  • Network resources
  • Variables
  • WeatherBug/Irrigation
  • Brultech energy monitors
  • Elk security systems

I've probably missed a couple of things.  I could separate these out into multiple drivers, but I don't think that's the best solution.  Lumping it all together into one massive driver does not seem like a great solution either.

Bob,

I wonder if it would be possible to develop the ISY core (The TCP connection, message parsing, etc) as an 'ISY Core' driver and then build a series of additional drivers that implement specific Elve interfaces (ie 'ISY Lighting\Relay', 'ISY Climate', etc).  I'm not sure if that is feasible (or a good idea) but I'm just throwing it out there.  For things that aren't Insteon specific (Elk, Brultech, Weatherbug, etc) I wonder if we'd be better off with standalone drivers rather than passing those things through the ISY.

Just thinking out loud. :)

bpwwer

  • Full Member
  • ***
  • Posts: 220
    • View Profile
Re: Universal Devices ISY driver
« Reply #41 on: October 03, 2011, 10:18:03 am »
Bob,

I wonder if it would be possible to develop the ISY core (The TCP connection, message parsing, etc) as an 'ISY Core' driver and then build a series of additional drivers that implement specific Elve interfaces (ie 'ISY Lighting\Relay', 'ISY Climate', etc).  I'm not sure if that is feasible (or a good idea) but I'm just throwing it out there.  For things that aren't Insteon specific (Elk, Brultech, Weatherbug, etc) I wonder if we'd be better off with standalone drivers rather than passing those things through the ISY.

Just thinking out loud. :)

Thinking out load is good! 

Your idea of a core driver and then additional driver's is similar to what I was thinking, but not out loud :) of a single driver with sub-drivers.  I don't think there's any way with the current Elve to do sub-drivers which is why I didn't mention it before.   I'm pretty sure your idea is feasible.    It is also possible to have multiple ISY drivers that just separate drivers (ISY Lighting driver, ISY WeatherBug driver, ISY Irrigation driver, etc.).  This would be easier for me to create, but there would be a lot of redundancy between the drivers and I'm not sure the ISY would like having that many clients.

The main reason for supporting all the ISY capability is consolidation on a non-PC device. Many folks look at the ISY as a low power, always on, highly reliable device and want it to do as much as it can.  The PC running the HA software provides the nice user interface and integration with things the ISY can't handle. 

The biggest reason I can think of for consolidating into one Elve driver is the 15 driver limit that Elve Enthusiast has.

I actually use the ISY WeatherBug data for current condition info instead of what comes from Weather.com. It has the potential to be more accurate (assuming there's a Weatherbug station close by).  The downside is that you still need something like the Weather.com driver for forecast data.  I believe getting forecast data from Weatherbug is on the ISY  TODO list though.


John Hughes

  • Administrator
  • Hero Member
  • *****
  • Posts: 2851
    • View Profile
    • Codecore Technologies
Re: Universal Devices ISY driver
« Reply #42 on: October 03, 2011, 12:36:47 pm »
While it is technically feasible to create a base ISY communications driver and then add function drivers which use Elve's documented inter-driver communication methods, I do not recommend it. Technically this would add unnecessary overhead and complexity, but most imporantaly would make some users unhappy due to the device licensing (per Bob's point).

Depending on how Bob designed the driver it could also be possible for parallel development by multiple people to implement different parts of the driver. It was my understanding that part of the driver uses proprietary source code and can not be open sourced(?) but perhaps it could be compiled into an assembly that could be share by the driver... I'm just brainstorming.
John Hughes
Codecore Technologies

bpwwer

  • Full Member
  • ***
  • Posts: 220
    • View Profile
Re: Universal Devices ISY driver
« Reply #43 on: October 03, 2011, 01:18:18 pm »
John,

I can create a single driver that supports all the various driver interface properties/methods, that's actually pretty easy at this point.

What would be cool would be if the driver could have sub-drivers or sub-modules.  Today I have properties like:

isydriver.LightOnOffs[]
isydriver.HeatSetpoint
isydriver.WindSpeed

What I'd like is:

isydriver.Ligthing.LightOnOffs[]
isydriver.Thermostat.HeatSetpoint
isydriver.Weather.WindSpeed

Ideally, the properties and methods display would be tree views so you'd see:

+Lighting
+Thermostat
+Weather

And you could expand each one as needed.

Maybe something like this is already possible?  I was just thinking of this today so I haven't tried any experiments to see if something like this could be done.

John Hughes

  • Administrator
  • Hero Member
  • *****
  • Posts: 2851
    • View Profile
    • Codecore Technologies
Re: Universal Devices ISY driver
« Reply #44 on: October 03, 2011, 03:09:05 pm »
While that is technically already possible from the driver and scripting language perspective, it is not recommended because the Elve administrative user interfaces do not support this (included EMS and the common action list editor).

I didn't catch from the earlier thread what the advantage of this would be? Is it to reduce the number of top level members on the driver to avoid confusion? Or is it because there could be an overlap of members due to the ISY supporting multiple lighting technologies for example?
John Hughes
Codecore Technologies