Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. HTTP-Post und Headerübergabe

NEWS

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

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

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

HTTP-Post und Headerübergabe

Scheduled Pinned Locked Moved Blockly
25 Posts 3 Posters 2.4k Views 4 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.
  • H HackyPaddy

    @haus-automatisierung ich hab mich mal in die async funktion eingelesen und probiert. Aber ich mach mehr kaputt als das es funktioniert... 😠

    haus-automatisierungH Offline
    haus-automatisierungH Offline
    haus-automatisierung
    Developer Most Active
    wrote on last edited by
    #11

    @hackypaddy

    return httpPostAsync(
        'http://jsonplaceholder.typicode.com/posts',
        {
            title: 'foo',
            body: 'bar',
            userId: 1
        },
        {
            timeout: 2000,
            headers: {
                'Content-Type': 'application/json'
            }
        }
    );
    

    Und dann halt in Blockly wieder auf die Eigenschaften des Response-Objekts zugreifen. Also statusCode und data.

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

    H 2 Replies Last reply
    0
    • haus-automatisierungH haus-automatisierung

      @hackypaddy

      return httpPostAsync(
          'http://jsonplaceholder.typicode.com/posts',
          {
              title: 'foo',
              body: 'bar',
              userId: 1
          },
          {
              timeout: 2000,
              headers: {
                  'Content-Type': 'application/json'
              }
          }
      );
      

      Und dann halt in Blockly wieder auf die Eigenschaften des Response-Objekts zugreifen. Also statusCode und data.

      H Offline
      H Offline
      HackyPaddy
      wrote on last edited by
      #12

      @haus-automatisierung Du bist die Wucht. Danke. Damit funktioniert es 🙂

      1 Reply Last reply
      0
      • haus-automatisierungH haus-automatisierung

        @hackypaddy

        return httpPostAsync(
            'http://jsonplaceholder.typicode.com/posts',
            {
                title: 'foo',
                body: 'bar',
                userId: 1
            },
            {
                timeout: 2000,
                headers: {
                    'Content-Type': 'application/json'
                }
            }
        );
        

        Und dann halt in Blockly wieder auf die Eigenschaften des Response-Objekts zugreifen. Also statusCode und data.

        H Offline
        H Offline
        HackyPaddy
        wrote on last edited by
        #13

        @haus-automatisierung Ich muss den Thread nochmal aus der Versenkung holen. Die Lösung hat bis zum Update auf den JavaScript-Adapter V. 8.8.3 wunderbar funktioniert.

        Seit dem Update jedoch stützt Nachts der JavaScript-Adapter ab. Und zwar genau dann, wenn die DSL-Zwangstrennung kommt und das Script die Daten nicht senden kann.

        Hier ein Auszug aus dem Log:

        2024-11-05 04:50:30.056 - error: javascript.0 (2428097) script.js.common.ATU.Messdaten_senden: httpPost(XXX, error=timeout of 30000ms exceeded)
        2024-11-05 04:50:30.059 - error: javascript.0 (2428097) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
        2024-11-05 04:50:30.059 - error: javascript.0 (2428097) unhandled promise rejection: timeout of 30000ms exceeded
        2024-11-05 04:50:30.060 - error: javascript.0 (2428097) Error: timeout of 30000ms exceeded
        

        Hast Du ne Ahnung, was wie wo und warum das passiert? Eigebtlich sollte er beim Timeout von 30 Sek. doch abbrechen und nicht den ganzen Adapter killen.

        Viele Grüße
        Patrick

        haus-automatisierungH 1 Reply Last reply
        0
        • H HackyPaddy

          @haus-automatisierung Ich muss den Thread nochmal aus der Versenkung holen. Die Lösung hat bis zum Update auf den JavaScript-Adapter V. 8.8.3 wunderbar funktioniert.

          Seit dem Update jedoch stützt Nachts der JavaScript-Adapter ab. Und zwar genau dann, wenn die DSL-Zwangstrennung kommt und das Script die Daten nicht senden kann.

          Hier ein Auszug aus dem Log:

          2024-11-05 04:50:30.056 - error: javascript.0 (2428097) script.js.common.ATU.Messdaten_senden: httpPost(XXX, error=timeout of 30000ms exceeded)
          2024-11-05 04:50:30.059 - error: javascript.0 (2428097) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
          2024-11-05 04:50:30.059 - error: javascript.0 (2428097) unhandled promise rejection: timeout of 30000ms exceeded
          2024-11-05 04:50:30.060 - error: javascript.0 (2428097) Error: timeout of 30000ms exceeded
          

          Hast Du ne Ahnung, was wie wo und warum das passiert? Eigebtlich sollte er beim Timeout von 30 Sek. doch abbrechen und nicht den ganzen Adapter killen.

          Viele Grüße
          Patrick

          haus-automatisierungH Offline
          haus-automatisierungH Offline
          haus-automatisierung
          Developer Most Active
          wrote on last edited by
          #14

          @hackypaddy sagte in HTTP-Post und Headerübergabe:

          Die Lösung hat bis zum Update auf den JavaScript-Adapter V. 8.8.3 wunderbar funktioniert.

          Das liegt garantiert nicht an der Version oder ist erst seit der Version so.

          @hackypaddy sagte in HTTP-Post und Headerübergabe:

          Hast Du ne Ahnung, was wie wo und warum das passiert?

          Ja, weil es kein Try-Catch gibt oder mit .catch() der Fehler abgefangen wird. Steht ja auch in der Meldung. Da müsste man das Script etwas umbauen.

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

          H 1 Reply Last reply
          0
          • haus-automatisierungH haus-automatisierung

            @hackypaddy sagte in HTTP-Post und Headerübergabe:

            Die Lösung hat bis zum Update auf den JavaScript-Adapter V. 8.8.3 wunderbar funktioniert.

            Das liegt garantiert nicht an der Version oder ist erst seit der Version so.

            @hackypaddy sagte in HTTP-Post und Headerübergabe:

            Hast Du ne Ahnung, was wie wo und warum das passiert?

            Ja, weil es kein Try-Catch gibt oder mit .catch() der Fehler abgefangen wird. Steht ja auch in der Meldung. Da müsste man das Script etwas umbauen.

            H Offline
            H Offline
            HackyPaddy
            wrote on last edited by
            #15

            @haus-automatisierung

            Bekommt man die .catch-Funktion denn im Blockly irgendwie dargestellt?

            haus-automatisierungH 1 Reply Last reply
            0
            • H HackyPaddy

              @haus-automatisierung

              Bekommt man die .catch-Funktion denn im Blockly irgendwie dargestellt?

              haus-automatisierungH Offline
              haus-automatisierungH Offline
              haus-automatisierung
              Developer Most Active
              wrote on last edited by
              #16

              @hackypaddy Aktuell nicht. Das müsste man direkt in der JS-Funktion lösen und sich überlegen was man dann zurückliefert.

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

              H 1 Reply Last reply
              0
              • haus-automatisierungH haus-automatisierung

                @hackypaddy Aktuell nicht. Das müsste man direkt in der JS-Funktion lösen und sich überlegen was man dann zurückliefert.

                H Offline
                H Offline
                HackyPaddy
                wrote on last edited by
                #17

                @haus-automatisierung

                OK. Theoretisch müsste nichts zurück geliefert werden. Am besten wäre ein Eintrag ins Log und dann bricht das Script ab.

                Wird eh alle 10 Minuten aufgerufen...

                Nur der Adapter sollte nicht mehr abschmieren, das ist mehr als ungünstig 😞

                Ich habe ja dein Script von oben genauso eingesetzt. Kann man das einfach auf try und catch umbauen?

                z.B. so:

                try {
                return httpPostAsync(
                    'http://jsonplaceholder.typicode.com/posts',
                    {
                        title: 'foo',
                        body: 'bar',
                        userId: 1
                    },
                    {
                        timeout: 2000,
                        headers: {
                            'Content-Type': 'application/json'
                        }
                    }
                )
                }
                catch {
                    console.warn("Test123");
                }
                
                
                haus-automatisierungH 1 Reply Last reply
                0
                • H HackyPaddy

                  @haus-automatisierung

                  OK. Theoretisch müsste nichts zurück geliefert werden. Am besten wäre ein Eintrag ins Log und dann bricht das Script ab.

                  Wird eh alle 10 Minuten aufgerufen...

                  Nur der Adapter sollte nicht mehr abschmieren, das ist mehr als ungünstig 😞

                  Ich habe ja dein Script von oben genauso eingesetzt. Kann man das einfach auf try und catch umbauen?

                  z.B. so:

                  try {
                  return httpPostAsync(
                      'http://jsonplaceholder.typicode.com/posts',
                      {
                          title: 'foo',
                          body: 'bar',
                          userId: 1
                      },
                      {
                          timeout: 2000,
                          headers: {
                              'Content-Type': 'application/json'
                          }
                      }
                  )
                  }
                  catch {
                      console.warn("Test123");
                  }
                  
                  
                  haus-automatisierungH Offline
                  haus-automatisierungH Offline
                  haus-automatisierung
                  Developer Most Active
                  wrote on last edited by
                  #18

                  @hackypaddy sagte in HTTP-Post und Headerübergabe:

                  Kann man das einfach auf try und catch umbauen?

                  Theoretisch ja, aber dann geben manche Pfade ja keinen Wert zurück. Also könntest Du wieder Fehler bekommen, wenn Du in Blockly dann auf die Attribute zugreifen möchtest (weil ja nichts zurückgegeben wird). Da könnte man dann ein neues Objekt mit Dummy-Werten zurückliefern.

                  z.B.

                  try {
                      return httpPostAsync(
                          'http://jsonplaceholder.typicode.com/posts',
                          {
                              title: 'foo',
                              body: 'bar',
                              userId: 1
                          },
                          {
                              timeout: 2000,
                              headers: {
                                  'Content-Type': 'application/json'
                              }
                          }
                      );
                  }
                  catch (err) {
                      console.warn(err);
                  
                      return {
                          statusCode: -1,
                          data: '',
                          headers: [],
                      };
                  }
                  

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

                  H 1 Reply Last reply
                  0
                  • haus-automatisierungH haus-automatisierung

                    @hackypaddy sagte in HTTP-Post und Headerübergabe:

                    Kann man das einfach auf try und catch umbauen?

                    Theoretisch ja, aber dann geben manche Pfade ja keinen Wert zurück. Also könntest Du wieder Fehler bekommen, wenn Du in Blockly dann auf die Attribute zugreifen möchtest (weil ja nichts zurückgegeben wird). Da könnte man dann ein neues Objekt mit Dummy-Werten zurückliefern.

                    z.B.

                    try {
                        return httpPostAsync(
                            'http://jsonplaceholder.typicode.com/posts',
                            {
                                title: 'foo',
                                body: 'bar',
                                userId: 1
                            },
                            {
                                timeout: 2000,
                                headers: {
                                    'Content-Type': 'application/json'
                                }
                            }
                        );
                    }
                    catch (err) {
                        console.warn(err);
                    
                        return {
                            statusCode: -1,
                            data: '',
                            headers: [],
                        };
                    }
                    
                    H Offline
                    H Offline
                    HackyPaddy
                    wrote on last edited by
                    #19

                    @haus-automatisierung

                    Perfekt, so könnte ich über den Statuscode im Blockly weiter machen. Das ne gute Idee!

                    Sagmal, bietest Du auch einen MasterKurs "JavaScript Advance" an. Wäre mal ne Idee 😁

                    haus-automatisierungH 1 Reply Last reply
                    0
                    • H HackyPaddy

                      @haus-automatisierung

                      Perfekt, so könnte ich über den Statuscode im Blockly weiter machen. Das ne gute Idee!

                      Sagmal, bietest Du auch einen MasterKurs "JavaScript Advance" an. Wäre mal ne Idee 😁

                      haus-automatisierungH Offline
                      haus-automatisierungH Offline
                      haus-automatisierung
                      Developer Most Active
                      wrote on last edited by
                      #20

                      @hackypaddy sagte in HTTP-Post und Headerübergabe:

                      Sagmal, bietest Du auch einen MasterKurs "JavaScript Advance" an.

                      Hatte ich mir überlegt, aber wo fängt man da an? All das hier sind ja JavaScript-Grundlagen und haben erstmal nichts mit dem ioBroker zu tun.

                      Und wenn ich ganz vorne anfange, dann ist es ein extrem weiter Weg der ganzen Grundlagen, bis ich überhaupt mal bei ioBroker-Themen ankomme. Und dann sind wir so weit vom Smart Home Thema weg, dass ich mich erstmal dagegen entschieden habe.

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

                      H 1 Reply Last reply
                      0
                      • haus-automatisierungH haus-automatisierung

                        @hackypaddy sagte in HTTP-Post und Headerübergabe:

                        Sagmal, bietest Du auch einen MasterKurs "JavaScript Advance" an.

                        Hatte ich mir überlegt, aber wo fängt man da an? All das hier sind ja JavaScript-Grundlagen und haben erstmal nichts mit dem ioBroker zu tun.

                        Und wenn ich ganz vorne anfange, dann ist es ein extrem weiter Weg der ganzen Grundlagen, bis ich überhaupt mal bei ioBroker-Themen ankomme. Und dann sind wir so weit vom Smart Home Thema weg, dass ich mich erstmal dagegen entschieden habe.

                        H Offline
                        H Offline
                        HackyPaddy
                        wrote on last edited by
                        #21

                        @haus-automatisierung

                        Also ich wäre dabei. Ich muss eh alles von Grund neu lernen, bin schon viel zu lange raus.

                        Aber! Die Lösung mit try catch läuft auch nicht. Ich hab testweise mal die URL geändert, sodass es zwangsläufig zum Fehler kommt. Er steigt wieder aus mit dem Hinweis, kein .catch oder Catch-Block vorhanden. Der Adapter schmiert ab...

                        
                        javascript.0
                        2024-11-05 11:30:00.205	error	unhandled promise rejection: getaddrinfo ENOTFOUND XXX
                        
                        javascript.0
                        2024-11-05 11:30:00.205	error	Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
                        

                        Hmm, hast noch ne Idee?

                        haus-automatisierungH 1 Reply Last reply
                        0
                        • H HackyPaddy

                          @haus-automatisierung

                          Also ich wäre dabei. Ich muss eh alles von Grund neu lernen, bin schon viel zu lange raus.

                          Aber! Die Lösung mit try catch läuft auch nicht. Ich hab testweise mal die URL geändert, sodass es zwangsläufig zum Fehler kommt. Er steigt wieder aus mit dem Hinweis, kein .catch oder Catch-Block vorhanden. Der Adapter schmiert ab...

                          
                          javascript.0
                          2024-11-05 11:30:00.205	error	unhandled promise rejection: getaddrinfo ENOTFOUND XXX
                          
                          javascript.0
                          2024-11-05 11:30:00.205	error	Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
                          

                          Hmm, hast noch ne Idee?

                          haus-automatisierungH Offline
                          haus-automatisierungH Offline
                          haus-automatisierung
                          Developer Most Active
                          wrote on last edited by
                          #22

                          @hackypaddy sagte in HTTP-Post und Headerübergabe:

                          Aber! Die Lösung mit try catch läuft auch nicht.

                          Ach sorry, wenn man nebenbei etwas anderes macht, ... Das liegt daran, dass ja das Promise zurückgegeben wird und es außerhalb ausgeführt wird. So sollte es klappen:

                          try {
                              const response = await httpPostAsync(
                                  'http://jsonplaceholder.typicode.com/posts',
                                  {
                                      title: 'foo',
                                      body: 'bar',
                                      userId: 1
                                  },
                                  {
                                      timeout: 2000,
                                      headers: {
                                          'Content-Type': 'application/json'
                                      }
                                  }
                              );
                          
                              return response;
                          } catch (err) {
                              console.warn(err);
                           
                              return {
                                  statusCode: -1,
                                  data: '',
                                  headers: [],
                              };
                          }
                          

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

                          H 1 Reply Last reply
                          0
                          • haus-automatisierungH haus-automatisierung

                            @hackypaddy sagte in HTTP-Post und Headerübergabe:

                            Aber! Die Lösung mit try catch läuft auch nicht.

                            Ach sorry, wenn man nebenbei etwas anderes macht, ... Das liegt daran, dass ja das Promise zurückgegeben wird und es außerhalb ausgeführt wird. So sollte es klappen:

                            try {
                                const response = await httpPostAsync(
                                    'http://jsonplaceholder.typicode.com/posts',
                                    {
                                        title: 'foo',
                                        body: 'bar',
                                        userId: 1
                                    },
                                    {
                                        timeout: 2000,
                                        headers: {
                                            'Content-Type': 'application/json'
                                        }
                                    }
                                );
                            
                                return response;
                            } catch (err) {
                                console.warn(err);
                             
                                return {
                                    statusCode: -1,
                                    data: '',
                                    headers: [],
                                };
                            }
                            
                            H Offline
                            H Offline
                            HackyPaddy
                            wrote on last edited by
                            #23

                            @haus-automatisierung

                            Diesmal klappt es.
                            Genau da brauch ich Nachhilfe 😂

                            Er gibt jetzt den Statuscode vom Catch Block zurück und der Adapter schmiert nicht mehr ab.

                            Kann man den JavaScript-Adapter die Errormeldung im Log noch irgendwie abgewöhnen?

                            javascript.0
                            2024-11-05 11:58:00.018	error	script.js.common.ATU.Messdaten_senden: httpPost(url=XXX, error=getaddrinfo ENOTFOUND XXX)
                            

                            Ich hab ja schon die Behandlung im Blockly, wäre doppelt gemoppelt.

                            haus-automatisierungH 1 Reply Last reply
                            0
                            • H HackyPaddy

                              @haus-automatisierung

                              Diesmal klappt es.
                              Genau da brauch ich Nachhilfe 😂

                              Er gibt jetzt den Statuscode vom Catch Block zurück und der Adapter schmiert nicht mehr ab.

                              Kann man den JavaScript-Adapter die Errormeldung im Log noch irgendwie abgewöhnen?

                              javascript.0
                              2024-11-05 11:58:00.018	error	script.js.common.ATU.Messdaten_senden: httpPost(url=XXX, error=getaddrinfo ENOTFOUND XXX)
                              

                              Ich hab ja schon die Behandlung im Blockly, wäre doppelt gemoppelt.

                              haus-automatisierungH Offline
                              haus-automatisierungH Offline
                              haus-automatisierung
                              Developer Most Active
                              wrote on last edited by
                              #24

                              @hackypaddy sagte in HTTP-Post und Headerübergabe:

                              Kann man den JavaScript-Adapter die Errormeldung im Log noch irgendwie abgewöhnen?

                              Gibt dazu schon einen Feature Request auf GitHub. Muss halt jemand machen 🙂

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

                              H 1 Reply Last reply
                              0
                              • haus-automatisierungH haus-automatisierung

                                @hackypaddy sagte in HTTP-Post und Headerübergabe:

                                Kann man den JavaScript-Adapter die Errormeldung im Log noch irgendwie abgewöhnen?

                                Gibt dazu schon einen Feature Request auf GitHub. Muss halt jemand machen 🙂

                                H Offline
                                H Offline
                                HackyPaddy
                                wrote on last edited by
                                #25

                                @haus-automatisierung

                                Ok, dann halte ich die Füße still 😀

                                Danke Dir für die Hilfe!

                                1 Reply Last reply
                                0
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                237

                                Online

                                32.4k

                                Users

                                81.4k

                                Topics

                                1.3m

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

                                • Don't have an account? Register

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