Controlling HLC lights with motion detectors on Omni Pro 2

chasers03

Active Member
The most convenient feature of my automation system [even more than HVAC, WiFi & security] is the turning on, dimming and turning off of my HLC lighting via motion detectors thruout the house. 
 
Over recent years I have found that the time for the Omni Pro 2 to make light changes per the motions has increased, sometimes taking almost a minute it seems.  Lighting change response to contacts is instantaneous in comparison.
 
Does anyone have ideas on how I can speed up the Omni Pro 2 lighting control response time?
 
Would my dealer settings have any effect on this problem? ie. UPB status time = 3 & UPB transmit count = 3
 
Has anyone ever sort UPB assistance from the Simply Automated folks http://www.simply-automated.com/UPB_Technology.php ?
 
Are you referring to wireless motion sensors vs hardwired contacts?  I see a much longer delay with wireless door/window sensors triggering actions versus hardwired ones.
 
Jon good question I forgot to clarify that my Motions are wired and I am comparing to wired contact sensors like a door.  So it is apples to apples in terms of how the signal is sent but the Motions end up with a significantly longer delay than the wired sensor as far as a response from the Omni Pro II.  I wonder why?
 
For instance I open the door to my shop and lights come on instantly but if I walk in so as to trigger the motion sometimes it takes the lights a much longer time to come on.....Go figure??
 
Most of my lights are turned on by Motions [wired].
 
Do you use any apps that show your Omni state? For example, in Haiku you can see zone status in real time.  It may give you some idea to watch Haiku as you walk in to one of the areas and see when the motion zone triggers.
 
chasers03 said:
The most convenient feature of my automation system [even more than HVAC, WiFi & security] is the turning on, dimming and turning off of my HLC lighting via motion detectors thruout the house. 
 
Over recent years I have found that the time for the Omni Pro 2 to make light changes per the motions has increased, sometimes taking almost a minute it seems.  Lighting change response to contacts is instantaneous in comparison.
 
Does anyone have ideas on how I can speed up the Omni Pro 2 lighting control response time?
 
Would my dealer settings have any effect on this problem? ie. UPB status time = 3 & UPB transmit count = 3
 
Has anyone ever sort UPB assistance from the Simply Automated folks http://www.simply-automated.com/UPB_Technology.php ?
I've done a fair amount of research on this, and even spoke to HAI about this once. 
 
First, I'm guessing that your lines of programming have increased over time.  That is fine, but here is the thing. Programming, if not done a certain way can greatly slow the panel.  Every action has a trigger (or multiple triggers), conditions and then actions.  Your goal is to write your program in such a way to not slow the panel. 
 
So lets look at triggers first.  You want to stay away from triggers that trigger often, like the "every" with a short interval time.  If you have to do a "every 5 seconds" then don't use more than the minimum needed.
 
Next, only triggers really slow the panel, so as a rule try to NEVER use the same trigger twice. Almost all your triggers should be unique.  So how do you do that? Use buttons like macros.  A button can have a condition or more and an action or more.  More triggers equal slower panel. I have totally rewritten my code using unnamed buttons and its like night and day.  If you do this, your programming will also be much more easier to understand as well. And your response will be quick. I use about 700 lines of code and have maybe a 3 or 4 second delay at most.
 
One other possibility is a loop and a programming error. It happens and the panel won't tell you otherwise there is a bug. Like maybe turning on a light turns on a second light, but turning on the second light turns on the first. Another reason to focus on your triggers carefully. 
 
I haven't found conditions to be a problem unless it triggers so often that they are always being tested. You said you have wired motion detectors so they can trigger many times in a minute.  If you have many conditions you can put the condition LEAST likely to be true first.  Once the panel finds a false it stops evaluating.
 
1 minute is not normal and likely indicates something is not optimized. Good luck tracking it down. It can be tricky.
 
Exactly what ano says, that's why I was suggesting checking your motion sensor responses first.  That will rule out a problem with the sensors and you can focus on the programming.
 
Since there are both door and motion sensors wired in the exact same way and the door sensors work just fine, I'm placing bets on this being an issue with the motion sensor itself.  Possibly an anti-falsing or pet immunity logic in the sensor that doesn't trip immediately as it is trying to verify motion.
 
I agree with what JonW said.   Seems like the problem is in the motion detector, as the panel just sees it as another set of contacts.   Most motions have a light that tells when it has sensed motion.  How long after the motion is sensed (indicator light comes on) till your UPB switch is tripped?
 
I would also check to see if you have cross zoning enabled for your motions.     This would require two or more zones to trip before an alarm is activated.   I have never checked to see if cross zoning also impacts non-alarm programmed actions, but could be something else to verify.
 
BTW, great post from ano.  I am going back to check my triggers!
 
You guys all are so kind and have given much to consider. 
 
Ano I think you have hit on the biggest cause of my delay.  My programming I thought was efficient but it is now just under the max at 1440 lines and it has grown considerably in the last two years.  I need to consider a make over of the programming.   What to heck is an "unnamed button"  Ano??  I have 33 named buttons now. 
 
I have had a loop or three over the years however if that happens the panel soon stops working and all freezes up.  I cannot imagine a loop staying alive and not freezing up the panel.
 
I checked the "every"s and only have 4 and they are hourly or greater except for one and it is 5 minutes during two months of the year.
 
Non of my 60 zones including motions are set for cross zoning
 
Will report back
 
"Next, only triggers really slow the panel, so as a rule try to NEVER use the same trigger twice. Almost all your triggers should be unique.  So how do you do that? Use buttons like macros.  A button can have a condition or more and an action or more.  More triggers equal slower panel. I have totally rewritten my code using unnamed buttons and its like night and day.  If you do this, your programming will also be much more easier to understand as well. And your response will be quick. I use about 700 lines of code and have maybe a 3 or 4 second delay at most."
 
So Ano I am trying to replace the following with User button 200, how does that work to include the triggers?  I am confused.
 
 
226.    WHEN Kitchen Motion NOT READY
    WHEN Family Rm Motion NOT READY
    WHEN Great Rm Motion NOT READY
        AND IF Good Morning Flag CURRENT VALUE IS 1
        AND IF TIME IS GREATER THAN 6:45 AM
        AND IF TIME IS LESS THAN 12:01 PM
        AND IF Occupy Flag ON
        AND IF Audio OFF Flag OFF
        AND IF Guests Here Flag OFF
        OR
        AND IF Good Morning Flag CURRENT VALUE IS 1
        AND IF TIME IS GREATER THAN 7:30 AM
        AND IF TIME IS LESS THAN 12:01 PM
        AND IF Occupy Flag ON
        AND IF Audio OFF Flag OFF
        AND IF Guests Here Flag ON
            THEN SAY GOOD MORNING
            THEN SET Good Morning Flag TO 0
            THEN PROGRAM DISARM
            THEN Up Laundry Floor Warmer OFF
            THEN Master Bath Floor Warmer OFF
            THEN Powder Room Floor Warmer OFF
            THEN Guest Bath 1 Floor Warmer OFF
            THEN Guest Bath 2 Floor Warmer OFF
            THEN RUN AUDIO UP BUTTON
            THEN Kitchen AUDIO SOURCE Sonos 1
 
 
Chasers here again.  This is to share what Simply Automated responded with to my original question .  Perhaps a Scene Link and Flags will also improve the Omni's response times?
 
"The best advice I can give you is to contact Leviton to see if they can help.
 
If the Omni panel is set to turn on multiple lights based on one motion sense activation, it may be turning each of them on one at a time (slowly).  If that's the case, using a Scene Link to turn them all on at once, may speed things up. 
 
You might also try using 'flags' in the OMNI panel for the motion sensors in question.  Flags take priority and are processed by the Omni faster.  We have an application note on using flags for status applications which might be of help.  http://www.simply-automated.com/documents/Status%20and%20control%20of%20UPB%20devices%20from%20HAI%20Omni%20Panel.pdf "
 
Ano as I endeavor to follow your guidelines of not repeating the same trigger and using a button with conditions & actions under it for each of the cases a trigger would be repeated I am thinking that my lines of code will not be reduced.  Where am I going off track?
 
IE. Our kitchen motion currently has 6 triggers each with a set of different conditions & actions.  If I create 6 unique buttons [with Conditions & actions to match] and put them under the one kitchen motion trigger won't I end up with as many or more lines of code????
 
Won't each button require a line saying when button 200, if condition A then take action xyz?  Therefore I have 6 more triggers which I thought the goal was to minimize?
 
Help me understand your lines of code reduction technique, please Ano............Steve Chase ,ie. chasers03
 
First your never going to eliminate every trigger, but reduce as many as you can.  

Let me show you how to simplify your action to see if you understand.  

So your action is this:

   WHEN Kitchen Motion NOT READY
    WHEN Family Rm Motion NOT READY
    WHEN Great Rm Motion NOT READY
        AND IF Good Morning Flag CURRENT VALUE IS 1
        AND IF TIME IS GREATER THAN 6:45 AM
        AND IF TIME IS LESS THAN 12:01 PM
        AND IF Occupy Flag ON
        AND IF Audio OFF Flag OFF
        AND IF Guests Here Flag OFF
        OR
        AND IF Good Morning Flag CURRENT VALUE IS 1
        AND IF TIME IS GREATER THAN 7:30 AM
        AND IF TIME IS LESS THAN 12:01 PM
        AND IF Occupy Flag ON
        AND IF Audio OFF Flag OFF
        AND IF Guests Here Flag ON
            THEN SAY GOOD MORNING
            THEN SET Good Morning Flag TO 0
            THEN PROGRAM DISARM
            THEN Up Laundry Floor Warmer OFF
            THEN Master Bath Floor Warmer OFF
            THEN Powder Room Floor Warmer OFF
            THEN Guest Bath 1 Floor Warmer OFF
            THEN Guest Bath 2 Floor Warmer OFF
            THEN RUN AUDIO UP BUTTON
            THEN Kitchen AUDIO SOURCE Sonos 1

Wow that is a biggee.  So lets see what you have three triggers,   WHEN Kitchen Motion NOT READY,
    WHEN Family Rm Motion NOT READY,  WHEN Great Rm Motion NOT READY

Lets start by separating them so they can be used for other actions.  If they ALWAYS perform the exact same tasks, then keep them together, otherwise separate them like I did.

WHEN Kitchen Motion NOT READY
THEN BUTTON 200

WHEN Family Rm Motion NOT READY
THEN BUTTON 200

WHEN Great Rm Motion NOT READY
THEN BUTTON 200

Now in BUTTON 200 test for the common conditions.

WHEN BUTTON 200
        AND IF Good Morning Flag CURRENT VALUE IS 1
        AND IF TIME IS LESS THAN 12:01 PM
        AND IF Occupy Flag ON
        AND IF Audio OFF Flag OFF
THEN BUTTON 201
 
So I removed the two tests that were different before and after the OR, meaning these conditions were common to both.  

WHEN BUTTON 201
        AND IF TIME IS GREATER THAN 6:45 AM
        AND IF Guests Here Flag OFF
        OR
       AND IF TIME IS GREATER THAN 7:30 AM
       AND IF Guests Here Flag ON
THEN BUTTON 202
      
So here are the specialized conditions.  

WHEN BUTTON 202
THEN SAY GOOD MORNING
THEN SET Good Morning Flag TO 0
THEN PROGRAM DISARM
THEN SCENE FLOOR WARMERS OFF   <- This is a SCENE to turn off all floor heats in a single command
THEN RUN AUDIO UP BUTTON
THEN Kitchen AUDIO SOURCE Sonos 1
 
That's it. 

Here if you are using USB or HLC, definitely use scenes to simplify.  Here I created a SCENE to turn off all the floor heaters with a single command. UPB switches typically can perform 16 scenes.

So unless I screwed up, yours and mine both do the same thing.  Which is easier to understand and which is more flexible so the MACROs can be used in other places?  If you want to use the three triggers for other actions, just add more buttons to each.  You can add as many as you want all from one trigger.  
 
You probably COULD simplify your code if you try, but I wanted to show you how to do it EXACTLY with the tests and actions you used.  Even better, some of my button code can likely be called in other parts of your program.  The idea is to create "Buttons" (or in other words macros) that can be called multiple times. With your BIG action NOTHING is REUSABLE.

Hopefully this makes sense.
 
Back
Top