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

Die Verwendung von Skripten liegt im eigenen Ermessen des Benutzers. Unterstützung für Skripte wird vom Autor des Skripts bereitgestellt.
  • 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)