Thanks for the additional info @WCmore & @qoheleth .
In my community travels I ran across another interesting question where it was mentioned that you should try to only have one trigger per piston if possible. Between this thread and that thread https://community.webcore.co/t/piston-fails-to-compare-proper-time/12448/6 it sounds like webCoRE functions best with a single task per piston if possible.
That being the case does anyone have a naming convention or other method of keeping track of exactly what this proliferation of pistons do? I’ve started using groups for some high level grouping (like Presence Detection - Release, SLMC - Release, SLMC - Development, etc). SLMC (for those who hate/love acronyms = Security Light Motion Control).
Should I be looking at adding a convention something like this…
SLMC - Front Porch for a specific device
…which then leads me to something like this for the operation…
SLMC - Front Porch Light - Master
SLMC - Front Porch Light - General
SLMC - Front Porch Light - Turn On
SLMC - Front Porch Light- Turn Off
…which then continues on for the the trigger device. or stimulus (or lack of)…
SLMC - Front Porch Light - Turn On - Ring Front Porch Motion Active
SLMC - Front Porch Light - Turn On - Blink East Walkway Camera Active
SLMC - Front Porch Light - Turn Off - Ring Front Porch Motion Inactive
SLMC - Front Porch Light - Turn Off - Blink East Walkway Camera Inactive
…which then leaves me with trigger/stimulus modifiers…
SLMC - Front Porch Light - Ring Front Porch Motion Active - Quiet Hours
SLMC - Front Porch Light - Ring Front Porch Motion Active - Emergency Mode
My inkling is that trigger/stimulus modifiers can stay in the individual and use a if or switch statement to test values and decide on the proper response.
For those (if anyone even really cares) that want to know Emergency Mode forces the front porch light on, changes it to red, then flashes the bulb every 15 seconds, day or night, to help first responders find the right door. I live in an apartment and only my front door has a August Smart Lock that unlocks during Emergency Mode, not the back door.
Quiet mode would be for something like that light shines in the neighbors bedroom window and annoys the. So in the interest of avoiding conflict we agree that the light won’t come on between the hours of midnight and 0500 unless I am coming home or it was manually triggered.
For some reason I’m still struggling with this. I haven’t had this much trouble understanding a programming concept since 1999 when I was trying to understand how to build a collection class in Visual Basic 6.
For those that can’t remember programming in 1999 or didn’t have the dubious honor of coding in VB6, there wasn’t a collection class like there is now. You had to build the collection class using variable properties and collections by hand.