HomeWorks QSX – Can conditional logic test whether a scene is active?
I’m trying to simplify some HomeWorks QSX programming around occupancy-controlled stairwell lighting, and I’m hoping someone with deeper Designer experience can clarify what’s possible.
Setup:
- Three stairwell sconces across a 3-floor residential stairwell:
- Basement level
- First floor
- Second floor
- All four sconces are controlled together as a single lighting load
- There are 3 occupancy sensors total:
- one occupancy sensor at each stairwell landing/floor
- There is also a keypad at each level of the stairwell, and each keypad has a “Sconces” button
Desired behavior:
- During the “travel lighting” window (30 minutes before sunset until 30 minutes after sunrise):
- occupancy should bring the stairwell sconces to 15%
- Outside that time window:
- occupancy should do nothing
- Pressing any stairwell keypad “Sconces” button should:
- toggle the sconces between Off and 100%
- keep the sconces at 100% until someone presses the button again
- prevent occupancy from pulling the sconces back down to 15% while manually on
The challenge is avoiding fragile state variables.
My original implementation used variables like “Manual Override Active,” but those can get out of sync because loads can be changed elsewhere in the system.
Examples:
- An “All Off” scene
- A Goodnight scene
- A room scene that happens to include the sconces
- A homeowner manually turning loads off from the Lutron app
In those cases, the sconces may physically turn off, but the variables is not getting reset.
For occupancy tracking, each occupancy sensor sets a corresponding variable True when occupied and False when unoccupied. The “all unoccupied” logic checks whether all three occupancy variables are False before turning the sconces off.
So what I’m trying to determine is whether HomeWorks conditional logic can use SCENE STATE directly instead of variables.
Conceptually, I’d like logic like this:
Occupancy:
- If current time is between 30 minutes before sunset and 30 minutes after sunrise
- AND scene “Sconces 100%” is NOT active
- THEN run scene “Sconces 15%”
Vacancy:
- If all three occupancy-state variables are False
- AND scene “Sconces 15%” IS active
- THEN run scene “Sconces Off”
Keypad button:
- If scene “Sconces 100%” IS active
- run “Sconces Off”
- Else
- run “Sconces 100%”
I know keypad LEDs can track whether scenes are active, but I’m unclear whether HomeWorks Designer conditional logic itself can query scene-active state as an IF condition.
Questions:
- Can HomeWorks QSX conditional logic test whether a scene is currently active?
- If so, does that scene state automatically update when another unrelated scene changes the same load levels?
- Is scene-state tracking more reliable than variables for this kind of occupancy/manual override interaction?
- If scene-state logic is NOT possible, what’s the cleanest non-fragile pattern people use for this problem in QSX?
Trying to avoid:
- fragile state variables
- timers that silently expire manual mode
- occupancy getting “stuck disabled”
- occupancy dimming manually selected 100% lighting levels
Would appreciate guidance from anyone who has implemented something similar in HomeWorks QSX.