Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Gelöst / Schwierigkeiten mit JS-Funktionen mit Ergebnis

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Gelöst / Schwierigkeiten mit JS-Funktionen mit Ergebnis

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

      Hallo,
      ich verstehe den Einsatz von Funktionen nicht so ganz.

      Folgendes Problem:
      Ich benutze einen Wechselrichter Hoymiles HMS 800W-2T. Zum Abruf der Daten verwende ich das Python-Programm hoymiles-wifi. Mit diesem Programm gibt es mehrere programmspezifische Befehle. Damit der Aufruf (bei mir) funktioniert, muss ich den kompletten Pfad angeben (anderes Problem).
      Jetzt hatte ich mir vorgestellt, dass ich eine Funktion zum Abrufen der Daten schreibe. In dieser Funktion hinterlege ich alles, was ich zum Abrufen der daten benötige. Zum Aufruf der Funktion gebe ich in einer Variablen den Befehl als Text-Variable mit und erhalte als Antwort die entsprechenden Daten.

      Dazu habe ich folgendes Blockly-Programm geschrieben. In den Debug-Blöcken habe ich zur besseren Unterscheidungen die Einstufung "Info" und "Warnung" ausgewählt und benenne sie auch entsprechend.

      e429a260-a44f-47ad-a9b7-d0efa5cf3b9b-grafik.png

      Im Debug-Fenster erhalte ich zuerst die Ausgabe vom debug-Block "Info" mit dem Ergebnis "undefined". Danach wird der debug-Block "Warnung" mit den Daten ausgegeben.
      Nach meinem Verständnis ruft der debug-Block "Info" die Funktion auf. Somit sollte erst der debug-Block "Warnung" ausgegeben werden. Danach der debug-Block "Info".
      Ich habe mir ein test-Blockly mit den JS-Funktionen ohne und mit Ergebnis erstellt und dort kleine Rechenoperationen durchgeführt. Das Script funktioniert nach meiner Vorstellung.

      Wo ist mein Denkfehler?
      Wie muss ich mit der JS-Funktion mit Ergebnis arbeiten?

      Vielen Dank.

      Codierknecht paul53 Asgothian 3 Replies Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @Schorsch last edited by

        @schorsch sagte in Schwierigkeiten mit JS-Funktionen mit Ergebnis:

        Dazu habe ich folgendes Blockly-Programm geschrieben

        Bitte den Screenshot dazu.
        Nur die wenigsten hier haben Lust dazu, das XML zu importieren um zu sehen was da los ist.

        S 1 Reply Last reply Reply Quote 0
        • S
          Schorsch @Codierknecht last edited by

          @codierknecht Hab ich gemacht. Danke für den Hinweis.

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @Schorsch last edited by paul53

            @schorsch sagte: zuerst die Ausgabe vom debug-Block "Info" mit dem Ergebnis "undefined".

            Das Ergebnis wird an die Callback-Funktion (das Maul) von "exec" übergeben. Das erfolgt erst viel später (asynchrone Ausführung) als die Beendigung der Funktion mit dem Rückgabewert.

            1 Reply Last reply Reply Quote 0
            • Asgothian
              Asgothian Developer @Schorsch last edited by

              @schorsch sagte in Schwierigkeiten mit JS-Funktionen mit Ergebnis:

              Wo ist mein Denkfehler?
              Wie muss ich mit der JS-Funktion mit Ergebnis arbeiten?

              das hat wenig mit der JS Funktion zu tun, und viel mit der asynchronen Abarbeitung. Der Baustein "exec" kommt sofort zurück und die Funktion wird beendet bevor die Antwort eingeht und in die Variable gespeichert werden kann.

              Der Exec block verhält sich da so wie ein "chef", der seinem Mitarbeiter sagt "mach mal bitte das, und mit dem Ergebnis mach dann das andere. Danach ist der "chef" mit seiner Aktion durch und wendet sich anderen dingen zu.

              A.

              1 Reply Last reply Reply Quote 0
              • S
                Schorsch last edited by

                Hey, vielen Dank für die Infos. werde dann mal schauen, wie ich es mache.

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

                Support us

                ioBroker
                Community Adapters
                Donate

                870
                Online

                31.7k
                Users

                79.7k
                Topics

                1.3m
                Posts

                blockly
                4
                6
                210
                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