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. Skript Luftdaten

NEWS

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

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

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

Skript Luftdaten

Geplant Angeheftet Gesperrt Verschoben JavaScript
13 Beiträge 7 Kommentatoren 1.4k Aufrufe 5 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.
  • Ro75R Ro75

    Hallo. Heute stelle ich euch einmal mein Skript "Luftdaten" vor. Dieses Skript liest Daten einer Websiteaus. Es ermittelt wie auch andere Skripts (z.B. Wetter, Biowetter, AlleStörungen, usw.) Daten und schreibt diese zur Weiterverarbeitung in einzelne Datenpunkte.

    Ausgelesen werden Daten für Ozon, NO2, PM10 und PM25. Damit lassen sich einfache, individuelle Visualisierungen erstellen. Dies ist vielleicht ein weiteres Skript für Nutzer vom ioBroker.

    VORARBEITEN für SKRIPT - Anleitung um meinen Ort und damit die URL zu finden

    1. Adresse https://www.accuweather.com/ öffnen und im Suchfeld dein Ort eingeben und auswählen - Hinweis: Funktioniert mit Orten aus DE, AT, CH
      2d7aaaf9-e7ec-412d-aadf-6d492926ff1c-image.png

    2. Auf der neuen Seite, unterhalb des Suchfeldes auf den Link "LUFTQUALITÄT" klicken
      5284ee36-d54b-4b21-aa31-718b89226b41-image.png

    3. In der ersten Karte (LUFTQUALITÄT HEUTE) unten rechts auf den Link "plume labs" klicken
      65a95d62-4dc4-4dd5-a510-ff9274d4f03d-image.png

    4. Adresse im Browser kopieren und die Konstante sURL anpassen - sollte etwa so aussehen: https://air.plumelabs.com/air-quality-in-XXXXXX-aw-YYYYYYYY?utm_source=accuweather&utm_medium=current_aq_widget&utm_campaign=#ae16

    VORARBEITEN für Visualisierung (VIS) - ICON

    Nachfolgende Bilder müssen in den Ordner "luftdaten". Dieser ist ein Unterordner von "vis.0". Ergebnis: "/vis.0/luftdaten". Hinweis. Sollte eine andere Visualisierung genutzt werden, müssen ggfs. individuelle Anpassungen vorgenommen werden.

    aqip6.png
    aqip5.png
    aqip4.png
    aqip3.png
    aqip2.png
    aqip1.png
    luftdaten-images.zip

    //Version 1.0.0
    //23.09.2024
    //Ersteller Ro75.
    
    //Voraussetzungen (Version 1.0.0 getestet mit)
    //NodeJS: 20.x
    //Javascript-Adapter: 8.7.6
    //Admin-Adapter: 7.0.23
    //JS-Controller: 6.0.11
    
    //Vorarbeiten abarbeiten
    
    const sMainPath     = '0_userdata.0.Luftdaten.';
    //URL zum Auslesen - bitte anpassen - Anleitung beachten!!
    const sURL          = 'https://air.plumelabs.com/air-quality-in-bautzen-aw-171290?utm_source=accuweather&utm_medium=current_aq_widget&utm_campaign=#ae16'; // Ermittlung Schritt 1 - 4
    //nicht ändern!!!
    const airBasis      = 'O3,PM10,PM25,NO2';
    const airDetails    = 'hervorragend,angemessen,schlecht,ungesund,sehr ungesund,gefährlich';
    
    function Initalisierung(){
        let sAIR = airBasis.split(',');
        for (let i = 0; i <= sAIR.length-1; i++) {
            createState(sMainPath+sAIR[i]+'.value', 0, {name: 'Wert',type: 'number', read: true, write: true, unit: 'µg/m³'});
            createState(sMainPath+sAIR[i]+'.index', 0, {name: 'Index',type: 'number', read: true, write: true});
            createState(sMainPath+sAIR[i]+'.desc', '', {name: 'Beschreibung',type: 'string', read: true, write: true});
            createState(sMainPath+sAIR[i]+'.image', '', {name: 'VIS',type: 'string', read: true, write: true});
        }
        createState(sMainPath+'data_json', '', {name: 'JSON',type: 'string', def: '[]', read: true, write: true, desc: 'JSON Widget'});
        createState(sMainPath+'Gesamt.index', '', {name: 'Index',type: 'number', read: true, write: true});
        createState(sMainPath+'Gesamt.value', '', {name: 'Wert',type: 'number', read: true, write: true});
        createState(sMainPath+'Gesamt.desc', '', {name: 'Beschreibung',type: 'string', read: true, write: true});
        createState(sMainPath+'Gesamt.image', '', {name: 'VIS',type: 'string', read: true, write: true});
        //erster Datenabruf
        LuftMessDaten();
    }
    //START
    Initalisierung();
    
    //automatischer Abruf aller 15 Minuten - weniger nicht empfohlen
    schedule('*/15 * * * *', LuftMessDaten);
    
    
    function NormZahl(wert) {
        if(isNaN(wert)) {
            wert = 0;
        }
        return wert;
    }
    
    function LuftMessDaten() {
        httpGet(sURL, { timeout: 30000, "headers":{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0"}}, (error, response) => {
            if (!error && response.statusCode == 200) {
                let info = response.data;
                let sAIR = airBasis.split(',');
                for (let i = 0; i <= sAIR.length-1; i++) {
                    AuswertungLuftMessDaten(info,sAIR[i]);
                }
                AuswertungLuftMessDatenEx();
                CreateJSON();
                info = '';
            } else {
                if (response.statusCode != 502) {
                    console.error('LuftMessDaten: ' + response.statusCode);
                }
            }    
        })
    }
    
    
    function CreateJSON() {
        let JSON_List   = [];
        let sAIR = airBasis.split(',');
        for (let i = 0; i <= sAIR.length-1; i++) {
            JSON_List.push({"air": sAIR[i], "index": getState(sMainPath+sAIR[i]+'.index').val, "value": getState(sMainPath+sAIR[i]+'.value').val, "desc": getState(sMainPath+sAIR[i]+'.desc').val, "image": getState(sMainPath+sAIR[i]+'.image').val});
        }
        setState(sMainPath+'data_json', JSON.stringify(JSON_List), true);
        JSON_List = [];
    }
    
    function AuswertungLuftMessDaten(sData='', sIndex=''){
        var info = sData;
        var Position = info.indexOf('window.current_data');
        var dummy = info.substr(Position, 1000);
        var Position = dummy.indexOf('"'+sIndex+'"');
        var dummy = dummy.substr(Position, 100);
    
        var Position = dummy.indexOf('"pi":');
        var dummy = dummy.substr(Position+6, 7);
        setState(sMainPath+sIndex+'.index', parseInt(dummy), true);
        var lIndex = LuftIndex(parseInt(dummy));
        setState(sMainPath+sIndex+'.desc', airDetails.split(',')[lIndex-1], true);
        setState(sMainPath+sIndex+'.image', '/vis.0/luftdaten/aqip'+lIndex+'.png', true);
    
        var Position = info.indexOf('window.current_data');
        var dummy = info.substr(Position, 1000);
        var Position = dummy.indexOf('"'+sIndex+'"');
        var dummy = dummy.substr(Position, 100);
    
        var Position = dummy.indexOf('"value_upm":');
        var dummy = dummy.substr(Position+13, 7);
        setState(sMainPath+sIndex+'.value', parseFloat(dummy), true);
    }
    
    function AuswertungLuftMessDatenEx(){
        let sAIR = airBasis.split(',');
        var aqi = Math.max(NormZahl(getState(sMainPath+sAIR[0]+'.index').val), NormZahl(getState(sMainPath+sAIR[1]+'.index').val), NormZahl(getState(sMainPath+sAIR[2]+'.index').val), NormZahl(getState(sMainPath+sAIR[3]+'.index').val));
        var lIndex = LuftIndex(aqi);
    
        setState(sMainPath+'Gesamt.value', aqi, true);
        setState(sMainPath+'Gesamt.index', lIndex, true);
        setState(sMainPath+'Gesamt.desc', airDetails.split(',')[lIndex-1], true);
        setState(sMainPath+'Gesamt.image', '/vis.0/luftdaten/aqip'+lIndex+'.png', true);
    }
    
    function LuftIndex(aqi){
        if (aqi <= 20) {
            return 1;
        } else if (aqi <= 50) {
            return 2;
        } else if (aqi <= 100) {
            return 3;
        } else if (aqi <= 150) {
            return 4;
        } else if (aqi <= 250) {
            return 5;
        } else {
            return 6;
        }
    }
    

    Im Grunde sollte alles selbsterklärend sein. Die hinzugefügten Kommentare geben Info und Einstellmöglichkeiten. Für Anregungen bin ich offen, auch wenn es ggfs. nicht gleich umgesetzt werden kann (die gute Zeit).

    99be4083-ed00-4301-a5a4-94396ed1ac1f-image.png

    Ich wünsche euch viel Spaß.

    Ro75.

    S Online
    S Online
    spike2
    schrieb am zuletzt editiert von spike2
    #2

    @ro75 Dankeschön für das Script, funktioniert ohne Probleme :+1: :blush:

    Anbei ein Beispiel in VIS:

    1b693b42-90d5-4e6f-9e96-56e38c26b31d-grafik.png

    Grüße Spike

    1 Antwort Letzte Antwort
    1
    • Ro75R Ro75

      Hallo. Heute stelle ich euch einmal mein Skript "Luftdaten" vor. Dieses Skript liest Daten einer Websiteaus. Es ermittelt wie auch andere Skripts (z.B. Wetter, Biowetter, AlleStörungen, usw.) Daten und schreibt diese zur Weiterverarbeitung in einzelne Datenpunkte.

      Ausgelesen werden Daten für Ozon, NO2, PM10 und PM25. Damit lassen sich einfache, individuelle Visualisierungen erstellen. Dies ist vielleicht ein weiteres Skript für Nutzer vom ioBroker.

      VORARBEITEN für SKRIPT - Anleitung um meinen Ort und damit die URL zu finden

      1. Adresse https://www.accuweather.com/ öffnen und im Suchfeld dein Ort eingeben und auswählen - Hinweis: Funktioniert mit Orten aus DE, AT, CH
        2d7aaaf9-e7ec-412d-aadf-6d492926ff1c-image.png

      2. Auf der neuen Seite, unterhalb des Suchfeldes auf den Link "LUFTQUALITÄT" klicken
        5284ee36-d54b-4b21-aa31-718b89226b41-image.png

      3. In der ersten Karte (LUFTQUALITÄT HEUTE) unten rechts auf den Link "plume labs" klicken
        65a95d62-4dc4-4dd5-a510-ff9274d4f03d-image.png

      4. Adresse im Browser kopieren und die Konstante sURL anpassen - sollte etwa so aussehen: https://air.plumelabs.com/air-quality-in-XXXXXX-aw-YYYYYYYY?utm_source=accuweather&utm_medium=current_aq_widget&utm_campaign=#ae16

      VORARBEITEN für Visualisierung (VIS) - ICON

      Nachfolgende Bilder müssen in den Ordner "luftdaten". Dieser ist ein Unterordner von "vis.0". Ergebnis: "/vis.0/luftdaten". Hinweis. Sollte eine andere Visualisierung genutzt werden, müssen ggfs. individuelle Anpassungen vorgenommen werden.

      aqip6.png
      aqip5.png
      aqip4.png
      aqip3.png
      aqip2.png
      aqip1.png
      luftdaten-images.zip

      //Version 1.0.0
      //23.09.2024
      //Ersteller Ro75.
      
      //Voraussetzungen (Version 1.0.0 getestet mit)
      //NodeJS: 20.x
      //Javascript-Adapter: 8.7.6
      //Admin-Adapter: 7.0.23
      //JS-Controller: 6.0.11
      
      //Vorarbeiten abarbeiten
      
      const sMainPath     = '0_userdata.0.Luftdaten.';
      //URL zum Auslesen - bitte anpassen - Anleitung beachten!!
      const sURL          = 'https://air.plumelabs.com/air-quality-in-bautzen-aw-171290?utm_source=accuweather&utm_medium=current_aq_widget&utm_campaign=#ae16'; // Ermittlung Schritt 1 - 4
      //nicht ändern!!!
      const airBasis      = 'O3,PM10,PM25,NO2';
      const airDetails    = 'hervorragend,angemessen,schlecht,ungesund,sehr ungesund,gefährlich';
      
      function Initalisierung(){
          let sAIR = airBasis.split(',');
          for (let i = 0; i <= sAIR.length-1; i++) {
              createState(sMainPath+sAIR[i]+'.value', 0, {name: 'Wert',type: 'number', read: true, write: true, unit: 'µg/m³'});
              createState(sMainPath+sAIR[i]+'.index', 0, {name: 'Index',type: 'number', read: true, write: true});
              createState(sMainPath+sAIR[i]+'.desc', '', {name: 'Beschreibung',type: 'string', read: true, write: true});
              createState(sMainPath+sAIR[i]+'.image', '', {name: 'VIS',type: 'string', read: true, write: true});
          }
          createState(sMainPath+'data_json', '', {name: 'JSON',type: 'string', def: '[]', read: true, write: true, desc: 'JSON Widget'});
          createState(sMainPath+'Gesamt.index', '', {name: 'Index',type: 'number', read: true, write: true});
          createState(sMainPath+'Gesamt.value', '', {name: 'Wert',type: 'number', read: true, write: true});
          createState(sMainPath+'Gesamt.desc', '', {name: 'Beschreibung',type: 'string', read: true, write: true});
          createState(sMainPath+'Gesamt.image', '', {name: 'VIS',type: 'string', read: true, write: true});
          //erster Datenabruf
          LuftMessDaten();
      }
      //START
      Initalisierung();
      
      //automatischer Abruf aller 15 Minuten - weniger nicht empfohlen
      schedule('*/15 * * * *', LuftMessDaten);
      
      
      function NormZahl(wert) {
          if(isNaN(wert)) {
              wert = 0;
          }
          return wert;
      }
      
      function LuftMessDaten() {
          httpGet(sURL, { timeout: 30000, "headers":{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0"}}, (error, response) => {
              if (!error && response.statusCode == 200) {
                  let info = response.data;
                  let sAIR = airBasis.split(',');
                  for (let i = 0; i <= sAIR.length-1; i++) {
                      AuswertungLuftMessDaten(info,sAIR[i]);
                  }
                  AuswertungLuftMessDatenEx();
                  CreateJSON();
                  info = '';
              } else {
                  if (response.statusCode != 502) {
                      console.error('LuftMessDaten: ' + response.statusCode);
                  }
              }    
          })
      }
      
      
      function CreateJSON() {
          let JSON_List   = [];
          let sAIR = airBasis.split(',');
          for (let i = 0; i <= sAIR.length-1; i++) {
              JSON_List.push({"air": sAIR[i], "index": getState(sMainPath+sAIR[i]+'.index').val, "value": getState(sMainPath+sAIR[i]+'.value').val, "desc": getState(sMainPath+sAIR[i]+'.desc').val, "image": getState(sMainPath+sAIR[i]+'.image').val});
          }
          setState(sMainPath+'data_json', JSON.stringify(JSON_List), true);
          JSON_List = [];
      }
      
      function AuswertungLuftMessDaten(sData='', sIndex=''){
          var info = sData;
          var Position = info.indexOf('window.current_data');
          var dummy = info.substr(Position, 1000);
          var Position = dummy.indexOf('"'+sIndex+'"');
          var dummy = dummy.substr(Position, 100);
      
          var Position = dummy.indexOf('"pi":');
          var dummy = dummy.substr(Position+6, 7);
          setState(sMainPath+sIndex+'.index', parseInt(dummy), true);
          var lIndex = LuftIndex(parseInt(dummy));
          setState(sMainPath+sIndex+'.desc', airDetails.split(',')[lIndex-1], true);
          setState(sMainPath+sIndex+'.image', '/vis.0/luftdaten/aqip'+lIndex+'.png', true);
      
          var Position = info.indexOf('window.current_data');
          var dummy = info.substr(Position, 1000);
          var Position = dummy.indexOf('"'+sIndex+'"');
          var dummy = dummy.substr(Position, 100);
      
          var Position = dummy.indexOf('"value_upm":');
          var dummy = dummy.substr(Position+13, 7);
          setState(sMainPath+sIndex+'.value', parseFloat(dummy), true);
      }
      
      function AuswertungLuftMessDatenEx(){
          let sAIR = airBasis.split(',');
          var aqi = Math.max(NormZahl(getState(sMainPath+sAIR[0]+'.index').val), NormZahl(getState(sMainPath+sAIR[1]+'.index').val), NormZahl(getState(sMainPath+sAIR[2]+'.index').val), NormZahl(getState(sMainPath+sAIR[3]+'.index').val));
          var lIndex = LuftIndex(aqi);
      
          setState(sMainPath+'Gesamt.value', aqi, true);
          setState(sMainPath+'Gesamt.index', lIndex, true);
          setState(sMainPath+'Gesamt.desc', airDetails.split(',')[lIndex-1], true);
          setState(sMainPath+'Gesamt.image', '/vis.0/luftdaten/aqip'+lIndex+'.png', true);
      }
      
      function LuftIndex(aqi){
          if (aqi <= 20) {
              return 1;
          } else if (aqi <= 50) {
              return 2;
          } else if (aqi <= 100) {
              return 3;
          } else if (aqi <= 150) {
              return 4;
          } else if (aqi <= 250) {
              return 5;
          } else {
              return 6;
          }
      }
      

      Im Grunde sollte alles selbsterklärend sein. Die hinzugefügten Kommentare geben Info und Einstellmöglichkeiten. Für Anregungen bin ich offen, auch wenn es ggfs. nicht gleich umgesetzt werden kann (die gute Zeit).

      99be4083-ed00-4301-a5a4-94396ed1ac1f-image.png

      Ich wünsche euch viel Spaß.

      Ro75.

      sigi234S Online
      sigi234S Online
      sigi234
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #3

      @ro75

      Super aber /vis.0/luftdaten/aqip0.png gibt es nicht?

      Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
      Immer Daten sichern!

      D 1 Antwort Letzte Antwort
      0
      • sigi234S sigi234

        @ro75

        Super aber /vis.0/luftdaten/aqip0.png gibt es nicht?

        D Online
        D Online
        Dischro
        schrieb am zuletzt editiert von
        #4

        @sigi234
        ich hab sie umbenannt, von 0-5

        Ro75R 1 Antwort Letzte Antwort
        0
        • D Dischro

          @sigi234
          ich hab sie umbenannt, von 0-5

          Ro75R Offline
          Ro75R Offline
          Ro75
          schrieb am zuletzt editiert von
          #5

          @dischro sollte so nicht sein. Passe das Skript an, hatte es etwas abgeändert.

          Ro75

          SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

          bahnuhrB 1 Antwort Letzte Antwort
          1
          • Ro75R Ro75

            @dischro sollte so nicht sein. Passe das Skript an, hatte es etwas abgeändert.

            Ro75

            bahnuhrB Online
            bahnuhrB Online
            bahnuhr
            Forum Testing Most Active
            schrieb am zuletzt editiert von
            #6

            @ro75
            Auch ne Anmerkung von mir.

            Aufruf "Start" geht ins Leere -> diese Funktion gibt es nicht.
            (gilt auch für dein anderes Script -> Pollenflug)

            'info.substr' is deprecated.
            ersetze es durch substring

            769213d3-ee61-4bc0-9e2f-5cba8a599ddb-image.png
            Kann man auch die Texte rausholen ?

            Ansonsten top -> sofort umgesetzt
            Danke.


            Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
            Danke.
            gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
            ScreenToGif :https://www.screentogif.com/downloads.html

            Ro75R 1 Antwort Letzte Antwort
            0
            • bahnuhrB bahnuhr

              @ro75
              Auch ne Anmerkung von mir.

              Aufruf "Start" geht ins Leere -> diese Funktion gibt es nicht.
              (gilt auch für dein anderes Script -> Pollenflug)

              'info.substr' is deprecated.
              ersetze es durch substring

              769213d3-ee61-4bc0-9e2f-5cba8a599ddb-image.png
              Kann man auch die Texte rausholen ?

              Ansonsten top -> sofort umgesetzt
              Danke.

              Ro75R Offline
              Ro75R Offline
              Ro75
              schrieb am zuletzt editiert von
              #7

              @bahnuhr START ist ein Kommentar. Das andere schaue ich mir an

              Ro75

              SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

              bahnuhrB 1 Antwort Letzte Antwort
              0
              • Ro75R Ro75

                @bahnuhr START ist ein Kommentar. Das andere schaue ich mir an

                Ro75

                bahnuhrB Online
                bahnuhrB Online
                bahnuhr
                Forum Testing Most Active
                schrieb am zuletzt editiert von
                #8

                @ro75 sagte in Skript Luftdaten:

                @bahnuhr START ist ein Kommentar. Das andere schaue ich mir an

                Ro75

                Hast recht.
                zu schnell gekuckt und noch schneller geschrieben.
                mfg


                Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                Danke.
                gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                ScreenToGif :https://www.screentogif.com/downloads.html

                1 Antwort Letzte Antwort
                0
                • M Online
                  M Online
                  MCU
                  schrieb am zuletzt editiert von MCU
                  #9

                  @Ro75 Ist eine Raute in der URL gibt es einen Fehler.

                  httpGet(url=https://air.plumelabs.com/air-quality-in-hamburg-cdmq?utm_source=accuweather&utm_medium=current_aq_widget&utm_campaign=#ae16, error=timeout of 30000ms exceeded)
                  

                  Man muss # durch %23 ersetzen, dann geht es.

                  NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                  Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                  bahnuhrB 1 Antwort Letzte Antwort
                  0
                  • M MCU

                    @Ro75 Ist eine Raute in der URL gibt es einen Fehler.

                    httpGet(url=https://air.plumelabs.com/air-quality-in-hamburg-cdmq?utm_source=accuweather&utm_medium=current_aq_widget&utm_campaign=#ae16, error=timeout of 30000ms exceeded)
                    

                    Man muss # durch %23 ersetzen, dann geht es.

                    bahnuhrB Online
                    bahnuhrB Online
                    bahnuhr
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von
                    #10

                    @Ro75

                    Zeile 92: setState(sMainPath+sIndex+'.image', '/vis.0/main/img/Luftdaten/aqip'+(lIndex-1)+'.png', true);
                    Zeile 112: setState(sMainPath+'Gesamt.image', '/vis.0/main/img/Luftdaten/aqip'+(lIndex-1)+'.png', true);

                    Bei beiden Zeilen habe ich den Pfad geändert.

                    In den Objekten steht aber trotzdem der alte Pfad:
                    d81ab6be-d487-481f-adf4-02b433982944-image.png

                    Was übersehe ich?
                    Finde den Gedankenfehler nicht.


                    Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                    Danke.
                    gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                    ScreenToGif :https://www.screentogif.com/downloads.html

                    bahnuhrB 1 Antwort Letzte Antwort
                    0
                    • bahnuhrB bahnuhr

                      @Ro75

                      Zeile 92: setState(sMainPath+sIndex+'.image', '/vis.0/main/img/Luftdaten/aqip'+(lIndex-1)+'.png', true);
                      Zeile 112: setState(sMainPath+'Gesamt.image', '/vis.0/main/img/Luftdaten/aqip'+(lIndex-1)+'.png', true);

                      Bei beiden Zeilen habe ich den Pfad geändert.

                      In den Objekten steht aber trotzdem der alte Pfad:
                      d81ab6be-d487-481f-adf4-02b433982944-image.png

                      Was übersehe ich?
                      Finde den Gedankenfehler nicht.

                      bahnuhrB Online
                      bahnuhrB Online
                      bahnuhr
                      Forum Testing Most Active
                      schrieb am zuletzt editiert von
                      #11

                      @bahnuhr

                      Hat sich erledigt.
                      Cache gelöscht. Dann stand es richtig drin.

                      mfg


                      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                      Danke.
                      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                      ScreenToGif :https://www.screentogif.com/downloads.html

                      S 1 Antwort Letzte Antwort
                      0
                      • bahnuhrB bahnuhr

                        @bahnuhr

                        Hat sich erledigt.
                        Cache gelöscht. Dann stand es richtig drin.

                        mfg

                        S Nicht stören
                        S Nicht stören
                        stenmic
                        schrieb am zuletzt editiert von stenmic
                        #12

                        script ist gut, aber… wie zufrieden seid ihr mit den Werten?
                        Ich hole mir den Index über iqair. die haben auch ne offene api (mit free token). Leider aber nur für die jeweiligen Messstationen.
                        zum Glück hab ich gleich eine vom Wetterdienst in der Nachbarstadt.

                        Hier mal zum Vergleich
                        iqair AQI 60
                        IMG_0765.jpeg

                        accuweather AQI 33
                        IMG_0764.jpeg

                        was stimmt denn jetzt 🤒

                        S 1 Antwort Letzte Antwort
                        0
                        • S stenmic

                          script ist gut, aber… wie zufrieden seid ihr mit den Werten?
                          Ich hole mir den Index über iqair. die haben auch ne offene api (mit free token). Leider aber nur für die jeweiligen Messstationen.
                          zum Glück hab ich gleich eine vom Wetterdienst in der Nachbarstadt.

                          Hier mal zum Vergleich
                          iqair AQI 60
                          IMG_0765.jpeg

                          accuweather AQI 33
                          IMG_0764.jpeg

                          was stimmt denn jetzt 🤒

                          S Online
                          S Online
                          spike2
                          schrieb am zuletzt editiert von
                          #13

                          @stenmic Das habe ich auch schon festgestellt, aber man muss auch mal prüfen wo genau die Messstationen der jeweiligen Anbieter sind ;)

                          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

                          659

                          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