Low Level Controller Question
Posted: Thu Jan 13, 2005 6:46 pm
To begin, I’m at work right now, so please excuse any terminology mess-ups I make. I’m not sitting in front of my automation computer.
--Some Background Info About The Problem/Question--
For my setup I have 10 different motion detectors positioned throughout the house. Any individual motion detector (when triggered) will send up to 6 separate Low Level Controller commands to different lights. For example, Motion Detector 10 triggers…
LowLevelController1.CompositeCommand B;9;Bright;31
LowLevelController1.CompositeCommand B;7;Bright;31
LowLevelController1.CompositeCommand B;2;Bright;31
LowLevelController1.CompositeCommand B;8;Bright;31
LowLevelController1.CompositeCommand B;10;Bright;31
…in that order (along with some other commands that don’t matter for this question). If I walk through every room in the house one time the Low Level Controller might receive instructions to send out as many as 60 different commands. That’s a lot of commands!
I understand that in optimal conditions a single X10 command will take at least .5 second to transmit/execute. I can confirm with my setup that directly sending a single command from my computer will generate a response in less than a second from any of my lights (its a town home, and all one phase). I also understand that the CM11A delays after receiving a command (like from a Motion Sensor) before sending the command to the Computer. When a Motion Sensor is triggered I can verify that it takes about 2-5 seconds before the computer receives the command. That’s not very desirable, but I can deal with that.
--The Actual Problem/Question--
Ok, now (finally) for the question. The delay time that I’m having a problem with is in the Low Level Controller. It seems that as instructions are sent to it (by a trigger), the instructions are queued and a command is only executed once every 7-8 seconds until the queue is empty. Is there any way to speed this up? In the situation above, when I walk through the house and (potentially) set off 60 commands it should take from 30 seconds (if they take .5 seconds each to execute) to 60 seconds (if they take 1 seconds to execute). However, with the 7-8 second delay between commands from the Low Level Controller it actually ends up taking about 7 or 8 minutes to execute the entire queue. As you can imagine, the queue builds up much faster than they are executed, and quickly the house is out of control because there is a several hour long queue of commands executing every 7-8 seconds. By this time the house is not responding to anything new that is happening because the commands are just getting added to the end of the queue.
--Possible Solutions--
My temporary fix for this is to put a long delay at the end of each task. For example, a Motion Sensor might trigger Task 1 that turns on a few lights, also triggers a 5 minute Sleep Timer, and then has a 4 minute 40 second delay. This helps because while you are moving around in the room the trigger isn’t constantly being activated and sending the commands over and over again to the Low Level Controller. At most, it only sends the commands every 4 minutes and 40 seconds, with a 20 second buffer to re-trigger the lights before they all turn off. I guess this works (although I've only had about 5 minutes to test this today before I left for work) but there has to be a better way. --A trouble shooting side note to this temporary fix is to mention that I used to have this exact same setup (without the new delay “fix”) when I was using On and Off commands instead of Dim and Bright commands. Even without the new delay “fix”, the computer previously managed to output all the commands just fine. This tells me that I’m not sending out too many commands (because it kept up fine before), but instead that the Low Level Controller is in fact the bottleneck.--
Is it possible to send Bright commands to multiple house codes in one command? It might help to send a single command like…
LowLevelController1.CompositeCommand B;9,7,2,8,10;Bright;31
…I’ve tried this with no luck, but thought maybe someone knew a different formatting that would work. If so, this would reduce the amount of commands sent.
Would it help (or even be possible) to make more than 1 Low Level Controller? Since the 7-8 second delay is the root of the problem, maybe making a separate Low Level Controller to be used with each light would work better? Then the Task would look something like…
LowLevelController9.CompositeCommand B;9;Bright;31
LowLevelController7.CompositeCommand B;7;Bright;31
LowLevelController2.CompositeCommand B;2;Bright;31
LowLevelController8.CompositeCommand B;8;Bright;31
LowLevelController10.CompositeCommand B;10;Bright;31
…would that work? I’m at work right now and haven’t been able to experiment with this yet.
To summarize where I have isolated my delay times to…
Motion Detector to CM11A is .5 to 1 second
CM11A to Computer is 2 to 5 seconds
A single command from the Computer through the CM11A to a light switch is .5 to 1 second
Delay between queue’d commands on the Low Level Controller is 7 to 8 seconds. <== This is what I need to find a solution for.
I’ve only been X10’ing for about a week, so I’m a newbie, but I’m trying to pick it up as fast as possible. There might be something obvious that I'm missing. How would you solve this problem? Any ideas would be a big help.
I’m very impressed with the product so far,
--Jon
--Some Background Info About The Problem/Question--
For my setup I have 10 different motion detectors positioned throughout the house. Any individual motion detector (when triggered) will send up to 6 separate Low Level Controller commands to different lights. For example, Motion Detector 10 triggers…
LowLevelController1.CompositeCommand B;9;Bright;31
LowLevelController1.CompositeCommand B;7;Bright;31
LowLevelController1.CompositeCommand B;2;Bright;31
LowLevelController1.CompositeCommand B;8;Bright;31
LowLevelController1.CompositeCommand B;10;Bright;31
…in that order (along with some other commands that don’t matter for this question). If I walk through every room in the house one time the Low Level Controller might receive instructions to send out as many as 60 different commands. That’s a lot of commands!
I understand that in optimal conditions a single X10 command will take at least .5 second to transmit/execute. I can confirm with my setup that directly sending a single command from my computer will generate a response in less than a second from any of my lights (its a town home, and all one phase). I also understand that the CM11A delays after receiving a command (like from a Motion Sensor) before sending the command to the Computer. When a Motion Sensor is triggered I can verify that it takes about 2-5 seconds before the computer receives the command. That’s not very desirable, but I can deal with that.
--The Actual Problem/Question--
Ok, now (finally) for the question. The delay time that I’m having a problem with is in the Low Level Controller. It seems that as instructions are sent to it (by a trigger), the instructions are queued and a command is only executed once every 7-8 seconds until the queue is empty. Is there any way to speed this up? In the situation above, when I walk through the house and (potentially) set off 60 commands it should take from 30 seconds (if they take .5 seconds each to execute) to 60 seconds (if they take 1 seconds to execute). However, with the 7-8 second delay between commands from the Low Level Controller it actually ends up taking about 7 or 8 minutes to execute the entire queue. As you can imagine, the queue builds up much faster than they are executed, and quickly the house is out of control because there is a several hour long queue of commands executing every 7-8 seconds. By this time the house is not responding to anything new that is happening because the commands are just getting added to the end of the queue.
--Possible Solutions--
My temporary fix for this is to put a long delay at the end of each task. For example, a Motion Sensor might trigger Task 1 that turns on a few lights, also triggers a 5 minute Sleep Timer, and then has a 4 minute 40 second delay. This helps because while you are moving around in the room the trigger isn’t constantly being activated and sending the commands over and over again to the Low Level Controller. At most, it only sends the commands every 4 minutes and 40 seconds, with a 20 second buffer to re-trigger the lights before they all turn off. I guess this works (although I've only had about 5 minutes to test this today before I left for work) but there has to be a better way. --A trouble shooting side note to this temporary fix is to mention that I used to have this exact same setup (without the new delay “fix”) when I was using On and Off commands instead of Dim and Bright commands. Even without the new delay “fix”, the computer previously managed to output all the commands just fine. This tells me that I’m not sending out too many commands (because it kept up fine before), but instead that the Low Level Controller is in fact the bottleneck.--
Is it possible to send Bright commands to multiple house codes in one command? It might help to send a single command like…
LowLevelController1.CompositeCommand B;9,7,2,8,10;Bright;31
…I’ve tried this with no luck, but thought maybe someone knew a different formatting that would work. If so, this would reduce the amount of commands sent.
Would it help (or even be possible) to make more than 1 Low Level Controller? Since the 7-8 second delay is the root of the problem, maybe making a separate Low Level Controller to be used with each light would work better? Then the Task would look something like…
LowLevelController9.CompositeCommand B;9;Bright;31
LowLevelController7.CompositeCommand B;7;Bright;31
LowLevelController2.CompositeCommand B;2;Bright;31
LowLevelController8.CompositeCommand B;8;Bright;31
LowLevelController10.CompositeCommand B;10;Bright;31
…would that work? I’m at work right now and haven’t been able to experiment with this yet.
To summarize where I have isolated my delay times to…
Motion Detector to CM11A is .5 to 1 second
CM11A to Computer is 2 to 5 seconds
A single command from the Computer through the CM11A to a light switch is .5 to 1 second
Delay between queue’d commands on the Low Level Controller is 7 to 8 seconds. <== This is what I need to find a solution for.
I’ve only been X10’ing for about a week, so I’m a newbie, but I’m trying to pick it up as fast as possible. There might be something obvious that I'm missing. How would you solve this problem? Any ideas would be a big help.
I’m very impressed with the product so far,
--Jon