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

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

POST Request an Pushcut

Scheduled Pinned Locked Moved JavaScript
27 Posts 4 Posters 2.3k Views 2 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.
  • Martin SchlenderM Martin Schlender

    @oliverio klar - aber ich hatte ja offenbar ein großes Problem mit den Headern- da wußte ich nämlich die Syntax nicht. Jetzt komm ich auch wieder nicht weiter:

    url:     'https://api.pushcut.io/v1/notifications/Test',
      body:    '{"title":"Dies ist ein Test","defaultAction":{"input":"Eine Zeile zum Ausgeben", "shortcut":"InputText"}}'
    }, function(error, response, body){
      
    

    das läßt sich nicht speichern. Hast ne Idee warum nicht?

    Martin SchlenderM Offline
    Martin SchlenderM Offline
    Martin Schlender
    wrote on last edited by
    #16

    @martin-schlender sagte in POST Request an Pushcut:

    body: '{"title":"Dies ist ein Test","defaultAction":{"input":"Eine Zeile zum Ausgeben", "shortcut":"InputText"}}' }, function(error, response, body){

    hat sich erledigt. Das war jetzt das Blockly das auf einen Return Value gewartet hatte. Jetzt tut alles.
    Danke Euch

    1 Reply Last reply
    0
    • Martin SchlenderM Martin Schlender

      @oliverio klar - aber ich hatte ja offenbar ein großes Problem mit den Headern- da wußte ich nämlich die Syntax nicht. Jetzt komm ich auch wieder nicht weiter:

      url:     'https://api.pushcut.io/v1/notifications/Test',
        body:    '{"title":"Dies ist ein Test","defaultAction":{"input":"Eine Zeile zum Ausgeben", "shortcut":"InputText"}}'
      }, function(error, response, body){
        
      

      das läßt sich nicht speichern. Hast ne Idee warum nicht?

      OliverIOO Offline
      OliverIOO Offline
      OliverIO
      wrote on last edited by
      #17

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

      gibt es eine fehlermeldung?
      es ist nur ein ausschnitt!

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

      Martin SchlenderM 1 Reply Last reply
      0
      • 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
        wrote on last edited by
        #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 Reply Last reply
        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 Online
          mickymM Online
          mickym
          Most Active
          wrote on last edited by
          #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 Reply Last reply
          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
            wrote on last edited by 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 Reply Last reply
            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
              wrote on last edited by
              #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 Reply Last reply
              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
                wrote on last edited by
                #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 Reply Last reply
                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 Do not disturb
                  T Do not disturb
                  ticaki
                  wrote on last edited by 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 Replies Last reply
                  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
                    wrote on last edited by
                    #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 Reply Last reply
                    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
                      wrote on last edited by
                      #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 Reply Last reply
                      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 Do not disturb
                        T Do not disturb
                        ticaki
                        wrote on last edited by
                        #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 Reply Last reply
                        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
                          wrote on last edited by
                          #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 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

                          361

                          Online

                          32.6k

                          Users

                          82.1k

                          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