elcano said:
I think that the problem can be fixed by adding a new functionality to the analog zones definition screen. We need to be able to define test values for an analog input. Just like a typical burglar alarm have 3 test values bands (Open circuit, EOL and short circuit).
Per instace, when defining my the zone for my light sensor I would like to define these test bands:
MIN - 0.5 VOLTS -> A (Sunny)
0.5 - 5 VOLTS -> B (Cloudy)
5 - MAX -> C (Dark)
Then the rule would be much simpler:
WHENEVER Light Level (Zn 14) BECOMES A (Sunny)
THEN ANNOUCE Light Level (Zn 14)
THEN DISPLAY "Sunny^M" IN Area 1 (Area 1) FOR 60 SECONDS, [*] Clears
The flag is not needed, because the rule uses BECOMES, so it will be triggered only once.
It is very interesting on how the
Netiom-xAP solves the same problem. They say:
You can set the hysteresis and “on state” levels for the analogue inputs and counters (driven by the change of state of the digital inputs) to ensure that xAP messages are not issued too frequently (see the screenshot below).
Netiom analog zone definition
It is very similar to my proposal (defining your ON/OFF values), but better yet, they define an update period so that borderline changes are not reported too frequently. Actually, I think that this second part of the solution is just enough.
Even that they also introduce a time element, the trigger is the analog value and the timer is used as a debounce. Assuming that my Update Hysteresis (as Netiom calls it) for Zone 14 is 60 seconds this rule would work perfectly:
WHENEVER Light Level (Zn 14) BECOMES LESS THAN ANALOG VALUE 0.5 VOLTS
THEN ANNOUCE Light Level (Zn 14)
Any other reasonable Update Hysteresis would work.
In summary:
1. Add Update Hysteresis to Analog Zones.
2. Create new set of BECOMES EQUAL, BECOMES GREATER and BECOMES LESS for triggering rules in analog zone.
We love our M1s, but I have seen a log of people complaining about Elk's implementation of analog zone rules. This does not seem too complex and would please all them. :lol: