Need to monitor my fire alarms. They won´t report as "offline"


#1

1) Give a description of the problem
I have removed the battery from my heiman fire alarm, but it still wont report that it´s offline. The only thing it does is sending battery status every 4 hours (I can adjust report intervall setting)

I would really like to get an alert if the fire alarm does not report battery status within for example 12 hours. The thing is, that I don´t have a clue on how to do this. I cant find a way to say

“if fire alarm not reporting battery status”

Any idea´s? This is a Heiman Z-wave fire alarm bought from aliexpress.

this is the one: Heiman Z-wave smoke detector


#2

You can use the age() function to monitor the reporting time.

Example: age([Front Door Lock:battery]) – this will output the last time the battery reported in milliseconds


#3

Thanks alot!

I´m really terrible at this, and just done a few simple things in webcore before, am I on the right track here you think? I wrote it as a value.

this is the log;

17.4.2018, 21:07:21 +53ms
+0ms ╔Received event [Snippen].test = 1523992041052 with a delay of 0ms
+62ms ║RunTime Analysis CS > 16ms > PS > 35ms > PE > 12ms > CE
+64ms ║Runtime (36194 bytes) successfully initialized in 35ms (v0.3.104.20180323) (63ms)
+65ms ║╔Execution stage started
+73ms ║║Comparison (string) age([Fire Alarm:battery]) is (integer) 3600000 = false (1ms)
+75ms ║║Condition #2 evaluated false (4ms)
+75ms ║║Condition group #1 evaluated false (state did not change) (6ms)
+80ms ║╚Execution stage complete. (15ms)
+81ms ╚Event processed successfully (82ms)


#4

maybe it´s possible to “ping” the fire alarm now and then instead? I think it will response to that, but that´s also something I dont know how to do.


#5

You need to make the comparison ‘is greater than or equal to’ or ‘less than or equal to’ (whichever one you’re wanting to get an alert for) or else it will look for exact match on the age.

Regarding pinging, some devices allow ‘polling’ or ‘refresh’ but I don’t know enough about your device.


#6

thank you very much for the help! I think this would work :smiley:

I will implement a more complex message system as soon as I get more alarms.

I had to change it to an expression. I added the code as a value in the first test.

Here is a picture of the code

here is a cut from the log:

+2ms ╔Received event [Snippen].test = 1524059413624 with a delay of 0ms
+76ms ║RunTime Analysis CS > 16ms > PS > 43ms > PE > 17ms > CE
+80ms ║Runtime (37140 bytes) successfully initialized in 43ms (v0.3.104.20180323) (77ms)
+82ms ║╔Execution stage started
+95ms ║║Comparison (long) 13323644 is_greater_than (integer) 14500000 = false (2ms)
+96ms ║║Condition #2 evaluated false (11ms)
+98ms ║║Condition group #1 evaluated false (state did not change) (13ms)
+100ms ║╚Execution stage complete. (19ms)
+102ms ╚Event processed successfully (102ms)