Shelly Script bricht bei JSON.PARSE ab. OUT OF MEMORY - Was tun?

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.

  • Hallo zusammen,

    ich habe mir mit Hilfe von CHATGPT ein kleines Skript zusammengebastelt, welche eine Art Kellerlüft mittels Shelly steuern soll. Problem ist hierbei, dass Shelly das Skript ohne Fehlermeldung nach Zeile 46

      var weatherLocation = JSON.parse(response.body);

    abbricht.

    Die JSON Daten sind fehlerfrei.

    Ausgabe sieht wie folgt aus:

    Code
    Executing periodic script
    Cover Status: closed
    Internal Humidity = 74.3 %
    Internal Temperature = 14.3 °C
    API Request: [{"LocalObservationDateTime":"2023-10-24T18:13:00+02:00","EpochTime":1698163980,"WeatherText":"Sunny","WeatherIcon":1,"HasPrecipitation":false,"PrecipitationType":null,"IsDayTime":true,"Temperature":{"Metric":{"Value":13.7,"Unit":"C","UnitTy ... und so weiter

    danach stoppt das Skript.

    Die Diagonstics gibt einen "OUT OF MEMORY" Fehler aus. Wie ist damit umzugehen?

    2 Mal editiert, zuletzt von MarkQuark (24. Oktober 2023 um 19:26)

  • MarkQuark 24. Oktober 2023 um 19:16

    Hat den Titel des Themas von „Shelly Script bricht bei JSON.PARSE ab und gibt keine Fehlermeldung aus“ zu „Shelly Script bricht bei JSON.PARSE ab. OUT OF MEMORY - Was tun?“ geändert.
  • Du kannst versuchen andere Scripts, die auf dem Gerät laufen, abzuschalten, der Memory wird dynamisch auf alle Script Slots verteilt.

    Außerdem erzeugst du einen Haufen dynamischer Variablen, die viel Speicher verbrauchen.

    Versuche, weniger dynamische Variablen zu verwenden und lösche Daten, die du nicht mehr benötigst, indem du deinen Code in mehr separate Funktionen aufteilst und nicht so viele globale Variablen erzeugst.

    2 Mal editiert, zuletzt von _[Deleted]_ (25. Oktober 2023 um 08:05)

  • Hallo,

    hab das selbe Problem. Hab kaum Variablen, bekomm trotzdem den out_of_memory!

    Der body ist 1422 Characters lang, also kein Unding!

    @MarkQuark, hast du da eine Lösung gefunden?

    Oder kann man den String vor dem parse irgendwie verkleinern?

    Danke!!

  • Schmuckerl

    Out of Memory entsteht auch wenn irgendwo ne For Schleife zu lange benötigt oder wenn man viel mit Object Instanzen rumspielt oder wenn man zu viele synchrone Funktions Stacks nutzt.

    Da ne Ferndiagnose nur mit "Out of Memory" zu erstellen ist nahe zu unmöglich.

    Einmal editiert, zuletzt von _[Deleted]_ (24. Januar 2024 um 14:19)

  • Schmuckerl ohne weitere Infos kann man dir nicht helfen.

    -->Hab kaum Variablen, bekomm trotzdem den out_of_memory! Der body ist 1422 Characters lang, also kein Unding!

    Und was soll ich mit dieser Info nun anfangen?

    Lass es mich anders formulieren, ich ernähre mich Gesund, heute hab ich ein Eis gegessen, warum schmerz mein Knie!?

    Wenn du mir den Grund für meine Knie Schmerzen nennst, verrate ich dir den Grund für deinen "out_of_memory" Error. ;)

    3 Mal editiert, zuletzt von _[Deleted]_ (26. Januar 2024 um 03:33)