1) Give a description of the problem
I am having issues with lots of delays and slow responses with Pistons, my guess is that my pistons are designed sub-optimally. I am looking for some advice for a way to speed up my piston response, especially some general guidelines.
Specific example:
I have a set of pistons where I am trying to control a home made alarm system.
Basically, I have a couple of pistons that start warning tones when the alarm is active and one of the contacts open.
If it makes it through the warning time before being deactivated, smarthome monitor is activated, which activates another piston that controls the alarm sounds.
If during anytime, the system is disarmed another piston silences all ongoing sounds.
And finally, I have another piston that watches presence sensors, and sets smarthome alarm state to armed-home, armed-away, and disarmed based on precense senors.
Ultimately, I would really want everything to work fast enough that when I get home, things automatically disarm with any input from me. I am experimenting with the new webCore presence sensor, but in the mean time, I am looking for advice both general and specific to make things work faster/better.
General Questions:
Is it more optimal to set local and global variables to contain device states, and then use those variables in pistons instead of accessing those device states in each piston?
Is it better to have one big piston, or to have smaller pistons that do each piece of the overall function you are looking to build?
Even if a function is used multiple times, would it be better to paste in multiple times in one big piston, or have that one function in an outside piston that is called as needed?
Are waits and delays a big drain on resources vs. scheduling a trigger time?
If I have a piston that is time based, or with a wait, is that slowing down the response of my other pistons?
If I want lots of different things to happen based on one device state, is it better to have 10 pistons that trigger based on that device each with one task or is it better to have 1 piston with all 10 tasks in it?
2) What is the expected behavior?
Minimized processing time and decreased delays from time of triggering to time
3) What is not happening?
Alarm is not disarmed fast enough by automatics to prevent nuisance alarms.
4) Post a Green Snapshot of the piston
I can only post three pictures right now, so here is my main alarm, warning, and alarm sound pistons.
5) Attach any logs
I’m not sure anything is needed here. If I can give a log that will help, please let me know.