Hi folks, I've never posted here but have been reading many of the great threads over the last year of so since I "geeked out" on home automation. I have a question and a potential feature request if what I want to do can't already be done. Here goes...
My requirements:
Wireless PIR sensor (2420M) should trigger one or two dimmers to turn on under some conditions (conditions are described below). When in "auto mode", the light(s) turn on upon motion sense and turn off after 30 seconds (off timer program). When "auto mode" is suppressed under certain conditions, the motion scene should not affect the local dimmer(s).
Schedule based "auto mode" conditions:
Morning, set dimmers to 40% upon motion Daytime, don't turn on lights at all upon motion (ideally, remove from the scene which is part of my FEATURE REQUEST) Evening/Early Night, set dimmers to 40% upon motion Late Night, set dimmers to 20% upon motion
Manual override conditions:
If dimmer switch is turned "ON", individual light turns on to preset level (i.e. locally applied level) and stay on for 2 minutes, suppressing auto mode while timer is active If dimmer switch is turned "FAST ON", individual light turns on to 100% and disables auto mode off timers If dimmer switch is turned "OFF", individual light turns off and suppresses auto motion response for 2 minutes If dimmer switch is turned "FAST OFF", individual light turns off and disables auto motion response until auto mode is reset the next day (by another reset program)
I know that this can be done using programs to trigger dimmers to turn on given other programmable conditions, and I have been able to do this with functioning groups of trigger/schedule/action programs. My problem is that I want the lights to respond ASAP upon the motion trigger event. If I use programs to determine what happens when a motion "ON" event is registered (subject to the conditions), I have to wait at least a second for the response to happen because the ISY is actually receiving/processing/sending the Insteon commands. For most of my demands, this is just fine... I can wait the second or so for the lights to turn on. In my hallway, which is very short in length, I can't bear the second's wait for the lights to turn on... I'm already out of the hallway before the lights turn on.
You might then say that I should link the motion sensor to the dimmer(s) so that they turn on immediately when the motion sensor sends the "ON" command. In effect, this would take the ISY out of the action loop and speed things up dramatically. My problem with this is that I don't always want the lights to turn on when motion is sensed. So you might also say that I should set the dusk/dawn threshold to an appropriate level. I have had mixed success with this so I have opted to not use the dusk/dawn (night only) mode of the motion sensor. I'd also like to know about motion during the day for occupancy programs so I always want to get "ON" commands from all of my sensors, so night only mode doesn't work here either.
So I've come up with a hybrid solution that mostly works...
I set it up such that a scene controls the dimmers (responders) when the motion sensor (controller) sends an "ON" signal. The motion controller is set to send only "ON" commands, always, day or night. I use a variable ($sHALLWAY_STATE) to determine which mode I am in:
-1 = Auto mode disabled, dimmers off 0 = Auto mode suppressed for 2 minutes, dimmers off 1 = Schedule based auto mode, Morning/Evening/Early Night => dimmers to 40% upon motion 2 = Schedule based auto mode, Late Night => dimmers to 20% upon motion 3= TBD auto mode --- Reserved for future use (like away-from-home security) 4 = Manual override when local dimmer button is pressed "ON" => turn on to locally applied level (70%) and suppress motion response until 2 minute timer expires (or lights are locally turned off) 5 = Manual override when local dimmer button is pressed "FAST ON" => turn on to 100% and disable motion sense response until reset or turned off locally
I have basically achieved what I want by using the action: "In scene - 'Hall after motion response' set 'Dimmer - Hallway' XX% (on level)" in a few programs that are executed depending upon the change of the state variable "$sHALLWAY_STATE". I change the XX% depending upon the schedule and/or manual override mode as described in the numbered list above.
Like I said, this basically fulfills my requirements because it's fast and the lights turn on to whatever level I want. The problem I have is that my suppression of the motion sensor activation of the scene doesn't always work correctly because I am constantly adjusting the on level of the scene to achieve most of my requirements. Two example problems:
Say I'm set to the LATE NIGHT auto mode (=2) and therefore the 'Hall after motion response' on level is set to 20%. I walk into the hall and the lights turn on to 20% as the motion is sensed. I then turn "ON" the local dimmer switch because I want more light. If I stuck with this, the lights turn on to the locally applied level (70%) but immediately turn down to 20% if I move a muscle because the motion scene takes over. I have dealt with this by creating state (=4), which again uses the "In scene - 'Hall after motion response' set 'Dimmer - Hallway' 70% (on level)", where 70% is equal to the locally applied on level. Ok, works pretty well, but if I turn the lights locally "ON" (not "FAST ON") again it goes to 100% for some reason. I can live with this but it is undesireable.
Now say it's daytime, and I want the lights to only turn on when the local dimmer is turned on, but I still want to get motion "ON" events from the sensor. That puts me in the state (=0), where auto mode is suppressed and I will go to mode 4 or 5 if the local dimmer is turned "ON" or "FAST ON" respectively. This is my biggest problem... given my programming/scene setup, I then set the motion response "In scene - 'Hall after motion response' set 'Dimmer - Hallway' 0% (on level)" to prevent the motion sensor from turning on the lights upon motion during the day. In most circumstances this is fine, but what happens when you actually want to turn the lights on? The dimmer is inextricably tied to the motion sensor because of the 'Hall after motion response' scene, so the lights actually turn off when motion is sensed. See the problem? I want to be able to programatically remove the dimmers from the scene under certain circumstances. I haven't been able to find a solution for this. This leads me to my feature request...
Give us a way to programatically add/remove devices from a scene.
I realize that this would cause a bunch of Insteon traffic, so it probably shouldn't be used all the time, but it would be very, very useful. It is further complicated by the fact that the motion sensors are battery powered and wireless so they can't easily be "spoken to" and therefore we can't easily make/break links. This leads me to the next feature request...
Modify how the "Include battery powered devices when automatically writing changes to your devices" works. I know that the battery powered devices need to be put into linking mode before this feature is really useful, or you could try to trigger a motion so that the device wakes up and "listens" for commands, which is kinda tricky. The modified behavior would be that the ISY would wait until it gets a signal from a motion sensor and THEN start sending the new link updating information, after the battery powered device has awakened. This would basically be equivalent to what we try to do manually by triggering a motion event and quickly pressing the "OK" button on the "Write updates to device". It doesn't always work when I try to do it manually. It would be cool if the ISY could wait until it "knows" that the battery powered device is "awake" and then start sending the commands.
If you're still here reading this, thanks for listening. It took me a while to get this all to work and it's been fun getting here. I'd just love to get it perfect and that's why I'm asking for help and/or new features.
Cheers,
Todd