Limited Array depth for JSON-RPC params call when creating schedules

Hinweis zur Nutzung von Skripten (für Nutzer)

Die Verwendung von Skripten erfolgt ausdrücklich auf eigene Gefahr. Weder Shelly noch die jeweiligen Autoren oder Entwickler der Skripte übernehmen irgendeine Form der Haftung für mögliche Schäden, Fehlfunktionen, Datenverluste oder anderweitige Beeinträchtigungen, die durch die Nutzung dieser Skripte entstehen könnten. Bitte stellen Sie vor dem Einsatz sicher, dass Sie den Quellcode verstehen und sich der möglichen Auswirkungen bewusst sind. Die Skripte werden ohne Gewähr bereitgestellt und unterliegen keiner regelmäßigen Wartung oder offiziellen Unterstützung.


Hinweis für Entwickler

Wenn Sie eigene Skripte bereitstellen, achten Sie bitte darauf, eine klare Beschreibung, eventuelle Einschränkungen und Sicherheitsaspekte zu dokumentieren. Beachten Sie zudem, dass Nutzer Ihre Skripte grundsätzlich auf eigenes Risiko verwenden. Eine Haftung für Schäden ist ausgeschlossen, sofern diese nicht vorsätzlich oder grob fahrlässig verursacht wurden oder gesetzlich anderweitig geregelt ist.

VPN/Proxy erkannt

Es scheint, dass Sie einen VPN- oder Proxy-Dienst verwenden. Bitte beachten Sie, dass die Nutzung eines solchen Dienstes die Funktionalität dieser Webseite einschränken kann.

  • I have a Shelly Plus Plug S and wanted to change the LED color according to the Time of Day .

    Now when trying to create a schedule through the script editor i have hit a seeming limitation where the schedule isn't created if the JSON-RPC params array hits a certain nesting depth. And unfortunately the Plus Plug S's Plugs_UI method has the parameters for rgb and brightness quite deep down it's config tree.

    Following Code shows the last working depth that will successfully create a schedule, highlighted as "LAST_PARAMS":

    [script][/script]

    [script]Shelly.call("Schedule.Create", { [/script]

    [script]
    [/script]

    [script]"enable": true, [/script]

    [script]"timespec": "0 07 23 * * SUN,MON,TUE,WED,THU,FRI,SAT", [/script]

    [script]"calls": [{ [/script]

    [script]"method": "PLUGS_UI.SetConfig", [/script]

    [script]"params": { [/script]

    [script]"config" : { [/script]

    [script]"leds": { [/script]

    [script]"mode": "switch", [/script]

    [script]"colors": { [/script]

    [script]"switch:0": { [/script]

    [script]"on": "LAST_PARAMS", [/script]

    [script]"off": "LAST_PARAMS", [/script]

    [script]}, [/script]

    [script]"power": { [/script]

    [script]"brightness": 100 [/script]

    [script]} [/script]

    [script]}, [/script]

    [script]"night_mode": { [/script]

    [script]"enable": false, [/script]

    [script]"brightness": 10, [/script]

    [script]"active_between": ["22:00","06:00"] [/script]

    [script]} [/script]

    [script]}, [/script]

    [script]"controls": { [/script]

    [script]"switch:0": { [/script]

    [script]"in_mode": "momentary" [/script]

    [script]} [/script]

    [script]} [/script]

    [script]} [/script]

    [script]
    [/script]

    [script]
    [/script]

    [script]} [/script]

    [script]}] [/script]

    [script]});[/script]

    [script][/script]

    The Plus Plug S requires its rgb and brightness parameters to be set within "on" and "off" as follows, but adding those extra values to the code, even though it is just one more level, fails to create the schedule:

    [script][/script]

    [script]"on": { [/script]

    [script]"rgb": [100,100,100], [/script]

    [script]"brightness": 0 [/script]

    [script]}, [/script]

    [script]"off": { [/script]

    [script]"rgb": [100,100,100], [/script]

    [script]"brightness": 0 [/script]

    [script]}[/script]

    [script][/script]

    The documentation for the Schedule methods only mention a limitation for the number of calls made per schedule job (which is 5), but no limitation for the array depth. I find the behavior odd since if this is a limitation, Shelly could have structured their config trees to avoid the issue.

    Generally Shelly should expose the PLus Plug S's LED config to the Web and App Ui's, because setting the colors and brightness according to a schedule shouldn't require scripting, in my opinion.

    I have since created a workaround by creating schedules that trigger scripts that set the config, but since those are extra steps i wonder if someone knows how to get the setup working using just a schedule

    Einmal editiert, zuletzt von NicAtNite (16. September 2023 um 08:52)