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. ioBroker Allgemein
  4. AXIOS Fehler auf Produktionssystem, dev-server geht

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

AXIOS Fehler auf Produktionssystem, dev-server geht

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
8 Beiträge 3 Kommentatoren 990 Aufrufe 3 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.
  • drb-germanyD Offline
    drb-germanyD Offline
    drb-germany
    schrieb am zuletzt editiert von
    #1

    Hallo,

    ich arbeite seit einigen Tagen an einem Adapter für die Ansteuerung der SMA Wallbox (SMA EV Charger 7.4 / 22) über das Web-Interface der Box. Dazu verwende ich mit AXIOS POST, GET und PUT Anfragen. In meiner Entwicklungsumgebung (dev-server) funktioniert die Abfrage eines Authorization Tokens (über POST) ohne Probleme. Auf dem Produktivsystem (gleiches Netzwerk, Ubuntu, meine "echte" ioBroker Installation) bekomme ich mit dem gleichen Adapter einen Status 500 Fehler ("AxiosError: Request failed with status code 500"). Wenn ich den dev-server auf dem gleichen System wie dem Produktivsystem teste, dann funktioniert es auch. Leider gibt es bis auf die Fehlermeldung AxiosError (siehe oben) keine weiteren Informationen. Hat jemand eine Idee, warum es auf dem dev-server funktioniert, auf der "echten" ioBroker Installation dann aber nicht?

    Repository:
    https://github.com/drb-germany/ioBroker.smaevcharger

    An das Moderatorenteam: Post bitte in Entwicklung verschieben, dort konnte ich keinen Beitrag erstellen (keine Rechte?).

    Danke.

    OliverIOO 1 Antwort Letzte Antwort
    0
    • drb-germanyD drb-germany

      Hallo,

      ich arbeite seit einigen Tagen an einem Adapter für die Ansteuerung der SMA Wallbox (SMA EV Charger 7.4 / 22) über das Web-Interface der Box. Dazu verwende ich mit AXIOS POST, GET und PUT Anfragen. In meiner Entwicklungsumgebung (dev-server) funktioniert die Abfrage eines Authorization Tokens (über POST) ohne Probleme. Auf dem Produktivsystem (gleiches Netzwerk, Ubuntu, meine "echte" ioBroker Installation) bekomme ich mit dem gleichen Adapter einen Status 500 Fehler ("AxiosError: Request failed with status code 500"). Wenn ich den dev-server auf dem gleichen System wie dem Produktivsystem teste, dann funktioniert es auch. Leider gibt es bis auf die Fehlermeldung AxiosError (siehe oben) keine weiteren Informationen. Hat jemand eine Idee, warum es auf dem dev-server funktioniert, auf der "echten" ioBroker Installation dann aber nicht?

      Repository:
      https://github.com/drb-germany/ioBroker.smaevcharger

      An das Moderatorenteam: Post bitte in Entwicklung verschieben, dort konnte ich keinen Beitrag erstellen (keine Rechte?).

      Danke.

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

      @drb-germany

      du könntest versuchen mit curl auf der shell den request mal nachzustellen.
      bei curl kann man eine detaillierten debug ausgabe einstellen (option --verbose, vgl auch https://curl.se/docs/manpage.html).
      bei einem 500er Fehler ist aber eher die Wallbox der Verursacher. Irgendwas schmeckt dem dann noch nicht, auch wenn es auf einem anderen weg geht (kann mir adhoc da zwar auch nix vorstellen, aber deswegen der weg mit curl)
      kannst du in der wallbox in ein log schauen? da müsste etwas genaueres drin stehen. aber verstehe auch, das das bei geschlossenen anwendungen manchmal schwierig ist.

      du sendest die request aus einem adapter heraus und nicht vom browser aus? dann scheidet cors auch aus.
      hast du schon mal in error.response.data geschaut?
      evtl steht da was detaillierteres drin wie in error
      https://axios-http.com/docs/handling_errors

      ich hab mal in den code geschaut, verursacht zwar kein Problem aber

      headers: {
         accept: 'application/json, text/plain, */*',
      },
      

      da reicht nur application/json, da dein Programm ja sonst kein anderes Format erwartet oder verarbeiten kann. eigentlich kannst accept auch weglassen. idealerweise sollte der content-type ausreichen

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

      drb-germanyD 1 Antwort Letzte Antwort
      0
      • OliverIOO OliverIO

        @drb-germany

        du könntest versuchen mit curl auf der shell den request mal nachzustellen.
        bei curl kann man eine detaillierten debug ausgabe einstellen (option --verbose, vgl auch https://curl.se/docs/manpage.html).
        bei einem 500er Fehler ist aber eher die Wallbox der Verursacher. Irgendwas schmeckt dem dann noch nicht, auch wenn es auf einem anderen weg geht (kann mir adhoc da zwar auch nix vorstellen, aber deswegen der weg mit curl)
        kannst du in der wallbox in ein log schauen? da müsste etwas genaueres drin stehen. aber verstehe auch, das das bei geschlossenen anwendungen manchmal schwierig ist.

        du sendest die request aus einem adapter heraus und nicht vom browser aus? dann scheidet cors auch aus.
        hast du schon mal in error.response.data geschaut?
        evtl steht da was detaillierteres drin wie in error
        https://axios-http.com/docs/handling_errors

        ich hab mal in den code geschaut, verursacht zwar kein Problem aber

        headers: {
           accept: 'application/json, text/plain, */*',
        },
        

        da reicht nur application/json, da dein Programm ja sonst kein anderes Format erwartet oder verarbeiten kann. eigentlich kannst accept auch weglassen. idealerweise sollte der content-type ausreichen

        drb-germanyD Offline
        drb-germanyD Offline
        drb-germany
        schrieb am zuletzt editiert von
        #3

        Danke für die schnelle Antwort, @oliverio.

        Mit curl funktioniert der Request, es geht ja auch mit dem dev-server auf dem Ubuntu Server wo es unter der finalen ioBroker Instanz nicht funktioniert. Ich kann mir das eigentlich nur mit unterschiedlichen Versionen von AXIOS erklären, weil sonst ist ja alles gleich ist.

        Der Request geht vom Adapter aus raus. Error.response.data habe ich probiert, das gibt eine Exception, da es das Objekt nicht gibt.

        Ich werde versuchen/prüfen ob die Versionen gleich sind und ggf. mal ein anderes Paket nutzen. Die Installation über den GitHub-Link ist aber der richtige Weg das im Produktivsystem zu testen, oder? Das macht es halt immer etwas aufwändig, da man einen recht langen Weg hat...

        drb-germanyD OliverIOO 2 Antworten Letzte Antwort
        0
        • drb-germanyD drb-germany

          Danke für die schnelle Antwort, @oliverio.

          Mit curl funktioniert der Request, es geht ja auch mit dem dev-server auf dem Ubuntu Server wo es unter der finalen ioBroker Instanz nicht funktioniert. Ich kann mir das eigentlich nur mit unterschiedlichen Versionen von AXIOS erklären, weil sonst ist ja alles gleich ist.

          Der Request geht vom Adapter aus raus. Error.response.data habe ich probiert, das gibt eine Exception, da es das Objekt nicht gibt.

          Ich werde versuchen/prüfen ob die Versionen gleich sind und ggf. mal ein anderes Paket nutzen. Die Installation über den GitHub-Link ist aber der richtige Weg das im Produktivsystem zu testen, oder? Das macht es halt immer etwas aufwändig, da man einen recht langen Weg hat...

          drb-germanyD Offline
          drb-germanyD Offline
          drb-germany
          schrieb am zuletzt editiert von
          #4

          Habe es jetzt hinbekommen, indem ich für den Token-Post von AXIOS auf node-fetch gewechselt habe.

          Werde das jetzt noch etwas testen und dann einheitlich machen. Ist mir trotzdem ein Rätsel, warum AXIOS hier nicht funktioniert hat.

          1 Antwort Letzte Antwort
          0
          • drb-germanyD drb-germany

            Danke für die schnelle Antwort, @oliverio.

            Mit curl funktioniert der Request, es geht ja auch mit dem dev-server auf dem Ubuntu Server wo es unter der finalen ioBroker Instanz nicht funktioniert. Ich kann mir das eigentlich nur mit unterschiedlichen Versionen von AXIOS erklären, weil sonst ist ja alles gleich ist.

            Der Request geht vom Adapter aus raus. Error.response.data habe ich probiert, das gibt eine Exception, da es das Objekt nicht gibt.

            Ich werde versuchen/prüfen ob die Versionen gleich sind und ggf. mal ein anderes Paket nutzen. Die Installation über den GitHub-Link ist aber der richtige Weg das im Produktivsystem zu testen, oder? Das macht es halt immer etwas aufwändig, da man einen recht langen Weg hat...

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

            @drb-germany sagte in AXIOS Fehler auf Produktionssystem, dev-server geht:

            Error.response.data

            es wäre ein kleines error.respone.data und nicht Error.reponse.data gewesen.
            Gemäß doku muss es das geben.
            Schaust du da mit einem debugger rein?

            @drb-germany sagte in AXIOS Fehler auf Produktionssystem, dev-server geht:

            Die Installation über den GitHub-Link ist aber der richtige Weg das im Produktivsystem zu testen, oder?

            im Produktiv system ja.

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

            drb-germanyD 1 Antwort Letzte Antwort
            0
            • OliverIOO OliverIO

              @drb-germany sagte in AXIOS Fehler auf Produktionssystem, dev-server geht:

              Error.response.data

              es wäre ein kleines error.respone.data und nicht Error.reponse.data gewesen.
              Gemäß doku muss es das geben.
              Schaust du da mit einem debugger rein?

              @drb-germany sagte in AXIOS Fehler auf Produktionssystem, dev-server geht:

              Die Installation über den GitHub-Link ist aber der richtige Weg das im Produktivsystem zu testen, oder?

              im Produktiv system ja.

              drb-germanyD Offline
              drb-germanyD Offline
              drb-germany
              schrieb am zuletzt editiert von drb-germany
              #6

              @oliverio: Ja, im Code habe ich es richtig drin, das error.response.data Objekt ist dann auf dem Produktivsystem tatsächlich einfach nur leer.

              Code

              .catch((error) => {
              	this.setState('info.connection', false, true);
              	if (error.response) {
              		// The request was made and the server responded with a status code
              		// that falls out of the range of 2xx
              		this.log.error(`Response: ${JSON.stringify(error.response.data)}`);
              		this.log.error(`Status: ${JSON.stringify(error.response.status)}`);
              		this.log.error(`Headers: ${JSON.stringify(error.response.headers)}`);
              	} else if (error.request) {
              		// The request was made but no response was received
              		// `error.request` is an instance of XMLHttpRequest in the browser and an instance of
              		// http.ClientRequest in node.js
              		this.log.error(`Request: ${error.request}`);
              	} else {
              		// Something happened in setting up the request that triggered an Error
              		this.log.error(`Error: ${error.message}`);
              	}
              	this.log.error(`Config: ${JSON.stringify(error.config)}`);
              });
              

              Logs:
              18dbe3c7-cbcf-45c4-86cd-a6c1ca6f6f6c-image.png

              Mit node-fetch läuft es aber jetzt zumindest.

              mcm1957M 2 Antworten Letzte Antwort
              0
              • drb-germanyD drb-germany

                @oliverio: Ja, im Code habe ich es richtig drin, das error.response.data Objekt ist dann auf dem Produktivsystem tatsächlich einfach nur leer.

                Code

                .catch((error) => {
                	this.setState('info.connection', false, true);
                	if (error.response) {
                		// The request was made and the server responded with a status code
                		// that falls out of the range of 2xx
                		this.log.error(`Response: ${JSON.stringify(error.response.data)}`);
                		this.log.error(`Status: ${JSON.stringify(error.response.status)}`);
                		this.log.error(`Headers: ${JSON.stringify(error.response.headers)}`);
                	} else if (error.request) {
                		// The request was made but no response was received
                		// `error.request` is an instance of XMLHttpRequest in the browser and an instance of
                		// http.ClientRequest in node.js
                		this.log.error(`Request: ${error.request}`);
                	} else {
                		// Something happened in setting up the request that triggered an Error
                		this.log.error(`Error: ${error.message}`);
                	}
                	this.log.error(`Config: ${JSON.stringify(error.config)}`);
                });
                

                Logs:
                18dbe3c7-cbcf-45c4-86cd-a6c1ca6f6f6c-image.png

                Mit node-fetch läuft es aber jetzt zumindest.

                mcm1957M Online
                mcm1957M Online
                mcm1957
                schrieb am zuletzt editiert von
                #7

                @drb-germany
                Keine Ahnung ob das was mit deinem Problem zu tun hat. Aber wir hatten im Telegram Developer Channel erst gestern die Diskussion zu await / async /.then. An sich ist die Kombination async und .then von der Sprache her zulässig. ABER die Meinung war weitestgehenst dies nicht zu machen.

                Also ENTWEDER asynchron mit await zu arbeiten ODER mit Verkettung über .then ...

                Falls du noch Probleme hast, schau mal im Developer Channel rein und frag dort nochmal.
                https://t.me/+gsX-e8k4mLtmZjZk
                https://t.me/ioBroker_development

                Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                Support Repositoryverwaltung.

                Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                LESEN - gute Forenbeitrage

                1 Antwort Letzte Antwort
                0
                • drb-germanyD drb-germany

                  @oliverio: Ja, im Code habe ich es richtig drin, das error.response.data Objekt ist dann auf dem Produktivsystem tatsächlich einfach nur leer.

                  Code

                  .catch((error) => {
                  	this.setState('info.connection', false, true);
                  	if (error.response) {
                  		// The request was made and the server responded with a status code
                  		// that falls out of the range of 2xx
                  		this.log.error(`Response: ${JSON.stringify(error.response.data)}`);
                  		this.log.error(`Status: ${JSON.stringify(error.response.status)}`);
                  		this.log.error(`Headers: ${JSON.stringify(error.response.headers)}`);
                  	} else if (error.request) {
                  		// The request was made but no response was received
                  		// `error.request` is an instance of XMLHttpRequest in the browser and an instance of
                  		// http.ClientRequest in node.js
                  		this.log.error(`Request: ${error.request}`);
                  	} else {
                  		// Something happened in setting up the request that triggered an Error
                  		this.log.error(`Error: ${error.message}`);
                  	}
                  	this.log.error(`Config: ${JSON.stringify(error.config)}`);
                  });
                  

                  Logs:
                  18dbe3c7-cbcf-45c4-86cd-a6c1ca6f6f6c-image.png

                  Mit node-fetch läuft es aber jetzt zumindest.

                  mcm1957M Online
                  mcm1957M Online
                  mcm1957
                  schrieb am zuletzt editiert von
                  #8

                  @drb-germany
                  Außerdem scheinst du axios NICHT als dependency eingetragen zu haben (package.json)

                  Check das mal. Ev. hats du schlicht und einfach unterschiedliche Axios Versionen am dev.sever und in prod.

                  Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                  Support Repositoryverwaltung.

                  Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                  LESEN - gute Forenbeitrage

                  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
                  FAQ Cloud / IOT
                  HowTo: Node.js-Update
                  HowTo: Backup/Restore
                  Downloads
                  BLOG

                  606

                  Online

                  32.6k

                  Benutzer

                  82.1k

                  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