Wouldn't the net effect of that logic be to only send one notification (after the first 25 hour period expired without a heartbeat), but then nothing more after another 25 hours, etc. ? And, also, isn't it dependent on the heartbeat firing at least once to start the 25 hour wait?
I switched to a "two-part" approach. Instead of the two lines above in the "Then" section I'm simply resetting a watchdog variable ($Int_1), and then using another program (Leak Sensor HB Monitor) that has the Run at Startup flag set and runs continuously (incrementing the watchdog variable every hour; if it exceeds 26 send a notification, reset the variable, wait an hour, and start over; otherwise increment the variable, wait an hour, and start over):
Program: Leak Sensor Heartbeat
If
Control 'Leak Sensor-Heartbeat' is switched On
Or Control 'Leak Sensor-Heartbeat' is switched Off
Then
$Int_1 = 0
Else
- No Actions - (To add one, press 'Action')
Program: Leak Sensor HB Monitor
If
$Int_1 > 26
Then
$Int_1 = 0
Send Notification to 'HeartbeatMissing'
Wait 1 hour
Run Program 'Leak Sensor HB Monitor' (If)
Else
$Int_1 += 1
Wait 1 hour
Run Program 'Leak Sensor HB Monitor' (If)