Unrelated lights affecting programming lines?

broconne

Active Member
I am seeing something odd here with what I thought was a fairly straight forward block of code. I have an HAI Scene Switch in which Scene A is set to do a link toggle on one set of lights and scene B was set to do a link toggle on another set. I was running into the problem where the lights would be controlled manually sometimes so the toggle wasn't always working as expected. So I figured the following block of code would fix part of the problem:

Code:
101. WHEN Stairs Light OFF
WHEN Upstairs Hallway Light OFF
  AND IF Stairs Light OFF
  AND IF Upstairs Hallway Light OFF
   THEN Upstairs OFF

Essentially, I have written what I think is the following:
If either of two lights goes to off, check and see if both lights are off. If they are off then set the UPB link corresponding to scene B to off.
Now this part works great. If I turn off both lights manually, the HAI panel notices that and sends the link off command which makes the scene switch update..

Now, the odd part.
When I toggle Scene A to ff, which is controlling a completely different set of lights, the HAI panel executes that block of code above even thought neither of those when blocks should have fired and neither of those if statement should be true. Any ideas?
 
When you do anything with any of the 6 scenes in a room, the Omni will automatically send status update requests to every switch in that room.

The Omni sees a Room Scene
The Omni sends out a staus request to all teh switches in that room.
The switches report back as OFF.
The Omni sees that OFF report which is the same report when the Switch is switched OFF.
And the block of code is triggered.
 
Hey Desert -
Thanks for the reply. So you are saying that whenever any scene is activated the switches will report back as off? Even if those switches are still on?

To make this example more concrete.
Lights 1 & 2 are toggled on Scene Switch A
Lights 3&4 are toggled on Scene Switch B
The code block in the original post checks status of lights 1&2.
I use a scene switch to toggle off lights 3&4
The code blocks checking lights 1&2 trigger.


When you do anything with any of the 6 scenes in a room, the Omni will automatically send status update requests to every switch in that room.

The Omni sees a Room Scene
The Omni sends out a staus request to all teh switches in that room.
The switches report back as OFF.
The Omni sees that OFF report which is the same report when the Switch is switched OFF.
And the block of code is triggered.
 
No, here's what's happening.

Room 1 is allocated Links 1-6 (ON, OFF, A, B, C, D) and Units 1-8.

Whenever you send ANY of those six links the Omni requests the status of ALL 8 of those units.
If you bring up UPStart and open the log view, you can see this occur.

So when you toggle the scene for lights 3 & 4, the Omni is asking for status for ALL of the lights, including 1 & 2.

If EITHER unit 1 OR unit 2 reports OFF, then the block of code will execute.

The code is compacted when written, it really reads like this:

Code:
101. WHEN Stairs Light OFF
	   AND IF Stairs Light OFF
	   AND IF Upstairs Hallway Light OFF
		 THEN Upstairs OFF
 
102. WHEN Upstairs Hallway Light OFF
	   AND IF Stairs Light OFF
	   AND IF Upstairs Hallway Light OFF
		 THEN Upstairs OFF


Instead of using the Unit "WHEN OFF"
Try using the UPB Switch "WHEN OFF" as a trigger.

I believe the serial message for a "switch off" reports the actual click of the switch, not the status of the load attached.
 
Desert_AIP -
Thanks again. So in my scenario both units 1 and 2 are on and stay on.. Until the block of code executes the "THEN UPSTAIRS OFF" statement. So based on what you said below I don't think I should be seeing this behavior.




No, here's what's happening.

Room 1 is allocated Links 1-6 (ON, OFF, A, B, C, D) and Units 1-8.

Whenever you send ANY of those six links the Omni requests the status of ALL 8 of those units.
If you bring up UPStart and open the log view, you can see this occur.

So when you toggle the scene for lights 3 & 4, the Omni is asking for status for ALL of the lights, including 1 & 2.

If EITHER unit 1 OR unit 2 reports OFF, then the block of code will execute.

The code is compacted when written, it really reads like this:

Code:
101. WHEN Stairs Light OFF
	   AND IF Stairs Light OFF
	   AND IF Upstairs Hallway Light OFF
		 THEN Upstairs OFF
 
102. WHEN Upstairs Hallway Light OFF
	   AND IF Stairs Light OFF
	   AND IF Upstairs Hallway Light OFF
		 THEN Upstairs OFF


Instead of using the Unit "WHEN OFF"
Try using the UPB Switch "WHEN OFF" as a trigger.

I believe the serial message for a "switch off" reports the actual click of the switch, not the status of the load attached.
 
Desert_AIP - Thanks again. So in my scenario both units 1 and 2 are on and stay on.. Until the block of code executes the "THEN UPSTAIRS OFF" statement. So based on what you said below I don't think I should be seeing this behavior.

OK, let's see.

Confirm you are using HLC mode.

To make this example more concrete.
Lights 1 & 2 are toggled on Scene Switch A
Lights 3&4 are toggled on Scene Switch B
The code block in the original post checks status of lights 1&2.
I use a scene switch to toggle off lights 3&4
The code blocks checking lights 1&2 trigger.

You really need to see what the UPB traffic is.
The log will show which unit is transmitting as well as what it is transmitting, and you can see the sequence of transmissions.
Are you absolutely sure you do not have Link B programmed in to lights 1 & 2?

How are you implementing the scene switch to toggle off lights 3&4?
I assumed you were toggling link B On and Off.
There are links associated with rooms other than the main 6 that are reserved for use by scene controllers.
Those will trigger the room on/off behavior.

What actual UPB link numbers are you using?
A and B for Room 1 should be UPB links 3 and 4.
What is the scene switch link?
 
I keep thinking you have Link B programmed into the switches for lights 1 & 2.
When you toggle that link OFF, even if the programmed behavior is "Last Level", it will turn any unit associated with it off.
 
Desert_AIP -
If I remove that block of programming lights 1&2 are never affected by a scene switch B. Which leads me to believe it has to be that block of programming and not a UPB link setting.

When I wrote my detailed example without being in front of my scene switch, so I had some elements backwards, but the concept was the same. Here are the details:

Scene Switch
(A) Hallway - Link ID 51 - Custom Button - Single Tap=Activate/Deactivate
(B ) Upstairs - Link ID 52 - Custom Button - Single Tap=Activate/Deactivate

Unit 66 (Kitchen Hallway)
Link 51 - Level 100%

Unit 67 (Livingroom Hallway)
Link 51 - Level 100%

Unit 69 (Stairs)
Link 52 - Level 100%
(No Link 51 programmed)

Unit 70 - (Upstairs Hallway)
Link 52 - Level 100%
(No Link 51 programmed)


Use Case: I toggled Scene switch A and B on. All 4 units are then at 100%. I then press scene switch A. As soon as units 66 and 67 turn off, then units 69 and 70 turn off. To be clear, units 69 and 70 do not start to turn off at the same time as 66 and 67. They start to turn off only AFTER 66 and 67 get to the off state.


Below is the upstart log after toggling scene switch A off.
Code:
0,03/03/2012 11:54:39,,,,,,,,,,Log started after clear
2,03/03/2012 11:54:54,2/2,118,Deactivate,65,Unit 065 - Hallways - Hallways,Button A,-51,[multiple receivers],,
1,03/03/2012 11:54:55,4/4,118,Indicate,255,,,-50,[multiple receivers],,
1,03/03/2012 11:54:56,4/4,118,Indicate,255,,,-201,,,
1,03/03/2012 11:54:58,2/2,118,Deactivate,255,,,-52,[multiple receivers],,
1,03/03/2012 11:54:58,4/4,118,Indicate,255,,,-50,[multiple receivers],,
1,03/03/2012 11:55:00,4/4,118,Indicate,255,,,-201,,,
1,03/03/2012 11:55:05,1/1,118,Report State,4095,,,66,Unit 066 - Hallways - Kitchen Hall,,
2,03/03/2012 11:55:06,1/1,118,State,66,Unit 066 - Hallways - Kitchen Hall,,255,,,0
1,03/03/2012 11:55:06,1/1,118,Report State,4095,,,67,Unit 067 - Hallways - Living Hall,,
2,03/03/2012 11:55:06,1/1,118,State,67,Unit 067 - Hallways - Living Hall,,255,,,0
1,03/03/2012 11:55:07,1/1,118,Report State,4095,,,68,Unit 068 - Hallways - Foyer,,
2,03/03/2012 11:55:07,1/1,118,State,68,Unit 068 - Hallways - Foyer,,255,,,0
1,03/03/2012 11:55:08,1/1,118,Report State,4095,,,69,Unit 069 - Hallways - Stairs,,
2,03/03/2012 11:55:08,1/1,118,State,69,Unit 069 - Hallways - Stairs,,255,,,0
1,03/03/2012 11:55:09,1/1,118,Report State,4095,,,70,Unit 070 - Hallways - Upstair Hall,,
2,03/03/2012 11:55:09,1/1,118,State,70,Unit 070 - Hallways - Upstair Hall,,255,,,0
 
So it looks like things are properly configured for Room 9.
You have the Scene Switch configured as a Room Controller in Unit 65.
The Room Name looks like it is "Hallways".
The UPB delay looks like it is 5 seconds.

I'm puzzled, because you say the lights don't go off when that programming block is deleted.

Looking at the UPB log:
Following the Room Controller sending Deactivate Link 51 from Button A, the Omni (it uses the general unit 255 as the transmission origin) is sending a Link 50 Indicate (Link 50 is the Room Off) and it is also sending Link 201 Indicate (Link 201 is the House control link for Room 9).
Then something is triggering the Omni to send the Deactivate Link 52 (Scene B - which turns every thing off).

I've played with the Room Link before, and Link 201 triggers the Room ON/OFF from the Omni.
Even if no switches have Link 201 programmed in them, the Omni sends out the corresponding Room Links 49/50 to control the units in the room.

It looks like the Room OFF Indicate link is being transmitted, the Omni sees the Indicate command as an OFF command to the room, thus units 69 and 70 are instructed to go off, which executes the program block, transmitting link 52.

But the lights haven't reported their staus yet. So the status must be assumed by the Omni to be OFF when Link 50 (Romm OFF) and link 201 are received. Triggering the program.

Does the same thing happen if you transmit the Deactivate Link 51 from UPStart?
I wonder if the Omni is seeing the Room Controller and taking independent action.

You may want to try changing the Room Controller to a Macro Executer by making it one of the other Room Units (I use the last unit in the room for this - unit 72 in this case). The Omni may interpret signals differently from a Room Controller vs. a Macro Executer.

We'll get this fixed.
 
Hi Desert -
Sorry for the delay. Been so busy around here haven't had time to debug. However, I did do what you suggested tonight and sent the deactivate link from UPStart. I notice the same behavior.

Here is the upstart log:
Code:
0,03/15/2012 19:55:28,,,,,,,,,,Log started after clear
1,03/15/2012 19:55:34,1/1,118,Deactivate,255,,,-51,[multiple receivers],,
1,03/15/2012 19:55:34,4/4,118,Indicate,255,,,-50,[multiple receivers],,
1,03/15/2012 19:55:36,4/4,118,Indicate,255,,,-201,,,
1,03/15/2012 19:55:37,2/2,118,Deactivate,255,,,-52,[multiple receivers],,
1,03/15/2012 19:55:38,4/4,118,Indicate,255,,,-50,[multiple receivers],,
1,03/15/2012 19:55:39,4/4,118,Indicate,255,,,-201,,,
1,03/15/2012 19:55:45,1/1,118,Report State,4095,,,66,Unit 066 - Hallways - Kitchen Hall,,
2,03/15/2012 19:55:46,1/1,118,State,66,Unit 066 - Hallways - Kitchen Hall,,255,,,0
1,03/15/2012 19:55:46,1/1,118,Report State,4095,,,67,Unit 067 - Hallways - Living Hall,,
2,03/15/2012 19:55:47,1/1,118,State,67,Unit 067 - Hallways - Living Hall,,255,,,0
1,03/15/2012 19:55:47,1/1,118,Report State,4095,,,68,Unit 068 - Hallways - Foyer,,
2,03/15/2012 19:55:48,1/1,118,State,68,Unit 068 - Hallways - Foyer,,255,,,0
1,03/15/2012 19:55:48,1/1,118,Report State,4095,,,69,Unit 069 - Hallways - Stairs,,
2,03/15/2012 19:55:49,1/1,118,State,69,Unit 069 - Hallways - Stairs,,255,,,0
1,03/15/2012 19:55:49,1/1,118,Report State,4095,,,70,Unit 070 - Hallways - Upstair Hall,,
2,03/15/2012 19:55:49,1/1,118,State,70,Unit 070 - Hallways - Upstair Hall,,255,,,0
 
Desert -
I wasn't quite sure the steps I had to take to turn the room controller into a macro executor.
Do I just have to change its ID in upstart to 72 (which is unused in my setup)?
Or do I also need to go into hai setup and remove the room controller name from units and reassign it to #72?
 
Desert - I wasn't quite sure the steps I had to take to turn the room controller into a macro executor. Do I just have to change its ID in upstart to 72 (which is unused in my setup)? Or do I also need to go into hai setup and remove the room controller name from units and reassign it to #72?

The first unit of a Room is reserved for use as a Room Controller.
Which is how you have it programmed now.
If you have an 8 button controller in any other Room unit the Omni treats it as a macro executer.
So try to shange the conroller unit ID and see if it still send the spurious links.
 
I moved the scene switch to unit #72 and the problem still persists.

Here is the log:
Code:
0,03/17/2012 21:53:23,,,,,,,,,,Log started after clear
2,03/17/2012 21:53:39,2/2,118,Deactivate,72,Unit 072 - Hallways - Hallway Macr,Button A,-51,[multiple receivers],,
1,03/17/2012 21:53:40,4/4,118,Indicate,255,,,-50,[multiple receivers],,
1,03/17/2012 21:53:41,4/4,118,Indicate,255,,,-201,,,
1,03/17/2012 21:53:43,2/2,118,Deactivate,255,,,-52,[multiple receivers],,
1,03/17/2012 21:53:44,4/4,118,Indicate,255,,,-50,[multiple receivers],,
1,03/17/2012 21:53:45,4/4,118,Indicate,255,,,-201,,,
1,03/17/2012 21:53:51,1/1,118,Report State,4095,,,66,Unit 066 - Hallways - Kitchen Hall,,
2,03/17/2012 21:53:51,1/1,118,State,66,Unit 066 - Hallways - Kitchen Hall,,255,,,0
1,03/17/2012 21:53:52,1/1,118,Report State,4095,,,67,Unit 067 - Hallways - Living Hall,,
2,03/17/2012 21:53:52,1/1,118,State,67,Unit 067 - Hallways - Living Hall,,255,,,0
1,03/17/2012 21:53:53,1/1,118,Report State,4095,,,68,Unit 068 - Hallways - Foyer,,
2,03/17/2012 21:53:53,1/1,118,State,68,Unit 068 - Hallways - Foyer,,255,,,0
1,03/17/2012 21:53:54,1/1,118,Report State,4095,,,69,Unit 069 - Hallways - Stairs,,
2,03/17/2012 21:53:54,1/1,118,State,69,Unit 069 - Hallways - Stairs,,255,,,0
1,03/17/2012 21:53:55,1/1,118,Report State,4095,,,70,Unit 070 - Hallways - Upstair Hall,,
2,03/17/2012 21:53:55,1/1,118,State,70,Unit 070 - Hallways - Upstair Hall,,255,,,0
1,03/17/2012 21:53:56,1/1,118,Report State,4095,,,72,Unit 072 - Hallways - Hallway Macr,,
1,03/17/2012 21:53:57,2/2,118,Report State,4095,,,72,Unit 072 - Hallways - Hallway Macr,,
 
Need to find what is sending that Link 52.
I think the Omni sees the Indicate 201 as a Room Off, interprets that as the unit off and sends the Link 52 Deactivate.

Hmm...
In PCAccess in your program block,
Instead of using the Unit "WHEN OFF"
Try using the UPB Switch "WHEN OFF" as a trigger since you want to see the switch press as a trigger.
 
Back
Top