Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. [Linux Shell-Skript] WLAN-Wetterstation

    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

    [Linux Shell-Skript] WLAN-Wetterstation

    This topic has been deleted. Only users with topic management privileges can see it.
    • Nashra
      Nashra Most Active Forum Testing last edited by Nashra

      @Negalein
      bei mir auch alles ok.
      tah2.png
      tah.png

      Trage doch mal in den Datenpunkten jeweils eine 0 ein und beobachte.

      Negalein 1 Reply Last reply Reply Quote 0
      • Negalein
        Negalein Global Moderator @Nashra last edited by

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

        Trage doch mal in den Datenpunkten jeweils eine 0 ein und beobachte.

        die Werte werden vom Script eingetragen.
        Zeitstempel passt bei allen.

        Nur in 0_userdata.0.Wetterstation.Info.Temp_Aussen_Heute_min schreibt er den selben Wert wie in 0_userdata.0.Wetterstation.Info.Temp_Aussen_Heute_max.
        0_userdata.0.Wetterstation.Info.Temp_Aussen_24h_max & 0_userdata.0.Wetterstation.Info.Temp_Aussen_24h_min steht nur (null).
        Und in 0_userdata.0.Wetterstation.Info.Temp_Met_Sommer_avg steht nur 99,99.

        Aber wie gesagt, Zeitstempel & zuletzt geändert passt bei allen.

        Nashra SBorg 2 Replies Last reply Reply Quote 0
        • Nashra
          Nashra Most Active Forum Testing @Negalein last edited by

          @negalein
          Keine Ahnung warum das bei dir so ist, da müsste @SBorg dir was zu sagen können

          1 Reply Last reply Reply Quote 0
          • SBorg
            SBorg Forum Testing Most Active @Negalein last edited by

            @negalein Das wird alles aus der DB ermittelt, sieht nach einem Influx-Problem aus.
            Daten für den meteorologischen Sommer gibt es ab 01.06. ca. 23:58 Uhr (wenn also wenigstens 1 Tag erfasst wurde und dann die Mitternachtjobs laufen).

            Bringt denn im Installationsverzeichnis stehend was an Werte (Service kann dazu weiterlaufen):

            • ./wetterstation.sh --influx_test
            • ./wetterstation.sh --metsommer

            Bild 001.png

            Negalein 1 Reply Last reply Reply Quote 0
            • Negalein
              Negalein Global Moderator @SBorg last edited by

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

              ./wetterstation.sh --influx_test

              dietpi@DietPi:/home/iobroker$ ./wetterstation.sh --influx_test
              Testing InfluxDB... min/max Aussentemperatur 24h: °C °C
              

              ./wetterstation.sh --metsommer

              dietpi@DietPi:/home/iobroker$ ./wetterstation.sh --metsommer
              
               Daten vom 01.06.2023 bis 31.08.2023 wurden ermittelt...
              
                       Ø-Temperatur:  °C
                       Regenmenge  : 35.836 l/m²
              
              SBorg 1 Reply Last reply Reply Quote 0
              • SBorg
                SBorg Forum Testing Most Active @Negalein last edited by

                @negalein Da er zumindest die Regenmenge aus der InfluxDB lesen kann sollte der Teil korrekt sein/arbeiten.

                Anscheinend funktioniert bei dir das loggen der Aussentempertur nicht korrekt. Hast du mal im Dataexplorer von Influx nachgeschaut ob du da einen Graphen für die Aussentemperatur bekommst? Hast du ev. mehrere Instanzen und loggst die falsche bzw. ev. ins falsche Bucket?

                Negalein 1 Reply Last reply Reply Quote 0
                • Negalein
                  Negalein Global Moderator @SBorg last edited by

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

                  loggst die falsche bzw. ev. ins falsche Bucket?

                  ah, das kann sein

                  in der .conf ist es iobroker-1w
                  Aussentemperatur wird aber in iobroker geschrieben.
                  Regen in iobroker-1w

                  schaut jetzt auch besser aus 🙂

                  dietpi@DietPi:/home/iobroker$ ./wetterstation.sh --influx_test
                  Testing InfluxDB... min/max Aussentemperatur 24h: 16.38°C 16.5°C
                  dietpi@DietPi:/home/iobroker$ ./wetterstation.sh --metsommer
                  
                   Daten vom 01.06.2023 bis 31.08.2023 wurden ermittelt...
                  
                           Ø-Temperatur: 16.46 °C
                           Regenmenge  : 43.735 l/m²
                  
                  SBorg 1 Reply Last reply Reply Quote 0
                  • SBorg
                    SBorg Forum Testing Most Active @Negalein last edited by

                    @negalein 😀
                    Dann müsstest du jetzt aber die Werte von "iobroker" per csv exportieren und in "iobroker-1w" importieren, sonst fehlen dir für den Metsommer zumindest die ersten ~26 Tage.

                    Negalein 1 Reply Last reply Reply Quote 0
                    • Negalein
                      Negalein Global Moderator @SBorg last edited by Negalein

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

                      Dann müsstest du jetzt aber die Werte von "iobroker" per csv exportieren und in "iobroker-1w" importieren, sonst fehlen dir für den Metsommer zumindest die ersten ~26 Tage.

                      puuh, wie geht das.
                      Ich hab schon öfter gesucht, da ich mehr verschieben müsste, aber nur sehr umständliche Wege gefunden.

                      Export ist mit dem Dataexplorer kein Problem. Aber der Import. Da finde ich nichts vereinfachtes.

                      SBorg 1 Reply Last reply Reply Quote 0
                      • SBorg
                        SBorg Forum Testing Most Active @Negalein last edited by

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

                        Aber der Import. Da finde ich nichts vereinfachtes.

                        Weil es zu einfach ist 😊
                        Du gehst auf "Sources" (1. Menüpunkt Pfeil nach oben), dann unter "File Upload" Flux Annotated CSV das passende Bucket für den Import auswählen und dann deine exportierte CSV per Drag&Drop reinziehen oder auswählen...

                        Negalein 1 Reply Last reply Reply Quote 0
                        • Negalein
                          Negalein Global Moderator @SBorg last edited by

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

                          Weil es zu einfach ist

                          Merci, war ja echt voll easy.
                          Danke

                          1 Reply Last reply Reply Quote 0
                          • SBorg
                            SBorg Forum Testing Most Active last edited by

                            Bild 001.png

                            coming soon ... 😇 😁

                            Negalein 1 Reply Last reply Reply Quote 4
                            • Negalein
                              Negalein Global Moderator @SBorg last edited by

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

                              coming soon ...

                              cool
                              World of Warcraft 😂 😂 😂

                              SBorg 1 Reply Last reply Reply Quote 0
                              • Nashra
                                Nashra Most Active Forum Testing last edited by

                                @SBorg
                                Heute Morgen folgender Fehler im Log

                                2023-07-01 01:03:00.081 - error: javascript.0 (433) Error in callback: TypeError: VorJahr.substring is not a function
                                2023-07-01 01:03:00.081 - error: javascript.0 (433) at VorJahr (script.js.Wetter.Statistik-WS:415:38)
                                2023-07-01 01:03:00.082 - error: javascript.0 (433) at Object.main (script.js.Wetter.Statistik-WS:156:4)
                                2023-07-01 01:03:00.082 - error: javascript.0 (433) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1606:34)
                                2023-07-01 01:03:00.082 - error: javascript.0 (433) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:171:15)
                                2023-07-01 01:03:00.082 - error: javascript.0 (433) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                                2023-07-01 01:03:00.082 - error: javascript.0 (433) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                                2023-07-01 01:03:00.082 - error: javascript.0 (433) at listOnTimeout (node:internal/timers:569:17)
                                2023-07-01 01:03:00.082 - error: javascript.0 (433) at processTimers (node:internal/timers:512:7)
                                

                                In der Statistik-Anzeige ist soweit alles ok
                                ws-statistik.png

                                Boronsbruder SBorg 2 Replies Last reply Reply Quote 0
                                • Boronsbruder
                                  Boronsbruder @Nashra last edited by

                                  @nashra said in [Linux Shell-Skript] WLAN-Wetterstation:

                                  @SBorg
                                  Heute Morgen folgender Fehler im Log

                                  2023-07-01 01:03:00.081 - error: javascript.0 (433) Error in callback: TypeError: VorJahr.substring is not a function
                                  2023-07-01 01:03:00.081 - error: javascript.0 (433) at VorJahr (script.js.Wetter.Statistik-WS:415:38)
                                  2023-07-01 01:03:00.082 - error: javascript.0 (433) at Object.main (script.js.Wetter.Statistik-WS:156:4)
                                  2023-07-01 01:03:00.082 - error: javascript.0 (433) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1606:34)
                                  2023-07-01 01:03:00.082 - error: javascript.0 (433) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:171:15)
                                  2023-07-01 01:03:00.082 - error: javascript.0 (433) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                                  2023-07-01 01:03:00.082 - error: javascript.0 (433) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                                  2023-07-01 01:03:00.082 - error: javascript.0 (433) at listOnTimeout (node:internal/timers:569:17)
                                  2023-07-01 01:03:00.082 - error: javascript.0 (433) at processTimers (node:internal/timers:512:7)
                                  

                                  In der Statistik-Anzeige ist soweit alles ok
                                  ws-statistik.png

                                  @SBorg

                                  Mein modifizierter Code lief diesmal ohne Probleme 😉

                                  2023-07-01 01:03:00.028 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: [{'Tiefstwert':6.7,'Hoechstwert':37,'Temp_Durchschnitt':21,'Max_Windboee':42.11,'Max_Regenmenge':22,'Regenmenge_Monat':54.9,'warme_Tage':29,'Sommertage':23,'heisse_Tage':8,'Frost_Tage':0,'kalte_Tage':0,'Eistage':0,'sehr_kalte_Tage':0}]
                                  2023-07-01 01:03:00.029 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_Tiefstwert--> 6.7
                                  2023-07-01 01:03:00.029 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_Hoechstwert--> 37
                                  2023-07-01 01:03:00.030 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_Temp_Durchschnitt--> 21
                                  2023-07-01 01:03:00.030 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_Max_Windboee--> 42.11
                                  2023-07-01 01:03:00.030 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_Max_Regenmenge--> 22
                                  2023-07-01 01:03:00.030 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_Regenmenge_Monat--> 54.9
                                  2023-07-01 01:03:00.031 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_warme_Tage--> 29
                                  2023-07-01 01:03:00.031 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_Sommertage--> 23
                                  2023-07-01 01:03:00.031 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_heisse_Tage--> 8
                                  2023-07-01 01:03:00.031 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_Frost_Tage--> 0
                                  2023-07-01 01:03:00.031 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_kalte_Tage--> 0
                                  2023-07-01 01:03:00.032 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_Eistage--> 0
                                  2023-07-01 01:03:00.048 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_sehr_kalte_Tage--> 0
                                  2023-07-01 01:03:00.049 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: Auswertung durchgeführt...
                                  2023-07-01 01:03:00.230 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: Ausführung zum Monatsersten beendet...
                                  
                                     let zeitstempel = new Date();
                                      let datum = new Date(zeitstempel.getFullYear(),zeitstempel.getMonth(),zeitstempel.getDate());
                                      let monatsdatenpunkt = '.Data.'+ (datum.getFullYear()-1) +'.'+pad(datum.getMonth()+1);
                                      if (existsState(PRE_DP+monatsdatenpunkt)) { //der einfache Weg: wir haben schon Daten vom Vorjahr...
                                  
                                          let VorJahr = getState(PRE_DP+monatsdatenpunkt).val;
                                          VorJahr = JSON.parse(VorJahr);
                                          
                                          // Daten vom Vorjahr durchiterieren und Datenpunkte befüllen
                                              console.log (VorJahr);
                                              VorJahr.forEach(obj => {
                                                  Object.keys(obj).forEach(key => {
                                                      console.log ('.Vorjahres_' + key + '--> ' + obj[key]);
                                  
                                                      // fix für Datenpunktname
                                                      let setkey = key;                                       
                                                      if (key == 'Temp_Durchschnitt') setkey = "Temperatur_Durchschnitt";
                                  
                                                      setState(PRE_DP+'.Vorjahres_Monat.' +setkey, obj[key], true);
                                                  });
                                              });
                                  
                                  SBorg 1 Reply Last reply Reply Quote 0
                                  • SBorg
                                    SBorg Forum Testing Most Active @Nashra last edited by

                                    @nashra Der Fehler bezieht sich/macht sich bemerkbar auch auf den VorJahres_Monat. Hier wirst du so aktuell keine Daten vom Juli 2022 haben, sondern irgendwo Daten von April oder Mai 2022 (Zeitstempel 01-05-2023 oä):
                                    Bild 001.png


                                    @_all_Statistiker
                                    Fix für Juli:

                                    • neues JS mit folgendem Inhalt anlegen, ausführen, stoppen (kann danach gelöscht werden)
                                    
                                        const PRE_DP='0_userdata.0.Statistik.Wetter';  //Speicherort der Statistikdaten
                                        const monatsdatenpunkt='.Data.2022.07';        //.Data.Jahr.Monat
                                    
                                            let VorJahr = getState(PRE_DP+monatsdatenpunkt).val;
                                            VorJahr = JSON.parse(VorJahr);
                                    
                                            
                                            // Daten vom Vorjahr durchiterieren und Datenpunkte befüllen
                                                console.log (VorJahr);
                                                VorJahr.forEach(obj => {
                                                    Object.keys(obj).forEach(key => {
                                                        console.log ('.Vorjahres_' + key + '--> ' + obj[key]);
                                    
                                                        // fix für Datenpunktname
                                                        let setkey = key;                                       
                                                        if (key == 'Temp_Durchschnitt') setkey = "Temperatur_Durchschnitt";
                                    
                                                        setState(PRE_DP+'.Vorjahres_Monat.' +setkey, obj[key], true);
                                    
                                                    });
                                                });
                                    
                                    

                                    (sollte einiges an Ausgabe produzieren), danach sind die Juli 2022 (sofern man Daten hatte) Werte vorhanden.

                                    1 Reply Last reply Reply Quote 0
                                    • SBorg
                                      SBorg Forum Testing Most Active @Boronsbruder last edited by

                                      @boronsbruder Asche auf mein Haupt 🤕
                                      Schon vor Juni geändert, lief dann im Juni und Juli durch, da ich es selbst aber aktiv nicht nutze kpl. vergessen...


                                      An alle Statistiker:

                                      Neue Version V2.0.3 des Statistik-Scriptes auf GitHub verfügbar.
                                      Am einfachsten wie immer den Konfigurationsblock per C&P sichern, Skript kpl. ersetzen und den Konfig-Block wieder mittels C&P zurückschreiben.

                                      T 1 Reply Last reply Reply Quote 2
                                      • T
                                        tritor @SBorg last edited by

                                        @sborg

                                        also für die noch-nicht-fitten Statistiker, diesen Bereich sichern?

                                        // *** User-Einstellungen **********************************************************************************************************************************
                                            const WET_DP='0_userdata.0.Wetterstation';          // wo liegen die Datenpunkte mit den Daten der Wetterstation  [default: 0_userdata.0.Wetterstation]                          
                                            const INFLUXDB_INSTANZ='0';                         // unter welcher Instanz läuft die InfluxDB [default: 0]
                                            const INFLUXDB_BUCKET='ioBroker';                     // Name des zu benutzenden Buckets
                                            const PRE_DP='0_userdata.0.Statistik.Wetter';       // wo sollen die Statistikwerte abgelegt werden. Nur unter "0_userdata" oder "javascript" möglich!
                                            let REKORDWERTE_AUSGABEFORMAT="[WERT] im [MONAT] [JAHR]";   /* Wie soll die Ausgabe der Rekordwerte formatiert werden (Template-Vorlage)?
                                                                                                            [WERT]      = Messwert (zB. '22.42' bei Temperatur, '12' bei Tagen)
                                                                                                            [TAG]       = Tag (0-31)
                                                                                                            [MONAT]     = Monatsname (Januar, Februar,..., Dezember)
                                                                                                            [MONAT_ZAHL]= Monat als Zahl (01-12)
                                                                                                            [MONAT_KURZ]= Monatsname kurz (Jan, Feb,..., Dez)
                                                                                                            [JAHR]      = Jahreszahl vierstellig (2020)
                                                                                                         Die 'Units' wie bspw. "°C" oder "Tage" werden direkt aus dem Datenpunkt ergänzt. 
                                                                                                         [default: [WERT] im [MONAT] [JAHR] ] erzeugt als Beispiel im DP die 
                                                                                                         Ausgabe: "22.42 °C im Juni 2020"
                                                                                                        */
                                            const ZEITPLAN = "3 1 * * *";                       // wann soll die Statistik erstellt werden (Minuten Stunde * * *) [default 1:03 Uhr] 
                                        // *** ENDE User-Einstellungen *****************************************************************************************************************************
                                        

                                        dann neues Script einfügen und den User-Einstellungs-Bereich wieder einfügen?

                                        SBorg 1 Reply Last reply Reply Quote 0
                                        • SBorg
                                          SBorg Forum Testing Most Active @Negalein last edited by

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

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

                                          coming soon ...

                                          cool
                                          World of Warcraft 😂 😂 😂

                                          Nicht ganz 😁
                                          Wer demnächst Beta testen will, kann schon mal https://github.com/SBorg2014/WLAN-Wetterstation/wiki/Installation-WeatherObservationsWebsite-(optional)
                                          und könnte mir vor dem anlegen der Site einen Auszug schicken was da bei "My Sites" steht:
                                          Bild 002.png
                                          ...und wie man sieht, "WOW" kommt nicht von mir (hätte ich aber auch genauso abgekürzt 😂 )

                                          Negalein 1 Reply Last reply Reply Quote 0
                                          • SBorg
                                            SBorg Forum Testing Most Active @tritor last edited by

                                            @tritor Im Grunde ja. In deinem Fall (wenn man die Defaults nutzt) einfach den Inhalt des kpl. Scripts löschen (CTRL-A und dann "Entf" drucken) das neue Script mittels (CTRL-A und CTRL-C) in die Zwischenablage kopieren und mittels CTRL-V in das leere Script im ioBroker einfügen. Dann brauchst du nur in dem Einstellungsblock dein Bucket von "Wetter" wieder auf "ioBroker" ändern, speichern und wieder starten.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            839
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            linux shell-script wetterstation wlan-wetterstation
                                            143
                                            5478
                                            3302855
                                            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