Coordinating multiple lights


#1

1) Give a description of the problem
Lights seem to be flashing erratically, or at least not the way I want them to.

2) What is the expected behaviour?
There are three sets of lights I want come on at the same time, fade from low to high, in three separate colors. An MP3 then plays on my Sonos (THX sound test), then the lights should all fade off and turn off at the same time.

3) What is happening/not happening?
Lights come on randomly/flash, then come up at different rates to full level. The MP3 plays great, then the lights dim randomly, flicker and flash off, or stay on.

**4) Post a Green Snapshot of the piston![image|45x37]

5) Attach logs after turning logging level to Full

|+0ms|╔Received event [Rose Manor].time = 1598283903917 with a delay of -839ms|
| --- | --- |
|+103ms|║RunTime Analysis CS > 18ms > PS > 59ms > PE > 26ms > CE|
|+105ms|║Runtime (40888 bytes) successfully initialized in 59ms (v0.3.110.20191009) (104ms)|
|+106ms|║╔Execution stage started|
|+138ms|║║Executed physical command [Chandelier N].off() (9ms)|
|+139ms|║║Executed [Chandelier N].off (13ms)|
|+152ms|║║Executed physical command [Chandelier SE].off() (9ms)|
|+153ms|║║Executed [Chandelier SE].off (11ms)|
|+165ms|║║Executed physical command [Chandelier SW].off() (9ms)|
|+166ms|║║Executed [Chandelier SW].off (11ms)|
|+178ms|║║Executed physical command [Sofa Sconce N].off() (8ms)|
|+179ms|║║Executed [Sofa Sconce N].off (11ms)|
|+191ms|║║Executed physical command [Sofa Sconce S].off() (8ms)|
|+192ms|║║Executed [Sofa Sconce S].off (10ms)|
|+203ms|║║Executed physical command [TV Sconce N].off() (8ms)|
|+204ms|║║Executed [TV Sconce N].off (9ms)|
|+214ms|║║Executed physical command [TV Sconce S].off() (8ms)|
|+215ms|║║Executed [TV Sconce S].off (10ms)|
|+217ms|║╚Execution stage complete. (111ms)|
|+218ms|╚Event processed successfully (218ms)|
|8/24/2020, 4:45:00 PM +75ms|
|+1ms|╔Received event [Rose Manor].time = 1598283901434 with a delay of -1359ms|
|+186ms|║RunTime Analysis CS > 24ms > PS > 121ms > PE > 41ms > CE|
|+190ms|║Runtime (40891 bytes) successfully initialized in 121ms (v0.3.110.20191009) (188ms)|
|+191ms|║╔Execution stage started|
|+259ms|║║Skipped execution of physical command [Chandelier N].setLevel([100]) because it would make no change to the device. (11ms)|
|+269ms|║║Executed physical command [Chandelier N].setLevel([85], [delay: 500]) (8ms)|
|+278ms|║║Executed physical command [Chandelier N].setLevel([70], [delay: 1000]) (8ms)|
|+285ms|║║Executed physical command [Chandelier N].setLevel([55], [delay: 1500]) (5ms)|
|+294ms|║║Executed physical command [Chandelier N].setLevel([40], [delay: 2000]) (7ms)|
|+302ms|║║Executed physical command [Chandelier N].setLevel([25], [delay: 2500]) (6ms)|
|+309ms|║║Executed physical command [Chandelier N].setLevel([10], [delay: 3000]) (5ms)|
|+317ms|║║Executed physical command [Chandelier N].setLevel([10], [delay: 3099]) (5ms)|
|+318ms|║║Executed virtual command [Chandelier N].fadeLevel (78ms)|
|+346ms|║║Skipped execution of physical command [Chandelier SE].setLevel([100]) because it would make no change to the device. (17ms)|
|+355ms|║║Executed physical command [Chandelier SE].setLevel([85], [delay: 500]) (7ms)|
|+361ms|║║Executed physical command [Chandelier SE].setLevel([70], [delay: 1000]) (4ms)|
|+367ms|║║Executed physical command [Chandelier SE].setLevel([55], [delay: 1500]) (5ms)|
|+373ms|║║Executed physical command [Chandelier SE].setLevel([40], [delay: 2000]) (4ms)|
|+378ms|║║Executed physical command [Chandelier SE].setLevel([25], [delay: 2500]) (5ms)|
|+384ms|║║Executed physical command [Chandelier SE].setLevel([10], [delay: 3000]) (5ms)|
|+389ms|║║Executed physical command [Chandelier SE].setLevel([10], [delay: 3099]) (4ms)|
|+390ms|║║Executed virtual command [Chandelier SE].fadeLevel (68ms)|
|+411ms|║║Skipped execution of physical command [Chandelier SW].setLevel([100]) because it would make no change to the device. (11ms)|
|+419ms|║║Executed physical command [Chandelier SW].setLevel([85], [delay: 500]) (7ms)|
|+426ms|║║Executed physical command [Chandelier SW].setLevel([70], [delay: 1000]) (5ms)|
|+431ms|║║Executed physical command [Chandelier SW].setLevel([55], [delay: 1500]) (4ms)|
|+438ms|║║Executed physical command [Chandelier SW].setLevel([40], [delay: 2000]) (6ms)|
|+443ms|║║Executed physical command [Chandelier SW].setLevel([25], [delay: 2500]) (3ms)|
|+455ms|║║Executed physical command [Chandelier SW].setLevel([10], [delay: 3000]) (11ms)|
|+462ms|║║Executed physical command [Chandelier SW].setLevel([10], [delay: 3099]) (6ms)|
|+463ms|║║Executed virtual command [Chandelier SW].fadeLevel (70ms)|
|+483ms|║║Skipped execution of physical command [Sofa Sconce N].setLevel([100]) because it would make no change to the device. (11ms)|
|+495ms|║║Executed physical command [Sofa Sconce N].setLevel([85], [delay: 500]) (10ms)|
|+499ms|║║Executed physical command [Sofa Sconce N].setLevel([70], [delay: 1000]) (3ms)|
|+506ms|║║Executed physical command [Sofa Sconce N].setLevel([55], [delay: 1500]) (5ms)|
|+514ms|║║Executed physical command [Sofa Sconce N].setLevel([40], [delay: 2000]) (6ms)|
|+521ms|║║Executed physical command [Sofa Sconce N].setLevel([25], [delay: 2500]) (5ms)|
|+527ms|║║Executed physical command [Sofa Sconce N].setLevel([10], [delay: 3000]) (5ms)|
|+534ms|║║Executed physical command [Sofa Sconce N].setLevel([10], [delay: 3099]) (5ms)|
|+535ms|║║Executed virtual command [Sofa Sconce N].fadeLevel (70ms)|
|+556ms|║║Skipped execution of physical command [Sofa Sconce S].setLevel([100]) because it would make no change to the device. (11ms)|
|+563ms|║║Executed physical command [Sofa Sconce S].setLevel([85], [delay: 500]) (6ms)|
|+568ms|║║Executed physical command [Sofa Sconce S].setLevel([70], [delay: 1000]) (4ms)|
|+576ms|║║Executed physical command [Sofa Sconce S].setLevel([55], [delay: 1500]) (7ms)|
|+581ms|║║Executed physical command [Sofa Sconce S].setLevel([40], [delay: 2000]) (4ms)|
|+587ms|║║Executed physical command [Sofa Sconce S].setLevel([25], [delay: 2500]) (4ms)|
|+593ms|║║Executed physical command [Sofa Sconce S].setLevel([10], [delay: 3000]) (5ms)|
|+600ms|║║Executed physical command [Sofa Sconce S].setLevel([10], [delay: 3099]) (5ms)|
|+600ms|║║Executed virtual command [Sofa Sconce S].fadeLevel (62ms)|
|+623ms|║║Skipped execution of physical command [TV Sconce N].setLevel([100]) because it would make no change to the device. (12ms)|
|+631ms|║║Executed physical command [TV Sconce N].setLevel([85], [delay: 500]) (6ms)|
|+638ms|║║Executed physical command [TV Sconce N].setLevel([70], [delay: 1000]) (5ms)|
|+644ms|║║Executed physical command [TV Sconce N].setLevel([55], [delay: 1500]) (4ms)|
|+651ms|║║Executed physical command [TV Sconce N].setLevel([40], [delay: 2000]) (6ms)|
|+658ms|║║Executed physical command [TV Sconce N].setLevel([25], [delay: 2500]) (6ms)|
|+663ms|║║Executed physical command [TV Sconce N].setLevel([10], [delay: 3000]) (4ms)|
|+669ms|║║Executed physical command [TV Sconce N].setLevel([10], [delay: 3099]) (5ms)|
|+671ms|║║Executed virtual command [TV Sconce N].fadeLevel (67ms)|
|+692ms|║║Skipped execution of physical command [TV Sconce S].setLevel([100]) because it would make no change to the device. (11ms)|
|+701ms|║║Executed physical command [TV Sconce S].setLevel([85], [delay: 500]) (7ms)|
|+707ms|║║Executed physical command [TV Sconce S].setLevel([70], [delay: 1000]) (5ms)|
|+715ms|║║Executed physical command [TV Sconce S].setLevel([55], [delay: 1500]) (6ms)|
|+722ms|║║Executed physical command [TV Sconce S].setLevel([40], [delay: 2000]) (5ms)|
|+728ms|║║Executed physical command [TV Sconce S].setLevel([25], [delay: 2500]) (5ms)|
|+734ms|║║Executed physical command [TV Sconce S].setLevel([10], [delay: 3000]) (5ms)|
|+739ms|║║Executed physical command [TV Sconce S].setLevel([10], [delay: 3099]) (4ms)|
|+740ms|║║Executed virtual command [TV Sconce S].fadeLevel (67ms)|
|+741ms|║║Requesting a wake up for Mon, Aug 24 2020 @ 4:45:03 PM BST (in 3.1s)|
|+746ms|║╚Execution stage complete. (555ms)|
|+747ms|║Setting up scheduled job for Mon, Aug 24 2020 @ 4:45:03 PM BST (in 3.095s)|
|+755ms|╚Event processed successfully (754ms)|
|8/24/2020, 4:44:53 PM +75ms|
|+0ms|╔Received event [Rose Manor].time = 1598283894088 with a delay of -1014ms|
|+149ms|║RunTime Analysis CS > 25ms > PS > 98ms > PE > 27ms > CE|
|+151ms|║Runtime (40889 bytes) successfully initialized in 98ms (v0.3.110.20191009) (150ms)|
|+152ms|║╔Execution stage started|
|+164ms|║║Fast executing schedules, waiting for 1110ms to sync up|
|+1352ms|║║Fast executing schedules, waiting for 80ms to sync up|
|+1448ms|║╚Execution stage complete. (1296ms)|
|+1449ms|║Setting up scheduled job for Mon, Aug 24 2020 @ 4:45:01 PM BST (in 6.91s)|
|+1456ms|╚Event processed successfully (1456ms)|
|8/24/2020, 4:44:46 PM +660ms|
|+0ms|╔Received event [Rose Manor].test = 1598283886659 with a delay of 0ms|
|+117ms|║RunTime Analysis CS > 20ms > PS > 74ms > PE > 24ms > CE|
|+120ms|║Runtime (40885 bytes) successfully initialized in 74ms (v0.3.110.20191009) (118ms)|
|+120ms|║╔Execution stage started|
|+128ms|║║Comparison (string) null executes (dynamic) null = true (1ms)|
|+129ms|║║Condition #2 evaluated true (4ms)|
|+130ms|║║Condition group #1 evaluated true (state did not change) (6ms)|
|+132ms|║║Cancelling statement #3's schedules...|
|+167ms|║║Executed virtual command setLocationMode (30ms)|
|+170ms|║║Cancelling statement #9's schedules...|
|+190ms|║║Executed physical command [TV Sconce N].setColor([[hex: #8A2BE2, hue:75, saturation:76, level:53]]) (9ms)|
|+191ms|║║Executed [TV Sconce N].setColor (16ms)|
|+201ms|║║Executed physical command [TV Sconce S].setColor([[hex: #8A2BE2, hue:75, saturation:76, level:53]]) (7ms)|
|+202ms|║║Executed [TV Sconce S].setColor (9ms)|
|+219ms|║║Executed physical command [TV Sconce N].setLevel([5]) (10ms)|
|+224ms|║║Executed physical command [TV Sconce N].setLevel([19], [delay: 1000]) (4ms)|
|+231ms|║║Executed physical command [TV Sconce N].setLevel([32], [delay: 2000]) (5ms)|
|+237ms|║║Executed physical command [TV Sconce N].setLevel([46], [delay: 3000]) (5ms)|
|+243ms|║║Executed physical command [TV Sconce N].setLevel([59], [delay: 4000]) (5ms)|
|+249ms|║║Executed physical command [TV Sconce N].setLevel([73], [delay: 5000]) (4ms)|
|+254ms|║║Executed physical command [TV Sconce N].setLevel([86], [delay: 6000]) (4ms)|
|+261ms|║║Executed physical command [TV Sconce N].setLevel([100], [delay: 7000]) (6ms)|
|+268ms|║║Executed physical command [TV Sconce N].setLevel([100], [delay: 7099]) (5ms)|
|+268ms|║║Executed virtual command [TV Sconce N].fadeLevel (61ms)|
|+280ms|║║Executed physical command [TV Sconce S].setLevel([5]) (9ms)|
|+286ms|║║Executed physical command [TV Sconce S].setLevel([19], [delay: 1000]) (4ms)|
|+291ms|║║Executed physical command [TV Sconce S].setLevel([32], [delay: 2000]) (3ms)|
|+295ms|║║Executed physical command [TV Sconce S].setLevel([46], [delay: 3000]) (3ms)|
|+301ms|║║Executed physical command [TV Sconce S].setLevel([59], [delay: 4000]) (4ms)|
|+308ms|║║Executed physical command [TV Sconce S].setLevel([73], [delay: 5000]) (6ms)|
|+314ms|║║Executed physical command [TV Sconce S].setLevel([86], [delay: 6000]) (5ms)|
|+321ms|║║Executed physical command [TV Sconce S].setLevel([100], [delay: 7000]) (5ms)|
|+325ms|║║Executed physical command [TV Sconce S].setLevel([100], [delay: 7099]) (4ms)|
|+326ms|║║Executed virtual command [TV Sconce S].fadeLevel (57ms)|
|+328ms|║║Requesting a wake up for Mon, Aug 24 2020 @ 4:44:54 PM BST (in 7.1s)|
|+337ms|║║Cancelling statement #23's schedules...|
|+350ms|║║Executed physical command [Chandelier N].setColor([[hex: #7FFF00, hue:25, saturation:100, level:50]]) (6ms)|
|+351ms|║║Executed [Chandelier N].setColor (10ms)|
|+363ms|║║Executed physical command [Chandelier SE].setColor([[hex: #7FFF00, hue:25, saturation:100, level:50]]) (6ms)|
|+364ms|║║Executed [Chandelier SE].setColor (9ms)|
|+374ms|║║Executed physical command [Chandelier SW].setColor([[hex: #7FFF00, hue:25, saturation:100, level:50]]) (7ms)|
|+375ms|║║Executed [Chandelier SW].setColor (8ms)|
|+390ms|║║Executed physical command [Chandelier N].setLevel([0]) (8ms)|
|+416ms|║║Executed physical command [Chandelier N].setLevel([14], [delay: 1000]) (25ms)|
|+423ms|║║Executed physical command [Chandelier N].setLevel([29], [delay: 2000]) (6ms)|
|+430ms|║║Executed physical command [Chandelier N].setLevel([43], [delay: 3000]) (6ms)|
|+436ms|║║Executed physical command [Chandelier N].setLevel([57], [delay: 4000]) (5ms)|
|+442ms|║║Executed physical command [Chandelier N].setLevel([71], [delay: 5000]) (5ms)|
|+449ms|║║Executed physical command [Chandelier N].setLevel([86], [delay: 6000]) (5ms)|
|+455ms|║║Executed physical command [Chandelier N].setLevel([100], [delay: 7000]) (6ms)|
|+460ms|║║Executed physical command [Chandelier N].setLevel([100], [delay: 7099]) (4ms)|
|+461ms|║║Executed virtual command [Chandelier N].fadeLevel (81ms)|
|+473ms|║║Executed physical command [Chandelier SE].setLevel([0]) (10ms)|
|+480ms|║║Executed physical command [Chandelier SE].setLevel([14], [delay: 1000]) (6ms)|
|+486ms|║║Executed physical command [Chandelier SE].setLevel([29], [delay: 2000]) (4ms)|
|+493ms|║║Executed physical command [Chandelier SE].setLevel([43], [delay: 3000]) (6ms)|
|+499ms|║║Executed physical command [Chandelier SE].setLevel([57], [delay: 4000]) (4ms)|
|+509ms|║║Executed physical command [Chandelier SE].setLevel([71], [delay: 5000]) (9ms)|
|+514ms|║║Executed physical command [Chandelier SE].setLevel([86], [delay: 6000]) (4ms)|
|+520ms|║║Executed physical command [Chandelier SE].setLevel([100], [delay: 7000]) (4ms)|
|+525ms|║║Executed physical command [Chandelier SE].setLevel([100], [delay: 7099]) (4ms)|
|+526ms|║║Executed virtual command [Chandelier SE].fadeLevel (64ms)|
|+538ms|║║Executed physical command [Chandelier SW].setLevel([0]) (9ms)|
|+545ms|║║Executed physical command [Chandelier SW].setLevel([14], [delay: 1000]) (6ms)|
|+551ms|║║Executed physical command [Chandelier SW].setLevel([29], [delay: 2000]) (5ms)|
|+556ms|║║Executed physical command [Chandelier SW].setLevel([43], [delay: 3000]) (4ms)|
|+562ms|║║Executed physical command [Chandelier SW].setLevel([57], [delay: 4000]) (5ms)|
|+567ms|║║Executed physical command [Chandelier SW].setLevel([71], [delay: 5000]) (4ms)|
|+572ms|║║Executed physical command [Chandelier SW].setLevel([86], [delay: 6000]) (4ms)|
|+579ms|║║Executed physical command [Chandelier SW].setLevel([100], [delay: 7000]) (6ms)|
|+586ms|║║Executed physical command [Chandelier SW].setLevel([100], [delay: 7099]) (6ms)|
|+587ms|║║Executed virtual command [Chandelier SW].fadeLevel (60ms)|
|+588ms|║║Requesting a wake up for Mon, Aug 24 2020 @ 4:44:54 PM BST (in 7.1s)|
|+593ms|║║Cancelling statement #26's schedules...|
|+605ms|║║Executed physical command [Sofa Sconce N].setColor([[hex: #0000FF, hue:67, saturation:100, level:50]]) (6ms)|
|+606ms|║║Executed [Sofa Sconce N].setColor (8ms)|
|+616ms|║║Executed physical command [Sofa Sconce S].setColor([[hex: #0000FF, hue:67, saturation:100, level:50]]) (7ms)|
|+617ms|║║Executed [Sofa Sconce S].setColor (8ms)|
|+632ms|║║Executed physical command [Sofa Sconce N].setLevel([0]) (9ms)|
|+639ms|║║Executed physical command [Sofa Sconce N].setLevel([14], [delay: 1000]) (5ms)|
|+645ms|║║Executed physical command [Sofa Sconce N].setLevel([29], [delay: 2000]) (4ms)|
|+652ms|║║Executed physical command [Sofa Sconce N].setLevel([43], [delay: 3000]) (5ms)|
|+658ms|║║Executed physical command [Sofa Sconce N].setLevel([57], [delay: 4000]) (5ms)|
|+664ms|║║Executed physical command [Sofa Sconce N].setLevel([71], [delay: 5000]) (5ms)|
|+669ms|║║Executed physical command [Sofa Sconce N].setLevel([86], [delay: 6000]) (4ms)|
|+675ms|║║Executed physical command [Sofa Sconce N].setLevel([100], [delay: 7000]) (4ms)|
|+681ms|║║Executed physical command [Sofa Sconce N].setLevel([100], [delay: 7099]) (5ms)|
|+682ms|║║Executed virtual command [Sofa Sconce N].fadeLevel (60ms)|
|+694ms|║║Executed physical command [Sofa Sconce S].setLevel([0]) (9ms)|
|+701ms|║║Executed physical command [Sofa Sconce S].setLevel([14], [delay: 1000]) (5ms)|
|+706ms|║║Executed physical command [Sofa Sconce S].setLevel([29], [delay: 2000]) (3ms)|
|+712ms|║║Executed physical command [Sofa Sconce S].setLevel([43], [delay: 3000]) (5ms)|
|+717ms|║║Executed physical command [Sofa Sconce S].setLevel([57], [delay: 4000]) (4ms)|
|+724ms|║║Executed physical command [Sofa Sconce S].setLevel([71], [delay: 5000]) (6ms)|
|+731ms|║║Executed physical command [Sofa Sconce S].setLevel([86], [delay: 6000]) (6ms)|
|+737ms|║║Executed physical command [Sofa Sconce S].setLevel([100], [delay: 7000]) (5ms)|
|+744ms|║║Executed physical command [Sofa Sconce S].setLevel([100], [delay: 7099]) (5ms)|
|+744ms|║║Executed virtual command [Sofa Sconce S].fadeLevel (61ms)|
|+746ms|║║Requesting a wake up for Mon, Aug 24 2020 @ 4:44:54 PM BST (in 7.1s)|
|+750ms|║║Cancelling statement #21's schedules...|
|+764ms|║║Executed physical command [Living Room Sono].playTrack([https://drive.google.com/uc?export=download&id=1U1cllRX6dM8hbkSfhcx6siqOs_6YzAGd]) (8ms)|
|+765ms|║║Executed [Living Room Sono].playTrack (10ms)|
|+767ms|║║Cancelling statement #13's schedules...|
|+772ms|║║Executed virtual command [Chandelier N, Chandelier SE, Chandelier SW, Sofa Sconce N, Sofa Sconce S, TV Sconce N, TV Sconce S].wait (0ms)|
|+774ms|║║Requesting a wake up for Mon, Aug 24 2020 @ 4:45:01 PM BST (in 14.0s)|
|+786ms|║╚Execution stage complete. (666ms)|
|+794ms|║Setting up scheduled job for Mon, Aug 24 2020 @ 4:44:54 PM BST (in 6.635s), with 3 more jobs pending|
|+801ms|╚Event processed successfully (800ms)|

Clear

Full

#2

A few observations:

(1) There is no such thing as ASYNC in SmartThings. Everything happens one step at a time.

(2) A “Fade” command is actually many commands sent back to back

(3) Currently, 7 devices are trying to send 120+ commands in 10 seconds!!
(you are spamming your SmartHome)

Essentially, the more device you try to fade at once, the more “choppy” the results.
(I tend to avoid using “Fade”, and use “Set level to 100%” instead)


#3

@WCmore, I’ve been reading up on your responses to other folks on similar subjects, I appreciate you weighing in.

Copy all, I was afraid that would be the case. Honestly, I’m a little disappointed that SmartThings can’t handle it. To me this seems like a relatively simple program. Apart from getting rid of “Fade” (which is a bummer, cause I wanted to create a dimming effect) what are some other things I can do to lean down the program and make it easier for ST?

I was hoping to do something even more elaborate for Halloween. Instead of routing through ST, would it be possible/more efficient to get webcore to talk to Philips Hue or Lifx?


#4

My apologies… There is no simple answer for this.


This should be totally possible… I would recommend single triggers, with quick & concise commands… Avoiding fades… and (generally speaking), limit commands to 2-3 per second, at most.


I don’t have one in the shop to test, but if memory serves me right, webCoRE can pass a single command to LIFX, and then LIFX can take care of the spam.

Hopefully, a LIFX user can elaborate on this a bit.