Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. [gelöst] Luftdaten-Adapter mit Timeout

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Luftdaten-Adapter mit Timeout

    This topic has been deleted. Only users with topic management privileges can see it.
    • Thomas Braun
      Thomas Braun Most Active @RK62 last edited by Thomas Braun

      @RK62 @ratte-rizzo
      node ist aber schön sauber installiert?

      lsb_release -a && whoami && which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs
      
      RK62 R 2 Replies Last reply Reply Quote 0
      • RK62
        RK62 @Thomas Braun last edited by

        @Thomas-Braun Davon gehe ich aus. Ich habe das aktuelle Docker-Image von Buanet laufen. Andere Websites werden auch ohne jegliche Probleme ausgelesen. Hat sich da ggf. was im Securityumfeld / Zertifikaten getan dass die Website ggf. nicht mehr ausgelesen werden kann?

        root@iobroker:/opt/iobroker# lsb_release -a && whoami && which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs
        No LSB modules are available.
        Distributor ID: Debian
        Description:    Debian GNU/Linux 10 (buster)
        Release:        10
        Codename:       buster
        root
        /usr/bin/nodejs
        v12.18.3
        /usr/bin/node
        v12.18.3
        /usr/bin/npm
        sudo: Hostname iobroker kann nicht aufgelöst werden: Der Name oder der Dienst ist nicht bekannt
        6.14.6
        nodejs:
          Installiert:           12.18.3-1nodesource1
          Installationskandidat: 12.18.3-1nodesource1
          Versionstabelle:
         *** 12.18.3-1nodesource1 100
                100 /var/lib/dpkg/status
        
        1 Reply Last reply Reply Quote 0
        • R
          ratte-rizzo @Thomas Braun last edited by

          @Thomas-Braun bei mir ist auch alles sauber (außer, dass ich auf v10 laufe und nicht v12)

          RK62 1 Reply Last reply Reply Quote 0
          • RK62
            RK62 @ratte-rizzo last edited by RK62

            zur Info, Habe da einen Issue eröffnet:
            https://github.com/klein0r/ioBroker.luftdaten/issues/44

            Übrigens lese ich die Werte jetzt mit dem Parser und einem kleinen Javascript aus. Bei Interesse melden.

            Gruß Ralf

            RK62 created this issue in klein0r/ioBroker.luftdaten

            closed Werte werden nicht gelesen (ESOCKETTIMEDOUT) #44

            SpikeNbg 1 Reply Last reply Reply Quote 0
            • SpikeNbg
              SpikeNbg @RK62 last edited by

              @rk62 Hi Ralf!
              Hier auch Ralf 🙂

              Ich wollte dich fragen, ob du mir dein Script zum Luftdaten Adapter Problem mit den Timeouts senden könntest bzw. hier rein stellen? Achja, evtl. kannst du auch noch den Code oder einen Screenshot für den Parser mitschicken!

              Besten Dank! und Grüße Ralf

              RK62 1 Reply Last reply Reply Quote 0
              • RK62
                RK62 @SpikeNbg last edited by

                @spikenbg Anbei meine Lösung via Parser & Script.
                Bin mir aber nicht sicher ob das noch notwendig ist, der Luftdaten-Adapter wurde ja mittlerweile renoviert.

                Gruß, Ralf

                EINSTELLUNG PARSER

                2021-06-12 18_52_27-ioBroker-ESK01.png

                2021-06-13 09_32_13-ioBroker-ESK01.png

                SCRIPT FÜR AUSWERTUNG

                /*  =====================================================================
                    Ermittelt die aktuellen Luftdaten 
                    15.08.2020 R.Krüger --- 
                    14.03.2021 R.Krüger --- Luftqualitätsbewertung aufgenommen
                    ===================================================================== */
                
                const jsH           = 'esk.Luftdaten'; 
                const LogLevel      = 'info';
                const ParserState   = 'parser.0.Luftdaten';
                
                // Benötigte States anlegen
                createState(jsH+'.SDS_P1',   { name: 'SDS_P1',        role: 'value.ppm', type: 'number', unit: "µg/m³", write: false});
                createState(jsH+'.SDS_P2',   { name: 'SDS_P2',        role: 'value.ppm', type: 'number', unit: "µg/m³", write: false});
                createState(jsH+'.Station',  { name: 'StationsID',    role: 'Info',      type: 'number', write: false});
                createState(jsH+'.TimeStamp',{ name: 'TimeStamp',     role: 'Timestamp', type: 'string', write: false});
                createState(jsH+'.Qualität', { name: 'Luft-Qualität', role: 'esk.value', type: 'string', write: false});
                
                
                // Luftinfo JSON aus Parser auslesen
                function GetLuftInfo() {
                // ======================================================================================    
                    var Luftdaten = getState(ParserState).val;
                    var j = JSON.parse(Luftdaten);
                    
                    // Station ermitteln
                    var l = j[0].sensor.id;
                    setState(jsH+'.Station', String(l));
                    
                    // Zeit ermitteln
                    let d0  = esk_convertUTCDateToLocalDate(new Date(j[0].timestamp)); 
                    var d01 = esk_formatdate(d0);
                    setState(jsH+'.TimeStamp', d01);
                    l += '|'+j[0].timestamp+'|'+d01;
                            
                    // Werte ermitteln
                    for (var i = 0; i <= 1; i++) {
                    //  log('Value: '+  j[0].sensordatavalues[i].value_type+'='+j[0].sensordatavalues[i].value, LogLevel);
                        l += '|'+ j[0].sensordatavalues[i].value_type+'='+j[0].sensordatavalues[i].value;
                        switch (j[0].sensordatavalues[i].value_type) {
                        case 'P1':
                            var vP1 = parseFloat(j[0].sensordatavalues[i].value);
                            setState(jsH+'.SDS_P1', vP1);
                            break;
                        case 'P2':
                            var vP2 = parseFloat(j[0].sensordatavalues[i].value);
                            setState(jsH+'.SDS_P2', vP2);
                            break;
                        }
                    }
                
                    // Qualität bewerten
                    if      (vP1 < 10 && vP2 < 10)  var vLQ = 'top'
                    else if (vP1 < 30 && vP2 < 20)      vLQ = 'gut'
                    else if (vP1 < 50 && vP2 < 30)      vLQ = 'mittel'
                    else                                vLQ = 'schlecht';
                    setState(jsH+'.Qualität', vLQ);
                    l += '|'+vLQ;
                    log(l, LogLevel)
                // ======================================================================================    
                }
                
                // Umrechnung  UTC-Zeit auf lokale Zeit
                function esk_convertUTCDateToLocalDate(pDate, pFormat = 'DD.MM.YY hh:mm') {
                //  ---------------------------------------------------------------------      	
                    var newDate = new Date(pDate.getTime() + pDate.getTimezoneOffset()*60*1000);
                    var offset  = pDate.getTimezoneOffset()/60;
                    var hours   = pDate.getHours();
                    newDate.setHours(hours - offset);
                    return newDate;   
                //  ---------------------------------------------------------------------      
                }
                
                // Formatieren Datum als String 
                function esk_formatdate(pDate) {
                //  ---------------------------------------------------------------------      
                    return     ("0" + pDate.getDate()).slice(-2) + "." 
                             + ("0" +(pDate.getMonth()+1)).slice(-2) + "." 
                             + ("0" + pDate.getFullYear()).slice(-2) + " " 
                             + ("0" + pDate.getHours()).slice(-2) + ":" 
                             + ("0" + pDate.getMinutes()).slice(-2);
                //  ---------------------------------------------------------------------      
                }
                
                // Einmal sofort ausführen 
                GetLuftInfo();                                       
                
                // Bei jeder Parser-Aktualisierung ausführen
                on({id: ParserState, change: "any"}, function (obj) {
                    GetLuftInfo();                                  
                });
                
                SpikeNbg S 2 Replies Last reply Reply Quote 0
                • SpikeNbg
                  SpikeNbg @RK62 last edited by

                  @rk62 Ui, Danke dir! Hab es erst jetzt gerade gelesen.. Bau ich gleich um!

                  Beste Grüße Ralf

                  1 Reply Last reply Reply Quote 0
                  • S
                    StefanH 0 @RK62 last edited by

                    Bei mir kommt immer noch sporadisch diese Fehlermeldung

                    2021-11-15 19:40:16.719	error	timeout of 10000ms exceeded
                    

                    obwohl ich die aktuelle Version des Adapters 1.0.3 einsetze.

                    R 1 Reply Last reply Reply Quote 0
                    • R
                      ratte-rizzo @StefanH 0 last edited by

                      Moin @stefanh-0

                      Also das ist meiner Interpretation nach ganz normal und kann vorkommen, wenn der Sensor nur ein schwaches WLAN Signal empfängt. Ist bei mir häufig so.

                      In einer vorherigen Version des Adapter hat sich der Adapter jedoch aufgehängt und konnte nach dem Timeout nicht erneut gestartet werden, war also bis zur manuellen de- und reaktivierung komplett lahmgelegt. Das letzte Update hat das behoben.

                      Die Fehlermeldung gab es vorher auch schon und jetzt immer noch. Und sie erscheint mir sinnvoll.

                      Grüße
                      Daniel

                      S 1 Reply Last reply Reply Quote 0
                      • S
                        StefanH 0 @ratte-rizzo last edited by

                        Moin Stefan-0,

                        danke für deine Infos und dass ich nun weiss das es kein Bug sondern ein Feature ist.

                        Ich frage mich natürlich, was die Meldung mir sagen soll und was ich tun könnte.

                        Eine Meldung in Dauerschleife immer wieder auszugeben, mach meines Erachtens nicht wirklich Sinn.

                        Wäre schön, wenn der User in der Adapter-Config selbst entscheiden könnte, ob er diese Meldung auf Dauer haben will. Ansonsten läuft man Gefahr, wenn dies alle Adapter so machen würden, dass man irgendwann bei den Fehlermeldungen den Überblick verliert. Ich persöhnlich versuche mein Log eigentlich möglichst immer sauber zu halten.

                        Grüße Stefan

                        1 Reply Last reply Reply Quote 1
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        968
                        Online

                        31.9k
                        Users

                        80.1k
                        Topics

                        1.3m
                        Posts

                        luftdaten timeout
                        5
                        12
                        800
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo