I have close to 80 pistons running for many months without an issue. Since the latest Webcore update, most of them are failing and looking at the logs they are consistently failing on conditions that were working consistently well and suddenly are not.
Events are triggering correctly but the condition that is part of the event is evaluating false. This happens mostly when the trigger is generated by another piston (e.g. programmatically vs. physically). The two distinctions didn’t make much of a difference and all are set as ‘Any’ to catch both programmatic and physical changes.
An example for a conditional failing on a programmatic change of a switch (as said, I have many of these failing spontaneously) - The condition is triggering as Arm stay turns to on by another piston:
Received event [Arm Stay].switch = on with a delay of 86ms
at the same time, the comparison that is that trigger shows as evaluated false which is the oddest thing as the piston fired as a result of turning the switch to on.
The switch is confirmed to be on and the condition evaluates as false.
Comparison (enum) on changes_to (string) on = false (1ms)
This is not a single occurrence. My house is a mess as nothing works as expected and despite triggers firing and pistons waking up, conditions get skipped all over the place. I tried deleting the cache several times. No change. Someone suggested creating a new instance and moving the pistons there but the backup/restore workflow is a one-by-one migration, does not seem to work right and at ~80 pistons is insane to go through.
All this was fine until the recent update - what gives?
Log for programmatic change showing evaluating as false (first) and physical change of same by pushing the button in the SmartThigns app (second):
I8/26/2019, 12:12:18 PM +557ms
+1ms ╔Received event [Arm Stay].switch = on with a delay of 86ms
+132ms ║RunTime Analysis CS > 22ms > PS > 67ms > PE > 42ms > CE
+134ms ║Runtime (44763 bytes) successfully initialized in 67ms (v0.3.10f.20190822) (133ms)
+135ms ║╔Execution stage started
+141ms ║║Comparison (enum) on changes_to (string) on = false (1ms)
+142ms ║║Cancelling condition #153’s schedules…
+143ms ║║Condition #153 evaluated false (4ms)
+144ms ║║Cancelling condition #80’s schedules…
+145ms ║║Condition group #80 evaluated false (state changed) (7ms)
+146ms ║╚Execution stage complete. (11ms)
+147ms ╚Event processed successfully (147ms)
‘Physical Change’
8/26/2019, 12:13:50 PM +821ms
+1ms ╔Received event [Arm Stay].switch = on with a delay of 88ms
+149ms ║RunTime Analysis CS > 21ms > PS > 76ms > PE > 51ms > CE
+151ms ║Runtime (44766 bytes) successfully initialized in 76ms (v0.3.10f.20190822) (149ms)
+152ms ║╔Execution stage started
+158ms ║║Comparison (enum) on changes_to (string) on = true (0ms)
+160ms ║║Cancelling condition #153’s schedules…
+160ms ║║Condition #153 evaluated true (4ms)
+161ms ║║Cancelling condition #80’s schedules…
+162ms ║║Condition group #80 evaluated true (state changed) (7ms)
Any ideas or similar experiences? I find it hard to believe I am the only one experiencing this behavior across a large set of pistons…