Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. WASM-Binary Aufruf friert Javascript-Instanz ein

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    WASM-Binary Aufruf friert Javascript-Instanz ein

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      seb2010 last edited by

      Hallo zusammen,

      ich habe für meine PV/Batterie/Wallbox/Wärmepumpe Kombination bei dynamischen Stromtarifen ein Skript entwickelt, dass mir mithilfe eines Solver den kostenoptimalen Einsatz aller Komponenten plant. Dazu verwende ich einen Solver "GLPK.js", welcher selbst eine WASM-binary aufruft. Soweit so gut.

      Nun führt allerdings der Aufruf des Solvers (und damit mittelbar der WASM-Binary) dazu, dass die Javascript Instanz einfriert. Sie zeigt sogar "Instanz ist deaktiviert" im Javascript Tab an, da vermutlich der Adapter keine Rückmeldung während der Laufzeit der WASM-binary erhält. Erst wenn die WASM-binary fertig gerechnet hat, geht es im Skript und mit der Instanz weiter. Teilweise kommt es aber dann auch vor, dass vermutlich bei Überschreitung einer gewissen Timeout-Schwelle, sich die Javascript-Instanz neustartet.

      Einigermaßen Umgehen kann ich die negativen Effekte auf die anderen Skripte, indem ich dieses Skript in einer eigenen JS-Instanz ausführe, sodass nur dieses Skript betroffen ist. Optimal ist das allerdings nicht.

      Nun zu den Fragen:

      • Kann man den Aufruf der Funktion, welche dann die WASM-binary aufruft, irgendwie geeignet mit Promises oÄ kapseln, so dass es hier nicht zu diesem einfrieren kommt?
        Ich muss zugeben, ich komme aus einer synchronen Programmierwelt und nutze überall "await". Der Code ist also nicht so aufgebaut, dass er mit Callbacks etc. funktioniert. Aber was nicht ist, kann ja noch werden.

      • Kann man an der Javascript-Instanz das Timeout hochsetzen, welches nach vermeintlicher Inaktivität/Non-Responsiveness der Instanz einen Neustart triggert? Wo findet man das genau?

      Ich hoffe ihr könnte mir hier ein wenig helfen, wie ich das in den Griff bekomme...

      Viele Grüße
      SEB

      1 Reply Last reply Reply Quote 0
      • First post
        Last post

      Support us

      ioBroker
      Community Adapters
      Donate

      925
      Online

      31.8k
      Users

      80.0k
      Topics

      1.3m
      Posts

      1
      1
      109
      Loading More Posts
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
      The ioBroker Community 2014-2023
      logo