UPB double-tap to turn off multiple HLC rooms

rsw686

Active Member
I'm trying to setup a switch in the upstairs hallway where a double tap of the bottom rocker turns off the downstairs lights and keeps the status correct in the HAI controller. HAI by default programs the switches to transmit status on links 242 and 241. Great, but the HAI controller "when upb switch off pressed" doesn't know the difference between single and double taps.
 
If I configure the transmit links to unused and check the "report light level after rocker switch is pressed" box the HAI controller will still see the status. This does break the "when upb switch off pressed" code, which I am not using anyway.
 
With that configuration I have freed up the transmit links to control other switches. The issue is I have two downstairs HLC rooms I want to turn off. I can't just transmit activate to the HLC room off link as I have more than one room. If I have the upstairs switch transmit on an unsued link and all downstairs switches receive that link the lights turn off, but the HAI controller status doesn't update.
 
I decided to add HAI program logic to create the functionality I needed. However the below code only works 50% of the time. Unfortunately the switch is sending the status command after the transmit command is sent. A collision sometimes occurs between the switch status and HAI controller sending the kitchen/family off command. When this happens the dinning room lights turn off, but the kicthen/family lights remain on.
 
The UPB protocol without collision detection and the ability to transmit separate links for single vs double tap really makes some things hard to program. Additionally the switch not sending its status first before the transmit commands, doesn't help either. Any thoughts on how to get this working reliably?
 
17.    WHEN UPB LINK 225 ON
            THEN Kitchn/Famly OFF
            THEN Dining Room OFF
 
UPB Log
2,07/08/2013 23:52:17,2/2,25,Activate,18,Unit 018 - Common - Upstairs,Bottom Rocker,-225,,,
2,07/08/2013 23:52:18,2/2,25,State,18,Unit 018 - Common - Upstairs,,0,,,0
1,07/08/2013 23:52:18,2/2,25,Activate,255,,,-2,[multiple receivers],,
1,07/08/2013 23:52:19,4/4,25,Indicate,255,,,-193,,,
1,07/08/2013 23:52:20,2/2,25,Activate,255,,,-8,[multiple receivers],,
1,07/08/2013 23:52:21,4/4,25,Indicate,255,,,-194,,,
 
 
I think you're close with the programming.

The controller will send a status request to all units in the room when it sees activity from any of the units.

Try using the deactivate command for the link when transmitting.

Your PCAccess code looks correct

Need to expand the UPB log, what units are those activate commands going to?

Also, do you need all four links in the kitchen and dining room?
I used the D link in each room as a status update link.
I remove all the switches from taking any action by editing them in UPStart.
The controllers still expects the link to be associated with the room.
So when it sees link D it automatically sends status requests to all units in the room.
This way I can and it the link form a switch in another room, while using local control on that load, and keep both rooms updated.
Or I can use it to maintain status across multiple rooms as you are wanting to do.

The room off links should have the same functionality from the controller though.
 
I pressed the bottom rocker on the switch
2,07/08/2013 23:52:17,2/2,25,Activate,18,Unit 018 - Common - Upstairs,Bottom Rocker,-225,,,
HAI controller sees the Activate 225 line and the code fires for WHEN UPB LINK 225 ON
Switch is now sending the status for the upstairs light
2,07/08/2013 23:52:18,2/2,25,State,18,Unit 018 - Common - Upstairs,,0,,,0
HAI controller runs THEN Kitchn/Famly OFF and sends concurrently the room off link and indicate for the room controller.
1,07/08/2013 23:52:18,2/2,25,Activate,255,,,-2,[multiple receivers],,
1,07/08/2013 23:52:19,4/4,25,Indicate,255,,,-193,,,
HAI controller runs THEN Dining Room OFF and sends the room off link and indicate for the room controller
1,07/08/2013 23:52:20,2/2,25,Activate,255,,,-8,[multiple receivers],,
1,07/08/2013 23:52:21,4/4,25,Indicate,255,,,-194,,,
I removed the additional lines where the HAI controller requests status from the kitchen/family and dining lights. It does not request status from the upstairs switch as it didn't see the 242/241 status link.
 
The collision occurs at 23:52:18 when the switch and controller send at the same time. If I turn off the "report status when rocker pressed" the code works to turn off the lights but the upstairs switch status is wrong in the HAI controller. The controller has no idea the switch was pressed as links 242/241 or the status was not sent.
 
If I change to your D link method how would it work? I remove the receive D link from all switches in the kitchen and dining room. How am I getting the upstairs bottom switch to turn off both downstairs rooms?
 
What is the full text of the indicate lines?
The ones with 193 and 194 in them?
I may be reading the truncated log incorrectly.
That's what I meant by expand, the units it is talking to in those lines is important.

What is your UPB delay set to in the controller?
This is the delay between the links and the indicate requests.

Roger the status of the individual switch is sent by the switch itself. Foggy memory.

The D link should work in the same manner as the room off links so table that for now.
 
rsw686 said:
The 193 and 194 links are sent by the HAI controller to indicate on house status switches as part of the HLC mode.
 
http://kb.homeauto.com/default.asp?id=637&Lang=1&SID=
 
With the log entries truncated, I couldn't tell if they were links 193 and 194 or to units 193 and 194.
Units 193 and 194 are in the same room in the HLC structure, I thought it may be a configuration issue.
 
 
 
What is your UPB delay set to?
 
The UPB status time delay is set to 5 seconds and retransmit is set to 2. Both of those are the defaults. My new idea, which I will test tonight, is to disable the "when rocker pressed send status" on the switch and request status with the HAI controller. I have the top set to transmit status on the default 242 link and the bottom to deactive and active link 225.
 
17.    WHEN UPB LINK 225 OFF
            THEN Kitchn/Famly OFF
            THEN Dining Room OFF
            THEN Common Upstairs REQUEST STATUS
18.    WHEN UPB LINK 225 ON
            THEN Common Upstairs REQUEST STATUS
 
 
I don't see a 5 second delay between the room off commands and the indicate commands in the log.
 
The log should look like this
 
Link 225 OFF (From Unit 18)
Status report Unit 18
Kitchen OFF Link (From the HAI)
Dining Room OFF Link (From the HAI)
(pause)
Indicate
Indicate
 
or this (I can't remember the order exactly) 
 
Link 225 OFF (From Unit 18)
Status report Unit 18
Kitchen OFF Link (From the HAI)
(pause)
Indicate
Dining Room OFF Link (From the HAI)
(pause)
Indicate
 
 
I'm doing something similar in my system and it works fine.
I may have to fire up UPStart and look at the log.
 
Since the lights go off when responding to the link 225, the room OFF commands are purely for housekeeping of the statuses.
You can always add a delay flag in the program, the link starts a flag, when the flag times out it sends the status requests or the room off commands, but that is a bit kludgey.
I prefer to use the built in functionality when I can.
 
The indicate is sent immediately which update the house status switch to show the room is on. Then after 5 seconds, I left this off the above log, it asks each switch in the room for its status. I will post a complete UPB log tonight. I'm hoping my changes will resolve the issue.
 
Aha, It's been awhile since I've looked at a log.
The indicate is for the LED (age  :) ).

I really need to look at my own system/log to refamiliarize myself.
This thread has given me the impetus to fix my bathroom fan status tracking.

As to your original post, I'm still wondering why a collision occurs.
As I understand it, the HAI monitors the UPB bus and waits for a quiet period to transmit it's own traffic.
Hmmmm...

Maybe the delay flag idea isn't so kludgey an idea after all...
 
The collision doesn't always happen. It makes sense though as pressing the switch is asking it to immediately transmit the link and report status. The controller sees the link and immediately runs the commands programmed. Sometimes they are half a second apart and other times they are too close and conflict.
 
It looks like a success after some quick testing. I've attached some screenshots for those who like visuals. I pressed the top rocker, the bottom rocker, then double tapped the bottom rocker.
 

17.    WHEN UPB LINK 225 OFF
            THEN Kitchn/Famly OFF
            THEN Dining Room OFF
            THEN Common Upstairs REQUEST STATUS
18.    WHEN UPB LINK 225 ON
            THEN Common Upstairs REQUEST STATUS
 
switch.PNG
 
upstart.PNG
 
The below screenshot illustrates the collision. From the above working config all I did was check the "report light level after rocker is pressed" box. Notice the the activate link 002 and switch status both are missing. The UPB signal collided and neither were picked up by the PIM.
 
collision.PNG
 
Frederick C. Wilt said:
Does HAI respond to async light level messages? I have a vague memory that it doesn't.
 
What do you mean? Pressing multiple switches at the same time?
 
rsw686 said:
What do you mean? Pressing multiple switches at the same time?
When you configure a UPD device to report its light level. HAI normally (if I remember) requests status of all devices in a room whenever it sees a link for that room activated/deactivated. Since HAI is sending the status requests it is prepared to receive the reply. But when a device sends out its status on its own does HAI handle it correctly or does it ignore it? I don't remember exactly.
 
Back
Top