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. Entwicklung
  4. Alternative für "request" Paket?

NEWS

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

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

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

Alternative für "request" Paket?

Scheduled Pinned Locked Moved Entwicklung
developerdevelopmentadapter entwicklungnodejsnpm
26 Posts 7 Posters 3.7k Views 7 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.
  • haus-automatisierungH Online
    haus-automatisierungH Online
    haus-automatisierung
    Developer Most Active
    wrote on last edited by
    #1

    Hallo zusammen,

    ich verwende ich all meinen Adaptern request. Dieses ist ja leider deprecated.

    Gibt es Empfehlungen von Eurer Seite, auf welches Paket man umstellen sollte? Da gibt es ja verschiedene Varianten.

    Hier ist eine Liste mit Alternativen zu finden.

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

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

      Hallo zusammen,

      ich verwende ich all meinen Adaptern request. Dieses ist ja leider deprecated.

      Gibt es Empfehlungen von Eurer Seite, auf welches Paket man umstellen sollte? Da gibt es ja verschiedene Varianten.

      Hier ist eine Liste mit Alternativen zu finden.

      haus-automatisierungH Online
      haus-automatisierungH Online
      haus-automatisierung
      Developer Most Active
      wrote on last edited by
      #2

      Ich sehe gerade, dass im Template schon axios als devDependency aufgeführt wird. Also habt ihr damit scheinbar schon positive Erfahrungen gemacht? 😄

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

      Jey CeeJ AlCalzoneA 2 Replies Last reply
      0
      • haus-automatisierungH haus-automatisierung

        Ich sehe gerade, dass im Template schon axios als devDependency aufgeführt wird. Also habt ihr damit scheinbar schon positive Erfahrungen gemacht? 😄

        Jey CeeJ Online
        Jey CeeJ Online
        Jey Cee
        Developer
        wrote on last edited by
        #3

        @haus-automatisierung axios ist auf jedenfall ein würdiger ersatz.

        Persönlicher Support
        Spenden -> paypal.me/J3YC33

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

          Ich sehe gerade, dass im Template schon axios als devDependency aufgeführt wird. Also habt ihr damit scheinbar schon positive Erfahrungen gemacht? 😄

          AlCalzoneA Offline
          AlCalzoneA Offline
          AlCalzone
          Developer
          wrote on last edited by
          #4

          Ich habe vor einiger Zeit auf axios umgestellt, da es schlanker ist und von Haus aus mit Promises umgehen kann.

          @haus-automatisierung sagte in Alternative für "request" Paket?:

          devDependency

          Dran denken, es bei Nutzung zu dependencies zu verschieben. Das fällt bei lokalen Tests oft nicht auf.

          Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

          haus-automatisierungH 1 Reply Last reply
          0
          • liv-in-skyL Offline
            liv-in-skyL Offline
            liv-in-sky
            wrote on last edited by
            #5

            das gilt auch für scripts ? müssen/sollten die alle auf axios umgestellt werden ?

            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

            arteckA 1 Reply Last reply
            0
            • liv-in-skyL liv-in-sky

              das gilt auch für scripts ? müssen/sollten die alle auf axios umgestellt werden ?

              arteckA Offline
              arteckA Offline
              arteck
              Developer Most Active
              wrote on last edited by
              #6

              @liv-in-sky solltest du ...jep

              zigbee hab ich, zwave auch, nuc's genauso und HA auch

              1 Reply Last reply
              2
              • AlCalzoneA AlCalzone

                Ich habe vor einiger Zeit auf axios umgestellt, da es schlanker ist und von Haus aus mit Promises umgehen kann.

                @haus-automatisierung sagte in Alternative für "request" Paket?:

                devDependency

                Dran denken, es bei Nutzung zu dependencies zu verschieben. Das fällt bei lokalen Tests oft nicht auf.

                haus-automatisierungH Online
                haus-automatisierungH Online
                haus-automatisierung
                Developer Most Active
                wrote on last edited by
                #7

                @AlCalzone sagte in Alternative für "request" Paket?:

                Dran denken, es bei Nutzung zu dependencies zu verschieben. Das fällt bei lokalen Tests oft nicht auf.

                Logisch 🙂 Danke, dann stelle ich mal auf axios um...

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

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

                  @AlCalzone sagte in Alternative für "request" Paket?:

                  Dran denken, es bei Nutzung zu dependencies zu verschieben. Das fällt bei lokalen Tests oft nicht auf.

                  Logisch 🙂 Danke, dann stelle ich mal auf axios um...

                  AlCalzoneA Offline
                  AlCalzoneA Offline
                  AlCalzone
                  Developer
                  wrote on last edited by
                  #8

                  @haus-automatisierung sagte in Alternative für "request" Paket?:

                  Logisch

                  Du glaubst nicht wie oft mir das schon passiert ist 😉

                  Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                  M 1 Reply Last reply
                  1
                  • AlCalzoneA AlCalzone

                    @haus-automatisierung sagte in Alternative für "request" Paket?:

                    Logisch

                    Du glaubst nicht wie oft mir das schon passiert ist 😉

                    M Offline
                    M Offline
                    MartyBr
                    wrote on last edited by
                    #9

                    @AlCalzone Hallo, ich suche gerade eine Anleitung, wie man das Modul "request" gegen "axios" tauscht. Ich habe einige Scripte, die ich aktualisieren möchte.
                    Leider finde ich sowohl in Google als auch hier im Forum keine Anleitung.
                    Kannst du mir kurz auf die Spur bringen?

                    Gruß
                    Martin


                    Intel NUCs mit Proxmox / Iobroker als VM unter Debian
                    Raspeberry mit USB Leseköpfen für Smartmeter
                    Homematic und Homematic IP

                    AlCalzoneA haus-automatisierungH 2 Replies Last reply
                    0
                    • M MartyBr

                      @AlCalzone Hallo, ich suche gerade eine Anleitung, wie man das Modul "request" gegen "axios" tauscht. Ich habe einige Scripte, die ich aktualisieren möchte.
                      Leider finde ich sowohl in Google als auch hier im Forum keine Anleitung.
                      Kannst du mir kurz auf die Spur bringen?

                      AlCalzoneA Offline
                      AlCalzoneA Offline
                      AlCalzone
                      Developer
                      wrote on last edited by
                      #10

                      @MartyBr Das hängt schwer davon ab, wie du request nutzt. Ich würde beide Pakete auf Github vergleichen:
                      https://github.com/request/request#super-simple-to-use
                      https://github.com/axios/axios#note-commonjs-usage

                      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                      M 1 Reply Last reply
                      0
                      • AlCalzoneA AlCalzone

                        @MartyBr Das hängt schwer davon ab, wie du request nutzt. Ich würde beide Pakete auf Github vergleichen:
                        https://github.com/request/request#super-simple-to-use
                        https://github.com/axios/axios#note-commonjs-usage

                        M Offline
                        M Offline
                        MartyBr
                        wrote on last edited by MartyBr
                        #11

                        @AlCalzone Danke für die Antwort. Die Weiterentwicklung von "Request" scheint eingestellt zu sein. Oder hast du andere Infos dazu? Ich bekomme im Log Warnungen. Ich versuche mal ein Script auf axios umzustellen.

                        #Edit:
                        Ich habe gerade das Paket "node-fetch" gefunden. Hat jemand Erfahrung damit gemacht?

                        Gruß
                        Martin


                        Intel NUCs mit Proxmox / Iobroker als VM unter Debian
                        Raspeberry mit USB Leseköpfen für Smartmeter
                        Homematic und Homematic IP

                        AlCalzoneA 1 Reply Last reply
                        0
                        • M MartyBr

                          @AlCalzone Danke für die Antwort. Die Weiterentwicklung von "Request" scheint eingestellt zu sein. Oder hast du andere Infos dazu? Ich bekomme im Log Warnungen. Ich versuche mal ein Script auf axios umzustellen.

                          #Edit:
                          Ich habe gerade das Paket "node-fetch" gefunden. Hat jemand Erfahrung damit gemacht?

                          AlCalzoneA Offline
                          AlCalzoneA Offline
                          AlCalzone
                          Developer
                          wrote on last edited by
                          #12

                          @MartyBr sagte in Alternative für "request" Paket?:

                          Ich bekomme im Log Warnungen.

                          Das dürfte nix mit der eingestellten Weiterentwicklung zu tun haben. Die kommen nur bei der Installation. Am besten zeigst du mal die Warnungen, damit wir keine Glaskugel brauchen...

                          Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                          M 1 Reply Last reply
                          0
                          • AlCalzoneA AlCalzone

                            @MartyBr sagte in Alternative für "request" Paket?:

                            Ich bekomme im Log Warnungen.

                            Das dürfte nix mit der eingestellten Weiterentwicklung zu tun haben. Die kommen nur bei der Installation. Am besten zeigst du mal die Warnungen, damit wir keine Glaskugel brauchen...

                            M Offline
                            M Offline
                            MartyBr
                            wrote on last edited by
                            #13

                            @AlCalzone Ich habe gerade Updates eingespielt und neu gestartet. Die nächste Warnung stelle ich hier ein.

                            Gruß
                            Martin


                            Intel NUCs mit Proxmox / Iobroker als VM unter Debian
                            Raspeberry mit USB Leseköpfen für Smartmeter
                            Homematic und Homematic IP

                            1 Reply Last reply
                            0
                            • M MartyBr

                              @AlCalzone Hallo, ich suche gerade eine Anleitung, wie man das Modul "request" gegen "axios" tauscht. Ich habe einige Scripte, die ich aktualisieren möchte.
                              Leider finde ich sowohl in Google als auch hier im Forum keine Anleitung.
                              Kannst du mir kurz auf die Spur bringen?

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

                              @MartyBr sagte in Alternative für "request" Paket?:

                              Hallo, ich suche gerade eine Anleitung, wie man das Modul "request" gegen "axios" tauscht.

                              Anleitungen nicht, aber eventuell hilft Dir mein diff?

                              https://github.com/klein0r/ioBroker.luftdaten/commit/ee5fa18817fdc22f9bb50ee8ec26f6c8e574fd22#diff-7a9076d6d94e62c13d641aa71f19ae8e

                              Oder auch

                              https://github.com/klein0r/ioBroker.octoprint/commit/55a3d85f475416041eee0d5899dd0e6dccbc82e8

                              Generell ist die Doku von Axios echt gut gemacht. Und ich finde es auch viel schöner damit zu arbeiten, als mit Request.

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

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

                                @MartyBr sagte in Alternative für "request" Paket?:

                                Hallo, ich suche gerade eine Anleitung, wie man das Modul "request" gegen "axios" tauscht.

                                Anleitungen nicht, aber eventuell hilft Dir mein diff?

                                https://github.com/klein0r/ioBroker.luftdaten/commit/ee5fa18817fdc22f9bb50ee8ec26f6c8e574fd22#diff-7a9076d6d94e62c13d641aa71f19ae8e

                                Oder auch

                                https://github.com/klein0r/ioBroker.octoprint/commit/55a3d85f475416041eee0d5899dd0e6dccbc82e8

                                Generell ist die Doku von Axios echt gut gemacht. Und ich finde es auch viel schöner damit zu arbeiten, als mit Request.

                                M Offline
                                M Offline
                                MartyBr
                                wrote on last edited by
                                #15

                                @haus-automatisierung Vielen Dank. Ich habe mal versucht, ein Script umzustellen, leider erfolglos. Ich vermute nun, dass hier der Server überlastet war (Wunderground). Ich stelle mal das Intervall größer.
                                Deine Doku werde ich mir mal "reinziehen". Ich gebe danacRückmeldung über die erfolgreiche Migration 😁

                                Gruß
                                Martin


                                Intel NUCs mit Proxmox / Iobroker als VM unter Debian
                                Raspeberry mit USB Leseköpfen für Smartmeter
                                Homematic und Homematic IP

                                1 Reply Last reply
                                0
                                • X Offline
                                  X Offline
                                  xawa
                                  wrote on last edited by
                                  #16

                                  Mit request hab ich kein Problem, mich an der Login Seite anzumelden und danach in eine Unterseite zu gehen um mein json abzurufen. Da ihr ja ratet zu axios zu wechseln hab ich mal einen ersten Test gewagt.

                                  Mit axios bekomm ich es einfach nicht hin. Die Anmeldung an der /web/login Seite klappt wunderbar, will ich jedoch dann in die Unterseite /api/client/12345678/status, dann bekomm ich immer die Meldung, dass die Anmeldung fehlgeschlagen ist. Könnt ihr mir helfen?

                                  const axios = require('axios');

                                  webLogin();

                                  function webLogin() {
                                  var API_SERVER = 'https://a-site-with-api-functions';
                                  var email = 'myemail';
                                  var password = 'mypassword';

                                  axios.post(API_SERVER + '/web/login', { email, password }, { withCredentials: true })
                                  .then(function(response) {
                                          //klappt wunderbar
                                           console.log('Authenticated');
                                          
                                          //folgendes scheitert dann an der 
                                           axios.get(API_SERVER + '/api/client/12345678/status', { withCredentials: true })
                                  
                                         }).catch(function(error) {
                                           console.log('Error on Authentication');
                                      });
                                  

                                  }

                                  Hier ein Auszug aus der Fehlermeldung in der Konsole:
                                  _header: 'GET /api/client/27494629/status HTTP/1.1\r\n' +
                                  'Accept: application/json, text/plain, /\r\n' +
                                  'User-Agent: axios/0.21.1\r\n' +
                                  'Host: www.rika-firenet.com\r\n' +
                                  'Connection: close\r\n' +
                                  '\r\n',
                                  _keepAliveTimeout: 0,
                                  _onPendingData: [Function: noopPendingOutput],
                                  agent: [Agent],
                                  socketPath: undefined,
                                  method: 'GET',
                                  maxHeaderSize: undefined,
                                  insecureHTTPParser: undefined,
                                  path: '/api/client/12345678/status',
                                  _ended: true,
                                  timeoutCb: null,
                                  upgradeOrConnect: false,
                                  parser: null,
                                  maxHeadersCount: null,
                                  reusedSocket: false,
                                  host: 'www.rika-firenet.com',
                                  protocol: 'https:',
                                  _redirectable: [Writable],
                                  [Symbol(kCapture)]: false,
                                  [Symbol(kNeedDrain)]: false,
                                  [Symbol(corked)]: 0,
                                  [Symbol(kOutHeaders)]: [Object: null prototype]
                                  data: 'Authorisation required!'
                                  isAxiosError: true,
                                  toJSON: [Function: toJSON]

                                  1 Reply Last reply
                                  0
                                  • X Offline
                                    X Offline
                                    xawa
                                    wrote on last edited by
                                    #17

                                    Hallo Leute, zumindest bin ich bei meinem Adapter schon mal etwas weiter indem ich den Weblogin und das Holen der Values getrennt hab und zumindest keine axios Fehler bezügl. fehlerhafte Authentisierung im Log bekomme.
                                    Allerdings funktionieren 2 Sachen nicht:

                                    1.) this.log.info funktioniert in diesen try - catch Blöcken von axios nicht, sondern nur außerhalb.
                                    Folgendes erscheint im Log des Adapters, wenn ich mit this.log.info('') etwas reinschreiben möchte:
                                    (1338) TypeError: Cannot read property 'log' of undefined at /opt/iobroker/node_modules/iobroker.andi-axios/main.js:107:11 at processTicksAndRejections (internal/process/task_queues.js:97:5)
                                    (1338) unhandled promise rejection: Cannot read property 'log' of undefined
                                    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().

                                    Bei Matthias Kleine und seinem Luftdaten-Adapter funktioniert this.log... ja auch und ich hab hier keine besondere Definition gesehen (https://github.com/klein0r/ioBroker.luftdaten/blob/master/main.js)

                                    2.) wie komme ich zu meinen Values im json und wie kann ich die im Log ausgeben, damit ich zumindest mal sehe, welche Daten daherkommen?

                                    Anbei ein Auszug meiner main.js Weiß hier jemand Rat von euch?

                                    async onReady() {
                                    //aufruf von Weblogin 	
                                    await this.webLogin();
                                    //und danach die Werte holen
                                    this.getstoveValues();
                                    }
                                    
                                    webLogin() {
                                    	axios.post(API_SERVER + '/web/login', { email, password }, { withCredentials: true })
                                    	.then(function(response) {			
                                    		this.log.info('local request done'); //wird nicht ins log geschrieben
                                    	}).catch(function(error) {
                                    	  this.log.info('Error on Authentication'); //wird nicht ins log geschrieben
                                    	});
                                    }
                                    
                                    getstoveValues() {
                                       axios.get(API_SERVER + '/api/client/12345678/status', { withCredentials: true, responseType: 'json' })
                                       .then(function(response) {
                                    	const content = response.data;
                                    	this.log.info(JSON.stringify(content)); //wird nicht ins log geschrieben
                                      }).catch(function(error) {
                                    	this.log.error(Error); //wird nicht ins log geschrieben
                                      });
                                      this.log.info("test"); //das WIRD ins log geschrieben
                                    }
                                    
                                    AlCalzoneA 1 Reply Last reply
                                    0
                                    • X xawa

                                      Hallo Leute, zumindest bin ich bei meinem Adapter schon mal etwas weiter indem ich den Weblogin und das Holen der Values getrennt hab und zumindest keine axios Fehler bezügl. fehlerhafte Authentisierung im Log bekomme.
                                      Allerdings funktionieren 2 Sachen nicht:

                                      1.) this.log.info funktioniert in diesen try - catch Blöcken von axios nicht, sondern nur außerhalb.
                                      Folgendes erscheint im Log des Adapters, wenn ich mit this.log.info('') etwas reinschreiben möchte:
                                      (1338) TypeError: Cannot read property 'log' of undefined at /opt/iobroker/node_modules/iobroker.andi-axios/main.js:107:11 at processTicksAndRejections (internal/process/task_queues.js:97:5)
                                      (1338) unhandled promise rejection: Cannot read property 'log' of undefined
                                      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().

                                      Bei Matthias Kleine und seinem Luftdaten-Adapter funktioniert this.log... ja auch und ich hab hier keine besondere Definition gesehen (https://github.com/klein0r/ioBroker.luftdaten/blob/master/main.js)

                                      2.) wie komme ich zu meinen Values im json und wie kann ich die im Log ausgeben, damit ich zumindest mal sehe, welche Daten daherkommen?

                                      Anbei ein Auszug meiner main.js Weiß hier jemand Rat von euch?

                                      async onReady() {
                                      //aufruf von Weblogin 	
                                      await this.webLogin();
                                      //und danach die Werte holen
                                      this.getstoveValues();
                                      }
                                      
                                      webLogin() {
                                      	axios.post(API_SERVER + '/web/login', { email, password }, { withCredentials: true })
                                      	.then(function(response) {			
                                      		this.log.info('local request done'); //wird nicht ins log geschrieben
                                      	}).catch(function(error) {
                                      	  this.log.info('Error on Authentication'); //wird nicht ins log geschrieben
                                      	});
                                      }
                                      
                                      getstoveValues() {
                                         axios.get(API_SERVER + '/api/client/12345678/status', { withCredentials: true, responseType: 'json' })
                                         .then(function(response) {
                                      	const content = response.data;
                                      	this.log.info(JSON.stringify(content)); //wird nicht ins log geschrieben
                                        }).catch(function(error) {
                                      	this.log.error(Error); //wird nicht ins log geschrieben
                                        });
                                        this.log.info("test"); //das WIRD ins log geschrieben
                                      }
                                      
                                      AlCalzoneA Offline
                                      AlCalzoneA Offline
                                      AlCalzone
                                      Developer
                                      wrote on last edited by
                                      #18

                                      @xawa sagte in Alternative für "request" Paket?:

                                      1.) this.log.info funktioniert in diesen try - catch Blöcken von axios nicht, sondern nur außerhalb.

                                      Das liegt an function () { ... }, hierbei wird der Wert von this nicht erhalten. Um dieses Problem zu beheben, kannst du die durch Pfeilfunktionen ersetzen.

                                      wie komme ich zu meinen Values im json und wie kann ich die im Log ausgeben, damit ich zumindest mal sehe, welche Daten daherkommen?

                                      Ich würde async/await nutzen, das umgeht auch dein Problem 1:

                                      async webLogin() {
                                          try {
                                      	const response = await axios.post(API_SERVER + '/web/login', { email, password }, { withCredentials: true });
                                              // in response steht jetzt die Antwort
                                              // wenn du sie außerhalb der Funktion nutzen willst:
                                              // return response; // oder einen Teil davon
                                          } catch (e) {
                                              // fehler behandeln/loggen
                                          }
                                      }
                                      

                                      Die Funktion webLogin musst du dann auch mit await aufrufen.

                                      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                                      X 1 Reply Last reply
                                      0
                                      • AlCalzoneA AlCalzone

                                        @xawa sagte in Alternative für "request" Paket?:

                                        1.) this.log.info funktioniert in diesen try - catch Blöcken von axios nicht, sondern nur außerhalb.

                                        Das liegt an function () { ... }, hierbei wird der Wert von this nicht erhalten. Um dieses Problem zu beheben, kannst du die durch Pfeilfunktionen ersetzen.

                                        wie komme ich zu meinen Values im json und wie kann ich die im Log ausgeben, damit ich zumindest mal sehe, welche Daten daherkommen?

                                        Ich würde async/await nutzen, das umgeht auch dein Problem 1:

                                        async webLogin() {
                                            try {
                                        	const response = await axios.post(API_SERVER + '/web/login', { email, password }, { withCredentials: true });
                                                // in response steht jetzt die Antwort
                                                // wenn du sie außerhalb der Funktion nutzen willst:
                                                // return response; // oder einen Teil davon
                                            } catch (e) {
                                                // fehler behandeln/loggen
                                            }
                                        }
                                        

                                        Die Funktion webLogin musst du dann auch mit await aufrufen.

                                        X Offline
                                        X Offline
                                        xawa
                                        wrote on last edited by
                                        #19

                                        Hallo AlCalzone, vielen Dank für deine Antwort. Was wären wir Änfänger ohne euch Profis.
                                        webLogin funktioniert prima, allerdings bekomme ich dann einen Authentifizierungsfehler in der Funktion getstoveValues(), wenn ich das json von der Statusseite (welche ja nicht die gleiche Seite ist, bei der ich mich anmelde) abrufen will. Irgendwie scheint die Speicherung vom cookie (withCredentials: true) nicht zu funktionieren.

                                        Mein Ablaufplan ist folgender und mit request (anstatt axios) funktioniert der Ablauf auch super:

                                        1.) ich rufe in der onReady() vom Adapter mein webLogin() auf (webLogin und Log funktioniert jetzt prima)
                                        2.) wenn weblogin nicht in catch läuft, soll getstoveValues() aufgerufen werden und die Daten vom json holen. Und da bekomme ich im Log dann: "getstoveValues: Request failed with status code 401" zurück (meine Meldung eben aus der catch - e.message)

                                         async onReady() {
                                            await this.webLogin();
                                         }
                                        
                                        async webLogin() {
                                        	try {
                                        		const response = await axios.post(API_SERVER + '/web/login', { email, password }, { withCredentials: true });
                                        		// in response steht jetzt die Antwort
                                        		// wenn du sie außerhalb der Funktion nutzen willst:
                                        		// return response; // oder einen Teil davon
                                        		this.log.info('webLogin OK')
                                        		
                                        		//getstoveValues aufrufen, wenn webLogin OK
                                        		await this.getstoveValues();
                                        	} catch (e) {
                                        		// fehler behandeln/loggen
                                        		this.log.error('webLogin' + e.message);
                                        	}
                                        }
                                        
                                        async getstoveValues() {
                                        	try {
                                        		const response2 = axios.get(API_SERVER + '/api/client/12345678/status', { withCredentials: true })
                                        		// in response steht jetzt die Antwort
                                        		// wenn du sie außerhalb der Funktion nutzen willst:
                                        		// return response; // oder einen Teil davon
                                        		this.log.info(JSON.stringify((await response2).data));
                                        	} catch (e) {
                                        		// fehler behandeln/loggen
                                        		this.log.error('getstoveValues: ' + e.message);
                                        	}
                                        }
                                        

                                        Viele Grüße, Andi

                                        AlCalzoneA arteckA 2 Replies Last reply
                                        0
                                        • X xawa

                                          Hallo AlCalzone, vielen Dank für deine Antwort. Was wären wir Änfänger ohne euch Profis.
                                          webLogin funktioniert prima, allerdings bekomme ich dann einen Authentifizierungsfehler in der Funktion getstoveValues(), wenn ich das json von der Statusseite (welche ja nicht die gleiche Seite ist, bei der ich mich anmelde) abrufen will. Irgendwie scheint die Speicherung vom cookie (withCredentials: true) nicht zu funktionieren.

                                          Mein Ablaufplan ist folgender und mit request (anstatt axios) funktioniert der Ablauf auch super:

                                          1.) ich rufe in der onReady() vom Adapter mein webLogin() auf (webLogin und Log funktioniert jetzt prima)
                                          2.) wenn weblogin nicht in catch läuft, soll getstoveValues() aufgerufen werden und die Daten vom json holen. Und da bekomme ich im Log dann: "getstoveValues: Request failed with status code 401" zurück (meine Meldung eben aus der catch - e.message)

                                           async onReady() {
                                              await this.webLogin();
                                           }
                                          
                                          async webLogin() {
                                          	try {
                                          		const response = await axios.post(API_SERVER + '/web/login', { email, password }, { withCredentials: true });
                                          		// in response steht jetzt die Antwort
                                          		// wenn du sie außerhalb der Funktion nutzen willst:
                                          		// return response; // oder einen Teil davon
                                          		this.log.info('webLogin OK')
                                          		
                                          		//getstoveValues aufrufen, wenn webLogin OK
                                          		await this.getstoveValues();
                                          	} catch (e) {
                                          		// fehler behandeln/loggen
                                          		this.log.error('webLogin' + e.message);
                                          	}
                                          }
                                          
                                          async getstoveValues() {
                                          	try {
                                          		const response2 = axios.get(API_SERVER + '/api/client/12345678/status', { withCredentials: true })
                                          		// in response steht jetzt die Antwort
                                          		// wenn du sie außerhalb der Funktion nutzen willst:
                                          		// return response; // oder einen Teil davon
                                          		this.log.info(JSON.stringify((await response2).data));
                                          	} catch (e) {
                                          		// fehler behandeln/loggen
                                          		this.log.error('getstoveValues: ' + e.message);
                                          	}
                                          }
                                          

                                          Viele Grüße, Andi

                                          AlCalzoneA Offline
                                          AlCalzoneA Offline
                                          AlCalzone
                                          Developer
                                          wrote on last edited by
                                          #20

                                          @xawa Ehrlich gesagt weiß ich es nicht. Habe bisher nicht mit HTTP-Authentifizierung gearbeitet. Was man so im Internet findet, scheint mit deinem Ansatz übereinzustimmen...

                                          Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                                          X 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

                                          639

                                          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