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

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    [Linux Shell-Skript] WLAN-Wetterstation

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

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

      @viper4iob IMHO am einfachsten die "Gruppierung" weg lassen, dann ist die Abfrage von Grafana nach einem Zeitbereich in Influx auch weg. Trotzdem lasse ich alle 12h mal den Wert schreiben. Sind dann max. (unnötige) 730 Datenpunkte in der Influx, was aber nur paar kB ausmacht.
      Man kann natürlich auch innerhalb der Serie(n) zB. auf 14 Tage beschränken mittels einer Retention Policy. Dann wird immer alles älter als 14 Tage gedroppt. Aktuell wird nach einem Jahr gelöscht (sofern man im Influx-Adapter nichts anderes eingestellt hat).
      Bild 1.png

      Die Gruppierung wegzulassen hatte ich schon probiert, das hat leider nicht geholfen.
      Grafana fragt die Werte trotzdem immer nur in dem aktuellen Zeitraum ab, also z.B. die letzten 24h. Das sieht man im Query Inspector, bei jeder Abfrage steht am Ende der Zeitraum: z.B.
      SELECT "value" FROM "javascript.0.Wetterstation.Regenstatus" WHERE time >= now() - 24h and time <= now()
      Und wenn er da keine Daten findet, wird auch nichts angezeigt, die Gruppierung hat da keinen Unterschied gemacht.

      Ich lasse jetzt auch einfach die betroffenen Datenpunkte zwar nur bei Änderung schreiben, aber zusätzlich nochmal alle 6 Stunden.

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

        @viper4iob Dann haben sie es wohl irgendwann geändert (ich glaube es gab in den letzten 14 Tagen vier neue Versionen).
        Mir ist es allerdings auch nicht aufgefallen, da ich es eben auch zusätzlich alle 12 Stunden schreiben lasse.

        V 1 Reply Last reply Reply Quote 0
        • L
          Langer @SBorg last edited by

          @sborg

          Danke für Deine schnelle Antwort, leider ist mir das Normblatt 08/15 DIN A4 quer, gelocht mit Schrägstanzung ausgegangen☹

          Aber Spaß bei Seite, ich habe bzw. bin ja dabei mit Javascript die Tabellen wie im Screenshot zu sehen, zu erstellen.
          Meine Frage: Wenn ich also am zB. 1.1.2022 im laufe des Tages mein Script laufen lasse, der die Dummy Monate 02 - 12.2022 erstellt, kommt Dein Programm mit dem Vorhanden sein der Dummy Monate zurecht?

          Die Aktualisierung des laufenden Monats, der Rekordwerte und des laufenden Jahres läuft ja schon bei mir.
          Wenn Dein Programm dies beinhalten würde währe es halt für alle verfügbar.

          Bei Fragen, geht es auch ohne Normblätter!!

          MfG
          Wastl

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

            @sborg

            Noch ein kleiner Punkt zum Thema Grafana, und zwar die Windrose.
            Ich hatte mich gewundert, warum diese bei wenig Wind, wo sich also auch seltener die Windrichtung ändert, immer Wind aus 0° angezeigt wird:

            2021-11-11_14-49-46__Window.jpg
            Nun ist es so, dass hier das DB Abfrage Intervall 1 Minute ist, dass heißt Grafana liest für jede Minute einen Wert aus der InfluxDB aus.
            Wenn aber kein Wert verfügbar ist, wird dieser mit null gefüllt. Und null wird aber scheinbar von der Windrose als 0° interpretiert.
            Ich lasse die Werte vom iobroker nur bei Änderungen in die DB schreiben, weil sich der Wert im Normalfall sehr häufig ändert, außer bei geringem Wind.
            Wenn sich jetzt also z.B. 5 min lang die Richtung nicht ändert, dann habe ich einen realen Wert und 4 null-Werte, was mir das Gesamtbild der Windrose verfälscht.

            Ich habe jetzt statt fill(null) fill(previous) eingestellt, was das Bild meiner Meinung nach verbessert. Und es entspricht ja auch dem, was die Windfahne macht, sie bleibt so stehen bis sie ihre Richtung wieder ändert:
            2021-11-11_14-49-00__Window.jpg

            Man könnte jetzt natürlich auch im iobroker den Wert minütlich schreiben lassen, würde aber am Ende zum gleichen Ergebnis führen.

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

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

              kommt Dein Programm mit dem Vorhanden sein der Dummy Monate zurecht?

              Sollte nichts ausmachen. Wenn es die DPs schon gibt legt er sie halt einfach nicht nochmals an.
              Du müsstest nur, wenn du es nutzt, das AutoDelete um ein Jahr erhöhen als du wirklich willst, sonst löscht er wg. der "falschen" Zeitstempel die Daten zu früh (bspw. wird dann der Dezember bereits im Januar angelegt und ist dann lt. Zeitstempel im Dezember 11 Monate alt 😉 ).

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

                @viper4iob Was euch immer so alles auffällt 😊

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

                  @sborg

                  Nochmals Danke für die schnelle Antwort.

                  Ich habe AutoDelete_Data, AutoReset_Jahresstatistik jeweils auf 0 und Reset_Jahresstatistik auf false, also dürfte doch nichts passieren, oder?

                  MfG
                  Wastl

                  G SBorg 2 Replies Last reply Reply Quote 0
                  • G
                    G.Hawk @Langer last edited by

                    Hallo
                    Kann mir jemand sagen warum der Datenpunkt Maximaltemperatur Tag sich immer wieder aktualisiert mit der normalen Außentemperatur?

                    Wenn die Außentemperatur runter geht übernimmt er leicht zeitversetzt auch diesen Wert.

                    Muss ich da irgendwas ändern oder einstellen?

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

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

                      also dürfte doch nichts passieren, oder?

                      Eigentlich nicht, aber nutzt du BackitUp? Sonst notfalls sicherheitshalber am 31.12. ein Backup per Hand ziehen, man weiß ja nie ... 😉

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

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

                        Muss ich da irgendwas ändern oder einstellen?

                        Jein, zwar nicht speziell, aber da der Wert nur per InfluxDB ermittelt wird, muss Influx natürlich aktiviert und korrekt eingerichtet sein.

                        G 1 Reply Last reply Reply Quote 0
                        • G
                          G.Hawk @SBorg last edited by

                          @sborg 👍🏻

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

                            Wie immer keine Werbung, Provision, Affiliate-Link oä., einfach nur falls wer sucht:

                            https://www.voelkner.de/products/981930/Eurochron-EFWS-2900-Funk-Wetterstation-Vorhersage-fuer-12-bis-24-Stunden.html?offer=283c00e4ef914501edc1fbc36863d452&ref=0&utm_source=newsletter&cc_code=ffc0ea2c00220153b57e6c61d7bae9e1&utm_medium=e-mail&utm_campaign=ve4540

                            Eurochron EFWS 2900 Funk-Wetterstation mit Gutscheinrabatt etc. inkl. Versand 105,95 €
                            Ist mal ein echter Schnapper 😉

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

                              @sborg

                              Ich wollte die OpenSenseMap Registrierung über das Skript durchführen: ./wetterstation.sh --osem_reg.
                              Nur leider bricht diese gleich mit folgendem Fehler ab:
                              2021-11-17_09-00-40__esx – VMware ESXi.jpg

                              So sieht die conf aus:
                              2021-11-17_09-10-34__esx – VMware ESXi.jpg

                              Die Zeile, die den Fehler erzeugt, ist diese:
                              2021-11-17_09-13-03__esx – VMware ESXi.jpg

                              Jetzt habe ich mich gefragt, wo dieser OSEM_USER her kommt, der hier geprüft wird, in der conf gibt es nur einen senseBox_USER, und die Abfrage am Terminal durch read kommt erst nach dieser Prüfung. Und ich konnte auch keine Stelle finden, an der der senseBox_USER aus der conf ausgelesen und in den OSEM_USER geschrieben wird.
                              Und selbst wenn im OSEM_USER an der Stelle den Inhalt aus senseBox_USER hätte, müsste dann das Prüfen auf den Leerstring vielleicht eher so aussehen if [ ! -z $OSEM_USER ];?
                              Nun weiß ich auch nicht, ob nur ich damit ein Problem habe, weil das ws_update Skript bei mir auch nicht richtig läuft, wo das patchen schief geht und ich immer noch nicht weiß warum.
                              Aber vielleicht ist es ja hier ein anderes Problem 😉

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

                                @viper4iob Kannst du auch nicht finden, klassicher C&P-Fehler.

                                Die einfache *if variable; ..." funktioniert schon, denn alles was "nicht leer ist" liefert hier ein true und die Bedingung wird wahr. Ich habe es jetzt aber auf die eher geläufige [ "$var" != "" ] Variante geändert (+ nun mit der richtigen Variablen 😇 ).

                                BugFix V2.10.1 steht auf GitHub im "master"; einfach "sh" und "sub" tauschen (ggf. Service neu starten)
                                Enthält noch kleinere Schönheitskorrekturen.

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

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

                                  @viper4iob Kannst du auch nicht finden, klassicher C&P-Fehler.

                                  Die einfache *if variable; ..." funktioniert schon, denn alles was "nicht leer ist" liefert hier ein true und die Bedingung wird wahr. Ich habe es jetzt aber auf die eher geläufige [ "$var" != "" ] Variante geändert (+ nun mit der richtigen Variablen 😇 ).

                                  BugFix V2.10.1 steht auf GitHub im "master"; einfach "sh" und "sub" tauschen (ggf. Service neu starten)
                                  Enthält noch kleinere Schönheitskorrekturen.

                                  Danke, für das schnelle Beheben.
                                  Mein Linux versucht aber bei if variable; den Inhalt als Kommando auszuführen, wenn dort etwas gesetzt ist und bei einem Leerstring, liefert es true zurück. Hier ein kleiner Test, 2 identische Skripte, bei einem ist die Variable OSEM_USER leer und bei dem anderen gesetzt:

                                  2021-11-17_10-59-52__esx – VMware ESXi.jpg

                                  So ist es besser lesbar:

                                  viper@kubix:/opt/wetterstation$ cat test_leer.sh
                                  #!/bin/bash
                                  
                                  OSEM_USER=
                                  if $OSEM_USER; then echo -e "\n${RE} [FEHLER:]   ABBRUCH! Es ist bereits ein Username für OpenSenseMap in der Konfiguration gesetzt!\n";fi
                                  viper@kubix:/opt/wetterstation$
                                  viper@kubix:/opt/wetterstation$
                                  viper@kubix:/opt/wetterstation$ cat test_gesetzt.sh
                                  #!/bin/bash
                                  
                                  OSEM_USER=ahg123
                                  if $OSEM_USER; then echo -e "\n${RE} [FEHLER:]   ABBRUCH! Es ist bereits ein Username für OpenSenseMap in der Konfiguration gesetzt!\n";fi
                                  viper@kubix:/opt/wetterstation$
                                  viper@kubix:/opt/wetterstation$
                                  viper@kubix:/opt/wetterstation$ ./test_leer.sh
                                  
                                   [FEHLER:]   ABBRUCH! Es ist bereits ein Username für OpenSenseMap in der Konfiguration gesetzt!
                                  
                                  viper@kubix:/opt/wetterstation$
                                  viper@kubix:/opt/wetterstation$
                                  viper@kubix:/opt/wetterstation$ ./test_gesetzt.sh
                                  ./test_gesetzt.sh: Zeile 5: ahg123: Befehl nicht gefunden
                                  viper@kubix:/opt/wetterstation$
                                  viper@kubix:/opt/wetterstation$ bash --version
                                  GNU bash, Version 5.0.17(1)-release (x86_64-pc-linux-gnu)
                                  
                                  SBorg 1 Reply Last reply Reply Quote 0
                                  • SBorg
                                    SBorg Forum Testing Most Active @viper4iob last edited by

                                    @viper4iob Witzig, oder auch nicht... 😉

                                    Mache mal spaßeshalber den Gegentest direkt in der Console:

                                    a=1
                                    test $a && echo "Gesetzt" || echo "Nö"
                                    
                                    test $b && echo "Gesetzt" || echo "Nö"
                                    
                                    V 1 Reply Last reply Reply Quote 0
                                    • V
                                      viper4iob @SBorg last edited by

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

                                      a=1 test $a && echo "Gesetzt" || echo "Nö" test $b && echo "Gesetzt" || echo "Nö"

                                      Erst direkt in der Konsole, dann als Skript:

                                      viper@kubix:/opt/wetterstation$ a=1
                                      viper@kubix:/opt/wetterstation$ test $a && echo "Gesetzt" || echo "Nö"
                                      Gesetzt
                                      viper@kubix:/opt/wetterstation$
                                      viper@kubix:/opt/wetterstation$ test $b && echo "Gesetzt" || echo "Nö"
                                      Nö
                                      viper@kubix:/opt/wetterstation$ ./test.sh
                                      Gesetzt
                                      Nö
                                      
                                      
                                      V 1 Reply Last reply Reply Quote 0
                                      • V
                                        viper4iob @viper4iob last edited by viper4iob

                                        @viper4iob
                                        Ich glaube ich habs:

                                        if $OSEM_USER;...
                                        if [ $OSEM_USER ];...
                                        

                                        Ersteres führt zu oben genannten Problem, mit eckigen Klammern geht es.

                                        EDIT
                                        Hier nochmal alles:

                                        viper@kubix:/opt/wetterstation$ cat test_leer.sh
                                        #!/bin/bash
                                        
                                        OSEM_USER=
                                        if [ $OSEM_USER ]; then echo -e "\n${RE} [FEHLER:]   ABBRUCH! Es ist bereits ein Username für OpenSenseMap in der Konfiguration gesetzt!\n";fi
                                        viper@kubix:/opt/wetterstation$
                                        viper@kubix:/opt/wetterstation$
                                        viper@kubix:/opt/wetterstation$
                                        viper@kubix:/opt/wetterstation$ cat test_gesetzt.sh
                                        #!/bin/bash
                                        
                                        OSEM_USER=ahg123
                                        if [ $OSEM_USER ]; then echo -e "\n${RE} [FEHLER:]   ABBRUCH! Es ist bereits ein Username für OpenSenseMap in der Konfiguration gesetzt!\n";fi
                                        viper@kubix:/opt/wetterstation$
                                        viper@kubix:/opt/wetterstation$
                                        viper@kubix:/opt/wetterstation$ ./test_leer.sh
                                        viper@kubix:/opt/wetterstation$
                                        viper@kubix:/opt/wetterstation$
                                        viper@kubix:/opt/wetterstation$ ./test_gesetzt.sh
                                        
                                         [FEHLER:]   ABBRUCH! Es ist bereits ein Username für OpenSenseMap in der Konfiguration gesetzt!
                                        
                                        viper@kubix:/opt/wetterstation$
                                        
                                        
                                        SBorg 1 Reply Last reply Reply Quote 0
                                        • SBorg
                                          SBorg Forum Testing Most Active @viper4iob last edited by

                                          @viper4iob Trotzdem sehr eigenartig, da "test" die Vereinfachung von "if - then - else" ist und in der Console funktioniert, im Skript dann aber wieder nicht.

                                          Memo to me: Also sicherheitshalber, wenn faul, dann zumindest in [] oder gleich die Langvariante nehmen... 😉

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

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

                                            @viper4iob Trotzdem sehr eigenartig, da "test" die Vereinfachung von "if - then - else" ist und in der Console funktioniert, im Skript dann aber wieder nicht.

                                            Memo to me: Also sicherheitshalber, wenn faul, dann zumindest in [] oder gleich die Langvariante nehmen... 😉

                                            Naja, das Kommando test hat in der Konsole und im Skript das gleiche Ergebnis geliefert.
                                            Aber die Kombination aus dem if-Statement ohne Klammern scheint problematisch zu sein.

                                            In der Konsole passiert genau der gleiche Fehler, Vergleich if ohne und mit []:

                                            viper@kubix:/opt/wetterstation$ OSEM_USER=
                                            viper@kubix:/opt/wetterstation$ echo $OSEM_USER
                                            
                                            viper@kubix:/opt/wetterstation$ if $OSEM_USER; then echo "gesetzt";fi
                                            gesetzt
                                            viper@kubix:/opt/wetterstation$ if [ $OSEM_USER ]; then echo "gesetzt";fi
                                            viper@kubix:/opt/wetterstation$
                                            viper@kubix:/opt/wetterstation$
                                            viper@kubix:/opt/wetterstation$ OSEM_USER=zgh123
                                            viper@kubix:/opt/wetterstation$ echo $OSEM_USER
                                            zgh123
                                            viper@kubix:/opt/wetterstation$ if $OSEM_USER; then echo "gesetzt";fi
                                            zgh123: Befehl nicht gefunden.
                                            viper@kubix:/opt/wetterstation$ if [ $OSEM_USER ]; then echo "gesetzt";fi
                                            gesetzt
                                            viper@kubix:/opt/wetterstation$
                                            
                                            
                                            V 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            907
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            linux shell-script wetterstation wlan-wetterstation
                                            141
                                            5399
                                            2874118
                                            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