Insteon Minibroker - Crosslinked Devices - KeypadLinc

kzboray

Member
John,

It’s been a while since I played with the marvelous INSTEON driver you have supplied. Mostly because it’s doing 80% of what I what it to and the wife hadn’t complained about the other 20%. Ya you guessed. She noticed something and now I need some help in getting things working correctly. Here’s what I have.

KeypadLinc - [Switch 2] is cross linked to a Switchlinc 1. SwitchLinc 1 is also cross linked to Switchlinc 2. SwitchLinc 2 is also shown as a ConnectedDeivce to SwitchLinc 1 in Premise. In response to the time of day and the status of the alarm I can programmatically activate Switchlinc 1, which also controls ConnectedDevice SwitchLinc 2. Here is how I do this.

Code:
Scenes.Lights_on.Play=TRUE
I use a Scene because I turn on multiple lights. There are 2 problems with this approach. (1) The status indicator light on SwitchLinc 2 shows that the light is OFF even though it is actually ON. (2) The status light of KeypadLinc - [switch 2] shows that the light is also off.

I know we talked about this before and you suggested that I create and use InsteonGroups . So I changed SetGroup to 5 and then clicked the LinkMode checkbox, verified that the PLC was flashing and ran around to all the lights I wanted in group 5 and added them. I unchecked LinkMode and then clicked on Detect. InsteonGroup_5 was added and all the lights I wanted were in it. So far so good. I then changed my code to this.

Code:
Devices.CustomDevices.Insteon_Root.InsteonGroup_5.PowerState=TRUE
To test I changed the PC’s clock to a time after sunset forcing my time check to register darkness, and then transitioned the alarm as if someone had just arrived home. Normally using Scenes four lights come on, using InsteonGroup_5 nothing happens.

I am wondering what I am doing wrong. I would really like to have the status lights correctly reflect the actual power state of the cross linked devices. It’s not so much a problem for the SwitchLinc’s, but the 8 button KeypadLinc is a real issue as you can’t see some of the lights from its location and have to rely on the status lights to correctly reflect the actual status.

Thank you !

EDIT +++

I did some more investigation and found the following:

1.) On a reboot of the Premise server the ButtonStstus is wrong for 1 or more of the KeypadLinc switches.
2.) If my script runs and sets the PowerState of KeypadLinc to TRUE is never resets to FALSE even when all the crosslinked loads are all OFF.
3.) If I manually check the PowerState checkbox under InsteonGroup5, none of the devices in the group power on, none of the ButtonStatus change.


Windows XP Pro 32
InsteonMinibrokerDriver 2.0.11
Version 2.0.1.3

4/19/09 ADDITION+++

In desperation I went ahead and defaulted all Insteon devices in my home. Installed Premise from scratch on a newly installed XP Pro system and created a single InsteonGroup with 1 KeypadLinc and 3 SwitchLinc’s. Using the PowerState checkbox I can get the lights to go on sometimes. If I click it on / off / on it will almost always turn the lights on. Same situation to turn them off. I have to off / on /off. It doesn't work 100% of the time, but most of the time. This sounds like a communications problem, but if I use the PowerState property for one of the SwitchLinc’s individually It responds 100% of the time, and reflects the true state of the device.

When I can get the group property to power on correctly, the KeypadLinc accurately shows the status as on for all devices in the group. However and this is a real pain. If one of the devices in group has its PowerState changed for any reason i.e. manually, or via a directed command from Premise to just that single device you can no longer use the PowerState for the original group. It just won't work at all.

Example:

This is part of my onChangeSecurity code.
Code:
With Devices.Ademco.ApexDestiny6100.Partitions.Partition_1

	'Check if the current time is between Sunset and Sunrise
	If times.sysTime > times.sysSunset(times.sysDate) Or _
		times.sysTime < times.sysSunrise(times.sysDate) Then

	
		Select Case .SecurityState
		case 0 '0 - Away
			'Turn off inside lights after 60 seconds
			addTimer 60,"Scenes.Lights_Off.Play=TRUE",1,this.Name
	
			'Turns on the porch light for 120 seconds
			Scenes.Porch_LightOn.Play=TRUE
			addTimer 120,"Scenes.Porch_LightOff.Play=TRUE",1,porchLight
		case 1 '1 - Disarmed
			Scenes.Porch_LightOn.Play=TRUE
			addTimer 180,"Scenes.Porch_LightOff.Play=TRUE",1,porchLight
			
			'Turn on the lights with feedback to 8 Pad in bedroom
			Devices.CustomDevices.Insteon_Root.InsteonGroup_4.PowerState=TRUE

In case 1, It's dark and someone just disarmed the alarm. 3 Lights should come on. One of these is an entry light. It is common to turn this light off by the switch after you enter the home. Once someone turns off one of the lights in InsteonGroup_4 all PowerState commands stop working. Using the individually attached devices allows you to transition the PowerState, but the group commands are toast. Of course the whole purpose of using group commands is the have the KeypadLinc status lights reflect the actual state of the device. If I have to use the in individual devices then the KeypadLinc's status lights are no longer usable.

Also when using a group, connectedDevices do not accurately reflect the PowerState of the device. In a 3 way circuit 2 SwitchLinc’s and a KeypadLinc; When the PowerState gets set to on, the status light for the KeypadLinc goes on, the small led indicator lights on the primary SwitchLinc goes on as well, but the slave (connectedDevice) stays in the off position even though the light is on.
Groups have me baffled. What am I doing wrong?
Thank you.
 
Back
Top