Warning: found nested by restriction trigger comparison type that relies on runtime event tracking, that may cause errors; comparison: changes to num:xx


Not sure when this actually popped up but I am getting this warning error on many of my pistons. Starting to see activity where the piston is no longer firing when historically for the past two years + it was fine. What does this WARNING mean? Just dont understand it.


Many trigger types are tracking, ie the trigger is comparing the current event value to a previous event value. Examples include:

  • changes*, drops*, rises*, remains*, stays*

All of above are comparing the attribute value vs. previous values.

This requires that the trigger comparison is crossed on each execution, so that the old value can be tracked for future runs.

Nesting these beneath restrictions (only when) can cause the trigger to not be evaluated (and therefore not tracked for the future, and therefore cause future comparisons to not be compared to the previous value correctly.)

In your case, the restriction could be part of the if (using AND), you likely can correct this, and ensure the tracking triggers are evaluated on each execution.

In your case because you use tracking triggers multiple times for each device:attribute pair, it could work assuming at least one of the tracking triggers for each pair is executed on each run. I cannot be sure your logic is that way for all cases.



Other options to address may be trigger aggregation:


I appreciate the explanation. Thank you very much!


I just came over from SmartThings and brought my (44) webCoRE pistons. Of those, four had warnings similar to those in this posting when I moved them to Hubitat. The warning messages never appeared in ST and the pistons ran as expected under both ST and Hubitat.

In any case, your explanation and links to references are proving to be very helpful as I rewrite the
four pistons. So, thank you, and thank you to @Levahj for raising the question.