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. [SOLVED] require request ersetzen durch httpPost in JS

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

[SOLVED] require request ersetzen durch httpPost in JS

Geplant Angeheftet Gesperrt Verschoben JavaScript
16 Beiträge 6 Kommentatoren 1.9k Aufrufe 6 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.
  • BlackmikeB Blackmike

    @paul53 Danke erstmal für den code, ich kann erstmal einen post absetzen
    aber mit dem header das klappt so nicht, fehlermeldung der API, header ungültig (Meldung kommt auch wenn kein header vorhanden, also auskommentiert)

    die Gleiche funktion mit dem alten request geht aber... und da komm ich grad nicht weiter

    der gültige header sähe so aus: (token xxx-ed)

     headers: { 'Content-Type': 'application/json', token: 'xxxxx', lang: 'de', timestamp: '1718222454810', signature: '0a3ca762a50675917adadcb49ed272b2', 'User-Agent': 'Meiner' },
    

    Black

    M Online
    M Online
    MCU
    schrieb am zuletzt editiert von
    #5

    @blackmike Doku -> https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#httppost

    httpPost(
        'http://jsonplaceholder.typicode.com/posts',
        {
            title: 'foo',
            body: 'bar',
            userId: 1
        },
        {
            timeout: 2000,
            basicAuth: {
                user: 'admin',
                password: 'dg2LdALNznHFNo'
            },
            headers: {
                'Cookie': 'PHPSESSID=298zf09hf012fh2; csrftoken=u32t4o3tb3gg43; _gat=1'
            }
        },
        (error, response) => {
            if (!error) {
                console.log(response.statusCode);
                console.log(response.data);
                console.log(response.headers);
            } else {
                console.error(error);
            }
        }
    );
    

    NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
    Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

    BlackmikeB 1 Antwort Letzte Antwort
    1
    • M MCU

      @blackmike Doku -> https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#httppost

      httpPost(
          'http://jsonplaceholder.typicode.com/posts',
          {
              title: 'foo',
              body: 'bar',
              userId: 1
          },
          {
              timeout: 2000,
              basicAuth: {
                  user: 'admin',
                  password: 'dg2LdALNznHFNo'
              },
              headers: {
                  'Cookie': 'PHPSESSID=298zf09hf012fh2; csrftoken=u32t4o3tb3gg43; _gat=1'
              }
          },
          (error, response) => {
              if (!error) {
                  console.log(response.statusCode);
                  console.log(response.data);
                  console.log(response.headers);
              } else {
                  console.error(error);
              }
          }
      );
      
      BlackmikeB Offline
      BlackmikeB Offline
      Blackmike
      schrieb am zuletzt editiert von
      #6

      @mcu thnx für die Doku. Ich hatte die nur für httpGet gefunden. Erste versuche sehen gut aus. Hab mir beim probieren aber irgendwas kaputtgemacht im spielesystem. Ich guck heute Abend weiter und werde berichten.

      @Homoran
      Die API erwartet bei dem skizzierten Aufruf ein http post. Get geht da nicht. Mit request funktionieren die Scripte ja mit "POST" auf dem Produktivsystem. Ich will nur auf dem spielesystem sucessiv die Scripte von request auf entweder httpget bzw httppost umbauen und testen und nach Validierung ins produktivsystem übernehmen.

      Thnx für eure Hilfestellung

      Black

      die Wahrheit ist ein Chor aus Wind

      HomoranH 1 Antwort Letzte Antwort
      1
      • BlackmikeB Blackmike

        @mcu thnx für die Doku. Ich hatte die nur für httpGet gefunden. Erste versuche sehen gut aus. Hab mir beim probieren aber irgendwas kaputtgemacht im spielesystem. Ich guck heute Abend weiter und werde berichten.

        @Homoran
        Die API erwartet bei dem skizzierten Aufruf ein http post. Get geht da nicht. Mit request funktionieren die Scripte ja mit "POST" auf dem Produktivsystem. Ich will nur auf dem spielesystem sucessiv die Scripte von request auf entweder httpget bzw httppost umbauen und testen und nach Validierung ins produktivsystem übernehmen.

        Thnx für eure Hilfestellung

        Black

        HomoranH Nicht stören
        HomoranH Nicht stören
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von Homoran
        #7

        @blackmike hab inzwischen auch versucht das Konstrukt nachzuvollziehen und bei Mozilla developers und stackoverflow passende Passagen gefunden, aber mangels js Kenntnissen nicht zuordnen können was mit dem body bei httpPost passiert, der ja tatsächlich gesendet werden kann/muss.

        Die Doku hatte ich leider auch nicht gefunden.

        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        BlackmikeB 1 Antwort Letzte Antwort
        0
        • HomoranH Homoran

          @blackmike hab inzwischen auch versucht das Konstrukt nachzuvollziehen und bei Mozilla developers und stackoverflow passende Passagen gefunden, aber mangels js Kenntnissen nicht zuordnen können was mit dem body bei httpPost passiert, der ja tatsächlich gesendet werden kann/muss.

          Die Doku hatte ich leider auch nicht gefunden.

          BlackmikeB Offline
          BlackmikeB Offline
          Blackmike
          schrieb am zuletzt editiert von Blackmike
          #8

          Dank dem Doku Link von MCU, ohne den das nicht geklappt hätte, habe ich nun den Frame, um request Posts in das neue httpPost umzusetzen.

          Funktional war die Benutzung des Body sowie eigene Header.
          Hat also erfolgreich geklappt

          Das adäquate Konstrukt schaut dann so aus:

          function device_realqueryV2 (SerNr) {
             const body= '{"sn": "'+SerNr+'", "variables": []}'
             const headers={headers: GetAuth (apikey,path_real_query,lang)}    
             httpPost (domain+path_real_query,body,headers,function (err,response) {
               var jdev= response.data  
               log (response.data)
             })    
          }
          

          Thnx für die Hilfestellung

          Black

          die Wahrheit ist ein Chor aus Wind

          haus-automatisierungH 1 Antwort Letzte Antwort
          0
          • BlackmikeB Blackmike

            Dank dem Doku Link von MCU, ohne den das nicht geklappt hätte, habe ich nun den Frame, um request Posts in das neue httpPost umzusetzen.

            Funktional war die Benutzung des Body sowie eigene Header.
            Hat also erfolgreich geklappt

            Das adäquate Konstrukt schaut dann so aus:

            function device_realqueryV2 (SerNr) {
               const body= '{"sn": "'+SerNr+'", "variables": []}'
               const headers={headers: GetAuth (apikey,path_real_query,lang)}    
               httpPost (domain+path_real_query,body,headers,function (err,response) {
                 var jdev= response.data  
                 log (response.data)
               })    
            }
            

            Thnx für die Hilfestellung

            Black

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

            @blackmike sagte in require (request) ersetzen durch "httpPost" in javascript:

            const body= '{"sn": "'+SerNr+'", "variables": []}'

            Du kannst auch direkt ein Objekt übergeben und musst nicht so komisch JSON-Strings zusammenbauen.

            function device_realqueryV2 (SerNr) {
              httpPost(
                domain + path_real_query,
                {
                  sn: SerNr,
                  variables: []
                },
                {
                  headers: GetAuth(apikey,path_real_query,lang)
                },
                (err, response) => {
                  const data = response.data;
                  log (data);
                }
              );
            }
            

            🧑‍🎓 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
            • BlackmikeB Offline
              BlackmikeB Offline
              Blackmike
              schrieb am zuletzt editiert von
              #10

              Generell gute Idee...

              Aber der body MUSS ein string sein. Als json objekt bekommen ich ein Fail bei der Abfrage.

              Black

              die Wahrheit ist ein Chor aus Wind

              haus-automatisierungH 1 Antwort Letzte Antwort
              0
              • BlackmikeB Blackmike

                Generell gute Idee...

                Aber der body MUSS ein string sein. Als json objekt bekommen ich ein Fail bei der Abfrage.

                Black

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

                @blackmike sagte in [SOLVED] require request ersetzen durch httpPost in JS:

                MUSS ein string sein. Als json objekt

                JSON ist auch einfach nur ein String.

                Muss als Objekt aber auch gehen - dann macht die http-Funktion die JSON-Konvertierung für Dich.

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

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

                  @blackmike sagte in [SOLVED] require request ersetzen durch httpPost in JS:

                  MUSS ein string sein. Als json objekt

                  JSON ist auch einfach nur ein String.

                  Muss als Objekt aber auch gehen - dann macht die http-Funktion die JSON-Konvertierung für Dich.

                  BlackmikeB Offline
                  BlackmikeB Offline
                  Blackmike
                  schrieb am zuletzt editiert von Blackmike
                  #12

                  @haus-automatisierung
                  :+1:

                  Ging auch... Fehler von mir, es reichte nicht aus, nur die Aussen delimiter wegzunehmen... mit korrektem Object klappte die Abfrage

                  Thnx, Blck

                  die Wahrheit ist ein Chor aus Wind

                  D 1 Antwort Letzte Antwort
                  0
                  • BlackmikeB Blackmike

                    @haus-automatisierung
                    :+1:

                    Ging auch... Fehler von mir, es reichte nicht aus, nur die Aussen delimiter wegzunehmen... mit korrektem Object klappte die Abfrage

                    Thnx, Blck

                    D Offline
                    D Offline
                    DerGraf123
                    schrieb am zuletzt editiert von
                    #13

                    Hallo Zusammen,

                    ich versuche auch gerade von "request" wegzukommen.
                    Leider scheitere ich bei httpPost um den TNES von Tasker zu erreichen.
                    Javascript 8.6.0

                    Funktionierender Request:

                    request.post({url:'http://192.168.178.51:8765',form:{ sayit: "Sprachausgabe" }},function(error, response, body) { 
                        if (error) log(error, 'error');  
                    });
                    

                    Nicht funktionierender httpPost:

                    httpPost('http://192.168.178.51:8765', { sayit: "Sprachausgabe" }, { timeout: 5000 }, (error, response) => {
                        if (!error) {
                            console.log(response.statusCode);
                            console.log(response.data);
                            console.log(response.headers);
                        } else {
                            console.error(error);
                        }
                    });
                    

                    Als Fehler kommt ein Timeout:

                    
                    javascript.0
                    2024-06-23 11:39:32.376	error	script.js.common.Sayit: timeout of 5000ms exceeded
                    
                    javascript.0
                    2024-06-23 11:39:32.375	error	script.js.common.Sayit httpPost(url=http://192.168.178.51:8765, error=timeout of 5000ms exceeded)
                    

                    Timeout habe ich wie ersichtlich schon testweise hochgedreht.
                    Liegt es evtl. am Port?

                    Für Tipps danke ich schon einmal im Voraus.

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • D DerGraf123

                      Hallo Zusammen,

                      ich versuche auch gerade von "request" wegzukommen.
                      Leider scheitere ich bei httpPost um den TNES von Tasker zu erreichen.
                      Javascript 8.6.0

                      Funktionierender Request:

                      request.post({url:'http://192.168.178.51:8765',form:{ sayit: "Sprachausgabe" }},function(error, response, body) { 
                          if (error) log(error, 'error');  
                      });
                      

                      Nicht funktionierender httpPost:

                      httpPost('http://192.168.178.51:8765', { sayit: "Sprachausgabe" }, { timeout: 5000 }, (error, response) => {
                          if (!error) {
                              console.log(response.statusCode);
                              console.log(response.data);
                              console.log(response.headers);
                          } else {
                              console.error(error);
                          }
                      });
                      

                      Als Fehler kommt ein Timeout:

                      
                      javascript.0
                      2024-06-23 11:39:32.376	error	script.js.common.Sayit: timeout of 5000ms exceeded
                      
                      javascript.0
                      2024-06-23 11:39:32.375	error	script.js.common.Sayit httpPost(url=http://192.168.178.51:8765, error=timeout of 5000ms exceeded)
                      

                      Timeout habe ich wie ersichtlich schon testweise hochgedreht.
                      Liegt es evtl. am Port?

                      Für Tipps danke ich schon einmal im Voraus.

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von paul53
                      #14

                      @DerGraf123
                      Bei request gab es noch das Attribut "form". Versuche mal

                      httpPost('http://192.168.178.51:8765', {form: {sayit: "Sprachausgabe"}}, { timeout: 5000 }, (error, response) => {
                      

                      oder?

                      httpPost('http://192.168.178.51:8765', {form: {sayit: "Sprachausgabe"},  timeout: 5000 }, (error, response) => {
                      

                      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

                      haus-automatisierungH D 2 Antworten Letzte Antwort
                      0
                      • paul53P paul53

                        @DerGraf123
                        Bei request gab es noch das Attribut "form". Versuche mal

                        httpPost('http://192.168.178.51:8765', {form: {sayit: "Sprachausgabe"}}, { timeout: 5000 }, (error, response) => {
                        

                        oder?

                        httpPost('http://192.168.178.51:8765', {form: {sayit: "Sprachausgabe"},  timeout: 5000 }, (error, response) => {
                        
                        haus-automatisierungH Online
                        haus-automatisierungH Online
                        haus-automatisierung
                        Developer Most Active
                        schrieb am zuletzt editiert von haus-automatisierung
                        #15

                        @paul53 Erst kommen die Post-Parameter, dann die Optionen für den Request. War also oben schon richtig.

                        httpPost('http://192.168.178.51:8765', { sayit: 'Sprachausgabe' }, { timeout: 5000 }, (error, response) => {
                        

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

                        Im Verbose-Mode sieht man dann auch sehr gut, wie der Request zusammengebaut wird.

                        🧑‍🎓 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
                        • paul53P paul53

                          @DerGraf123
                          Bei request gab es noch das Attribut "form". Versuche mal

                          httpPost('http://192.168.178.51:8765', {form: {sayit: "Sprachausgabe"}}, { timeout: 5000 }, (error, response) => {
                          

                          oder?

                          httpPost('http://192.168.178.51:8765', {form: {sayit: "Sprachausgabe"},  timeout: 5000 }, (error, response) => {
                          
                          D Offline
                          D Offline
                          DerGraf123
                          schrieb am zuletzt editiert von DerGraf123
                          #16

                          @paul53 Mit deiner Idee und dem Attribute "form" bekomme ich zwar keinen Timeout mehr, eine Sprachausgabe erfolgt aber nicht. Timeout Variable habe ich wieder rausgenommen, da 2000ms mehr als ausreichend sein sollte.

                          httpPost('http://192.168.178.51:8765', { form: {sayit: 'Sprachausgabe' }}, (error, response) => {
                              if (!error) {
                                  console.log(response.statusCode);
                                  console.log(response.data);
                                  console.log(response.headers);
                              } else {
                                  console.error(error);
                              }
                          });
                          
                          javascript.0	12:09:24.356	info	script.js.common.Sayit: 200
                          javascript.0	12:09:24.356	info	script.js.common.Sayit: <html><head><head><body><h1>Hello, World</h1></body>Header<br/>content-length : 29 remote-addr : 192.168.178.252 http-client-ip : 192.168.178.252 host : 192.168.178.51:8765 content-type : application/json connection : keep-alive accept-encoding : gzip, compress, deflate, br accept : application/json, text/plain, */* user-agent : Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/121.0 <br/>----<br/>method = POST<br/>uri = /<br/>Params<br/>NanoHttpd.QUERY_STRING : null<br/></html>
                          javascript.0	12:09:24.356	info	script.js.common.Sayit: Object [AxiosHeaders] { 'content-type': 'text/html', date: 'Sun, 23 Jun 2024 10:09:24 GMT', connection: 'keep-alive', 'content-length': '496' }
                          
                          1 Antwort Letzte Antwort
                          0
                          Antworten
                          • In einem neuen Thema antworten
                          Anmelden zum Antworten
                          • Älteste zuerst
                          • Neuste zuerst
                          • Meiste Stimmen


                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          637

                          Online

                          32.5k

                          Benutzer

                          81.7k

                          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