Help with thermostat/furnace control


#1

1) Give a description of the problem
Problem with ST simulated thermostat controlling my furnace

2) What is the expected behaviour?
Normal control of the furnace based on temp from smart sensor

3) What is happening/not happening?
The smart sensor (xiaomi temp/hum) returns/displays in decimal degrees while the simulated thermostat(ST) displays in whole numbers. I believe the ST simulated T Stat is rounding up the decimal fro the temp sensor. This is causing the simulated T stat to go in and out of heating mode. This causes the furnace to kick on/off repeatedly and in turn throws the furnace out of sync. I tried building a piston to control this, but have had no luck.

4) Post a Green Snapshot of the pistonimage

5) Attach logs after turning logging level to Full
2/15/2020, 12:17:47 AM +606ms
+1ms ╔Received event [Thermostat].thermostatOperatingState = idle with a delay of 59ms
+74ms ║RunTime Analysis CS > 19ms > PS > 5ms > PE > 50ms > CE
+77ms ║Runtime (40534 bytes) successfully initialized in 5ms (v0.3.110.20191009) (74ms)
+78ms ║╔Execution stage started
+94ms ║║Comparison (decimal) 69.0 is_greater_than_or_equal_to (decimal) 69.8 = false (1ms)
+95ms ║║Condition #2 evaluated false (14ms)
+96ms ║║Condition group #1 evaluated false (state did not change) (15ms)
+101ms ║║Comparison (enum) idle changes_to (string) heating = false (1ms)
+102ms ║║Cancelling condition #31’s schedules…
+103ms ║║Condition #31 evaluated false (6ms)
+104ms ║║Cancelling condition #25’s schedules…
+105ms ║║Condition group #25 evaluated false (state changed) (8ms)
+155ms ║║Duration 176291ms for is >= 300000ms threshold = false
+156ms ║║Comparison (enum) idle was (string) heating = false (46ms)
+157ms ║║Condition #34 evaluated false (51ms)
+158ms ║║Condition group #26 evaluated false (state did not change) (52ms)
+160ms ║║Condition group #5 evaluated true (state did not change) (0ms)
+163ms ║║Cancelling statement #16’s schedules…
+164ms ║║Condition group #16 evaluated false (state did not change) (2ms)
+166ms ║║Condition group #19 evaluated true (state did not change) (0ms)
+170ms ║║Condition group #15 evaluated true (state did not change) (0ms)
+171ms ║╚Execution stage complete. (94ms)
+172ms ╚Event processed successfully (172ms)
2/15/2020, 12:17:34 AM +404ms
+2ms ╔Received event [Thermostat].thermostatOperatingState = heating with a delay of 68ms
+10092ms ║RunTime Analysis CS > 20ms > PS > 10019ms > PE > 53ms > CE
+10093ms ║Piston waited at a semaphore for 10014ms
+10095ms ║Runtime (40619 bytes) successfully initialized in 10019ms (v0.3.110.20191009) (10092ms)
+10096ms ║╔Execution stage started
+10115ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (1ms)
+10116ms ║║Condition #2 evaluated false (16ms)
+10117ms ║║Condition group #1 evaluated false (state did not change) (17ms)
+10123ms ║║Comparison (enum) heating changes_to (string) heating = true (1ms)
+10124ms ║║Cancelling condition #31’s schedules…
+10125ms ║║Condition #31 evaluated true (7ms)
+10126ms ║║Cancelling condition #25’s schedules…
+10127ms ║║Condition group #25 evaluated true (state changed) (9ms)
+10129ms ║║Cancelling statement #32’s schedules…
+10136ms ║║Skipped execution of physical command [null].on([]) because it would make no change to the device. (2ms)
+10137ms ║║Executed [Furnace].on (4ms)
+10140ms ║║Condition group #15 evaluated true (state did not change) (0ms)
+10142ms ║╚Execution stage complete. (46ms)
+10143ms ╚Event processed successfully (10143ms)
2/15/2020, 12:17:34 AM +223ms
+2ms ╔Received event [Thermostat].thermostatOperatingState = idle with a delay of 64ms
+88ms ║RunTime Analysis CS > 24ms > PS > 5ms > PE > 59ms > CE
+91ms ║Runtime (40534 bytes) successfully initialized in 5ms (v0.3.110.20191009) (87ms)
+92ms ║╔Execution stage started
+108ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (1ms)
+110ms ║║Condition #2 evaluated false (13ms)
+111ms ║║Condition group #1 evaluated false (state did not change) (15ms)
+116ms ║║Comparison (enum) idle changes_to (string) heating = false (1ms)
+117ms ║║Cancelling condition #31’s schedules…
+118ms ║║Condition #31 evaluated false (6ms)
+119ms ║║Cancelling condition #25’s schedules…
+120ms ║║Condition group #25 evaluated false (state changed) (9ms)
+158ms ║║Duration 177584ms for is >= 300000ms threshold = false
+159ms ║║Comparison (enum) idle was (string) heating = false (33ms)
+160ms ║║Condition #34 evaluated false (39ms)
+161ms ║║Condition group #26 evaluated false (state did not change) (40ms)
+163ms ║║Condition group #5 evaluated true (state did not change) (1ms)
+166ms ║║Cancelling statement #16’s schedules…
+167ms ║║Condition group #16 evaluated false (state did not change) (1ms)
+169ms ║║Condition group #19 evaluated true (state did not change) (1ms)
+172ms ║║Condition group #15 evaluated true (state did not change) (0ms)
+174ms ║╚Execution stage complete. (83ms)
+175ms ╚Event processed successfully (175ms)
2/15/2020, 12:17:19 AM +354ms
+1ms ╔Received event [Thermostat].thermostatOperatingState = heating with a delay of 52ms
+10087ms ║RunTime Analysis CS > 19ms > PS > 10016ms > PE > 52ms > CE
+10087ms ║Piston waited at a semaphore for 10013ms
+10090ms ║Runtime (40619 bytes) successfully initialized in 10016ms (v0.3.110.20191009) (10087ms)
+10091ms ║╔Execution stage started
+10107ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (1ms)
+10108ms ║║Condition #2 evaluated false (14ms)
+10109ms ║║Condition group #1 evaluated false (state did not change) (15ms)
+10114ms ║║Comparison (enum) heating changes_to (string) heating = true (1ms)
+10115ms ║║Cancelling condition #31’s schedules…
+10116ms ║║Condition #31 evaluated true (6ms)
+10117ms ║║Cancelling condition #25’s schedules…
+10118ms ║║Condition group #25 evaluated true (state changed) (8ms)
+10120ms ║║Cancelling statement #32’s schedules…
+10127ms ║║Skipped execution of physical command [null].on([]) because it would make no change to the device. (2ms)
+10128ms ║║Executed [Furnace].on (4ms)
+10131ms ║║Condition group #15 evaluated true (state did not change) (0ms)
+10133ms ║╚Execution stage complete. (43ms)
+10135ms ╚Event processed successfully (10135ms)
2/15/2020, 12:17:19 AM +196ms
+2ms ╔Received event [Thermostat].thermostatOperatingState = idle with a delay of 70ms
+80ms ║RunTime Analysis CS > 21ms > PS > 5ms > PE > 54ms > CE
+83ms ║Runtime (40536 bytes) successfully initialized in 5ms (v0.3.110.20191009) (80ms)
+83ms ║╔Execution stage started
+101ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (1ms)
+102ms ║║Condition #2 evaluated false (15ms)
+103ms ║║Condition group #1 evaluated false (state did not change) (16ms)
+108ms ║║Comparison (enum) idle changes_to (string) heating = false (1ms)
+109ms ║║Condition #31 evaluated false (5ms)
+110ms ║║Condition group #25 evaluated false (state did not change) (6ms)
+232ms ║║Duration 177468ms for is >= 300000ms threshold = false
+232ms ║║Comparison (enum) idle was (string) heating = false (117ms)
+234ms ║║Condition #34 evaluated false (123ms)
+235ms ║║Condition group #26 evaluated false (state did not change) (123ms)
+237ms ║║Condition group #5 evaluated true (state did not change) (1ms)
+240ms ║║Cancelling statement #16’s schedules…
+241ms ║║Condition group #16 evaluated false (state did not change) (2ms)
+243ms ║║Condition group #19 evaluated true (state did not change) (0ms)
+247ms ║║Condition group #15 evaluated true (state did not change) (0ms)
+248ms ║╚Execution stage complete. (165ms)
+249ms ╚Event processed successfully (249ms)
2/15/2020, 12:17:04 AM +299ms
+0ms ╔Received event [Thermostat].thermostatOperatingState = heating with a delay of 47ms
+70ms ║RunTime Analysis CS > 14ms > PS > 6ms > PE > 51ms > CE
+72ms ║Runtime (40537 bytes) successfully initialized in 6ms (v0.3.110.20191009) (71ms)
+73ms ║╔Execution stage started
+90ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (2ms)
+91ms ║║Cancelling condition #2’s schedules…
+92ms ║║Condition #2 evaluated false (15ms)
+93ms ║║Cancelling condition #1’s schedules…
+94ms ║║Condition group #1 evaluated false (state changed) (17ms)
+99ms ║║Comparison (enum) heating changes_to (string) heating = false (1ms)
+100ms ║║Condition #31 evaluated false (5ms)
+101ms ║║Condition group #25 evaluated false (state did not change) (6ms)
+154ms ║║Duration 177502ms for is >= 300000ms threshold = false
+155ms ║║Comparison (enum) heating was (string) heating = false (49ms)
+157ms ║║Condition #34 evaluated false (54ms)
+157ms ║║Condition group #26 evaluated false (state did not change) (55ms)
+160ms ║║Condition group #5 evaluated true (state did not change) (0ms)
+163ms ║║Cancelling statement #16’s schedules…
+164ms ║║Condition group #16 evaluated false (state did not change) (1ms)
+166ms ║║Condition group #19 evaluated true (state did not change) (1ms)
+169ms ║║Condition group #15 evaluated true (state did not change) (0ms)
+171ms ║╚Execution stage complete. (98ms)
+172ms ╚Event processed successfully (173ms)
2/15/2020, 12:17:04 AM +137ms
+0ms ╔Received event [Thermostat].thermostatOperatingState = idle with a delay of 41ms
+68ms ║RunTime Analysis CS > 14ms > PS > 6ms > PE > 49ms > CE
+71ms ║Runtime (40536 bytes) successfully initialized in 6ms (v0.3.110.20191009) (70ms)
+72ms ║╔Execution stage started
+88ms ║║Comparison (decimal) 69.0 is_greater_than_or_equal_to (decimal) 68.8 = true (2ms)
+89ms ║║Cancelling condition #2’s schedules…
+90ms ║║Condition #2 evaluated true (14ms)
+91ms ║║Cancelling condition #1’s schedules…
+92ms ║║Condition group #1 evaluated true (state changed) (17ms)
+94ms ║║Cancelling statement #3’s schedules…
+102ms ║║Skipped execution of physical command [null].setThermostatMode([heat]) because it would make no change to the device. (3ms)
+103ms ║║Executed [Thermostat].setThermostatMode (5ms)
+106ms ║║Condition group #15 evaluated true (state did not change) (1ms)
+108ms ║╚Execution stage complete. (36ms)
+109ms ╚Event processed successfully (109ms)
2/15/2020, 12:16:49 AM +425ms
+1ms ╔Received event [Thermostat].thermostatOperatingState = heating with a delay of 74ms
+79ms ║RunTime Analysis CS > 21ms > PS > 5ms > PE > 53ms > CE
+82ms ║Runtime (40537 bytes) successfully initialized in 5ms (v0.3.110.20191009) (79ms)
+83ms ║╔Execution stage started
+100ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (1ms)
+102ms ║║Cancelling condition #2’s schedules…
+102ms ║║Condition #2 evaluated false (15ms)
+103ms ║║Cancelling condition #1’s schedules…
+104ms ║║Condition group #1 evaluated false (state changed) (17ms)
+109ms ║║Comparison (enum) heating changes_to (string) heating = false (0ms)
+111ms ║║Condition #31 evaluated false (6ms)
+112ms ║║Condition group #25 evaluated false (state did not change) (7ms)
+245ms ║║Duration 177521ms for is >= 300000ms threshold = false
+246ms ║║Comparison (enum) heating was (string) heating = false (129ms)
+248ms ║║Condition #34 evaluated false (134ms)
+249ms ║║Condition group #26 evaluated false (state did not change) (136ms)
+251ms ║║Condition group #5 evaluated true (state did not change) (1ms)
+254ms ║║Cancelling statement #16’s schedules…
+255ms ║║Condition group #16 evaluated false (state did not change) (2ms)
+257ms ║║Condition group #19 evaluated true (state did not change) (0ms)
+260ms ║║Condition group #15 evaluated true (state did not change) (0ms)
+262ms ║╚Execution stage complete. (180ms)
+263ms ╚Event processed successfully (263ms)
2/15/2020, 12:16:49 AM +215ms
+2ms ╔Received event [Thermostat].thermostatOperatingState = idle with a delay of 57ms
+77ms ║RunTime Analysis CS > 19ms > PS > 5ms > PE > 53ms > CE
+79ms ║Runtime (40536 bytes) successfully initialized in 5ms (v0.3.110.20191009) (77ms)
+80ms ║╔Execution stage started
+96ms ║║Comparison (decimal) 69.0 is_greater_than_or_equal_to (decimal) 68.8 = true (1ms)
+97ms ║║Cancelling condition #2’s schedules…
+98ms ║║Condition #2 evaluated true (14ms)
+99ms ║║Cancelling condition #1’s schedules…
+100ms ║║Condition group #1 evaluated true (state changed) (16ms)
+102ms ║║Cancelling statement #3’s schedules…
+109ms ║║Skipped execution of physical command [null].setThermostatMode([heat]) because it would make no change to the device. (3ms)
+110ms ║║Executed [Thermostat].setThermostatMode (4ms)
+113ms ║║Condition group #15 evaluated true (state did not change) (0ms)
+115ms ║╚Execution stage complete. (35ms)
+116ms ╚Event processed successfully (116ms)
2/15/2020, 12:16:34 AM +516ms
+1ms ╔Received event [Thermostat].thermostatOperatingState = heating with a delay of 59ms
+75ms ║RunTime Analysis CS > 21ms > PS > 5ms > PE > 50ms > CE
+77ms ║Runtime (40535 bytes) successfully initialized in 5ms (v0.3.110.20191009) (75ms)
+78ms ║╔Execution stage started
+95ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (1ms)
+97ms ║║Cancelling condition #2’s schedules…
+98ms ║║Condition #2 evaluated false (15ms)
+98ms ║║Cancelling condition #1’s schedules…
+99ms ║║Condition group #1 evaluated false (state changed) (17ms)
+104ms ║║Comparison (enum) heating changes_to (string) heating = false (0ms)
+106ms ║║Cancelling condition #31’s schedules…
+106ms ║║Condition #31 evaluated false (6ms)
+107ms ║║Cancelling condition #25’s schedules…
+108ms ║║Condition group #25 evaluated false (state changed) (8ms)
+148ms ║║Duration 177476ms for is >= 300000ms threshold = false
+149ms ║║Comparison (enum) heating was (string) heating = false (36ms)
+150ms ║║Condition #34 evaluated false (41ms)
+151ms ║║Condition group #26 evaluated false (state did not change) (42ms)
+153ms ║║Condition group #5 evaluated true (state did not change) (0ms)
+156ms ║║Cancelling statement #16’s schedules…
+157ms ║║Condition group #16 evaluated false (state did not change) (2ms)
+159ms ║║Condition group #19 evaluated true (state did not change) (0ms)
+163ms ║║Condition group #15 evaluated true (state did not change) (0ms)
+165ms ║╚Execution stage complete. (86ms)
+166ms ╚Event processed successfully (165ms)
2/15/2020, 12:16:34 AM +230ms
+1ms ╔Received event [Thermostat].thermostatOperatingState = idle with a delay of 54ms
+72ms ║RunTime Analysis CS > 19ms > PS > 5ms > PE > 47ms > CE
+74ms ║Runtime (40534 bytes) successfully initialized in 5ms (v0.3.110.20191009) (72ms)
+75ms ║╔Execution stage started
+91ms ║║Comparison (decimal) 69.0 is_greater_than_or_equal_to (decimal) 68.8 = true (1ms)
+93ms ║║Cancelling condition #2’s schedules…
+94ms ║║Condition #2 evaluated true (14ms)
+95ms ║║Cancelling condition #1’s schedules…
+95ms ║║Condition group #1 evaluated true (state changed) (17ms)
+98ms ║║Cancelling statement #3’s schedules…
+105ms ║║Skipped execution of physical command [null].setThermostatMode([heat]) because it would make no change to the device. (3ms)
+106ms ║║Executed [Thermostat].setThermostatMode (4ms)
+109ms ║║Condition group #15 evaluated true (state did not change) (0ms)
+110ms ║╚Execution stage complete. (36ms)
+111ms ╚Event processed successfully (111ms)
2/15/2020, 12:16:19 AM +321ms
+0ms ╔Received event [Thermostat].thermostatOperatingState = heating with a delay of 44ms
+10080ms ║RunTime Analysis CS > 14ms > PS > 10016ms > PE > 51ms > CE
+10081ms ║Piston waited at a semaphore for 10013ms
+10083ms ║Runtime (40619 bytes) successfully initialized in 10016ms (v0.3.110.20191009) (10082ms)
+10084ms ║╔Execution stage started
+10100ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (1ms)
+10102ms ║║Condition #2 evaluated false (13ms)
+10103ms ║║Condition group #1 evaluated false (state did not change) (14ms)
+10363ms ║║Comparison (enum) heating changes_to (string) heating = true (1ms)
+10365ms ║║Cancelling condition #31’s schedules…
+10367ms ║║Condition #31 evaluated true (262ms)
+10368ms ║║Cancelling condition #25’s schedules…
+10369ms ║║Condition group #25 evaluated true (state changed) (266ms)
+10372ms ║║Cancelling statement #32’s schedules…
+10382ms ║║Skipped execution of physical command [null].on([]) because it would make no change to the device. (2ms)
+10382ms ║║Executed [Furnace].on (5ms)
+10385ms ║║Condition group #15 evaluated true (state did not change) (0ms)
+10387ms ║╚Execution stage complete. (303ms)
+10388ms ╚Event processed successfully (10388ms)
2/15/2020, 12:16:19 AM +188ms
+1ms ╔Received event [Thermostat].thermostatOperatingState = idle with a delay of 51ms
+68ms ║RunTime Analysis CS > 17ms > PS > 3ms > PE > 48ms > CE
+71ms ║Runtime (40536 bytes) successfully initialized in 3ms (v0.3.110.20191009) (68ms)
+72ms ║╔Execution stage started
+88ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (1ms)
+89ms ║║Condition #2 evaluated false (13ms)
+90ms ║║Condition group #1 evaluated false (state did not change) (15ms)
+95ms ║║Comparison (enum) idle changes_to (string) heating = false (0ms)
+97ms ║║Condition #31 evaluated false (5ms)
+98ms ║║Condition group #25 evaluated false (state did not change) (6ms)
+155ms ║║Duration 177481ms for is >= 300000ms threshold = false
+156ms ║║Comparison (enum) idle was (string) heating = false (53ms)
+157ms ║║Condition #34 evaluated false (59ms)
+158ms ║║Condition group #26 evaluated false (state did not change) (60ms)
+160ms ║║Condition group #5 evaluated true (state did not change) (0ms)
+163ms ║║Cancelling statement #16’s schedules…
+164ms ║║Condition group #16 evaluated false (state did not change) (2ms)
+166ms ║║Condition group #19 evaluated true (state did not change) (0ms)
+170ms ║║Condition group #15 evaluated true (state did not change) (1ms)
+171ms ║╚Execution stage complete. (100ms)
+172ms ╚Event processed successfully (172ms)
2/15/2020, 12:16:04 AM +333ms
+1ms ╔Received event [Thermostat].thermostatOperatingState = heating with a delay of 63ms
+89ms ║RunTime Analysis CS > 21ms > PS > 4ms > PE > 64ms > CE
+91ms ║Runtime (40535 bytes) successfully initialized in 4ms (v0.3.110.20191009) (89ms)
+92ms ║╔Execution stage started
+109ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (2ms)
+110ms ║║Cancelling condition #2’s schedules…
+111ms ║║Condition #2 evaluated false (14ms)
+112ms ║║Cancelling condition #1’s schedules…
+113ms ║║Condition group #1 evaluated false (state changed) (17ms)
+118ms ║║Comparison (enum) heating changes_to (string) heating = false (1ms)
+119ms ║║Cancelling condition #31’s schedules…
+120ms ║║Condition #31 evaluated false (6ms)
+121ms ║║Cancelling condition #25’s schedules…
+122ms ║║Condition group #25 evaluated false (state changed) (8ms)
+188ms ║║Duration 177455ms for is >= 300000ms threshold = false
+189ms ║║Comparison (enum) heating was (string) heating = false (62ms)
+191ms ║║Condition #34 evaluated false (67ms)
+192ms ║║Condition group #26 evaluated false (state did not change) (68ms)
+194ms ║║Condition group #5 evaluated true (state did not change) (0ms)
+197ms ║║Cancelling statement #16’s schedules…
+198ms ║║Condition group #16 evaluated false (state did not change) (2ms)
+201ms ║║Condition group #19 evaluated true (state did not change) (1ms)
+204ms ║║Condition group #15 evaluated true (state did not change) (0ms)
+206ms ║╚Execution stage complete. (114ms)
+207ms ╚Event processed successfully (207ms)
2/15/2020, 12:16:04 AM +143ms
+1ms ╔Received event [Thermostat].thermostatOperatingState = idle with a delay of 38ms
+80ms ║RunTime Analysis CS > 24ms > PS > 3ms > PE > 52ms > CE
+82ms ║Runtime (40534 bytes) successfully initialized in 3ms (v0.3.110.20191009) (80ms)
+83ms ║╔Execution stage started
+100ms ║║Comparison (decimal) 69.0 is_greater_than_or_equal_to (decimal) 68.8 = true (2ms)
+101ms ║║Cancelling condition #2’s schedules…
+102ms ║║Condition #2 evaluated true (15ms)
+103ms ║║Cancelling condition #1’s schedules…
+104ms ║║Condition group #1 evaluated true (state changed) (17ms)
+106ms ║║Cancelling statement #3’s schedules…
+113ms ║║Skipped execution of physical command [null].setThermostatMode([heat]) because it would make no change to the device. (3ms)
+114ms ║║Executed [Thermostat].setThermostatMode (5ms)
+117ms ║║Condition group #15 evaluated true (state did not change) (0ms)
+119ms ║╚Execution stage complete. (36ms)
+120ms ╚Event processed successfully (120ms)
2/15/2020, 12:15:49 AM +434ms
+1ms ╔Received event [Thermostat].thermostatOperatingState = heating with a delay of 58ms
+10084ms ║RunTime Analysis CS > 14ms > PS > 10021ms > PE > 49ms > CE
+10085ms ║Piston waited at a semaphore for 10017ms
+10088ms ║Runtime (40619 bytes) successfully initialized in 10021ms (v0.3.110.20191009) (10086ms)
+10088ms ║╔Execution stage started
+10105ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (1ms)
+10106ms ║║Condition #2 evaluated false (14ms)
+10107ms ║║Condition group #1 evaluated false (state did not change) (15ms)
+10112ms ║║Comparison (enum) heating changes_to (string) heating = true (1ms)
+10113ms ║║Cancelling condition #31’s schedules…
+10114ms ║║Condition #31 evaluated true (6ms)
+10115ms ║║Cancelling condition #25’s schedules…
+10116ms ║║Condition group #25 evaluated true (state changed) (8ms)
+10118ms ║║Cancelling statement #32’s schedules…
+10125ms ║║Skipped execution of physical command [null].on([]) because it would make no change to the device. (2ms)
+10126ms ║║Executed [Furnace].on (4ms)
+10128ms ║║Condition group #15 evaluated true (state did not change) (0ms)
+10130ms ║╚Execution stage complete. (42ms)
+10131ms ╚Event processed successfully (10131ms)
2/15/2020, 12:15:49 AM +263ms
+1ms ╔Received event [Thermostat].thermostatOperatingState = idle with a delay of 59ms
+75ms ║RunTime Analysis CS > 19ms > PS > 5ms > PE > 51ms > CE
+77ms ║Runtime (40534 bytes) successfully initialized in 5ms (v0.3.110.20191009) (75ms)
+78ms ║╔Execution stage started
+96ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (1ms)
+98ms ║║Condition #2 evaluated false (15ms)
+99ms ║║Condition group #1 evaluated false (state did not change) (16ms)
+104ms ║║Comparison (enum) idle changes_to (string) heating = false (0ms)
+105ms ║║Cancelling condition #31’s schedules…
+106ms ║║Condition #31 evaluated false (7ms)
+107ms ║║Cancelling condition #25’s schedules…
+108ms ║║Condition group #25 evaluated false (state changed) (8ms)
+145ms ║║Duration 177491ms for is >= 300000ms threshold = false
+146ms ║║Comparison (enum) idle was (string) heating = false (34ms)
+147ms ║║Condition #34 evaluated false (38ms)
+148ms ║║Condition group #26 evaluated false (state did not change) (40ms)
+150ms ║║Condition group #5 evaluated true (state did not change) (0ms)
+153ms ║║Cancelling statement #16’s schedules…
+154ms ║║Condition group #16 evaluated false (state did not change) (2ms)
+157ms ║║Condition group #19 evaluated true (state did not change) (0ms)
+160ms ║║Condition group #15 evaluated true (state did not change) (1ms)
+162ms ║╚Execution stage complete. (83ms)
+163ms ╚Event processed successfully (163ms)
2/15/2020, 12:15:34 AM +346ms
+2ms ╔Received event [Thermostat].thermostatOperatingState = heating with a delay of 93ms
+10118ms ║RunTime Analysis CS > 23ms > PS > 10022ms > PE > 72ms > CE
+10119ms ║Piston waited at a semaphore for 10018ms
+10121ms ║Runtime (40619 bytes) successfully initialized in 10022ms (v0.3.110.20191009) (10118ms)
+10122ms ║╔Execution stage started
+10149ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (1ms)
+10150ms ║║Condition #2 evaluated false (23ms)
+10151ms ║║Condition group #1 evaluated false (state did not change) (24ms)
+10156ms ║║Comparison (enum) heating changes_to (string) heating = true (1ms)
+10157ms ║║Cancelling condition #31’s schedules…
+10158ms ║║Condition #31 evaluated true (6ms)
+10159ms ║║Cancelling condition #25’s schedules…
+10160ms ║║Condition group #25 evaluated true (state changed) (8ms)
+10162ms ║║Cancelling statement #32’s schedules…
+10170ms ║║Skipped execution of physical command [null].on([]) because it would make no change to the device. (2ms)
+10170ms ║║Executed [Furnace].on (4ms)
+10173ms ║║Condition group #15 evaluated true (state did not change) (0ms)
+10175ms ║╚Execution stage complete. (53ms)
+10176ms ╚Event processed successfully (10176ms)
2/15/2020, 12:15:34 AM +163ms
+1ms ╔Received event [Thermostat].thermostatOperatingState = idle with a delay of 63ms
+72ms ║RunTime Analysis CS > 18ms > PS > 5ms > PE > 48ms > CE
+74ms ║Runtime (40534 bytes) successfully initialized in 5ms (v0.3.110.20191009) (72ms)
+75ms ║╔Execution stage started
+93ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (1ms)
+94ms ║║Condition #2 evaluated false (15ms)
+95ms ║║Condition group #1 evaluated false (state did not change) (16ms)
+100ms ║║Comparison (enum) idle changes_to (string) heating = false (0ms)
+102ms ║║Cancelling condition #31’s schedules…
+102ms ║║Condition #31 evaluated false (6ms)
+103ms ║║Cancelling condition #25’s schedules…
+104ms ║║Condition group #25 evaluated false (state changed) (8ms)
+216ms ║║Duration 177376ms for is >= 300000ms threshold = false
+216ms ║║Comparison (enum) idle was (string) heating = false (107ms)
+218ms ║║Condition #34 evaluated false (113ms)
+219ms ║║Condition group #26 evaluated false (state did not change) (114ms)
+221ms ║║Condition group #5 evaluated true (state did not change) (0ms)
+224ms ║║Cancelling statement #16’s schedules…
+225ms ║║Condition group #16 evaluated false (state did not change) (2ms)
+228ms ║║Condition group #19 evaluated true (state did not change) (1ms)
+231ms ║║Condition group #15 evaluated true (state did not change) (0ms)
+233ms ║╚Execution stage complete. (159ms)
+234ms ╚Event processed successfully (234ms)
2/15/2020, 12:15:19 AM +429ms
+2ms ╔Received event [Thermostat].thermostatOperatingState = heating with a delay of 60ms
+9914ms ║RunTime Analysis CS > 17ms > PS > 9846ms > PE > 51ms > CE
+9915ms ║Piston waited at a semaphore for 9842ms
+9918ms ║Runtime (40613 bytes) successfully initialized in 9846ms (v0.3.110.20191009) (9915ms)
+9918ms ║╔Execution stage started
+9935ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (1ms)
+9937ms ║║Condition #2 evaluated false (14ms)
+9937ms ║║Condition group #1 evaluated false (state did not change) (15ms)
+9942ms ║║Comparison (enum) heating changes_to (string) heating = true (0ms)
+9944ms ║║Cancelling condition #31’s schedules…
+9945ms ║║Condition #31 evaluated true (7ms)
+9946ms ║║Cancelling condition #25’s schedules…
+9947ms ║║Condition group #25 evaluated true (state changed) (8ms)
+9948ms ║║Cancelling statement #32’s schedules…
+9956ms ║║Skipped execution of physical command [null].on([]) because it would make no change to the device. (3ms)
+9957ms ║║Executed [Furnace].on (5ms)
+9960ms ║║Condition group #15 evaluated true (state did not change) (0ms)
+9961ms ║╚Execution stage complete. (43ms)
+9962ms ╚Event processed successfully (9962ms)
2/15/2020, 12:15:19 AM +258ms
+2ms ╔Received event [Thermostat].thermostatOperatingState = idle with a delay of 65ms
+80ms ║RunTime Analysis CS > 23ms > PS > 5ms > PE > 52ms > CE
+83ms ║Runtime (40534 bytes) successfully initialized in 5ms (v0.3.110.20191009) (81ms)
+84ms ║╔Execution stage started
+102ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (1ms)
+103ms ║║Condition #2 evaluated false (15ms)
+104ms ║║Condition group #1 evaluated false (state did not change) (16ms)
+109ms ║║Comparison (enum) idle changes_to (string) heating = false (0ms)
+111ms ║║Cancelling condition #31’s schedules…
+112ms ║║Condition #31 evaluated false (6ms)
+113ms ║║Cancelling condition #25’s schedules…
+113ms ║║Condition group #25 evaluated false (state changed) (8ms)
+177ms ║║Duration 177435ms for is >= 300000ms threshold = false
+178ms ║║Comparison (enum) idle was (string) heating = false (60ms)
+180ms ║║Condition #34 evaluated false (65ms)
+180ms ║║Condition group #26 evaluated false (state did not change) (66ms)
+183ms ║║Condition group #5 evaluated true (state did not change) (1ms)
+186ms ║║Cancelling statement #16’s schedules…
+187ms ║║Condition group #16 evaluated false (state did not change) (2ms)
+189ms ║║Condition group #19 evaluated true (state did not change) (0ms)
+192ms ║║Condition group #15 evaluated true (state did not change) (0ms)
+194ms ║╚Execution stage complete. (111ms)
+195ms ╚Event processed successfully (195ms)
2/15/2020, 12:15:04 AM +365ms
+1ms ╔Received event [Thermostat].thermostatOperatingState = heating with a delay of 67ms
+10102ms ║RunTime Analysis CS > 19ms > PS > 10026ms > PE > 56ms > CE
+10103ms ║Piston waited at a semaphore for 10022ms
+10105ms ║Runtime (40619 bytes) successfully initialized in 10026ms (v0.3.110.20191009) (10103ms)
+10106ms ║╔Execution stage started
+10122ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (1ms)
+10124ms ║║Condition #2 evaluated false (13ms)
+10125ms ║║Condition group #1 evaluated false (state did not change) (15ms)
+10130ms ║║Comparison (enum) heating changes_to (string) heating = true (0ms)
+10131ms ║║Cancelling condition #31’s schedules…
+10132ms ║║Condition #31 evaluated true (6ms)
+10133ms ║║Cancelling condition #25’s schedules…
+10134ms ║║Condition group #25 evaluated true (state changed) (9ms)
+10136ms ║║Cancelling statement #32’s schedules…
+10143ms ║║Skipped execution of physical command [null].on([]) because it would make no change to the device. (2ms)
+10144ms ║║Executed [Furnace].on (4ms)
+10147ms ║║Condition group #15 evaluated true (state did not change) (1ms)
+10148ms ║╚Execution stage complete. (43ms)
+10149ms ╚Event processed successfully (10149ms)
2/15/2020, 12:15:04 AM +217ms
+1ms ╔Received event [Thermostat].thermostatOperatingState = idle with a delay of 135ms
+81ms ║RunTime Analysis CS > 22ms > PS > 6ms > PE > 53ms > CE
+83ms ║Runtime (40535 bytes) successfully initialized in 6ms (v0.3.110.20191009) (81ms)
+84ms ║╔Execution stage started
+103ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (1ms)
+104ms ║║Condition #2 evaluated false (16ms)
+105ms ║║Condition group #1 evaluated false (state did not change) (18ms)
+110ms ║║Comparison (enum) idle changes_to (string) heating = false (1ms)
+111ms ║║Cancelling condition #31’s schedules…
+112ms ║║Condition #31 evaluated false (6ms)
+113ms ║║Cancelling condition #25’s schedules…
+114ms ║║Condition group #25 evaluated false (state changed) (8ms)
+173ms ║║Duration 177491ms for is >= 300000ms threshold = false
+173ms ║║Comparison (enum) idle was (string) heating = false (55ms)
+175ms ║║Condition #34 evaluated false (59ms)
+176ms ║║Condition group #26 evaluated false (state did not change) (61ms)
+178ms ║║Condition group #5 evaluated true (state did not change) (1ms)
+181ms ║║Cancelling statement #16’s schedules…
+181ms ║║Condition group #16 evaluated false (state did not change) (1ms)
+184ms ║║Condition group #19 evaluated true (state did not change) (1ms)
+187ms ║║Condition group #15 evaluated true (state did not change) (1ms)
+188ms ║╚Execution stage complete. (104ms)
+189ms ╚Event processed successfully (189ms)
2/15/2020, 12:14:49 AM +318ms
+2ms ╔Received event [Thermostat].thermostatOperatingState = heating with a delay of 64ms
+10148ms ║RunTime Analysis CS > 19ms > PS > 10073ms > PE > 56ms > CE
+10149ms ║Piston waited at a semaphore for 10069ms
+10151ms ║Runtime (40619 bytes) successfully initialized in 10073ms (v0.3.110.20191009) (10149ms)
+10152ms ║╔Execution stage started
+10171ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (1ms)
+10172ms ║║Condition #2 evaluated false (16ms)
+10173ms ║║Condition group #1 evaluated false (state did not change) (17ms)
+10178ms ║║Comparison (enum) heating changes_to (string) heating = true (1ms)
+10180ms ║║Cancelling condition #31’s schedules…
+10180ms ║║Condition #31 evaluated true (6ms)
+10181ms ║║Cancelling condition #25’s schedules…
+10182ms ║║Condition group #25 evaluated true (state changed) (8ms)
+10184ms ║║Cancelling statement #32’s schedules…
+10191ms ║║Skipped execution of physical command [null].on([]) because it would make no change to the device. (2ms)
+10192ms ║║Executed [Furnace].on (4ms)
+10195ms ║║Condition group #15 evaluated true (state did not change) (1ms)
+10197ms ║╚Execution stage complete. (44ms)
+10198ms ╚Event processed successfully (10198ms)
2/15/2020, 12:14:49 AM +144ms
+2ms ╔Received event [Thermostat].thermostatOperatingState = idle with a delay of 60ms
+83ms ║RunTime Analysis CS > 27ms > PS > 5ms > PE > 51ms > CE
+85ms ║Runtime (40534 bytes) successfully initialized in 5ms (v0.3.110.20191009) (83ms)
+86ms ║╔Execution stage started
+104ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (1ms)
+105ms ║║Condition #2 evaluated false (15ms)
+106ms ║║Condition group #1 evaluated false (state did not change) (16ms)
+112ms ║║Comparison (enum) idle changes_to (string) heating = false (0ms)
+113ms ║║Cancelling condition #31’s schedules…
+114ms ║║Condition #31 evaluated false (7ms)
+115ms ║║Cancelling condition #25’s schedules…
+116ms ║║Condition group #25 evaluated false (state changed) (9ms)
+185ms ║║Duration 177362ms for is >= 300000ms threshold = false
+186ms ║║Comparison (enum) idle was (string) heating = false (65ms)
+188ms ║║Condition #34 evaluated false (71ms)
+189ms ║║Condition group #26 evaluated false (state did not change) (73ms)
+192ms ║║Condition group #5 evaluated true (state did not change) (0ms)
+196ms ║║Cancelling statement #16’s schedules…
+197ms ║║Condition group #16 evaluated false (state did not change) (2ms)
+200ms ║║Condition group #19 evaluated true (state did not change) (0ms)
+204ms ║║Condition group #15 evaluated true (state did not change) (0ms)
+207ms ║╚Execution stage complete. (121ms)
+208ms ╚Event processed successfully (208ms)
2/15/2020, 12:14:34 AM +649ms
+1ms ╔Received event [Thermostat].thermostatOperatingState = heating with a delay of 68ms
+9692ms ║RunTime Analysis CS > 24ms > PS > 9611ms > PE > 58ms > CE
+9693ms ║Piston waited at a semaphore for 9606ms
+9695ms ║Runtime (40613 bytes) successfully initialized in 9611ms (v0.3.110.20191009) (9693ms)
+9696ms ║╔Execution stage started
+9713ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (1ms)
+9714ms ║║Condition #2 evaluated false (14ms)
+9715ms ║║Condition group #1 evaluated false (state did not change) (15ms)
+9720ms ║║Comparison (enum) heating changes_to (string) heating = true (1ms)
+9722ms ║║Cancelling condition #31’s schedules…
+9722ms ║║Condition #31 evaluated true (6ms)
+9723ms ║║Cancelling condition #25’s schedules…
+9724ms ║║Condition group #25 evaluated true (state changed) (8ms)
+9726ms ║║Cancelling statement #32’s schedules…
+9734ms ║║Skipped execution of physical command [null].on([]) because it would make no change to the device. (3ms)
+9735ms ║║Executed [Furnace].on (5ms)
+9738ms ║║Condition group #15 evaluated true (state did not change) (1ms)
+9739ms ║╚Execution stage complete. (43ms)
+9740ms ╚Event processed successfully (9740ms)
2/15/2020, 12:14:34 AM +251ms
+1ms ╔Received event [Thermostat].thermostatOperatingState = idle with a delay of 49ms
+77ms ║RunTime Analysis CS > 16ms > PS > 4ms > PE > 57ms > CE
+80ms ║Runtime (40536 bytes) successfully initialized in 4ms (v0.3.110.20191009) (77ms)
+81ms ║╔Execution stage started
+324ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (1ms)
+326ms ║║Condition #2 evaluated false (241ms)
+327ms ║║Condition group #1 evaluated false (state did not change) (242ms)
+333ms ║║Comparison (enum) idle changes_to (string) heating = false (1ms)
+334ms ║║Condition #31 evaluated false (6ms)
+335ms ║║Condition group #25 evaluated false (state did not change) (7ms)
+462ms ║║Duration 177674ms for is >= 300000ms threshold = false
+463ms ║║Comparison (enum) idle was (string) heating = false (122ms)
+465ms ║║Condition #34 evaluated false (127ms)
+465ms ║║Condition group #26 evaluated false (state did not change) (129ms)
+468ms ║║Condition group #5 evaluated true (state did not change) (0ms)
+471ms ║║Cancelling statement #16’s schedules…
+472ms ║║Condition group #16 evaluated false (state did not change) (1ms)
+474ms ║║Condition group #19 evaluated true (state did not change) (1ms)
+477ms ║║Condition group #15 evaluated true (state did not change) (0ms)
+479ms ║╚Execution stage complete. (399ms)
+480ms ╚Event processed successfully (480ms)
2/15/2020, 12:14:19 AM +529ms
+2ms ╔Received event [Thermostat].thermostatOperatingState = heating with a delay of 69ms
+83ms ║RunTime Analysis CS > 19ms > PS > 6ms > PE > 58ms > CE
+86ms ║Runtime (40535 bytes) successfully initialized in 6ms (v0.3.110.20191009) (82ms)
+87ms ║╔Execution stage started
+103ms ║║Comparison (decimal) 68.0 is_greater_than_or_equal_to (decimal) 68.8 = false (1ms)
+105ms ║║Cancelling condition #2’s schedules…
+106ms ║║Condition #2 evaluated false (14ms)
+107ms ║║Cancelling condition #1’s schedules…
+108ms ║║Condition group #1 evaluated false (state changed) (17ms)
+119ms ║║Comparison (enum) heating changes_to (string) heating = false (0ms)
+120ms ║║Cancelling condition #31’s schedules…
+123ms ║║Condition #31 evaluated false (8ms)
+124ms ║║Cancelling condition #25’s schedules…
+125ms ║║Condition group #25 evaluated false (state changed) (11ms)
+172ms ║║Duration 177745ms for is >= 300000ms threshold = false
+173ms ║║Comparison (enum) heating was (string) heating = false (43ms)
+174ms ║║Condition #34 evaluated false (48ms)
+175ms ║║Condition group #26 evaluated false (state did not change) (49ms)
+178ms ║║Condition group #5 evaluated true (state did not change) (1ms)
+181ms ║║Cancelling statement #16’s schedules…
+182ms ║║Condition group #16 evaluated false (state did not change) (2ms)
+185ms ║║Condition group #19 evaluated true (state did not change) (1ms)
+190ms ║║Condition group #15 evaluated true (state did not change) (1ms)
+192ms ║╚Execution stage complete. (106ms)
+193ms ╚Event processed successfully (193ms)
2/15/2020, 12:14:19 AM +234ms
+1ms ╔Received event [Thermostat].thermostatOperatingState = idle with a delay of 57ms
+85ms ║RunTime Analysis CS > 16ms > PS > 5ms > PE > 64ms > CE
+88ms ║Runtime (40534 bytes) successfully initialized in 5ms (v0.3.110.20191009) (86ms)
+89ms ║╔Execution stage started
+106ms ║║Comparison (decimal) 69.0 is_greater_than_or_equal_to (decimal) 68.8 = true (2ms)
+108ms ║║Cancelling condition #2’s schedules…
+108ms ║║Condition #2 evaluated true (15ms)
+109ms ║║Cancelling condition #1’s schedules…
+110ms ║║Condition group #1 evaluated true (state changed) (17ms)
+112ms ║║Cancelling statement #3’s schedules…
+119ms ║║Skipped execution of physical command [null].setThermostatMode([heat]) because it would make no change to the device. (2ms)
+120ms ║║Executed [Thermostat].setThermostatMode (4ms)
+123ms ║║Condition group #15 evaluated true (state did not change) (0ms)
+125ms ║╚Execution stage complete. (37ms)
+126ms ╚Event processed successfully (126ms)
2/15/2020, 12:14:04 AM +316ms


#2

I am struggling to understand your setup, in particular how a Simulated Thermostat fits in to a real world system.

I’ve only looked at the code of the stock Simulated Thermostat and my understanding is that you prime it with a room temperature and it simulates the behaviour of a thermostat, but that includes, for example, simulating the room heating up by about 1 degree every fifteen seconds. So it is an active simulation, for test purposes, of a thermostat working as part of a heating and/or cooling system, whereas you seem to be describing using it as more of a virtual device that just simulates the thermostat logic based on your input.

If you are using the stock handler, could that be the issue?


#3

It is set up as a virtual thermostat. I’m using the stock ST virtual t stat