Changes operator does not always detect change
-
I've had similar problems before, but now this issue has resurfaced. Using build 26011 on Docker.
As I copied one old rule as a "template" for a similar new rule, where I have multiple conditions using changes operator (from any to any, and with delay reset of 900), these conditions do not detect change in attributes. Even if I manually reset the rule, reset delay timers do not restart.
If I do a new rule from scratch, and do not copy/import anything old, the same conditions work properly. Also, if I modify copied rule's conditions (put a random number to "from" & "to" fields), then save, and after that remove those modifications, rule begins to function normally. Just editing e.g. delay reset value does not do any good in this context.
@toggledbits, I can DM logs & related rule files to you, if you just send me instructions.
-
The old rule you are copying is probably where the problem is starting from. Before making any other changes, open the JSON file (in
storage/rules) for that (old) rule and post the lines havingop: "change"in them here. -
The old rule you are copying is probably where the problem is starting from. Before making any other changes, open the JSON file (in
storage/rules) for that (old) rule and post the lines havingop: "change"in them here.@toggledbits here are the lines:
{ "id": "cond267i1qkw", "type": "entity", "data": { "entity": "mqtt>faikin_states", "attribute": "x_mqtt_daikin.comp", "op": "change", "value": [ "", "" ] }, "options": { "holdtime": 900 } }, { "id": "cond267hhvhi", "type": "entity", "data": { "entity": "mqtt>faikin_states", "attribute": "x_mqtt_daikin.consumption", "op": "change", "value": [ "", "" ] }, "options": { "holdtime": 900 } },There's actually a working condition with a change operator in the same rule, and I just realized the issue: the value field includes quotation marks, while the working condition does not.
{ "id": "cond267i2ucd", "type": "entity", "data": { "entity": "mqtt>faikin_states", "attribute": "x_mqtt_daikin.fanfreq", "op": "change", "value": [] }, "options": { "holdtime": 900 } }, -
Yup. That's from an ancient UI bug. If you edit the conditions that have that, it will fix them. I'll add some code to the rule startup check to root them out and fix them as well.









