Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  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.1k

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

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

[Linux Shell-Skript] WLAN-Wetterstation

Scheduled Pinned Locked Moved Praktische Anwendungen (Showcase)
linuxshell-scriptwetterstationwlan-wetterstation
5.7k Posts 152 Posters 3.8m Views 134 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • NegaleinN Offline
    NegaleinN Offline
    Negalein
    Global Moderator
    wrote on last edited by
    #1219

    Hallo @SBorg

    Ich möchte gern so eine Statistik erstellen.
    Mit Sourceanalytic geht zB Temperatur nicht.

    Hast du eine Idee, wie man die Werte ähnlich Sourceanalytic speichern könnte?
    WhatsApp Image 2020-09-01 at 19.51.10.jpeg

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

    SBorgS 1 Reply Last reply
    0
    • NegaleinN Negalein

      Hallo @SBorg

      Ich möchte gern so eine Statistik erstellen.
      Mit Sourceanalytic geht zB Temperatur nicht.

      Hast du eine Idee, wie man die Werte ähnlich Sourceanalytic speichern könnte?
      WhatsApp Image 2020-09-01 at 19.51.10.jpeg

      SBorgS Offline
      SBorgS Offline
      SBorg
      Forum Testing Most Active
      wrote on last edited by
      #1220

      @Negalein Da ich ein Statistik-Fan bin: gefällt mir 😁
      Pauschal kann/könnte ich die Werte auch zur Verfügung, aber dazu wäre eigentlich eine DB geeigneter (wg. der anfallenden Datemenge; ich müsste zumindest für den aktuellen Monat immer alle Werte aktuell halten. Danach den abgelaufenen Monat in 13 neue Datenpunkte verschieben). Ad hoc müssten sich die Werte aber einfacher aus bspw. InfluxDB ziehen lassen.
      Ich hatte da mal angefangen (nicht wundern, Wohnzimmer geht nicht mehr so ganz 😉 ) :
      Bild 1.png
      Das erweitert und am Monatsende die Werte in DPs geschrieben wären IMO der gangbarste Weg.

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

      NegaleinN 1 Reply Last reply
      1
      • SBorgS SBorg

        @Negalein Da ich ein Statistik-Fan bin: gefällt mir 😁
        Pauschal kann/könnte ich die Werte auch zur Verfügung, aber dazu wäre eigentlich eine DB geeigneter (wg. der anfallenden Datemenge; ich müsste zumindest für den aktuellen Monat immer alle Werte aktuell halten. Danach den abgelaufenen Monat in 13 neue Datenpunkte verschieben). Ad hoc müssten sich die Werte aber einfacher aus bspw. InfluxDB ziehen lassen.
        Ich hatte da mal angefangen (nicht wundern, Wohnzimmer geht nicht mehr so ganz 😉 ) :
        Bild 1.png
        Das erweitert und am Monatsende die Werte in DPs geschrieben wären IMO der gangbarste Weg.

        NegaleinN Offline
        NegaleinN Offline
        Negalein
        Global Moderator
        wrote on last edited by
        #1221

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

        Ad hoc müssten sich die Werte aber einfacher aus bspw. InfluxDB ziehen lassen.

        Influx läuft bei mir bereits. Da könnt ich alle benötigten DP vom Script mal mitschreiben lassen.

        Dann stehts bei mir aber schon an. Da bist für den weiteren Weg du meine Hilfe 😉

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

        SBorgS 1 Reply Last reply
        0
        • NegaleinN Negalein

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

          Ad hoc müssten sich die Werte aber einfacher aus bspw. InfluxDB ziehen lassen.

          Influx läuft bei mir bereits. Da könnt ich alle benötigten DP vom Script mal mitschreiben lassen.

          Dann stehts bei mir aber schon an. Da bist für den weiteren Weg du meine Hilfe 😉

          SBorgS Offline
          SBorgS Offline
          SBorg
          Forum Testing Most Active
          wrote on last edited by
          #1222

          @Negalein Ich muss mal schauen was performanter in der Abfrage ist. Habe mal ein kleines JS "zusammen gehämmert" was die Daten per History (hab aber erst gegen Mittag mit dem sammeln begonnen) zieht:
          Bild 1.png
          Macht aktuell nur Min/Max/Durchschnitt und °C über 20°C?

          Mir war schon klar, dass ich es machen "darf" 😇
          Daran liegt es auch nicht, nur ist es direkt über das Script viel zu Ressourcen fressend, dass geht per DB/History und JS performanter (und auch einfacher).
          Dann muss ich mir noch was mit dem Datenmanagement und den Datenpunkten überlegen.

          • Die Tagestemperaturen sollten so bleiben? Ein 31°C-Tag zählt zu >30 und zu >25 und zu >20 (ja, es war ja auch einer über 20/25°).
          • soll(te) das 1x täglich (bspw. Mitternacht) aktualisiert werden? Die Datenmenge wären pro Datenpunkt 86400 / 16 = 5.600 DPs die sonst abgefragt werden müssen. Das sollte man nicht im Minutentakt ausführen ^^

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

          NegaleinN R 2 Replies Last reply
          0
          • SBorgS SBorg

            @Negalein Ich muss mal schauen was performanter in der Abfrage ist. Habe mal ein kleines JS "zusammen gehämmert" was die Daten per History (hab aber erst gegen Mittag mit dem sammeln begonnen) zieht:
            Bild 1.png
            Macht aktuell nur Min/Max/Durchschnitt und °C über 20°C?

            Mir war schon klar, dass ich es machen "darf" 😇
            Daran liegt es auch nicht, nur ist es direkt über das Script viel zu Ressourcen fressend, dass geht per DB/History und JS performanter (und auch einfacher).
            Dann muss ich mir noch was mit dem Datenmanagement und den Datenpunkten überlegen.

            • Die Tagestemperaturen sollten so bleiben? Ein 31°C-Tag zählt zu >30 und zu >25 und zu >20 (ja, es war ja auch einer über 20/25°).
            • soll(te) das 1x täglich (bspw. Mitternacht) aktualisiert werden? Die Datenmenge wären pro Datenpunkt 86400 / 16 = 5.600 DPs die sonst abgefragt werden müssen. Das sollte man nicht im Minutentakt ausführen ^^
            NegaleinN Offline
            NegaleinN Offline
            Negalein
            Global Moderator
            wrote on last edited by
            #1223

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

            Mir war schon klar, dass ich es machen "darf"

            kennst mich doch. 😉 Du bist da der King 😁

            Daran liegt es auch nicht, nur ist es direkt über das Script viel zu Ressourcen fressend, dass geht per DB/History und JS performanter (und auch einfacher).

            kein Problem.

            Die Tagestemperaturen sollten so bleiben? Ein 31°C-Tag zählt zu >30 und zu >25 und zu >20 (ja, es war ja auch einer über 20/25°).

            genau. Am liebsten so wie am Screenshot. Auch mit den kalten Tagen

            soll(te) das 1x täglich (bspw. Mitternacht) aktualisiert werden? Die Datenmenge wären pro Datenpunkt 86400 / 16 = 5.600 DPs die sonst abgefragt werden müssen. Das sollte man nicht im Minutentakt ausführen ^^

            Ja, 1x am Tag sollte reichen. Geht eh nur um Tageswerte

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

            SBorgS 1 Reply Last reply
            0
            • NegaleinN Negalein

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

              Mir war schon klar, dass ich es machen "darf"

              kennst mich doch. 😉 Du bist da der King 😁

              Daran liegt es auch nicht, nur ist es direkt über das Script viel zu Ressourcen fressend, dass geht per DB/History und JS performanter (und auch einfacher).

              kein Problem.

              Die Tagestemperaturen sollten so bleiben? Ein 31°C-Tag zählt zu >30 und zu >25 und zu >20 (ja, es war ja auch einer über 20/25°).

              genau. Am liebsten so wie am Screenshot. Auch mit den kalten Tagen

              soll(te) das 1x täglich (bspw. Mitternacht) aktualisiert werden? Die Datenmenge wären pro Datenpunkt 86400 / 16 = 5.600 DPs die sonst abgefragt werden müssen. Das sollte man nicht im Minutentakt ausführen ^^

              Ja, 1x am Tag sollte reichen. Geht eh nur um Tageswerte

              SBorgS Offline
              SBorgS Offline
              SBorg
              Forum Testing Most Active
              wrote on last edited by
              #1224

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

              Auch mit den kalten Tagen

              Das ist auch easy going und recht einfach umzusetzen, ich habe zum testen aber erst mal nur die 4 Werte genutzt.
              Aber egal ob es dann per Influx oder History wird, die Anzahl der "warmen/kalten" Tage ist etwas tricky. Ich möchte eigentlich eine Einzelabfrage umgehen, d.h. zB. für August 19 wären das 31 Tage x 13 Messwerte x Anzahl der Messwerte...
              Deswegen wird es wohl auf einen JSON-Datenpunkt hinauslaufen, der dann täglich um die entsprechenden Gradtage erhöht wird. Dann brauche ich die Vorjahresmonatsabfrage immer nur einmalig für den Monat ausführen.
              ...mal drüber schlafen 😉

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

              NegaleinN 1 Reply Last reply
              0
              • SBorgS SBorg

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

                Auch mit den kalten Tagen

                Das ist auch easy going und recht einfach umzusetzen, ich habe zum testen aber erst mal nur die 4 Werte genutzt.
                Aber egal ob es dann per Influx oder History wird, die Anzahl der "warmen/kalten" Tage ist etwas tricky. Ich möchte eigentlich eine Einzelabfrage umgehen, d.h. zB. für August 19 wären das 31 Tage x 13 Messwerte x Anzahl der Messwerte...
                Deswegen wird es wohl auf einen JSON-Datenpunkt hinauslaufen, der dann täglich um die entsprechenden Gradtage erhöht wird. Dann brauche ich die Vorjahresmonatsabfrage immer nur einmalig für den Monat ausführen.
                ...mal drüber schlafen 😉

                NegaleinN Offline
                NegaleinN Offline
                Negalein
                Global Moderator
                wrote on last edited by
                #1225

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

                mal drüber schlafen

                Ich werde dich virtuell dabei unterstützen 😂

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

                SBorgS 2 Replies Last reply
                0
                • NegaleinN Negalein

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

                  mal drüber schlafen

                  Ich werde dich virtuell dabei unterstützen 😂

                  SBorgS Offline
                  SBorgS Offline
                  SBorg
                  Forum Testing Most Active
                  wrote on last edited by
                  #1226

                  @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 😉 🙂

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

                  1 Reply Last reply
                  1
                  • NegaleinN Negalein

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

                    mal drüber schlafen

                    Ich werde dich virtuell dabei unterstützen 😂

                    SBorgS Offline
                    SBorgS Offline
                    SBorg
                    Forum Testing Most Active
                    wrote on last edited by
                    #1227

                    @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.

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

                    NegaleinN 2 Replies Last reply
                    0
                    • S Offline
                      S Offline
                      skokarl
                      wrote on last edited by skokarl
                      #1228

                      OT

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

                      1.PNG

                      IOBroker mit Proxmox auf Celeron Nuc mit 16 GB und Debian11, Sonos API, Echo Show 15 als Wandtablet, Homematic IP, HUE, Sonos, Echos, DS718+ als Backup

                      GlasfaserG 1 Reply Last reply
                      1
                      • S skokarl

                        OT

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

                        1.PNG

                        GlasfaserG Offline
                        GlasfaserG Offline
                        Glasfaser
                        wrote on last edited by
                        #1229

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

                        Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                        S 1 Reply Last reply
                        0
                        • GlasfaserG Glasfaser

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

                          S Offline
                          S Offline
                          skokarl
                          wrote on last edited by
                          #1230

                          @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 ...

                          IOBroker mit Proxmox auf Celeron Nuc mit 16 GB und Debian11, Sonos API, Echo Show 15 als Wandtablet, Homematic IP, HUE, Sonos, Echos, DS718+ als Backup

                          SBorgS 1 Reply Last reply
                          0
                          • SBorgS SBorg

                            @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.

                            NegaleinN Offline
                            NegaleinN Offline
                            Negalein
                            Global Moderator
                            wrote on last edited by Negalein
                            #1231

                            @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?

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

                            1 Reply Last reply
                            0
                            • SBorgS SBorg

                              @Negalein Ich muss mal schauen was performanter in der Abfrage ist. Habe mal ein kleines JS "zusammen gehämmert" was die Daten per History (hab aber erst gegen Mittag mit dem sammeln begonnen) zieht:
                              Bild 1.png
                              Macht aktuell nur Min/Max/Durchschnitt und °C über 20°C?

                              Mir war schon klar, dass ich es machen "darf" 😇
                              Daran liegt es auch nicht, nur ist es direkt über das Script viel zu Ressourcen fressend, dass geht per DB/History und JS performanter (und auch einfacher).
                              Dann muss ich mir noch was mit dem Datenmanagement und den Datenpunkten überlegen.

                              • Die Tagestemperaturen sollten so bleiben? Ein 31°C-Tag zählt zu >30 und zu >25 und zu >20 (ja, es war ja auch einer über 20/25°).
                              • soll(te) das 1x täglich (bspw. Mitternacht) aktualisiert werden? Die Datenmenge wären pro Datenpunkt 86400 / 16 = 5.600 DPs die sonst abgefragt werden müssen. Das sollte man nicht im Minutentakt ausführen ^^
                              R Offline
                              R Offline
                              Rushmed
                              Most Active
                              wrote on last edited by
                              #1232

                              @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
                              0
                              • S skokarl

                                @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 ...

                                SBorgS Offline
                                SBorgS Offline
                                SBorg
                                Forum Testing Most Active
                                wrote on last edited by
                                #1233

                                @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.

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

                                R 1 Reply Last reply
                                0
                                • SBorgS SBorg

                                  @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 Offline
                                  R Offline
                                  Rushmed
                                  Most Active
                                  wrote on last edited by
                                  #1234

                                  @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
                                  0
                                  • SBorgS SBorg

                                    @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.

                                    NegaleinN Offline
                                    NegaleinN Offline
                                    Negalein
                                    Global Moderator
                                    wrote on last edited by Negalein
                                    #1235

                                    @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.

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

                                    SBorgS 1 Reply Last reply
                                    0
                                    • NegaleinN 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.

                                      SBorgS Offline
                                      SBorgS Offline
                                      SBorg
                                      Forum Testing Most Active
                                      wrote on last edited by
                                      #1236

                                      @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...

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

                                      NegaleinN 1 Reply Last reply
                                      0
                                      • SBorgS SBorg

                                        @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...

                                        NegaleinN Offline
                                        NegaleinN Offline
                                        Negalein
                                        Global Moderator
                                        wrote on last edited by Negalein
                                        #1237

                                        @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.

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

                                        1 Reply Last reply
                                        0
                                        • R Offline
                                          R Offline
                                          Rushmed
                                          Most Active
                                          wrote on last edited by
                                          #1238
                                          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.

                                          NegaleinN 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          280

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe