Set Level ignores ramp rate

Agreed. Duration does work. Thankfully @Equis recalls a similar change in behavior, so I feel slightly less crazy.

To recap:

  • Device page Set Level (time blank) respects ramp parameters.
  • webCoRE Set Level (time blank) now seems to force a duration value of zero.
  • webCoRE seems to have behaved like the device page in the past.

Going back to tweak each piston with durations is not such a huge deal. I do rather like the idea of a ramp rate, though. Hopefully having it recorded here will save someone else some wasted time chasing drivers, parameters, or firmware.

It will help debug if folks mention

using built-in or user-install webcore

what the version is (seen from the main webcore application)

The latest webCoRE code should:

  • if the parameter is specified, use it.
  • if the parameter is not specified don't send anything (ie the driver gets setLevel(level) only. What the driver does with this is up to the driver

@Hatallica let me know if this seems to be a problem with my driver. Grab some debug logs and post. The driver should use the device defaults if setLevel is called with no duration, which I think is what you want.

Thanks. I don't have any reason to suspect the driver, since behavior is as you describe from the device page. Also, I initially observed the behavior using the native driver and various other devices.

1 Like

Thanks. I might have been sloppy with language, but this was meant to convey that it is the user-installed app.

Version is certainly important, so I will double check when I get back home. For expedience, is this the same as what shows on dashboard.webcore.co?
image

v0.3.114.20230130_HE - February 15, 2023. Community app installed through HPM.

It worked as you outlined until pretty recently. It changed sometime in the last couple updates. I can't pinpoint exactly when it changed, though.

Would need to see full logs for the piston.

The latest user-install should not send any parameter if nothing is sent.

If a 0 is being specified, then 0 is being sent.

I hope this helps. I am adding the Trace snippet of code below for reference.

3/1/2023, 3:35:07 PM +196ms
+5ms 	╔Received event [PanoramaHE].time = 1677702907171 with a delay of 25ms, canQueue: true, calledMyself: false
+17ms 	║RunTime initialize > 16 LockT > 1ms > r9T > 3ms > pistonT > 2ms (first state access 7 m:12 6 10)
+20ms 	║Runtime (11497 bytes) initialized in 3ms (v0.3.114.20230130_HE)
+27ms 	║╔Execution stage started
+35ms 	║║Condition #17 evaluated true (1ms)
+37ms 	║║Condition group #15 evaluated true (condition changed) (3ms)
+42ms 	║║Executed virtual command setVariable (2ms)
+43ms 	║║Skipping task 20 because of mode restrictions
+53ms 	║║Calculating (decimal)50.0 - (decimal)25.0 >> (decimal)25.0
+56ms 	║║Calculating (integer)25 / (integer)10 >> (integer)2.5
+60ms 	║║Executed virtual command setVariable (1ms)
+64ms 	║║Calculating (string)Not active, dimmed to + (string)25 >> (string)Not active, dimmed to 25
+65ms 	║║Calculating (string)Not active, dimmed to 25 + (string) per mode - >> (string)Not active, dimmed to 25 per mode -
+67ms 	║║Calculating (string)Not active, dimmed to 25 per mode - + (string)Wed, Mar 1 2023 @ 3:35:07 PM EST >> (string)Not active, dimmed to 25 per mode - Wed, Mar 1 2023 @ 3:35:07 PM EST
+68ms 	║║Calculating (string)Not active, dimmed to 25 per mode - Wed, Mar 1 2023 @ 3:35:07 PM EST + (string) >> (string)Not active, dimmed to 25 per mode - Wed, Mar 1 2023 @ 3:35:07 PM EST
+70ms 	║║Piston state changed
+71ms 	║║Executed virtual command setState (1ms)
+99ms 	║║Executed device command [Hallway Dimmer].setLevel(25,0.0) (22ms)
+104ms 	║║Comparison (boolean) true is (boolean) true = true (1ms)
+105ms 	║║Condition #26 evaluated true (4ms)
+109ms 	║║Calculating (integer)4 + (integer)1 >> (integer)5
+112ms 	║║Comparison (enum) inactive stays (string) inactive = true (1ms)
+115ms 	║║Doing nothing found timed trigger schedule stays result true found timer for condition 27
+116ms 	║║Condition #27 evaluated false (10ms)
+117ms 	║║Condition group #25 evaluated false (condition did not change) (16ms)
+123ms 	║╚Execution stage complete. (96ms)
+182ms 	║Setting up scheduled job for Wed, Mar 1 2023 @ 3:36:07 PM EST (in 59887ms)
+184ms 	╚Event processed successfully (179ms)

I suggest you do an HPM repair, and then show logs.

The version in in the HE console -> apps -> webcore

I suggest you hpm repair to ensure you are on latest.

Repaired. Looks similar.

Repaired through HPM and ran a test of my piston.

3/1/2023, 6:04:55 PM +365ms
+3ms 	╔Received event [Bedroom Lamp Button 1].pushed = 4 with a delay of 24ms, canQueue: true, calledMyself: false
+11ms 	║RunTime initialize > 10 LockT > 1ms > r9T > 2ms > pistonT > 1ms (first state access 4 m:7 4 6)
+13ms 	║Runtime (6889 bytes) initialized in 2ms (v0.3.114.20230222_HE)
+14ms 	║╔Execution stage started
+23ms 	║║Evaluating switch with values [[i::09fb71634ac805277855872bd1950b71::pushed, v:[t:integer, v:4, d::09fb71634ac805277855872bd1950b71:, a:pushed, x:false, vt:string]]]
+25ms 	║║Comparison (integer) 4 is (integer) 1 = false (1ms)
+27ms 	║║Comparison (integer) 4 is (integer) 2 = false (1ms)
+29ms 	║║Comparison (integer) 4 is (integer) 3 = false (0ms)
+31ms 	║║Comparison (integer) 4 is (integer) 4 = true (0ms)
+56ms 	║║Executed device command [Bedroom Lamp].setLevel(100,0.0) (19ms)
+60ms 	║╚Execution stage complete. (45ms)
+65ms 	╚Event processed successfully (62ms)

Here's the piston I'm using to test...

There were some recent changes to WebCoRE to allow duration of zero (Set Level - Duration of 0 - #22 by jtp10181) that seems to have broken the default and I had to go back and add a level command to all of my Set Level commands. That said, having the option to use zero is great for a few of my scenarios.

So when editing the piston for the setLevel command, can you show what is set for the arguments?

This is what I see:

So I still don't know the version(s) of webCoRE a couple of you are running.

Please HPM repair, and tell me your webCoRE version.

If a user install, please HPM repair, I have put a new fix in place for the setLevel

Thanks. I will give that a try as soon as I get back on the local network tonight.

I will also confirm the version via the app just in case.

That appears to have worked for me. It defaults to the driver setting, but also uses an explicit value if it has been set. I added a zero to one of my switch cases in my piston above and they all worked as expected. :+1:

1 Like

║║Executed device command [Hallway Dimmer].setLevel(25) (25ms)

Confirming that everything looks good with v0.3.114.20230222_HE - March 2, 2023

Thanks for all of your help @nh.schottfam and the sanity check @Equis. I was all sorts of confused for a while.

1 Like