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

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Linux Shell-Skript] WLAN-Wetterstation

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

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

      Ich werde dich virtuell dabei unterstützen 😂

      War auch teilweise erfolgreich, wenn auch mehr Fragen offen sind als ich derzeit Antworten habe. Die Werte ermitteln ist "easy peasy", aber die Statistik hat doch so ihre Fallstricke.
      Zumindest läuft es aktuell auf InfluxDB hinaus, da es viele (auch wg. Grafana) eh am laufen haben. History produziert nur zusätzlich eine Menge an Daten, ist deutlich langsamer und ineffizient in der Abfrage zu handeln.
      Ich hatte zwar zuvor schon eine tägliche Auswertung angedacht, dass muss aber nun so sein, denn eine monatliche Auswertung würde zu lange dauern. Bei einem Turnus von 16 Sekunden der Wetterstation haben wir ~ 5.600 Messwerte pro Tag pro Unit. Wir bräuchten also die Aussentemperaturwerte, Regenmenge und Windgeschwindigkeit. Eine Abfrage der Tageswerte dauert per Influx aber schon 2-3 Sekunden (die Ermittlung der div. Werte ist dabei so gut wie nicht messbar). Da ist die monatliche Abfrage nicht mehr zu handeln: 3 Sek x 3 Abfragen x 30 Tage = ~fast 5(!) Minuten...
      ...also täglich speichern, einlesen, addieren...
      ...und so nebenbei mal Gedanken gemacht, wie denn die DPs überhaupt aussehen müssen damit man die dynamisch in der VIS anzeigen kann...

      btw: Fragen etc. zum eigentlichen Thread natürlich weiter gerne hier, aber IMHO sind die letzten Posts nicht OT, sondern gehören doch irgendwie zum Thema und es "dürfen" sich auch gerne mehr beteiligen 😉 🙂

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

        @Negalein Dann mal ein erster Test. Neues JS anlegen (am besten in einer neuen Instanz, dann knallt es dir nicht im Fehlerfall den eigentlichen JS-Adapter weg. Sollte zwar nicht, aber man weiß ja nie... 😉 ) :

        /* Wetterstation-Statistiken 
           (c)2020 by SBorg 
           V0.0.1 - 05.09.2020   erste Alpha + Min/Max/Durchschnitt/Temp über 20°?
           holt die Messwerte aus einer InfluxDB und erstellt eine Statistik
          ToDo: vieles ;)
          known issues: keine
        */
        
        let werte = [];
        let zeitstempel = new Date();
        let start = new Date(zeitstempel.getFullYear(),zeitstempel.getMonth(),zeitstempel.getDate(),0,0,0);
        start = start.getTime();
        let end = new Date(zeitstempel.getFullYear(),zeitstempel.getMonth(),zeitstempel.getDate(),23,59,59);
        end = end.getTime();
        
        sendTo('influxdb.0', 'query', 'select * FROM "javascript.0.Wetterstation.Aussentemperatur" WHERE time >= ' + (start *1000000) + ' AND time <= ' + (end *1000000), function (result) {
        
            if (result.error) {
                console.error('Fehler: '+result.error);
            } else {
                //console.log('Rows: ' + JSON.stringify(result.result[0]));
                for (let i = 0; i < result.result[0].length; i++) {
                werte[i] = result.result[0][i].value;
                }
            }
        
         /*   const json = JSON.stringify(result.result[0][0]);
            const obj = JSON.parse(json);
            console.log(obj.ts);
            console.log(obj.value); */
        
            Math.sum = (...werte) => Array.prototype.reduce.call(werte,(a,b) => a+b);
            let Durchschnitt = (Math.sum(...werte)/werte.length).toFixed(2);
            if (Math.max(...werte) > 20) {console.log('Temperatur lag heute über 20°C');}
            console.log('Tiefstwert: ' + Math.min(...werte) + '°C');
            console.log('Höchstwert: ' + Math.max(...werte) + '°C');
            console.log('Durchschnitt: ' + Durchschnitt + '°C');
            console.log('Erster Messwert: ' + new Date(result.result[0][0].ts).toISOString() + ' ***' + result.result[0][0].value);
            console.log('Letzter Messwert: ' + new Date(result.result[0][werte.length-1].ts).toISOString() + ' ***' + result.result[0][werte.length-1].value);
            console.log('Anzahl Datensätze: ' + werte.length);
        });
        
        function timeConverter(UNIX_timestamp){
          let a = new Date(UNIX_timestamp);
          let months = ['Jan','Feb','Mär','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'];
          let year = a.getFullYear();
          let month = months[a.getMonth()];
          let date = a.getDate();
          let hour = a.getHours();
          let min = a.getMinutes();
          let sec = a.getSeconds();
          let time = pad(date) + '. ' + month + ' ' + year + ' ' + pad(hour) + ':' + pad(min) + ':' + pad(sec) ;
          return time;
        }
        
        function pad(n) {
            return n<10 ? '0'+n : n;
        }
        
        console.log('Daten ab ' + timeConverter(start));
        console.log('Daten bis ' + timeConverter(end)); 
        
        

        Anpassen musst du nur #16 ob dein Influx unter Instanz "0" läuft und den DP-Zweig für die Aussentemperatur.
        Sollte dann so nach dem starten aussehen:
        Bild 1.png
        Interessieren würde mich dann

        • allgemeine Laufzeit
        • dein System (PI, bzw. CPU + RAM)
        • sind die Werte plausibel
        • speziell gegen ~23:5x Uhr
          • Laufzeit
          • Anzahl der Datensätze

        Wenn der Ansatz so funktioniert werde ich zum "master-Branch" auf GitHub einen "Beta" anlegen, um dort dann das aktuelle JS vor zu halten.

        Negalein 2 Replies Last reply Reply Quote 0
        • S
          skokarl last edited by skokarl

          OT

          nur für Euch zur Info, Montag Aldi Nord, allerdings nur Online, Gruß Bernd

          1.PNG

          Glasfaser 1 Reply Last reply Reply Quote 1
          • Glasfaser
            Glasfaser @skokarl last edited by

            ++++ inklusiv Support von @skokarl , der demnächst für Neulinge hier kommt 😀 .... 😉

            S 1 Reply Last reply Reply Quote 0
            • S
              skokarl @Glasfaser last edited by

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

              ++++ inklusiv Support von @skokarl , der demnächst für Neulinge hier kommt 😀 .... 😉

              Ich komm seit nem halben Jahr zu nix mehr, eine Baustelle nach der anderen, Corona Mist,
              und noch nen Mops Welpen für die Frau....also, Support erst ab 2022 😬
              😀
              außerdem bin ich bei Euren geilen Views und Datenbanken schon lange raus ...

              SBorg 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 mal ein erster Test.

                Du bist der Hammer 🙂

                Also, das Log sieht gut aus.

                javascript.1	2020-09-05 17:10:20.786	info	(1029) script.js.common.Wetterstatistik: Anzahl Datensätze: 939
                javascript.1	2020-09-05 17:10:20.785	info	(1029) script.js.common.Wetterstatistik: Letzter Messwert: 2020-09-05T15:09:15.128Z ***27.5
                javascript.1	2020-09-05 17:10:20.785	info	(1029) script.js.common.Wetterstatistik: Erster Messwert: 2020-09-04T22:02:36.676Z ***17.27
                javascript.1	2020-09-05 17:10:20.785	info	(1029) script.js.common.Wetterstatistik: Durchschnitt: 20.48°C
                javascript.1	2020-09-05 17:10:20.785	info	(1029) script.js.common.Wetterstatistik: Höchstwert: 28.72°C
                javascript.1	2020-09-05 17:10:20.784	info	(1029) script.js.common.Wetterstatistik: Tiefstwert: 12.88°C
                javascript.1	2020-09-05 17:10:20.775	info	(1029) script.js.common.Wetterstatistik: Temperatur lag heute über 20°C
                javascript.1	2020-09-05 17:10:20.671	info	(1029) script.js.common.Wetterstatistik: registered 0 subscriptions and 0 schedules
                javascript.1	2020-09-05 17:10:20.671	info	(1029) script.js.common.Wetterstatistik: Daten bis 05. Sep 2020 23:59:59
                javascript.1	2020-09-05 17:10:20.670	info	(1029) script.js.common.Wetterstatistik: Daten ab 05. Sep 2020 00:00:00
                javascript.1	2020-09-05 17:10:20.663	info	(1029) Start javascript script.js.common.Wetterstatistik
                javascript.1	2020-09-05 17:10:20.532	info	(1029) Stop script script.js.common.Wetterstatistik
                javascript.1	2020-09-05 17:10:18.149	info	(1029) script.js.common.Wetterstatistik: Anzahl Datensätze: 939
                javascript.1	2020-09-05 17:10:18.149	info	(1029) script.js.common.Wetterstatistik: Letzter Messwert: 2020-09-05T15:09:15.128Z ***27.5
                javascript.1	2020-09-05 17:10:18.148	info	(1029) script.js.common.Wetterstatistik: Erster Messwert: 2020-09-04T22:02:36.676Z ***17.27
                javascript.1	2020-09-05 17:10:18.148	info	(1029) script.js.common.Wetterstatistik: Durchschnitt: 20.48°C
                javascript.1	2020-09-05 17:10:18.148	info	(1029) script.js.common.Wetterstatistik: Höchstwert: 28.72°C
                javascript.1	2020-09-05 17:10:18.145	info	(1029) script.js.common.Wetterstatistik: Tiefstwert: 12.88°C
                javascript.1	2020-09-05 17:10:18.145	info	(1029) script.js.common.Wetterstatistik: Temperatur lag heute über 20°C
                javascript.1	2020-09-05 17:10:17.534	info	(1029) script.js.common.Wetterstatistik: registered 0 subscriptions and 0 schedules
                javascript.1	2020-09-05 17:10:17.533	info	(1029) script.js.common.Wetterstatistik: Daten bis 05. Sep 2020 23:59:59
                javascript.1	2020-09-05 17:10:17.533	info	(1029) script.js.common.Wetterstatistik: Daten ab 05. Sep 2020 00:00:00
                javascript.1	2020-09-05 17:10:17.416	info	(1029) Start javascript script.js.common.Wetterstatistik
                

                Interessieren würde mich dann

                allgemeine Laufzeit

                wie meinst du das?

                dein System (PI, bzw. CPU + RAM)

                Synology 718+, 10 GB RAM, im Docker

                sind die Werte plausibel

                Ja, auf den ersten Blick sind sie es

                speziell gegen ~23:5x Uhr
                Laufzeit

                wie meinst du das?

                Anzahl der Datensätze

                stehen die auch wieder im Log? Um 23:59? Oder sind die dann anders zu finden?

                1 Reply Last reply Reply Quote 0
                • R
                  Rushmed Most Active @SBorg last edited by

                  @SBorg Ich sehe wie sich die Umsetzung der von mir lang erwarteten Extremwerte anbahnt und stehe gern für Tests bereit. Ich hab mir das für bestimmte Werte per Blockly schon selber hemdsärmelig zusammengebastelt indem ich jeweils den aktuellen Wert mit dem Extremwert vergleiche und ggf. in den Extremwert Datenpunkt schreibe.
                  ff7cda49-e0c3-4fd7-9566-60b18f719ce4-grafik.png
                  Das direkte Außlesen aus der DB gefällt mir aber viel besser.

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

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

                    Ich komm seit nem halben Jahr zu nix mehr, eine Baustelle nach der anderen

                    Willkommen im Club 😢

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

                    wie meinst du das?

                    Wie lange das Skript für die Bearbeitung braucht. Bei dir auf der Synology waren es bei ~900 Datensätze 700ms. Das ist absolut akzeptabel.
                    Auf meinem performanten Quad Core, bei der ungefähr selben Anzahl an Datensätzen, aber schon mit drei Abfragen (Temp, Wind und Regen): 35ms
                    Bild 1.png
                    rot: Start | grün Ende

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

                    speziell gegen ~23:5x Uhr
                    Laufzeit

                    wie meinst du das?

                    Anzahl der Datensätze

                    stehen die auch wieder im Log? Um 23:59? Oder sind die dann anders zu finden?

                    Die Datensätze stehen bei jedem Aufruf zum Ende der Skriptverarbeitung immer da. Die variieren halt je nach deinem Intervall der Station, ob du in Influx alles loggst, oder nur Änderungen, oder...
                    Ein Test kurz vor Mitternacht verarbeitet dann in etwa die maximal auftretenden Datensätze. Aber es muss nicht unbedingt 23:59 Uhr sein, denn die paar Datensätze wenn du es um 23:55 Uhr ausführst machen den Bock nicht wirklich fett.
                    Zumindest sieht es nach einer zufriedenstellenden Performance aus. Ich habe aus versehen einen Fehler bei den Timecodes gemacht und alle Datensätze abgefragt. 173.000 Datensätze in 5 Sekunden. Influx ist echt flott 😊

                    @Rushmed Ich hatte das schon lange auf der Agenda, nur nie direkt beim Shell-Skript. Das taugt an der Stelle einfach nicht. Da ist JS einfach die bessere/performantere Wahl.

                    R 1 Reply Last reply Reply Quote 0
                    • R
                      Rushmed Most Active @SBorg last edited by

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

                      @Rushmed Ich hatte das schon lange auf der Agenda, nur nie direkt beim Shell-Skript. Das taugt an der Stelle einfach nicht. Da ist JS einfach die bessere/performantere Wahl.

                      Du bist der Spezialist, ich freu mich nur auf die Lösung und kann helfen die lauffähig zu bekommen.

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

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

                        speziell gegen ~23:5x Uhr

                        5.9.2020, 23:56:34.980	[info ]: javascript.1 (1029) Start javascript script.js.common.Wetterstatistik
                        5.9.2020, 23:56:34.989	[info ]: javascript.1 (1029) script.js.common.Wetterstatistik: Daten ab 05. Sep 2020 00:00:00
                        5.9.2020, 23:56:34.990	[info ]: javascript.1 (1029) script.js.common.Wetterstatistik: Daten bis 05. Sep 2020 23:59:59
                        5.9.2020, 23:56:34.990	[info ]: javascript.1 (1029) script.js.common.Wetterstatistik: registered 0 subscriptions and 0 schedules
                        5.9.2020, 23:56:35.080	[info ]: javascript.1 (1029) script.js.common.Wetterstatistik: Temperatur lag heute über 20°C
                        5.9.2020, 23:56:35.080	[info ]: javascript.1 (1029) script.js.common.Wetterstatistik: Tiefstwert: 12.88°C
                        5.9.2020, 23:56:35.081	[info ]: javascript.1 (1029) script.js.common.Wetterstatistik: Höchstwert: 28.72°C
                        5.9.2020, 23:56:35.081	[info ]: javascript.1 (1029) script.js.common.Wetterstatistik: Durchschnitt: 20.73°C
                        5.9.2020, 23:56:35.081	[info ]: javascript.1 (1029) script.js.common.Wetterstatistik: Erster Messwert: 2020-09-04T22:02:36.676Z ***17.27
                        5.9.2020, 23:56:35.082	[info ]: javascript.1 (1029) script.js.common.Wetterstatistik: Letzter Messwert: 2020-09-05T21:53:45.795Z ***17.5
                        5.9.2020, 23:56:35.082	[info ]: javascript.1 (1029) script.js.common.Wetterstatistik: Anzahl Datensätze: 1319
                        

                        Wenn ich das richtig sehe, sind es 102 ms für 1319 Datensätze.

                        Und kurz nach Mitternacht mit nur 2 Datensätzen auch 100 ms.

                        00:05:09.123	info	javascript.1 (1029) Start javascript script.js.common.Wetterstatistik
                        00:05:09.135	info	javascript.1 (1029) script.js.common.Wetterstatistik: Daten ab 06. Sep 2020 00:00:00
                        00:05:09.135	info	javascript.1 (1029) script.js.common.Wetterstatistik: Daten bis 06. Sep 2020 23:59:59
                        00:05:09.135	info	javascript.1 (1029) script.js.common.Wetterstatistik: registered 0 subscriptions and 0 schedules
                        00:05:09.221	info	javascript.1 (1029) script.js.common.Wetterstatistik: Tiefstwert: 17.38°C
                        00:05:09.221	info	javascript.1 (1029) script.js.common.Wetterstatistik: Höchstwert: 17.5°C
                        00:05:09.222	info	javascript.1 (1029) script.js.common.Wetterstatistik: Durchschnitt: 17.44°C
                        00:05:09.222	info	javascript.1 (1029) script.js.common.Wetterstatistik: Erster Messwert: 2020-09-05T22:01:30.847Z ***17.5
                        00:05:09.223	info	javascript.1 (1029) script.js.common.Wetterstatistik: Letzter Messwert: 2020-09-05T22:02:02.616Z ***17.38
                        00:05:09.223	info	javascript.1 (1029) script.js.common.Wetterstatistik: Anzahl Datensätze: 2
                        

                        Spielt dann eigentlich keine Rolle, ob 2 oder 1300 Datensätze.

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

                          @Negalein Sieht gut aus 🙂
                          Wenn man noch Zeit für die Ausgabe abzieht absolut ideal. Auch die Durchschnittsberechnung funktioniert.
                          Auf GitHub gibt es nun einen "beta-Branch", dort liegt zukünftig das aktuelle JS. Bitte mal testen wie schnell das ist.

                          6.9.2020, 10:33:34.308	[info ]: javascript.1 (3402) Start javascript script.js.common.Test.Wetterstation_Statistik
                          6.9.2020, 10:33:34.316	[info ]: javascript.1 (3402) script.js.common.Test.Wetterstation_Statistik: registered 0 subscriptions and 0 schedules
                          6.9.2020, 10:33:35.529	[info ]: javascript.1 (3402) script.js.common.Test.Wetterstation_Statistik: Daten ab 06. Aug 2020 00:00:00
                          6.9.2020, 10:33:35.530	[info ]: javascript.1 (3402) script.js.common.Test.Wetterstation_Statistik: Daten bis 06. Sep 2020 23:59:59
                          6.9.2020, 10:33:35.540	[info ]: javascript.1 (3402) script.js.common.Test.Wetterstation_Statistik: Temperatur lag heute über 20 °C
                          6.9.2020, 10:33:35.545	[info ]: javascript.1 (3402) script.js.common.Test.Wetterstation_Statistik: Temperatur lag heute über 25 °C
                          6.9.2020, 10:33:35.549	[info ]: javascript.1 (3402) script.js.common.Test.Wetterstation_Statistik: Tiefstwert: 9.61 °C
                          6.9.2020, 10:33:35.553	[info ]: javascript.1 (3402) script.js.common.Test.Wetterstation_Statistik: Höchstwert: 37.11 °C
                          6.9.2020, 10:33:35.553	[info ]: javascript.1 (3402) script.js.common.Test.Wetterstation_Statistik: Durchschnitt: 23.03 °C
                          6.9.2020, 10:33:35.557	[info ]: javascript.1 (3402) script.js.common.Test.Wetterstation_Statistik: Maximum Windböe: 36.69 km/h
                          6.9.2020, 10:33:35.558	[info ]: javascript.1 (3402) script.js.common.Test.Wetterstation_Statistik: Regenmenge: 2326.40 l/m²
                          6.9.2020, 10:33:35.558	[info ]: javascript.1 (3402) script.js.common.Test.Wetterstation_Statistik: Regenmenge/Tag: 17.2 l/m²
                          6.9.2020, 10:33:35.559	[info ]: javascript.1 (3402) script.js.common.Test.Wetterstation_Statistik: Erster Messwert: 2020-08-05T22:02:25.825Z ***19.11
                          6.9.2020, 10:33:35.559	[info ]: javascript.1 (3402) script.js.common.Test.Wetterstation_Statistik: Letzter Messwert: 2020-09-06T08:32:04.253Z ***16.77
                          6.9.2020, 10:33:35.559	[info ]: javascript.1 (3402) script.js.common.Test.Wetterstation_Statistik: Anzahl Datensätze: 33552
                          6.9.2020, 10:33:39.592	[info ]: javascript.1 (3402) Stop script script.js.common.Test.Wetterstation_Statistik
                          

                          Bei mir ~1.2 Sekunden, allerdings werden hier schon drei Datenbankabfragen über einen Zeitraum von einem Monat gefahren. Sind bei mir immerhin 33k Datensätze und dann noch die Auswertung. Ist ein reiner Performancetest ob auch notfalls eine Monatsauswertung durchführbar wäre.
                          Die Daten sollten auch soweit stimmen, nur über 20/25° stimmt dann nicht mehr und die Regenmenge ist nonsens. Die ist kein Einzelwert wie die anderen Messwerte, sondern addiert sich auf. Dann darf ich aber nicht jeden Messwert nochmals aufaddieren...

                          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:

                            Bei mir ~1.2 Sekunden, allerdings werden hier schon drei Datenbankabfragen über einen Zeitraum von einem Monat gefahren. Sind bei mir immerhin 33k Datensätze

                            15:36:18.125	info	javascript.1 (1029) Start javascript script.js.common.Wetterstatistik
                            15:36:18.137	info	javascript.1 (1029) script.js.common.Wetterstatistik: registered 0 subscriptions and 0 schedules
                            15:36:27.631	info	javascript.1 (1029) script.js.common.Wetterstatistik: Daten ab 06. Aug 2020 00:00:00
                            15:36:27.632	info	javascript.1 (1029) script.js.common.Wetterstatistik: Daten bis 06. Sep 2020 23:59:59
                            15:36:27.664	info	javascript.1 (1029) script.js.common.Wetterstatistik: Temperatur lag heute über 20 °C
                            15:36:27.665	info	javascript.1 (1029) script.js.common.Wetterstatistik: Temperatur lag heute über 25 °C
                            15:36:27.666	info	javascript.1 (1029) script.js.common.Wetterstatistik: Tiefstwert: 9.5 °C
                            15:36:27.667	info	javascript.1 (1029) script.js.common.Wetterstatistik: Höchstwert: 32.77 °C
                            15:36:27.668	info	javascript.1 (1029) script.js.common.Wetterstatistik: Durchschnitt: 20.78 °C
                            15:36:27.669	info	javascript.1 (1029) script.js.common.Wetterstatistik: Maximum Windböe: 60.51 km/h
                            15:36:27.689	info	javascript.1 (1029) script.js.common.Wetterstatistik: Regenmenge: 97581.90 l/m²
                            15:36:27.700	info	javascript.1 (1029) script.js.common.Wetterstatistik: Regenmenge/Tag: 21.1 l/m²
                            15:36:27.700	info	javascript.1 (1029) script.js.common.Wetterstatistik: Erster Messwert: 2020-08-05T22:00:01.627Z ***14.72
                            15:36:27.700	info	javascript.1 (1029) script.js.common.Wetterstatistik: Letzter Messwert: 2020-09-06T13:33:04.987Z ***18.88
                            15:36:27.700	info	javascript.1 (1029) script.js.common.Wetterstatistik: Anzahl Datensätze: 37375
                            

                            Was sagt der Meister? 😉

                            Mir ist noch was aufgefallen.
                            Die Daten sind vom 6. 9. 2020
                            Heute hatten wir aber definitiv keinen Höchstwert von 32,77 °C
                            Oder von welchem Zeitraum nimmt er diesen Wert?

                            Ah, sehe gerade, beim Regen 97581 l/m²
                            Das dürfte utopisch sein. 😁
                            wären 251 l/m² seit Betreb der Station.

                            1 Reply Last reply Reply Quote 0
                            • R
                              Rushmed Most Active last edited by

                              19:37:01.630	info	javascript.0 (3836) Start javascript script.js.Wetterstation_Statistik
                              19:37:01.650	info	javascript.0 (3836) script.js.Wetterstation_Statistik: registered 0 subscriptions and 0 schedules
                              19:37:11.462	info	javascript.0 (3836) script.js.Wetterstation_Statistik: Daten ab 06. Aug 2020 00:00:00
                              19:37:11.463	info	javascript.0 (3836) script.js.Wetterstation_Statistik: Daten bis 06. Sep 2020 23:59:59
                              19:37:11.468	info	javascript.0 (3836) script.js.Wetterstation_Statistik: Temperatur lag heute über 20 °C
                              19:37:11.469	info	javascript.0 (3836) script.js.Wetterstation_Statistik: Temperatur lag heute über 25 °C
                              19:37:11.471	info	javascript.0 (3836) script.js.Wetterstation_Statistik: Tiefstwert: 8.61 °C
                              19:37:11.472	info	javascript.0 (3836) script.js.Wetterstation_Statistik: Höchstwert: 39.11 °C
                              19:37:11.472	info	javascript.0 (3836) script.js.Wetterstation_Statistik: Durchschnitt: 23.30 °C
                              19:37:11.475	info	javascript.0 (3836) script.js.Wetterstation_Statistik: Maximum Windböe: 47.96 km/h
                              19:37:11.476	info	javascript.0 (3836) script.js.Wetterstation_Statistik: Regenmenge: 11029.90 l/m²
                              19:37:11.476	info	javascript.0 (3836) script.js.Wetterstation_Statistik: Regenmenge/Tag: 47.1 l/m²
                              19:37:11.476	info	javascript.0 (3836) script.js.Wetterstation_Statistik: Erster Messwert: 2020-08-05T22:00:29.754Z ***16.5
                              19:37:11.477	info	javascript.0 (3836) script.js.Wetterstation_Statistik: Letzter Messwert: 2020-09-06T17:36:35.284Z ***17.61
                              19:37:11.477	info	javascript.0 (3836) script.js.Wetterstation_Statistik: Anzahl Datensätze: 30343
                              

                              Meine Zeitmessung auf nem PI4.

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

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

                                Meine Zeitmessung auf nem PI4.

                                Höchstwert: 39.11 °C
                                😎 WOW, wo wohnst? 😉

                                R 1 Reply Last reply Reply Quote 0
                                • R
                                  Rushmed Most Active @Negalein last edited by

                                  @Negalein Jena City und ich wohne im Dachgeschoss 😰

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

                                    Danke euch beiden.

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

                                    Heute hatten wir aber definitiv keinen Höchstwert von 32,77 °C
                                    Oder von welchem Zeitraum nimmt er diesen Wert?

                                    Ist ja auch nicht von heute (siehe meinen letzten Post "... über einen Zeitraum von einem Monat gefahren...". Schau mal genau auf ab wann die Daten ausgewertet werden ("Aug." 😉 ), und da war halt wohl so ein heißer Tag dabei. Es ging hier um den Test wie schnell eine kpl. Monatsauswertung durchgeführt werden kann. Hintergrund: s.u.

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

                                    Ah, sehe gerade, beim Regen 97581 l/m²
                                    Das dürfte utopisch sein.
                                    wären 251 l/m² seit Betreb der Station.

                                    Steht auch im vorherigen Post 😇
                                    Kleiner Denkfehler meinerseits. Ich addiere jeden Messwert auf. Das ist aber falsch, da sich der Messwert nur erhöht wenn es regnet. Beispiel Messwertereihe: 0-0-0-1(es regnet einen Liter und hört dann auf)-1-1-3(regnet wieder zwei Liter)-3-3...
                                    Korrekt ist jetzt natürlich nur drei Liter, da ich aber munter addiere: 1+1+1+3+3+3... = 12 und mehr Liter.

                                    Hintergrund für den Test der Monatsauswertung ist auch "einfach" erklärt:
                                    Die Auswertung für den heutigen Monat ist recht einfach/schnell. Dazu wird nach Mitternacht das JS gestartet. Es wertet dann den Vortag aus und schreibt die Daten zum aktuellen Monat hinzu. Soweit so gut (und auch einfach).
                                    Was ist aber mit den Daten aus dem Vorjahr (also aktuell Sep. 2019)?
                                    Ich kann natürlich den aktuellen Monat immer in einem zusätzlichen Datenpunkt ablegen, dann hätte man die Vorjahreswerte aber erst in einem Jahr (also Sep. 2020 im Sep. 2021) zur Verfügung. Die DPs müssten dann auch dynamisch angelegt werden. Sind zum einen dann sehr viele, ich lege im Grunde schon wieder eine Datenbank an (obwohl ja alles schon in der Influx steht) und in der VIS kommt man wg. der dynamischen DPs nicht um Bindings herum. In Summe nicht gerade sehr prickelnd und innerhalb der VIS performant...
                                    Deswegen möchte ich zum 1. des Monats immer eine kpl. Monatsauswertung des entsprechenden Monats aus dem Vorjahr fahren. Das dauert bei euch zwar 8-10 Sekunden, ist aber einmalig im Monat Nachts um x:xx Uhr IMHO vertretbar. Bei Multihost kann man es ggf. sogar auslagern, bei Single Host kommt es im ioB halt schlimmstenfalls mal zu einem kurzen lagg.
                                    Dann hätte man aber keine unnütze 2. Datenbank. Der Hauptvorteil wäre aber für die VIS, man kann mit festen DPs arbeiten, also bspw. Order "aktueller Monat" und den x-DPs mit aktuellen Werten darin, und Ordner "Vorjahr" mit den entsprechenden selben fixen DPs und Vorjahreswerten. Macht den Umgang/Gestaltung in der VIS flexibler und einfacher.

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

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

                                      siehe meinen letzten Post "... über einen Zeitraum von einem Monat gefahren...

                                      Ah, vor lauter Vorfreude hab ich das ganz übersehen.

                                      Der Hauptvorteil wäre aber für die VIS, man kann mit festen DPs arbeiten, also bspw. Order "aktueller Monat" und den x-DPs mit aktuellen Werten darin, und Ordner "Vorjahr" mit den entsprechenden selben fixen DPs und Vorjahreswerten. Macht den Umgang/Gestaltung in der VIS flexibler und einfacher.

                                      Das denke ich auch

                                      Deswegen möchte ich zum 1. des Monats immer eine kpl. Monatsauswertung des entsprechenden Monats aus dem Vorjahr fahren. Das dauert bei euch zwar 8-10 Sekunden, ist aber einmalig im Monat Nachts um x:xx Uhr IMHO vertretbar.

                                      genau, das machts nichts wenn die Auswertung mal etwas dauert. Um diese Zeit is es am System eh eher ruhig.

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

                                        Wer mag, neue Version auf GitHub. Ermittelt den 1. echten Wert (alle Werte immer vom Vortag!), schreibt diesen ggf. in einen DP falls er niedriger (da es der "Tiefstwert" ist) sein sollte:
                                        Bild 1.png

                                        Im JS können die Einstellungen konfiguriert werden ("User-Einstellungen"). Neue Datenpunkte werden dann automatisch angelegt. Das JS enthält zwar schon den lauffähigen Scheduler (Start jeweils 1:03 Uhr), startet aber zwecks Debugging derzeit noch sofort.
                                        Kleine Änderung an der Anzeige der Anzahl von Datensätzen, da insgesamt 3 Serien in der Influx abgefragt werden:

                                        Anzahl Datensätze: T_1234|W_711|R_25
                                        

                                        T: Temperaturen, W: Windgeschwindigkeiten, und wer hätte es Gedacht... R: Regenmengen
                                        Regen kommt bei mir hin, da Gestern kein Regen, ich nur Änderungen logge und wg. Grafana (-lücken) zumindest stündlich einmal einen Wert schreiben lasse, ob er sich nun geändert hat oder nicht 😉

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

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

                                          Wer mag, neue Version auf GitHub.

                                          1. Start
                                          17:55:41.624	info	javascript.1 (3031) Start javascript script.js.common.Wetterstatistik
                                          17:55:41.648	info	javascript.1 (3031) script.js.common.Wetterstatistik: 0_userdata.0.Statistik.Wetter existiert nicht... Lege Datenstruktur an...
                                          17:55:41.655	info	javascript.1 (3031) script.js.common.Wetterstatistik: Wetterstation-Statistiken gestartet...
                                          17:55:41.676	info	javascript.1 (3031) script.js.common.Wetterstatistik: registered 0 subscriptions and 1 schedule
                                          17:55:42.236	info	javascript.1 (3031) script.js.common.Wetterstatistik: Daten ab 06. Sep 2020 00:00:00
                                          17:55:42.239	info	javascript.1 (3031) script.js.common.Wetterstatistik: Daten bis 06. Sep 2020 23:59:59
                                          17:55:42.240	info	javascript.1 (3031) script.js.common.Wetterstatistik: Tiefstwert: 13.72 °C
                                          17:55:42.240	info	javascript.1 (3031) script.js.common.Wetterstatistik: Höchstwert: 20 °C
                                          17:55:42.240	info	javascript.1 (3031) script.js.common.Wetterstatistik: Durchschnitt: 16.80 °C
                                          17:55:42.241	info	javascript.1 (3031) script.js.common.Wetterstatistik: Maximum Windböe: 14.8 km/h
                                          17:55:42.241	info	javascript.1 (3031) script.js.common.Wetterstatistik: Regenmenge/Tag: 12.3 l/m²
                                          17:55:42.241	info	javascript.1 (3031) script.js.common.Wetterstatistik: Erster Messwert: 2020-09-05T22:01:30.847Z ***17.5
                                          17:55:42.242	info	javascript.1 (3031) script.js.common.Wetterstatistik: Letzter Messwert: 2020-09-06T21:58:22.241Z ***13.88
                                          17:55:42.242	info	javascript.1 (3031) script.js.common.Wetterstatistik: Anzahl Datensätze: T_844|W_1865|R_2811
                                          

                                          Bei Tiefstwert steht noch nichts im DP
                                          objects - ioBroker (1).png

                                          SBorg 1 Reply Last reply Reply Quote 0
                                          • R
                                            Rushmed Most Active last edited by

                                            Ich hätte die Statistikwerte gern in Wetterstation.0.Statistik abgelegt.
                                            Kann der JS Adapter das etwa nicht?

                                            // *** User-Einstellungen ***************************************************************************************
                                                let WET_DP='Wetterstation.0';    /* wo liegen die Datenpunkte mit den Daten der Wetterstation
                                                                                               [default: javascript.0.Wetterstation]                   */
                                                let INFLUXDB_INSTANZ='0';                   // unter welcher Instanz läuft die InfluxDB [default: 0]   
                                                let PRE_DP='Wetterstation.0.Statistik'; // wo sollen die Statistikwerte abgelegt werden   
                                                const ZEITPLAN = "3 1 * * *";               // wann soll die Statistik erstellt werden (Minuten Stunde * * *)                       
                                            // *** ENDE User-Einstellungen **********************************************************************************
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            822
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            linux shell-script wetterstation wlan-wetterstation
                                            141
                                            5447
                                            3011818
                                            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