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. request umstellen auf axios notwendig?

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

request umstellen auf axios notwendig?

Geplant Angeheftet Gesperrt Verschoben JavaScript
16 Beiträge 4 Kommentatoren 522 Aufrufe 4 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.
  • Ben1983B Ben1983

    Hallo, derzeit kommuniziere ich mit einer REST API via request.
    Hier der Haupt request:
    7806af7a-999f-496e-9a5d-1cb4a9908a20-image.png

    nun wollte ich auf axios umstellen. => Ist dies überhaupt notwendig?
    request musste ich im script nicht mal implementieren.
    Axios wird nicht erkannt, daher wollte ich es deklarieren.
    Da erscheint diese Fehlermeldung:
    3eb7bee0-429b-4f1d-8ad0-4079e6597e1e-image.png

    wie bekomme ich axios in mein script?

    SBorgS Offline
    SBorgS Offline
    SBorg
    Forum Testing Most Active
    schrieb am zuletzt editiert von
    #2

    @ben1983 Das funktioniert schon so, lediglich die Hilfe für axios kann er da nicht anzeigen.

    Trage mal "axios" im Javascript-Adapter mit ein, dann sollte auch die Hilfe gehen:
    Bild 1.png

    LG SBorg ( SBorg auf GitHub)
    Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

    Ben1983B 1 Antwort Letzte Antwort
    0
    • SBorgS SBorg

      @ben1983 Das funktioniert schon so, lediglich die Hilfe für axios kann er da nicht anzeigen.

      Trage mal "axios" im Javascript-Adapter mit ein, dann sollte auch die Hilfe gehen:
      Bild 1.png

      Ben1983B Offline
      Ben1983B Offline
      Ben1983
      schrieb am zuletzt editiert von
      #3

      @sborg leider nicht.
      und axios macht auch nichts

      AlCalzoneA 1 Antwort Letzte Antwort
      0
      • Ben1983B Ben1983

        @sborg leider nicht.
        und axios macht auch nichts

        AlCalzoneA Offline
        AlCalzoneA Offline
        AlCalzone
        Developer
        schrieb am zuletzt editiert von AlCalzone
        #4

        @ben1983 Das Problem ist in der axios-Dokumentation beschrieben!
        https://github.com/axios/axios#note-commonjs-usage

        6f58a266-c759-4fb9-9b7c-f6243462ef18-grafik.png


        Kann sein, dass du den Skript-Editor danach neu laden musst. Bei mir gehts jedenfalls:
        21dace07-ff75-47be-bbcf-2b7609da4d0c-grafik.png


        Edit: Und du hast auch wirklich axios bei den zusätzlichen Modulen UND der Syntaxhilfe eingetragen?
        b63e7f0c-19ff-4412-85b7-726b65eab7fe-grafik.png

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

        Ben1983B 1 Antwort Letzte Antwort
        0
        • AlCalzoneA AlCalzone

          @ben1983 Das Problem ist in der axios-Dokumentation beschrieben!
          https://github.com/axios/axios#note-commonjs-usage

          6f58a266-c759-4fb9-9b7c-f6243462ef18-grafik.png


          Kann sein, dass du den Skript-Editor danach neu laden musst. Bei mir gehts jedenfalls:
          21dace07-ff75-47be-bbcf-2b7609da4d0c-grafik.png


          Edit: Und du hast auch wirklich axios bei den zusätzlichen Modulen UND der Syntaxhilfe eingetragen?
          b63e7f0c-19ff-4412-85b7-726b65eab7fe-grafik.png

          Ben1983B Offline
          Ben1983B Offline
          Ben1983
          schrieb am zuletzt editiert von
          #5

          @alcalzone scheint zu funktionieren ;-)
          Was bringt mir aber genereell axios für Vorteile im vergleich zu request?

          OliverIOO 1 Antwort Letzte Antwort
          0
          • Ben1983B Ben1983

            @alcalzone scheint zu funktionieren ;-)
            Was bringt mir aber genereell axios für Vorteile im vergleich zu request?

            OliverIOO Offline
            OliverIOO Offline
            OliverIO
            schrieb am zuletzt editiert von OliverIO
            #6

            @ben1983

            Dazu liest du am besten mal den Grund warum request
            In den maintanance mode gegangen ist.
            https://github.com/request/request/issues/3142

            Als bestes Beispiel des modernen JavaScripts kann request keine promises, sonder bietet noch callback functions an.
            Die kann man zwar ich selbst Kapseln oder über ein extra npm packet sich die Arbeit abnehmen lassen, aber, wie er ja schreibt, gibt es Leute die das bemängeln.

            Also aktuell eher philosophischer Natur.
            Aber allein des Fakts das das packet nun als deprecated angezeigt wird und auch hier die Diskussion wird die Verwendung von request kontinuierlich abnehmen.

            Daher, wenn man was neu macht, dann lieber auch aktuell gepflegte packet verwenden.

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

            Ben1983B 1 Antwort Letzte Antwort
            0
            • OliverIOO OliverIO

              @ben1983

              Dazu liest du am besten mal den Grund warum request
              In den maintanance mode gegangen ist.
              https://github.com/request/request/issues/3142

              Als bestes Beispiel des modernen JavaScripts kann request keine promises, sonder bietet noch callback functions an.
              Die kann man zwar ich selbst Kapseln oder über ein extra npm packet sich die Arbeit abnehmen lassen, aber, wie er ja schreibt, gibt es Leute die das bemängeln.

              Also aktuell eher philosophischer Natur.
              Aber allein des Fakts das das packet nun als deprecated angezeigt wird und auch hier die Diskussion wird die Verwendung von request kontinuierlich abnehmen.

              Daher, wenn man was neu macht, dann lieber auch aktuell gepflegte packet verwenden.

              Ben1983B Offline
              Ben1983B Offline
              Ben1983
              schrieb am zuletzt editiert von
              #7

              @oliverio OK, habe es umgebaut, allerdings bekomme ich irgendwie ziemlich oft diesen Fehler:
              c4d94722-6529-45b2-b891-5ba2ae9ccc2a-image.png
              Ich lese jede 15min historische Daten aus einem energiemanagement system aus.
              das mache ich in einer foreach schleife. und dann so:

              ed230091-a708-4352-86b4-9ef87dd83228-image.png
              manchmal erscheint dann dieser fehler.
              Heute bspw. um 06:45, 07:15 und 09:15
              Die restlichen 9stunden => also 9*4 = 36 mal hat es ohne Fehler funktioniert
              Was kann das sein?

              OliverIOO 1 Antwort Letzte Antwort
              0
              • Ben1983B Ben1983

                @oliverio OK, habe es umgebaut, allerdings bekomme ich irgendwie ziemlich oft diesen Fehler:
                c4d94722-6529-45b2-b891-5ba2ae9ccc2a-image.png
                Ich lese jede 15min historische Daten aus einem energiemanagement system aus.
                das mache ich in einer foreach schleife. und dann so:

                ed230091-a708-4352-86b4-9ef87dd83228-image.png
                manchmal erscheint dann dieser fehler.
                Heute bspw. um 06:45, 07:15 und 09:15
                Die restlichen 9stunden => also 9*4 = 36 mal hat es ohne Fehler funktioniert
                Was kann das sein?

                OliverIOO Offline
                OliverIOO Offline
                OliverIO
                schrieb am zuletzt editiert von
                #8

                @ben1983
                Das sind jetzt aber innerhalb sehr kurzer Zeit viele Anfragen
                Der fehlergrund steht ja dabei Connection refused also abgelehnt. Hast du kurz davor eine erfolgreiche Abfrage? Lehnt das System dann alle nachfolgenden ab?

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

                Ben1983B 1 Antwort Letzte Antwort
                0
                • OliverIOO OliverIO

                  @ben1983
                  Das sind jetzt aber innerhalb sehr kurzer Zeit viele Anfragen
                  Der fehlergrund steht ja dabei Connection refused also abgelehnt. Hast du kurz davor eine erfolgreiche Abfrage? Lehnt das System dann alle nachfolgenden ab?

                  Ben1983B Offline
                  Ben1983B Offline
                  Ben1983
                  schrieb am zuletzt editiert von
                  #9

                  @oliverio Ich mache 73 Anfragen hintereinander.
                  (Sind 73) Historische Abfragen.
                  Dies mache ich alle 15 min und das funktioniert auch nur ca. 2-3 mal am Tag nicht. Sonst einwandfrei.
                  Keine ahnung warum es manchmal nicht funktioniert

                  OliverIOO 1 Antwort Letzte Antwort
                  0
                  • Ben1983B Ben1983

                    @oliverio Ich mache 73 Anfragen hintereinander.
                    (Sind 73) Historische Abfragen.
                    Dies mache ich alle 15 min und das funktioniert auch nur ca. 2-3 mal am Tag nicht. Sonst einwandfrei.
                    Keine ahnung warum es manchmal nicht funktioniert

                    OliverIOO Offline
                    OliverIOO Offline
                    OliverIO
                    schrieb am zuletzt editiert von OliverIO
                    #10

                    @ben1983

                    dann solltest du zwischen den abfragen jeweils mal ein paar milisekunden (50ms?) warten, evtl überforderst du die Gegenstelle damit. du kannst ja mal ausrechnen was 2ms Abstand genau bedeuten (1 Sekunde = 1000ms).

                    Helfen kann dir evtl die folgende Bibliothek
                    https://www.npmjs.com/package/axios-request-throttle

                    wieso 73 historische abfragen hinterenander, ändern sich die nach 15 Minuten?
                    Kann man abfragen zusammenfassen? Was gibt die API her?

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

                    Ben1983B 1 Antwort Letzte Antwort
                    0
                    • OliverIOO OliverIO

                      @ben1983

                      dann solltest du zwischen den abfragen jeweils mal ein paar milisekunden (50ms?) warten, evtl überforderst du die Gegenstelle damit. du kannst ja mal ausrechnen was 2ms Abstand genau bedeuten (1 Sekunde = 1000ms).

                      Helfen kann dir evtl die folgende Bibliothek
                      https://www.npmjs.com/package/axios-request-throttle

                      wieso 73 historische abfragen hinterenander, ändern sich die nach 15 Minuten?
                      Kann man abfragen zusammenfassen? Was gibt die API her?

                      Ben1983B Offline
                      Ben1983B Offline
                      Ben1983
                      schrieb am zuletzt editiert von
                      #11

                      @oliverio leider kann man nur die onlinewerte zusammenfassen, das mache ich.
                      Und durchlaufe dann die response.
                      Bei den historischen Werten geht das leider nicht.
                      Theoretisch müsste ich sogar nur die Werte für heute anrufen. Da ich die Werte von gestern schon habe.
                      Aber um 00:00 müsste man die dann auch abfragen…. Am 01. im Monat dann die Werte für letzten Monat noch dazu usw.
                      Also an irgend einem Punkt liest man sowieso alle aus. Aus diesem Grund habe ich einfach das Array durchlaufen.

                      Klar Wartezeit könnte man noch einbauen, aber warum geht es quasi 23,5 x 4 mal und 2 mal nicht?
                      Ich warte ja mit await auch bis es fertig ist.

                      OliverIOO 1 Antwort Letzte Antwort
                      0
                      • Ben1983B Ben1983

                        @oliverio leider kann man nur die onlinewerte zusammenfassen, das mache ich.
                        Und durchlaufe dann die response.
                        Bei den historischen Werten geht das leider nicht.
                        Theoretisch müsste ich sogar nur die Werte für heute anrufen. Da ich die Werte von gestern schon habe.
                        Aber um 00:00 müsste man die dann auch abfragen…. Am 01. im Monat dann die Werte für letzten Monat noch dazu usw.
                        Also an irgend einem Punkt liest man sowieso alle aus. Aus diesem Grund habe ich einfach das Array durchlaufen.

                        Klar Wartezeit könnte man noch einbauen, aber warum geht es quasi 23,5 x 4 mal und 2 mal nicht?
                        Ich warte ja mit await auch bis es fertig ist.

                        OliverIOO Offline
                        OliverIOO Offline
                        OliverIO
                        schrieb am zuletzt editiert von
                        #12

                        @ben1983
                        du deckst den client code ab und wartest, bis der server irgendwie meldet.
                        wenn dem server etwas nicht passt, dann reagiert er halt mit fehler. das deckt await ja nicht ab.
                        ich wette damit, wenn du ne wartezeit einfügst bzw. das paket throttled axios verwendest, dann werden die probleme nicht mehr auftreten

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

                        Ben1983B 1 Antwort Letzte Antwort
                        0
                        • OliverIOO OliverIO

                          @ben1983
                          du deckst den client code ab und wartest, bis der server irgendwie meldet.
                          wenn dem server etwas nicht passt, dann reagiert er halt mit fehler. das deckt await ja nicht ab.
                          ich wette damit, wenn du ne wartezeit einfügst bzw. das paket throttled axios verwendest, dann werden die probleme nicht mehr auftreten

                          Ben1983B Offline
                          Ben1983B Offline
                          Ben1983
                          schrieb am zuletzt editiert von
                          #13

                          @oliverio Und axiosThrottle trage ich im js adapter einfach bei den zusätzlichen npm modulen ein, rufe das einmal auf und dann lase ich den code so, wie er ist?

                          OliverIOO 1 Antwort Letzte Antwort
                          0
                          • Ben1983B Ben1983

                            @oliverio Und axiosThrottle trage ich im js adapter einfach bei den zusätzlichen npm modulen ein, rufe das einmal auf und dann lase ich den code so, wie er ist?

                            OliverIOO Offline
                            OliverIOO Offline
                            OliverIO
                            schrieb am zuletzt editiert von OliverIO
                            #14

                            @ben1983

                            ja, erst in den npm modulen eintragen.

                            dann am anfang von deinem skript jedes modul einmal einbinden
                            und den einen befehl aufrufen.

                            danach kannst du deinen code wie bisher verwenden..
                            das packet schaltet sich zwischen deine abfragen und kontrolliert dann die maximale menge an abfragen pro minute

                            der anfang müsste so aussehen, wenn du ebenfalls den variablennamen axios zum abruf verwendest. die 20 enstspricht 50ms abstand zwischen den abfragen

                            const axios =require('axios');
                            const axiosThrottle = require('axios-request-throttle');
                            
                            axiosThrottle.use(axios, { requestsPerSecond: 20 });
                            

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

                            Ben1983B 1 Antwort Letzte Antwort
                            0
                            • OliverIOO OliverIO

                              @ben1983

                              ja, erst in den npm modulen eintragen.

                              dann am anfang von deinem skript jedes modul einmal einbinden
                              und den einen befehl aufrufen.

                              danach kannst du deinen code wie bisher verwenden..
                              das packet schaltet sich zwischen deine abfragen und kontrolliert dann die maximale menge an abfragen pro minute

                              der anfang müsste so aussehen, wenn du ebenfalls den variablennamen axios zum abruf verwendest. die 20 enstspricht 50ms abstand zwischen den abfragen

                              const axios =require('axios');
                              const axiosThrottle = require('axios-request-throttle');
                              
                              axiosThrottle.use(axios, { requestsPerSecond: 20 });
                              
                              Ben1983B Offline
                              Ben1983B Offline
                              Ben1983
                              schrieb am zuletzt editiert von
                              #15

                              @oliverio ok, ich beobachte es jetzt mal paar tage und binde es dann mal ein.
                              Generell kann es ja nicht schlecht sein.
                              Wenn er sich zwischen schaltet, dann gehts beim await quasi nach 50ms weiter, oder?
                              Also nach der Rückmeldung.

                              OliverIOO 1 Antwort Letzte Antwort
                              0
                              • Ben1983B Ben1983

                                @oliverio ok, ich beobachte es jetzt mal paar tage und binde es dann mal ein.
                                Generell kann es ja nicht schlecht sein.
                                Wenn er sich zwischen schaltet, dann gehts beim await quasi nach 50ms weiter, oder?
                                Also nach der Rückmeldung.

                                OliverIOO Offline
                                OliverIOO Offline
                                OliverIO
                                schrieb am zuletzt editiert von OliverIO
                                #16

                                @ben1983
                                Sozusagen.
                                Dein Code läuft einfach so durch, das await wartet sozusagen dann etwas länger.

                                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
                                Antworten
                                • In einem neuen Thema antworten
                                Anmelden zum Antworten
                                • Älteste zuerst
                                • Neuste zuerst
                                • Meiste Stimmen


                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                694

                                Online

                                32.6k

                                Benutzer

                                82.2k

                                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