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. POST Request an Pushcut

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    11
    1
    83

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    554

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

POST Request an Pushcut

Geplant Angeheftet Gesperrt Verschoben JavaScript
27 Beiträge 4 Kommentatoren 2.3k 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.
  • OliverIOO OliverIO

    @martin-schlender
    was heißt. es lässt sich nicht speichern?
    in iobroker?
    beim senden?

    gibt es eine fehlermeldung?
    es ist nur ein ausschnitt!

    Martin SchlenderM Offline
    Martin SchlenderM Offline
    Martin Schlender
    schrieb am zuletzt editiert von
    #18

    Moin,
    ich bräuchte nochmal Hilfe.
    Und zwar bekomme ich es ums Verr.... nicht hin, das Ergebnis aus dem POST zurückzugeben ins Blockly.
    Unten das log('body:' + body); gibt mir im Protokoll genau das aus was ich möchte. Allerdings bekomme ich es nicht aus der function raus...
    Danke im Voraus

    var strBody = '{"token":"xxxxxxxxxxxxx","user":"xxxxxxxxxxxxxx","title":"' + strTitle 
    + '","text":"' + strText + '" ,"subtext":"' + strSubtext + '"}'
    
    log('body: ' + strBody)
    
    var strErg
    
    request.post({
      headers: {
        'Content-Type': 'application/json'
      },
      url:     'https://api.pushover.net/1/glances.json',
      body:    strBody
    
    }, function (error, response, body){
      if (error) {
        console.log('Fehler:' + error);
        return  error;
      }
      else
      {
       strErg = body;
       log('body:' + body);
       
        } 
    }
    );
    return strErg ;
    
    mickymM 1 Antwort Letzte Antwort
    0
    • Martin SchlenderM Martin Schlender

      Moin,
      ich bräuchte nochmal Hilfe.
      Und zwar bekomme ich es ums Verr.... nicht hin, das Ergebnis aus dem POST zurückzugeben ins Blockly.
      Unten das log('body:' + body); gibt mir im Protokoll genau das aus was ich möchte. Allerdings bekomme ich es nicht aus der function raus...
      Danke im Voraus

      var strBody = '{"token":"xxxxxxxxxxxxx","user":"xxxxxxxxxxxxxx","title":"' + strTitle 
      + '","text":"' + strText + '" ,"subtext":"' + strSubtext + '"}'
      
      log('body: ' + strBody)
      
      var strErg
      
      request.post({
        headers: {
          'Content-Type': 'application/json'
        },
        url:     'https://api.pushover.net/1/glances.json',
        body:    strBody
      
      }, function (error, response, body){
        if (error) {
          console.log('Fehler:' + error);
          return  error;
        }
        else
        {
         strErg = body;
         log('body:' + body);
         
          } 
      }
      );
      return strErg ;
      
      mickymM Offline
      mickymM Offline
      mickym
      Most Active
      schrieb am zuletzt editiert von
      #19

      @martin-schlender Dann mach halt das return strErg nicht ganz unten hin, sondern in Zeile 24 als direkt unter log

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      Martin SchlenderM 1 Antwort Letzte Antwort
      0
      • mickymM mickym

        @martin-schlender Dann mach halt das return strErg nicht ganz unten hin, sondern in Zeile 24 als direkt unter log

        Martin SchlenderM Offline
        Martin SchlenderM Offline
        Martin Schlender
        schrieb am zuletzt editiert von Martin Schlender
        #20

        @mickym sagte in POST Request an Pushcut:

        @martin-schlender Dann mach halt das return strErg nicht ganz unten hin, sondern in Zeile 24 als direkt unter log

        Auch schon versucht. Geht auch nicht. Sehr spannend. Wenn ich da einen return body mache ist das Ergebnis undefined

        Martin SchlenderM 1 Antwort Letzte Antwort
        0
        • Martin SchlenderM Martin Schlender

          @mickym sagte in POST Request an Pushcut:

          @martin-schlender Dann mach halt das return strErg nicht ganz unten hin, sondern in Zeile 24 als direkt unter log

          Auch schon versucht. Geht auch nicht. Sehr spannend. Wenn ich da einen return body mache ist das Ergebnis undefined

          Martin SchlenderM Offline
          Martin SchlenderM Offline
          Martin Schlender
          schrieb am zuletzt editiert von
          #21

          Das völlig verrückte ist, wenn ich den unteren Teil so umbaue:

            
             log('body:' + body);
             return body;
              } 
          }
          );
          
          return strErg;
          

          steht im Log:
          body:{"status":1,"request":"2a0edda9-9e13-47bc-8541-43982263f8ae"}
          und der Rückgabewert im Blockly ist undefined. Kapier ich einfach nicht

          Martin SchlenderM 1 Antwort Letzte Antwort
          0
          • Martin SchlenderM Martin Schlender

            Das völlig verrückte ist, wenn ich den unteren Teil so umbaue:

              
               log('body:' + body);
               return body;
                } 
            }
            );
            
            return strErg;
            

            steht im Log:
            body:{"status":1,"request":"2a0edda9-9e13-47bc-8541-43982263f8ae"}
            und der Rückgabewert im Blockly ist undefined. Kapier ich einfach nicht

            Martin SchlenderM Offline
            Martin SchlenderM Offline
            Martin Schlender
            schrieb am zuletzt editiert von
            #22

            ich glaub jetzt weiß ich warum das so ist. Hab mich eben gewundert warum im Log immer erst die undefined kommen. Der Request ist noch nicht abgeschlossen und das Script läuft weiter und gibt nix zurück. Muß da warten....

            T 1 Antwort Letzte Antwort
            0
            • Martin SchlenderM Martin Schlender

              ich glaub jetzt weiß ich warum das so ist. Hab mich eben gewundert warum im Log immer erst die undefined kommen. Der Request ist noch nicht abgeschlossen und das Script läuft weiter und gibt nix zurück. Muß da warten....

              T Nicht stören
              T Nicht stören
              ticaki
              schrieb am zuletzt editiert von ticaki
              #23

              @martin-schlender

              Mit Blockly bin ich jetzt nicht so der Hit. Aber mit dem hier sollte das Skript sychron laufen. Heißt wartet von sich aus

              const axios = require('axios');
                  const strBody =
                      '{"token":"xxxxxxxxxxxxx","user":"xxxxxxxxxxxxxx","title":"' +
                      strTitle +
                      '","text":"' +
                      strText +
                      '" ,"subtext":"' +
                      strSubtext +
                      '"}';
              
                  log('body: ' + strBody);
              
                  let strErg;
              
                  try {
                      const result = await axios(
                          {
                              timeout: 5000,
                              method: 'post',
                              headers: {
                                  'Content-Type': 'application/json',
                              },
                              url: 'https://api.pushover.net/1/glances.json',
                              body: strBody,
                          }
                      );
                      log('body:' + result.data);
                      if (result && result.data) return result.data;
                  } catch(error) {
                      log(JSON.stringify(error.toJSON()));
                  }
                  return '';
              

              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

              Spenden

              OliverIOO Martin SchlenderM 2 Antworten Letzte Antwort
              1
              • T ticaki

                @martin-schlender

                Mit Blockly bin ich jetzt nicht so der Hit. Aber mit dem hier sollte das Skript sychron laufen. Heißt wartet von sich aus

                const axios = require('axios');
                    const strBody =
                        '{"token":"xxxxxxxxxxxxx","user":"xxxxxxxxxxxxxx","title":"' +
                        strTitle +
                        '","text":"' +
                        strText +
                        '" ,"subtext":"' +
                        strSubtext +
                        '"}';
                
                    log('body: ' + strBody);
                
                    let strErg;
                
                    try {
                        const result = await axios(
                            {
                                timeout: 5000,
                                method: 'post',
                                headers: {
                                    'Content-Type': 'application/json',
                                },
                                url: 'https://api.pushover.net/1/glances.json',
                                body: strBody,
                            }
                        );
                        log('body:' + result.data);
                        if (result && result.data) return result.data;
                    } catch(error) {
                        log(JSON.stringify(error.toJSON()));
                    }
                    return '';
                
                OliverIOO Offline
                OliverIOO Offline
                OliverIO
                schrieb am zuletzt editiert von
                #24

                @ticaki
                ja ich denke so müsste es laufen.

                bei der ersten version hat das hauptskript geendet und dann halt undefined an blockly zurückgegeben. kurze zeit später ist aber der request fertig gewesen, da war aber nix mehr was das ergebnis entgegennehmen konnte.

                so wird der block erst beendet, wenn das ergebnis vorliegt und dann kann es in blockly weitergehen.

                jaja async stellt einem immer wieder diese fallen

                Meine Adapter und Widgets
                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                Links im Profil

                1 Antwort Letzte Antwort
                0
                • T ticaki

                  @martin-schlender

                  Mit Blockly bin ich jetzt nicht so der Hit. Aber mit dem hier sollte das Skript sychron laufen. Heißt wartet von sich aus

                  const axios = require('axios');
                      const strBody =
                          '{"token":"xxxxxxxxxxxxx","user":"xxxxxxxxxxxxxx","title":"' +
                          strTitle +
                          '","text":"' +
                          strText +
                          '" ,"subtext":"' +
                          strSubtext +
                          '"}';
                  
                      log('body: ' + strBody);
                  
                      let strErg;
                  
                      try {
                          const result = await axios(
                              {
                                  timeout: 5000,
                                  method: 'post',
                                  headers: {
                                      'Content-Type': 'application/json',
                                  },
                                  url: 'https://api.pushover.net/1/glances.json',
                                  body: strBody,
                              }
                          );
                          log('body:' + result.data);
                          if (result && result.data) return result.data;
                      } catch(error) {
                          log(JSON.stringify(error.toJSON()));
                      }
                      return '';
                  
                  Martin SchlenderM Offline
                  Martin SchlenderM Offline
                  Martin Schlender
                  schrieb am zuletzt editiert von
                  #25

                  Vielen Dank @ticaki für die Mühe. Ich probiere es - wobei ich es mittlerweile anders gelöst habe :-)
                  Und zwar hab ich einen setState eingebaut und der wartet genauso wie der log() auch bis das Ergebnis da ist.
                  Ich schreibe mir die Antwort also in einen State und ein anderes Skript wacht darüber und meldet bei entsprechender Antwort an mich dass was nicht stimmt. Hat den Vorteil dass das auch gut nachvollziehbar ist und man nicht im Log suchen muß.

                  @oliverio sagte in POST Request an Pushcut:

                  jaja async stellt einem immer wieder diese fallen

                  Ja das ist wirklich gemein- vor allem da ich vorher noch nicht mit JS programmiert habe :-)

                  T 1 Antwort Letzte Antwort
                  0
                  • Martin SchlenderM Martin Schlender

                    Vielen Dank @ticaki für die Mühe. Ich probiere es - wobei ich es mittlerweile anders gelöst habe :-)
                    Und zwar hab ich einen setState eingebaut und der wartet genauso wie der log() auch bis das Ergebnis da ist.
                    Ich schreibe mir die Antwort also in einen State und ein anderes Skript wacht darüber und meldet bei entsprechender Antwort an mich dass was nicht stimmt. Hat den Vorteil dass das auch gut nachvollziehbar ist und man nicht im Log suchen muß.

                    @oliverio sagte in POST Request an Pushcut:

                    jaja async stellt einem immer wieder diese fallen

                    Ja das ist wirklich gemein- vor allem da ich vorher noch nicht mit JS programmiert habe :-)

                    T Nicht stören
                    T Nicht stören
                    ticaki
                    schrieb am zuletzt editiert von
                    #26

                    @martin-schlender

                    request ist deprecated, daher ist axios vorzuziehen und dein setState kannste da auch einbauen :)

                    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                    Spenden

                    Martin SchlenderM 1 Antwort Letzte Antwort
                    0
                    • T ticaki

                      @martin-schlender

                      request ist deprecated, daher ist axios vorzuziehen und dein setState kannste da auch einbauen :)

                      Martin SchlenderM Offline
                      Martin SchlenderM Offline
                      Martin Schlender
                      schrieb am zuletzt editiert von
                      #27

                      @ticaki aaaalso - so einfach scheint es nicht zu klappen.
                      Ich hab schon die beiden überflüssigen "," entfernt (innerhalb von headers nach dem Content-Type und nach bode: strBody.
                      Aber es funktioniert trotzdem noch nicht und der Fehler ist nicht gerade sprechend:

                      
                      const axios = require('axios');
                          const strBody =
                              '{"token":"xxxxxx","user":"yyyyyy","title":"' +
                              strTitle +
                              '","text":"' +
                              strText +
                              '" ,"subtext":"' +
                              strSubtext +
                              '"}';
                       
                          log('body: ' + strBody);
                       
                          let strErg;
                       
                          try {
                              const result = await axios(
                                  {
                                      timeout: 5000,
                                      method: 'POST',
                                      headers: {
                                          'Content-Type': 'application/json'
                                      },
                                      url: 'https://api.pushover.net/1/glances.json',
                                      body: strBody
                                  }
                              );
                              log('body:' + result.data);
                              setState('0_userdata.0.PostRequest',body,true);
                              
                          } catch(error) {
                              log(JSON.stringify(error.toJSON()));
                          }
                          return '';
                      

                      Hier der Fehler:

                      {
                          "message": "Request failed with status code 400",
                          "name": "AxiosError",
                          "stack": "AxiosError: Request failed with status code 400\n at settle (/opt/iobroker/node_modules/iobroker.javascript/node_modules/axios/lib/core/settle.js:19:12)\n at IncomingMessage.handleStreamEnd (/opt/iobroker/node_modules/iobroker.javascript/node_modules/axios/lib/adapters/http.js:570:11)\n at IncomingMessage.emit (node:events:526:35)\n at IncomingMessage.emit (node:domain:489:12)\n at endReadableNT (node:internal/streams/readable:1359:12)\n at processTicksAndRejections (node:internal/process/task_queues:82:21)",
                          "config": {
                              "transitional": {
                                  "silentJSONParsing": true,
                                  "forcedJSONParsing": true,
                                  "clarifyTimeoutError": false
                              },
                              "adapter": [
                                  "xhr",
                                  "http"
                              ],
                              "transformRequest": [
                                  null
                              ],
                              "transformResponse": [
                                  null
                              ],
                              "timeout": 5000,
                              "xsrfCookieName": "XSRF-TOKEN",
                              "xsrfHeaderName": "X-XSRF-TOKEN",
                              "maxContentLength": -1,
                              "maxBodyLength": -1,
                              "env": {},
                              "headers": {
                                  "Accept": "application/json, text/plain, */*",
                                  "Content-Type": "application/json",
                                  "User-Agent": "axios/1.4.0",
                                  "Accept-Encoding": "gzip, compress, deflate, br"
                              },
                              "method": "post",
                              "url": "https://api.pushover.net/1/glances.json",
                              "body": "{\"token\":\"xxxx\",\"user\":\"yyyy\",\"title\":\"12.9 °C\",\"text\":\"12.9\" ,\"subtext\":\"17:25\"}"
                          },
                          "code": "ERR_BAD_REQUEST",
                          "status": 400
                      }
                      
                      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

                      340

                      Online

                      32.5k

                      Benutzer

                      81.8k

                      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