Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. onMessage aktuell auch ohne result async möglich?

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

onMessage aktuell auch ohne result async möglich?

Geplant Angeheftet Gesperrt Verschoben JavaScript
7 Beiträge 2 Kommentatoren 356 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Ben1983B Offline
    Ben1983B Offline
    Ben1983
    schrieb am zuletzt editiert von
    #1

    Hallo,
    man konnte ja bei asynchronen Benutzen von

    onMessage
    

    mit

    messageToAsync
    

    "nur" Objekte zurückgeben, die ein

    result
    

    attribut enthalten haben.

    Eben habe ich es mal versucht und ich konnte über

    callback(myNumber);
    

    auch einfach irgendeinen Wert zurücksenden.

    @haus-automatisierung ist das seit einer bestimmten Version möglich?

    haus-automatisierungH 1 Antwort Letzte Antwort
    0
    • Ben1983B Ben1983

      Hallo,
      man konnte ja bei asynchronen Benutzen von

      onMessage
      

      mit

      messageToAsync
      

      "nur" Objekte zurückgeben, die ein

      result
      

      attribut enthalten haben.

      Eben habe ich es mal versucht und ich konnte über

      callback(myNumber);
      

      auch einfach irgendeinen Wert zurücksenden.

      @haus-automatisierung ist das seit einer bestimmten Version möglich?

      haus-automatisierungH Online
      haus-automatisierungH Online
      haus-automatisierung
      Developer Most Active
      schrieb am zuletzt editiert von
      #2

      @ben1983 Müsste ich mir im Code anschauen warum das geht und in welchen Situationen. Am besten an die Doku halten und nicht hoffen, dass das immer klappt

      🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
      🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
      📚 Meine inoffizielle ioBroker Dokumentation

      Ben1983B 1 Antwort Letzte Antwort
      0
      • haus-automatisierungH haus-automatisierung

        @ben1983 Müsste ich mir im Code anschauen warum das geht und in welchen Situationen. Am besten an die Doku halten und nicht hoffen, dass das immer klappt

        Ben1983B Offline
        Ben1983B Offline
        Ben1983
        schrieb am zuletzt editiert von Ben1983
        #3

        @haus-automatisierung hatte nichts gefunden, dass es auf jeden Fall result geben muss.
        Hatte es noch im Hinterkopf, aber dachte ich Versuch es mal.
        Oder gibt’s ne Stelle, wo steht, dass es result geben MUSS?

        Also das:

        onMessage('myTestMessage',async (data,callback)=>{
            callback("OK");
        });
        
        log(JSON.stringify(await messageToAsync('myTestMessage')));
        

        Liefert mir den Log:

        javascript.0	07:13:12.354	info	script.js.___Funktionstests.MessagAsync: "OK"
        
        haus-automatisierungH 2 Antworten Letzte Antwort
        0
        • Ben1983B Ben1983

          @haus-automatisierung hatte nichts gefunden, dass es auf jeden Fall result geben muss.
          Hatte es noch im Hinterkopf, aber dachte ich Versuch es mal.
          Oder gibt’s ne Stelle, wo steht, dass es result geben MUSS?

          Also das:

          onMessage('myTestMessage',async (data,callback)=>{
              callback("OK");
          });
          
          log(JSON.stringify(await messageToAsync('myTestMessage')));
          

          Liefert mir den Log:

          javascript.0	07:13:12.354	info	script.js.___Funktionstests.MessagAsync: "OK"
          
          haus-automatisierungH Online
          haus-automatisierungH Online
          haus-automatisierung
          Developer Most Active
          schrieb am zuletzt editiert von haus-automatisierung
          #4

          @ben1983 sagte in onMessage aktuell auch ohne result async möglich?:

          hatte nichts gefunden, dass es auf jeden Fall result geben muss.

          https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#onmessage

          Wo steht das Gegenteil? Aber ja, im Beispiel zu onMessageUnregister wird ja auch nur ein number Wert an die Callback-Funktion gegeben. Müsste ich mir im Detail anschauen wie gesagt.

          Ich halte mich immer an das Standard-Konzept von sendTo.

          🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
          🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
          📚 Meine inoffizielle ioBroker Dokumentation

          1 Antwort Letzte Antwort
          0
          • Ben1983B Ben1983

            @haus-automatisierung hatte nichts gefunden, dass es auf jeden Fall result geben muss.
            Hatte es noch im Hinterkopf, aber dachte ich Versuch es mal.
            Oder gibt’s ne Stelle, wo steht, dass es result geben MUSS?

            Also das:

            onMessage('myTestMessage',async (data,callback)=>{
                callback("OK");
            });
            
            log(JSON.stringify(await messageToAsync('myTestMessage')));
            

            Liefert mir den Log:

            javascript.0	07:13:12.354	info	script.js.___Funktionstests.MessagAsync: "OK"
            
            haus-automatisierungH Online
            haus-automatisierungH Online
            haus-automatisierung
            Developer Most Active
            schrieb am zuletzt editiert von
            #5

            @ben1983 Gerade die Funktion mit Promise schaut ja nach dem error Attribut und würde entsprechend einen Fehler werfen, welcher mit try/catch oder eben mit .catch behandelt werden kann. Das würde dir ja dann verloren gehen.

            onMessage('myTestMessage', (data, callback) => {
                callback({ result: data.bla, error: 'das hat nicht geklappt' });
            });
            
            // Callback
            messageTo('myTestMessage', { bla: 1234 }, (data) => {
                if (!data.error) {
                    console.info(data.result);
                } else {
                    console.error(data.error);
                }
            });
            
            // Promise
            messageToAsync('myTestMessage', { bla: 1234 })
                .catch((reason) => {
                    console.error(reason)
                });
            

            🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
            🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
            📚 Meine inoffizielle ioBroker Dokumentation

            Ben1983B 1 Antwort Letzte Antwort
            0
            • haus-automatisierungH haus-automatisierung

              @ben1983 Gerade die Funktion mit Promise schaut ja nach dem error Attribut und würde entsprechend einen Fehler werfen, welcher mit try/catch oder eben mit .catch behandelt werden kann. Das würde dir ja dann verloren gehen.

              onMessage('myTestMessage', (data, callback) => {
                  callback({ result: data.bla, error: 'das hat nicht geklappt' });
              });
              
              // Callback
              messageTo('myTestMessage', { bla: 1234 }, (data) => {
                  if (!data.error) {
                      console.info(data.result);
                  } else {
                      console.error(data.error);
                  }
              });
              
              // Promise
              messageToAsync('myTestMessage', { bla: 1234 })
                  .catch((reason) => {
                      console.error(reason)
                  });
              
              Ben1983B Offline
              Ben1983B Offline
              Ben1983
              schrieb am zuletzt editiert von Ben1983
              #6

              @haus-automatisierung OK.
              Also besser immer mit

              {error: irgendwas....}
              

              oder

              {result: irgendwas....}
              

              arbeiten, richtig?

              Aber solange es keinen error gibt, darf auch das attribut nicht vorkommen, oder müsste false sein, oder?

              haus-automatisierungH 1 Antwort Letzte Antwort
              0
              • Ben1983B Ben1983

                @haus-automatisierung OK.
                Also besser immer mit

                {error: irgendwas....}
                

                oder

                {result: irgendwas....}
                

                arbeiten, richtig?

                Aber solange es keinen error gibt, darf auch das attribut nicht vorkommen, oder müsste false sein, oder?

                haus-automatisierungH Online
                haus-automatisierungH Online
                haus-automatisierung
                Developer Most Active
                schrieb am zuletzt editiert von
                #7

                @ben1983 Kannst auch null setzen

                🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                📚 Meine inoffizielle ioBroker Dokumentation

                1 Antwort Letzte Antwort
                1
                Antworten
                • In einem neuen Thema antworten
                Anmelden zum Antworten
                • Älteste zuerst
                • Neuste zuerst
                • Meiste Stimmen


                Support us

                ioBroker
                Community Adapters
                Donate

                862

                Online

                32.4k

                Benutzer

                81.5k

                Themen

                1.3m

                Beiträge
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Anmelden

                • Du hast noch kein Konto? Registrieren

                • Anmelden oder registrieren, um zu suchen
                • Erster Beitrag
                  Letzter Beitrag
                0
                • Home
                • Aktuell
                • Tags
                • Ungelesen 0
                • Kategorien
                • Unreplied
                • Beliebt
                • GitHub
                • Docu
                • Hilfe