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. Fehlerbehandlung httpGet/httPost

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Fehlerbehandlung httpGet/httPost

Geplant Angeheftet Gesperrt Verschoben JavaScript
37 Beiträge 14 Kommentatoren 4.1k Aufrufe 11 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.
  • haus-automatisierungH haus-automatisierung

    @blockmove sagte in Fehlerbehandlung httpGet/httPost:

    Aber wenn ich httpGet das erstemal verwende, dann muss ich mir sowieso die Beschreibung und / oder Beispiele anschauen.

    Und wenn Du nur den Blockly-Baustein nutzt, musst Du vorher gar keine Doku oder Signaturen der Funktionen anschauen.

    Erstelle gerne einen PR mit Deinem Vorschlag (für JS und neuem Blockly-Code) und dann diskutieren wir gerne die Lösung.

    B Offline
    B Offline
    Blockmove
    schrieb am zuletzt editiert von Blockmove
    #28

    @haus-automatisierung said in Fehlerbehandlung httpGet/httPost:

    @blockmove sagte in Fehlerbehandlung httpGet/httPost:

    Aber wenn ich httpGet das erstemal verwende, dann muss ich mir sowieso die Beschreibung und / oder Beispiele anschauen.

    Und wenn Du nur den Blockly-Baustein nutzt, musst Du vorher gar keine Doku oder Signaturen der Funktionen anschauen.

    Erstelle gerne einen PR mit Deinem Vorschlag (für JS und neuem Blockly-Code) und dann diskutieren wir gerne die Lösung.

    Ich hab dazu mal ein Github-Issue angelegt:
    Github Issue

    The difference beetween Man and Boys:
    The price of their toys 😀

    1 Antwort Letzte Antwort
    0
    • V Offline
      V Offline
      viper4iob
      schrieb am zuletzt editiert von
      #29

      Könnte jemand mal einen Code-Schnipsel zur Verfügung stellen, wie man httpGetAsync mit selbst definierten Timeout aufruft und bei nicht erreichen der URL den timeout error mittels .catch() oder await/try/catch abfangen kann, so dass dieser nicht im iobroker log als error auftaucht.
      Das wäre super, danke.

      1 Antwort Letzte Antwort
      0
      • P Offline
        P Offline
        peterfido
        schrieb am zuletzt editiert von peterfido
        #30

        Schnipsel. writeFile gegen eigene Weiterverarbeitung ersetzen

                httpGet( URL, { validateCertificate: false, timeout: 2000, responseType: 'arraybuffer' }, async (err, response) => {
                if (err) {
                    console.error(err);
                }
                    fs.writeFile(img_path + 'cam4.jpg',  response.data, 'binary', function(err) {
                        if (err) {
                            log('Fehler beim Speichern von Bild 4: ' + err, 'warn');
                        } else {
                            log('Bild 4 gespeichert.');
                        }
                    });         
                });
        
        

        Gruß

        Peterfido


        Proxmox auf Intel NUC12WSHi5
        ioBroker: Debian (VM)
        CCU: Debmatic (VM)
        Influx: Debian (VM)
        Grafana: Debian (VM)
        eBus: Debian (VM)
        Zigbee: Debian (VM) mit zigbee2mqtt

        1 Antwort Letzte Antwort
        0
        • V Offline
          V Offline
          viper4iob
          schrieb am zuletzt editiert von viper4iob
          #31

          @peterfido
          Danke für die Rückmeldung.
          Es kommt aber auch mit entfernen der zusätzlichen log-Zeilen im Code weiterhin der Standard-Error im Log, wenn das Zielsystem nicht erreichbar ist:

          javascript.0	10:14:37.420	error	httpGet(url=http:****************, error=timeout of 3000ms exceeded)
          

          Und genau den will ich los werden.

          Alle Varianten, die ich bis jetzt mit httpGet oder httpGetAsync inkl. try/catch, async/await oder .catch() probiert habe, waren erfolglos. Ich bin allerdings auch kein Javascript Profi ;-)

          Ich möchte alle 5 Sekunden eine URL abfragen, um Statusdaten zu erhalten, die aber nur für die Visualisierung relevant sind, aber nicht lebensnotwendig.
          Wenn das Zielsystem aber mal eine halbe Stunde weg ist, bekomme ich alle 5 Sekunden eine Fehlermeldung, und müllt so das Log zu.

          Ich benötige also eine Code-Variante von httpGet oder httpGetAsync, die bei nicht erreichen des Zielsystems keinen Error im iobroker Standard-Log erzeugt und ich den Fehler im Code selbst verarbeiten kann (z.B. nach einer gewissen Zeit erst einen Fehler ausgeben oder das Log-Level festlegen).

          haus-automatisierungH 1 Antwort Letzte Antwort
          0
          • V viper4iob

            @peterfido
            Danke für die Rückmeldung.
            Es kommt aber auch mit entfernen der zusätzlichen log-Zeilen im Code weiterhin der Standard-Error im Log, wenn das Zielsystem nicht erreichbar ist:

            javascript.0	10:14:37.420	error	httpGet(url=http:****************, error=timeout of 3000ms exceeded)
            

            Und genau den will ich los werden.

            Alle Varianten, die ich bis jetzt mit httpGet oder httpGetAsync inkl. try/catch, async/await oder .catch() probiert habe, waren erfolglos. Ich bin allerdings auch kein Javascript Profi ;-)

            Ich möchte alle 5 Sekunden eine URL abfragen, um Statusdaten zu erhalten, die aber nur für die Visualisierung relevant sind, aber nicht lebensnotwendig.
            Wenn das Zielsystem aber mal eine halbe Stunde weg ist, bekomme ich alle 5 Sekunden eine Fehlermeldung, und müllt so das Log zu.

            Ich benötige also eine Code-Variante von httpGet oder httpGetAsync, die bei nicht erreichen des Zielsystems keinen Error im iobroker Standard-Log erzeugt und ich den Fehler im Code selbst verarbeiten kann (z.B. nach einer gewissen Zeit erst einen Fehler ausgeben oder das Log-Level festlegen).

            haus-automatisierungH Online
            haus-automatisierungH Online
            haus-automatisierung
            Developer Most Active
            schrieb am zuletzt editiert von
            #32

            @viper4iob sagte in Fehlerbehandlung httpGet/httPost:

            Und genau den will ich los werden.

            Alle Varianten, die ich bis jetzt mit httpGet oder httpGetAsync inkl. try/catch, async/await oder .catch() probiert habe, waren erfolglos.

            Aktuell ist es so, dass die Meldung immer geschrieben wird:

            https://github.com/ioBroker/ioBroker.javascript/blob/1d1c2c69e12a28dc52527751bc882347005278ee/src/lib/sandbox.ts#L1443

            Es ist also egal ob es einen Callback gibt oder mit Promises gearbeitet wird.

            @viper4iob sagte in Fehlerbehandlung httpGet/httPost:

            Ich benötige also eine Code-Variante von httpGet oder httpGetAsync, die bei nicht erreichen des Zielsystems keinen Error im iobroker Standard-Log erzeugt

            Dazu gibt es glaube ich sogar schon einen Feature Request.

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

            CodierknechtC 1 Antwort Letzte Antwort
            0
            • haus-automatisierungH haus-automatisierung

              @viper4iob sagte in Fehlerbehandlung httpGet/httPost:

              Und genau den will ich los werden.

              Alle Varianten, die ich bis jetzt mit httpGet oder httpGetAsync inkl. try/catch, async/await oder .catch() probiert habe, waren erfolglos.

              Aktuell ist es so, dass die Meldung immer geschrieben wird:

              https://github.com/ioBroker/ioBroker.javascript/blob/1d1c2c69e12a28dc52527751bc882347005278ee/src/lib/sandbox.ts#L1443

              Es ist also egal ob es einen Callback gibt oder mit Promises gearbeitet wird.

              @viper4iob sagte in Fehlerbehandlung httpGet/httPost:

              Ich benötige also eine Code-Variante von httpGet oder httpGetAsync, die bei nicht erreichen des Zielsystems keinen Error im iobroker Standard-Log erzeugt

              Dazu gibt es glaube ich sogar schon einen Feature Request.

              CodierknechtC Offline
              CodierknechtC Offline
              Codierknecht
              Developer Most Active
              schrieb am zuletzt editiert von
              #33

              @haus-automatisierung sagte in Fehlerbehandlung httpGet/httPost:

              Dazu gibt es glaube ich sogar schon einen Feature Request.

              https://github.com/ioBroker/ioBroker.javascript/issues/1599

              "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

              Proxmox 9.1.1 LXC|8 GB|Core i7-6700
              HmIP|ZigBee|Tasmota|Unifi
              Zabbix Certified Specialist
              Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

              1 Antwort Letzte Antwort
              1
              • P Offline
                P Offline
                peterfido
                schrieb zuletzt editiert von
                #34

                Das einfachste wäre doch, den Server vorher anzupingen.

                Gruß

                Peterfido


                Proxmox auf Intel NUC12WSHi5
                ioBroker: Debian (VM)
                CCU: Debmatic (VM)
                Influx: Debian (VM)
                Grafana: Debian (VM)
                eBus: Debian (VM)
                Zigbee: Debian (VM) mit zigbee2mqtt

                haus-automatisierungH BananaJoeB 2 Antworten Letzte Antwort
                0
                • P peterfido

                  Das einfachste wäre doch, den Server vorher anzupingen.

                  haus-automatisierungH Online
                  haus-automatisierungH Online
                  haus-automatisierung
                  Developer Most Active
                  schrieb zuletzt editiert von
                  #35

                  @peterfido sagte in Fehlerbehandlung httpGet/httPost:

                  Das einfachste wäre doch, den Server vorher anzupingen.

                  Nicht jeder Server reagiert auf einen Ping

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

                  1 Antwort Letzte Antwort
                  0
                  • P peterfido

                    Das einfachste wäre doch, den Server vorher anzupingen.

                    BananaJoeB Online
                    BananaJoeB Online
                    BananaJoe
                    Most Active
                    schrieb zuletzt editiert von
                    #36

                    @peterfido und ping heißt nicht das ein http-Aufruf funktioniert

                    ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                    1 Antwort Letzte Antwort
                    0
                    • P Offline
                      P Offline
                      peterfido
                      schrieb zuletzt editiert von peterfido
                      #37

                      Oben steht, dass der Server öfter mal offline ist. Da ist ping meine erste Idee. Ob der Server auf Pings antwortet, weiß ich nicht. Reagiert der Server nicht auf ping, dann evtl. als Ersatz einen httpcheck nehmen.

                      httpcheck nutze ich auf der Synology, bevor die auf den ioBroker zugreift.

                      # ===== HTTP-Check statt Ping =====
                      curl -s --connect-timeout 3 "$BASE/system.adapter.admin.0.alive" > /dev/null || exit 1
                      
                      

                      Ist allerdings ein Bash-Skript. Das muss für die Zwecke angepasst werden.

                      Gruß

                      Peterfido


                      Proxmox auf Intel NUC12WSHi5
                      ioBroker: Debian (VM)
                      CCU: Debmatic (VM)
                      Influx: Debian (VM)
                      Grafana: Debian (VM)
                      eBus: Debian (VM)
                      Zigbee: Debian (VM) mit zigbee2mqtt

                      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

                      713

                      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