Page 2 of 2
Re: Alarm Issue
Posted: Thu Oct 02, 2014 6:19 pm
by admin
Parser does reduce || to | etc, to make one byte tokens form it. Next update will provide better display.
Re: Alarm Issue
Posted: Thu Oct 02, 2014 9:46 pm
by admin
Please give just released update a try, that should hopefully solve all the issues with expression evaluation. New features are:
- Variables can be used with or without enclosing square brackets. If used without, please make sure there is a blank before and after the variable. Apart from this, there is no need for separating operators etc by blanks.
- Variables can use all defined qualifiers, like "th0temp-act=F.0:0".
- There is no longer a distinction between simple and complex conditions.
- Logical operators in expressions for "and" are "&" or "&&", both have the same meaning, some with "or" which can be "||" or "|".
- The "i" icon shows history of latest evaluation of raise and clear conditions. To get more recent history reload "Push Services" tab by clicking onto the tab and then going back to the "i" icon.
- The "i" icon also lists errors that have occured during condition evaluation.

- alarm2.png (57.29 KiB) Viewed 2947 times
Re: Alarm Issue
Posted: Tue Oct 07, 2014 7:01 am
by LAWx
I am still experiencing issues with multiple alarms raised without the clear condition being met. I've narrowed it down to a case where the clear condition is different than the raise condition.
The following pair of rules works as expected:
Code: Select all
RAISE: (([th0temp-avg5=F.1:999]<=([thb0temp-avg5=F.1:999]-1)) && ([th0temp-avg5=F.1:999]>55)) && (([th0dew-avg5=F.1:999]<=[thb0dew-avg5=F.1:999]) || ([th0dew-avg5=F.1:999]<=40))
CLEAR: ([th0temp-avg5=F.1:999]>([thb0temp-avg5=F.1:999]-1)) || ([th0temp-avg5=F.1:999]<=55.0) || (([th0dew-avg5=F.1:999]>[thb0dew-avg5=F.1:999]) && ([th0dew-avg5=F.1:999]>40.0))
I ran that way for several days. Then I changed the clear condition to:
Code: Select all
([th0temp-avg5=F.1:999]>=[thb0temp-avg5=F.1:999]) || ([th0temp-avg5=F.1:999]<=55.0) || (([th0dew-avg5=F.1:999]>[thb0dew-avg5=F.1:999]) && ([th0dew-avg5=F.1:999]>40.0))
All that changed was requiring outside temperature to be equal to or greater than inside temperature instead of greater than inside temperature - 1°F. And I started getting repeated emails without the clear condition ever being true.
Re: Alarm Issue **solved**
Posted: Tue Oct 07, 2014 5:33 pm
by admin
When you get repeated messages the clear condition must have fired. Otherwise there will only be one message.
Can you please post the "i" icon help text showing the evaluation of your formular?
Re: Alarm Issue **solved**
Posted: Tue Oct 07, 2014 5:55 pm
by LAWx
admin wrote:When you get repeated messages the clear condition must have fired. Otherwise there will only be one message.
Can you please post the "i" icon help text showing the evaluation of your formular?
I know it's not fired because I have another alarm configured to raise when the clear condition is true, and that alarm is never raised. It's difficult to catch the "i" icon in time because I'm not usually sitting next to my PC to capture it when this situation occurs. By the time I get to the PC, turn it on, and log in to Meteobridge, the condition is gone from the "i" icon. A log would help a lot.
What I did notice was that the raise condition seemed to be triggered each time any one of the conditions changed, even if the clear condition hadn't been raised. For example, The following values raised the alarm last night:
Code: Select all
((73.9<=74.9) && (73.9>55)) && ((40.2<=40.2) || (40.2<=40)) at 21:12
((73.8<=74.8) && (73.8>55)) && ((40.2<=40.3) || (40.2<=40)) at 21:13
((73.9<=74.9) && (73.9>55)) && ((39.7<=41.2) || (39.7<=40)) at 21:19
((74.8<=75.8) && (74.8>55)) && ((39.4<=42.1) || (39.4<=40)) at 21:52
((74.9<=75.9) && (74.9>55)) && ((39.4<=42.2) || (39.4<=40)) at 21:59
((75.0<=76.0) && (75.0>55)) && ((37.1<=42.3) || (37.1<=40)) at 22:14
((75.2<=76.2) && (75.2>55)) && ((36.1<=42.6) || (36.1<=40)) at 22:26
While the following was never raised (the same rule as the clear condition for the above rule):
Code: Select all
([th0temp-avg5=F.1:999]>=[thb0temp-avg5=F.1:999]) || ([th0temp-avg5=F.1:999]<=55.0) || (([th0dew-avg5=F.1:999]>[thb0dew-avg5=F.1:999]) && ([th0dew-avg5=F.1:999]>40.0))