Navigation

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

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Linux Shell-Skript] WLAN-Wetterstation

    This topic has been deleted. Only users with topic management privileges can see it.
    • V
      viper4iob @Boronsbruder last edited by viper4iob

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

      @viper4iob
      @latzi
      Na dann:
      12:38:16.606 info javascript.0 (3146202) script.js.common.test_influx: Fertig! Rows: 137548 Dauer: 3061 ms

      Waren das alle measurements über 24h?

      EDIT:
      Bei mir sah es über alle Measurements der letzten 24h so aus:
      script.js.Test.Test3: Fertig! Rows: 130968 Dauer: 11482 ms
      Nur Außentemperatur so:
      script.js.Test.Test3: Fertig! Rows: 1972 Dauer: 102 ms

      Ein Wert geht eigentlich noch recht schnell.
      Wenn man im iobroker in den Objekten bei der Außentemperatur auf die benutzerdefinierten Einstellungen geht (das Zahnrad) und die Verlaufsdaten der letzten 24h anschauen will, dann warte ich da etwa 10 sek bis die da sind.
      Wenn der Influx Adapter auf V1.x läuft, dauert das nicht mal eine Sekunde.
      Und auch wenn man den EChart Adapter benutzt, dauert der Aufbau eines Graphen im V2.x Modus mehrere Sekunden.
      Irgendwo ist da also noch der Wurm drin mit dem Influx Adapter.

      Boronsbruder 1 Reply Last reply Reply Quote 0
      • Boronsbruder
        Boronsbruder @viper4iob last edited by Boronsbruder

        @viper4iob
        ja

        let Startzeit = new Date();
        
        sendTo('influxdb.1', 'query', 'from(bucket: "wetter") |> range(start: -24h)', function (result) {
        
            if (result.error) {
        
                console.error(result.error);
        
            } else {
        
                let Endezeit = new Date();
        
                // show result
        
                 console.log('Fertig! Rows: ' + JSON.stringify(result.result[0].length) +' Dauer: ' + (Endezeit.getTime()-Startzeit.getTime()) + ' ms');
        
            }
        
        });
        

        Und bei mir laufen gerade 4 Influx-Instanzen 1x v1 und 3x v2 parallel

        Edit:
        Hab das mit den Verlaufsdaten AUSSENTEMPERATUR mal getestet und für die Daten vom 01.01.2021 - 05.02.2023 --> 9 sek -- letzte 24h 4 sek...

        V 1 Reply Last reply Reply Quote 0
        • V
          viper4iob @Boronsbruder last edited by

          @boronsbruder
          Hab meine Werte oben eingefügt.
          Über alle Werte dauert es bei mir zwar deutlich länger, aber ein einzelner Wert geht generell gesehen noch recht schnell und erklärt nicht, warum der Abruf der Verlaufsdaten so lange dauert (Erklärung siehe oben) .
          Vielleicht kannst du mal checken, wie lange das bei dir dauert.

          Boronsbruder 1 Reply Last reply Reply Quote 0
          • Boronsbruder
            Boronsbruder @viper4iob last edited by

            @viper4iob
            siehe oben 😄

            V 1 Reply Last reply Reply Quote 0
            • V
              viper4iob @Boronsbruder last edited by viper4iob

              @boronsbruder
              Wenn du den Zeitraum umstellst, geht der Aufruf schneller.
              Stell ihn mal auf 24h, geh aus den Einstellungen raus und wieder rein, dann dauert es wahrscheinlich auch die 9 sek.
              Der erste Aufruf dauert irgendwie gefühlt immer gleich lang, als würden die erst mal alles abfragen und dann nochmal die Zeitspanne auf die Einstellung eingrenzen.
              Aber im Prinzip ist es mir an der Stelle wurscht, soll nur zeigen, dass da im Vergleich zu v1.x ein Performance Problem zu sein scheint.
              Mein Problem ist eigentlich, das im v2.x Modus auch Graphen vom ECharts Adapter pro Graph jetzt mehrere Sekunden Ladezeit haben und das nervt gewaltig.
              Bin deshalb aktuell dabei, diese Graphen in Grafana nachzubauen und die dann als iFrame in jarvis statt den ECharts zu embedden.
              Solange muss ich noch auf v1.x bleiben.

              Boronsbruder 1 Reply Last reply Reply Quote 0
              • Boronsbruder
                Boronsbruder @viper4iob last edited by

                @viper4iob
                Bei Neu-Aufruf dauert es schon ewig, bis die 2 Felder von 1.1.1970 auf die richtigen Daten umspringen.
                Aber das gehört dann nicht hier in den Wetterstation-Thread 😉

                V 1 Reply Last reply Reply Quote 0
                • V
                  viper4iob @Boronsbruder last edited by viper4iob

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

                  @viper4iob
                  Bei Neu-Aufruf dauert es schon ewig, bis die 2 Felder von 1.1.1970 auf die richtigen Daten umspringen.
                  Aber das gehört dann nicht hier in den Wetterstation-Thread 😉

                  Da stimme ich zu, der Kreis schließt sich, da ich dadurch aktuell auch nicht auf das neue Wetterstatistik-Skript gehen kann.
                  Mir ging es eigentlich nur mal darum, ob das ein allgemeines Problem mit dem Influx-Adapter ist, oder nur ich ein selbst verursachtes Problem habe. Da ich nicht der Einzige bin, scheint es ersteres zu sein.

                  V 1 Reply Last reply Reply Quote 0
                  • V
                    viper4iob @viper4iob last edited by viper4iob

                    Mal ne Frage:
                    Kann es sein, dass Awekas mittlerweile den Upload der Luftdruck-Werte korrekt annimmt und ich das verpennt habe?

                    Es gab ja das Problem, dass die nur den absoluten Luftdruck angenommen hatten und man musste dann dort einen Korrektur-Wert angeben, um auf den relativen Luftdruck zu kommen. Bei mir ist dieser 37,5.
                    Nun wurde mir am 01.03. von Awekas der Upload für den Luftdrucksensor deaktiviert, weil ein Wert von 1057 hPa übertragen wurde, der natürlich überhaupt nicht hinhaut.
                    Ich habe gerade die Historie gecheckt, an dem Tag lag der relative Luftdruck um die 1020 hPa am Nachmittag.
                    Der Korrektur-Wert wurde also statt auf den absoluten jetzt auf den relativen Luftdruck aufaddiert.
                    Das würde im Umkehrschluß bedeuten, dass jetzt der relative Luftdruck korrekt übertragen wird und man den Korrektur-Wert entfernen kann.

                    UPDATE:
                    Ich habe den Korrektur-Wert entfernt, so dass er quasi 0 ist, dann von Awekas die Deaktivierung aufheben lassen und jetzt passt der Wert, auch ohne Korrektur.

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

                      Moin @SBorg , nachdem ich vor 2 Tagen alles umgestellt habe auf die V3 ist mir heute
                      in der VIS aufgefallen das der Wert für min.Temperatur nicht stimmt bzw.
                      nicht richtig angezeigt wird.
                      min.temp.png

                      Der Datenpunkt von 0_userdata.0.Wetterstation.Info.Temp_Aussen_Heute_min
                      min.temp2.png

                      Sieht so aus das die Daten von 0_userdata.0.Wetterstation.Info.Temp_Aussen_Heute_max
                      auch in 0_userdata.0.Wetterstation.Info.Temp_Aussen_Heute_min geschrieben werden.
                      In beiden sind die selben Uhrzeiten und die gleichen Werten vorhanden.

                      Quarkmax 1 Reply Last reply Reply Quote 0
                      • Quarkmax
                        Quarkmax @Nashra last edited by Quarkmax

                        @nashra
                        in diesen Fehler bin ich auch gerannt. Schau mal in der wetterstation.conf ober dort dieser Eintrag

                          #Protokoll (HTTP oder HTTPS) / default: HTTP
                           INFLUX_WEB=HTTP
                        

                        vorhanden ist. Der hat bei mir gefehlt. Warum? - konnte ich nicht verifizieren. Dann kamen die Werte korrekt.

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

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

                          @nashra
                          in diesen Fehler bin ich auch gerannt. Schau mal in der wetterstation.conf ober dort dieser Eintrag

                            #Protokoll (HTTP oder HTTPS) / default: HTTP
                             INFLUX_WEB=HTTP
                          

                          vorhanden ist. Der hat bei mir gefehlt. Warum? - konnte ich nicht verifizieren. Dann kamen die Werte korrekt.

                          Eintrag ist vorhanden

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

                            @viper4iob Ich sende beides, also relativ und absolut. Da sie "normaler weise" den kpl. WU-String bekommen und ich für "unseren Teil" nicht wusste was sie nun genau wollen, dachte ich "kann ja nicht schaden beides zu schicken, wenn sie per offiziellem Weg eh beides bekommen..." 🙂

                            Bei mir steht noch ein Korrekturfaktor drin, allerdings nicht der den ich eingetragen hatte. Multipliziert mit acht komme ich aber auf den für meinen Wohnort korrekten ÜNN...

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

                              @nashra Sieht nach keiner korrekten Verbindung zur InfluxDB aus (aus der werden die Werte ermittelt). Initial wird immer der 1. Wert nach Mitternacht für den Tag benutzt damit bis zur 1. Abfrage des Tages (0:15 Uhr) wenigstens mal etwas drin steht. Somit ist der gelesene Wert für min/max/avg bis ~ 0:15 Uhr identisch (logo, mit einem Messwert kann man schlecht min/max/avg ermitteln [bzw. sind die halt identisch]). Dann erfolgt die Abfrage und es gibt Werte für min/max/avg.

                              Da die bei dir gleich sind/bleiben, kann er wohl nix aus der InfluxDB lesen.
                              Ich habe eben mal eine neue Version hochgeladen, mit der man nun die InfluxDB-Konnektivität prüfen kann.

                              Einfach von GitHub die wetterstation.sh und -.sub ersetzen (restart des Service ist nicht erforderlich), dann im Installationsverzeichnis nacheinander ausführen (das mit dem . muss so 😉 ) :

                              • . ./wetterstation.conf
                              • . ./wetterstation.sub
                              • minmax24h DEBUG

                              Falls das dann nicht in etwa so aussieht
                              Bild 001.png

                              musst du alles bzgl. Influx noch mal checken, Bucket, Token, Instanz, Organisation etc.

                              R Nashra Neuschwansteini 3 Replies Last reply Reply Quote 0
                              • R
                                Rushmed Most Active @SBorg last edited by Rushmed

                                @sborg Bei mir siehts dann so aus:

                                pi@Smartazamba:~/Wetterstation $ . ./wetterstation.conf
                                pi@Smartazamba:~/Wetterstation $ . ./wetterstation.sub
                                pi@Smartazamba:~/Wetterstation $ minmax24h DEBUG
                                jq: error (at <stdin>:0): Cannot iterate over null (null)
                                jq: error (at <stdin>:0): Cannot iterate over null (null)
                                
                                

                                Also funktioniert wohl meine Influxverbindung nicht?

                                Bucket, Token und Organisation hab ich geprüft. Die stimmen, wobei ich Bucket und Instanz in Klarschrift angegeben habe. Die Influx_API stimmt auch. Habe alles aus meinen InfluxDB Instanzeinstellungen kopiert.

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

                                  @sborg
                                  also bei mir kommt das raus
                                  min.temp3.png

                                  und das es Probleme mit dem auslesen der Daten gibt kann ich mir ehrlich gesagt nicht vorstellen,
                                  da alle anderen Werte korrekt angezeigt werden. Nur bei diesen Beiden ist was faul.

                                  min.temp5.png

                                  min.temp4.png

                                  Für mich sieht es so aus als wenn die Daten schon falsch an die Datenbank geliefert werden.
                                  Kann mich natürlich auch täuschen, du bist der ScriptWetterGott 😀

                                  Achja, Bucket, Token usw. alles OK.

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

                                    @rushmed Zumindest ist nun eindeutig, dass das so bei dir nicht funktionieren kann.
                                    Was mir aber überhaupt nicht einleuchtet (der eigentliche Fehler schon): an der Stelle wird überhaupt kein "jq" (JSON-Parser) verwendet.

                                    Ich habe es eben noch mal getestet, nun ist mein Minwert auf 9.22°C gefallen, funktioniert also...
                                    Wenn du die Shell noch offen hast, frag mal die Influx direkt ab (sonst nochmal die beiden Zeilen vorher mit conf/sh ausführen:
                                     influx_query "-1d" "now()" "Aussentemperatur" "min"

                                    Bild 002.png

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

                                      @nashra Sagen wir es mal so, der Debug zeigt, dass er nichts auslesen kann. Auch wenn die Daten falsch kämen, müsste er sie zumindest auslesen können 😉
                                      Stimmt denn bspw. in Grafana deine aktuelle Außentemperatur, denn auf diesem einen Messwert fußt alles andere.
                                      Wie sehen denn die RAW-Werte aus und wie loggst du (alles oder nur Änderung) ?

                                      Du kannst den Aufruf mit dem "influx_query" übrigens auch testen. Anstelle von "min" auch gerne "max" oder "mean", "-1d" heißt aktuelle Zeit minus 1 Tag. Man kann auch den Zeitraum bspw. durch "-7d" auf eine Woche erweitern.

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

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

                                        @nashra Sagen wir es mal so, der Debug zeigt, dass er nichts auslesen kann. Auch wenn die Daten falsch kämen, müsste er sie zumindest auslesen können 😉
                                        Stimmt denn bspw. in Grafana deine aktuelle Außentemperatur, denn auf diesem einen Messwert fußt alles andere.

                                        Ja der Messwert für die Außentemperatur stimmt. Habe einige Stationen in der Nähe, selbe Werte.

                                        Wie sehen denn die RAW-Werte aus und wie loggst du (alles oder nur Änderung) ?

                                        es wird alles geloggt.

                                        Du kannst den Aufruf mit dem "influx_query" übrigens auch testen. Anstelle von "min" auch gerne "max" oder "mean", "-1d" heißt aktuelle Zeit minus 1 Tag. Man kann auch den Zeitraum bspw. durch "-7d" auf eine Woche erweitern.

                                        Habe ich schon probiert, da passiert gar nichts d.h. keine Ausgabe.

                                        SBorg 1 Reply Last reply Reply Quote 0
                                        • Neuschwansteini
                                          Neuschwansteini @SBorg last edited by

                                          @sborg

                                          coole Sache! Danke!
                                          ich hab mal getestet, da ich hier auch n Bug vermutet habe, aber jetzt scheint alles zu stimmen, dies sind die Ausgaben:

                                          ilovegym@iobroker:/opt/iobroker$ minmax24h DEBUG
                                          Testing InfluxDB... min/max Aussentemperatur 24h: 9.38
                                          9.72°C 14.11
                                          13.72°C
                                          ilovegym@iobroker:/opt/iobroker$ influx_query "-7d" "now()" "Aussentemperatur" "min"
                                          -2.61
                                          -2.5
                                          ilovegym@iobroker:/opt/iobroker$
                                          
                                          
                                          1 Reply Last reply Reply Quote 1
                                          • SBorg
                                            SBorg Forum Testing Most Active @Nashra last edited by

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

                                            da passiert gar nichts d.h. keine Ausgabe.

                                            Ich vermute fast, dass das ein ähnliches Problem wie mit dem JSON ist...

                                            Frage mal die Influx direkt per CLI ab (conf + sub müssen dazu noch geladen sein, sonst halt wieder ". ./wetterstation..."), alles eine Zeile:

                                            curl --request POST "${INFLUX_WEB}://${INFLUX_API}/api/v2/query?org=${INFLUX_ORG}" --header 'Content-Type: application/vnd.flux' --header 'Accept: application/csv' --header "Authorization: Token ${INFLUX_TOKEN}" --data 'from(bucket: "'${INFLUX_BUCKET}'") |> range(start: -1d, stop: now()) |> filter(fn: (r) => r._measurement == "'${PRE_DP}'.Aussentemperatur" and r._field == "value") |> min()'
                                            

                                            Bild 003.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            473
                                            Online

                                            31.8k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

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