Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Gelöst / Schwierigkeiten mit JS-Funktionen mit Ergebnis

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    645

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    5.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

Gelöst / Schwierigkeiten mit JS-Funktionen mit Ergebnis

Scheduled Pinned Locked Moved Skripten / Logik
blockly
6 Posts 4 Posters 429 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    Schorsch
    wrote on last edited by Schorsch
    #1

    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.

    CodierknechtC paul53P AsgothianA 3 Replies Last reply
    0
    • S 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.

      CodierknechtC Offline
      CodierknechtC Offline
      Codierknecht
      Developer Most Active
      wrote on last edited by
      #2

      @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.

      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
      HmIP|ZigBee|Tasmota|Unifi
      Zabbix Certified Specialist
      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

      S 1 Reply Last reply
      0
      • CodierknechtC Codierknecht

        @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 Offline
        S Offline
        Schorsch
        wrote on last edited by
        #3

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

        1 Reply Last reply
        0
        • S 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.

          paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by paul53
          #4

          @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.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Reply Last reply
          0
          • S 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.

            AsgothianA Offline
            AsgothianA Offline
            Asgothian
            Developer
            wrote on last edited by
            #5

            @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.

            ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
            "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

            1 Reply Last reply
            0
            • S Offline
              S Offline
              Schorsch
              wrote on last edited by
              #6

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

              1 Reply Last reply
              0

              Hello! It looks like you're interested in this conversation, but you don't have an account yet.

              Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

              With your input, this post could be even better 💗

              Register Login
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              Support us

              ioBroker
              Community Adapters
              Donate

              149

              Online

              32.7k

              Users

              82.6k

              Topics

              1.3m

              Posts
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2025
              logo
              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Home
              • Recent
              • Tags
              • Unread 0
              • Categories
              • Unreplied
              • Popular
              • GitHub
              • Docu
              • Hilfe