Piston to open multiple shades at a given time every day


#1

1) Give a description of the problem
Trying to create a piston to open several shades to there preset position at the same time every day)

2) What is the expected behavior?
(All shades listed will open to preset at the given time the piston is to trigger and open at the preset position

3) What is happening/not happening?
Only the Family Room Left Shade is opening on this piston, the Center and Right are not. When I change to just list one of those shades, the piston executes successfully.)

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

5) Attach any logs (From ST IDE and by turning logging level to Full)
(PASTE YOUR LOGS HERE BETWEEN THE MARKS THEN HIGHLIGHT ALL OF THE LOGS SND CLICK ON THE </> ICON TO FORMAT THEM)

7/9/2018, 8:33:05 PM +524ms
+1ms ╔Received event [Home].test = 1531186385523 with a delay of 0ms
+140ms ║RunTime Analysis CS > 16ms > PS > 111ms > PE > 13ms > CE
+143ms ║Runtime (36695 bytes) successfully initialized in 111ms (v0.3.105.20180628) (142ms)
+144ms ║╔Execution stage started
+151ms ║║Condition group #1 evaluated true (state did not change) (0ms)
+153ms ║║Cancelling statement #2’s schedules…
+323ms ║║Executed physical command [Family Room Left Shade].presetPosition() (164ms)
+324ms ║║Executed [Family Room Left Shade].presetPosition (169ms)
+327ms ║║Cancelling statement #4’s schedules…
+335ms ║║Skipped execution of physical command [Family Room Center Shade].presetPosition([]) because it would make no change to the device. (3ms)
+336ms ║║Executed [Family Room Center Shade].presetPosition (5ms)
+338ms ║║Cancelling statement #6’s schedules…
+344ms ║║Skipped execution of physical command [Family Room Right Shade].presetPosition([]) because it would make no change to the device. (2ms)
+345ms ║║Executed [Family Room Right Shade].presetPosition (4ms)
+347ms ║╚Execution stage complete. (203ms)
+349ms ╚Event processed successfully (350ms)

REMOVE BELOW AFTER READING


#2

If
time happens at (whatever time you want)
then
with Dimmer 5, Dimmer 3 and Dimmer 6
do
move to preset condition (I hope that is the correct command - I just used what you had)

or if you like them separate as you have - just move the two bottom with commands inside the IF block you have at the top, right now they are outside IF block and will not be triggered. But add your set time for the IF


#3

I modified the piston back to what you recommended, but get the same issue. Piston below:

Here is the full piston trace:

7/9/2018, 8:44:53 PM +305ms
+0ms ╔Received event [Home].test = 1531187093304 with a delay of 0ms
+177ms ║RunTime Analysis CS > 16ms > PS > 141ms > PE > 20ms > CE
+180ms ║Runtime (36532 bytes) successfully initialized in 141ms (v0.3.105.20180628) (179ms)
+181ms ║╔Execution stage started
+186ms ║║Condition group #1 evaluated true (state did not change) (1ms)
+189ms ║║Cancelling statement #2’s schedules…
+200ms ║║Skipped execution of physical command [Family Room Center Shade].presetPosition([]) because it would make no change to the device. (4ms)
+201ms ║║Executed [Family Room Center Shade].presetPosition (8ms)
+365ms ║║Executed physical command [Family Room Left Shade].presetPosition() (162ms)
+366ms ║║Executed [Family Room Left Shade].presetPosition (163ms)
+509ms ║║Skipped execution of physical command [Family Room Right Shade].presetPosition([]) because it would make no change to the device. (140ms)
+510ms ║║Executed [Family Room Right Shade].presetPosition (142ms)
+512ms ║╚Execution stage complete. (331ms)
+514ms ╚Event processed successfully (513ms)

Could this be because it is trying to execute the zwave commands to quickly and therefore the ZRTSI II might not respond? How do I put a delay between each action to therefore trigger each shade with a delay of lets say 1 sec between each.

Thanks


#4

what happens if you use set level instead of move to preset?


#5

I changed to set level of 50, and the same condition. only the left shade happens. I know I have have good connectivity as I can control all of the blinds listed individually with no issues. here is the webcore logs:

7/9/2018, 8:58:04 PM +580ms
+3ms ╔Received event [Home].test = 1531187884578 with a delay of 0ms
+144ms ║RunTime Analysis CS > 22ms > PS > 101ms > PE > 20ms > CE
+149ms ║Runtime (36669 bytes) successfully initialized in 101ms (v0.3.105.20180628) (145ms)
+153ms ║╔Execution stage started
+158ms ║║Condition group #1 evaluated true (state did not change) (1ms)
+160ms ║║Cancelling statement #2’s schedules…
+176ms ║║Skipped execution of physical command [Family Room Center Shade].setLevel([50]) because it would make no change to the device. (7ms)
+178ms ║║Executed [Family Room Center Shade].setLevel (13ms)
+243ms ║║Executed physical command [Family Room Left Shade].setLevel([50]) (63ms)
+244ms ║║Executed [Family Room Left Shade].setLevel (64ms)
+251ms ║║Skipped execution of physical command [Family Room Right Shade].setLevel([50]) because it would make no change to the device. (5ms)
+252ms ║║Executed [Family Room Right Shade].setLevel (5ms)
+254ms ║╚Execution stage complete. (104ms)
+258ms ╚Event processed successfully (259ms)


#6

Is there any further help you can provide for this issue we worked? Thanks in advance.


#7

My only thought for something to try. Install Trend setter in ST and group together your shades and see if that app controls them together. if that works, you can add that created group to webcore and use that group in your piston. Unless someone else has a better solution.


choose the dimmer option and then select your shades

might be better to use this app…


#8

When I read your first post:

That tells me the command is good, but not the structure.
I would likely suggest what @jkp did in the 2nd post.
(well, he made two suggestions there, but only one was tested)

Here is what I would try:

temp

(Notice all the devices are aligned inside the THEN section)

If this test also fails, I may even try a 1 or 2 second delay between each command. I have seen some Device Handlers that do not handle rapid commands smoothly.

Wait commands can be added by clicking on ‘+ add new task’ then click the blue drop down and look for the Wait command.


If these tests are only successful on the first device listed, then the clue may lie here:

Skipped execution of physical command [Family Room Right Shade].presetPosition([]) because it would make no change to the device.

We may have to disable Command Optimizations, but lets try the suggestions above first.


#9

I made the necessary changes an included a “Wait” interval for each action, but results are still the same. See Below Piston as well as Event Log:

7/11/2018, 12:56:00 PM +62ms
+0ms ╔Received event [Home].test = 1531335360062 with a delay of 0ms
+132ms ║RunTime Analysis CS > 14ms > PS > 96ms > PE > 21ms > CE
+134ms ║Runtime (36951 bytes) successfully initialized in 96ms (v0.3.105.20180628) (133ms)
+135ms ║╔Execution stage started
+140ms ║║Condition group #1 evaluated true (state did not change) (0ms)
+143ms ║║Cancelling statement #2’s schedules…
+236ms ║║Executed physical command [Family Room Left Shade].presetPosition() (85ms)
+237ms ║║Executed [Family Room Left Shade].presetPosition (90ms)
+243ms ║║Executed virtual command [Family Room Left Shade].wait (3ms)
+245ms ║║Waiting for 1000ms
+1248ms ║║Cancelling statement #6’s schedules…
+1313ms ║║Executed physical command [Family Room Center Shade].presetPosition() (61ms)
+1314ms ║║Executed [Family Room Center Shade].presetPosition (63ms)
+1318ms ║║Executed virtual command [Family Room Center Shade].wait (1ms)
+1319ms ║║Waiting for 1000ms
+2322ms ║║Cancelling statement #9’s schedules…
+2329ms ║║Skipped execution of physical command [Family Room Right Shade].presetPosition([]) because it would make no change to the device. (2ms)
+2329ms ║║Executed [Family Room Right Shade].presetPosition (4ms)
+2332ms ║╚Execution stage complete. (2197ms)
+2333ms ╚Event processed successfully (2333ms)


#10

According to that last log, both the ‘Left’ and ‘Center’ ran successfully… While the ‘Right’ did not run because it appeared to already be in that position.

Let’s try disabling Command Optimizations to force that command. Simply:

  • Edit that piston
  • Click on the name in line 2
  • Click the cog in the bottom right of the popup
  • Disable Command Optimizations as seen here:

temp

Then Save twice and test. This will make webCoRE send the command regardless of the current position.


SIDE NOTE :
I have never seen an IF command with no parameters.
temp

Usually there is something there, such as:
temp


#11

I ran into the same issue. I have 6 shades, grouped into two different virtual shades using “Shady” DTH and SmartApp. I was getting unreliable results when trying to set all 6 shades to the same level using a piston. I ended up using a cleanup piston to follow-up and change any of the shades that didn’t get adjusted the first time.

I have several different pistons (actuated from ActionTiles using the external URL) at different levels for the shades. I wanted to make sure that things didn’t get confused if multiple pistons for different levels were executed in quick succession as it can take nearly 45 seconds for my shades to fully open/close. I ended up using global variables (realizing that they don’t get updated until the piston exits) so I used a single clean-up piston that uses those global variables to keep trying until everything is at the proper level.
Here is an example piston to set a particular level (in this case 84% which matches the top muntin in the window)


Here is the clean-up piston