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. Optimaler Umgang mit Request Fehlern

NEWS

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

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

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

Optimaler Umgang mit Request Fehlern

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
4 Beiträge 3 Kommentatoren 1.4k Aufrufe
  • Ä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.
  • M Offline
    M Offline
    mctom
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich nutze in verschieden Scripten den request Befehl. Jetzt habe ich ab zu mal festgestellt, dass wenn die Gegenstelle nicht antwortet der Adapter abschmiert. Jetzt ist meine Frage wie ich den request Befehl am besten einbau.

    Ich habe so im Einsatz:

    function displayan() {
        try {
            request ('http://xxx.xxx.xxx.xxx);
            }
        catch (e) {
            log(e, 'warn');
            }
    
    

    habe an anderen Stellen schon folgende Alternative gefunden:

    request(URL, function (error, response, body) {
       if (!error && response.statusCode == 200) {
       xxxyyyzzz
       }
       else
       {
       log(error);
       }
    
    

    Welche Weg ist der bessere? Gibt es weitere Alternativen?

    Gruß

    Michael

    1 Antwort Letzte Antwort
    0
    • blauholstenB Offline
      blauholstenB Offline
      blauholsten
      Developer
      schrieb am zuletzt editiert von
      #2

      Hi,

      ich hatte auch das selbe Problem.

      Das dumme ist, das es sehr ungünstig ist das wenn ein Fehler (z.B. Unerreichbarkeit) auftritt, bei mir die JS neu startet.

      Irgendwie hat das mit dem damaligen Tipp vin "pix" mit try..catch in manchen Situationen nicht funktioniert.

      Daraufhin habe ich mit meinen Progammiertechnischen Unwissen nach einer Lösung gesucht, die wie folgt aussieht:

      var http = require('http');
      http.get("deineurl").on('error', function(e)//oder .post
                  {
                      log(e);
                  });
      

      Wenn jetzt ein Fehler auftritt, startet die Instanz nicht neu.

      Entwickler vom: - Viessman Adapter
      - Alarm Adapter

      1 Antwort Letzte Antwort
      0
      • ruhr70R Offline
        ruhr70R Offline
        ruhr70
        schrieb am zuletzt editiert von
        #3

        @blauholsten:

        var http = require('http');
        http.get("deineurl").on('error', function(e)//oder .post
                    {
                        log(e);
                    });
        

        Wenn jetzt ein Fehler auftritt, startet die Instanz nicht neu. `

        Danke für den Tipp!

        Bei mir ist das auch noch eine Baustelle.

        Dank Deines Hinweis gegooglet und das hier sieht ganz brauchbar aus:

        http://stackoverflow.com/questions/9577 … js-express

        Von dort aus einer Antwort entnommen:

        var http = require('http');
        
        var options = {
          host: 'www.ecb.europa.eu',
          path: '/stats/eurofxref/eurofxref-daily.xml'
        };
        
        function webseiteAbfragen() {
            var req = http.get(options, function(res) {
            log('STATUS: ' + res.statusCode);               // Statuscode
            log('HEADERS: ' + JSON.stringify(res.headers)); // Header (Rückmeldung vom Webserver)
        
            // Buffer the body entirely for processing as a whole.
            var bodyChunks = [];
            res.on('data', function(chunk) {
                // Hier können die einzelnen Zeilen verarbeitet werden...
                bodyChunks.push(chunk);
            }).on('end', function() {
                var body = Buffer.concat(bodyChunks);
                log('BODY: ' + body);
                // ...und/oder das Gesamtergebnis.
                });
            });
        
            req.on('error', function(e) { // Fehler abfangen
                log('ERROR: ' + e.message,"warn");
            });
        }
        
        webseiteAbfragen();
        
        

        Adapter: Fritzbox, Unify Circuit
        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

        1 Antwort Letzte Antwort
        0
        • blauholstenB Offline
          blauholstenB Offline
          blauholsten
          Developer
          schrieb am zuletzt editiert von
          #4

          Hi,

          Hier ist Recht gut beschrieben warum das mit try…Catch nicht funktioniert.

          <url url="http://m.heise.de/developer/artikel/Einfuehrung-in-die-asynchrone-JavaScript-Programmierung-2752531.html">~~[http://m.heise.de/developer/artikel/Einfuehrung-in-die-asynchrone-JavaScript-Programmierung-2752531.html" target="_blank">](</s><LINK_TEXT text=)~~ [<link_text text="
          http://m.heise.de/developer/artikel/Ei … 52531.html">http://m.heise.de/developer/artikel/Einfuehrung-in-die-asynchrone-JavaScript-Programmierung-2752531.html</link_text>](</s><LINK_TEXT text=)</url>

          Entwickler vom: - Viessman Adapter
          - Alarm Adapter

          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

          390

          Online

          32.4k

          Benutzer

          81.5k

          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