Driver Request: Universal Devices ISY-99i

english_1969
Member
Member
Posts: 67
Joined: Mon Dec 05, 2005 10:06 pm
Contact:

Postby english_1969 » Fri Jul 11, 2008 1:54 pm

Since you guys have the ISY device, I was wondering if you might be able to answer a few questions. I am thinking about buying one as I have become frustrated with what is currently available to manage an insteon network.

1) Does the device replacement work okay/well?

2) Does is have a spidering capability?

3) Do you know if it can directly interface to the Elk? I keep seeing that it can do this and allow the elk to have access to lighting control through it.

4) I assume that scenes/links you create are part of the network (meaning they are downloaded to controllers and responders) and not held within the ISY-99, unless it is a timer or something.

Thanks,
W

bigDvette
Expert
Expert
Posts: 718
Joined: Thu Oct 12, 2006 12:19 pm
Contact:

Postby bigDvette » Fri Jul 11, 2008 3:08 pm

1) Does the device replacement work okay/well?

If you mean the ability to swap out a device in a scene and have it reprogram all the affected scenes / links, yes it works well.

2) Does is have a spidering capability?

Yes, but it isn't really recommended on their site. I let it do it and because I had some dead links I ended up with devices that didn't exist. It is easy to use.

3) Do you know if it can directly interface to the Elk? I keep seeing that it can do this and allow the elk to have access to lighting control through it.

Yes, there is a driver for the M1Gold that does 2 way communication for control of lights and status.

4) I assume that scenes/links you create are part of the network (meaning they are downloaded to controllers and responders) and not held within the ISY-99, unless it is a timer or something.

Yes they are physical links maintained in the switch and PLM. You don't have to have teh box on unless you are using ELK to control the lights an d scenes since it obviously does it's insteon control through the ISY.

bjdraw
Senior Member
Senior Member
Posts: 246
Joined: Thu May 24, 2007 4:55 pm
Contact:

Postby bjdraw » Sun Jul 13, 2008 1:38 pm

I'd like to add that it also has a restore feature that will replace all the links in a device in about a minute when a device mysteriously forgets them. You just right click on the device and choose restore.

Also, the scene creation is down right fantastic. You can drag and drop all the lights into the scenes and change ramp rates and on levels in real time until you get the scene just right.

In fact the only time you have to touch a switch is to set a default ramp rate, which just requires you to stop gap it after you set it in the UI.

A fantastic piece of hardware and we haven't even mentioned the very elaborate if/else programming capabilities.
Ben Drawbaugh
How good can it be, if it isn't HD?

mwebster
Intermediate
Intermediate
Posts: 271
Joined: Mon Mar 20, 2006 10:38 pm
Contact:

Postby mwebster » Thu Sep 04, 2008 11:46 pm

Glad everyone is enjoying their ISY, I know I am.

As for my progress. I've talked with Cinemar and they have some decisions to make, and I won't proceed without their blessing.

So we'll have to wait to see what they have to say, but I'm optimistic they'll do what is best for the community.


Did anything ever come of this? The current plugin isn't what I want and isn't what anyone with over a few devices needs in my opinion. I'd buy an isy tomorrow if I knew I could use it with ml. I noticed that another ml user is writing the homeseer plugin.

User avatar
mcascio
Founder
Founder
Posts: 8270
Joined: Tue Jan 28, 2003 4:03 pm
Location: Kenosha, Wi
Contact:

Postby mcascio » Fri Sep 05, 2008 7:09 am

mwebster,

We have looked at the device and been in contact with them about getting the hardware in-hand. We're pretty turned upside down in development costs already for Insteon - so we're treading very cautiously.
Mario Cascio
Cinemar, Inc.
http://www.cinemaronline.com

User avatar
AccessHA
Expert
Expert
Posts: 644
Joined: Sun Feb 13, 2005 8:44 pm
Location: MI
Contact:

Postby AccessHA » Mon Sep 08, 2008 10:15 pm

Hi Mario, please keep us posted. The ISY has really changed the way I feel about Insteon. It’s the first time my Insteon environment has actually worked as it was originally intended. It's the best way to manage an Insteon network... period. An ML interface would be ideal... I would love to scrap the PLC interface (which I know a lot of hard work went into). It's just that the ISY works and works consistently.
Hell-bent on automating everything! I’m too lazy to do anything else.

www.accessHA.com
Access Home Automation
The ultimate Insteon resource on the web.

bpwwer
Senior Member
Senior Member
Posts: 215
Joined: Fri Jul 07, 2006 10:58 am
Contact:

Postby bpwwer » Thu Oct 30, 2008 11:08 am

ISY Plug-in for MainLobby is now available. This is a beta release with all the associated disclaimers.

Basic features include:
    Device/Program Status display
    Device/Program Control
    Automatic creation and real-time updates of MLServer variables with device status
    Device/Program control from with MLServer using the MLISY command

To use this Plug-in you'll need:
    An ISY with firmware 2.6.6 or later
    MLServer version 500 or later
    Microsoft .NET runtime 3.0 or later


For more detailed information along with the installation package and documentation go to http://www.bobsplace.com/mlisy/
--
Bob

mwebster
Intermediate
Intermediate
Posts: 271
Joined: Mon Mar 20, 2006 10:38 pm
Contact:

Postby mwebster » Thu Oct 30, 2008 11:22 am

However, the ISY will not notify MLISY when a scene is activated.


I'm curious to know how this is handled. When a device in a group changes, do you need to know the other devices in the group and then poll them to keep their status correct? An example of how manual group dimming/brightening is handled would be great.

Matt

bpwwer
Senior Member
Senior Member
Posts: 215
Joined: Fri Jul 07, 2006 10:58 am
Contact:

Postby bpwwer » Thu Oct 30, 2008 12:54 pm

mwebster wrote:
However, the ISY will not notify MLISY when a scene is activated.


I'm curious to know how this is handled. When a device in a group changes, do you need to know the other devices in the group and then poll them to keep their status correct? An example of how manual group dimming/brightening is handled would be great.

Matt


Matt,

Ok, let's say we have a group created on the ISY, "Dimmed Room", that has 3 devices

A - A switchlinc
B - A lamplinc
C - A lamplinc

The switchlinc and the ISY are both "controllers" of the group. The switchlinc will set all three devices to 100% when activated and the ISY will set all three devices to 50% when activated.

In MLISY, there will be a devices called "Dimmed Room", "A", "B", and "C"

Starting state is all three devices OFF

Turning on the switchlinc does the following
- Device A -> 100%
- Device B -> 100%
- Device C -> 100%
- ISY sends notice to MLISY device A -> 100%, MLISY sets device A status to 100%
- ISY sends notice to MLISY device B -> 100%, MLISY sets device B status to 100%
- ISY sends notice to MLISY device C -> 100%, MLISY sets device C status to 100%

Looks ok except that the device in MLISY called "Dimmed Room" is still off, the ISY never sent anything to indicate that group changed state.

Now if you dim the group either via MLISY|Dimmed Room~Dim or via the ISY admin console the following happens:
- Device A -> 99%
- Device B -> 99%
- Device C -> 99%
- ISY sends notice to MLISY device A -> 99%, MLISY sets device A status to 99%
- ISY sends notice to MLISY device B -> 99%, MLISY sets device B status to 99%
- ISY sends notice to MLISY device C -> 99%, MLISY sets device C status to 99%

So all the physical devices get changed and MLISY gets notified of those changes. MLISY should always have the current status for each physical device regardless of how that status was changed.

It's only the status of the virtual scene/group device that gets out of sync. If the virtual device is controlled from within MainLobby, then MainLobby can update the internal state/status, but if any external controller does anything with the same virtual device, the ISY doesn't notify MLISY.

Does that make sense?
--

Bob

bigDvette
Expert
Expert
Posts: 718
Joined: Thu Oct 12, 2006 12:19 pm
Contact:

Postby bigDvette » Thu Oct 30, 2008 3:38 pm

Bob, are you capturing button press events on keypadlincs?

Also, is the Dimmed Room an ISY Scene/Group or an MLISY Scene Group or both.

In your example what does the ISY dimming to 50% have to do with the example. Are you saying if you issue a Dimmed Room command with an On, then the lights would go to 50% as opposed to your example where you did a Dim from 100%?

I know you have been struggling to get Scene Status and I am personally using scenes a little differently and don't care about Scene status as much as just a way to initiate a particular lighiting scene.

When I want to control a group of light, my naming convention takes care of it. Basically all my lights are in a scene, even if they are in it alone. When I issue a Theater_Soffit Bright command, it sends the command to ISY as a group command to Theater_Soffit_Group and that takes care of turning on the KPL button, the slave switch, the On button for the main controller .....

I also just added a timestamp to my variable list so when somoene physically presses the AWAY button on the way out the door, since the ISY doesn't send status for non-toggle buttons, I get an update to that buttons timestamp which then goes and runs a shutdown command to make sure all the TVs and touchpanels are off.

Do you have a list of variables you create? Your solution is much less dependent on a naming convention which is the right way to do this. I'm just wondering what all status info you are processing.

bpwwer
Senior Member
Senior Member
Posts: 215
Joined: Fri Jul 07, 2006 10:58 am
Contact:

Postby bpwwer » Thu Oct 30, 2008 5:36 pm

bigDvette wrote:Bob, are you capturing button press events on keypadlincs?

Maybe, sortof... This is what's next on my list of things to work on, some of the code is there to capture button press events, but it's not fully tested and/or functional that this point.

Also, is the Dimmed Room an ISY Scene/Group or an MLISY Scene Group or both.

Both. The ISY stores Scenes/Groups as devices and I capture all devices and all programs in MLISY. Well, almost all, I am filtering out the program folders.

In your example what does the ISY dimming to 50% have to do with the example. Are you saying if you issue a Dimmed Room command with an On, then the lights would go to 50% as opposed to your example where you did a Dim from 100%?

When I started thinking of what to wright, I was going to explain what happens if you activate the scene from the ISY admin console, then as I typed it all in, that seemed a bit redundant so I left it out.

I know you have been struggling to get Scene Status and I am personally using scenes a little differently and don't care about Scene status as much as just a way to initiate a particular lighiting scene.

I think I'm struggling a lot less than other people :) I mostly just want to know a scene was activated. I don't really care about the debate between when is a scene "on" vs. "off". My opinion is that with a system like MainLobby it would be more intuitive and easier to use if the lighting control display showed fewer, less granular, lighting scenes. I'd also like the ability to trigger events based on scenes being activated vs. buttons. If I have 3 controllers that can set my theater to "watch movie" lighting mode, it would be nice if that could also trigger screen down without having to have a trigger that watches all three controllers. Not that there aren't ways to accomplish these things without the scene notifications, just that having them would make it easier and would make nothing else harder. I don't see any downside to adding them.

I also just added a timestamp to my variable list so when somoene physically presses the AWAY button on the way out the door, since the ISY doesn't send status for non-toggle buttons, I get an update to that buttons timestamp which then goes and runs a shutdown command to make sure all the TVs and touchpanels are off.


Good idea, mind if I add that to my list of variables too?

Do you have a list of variables you create? Your solution is much less dependent on a naming convention which is the right way to do this. I'm just wondering what all status info you are processing.

They should all be listed in the docs on the website. I just looked at what MLLighting created and created similar one. I did add one so that I have the current status in both percentage and raw level for devices that have status levels.
    * mlisy_<ID>_id - The device's ISY address
    * mlisy_<ID>_alias - The device's ISY name
    * mlisy_<ID>_status - on/off/dim
    * mlisy_<ID>_value - On level 0 - 100%
    * mlisy_<ID>_raw - On level 0 - 255
    * mlisy_<ID>_room - The device's ISY location
    * mlisy_<ID>_model - The device type

Room doesn't current get populated because the ISY doesn't export that information. Model, isn't really the device model, but the Insteon category of the device, so that should probably be renamed.
--

Bob

bigDvette
Expert
Expert
Posts: 718
Joined: Thu Oct 12, 2006 12:19 pm
Contact:

Postby bigDvette » Thu Oct 30, 2008 10:07 pm

I guess wasn't paying attention that there was documentation.

In addition to a timestamp you could consider an option that if checked allowed the user to use some type of naming convention that allowed you to strip out room. the other thing I do is create a variable ROOM_SEQUENCE that points to the actual device. My variables are


My convention is

{Room}_{seq}_{device} for devices
{Room}_{seq}_{device}_{scenename} for KPL non-load buttons
{Room}_{device}_ML for Mainlobby Scenes that are used to control devices as slave groups
{Room}SCENE_{seq}_{scenename} for Scenes that do something to control moods / what people consider scenes to be.

So and example in my theater would be

THEATER_02_SOFFIT for the soffit lights.

There is a

THEATER_SOFFIT_ML for the group of devices linked to the soffit which consists of

THEATER_09_MAIN - KPL main on button so when light is on, theater main on/off is on.
THEATER_09_MAIN_SOFFIT - KPL button that is actually used to turn on just the SOFFIT light which is an in-linelinc

THEATERSCENE_LIGHTSON is a scene that sets
THEATER_02_SOFFIT to 40%
THEATER_06_BAR to 40%
THEATER_09_MAIN to ON
THEATER_09_MAIN_BAR to on (this is a KPL button)
THEATER_16_BAR to 40% (this is a slave to THEATER_06_BAR)
THEATER_09_MAIN_SOFFIT to on (this is another KPL button)

By having rooms, I have 1 scene I uses for lighting and when I select the THEATER room, I simply have buttons down the side with variables for

{{{{currentroom}}_01_device}}
{{{{currentroom}}_02_device}}
.
.
.

then a set of scenes

{{{{currentroom}}scene_01}}


All of these get you back to the device IDs or Group IDs so you can control the room.

I guess this was my long way to saying with some naming convention ability, you can get a room variable which is quite useful.

I have a mask I've setup in my program that states which part of the name is which variable.

BTW - I'm just thinking out loud, please don't take this as some sort of request.

Lastly, can you get the OL for devices in a group. If so, I may take a stab at writing a routine that will lookup the devices in a group and when any of them change, compare the on-level of all the devices in a group to the current levels and set the group status to on.

I'm already storing current state in my program (even though I can always get it from the ISY) so I can test using my little program as a web service other devices can get ISY status without having to subscribe.

Great work BTW Bob, I wish I had your coding skills. You helped me alot initially getting my data coming through my subscription.

bpwwer
Senior Member
Senior Member
Posts: 215
Joined: Fri Jul 07, 2006 10:58 am
Contact:

Postby bpwwer » Fri Oct 31, 2008 1:56 am

bigDvette wrote:In addition to a timestamp you could consider an option that if checked allowed the user to use some type of naming convention that allowed you to strip out room.

Yeah, like "room:name". I keep hoping that we'll see new ISY firmware that has some of these additions and I won't have to program in work-a-rounds.

That's pretty cool what you've done with the variable names. It might be worth it to try and come up with a way to allow the user to define templates for the variable names that get created.

Lastly, can you get the OL for devices in a group. If so, I may take a stab at writing a routine that will lookup the devices in a group and when any of them change, compare the on-level of all the devices in a group to the current levels and set the group status to on.

I don't think there's any way to get that info. Looking at the web service I only see the address and type for links in a group. It probably wouldn't be that hard if the information was available. But I think this is another case where it would be better if the ISY just sent the info.
--

Bob

bigDvette
Expert
Expert
Posts: 718
Joined: Thu Oct 12, 2006 12:19 pm
Contact:

Postby bigDvette » Fri Oct 31, 2008 3:00 am

[quote="bpwwer]I don't think there's any way to get that info. Looking at the web service I only see the address and type for links in a group. It probably wouldn't be that hard if the information was available. But I think this is another case where it would be better if the ISY just sent the info.[/quote]

After going back to the WSDL again, I think there may be a way.

There is a services I've pasted below

<wsdl:operation name="GetSceneProfiles">
<wsdl:documentation>Gets the profile attributes for responders. Set the controller element to scene's address and: In case this is an ISY scene, set the node element to "none" In case this is a controller for a scene, set the node element to the controller's address</wsdl:documentation>
<wsdl:input message="u:GetSceneProfilesRequest" />
<wsdl:output message="u:GetSceneProfilesResponse" />
</wsdl:operation>

The GetSceneProfilesRequest input message is made up of

<wsdl:message name="GetSceneProfilesRequest">
<wsdl:part name="GetSceneProfiles" type="u:NodeControllerParam" />
</wsdl:message>

and NodeControllerPAram is made up of

- <xsd:complexType name="NodeControllerParam">
- <xsd:sequence>
<xsd:element name="node" minOccurs="1" maxOccurs="1" type="xsd:string" />
<xsd:element name="controller" minOccurs="1" maxOccurs="1" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>

I think service says if you put he scene ID in the controller element and "none" in the node element you will get back the following

<wsdl:message name="GetSceneProfilesResponse">
<wsdl:part name="SceneProfiles" type="u:SceneProfiles" />
</wsdl:message>
- <wsdl:message name="SetSceneProfileRequest">

which is made up of

<xsd:complexType name="SceneProfiles">
- <xsd:annotation>
<xsd:documentation>The structure which represents the profiles of responders for a scene</xsd:documentation>
</xsd:annotation>
- <xsd:sequence>
<xsd:element name="SP" type="u:SceneProfile" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>

which is in turn made up of

- <xsd:complexType name="SceneProfile">
- <xsd:annotation>
<xsd:documentation>The structure which represents the profile of responders for a scene OL = on level RR = ramp rate Climate will be added in release 3</xsd:documentation>
</xsd:annotation>
- <xsd:sequence>
<xsd:element name="node" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="OL" type="xsd:double" minOccurs="0" maxOccurs="1" />
<xsd:element name="RR" type="xsd:double" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>


If I'm reading it right you would get several SP type messages (1 for each link) and you would get node, OL and RR for each one.

I'm thinking if we can get that and store it in the program, what I was discussing earlier could be done. Simply each time a new ST message is received, interigate all the scenes and determine if teh curren on level for all devices in that scene are at the OL defined for the scene.

That method would also allow you to technically invoke a scene as one from a seperate controller simply by telling that controller to execute a program to turn on an ISY scene and then the plugin would see the ST messages and turn on the scene.

Just thinking out loud again. I may try to figure it out a bit this weekend and if I do I'll send you whatever I come up with.

fnkpet
Expert
Expert
Posts: 632
Joined: Sun Nov 30, 2003 1:20 pm
Location: Charlotte, NC
Contact:

Postby fnkpet » Fri Oct 31, 2008 9:01 pm

Hi - Thank you for developing the plugin.

I am having an issue on the config - see screen shot.

I tired googling the error but didnt seem to be able to figure it out. Any Ideas? I aslo tried using without the forward slash in front of the ip - no luck.

Part of the detail on the error is as follows:

************** Exception Text **************
System.UriFormatException: Invalid URI: The format of the URI could not be determined.
at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)
at System.Uri..ctor(String uriString)
at System.Net.WebRequest.Create(String requestUriString)

Any ideas?

Frank
You do not have the required permissions to view the files attached to this post.


Return to “Insteon”

Who is online

Users browsing this forum: No registered users and 1 guest