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

  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. [Linux Shell-Skript] WLAN-Wetterstation

NEWS

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

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

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

[Linux Shell-Skript] WLAN-Wetterstation

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
linuxshell-scriptwetterstationwlan-wetterstation
5.7k Beiträge 152 Kommentatoren 3.8m Aufrufe 134 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.
  • SBorgS SBorg

    @nashra
    Keinen, mir ist auch keiner bekannt, ich nutze (wie bei mir fast üblich :blush: ) ein Linux Shell-Skript.
    Bevor nun wieder die Frage kommt: nein, das kann ich schlecht zur Verfügung stellen, da es die Daten vom HLNUG bezieht und somit nur für Hessen gültig ist.

    Weil aber bestimmt hier wieder Begehrlichkeiten geweckt wurden (nehme ich mal an :innocent: ), habe ich mir heute morgen mal Gedanken gemacht und bin auf die Suche gegangen.
    Übrig bleibt eigentlich nur das "Umwelt Bundesamt", da es für ganz Deutschland Daten liefert (sry @Negalein), auch kleinere Stationen. Leider keine API verfügbar und https://www.umweltbundesamt.de/daten/luft/luftdaten/luftqualitaet/ verlangt das ausfüllen der gewünschten Daten (ist hier nicht einfach zu automatisieren, da darüber ein Einmal-Token generiert wird).
    Aber wird sind ja nicht blöd :joy:
    Über die "Stationen" kommen wir zwar zu einer ähnlichen Eingabemaske, aber nach dem ausfüllen erhalten wir einen nutzbaren Link "Station herunterladen". Per MouseOver erkennen wir nun auch einen für uns nutzbaren Link 8)
    Beispiel: https://www.umweltbundesamt.de/api/air_data/v3/measures/csv?date_from=2024-01-18&time_from=11&date_to=2024-01-18&time_to=11&data%5B0%5D%5Bco%5D=3&data%5B0%5D%5Bsc%5D=2&data%5B0%5D%5Bst%5D=533&lang=de
    Also doch eine (nicht öffentliche) API. Die Daten könnte ich automatisieren, man muss es nur einmalig per Frontend ausfüllen damit man seine StationID bekommt. In der heruntergeladenen CSV steht dann der Ozonwert drin :grinning:

    NegaleinN Offline
    NegaleinN Offline
    Negalein
    Global Moderator
    schrieb am zuletzt editiert von
    #5162

    @sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:

    sry @Negalein)

    No Problem.
    Ich brauch Ozon nicht.
    Wenn doch, verwende ich einen deutschen Ort.
    Kann von Ö nach DE rüber spucken. :joy: :joy:

    ° Node.js: 20.17.0 NPM: 10.8.2
    ° Proxmox, Ubuntu 22.04.3 LTS
    ° Fixer ---> iob fix

    1 Antwort Letzte Antwort
    0
    • Rene55R Rene55

      @boronsbruder Das schreit ja förmlich nach einem neuen Adapter

      BoronsbruderB Online
      BoronsbruderB Online
      Boronsbruder
      schrieb am zuletzt editiert von Boronsbruder
      #5163

      @rene55
      Adapter kann ich nicht.
      Skripten ein bischen, deswegen hab ich für euch/uns Daten-Fetischisten mal mit nem Skript angefangen:

      // Luftqualität v1
      
      // User Einstellungen
      
      const stations = ["DEBW019"]; // Stationen, können durch Komma getrennt werden z.B. ["DEBW019", "DEBY007"]
      const datenpunkt_pre ="0_userdata.0" // => wird in 0_userdata.0.Luftqualität gespeichert
      const debug = false;
      //  Abfrage findet um **:05 und **:10 stündlich statt (um fehlende Daten eventl. nachzufüllen). Die Daten werden sowieso nur stündlich von der letzten Stunde zur Verfügung gestellt...
      
      // Datenverarbeitung 
      
      var dp_path = datenpunkt_pre + ".Luftqualität.";
      var timer;
      var components;
      var stations_list;
      
      const fetch = require('node-fetch');
      
      function createBaseFolder(ID, type, name)
      {
      /** geklaut bei grrfield
       * Erstellt Basisfolder und stellt den richtigen Typ ein
       * @param   {string}    ID          ID des Folders
       * @param   {any}       type        Typ des Folders
       * @param   {string}    [name]      (optional) Name des Folders
       */  
      
          createState(ID, function() {
              let obj=getObject(ID);
              obj.type=type;
              if(name != undefined) obj.common.name=name;
              obj.common.role='';
              setObject(ID, obj);
          });
      }
      
      const get_stations = async () => {
          const url_stations = "https://umweltbundesamt.api.proxy.bund.dev/api/air_data/v3/stations/json?lang=de";
          var stations_json = fetch(url_stations)
              .then(response => response.json())
              .then(data => {
                  //if (debug) console.log(data);
                  return data})
              .catch ((err) => {
              console.error("failed fetch " + err);
              
          }
          );
          return stations_json;
      }
      
      const send_request = async (station_code) => {
              const d = new Date();
      
      let hour = d.getHours()-1;
      let date = d.getFullYear + "-" + d.getMonth + "-" + d.getDay;
      
              const url_server = "https://umweltbundesamt.api.proxy.bund.dev/api/air_data/v3/airquality/json?date_from=" + date + "&time_from=" + hour + "&date_to=" +date +"&time_to=" + (hour +1) + " &station=" + station_code + "&lang=de";
              var request = fetch(url_server)
              .then(response => response.json())
              .then(data => {
                  if (debug) console.log(data);
                  return data})
              .catch ((err) => {
              console.error("failed fetch " + err);
        
          }
          );
          return request;
      
      };
      
      const get_components = async () => {
              var list = fetch("https://umweltbundesamt.api.proxy.bund.dev/api/air_data/v3/components/json?lang=de&index=id")
              .then(response => response.json())
              .then(data => {
                  if (debug) console.log(data);
                  return data})
              .catch ((err) => {
              console.error("failed fetch " + err);
              
          }
          );
          return list;
      };
      
      async function get_data (station_code) {
            
          var data = await send_request(station_code);
      
          if (!existsObject(dp_path + station_code)){
              if (debug) console.warn("not exist => " +  stations_list.data[data.request.station][2]);
              createBaseFolder(dp_path + station_code, "folder", stations_list.data[data.request.station][2]);
          }
          var measure_set = data.data[data.request.station][data.request.datetime_from];
          
          for (let i = 3 ; i < measure_set.length; i++) {
          
              var id = dp_path + station_code + "." + components[measure_set[i][0]][1];
              if (debug) console.log ("ID: " + id);
              existsState(id, (err, isExists) => {
                  var idwork = dp_path + station_code + "." + components[measure_set[i][0]][1];
                  if (debug){
                      console.log ("IDwork: " + idwork);
                      console.log ("initval: " + measure_set[i][1]);
                      console.log ("Name: " + components[measure_set[i][0]][4] + "(" + components[measure_set[i][0]][1] + ")");
                      console.log ("unit: " + components[measure_set[i][0]][3]);
                  }
                  if (err) console.error (err);
              
                  if (isExists) {
                      if (debug) console.log ("Exists writing new value");
                      setState(idwork,  measure_set[i][1]);
                  }
              
                  else{
                      if (debug) console.log ("Not Exists - creating State");
                      createState(idwork, measure_set[i][1], { name: components[measure_set[i][0]][4] + " (" + components[measure_set[i][0]][2] + ")", unit: components[measure_set[i][0]][3], type: "number", role: "value", read: true, write: true} , () => { log('Dp '+ idwork + ' erstellt!'); });
                  }
              });
          }
      }
      onStop (() => {
          clearSchedule(timer);
      });
      async function init(){
          stations_list = await get_stations();
          components = await get_components();
          stations.forEach (get_data); // init für sofortige Datenverfügbarkeit
      
          // timer um */5 und */10
          timer = schedule({minute: [5,10]}, () => {
          stations.forEach (get_data);
      });
      }
      
      init();
      

      Funktion:
      auf der SEITE des Umwelbundesamtes die StationsID raussuchen
      582e07dc-ceb1-4d47-8e50-73147c3d7d8b-grafik.png
      Es können auch mehrere Stationen durch Komma getrennt im Skript eingetragen werden.
      Dann werden die Daten (letzter Stündlicher Mittelwert) unter dem eingestellten Datenpunkt um **:05 und **:10 gespeichert.

      f026f669-f3ef-431f-a141-8cc9ae77705a-grafik.png

      Ich plane noch die "Airquality indexes" hinzuzufügen.

      Rene55R 1 Antwort Letzte Antwort
      2
      • BoronsbruderB Boronsbruder

        @rene55
        Adapter kann ich nicht.
        Skripten ein bischen, deswegen hab ich für euch/uns Daten-Fetischisten mal mit nem Skript angefangen:

        // Luftqualität v1
        
        // User Einstellungen
        
        const stations = ["DEBW019"]; // Stationen, können durch Komma getrennt werden z.B. ["DEBW019", "DEBY007"]
        const datenpunkt_pre ="0_userdata.0" // => wird in 0_userdata.0.Luftqualität gespeichert
        const debug = false;
        //  Abfrage findet um **:05 und **:10 stündlich statt (um fehlende Daten eventl. nachzufüllen). Die Daten werden sowieso nur stündlich von der letzten Stunde zur Verfügung gestellt...
        
        // Datenverarbeitung 
        
        var dp_path = datenpunkt_pre + ".Luftqualität.";
        var timer;
        var components;
        var stations_list;
        
        const fetch = require('node-fetch');
        
        function createBaseFolder(ID, type, name)
        {
        /** geklaut bei grrfield
         * Erstellt Basisfolder und stellt den richtigen Typ ein
         * @param   {string}    ID          ID des Folders
         * @param   {any}       type        Typ des Folders
         * @param   {string}    [name]      (optional) Name des Folders
         */  
        
            createState(ID, function() {
                let obj=getObject(ID);
                obj.type=type;
                if(name != undefined) obj.common.name=name;
                obj.common.role='';
                setObject(ID, obj);
            });
        }
        
        const get_stations = async () => {
            const url_stations = "https://umweltbundesamt.api.proxy.bund.dev/api/air_data/v3/stations/json?lang=de";
            var stations_json = fetch(url_stations)
                .then(response => response.json())
                .then(data => {
                    //if (debug) console.log(data);
                    return data})
                .catch ((err) => {
                console.error("failed fetch " + err);
                
            }
            );
            return stations_json;
        }
        
        const send_request = async (station_code) => {
                const d = new Date();
        
        let hour = d.getHours()-1;
        let date = d.getFullYear + "-" + d.getMonth + "-" + d.getDay;
        
                const url_server = "https://umweltbundesamt.api.proxy.bund.dev/api/air_data/v3/airquality/json?date_from=" + date + "&time_from=" + hour + "&date_to=" +date +"&time_to=" + (hour +1) + " &station=" + station_code + "&lang=de";
                var request = fetch(url_server)
                .then(response => response.json())
                .then(data => {
                    if (debug) console.log(data);
                    return data})
                .catch ((err) => {
                console.error("failed fetch " + err);
          
            }
            );
            return request;
        
        };
        
        const get_components = async () => {
                var list = fetch("https://umweltbundesamt.api.proxy.bund.dev/api/air_data/v3/components/json?lang=de&index=id")
                .then(response => response.json())
                .then(data => {
                    if (debug) console.log(data);
                    return data})
                .catch ((err) => {
                console.error("failed fetch " + err);
                
            }
            );
            return list;
        };
        
        async function get_data (station_code) {
              
            var data = await send_request(station_code);
        
            if (!existsObject(dp_path + station_code)){
                if (debug) console.warn("not exist => " +  stations_list.data[data.request.station][2]);
                createBaseFolder(dp_path + station_code, "folder", stations_list.data[data.request.station][2]);
            }
            var measure_set = data.data[data.request.station][data.request.datetime_from];
            
            for (let i = 3 ; i < measure_set.length; i++) {
            
                var id = dp_path + station_code + "." + components[measure_set[i][0]][1];
                if (debug) console.log ("ID: " + id);
                existsState(id, (err, isExists) => {
                    var idwork = dp_path + station_code + "." + components[measure_set[i][0]][1];
                    if (debug){
                        console.log ("IDwork: " + idwork);
                        console.log ("initval: " + measure_set[i][1]);
                        console.log ("Name: " + components[measure_set[i][0]][4] + "(" + components[measure_set[i][0]][1] + ")");
                        console.log ("unit: " + components[measure_set[i][0]][3]);
                    }
                    if (err) console.error (err);
                
                    if (isExists) {
                        if (debug) console.log ("Exists writing new value");
                        setState(idwork,  measure_set[i][1]);
                    }
                
                    else{
                        if (debug) console.log ("Not Exists - creating State");
                        createState(idwork, measure_set[i][1], { name: components[measure_set[i][0]][4] + " (" + components[measure_set[i][0]][2] + ")", unit: components[measure_set[i][0]][3], type: "number", role: "value", read: true, write: true} , () => { log('Dp '+ idwork + ' erstellt!'); });
                    }
                });
            }
        }
        onStop (() => {
            clearSchedule(timer);
        });
        async function init(){
            stations_list = await get_stations();
            components = await get_components();
            stations.forEach (get_data); // init für sofortige Datenverfügbarkeit
        
            // timer um */5 und */10
            timer = schedule({minute: [5,10]}, () => {
            stations.forEach (get_data);
        });
        }
        
        init();
        

        Funktion:
        auf der SEITE des Umwelbundesamtes die StationsID raussuchen
        582e07dc-ceb1-4d47-8e50-73147c3d7d8b-grafik.png
        Es können auch mehrere Stationen durch Komma getrennt im Skript eingetragen werden.
        Dann werden die Daten (letzter Stündlicher Mittelwert) unter dem eingestellten Datenpunkt um **:05 und **:10 gespeichert.

        f026f669-f3ef-431f-a141-8cc9ae77705a-grafik.png

        Ich plane noch die "Airquality indexes" hinzuzufügen.

        Rene55R Online
        Rene55R Online
        Rene55
        schrieb am zuletzt editiert von
        #5164

        @boronsbruder Ich schau mal, ob es da schon eine Anfrage auf einen Adapter zu diesem Thema gibt. Danke für dein Engagement, aber wir sollten den Thread hier nicht weiter volltexten sondern wenn du willst in einem Neuen.

        Host: Fujitsu Intel(R) Pentium(R) CPU G4560T, 32 GB RAM, Proxmox 8.x + lxc Ubuntu 22.04
        ioBroker (8 GB RAM) Node.js: 20.19.1, NPM: 10.8.2, js-Controller: 7.0.6, Admin: 7.6.3
        Wetterstation: Froggit WH3000SE V1.6.6

        BoronsbruderB 1 Antwort Letzte Antwort
        0
        • Rene55R Rene55

          @boronsbruder Ich schau mal, ob es da schon eine Anfrage auf einen Adapter zu diesem Thema gibt. Danke für dein Engagement, aber wir sollten den Thread hier nicht weiter volltexten sondern wenn du willst in einem Neuen.

          BoronsbruderB Online
          BoronsbruderB Online
          Boronsbruder
          schrieb am zuletzt editiert von
          #5165

          @rene55 sagte in [Linux Shell-Skript] WLAN-Wetterstation:

          @boronsbruder ... aber wir sollten den Thread hier nicht weiter volltexten sondern wenn du willst in einem Neuen.

          Hier is die V2 des Skripts

          NashraN 2 Antworten Letzte Antwort
          0
          • BoronsbruderB Boronsbruder

            @rene55 sagte in [Linux Shell-Skript] WLAN-Wetterstation:

            @boronsbruder ... aber wir sollten den Thread hier nicht weiter volltexten sondern wenn du willst in einem Neuen.

            Hier is die V2 des Skripts

            NashraN Offline
            NashraN Offline
            Nashra
            Most Active Forum Testing
            schrieb am zuletzt editiert von
            #5166

            @boronsbruder sagte in [Linux Shell-Skript] WLAN-Wetterstation:

            @rene55 sagte in [Linux Shell-Skript] WLAN-Wetterstation:

            @boronsbruder ... aber wir sollten den Thread hier nicht weiter volltexten sondern wenn du willst in einem Neuen.

            Hier is die V2 des Skripts

            Die v2 installiert aber jeden Morgen kommt dieser Fehler zur selben Uhrzeit

            2024-01-22 02:09:47.206 - info: linux-control.0 (1080) successful received data from ioBroker (192.168.1.14:22)
            2024-01-22 02:10:00.797 - error: javascript.0 (283) script.js.Wetter.Luftqualität: TypeError: Cannot read properties of undefined (reading '2024-01-22 00:00:00')
            2024-01-22 02:10:00.797 - error: javascript.0 (283) at get_data (script.js.Wetter.Luftqualität:148:54)
            2024-01-22 02:10:00.797 - error: javascript.0 (283) at processTicksAndRejections (node:internal/process/task_queues:95:5)
            2024-01-22 02:12:00.026 - info: host.ioBroker instance system.adapter.meteoalarm.2 started with pid 1832595
            

            Gruß Ralf
            Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            BoronsbruderB 1 Antwort Letzte Antwort
            0
            • NashraN Nashra

              @boronsbruder sagte in [Linux Shell-Skript] WLAN-Wetterstation:

              @rene55 sagte in [Linux Shell-Skript] WLAN-Wetterstation:

              @boronsbruder ... aber wir sollten den Thread hier nicht weiter volltexten sondern wenn du willst in einem Neuen.

              Hier is die V2 des Skripts

              Die v2 installiert aber jeden Morgen kommt dieser Fehler zur selben Uhrzeit

              2024-01-22 02:09:47.206 - info: linux-control.0 (1080) successful received data from ioBroker (192.168.1.14:22)
              2024-01-22 02:10:00.797 - error: javascript.0 (283) script.js.Wetter.Luftqualität: TypeError: Cannot read properties of undefined (reading '2024-01-22 00:00:00')
              2024-01-22 02:10:00.797 - error: javascript.0 (283) at get_data (script.js.Wetter.Luftqualität:148:54)
              2024-01-22 02:10:00.797 - error: javascript.0 (283) at processTicksAndRejections (node:internal/process/task_queues:95:5)
              2024-01-22 02:12:00.026 - info: host.ioBroker instance system.adapter.meteoalarm.2 started with pid 1832595
              
              BoronsbruderB Online
              BoronsbruderB Online
              Boronsbruder
              schrieb am zuletzt editiert von
              #5167

              @nashra
              Hab ich auch bemerkt.
              Die Api kann meines Erachtens nicht mit Stunde 0 umgehen.
              Hab die Kollegen mal angeschrieben, aber ich wurde so wie es aussieht missverstanden.

              1 Antwort Letzte Antwort
              1
              • BoronsbruderB Online
                BoronsbruderB Online
                Boronsbruder
                schrieb am zuletzt editiert von
                #5168

                @SBorg
                Falls du es mal brauchst:
                API V3 Doku

                1 Antwort Letzte Antwort
                1
                • SBorgS Offline
                  SBorgS Offline
                  SBorg
                  Forum Testing Most Active
                  schrieb am zuletzt editiert von
                  #5169

                  Ich verstehe deren System auch nicht so ganz. Eigentlich ist doch UBA nur Deutschland...?
                  Wollen sie jetzt noch Zeitzonen in BRD einführen? Bin schon mal auf die Sommer-/Winterzeit-Thematik bei denen gespannt.

                  Aber 1-24 bei den Stunden ist auch der Burner. Wer arbeitet den in der Computertechnologie mit 24:00 Uhr?
                  Ich bin jetzt im NodeRed-Flow den einfachen Weg gegangen und verzichte einfach auf den 0:00 Uhr Wert, wobei ich es eh nicht nutze. Ich nehme weiter die Daten des HLNUG, nur die Karte vom UBA, da die vom HLNUG schon ein paar Wochen nicht mehr aktualisiert wird :(
                  Bild 001.png
                  Bild 002.png

                  LG SBorg ( SBorg auf GitHub)
                  Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                  BoronsbruderB 1 Antwort Letzte Antwort
                  0
                  • SBorgS SBorg

                    Ich verstehe deren System auch nicht so ganz. Eigentlich ist doch UBA nur Deutschland...?
                    Wollen sie jetzt noch Zeitzonen in BRD einführen? Bin schon mal auf die Sommer-/Winterzeit-Thematik bei denen gespannt.

                    Aber 1-24 bei den Stunden ist auch der Burner. Wer arbeitet den in der Computertechnologie mit 24:00 Uhr?
                    Ich bin jetzt im NodeRed-Flow den einfachen Weg gegangen und verzichte einfach auf den 0:00 Uhr Wert, wobei ich es eh nicht nutze. Ich nehme weiter die Daten des HLNUG, nur die Karte vom UBA, da die vom HLNUG schon ein paar Wochen nicht mehr aktualisiert wird :(
                    Bild 001.png
                    Bild 002.png

                    BoronsbruderB Online
                    BoronsbruderB Online
                    Boronsbruder
                    schrieb am zuletzt editiert von
                    #5170

                    @sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:

                    Wer arbeitet den in der Computertechnologie mit 24:00 Uhr?

                    Jeder der keinen Bock hat sich Gedanken um Jahres-, Monats- oder Tageswechsel zu machen...
                    Weisst ja 0 Uhr - 1 :D

                    1 Antwort Letzte Antwort
                    0
                    • BoronsbruderB Online
                      BoronsbruderB Online
                      Boronsbruder
                      schrieb am zuletzt editiert von Boronsbruder
                      #5171

                      @SBorg
                      Ich hab da was für dich:

                      2024-01-24 23:58:05.001 - info: simple-api.0 (5300) State value to set for "0_userdata.0.Wetterstation.Info.Solarenergie_VorTag" has to be type "number" but received type "string"
                      2024-01-24 23:58:05.175 - info: simple-api.0 (5300) State value to set for "0_userdata.0.Wetterstation.Info.Solarenergie_Woche" has to be type "number" but received type "string"
                      2024-01-24 23:58:05.175 - info: simple-api.0 (5300) State value to set for "0_userdata.0.Wetterstation.Info.Solarenergie_Monat" has to be type "number" but received type "string"
                      2024-01-24 23:58:05.176 - info: simple-api.0 (5300) State value to set for "0_userdata.0.Wetterstation.Info.Solarenergie_Jahr" has to be type "number" but received type "string"
                      2024-01-24 23:58:05.176 - info: simple-api.0 (5300) State value to set for "0_userdata.0.Wetterstation.tempData.Solarenergie" has to be type "string" but received type "number" 
                      

                      Das passiert, wenn die Solarenergie-Datenpunkte leer sind.
                      Der TempData steht z.B. gerade auf 404,662, weil ich seit 2 Tagen erst wieder, in Ermangelung eines Aussensensors, Daten bekomme.
                      Wenn die SimpleApi halt alle 30 Sekunden rummotzt gibt das ganz schön große Logs ;)

                      Eigentlich eher ein Schönheitsfehler...

                      SBorgS 1 Antwort Letzte Antwort
                      0
                      • BoronsbruderB Boronsbruder

                        @SBorg
                        Ich hab da was für dich:

                        2024-01-24 23:58:05.001 - info: simple-api.0 (5300) State value to set for "0_userdata.0.Wetterstation.Info.Solarenergie_VorTag" has to be type "number" but received type "string"
                        2024-01-24 23:58:05.175 - info: simple-api.0 (5300) State value to set for "0_userdata.0.Wetterstation.Info.Solarenergie_Woche" has to be type "number" but received type "string"
                        2024-01-24 23:58:05.175 - info: simple-api.0 (5300) State value to set for "0_userdata.0.Wetterstation.Info.Solarenergie_Monat" has to be type "number" but received type "string"
                        2024-01-24 23:58:05.176 - info: simple-api.0 (5300) State value to set for "0_userdata.0.Wetterstation.Info.Solarenergie_Jahr" has to be type "number" but received type "string"
                        2024-01-24 23:58:05.176 - info: simple-api.0 (5300) State value to set for "0_userdata.0.Wetterstation.tempData.Solarenergie" has to be type "string" but received type "number" 
                        

                        Das passiert, wenn die Solarenergie-Datenpunkte leer sind.
                        Der TempData steht z.B. gerade auf 404,662, weil ich seit 2 Tagen erst wieder, in Ermangelung eines Aussensensors, Daten bekomme.
                        Wenn die SimpleApi halt alle 30 Sekunden rummotzt gibt das ganz schön große Logs ;)

                        Eigentlich eher ein Schönheitsfehler...

                        SBorgS Offline
                        SBorgS Offline
                        SBorg
                        Forum Testing Most Active
                        schrieb am zuletzt editiert von
                        #5172

                        @boronsbruder

                        :blush: Den Zustand kann es "eigentlich" auch nicht geben. Entweder alle Daten da oder eben nüscht.
                        Bei uns sagt man: Kommt davon wenn man so neumodische Ferz hat... :joy:

                        Sollte dann in/ab der V3.3.0 abgefangen werden. Da ich aber aktuell nicht aktiv daran arbeite kann das etwas dauern bis die kommt.


                        Aktueller Wasserstand des Projektes: Bugfixing ja, Weiterentwicklung (so 1-2 Dinge stehen aktuell noch auf der Agenda) ruht schlichtweg aus Zeitmangel

                        LG SBorg ( SBorg auf GitHub)
                        Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                        BoronsbruderB 1 Antwort Letzte Antwort
                        1
                        • SBorgS SBorg

                          @boronsbruder

                          :blush: Den Zustand kann es "eigentlich" auch nicht geben. Entweder alle Daten da oder eben nüscht.
                          Bei uns sagt man: Kommt davon wenn man so neumodische Ferz hat... :joy:

                          Sollte dann in/ab der V3.3.0 abgefangen werden. Da ich aber aktuell nicht aktiv daran arbeite kann das etwas dauern bis die kommt.


                          Aktueller Wasserstand des Projektes: Bugfixing ja, Weiterentwicklung (so 1-2 Dinge stehen aktuell noch auf der Agenda) ruht schlichtweg aus Zeitmangel

                          BoronsbruderB Online
                          BoronsbruderB Online
                          Boronsbruder
                          schrieb am zuletzt editiert von
                          #5173

                          @sborg
                          Alte Maschin gabutt - Ameise machen Nest in Maschin - kaufen neie Maschin :man-shrugging:

                          1 Antwort Letzte Antwort
                          0
                          • E Offline
                            E Offline
                            el_rob
                            schrieb am zuletzt editiert von
                            #5174

                            Hallo zusammen,

                            Aktuell besteht meine "Wetterstation" aus einer selbstgebastelten Arduino Lösung. Allerdings möchte ich jetzt etwas Verlässlicheres und überlege mir daher ein Ecowitt GW2000 Gateway in Kombi mit einem WS90 "Wittboy" 7-in-1 Sensor zu holen. Die Regenmessung des WS90 soll allerdings nicht so prickelnd funktionieren, weswegen in den einschlägigen Foren empfohlen wird, zusätzlich einen WH40 (= Froggit DP80) Regenmesser zu verwenden. Der WH40 wird hier allerdings nicht unter den kompatiblen Zusatzsensoren aufgeführt. Heisst das, es werden nur die Regenwerte des WS90 an iobroker übergeben oder gibt es eine Möglichkeit, auch den WH40 einzubinden? Hat jemand die Kombi WS90 und WH40 im Einsatz und kann berichten ob das funktioniert?

                            BoronsbruderB 1 Antwort Letzte Antwort
                            0
                            • E el_rob

                              Hallo zusammen,

                              Aktuell besteht meine "Wetterstation" aus einer selbstgebastelten Arduino Lösung. Allerdings möchte ich jetzt etwas Verlässlicheres und überlege mir daher ein Ecowitt GW2000 Gateway in Kombi mit einem WS90 "Wittboy" 7-in-1 Sensor zu holen. Die Regenmessung des WS90 soll allerdings nicht so prickelnd funktionieren, weswegen in den einschlägigen Foren empfohlen wird, zusätzlich einen WH40 (= Froggit DP80) Regenmesser zu verwenden. Der WH40 wird hier allerdings nicht unter den kompatiblen Zusatzsensoren aufgeführt. Heisst das, es werden nur die Regenwerte des WS90 an iobroker übergeben oder gibt es eine Möglichkeit, auch den WH40 einzubinden? Hat jemand die Kombi WS90 und WH40 im Einsatz und kann berichten ob das funktioniert?

                              BoronsbruderB Online
                              BoronsbruderB Online
                              Boronsbruder
                              schrieb am zuletzt editiert von Boronsbruder
                              #5175

                              @el_rob
                              56791873-4e42-40b4-b0e7-b316fea31f66-grafik.png
                              Es besteht die Möglichkeit im WebIf des GW2000 auszuwählen, welcher Wert an den Server gesendet werden soll. Somit sollte der WH40 auch funktioneren.

                              E 1 Antwort Letzte Antwort
                              0
                              • BoronsbruderB Boronsbruder

                                @el_rob
                                56791873-4e42-40b4-b0e7-b316fea31f66-grafik.png
                                Es besteht die Möglichkeit im WebIf des GW2000 auszuwählen, welcher Wert an den Server gesendet werden soll. Somit sollte der WH40 auch funktioneren.

                                E Offline
                                E Offline
                                el_rob
                                schrieb am zuletzt editiert von
                                #5176

                                @boronsbruder Ah, okay. Das heisst, ich kann im Gateway einstellen, dass für den Wert "Regenstatus" der Wert des WS90 gesendet wird (da dieser aufgrund seines Piezo-Sensors schneller reagiert) und für die restlichen Regen-Werte (Menge etc.) die Daten des WH40 genommen werden?

                                SBorgS BoronsbruderB 2 Antworten Letzte Antwort
                                0
                                • E el_rob

                                  @boronsbruder Ah, okay. Das heisst, ich kann im Gateway einstellen, dass für den Wert "Regenstatus" der Wert des WS90 gesendet wird (da dieser aufgrund seines Piezo-Sensors schneller reagiert) und für die restlichen Regen-Werte (Menge etc.) die Daten des WH40 genommen werden?

                                  SBorgS Offline
                                  SBorgS Offline
                                  SBorg
                                  Forum Testing Most Active
                                  schrieb am zuletzt editiert von
                                  #5177

                                  @el_rob sagte in [Linux Shell-Skript] WLAN-Wetterstation:

                                  für den Wert "Regenstatus" der Wert des WS90 gesendet

                                  In dem Fall egal, denn der kommt vom Skript, nicht vom Sensor ;)

                                  Ich kann nicht direkt auf den Wert verlinken, aber in der Liste steht es drin: https://github.com/SBorg2014/WLAN-Wetterstation/wiki

                                  Fehlende Sensoren kann ich in aller Regel implementieren, ich brauche dann nur den Datenstring. An den komme ich ohne Hardware nicht dran und Herstellersupport bekomme ich nicht.

                                  LG SBorg ( SBorg auf GitHub)
                                  Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                                  1 Antwort Letzte Antwort
                                  0
                                  • SBorgS Offline
                                    SBorgS Offline
                                    SBorg
                                    Forum Testing Most Active
                                    schrieb am zuletzt editiert von
                                    #5178

                                    Weil mir ja langweilig ist und ich nix besseres zu tun habe, ist die Freizeit der letzten Tage dafür drauf gegangen Grafana umzustellen. Mit der aktuellen meckert er nun jedes Panel schon an das unter anderem Angular nutzt.
                                    Also alles von "Blendstat" nach "Stat" migriert. Na danke, das Blendstat war um Längen besser. Ich habe zwar schon fast alles wieder hinbekommen, zwei Sachen gehen aber nicht:

                                    • die Deckkraft der Sparklines ändern (die sind sehr durchsichtig)
                                    • jedes benötigt eine meines Erachtens zu große Mindestgröße um überhaupt Sparklines anzuzeigen

                                    Bild 002.png

                                    LG SBorg ( SBorg auf GitHub)
                                    Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                                    1 Antwort Letzte Antwort
                                    1
                                    • E el_rob

                                      @boronsbruder Ah, okay. Das heisst, ich kann im Gateway einstellen, dass für den Wert "Regenstatus" der Wert des WS90 gesendet wird (da dieser aufgrund seines Piezo-Sensors schneller reagiert) und für die restlichen Regen-Werte (Menge etc.) die Daten des WH40 genommen werden?

                                      BoronsbruderB Online
                                      BoronsbruderB Online
                                      Boronsbruder
                                      schrieb am zuletzt editiert von
                                      #5179

                                      @el_rob
                                      Nein, du kannst nur einstellen, welcher Wert an den Server gesendet wird. Entweder Piezo oder Kipphebel.

                                      E 1 Antwort Letzte Antwort
                                      0
                                      • BoronsbruderB Boronsbruder

                                        @el_rob
                                        Nein, du kannst nur einstellen, welcher Wert an den Server gesendet wird. Entweder Piezo oder Kipphebel.

                                        E Offline
                                        E Offline
                                        el_rob
                                        schrieb am zuletzt editiert von
                                        #5180

                                        Vielen Dank für eure Antworten @SBorg und @boronsbruder, dann werde ich es mal mit dieser Kombi versuchen.

                                        1 Antwort Letzte Antwort
                                        0
                                        • E Offline
                                          E Offline
                                          EasyTJ
                                          schrieb am zuletzt editiert von EasyTJ
                                          #5181

                                          hello,

                                          Edit: Kommando zurück - Fehler gefunden und behoben :)

                                          ich bin am verzweifeln. Es hat ewig gedauert, bis ich das Skript zum Laufen bekommen habe. Letztlich lag es daran, dass ich den docker auf nem NAS laufen lasse und immer den Netzwerkmodus Host anstatt Bridge verwendet habe. Nachdem ich einige Daten empfangen habe, wollte ich meine Altlasten beseitigen und habe einen neuen Docker aufgesetzt. Gleichzeitig wurde mir ein Update der GW-2000A angeboten (V. 3.1.2), was ich auch gestartet hatte. Nachdem Aufsetzen des neuen Dockers mit anderer IP bekomme ich nun wieder keine Verbindung und ich weiß einfach nicht, was ich falsch mache. Liegt es an dem Update?

                                          Protokoll zeigt:
                                          parse error: Invalid numeric literal at line 1, column 7
                                          (standard_in) 1: syntax error
                                          (standard_in) 1: syntax error
                                          /opt/wetterstation/wetterstation.sub: line 849: [: : integer expression expected

                                          K 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

                                          529

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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