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.
    • 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
                          • V
                            viper4iob @viper4iob last edited by viper4iob

                            @SBorg

                            Zum Thema zurück 🙂
                            Ich habe jetzt die sh und sub Dateien bei mir aktualisiert.
                            Nun scheitere ich aber am Punkt 2 des Install Guides genau an der gleichen Stelle.
                            Das Skript bricht ab, weil nun wirklich ein user gesetzt ist und man kann dann sie SenseBox nicht registrieren.

                            Die Registrierungsmail habe ich zwischen den beiden Aufrufen bestätigt.

                             Alle Eingaben korrekt [J/N]: J
                            
                            
                             Lege neuen SenseBox-User an... OK
                             Speichere User und Passwort in wetterstation.conf ab... OK
                             Vor dem fortfahren nun bitte zuerst die Email-Adresse verifizieren (Email von OpenSenseMap im Posteingang)...
                            viper@kubix:/opt/wetterstation$ ./wetterstation.sh --osem_reg
                            
                             [FEHLER:]   ABBRUCH! Es ist bereits ein Username für OpenSenseMap in der Konfiguration gesetzt!
                            
                            viper@kubix:/opt/wetterstation$
                            

                            Ich denke diese if-Abfrage, ob der user schon vorhanden ist, sollte erst kommen, wenn man die Frage nach dem Einrichten eines neuen Users mit Ja bestätigt hat, also nach hier:

                            echo -en "\n$WE Neuen SenseBox-User registrieren [${GR}Ja/Nein${WE}]: $GE"
                                    read JN
                                    if [ ! $JN ]; then JN="Nein"; fi
                                    if [ $JN == "Ja" ]; then
                            
                            
                            da_Woody 1 Reply Last reply Reply Quote 0
                            • da_Woody
                              da_Woody @viper4iob last edited by

                              @viper4iob sorry wenn ich dich falsch verstehe, aber wenn du in der config den user schon drinnen hast, dann brauchst du ja keinen neuen user anlegen...

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

                                @da_woody Jepp, und genau darum geht es: falls schon ein User angelegt wurde --> dann lege nicht noch mal einen an. Allerdings hat @viper4iob Recht ( 👍 ), dass kommt eine Nummer zu früh, denn es wird bei jedem Aufruf ausgeführt, also auch wenn man einen User korrekt angelegt hat (dann existiert er ja völlig zu Recht) und dann beim nächsten Ablauf wieder dort landet 😞

                                Ich habe es jetzt wie vorgeschlagen hinter / in die Abfrage der Neuuser-Registrierung verschoben. Kommt davon wenn man nachträglich "rumpfuscht" und es dann nicht mehr testen kann 🤦‍♂️

                                ...wie üblich Fix auf GitHub, allerdings mit gleicher Versionsnummer. "sub" tauschen genügt.

                                V 2 Replies Last reply Reply Quote 2
                                • V
                                  viper4iob @da_Woody last edited by viper4iob

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

                                  @viper4iob sorry wenn ich dich falsch verstehe, aber wenn du in der config den user schon drinnen hast, dann brauchst du ja keinen neuen user anlegen...

                                  Ja, richtig.
                                  Man ruft aber zum Registrieren der SensorBox das gleiche Skript wieder auf.
                                  D.h. es kommt erst wieder die Frage, ob ein User angelegt werden soll. Da man den User schon in Schritt 1 angelegt hat, müsste man jetzt die Frage mit Nein beabtworten und dann würde er zum Registrieren der Sensor-Box springen, so steht es ja auch im Install Guide.
                                  Soweit kommt er aber gar nicht, weil direkt nach Starten des Skripts geprüft wird, ob in der config schon ein User angelegt ist. Und wenn ja bricht das Skript komplett ab und man hat keine Chance mehr eine SensorBox zu registrieren.
                                  Kurz gesagt, man würde so nie zum Registrieren der SensorBox kommen.

                                  Der Check, ob der User schon existiert, darf erst kommen, wenn man die Frage zum Anlegen eines neuen Users mit Ja bestätigt.
                                  Und genau das hat @SBorg jetzt gefixt, kann es aber erst morgen testen.

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

                                    @viper4iob k, dann wär das ja geklärt! 🙂
                                    so solls ja auch sein...

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

                                      @sborg
                                      Die openSenseMap Registrierung hat nun ohne Probleme funktioniert.
                                      Danke nochmal für den Fix.

                                      Noch eine Frage dazu: Falls später mal ein Sensor dazu kommt (z.B. ein Feinstaub Sensor), kann man das "Sensoren registrieren" einfach noch einmal aufrufen, oder muss man das dann manuell einpflegen?

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

                                        Mir ist gerade noch etwas anderes aufgefallen: bei der Windstärke auf wetter.com kommen mir die Werte ganz schön hoch vor.
                                        Hier zum Vergleich ein EChart aus iobroker von der Windgeschwindigkeit heute 8 Uhr bis jetzt (maximal ca. 11 km/h) und gestern Nachmittag (maximal ca 15 km/h):
                                        2021-11-18 13_05_37-echarts - kubix.jpg
                                        2021-11-18 13_18_10-echarts - kubix.jpg

                                        Und von wetter.com die letzten 24 Stunden:
                                        2021-11-18 13_12_55-Window.jpg

                                        Als Beispiel: 15:09 Uhr sagt das EChart 15,12 km/h und wetter.com hat 15:10 Uhr 46,4 km/h angegeben.
                                        Bei openSenseMap passen die Werte, das habe ich gerade nochmal verglichen.
                                        Jetzt weiß ich nicht, ob wetter.com irgendetwas komisches mit den Daten macht oder irgendetwas umgerechnet werden muss.
                                        Der Taupunkt bei wetter.com stimmt auch nicht ganz überein, aber der wird glaube nicht hochgeladen, d.h. den berechnen die selbst.
                                        Vielleicht kann das nochmal jemand checken, der den Upload zu wetter.com auch aktiv hat.

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

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

                                          Als Beispiel: 15:09 Uhr sagt das EChart 15,12 km/h und wetter.com hat 15:10 Uhr 46,4 km/h angegeben.

                                          kann es sein, daß du da die windböen nimmst? gerade bei mir nachgeschaut. wind ca 17kmh, böen bis 45kmh...

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

                                            @da_woody

                                            Was heißt nehmen? Das macht ja alles das Skript.
                                            In der Skript config sind nur die ID und das PW von wetter.com hinterlegt. Ich kann also nicht angeben, was wie hochgeladen wird, es sei denn ich würde das Skript umschreiben..

                                            Ich habe aber mal im Skript nachgeschaut, da gibt es die Zeile :
                                            WC_URL+="&windstaerke=${MESSWERTE[6]}&luftdruck=${MESSWERTE[10]}&niederschlagsmenge=${MESSWERTE[11]}"

                                            Und MESSWERTE[6] scheint die normale Windgeschwindigkeit zu sein:

                                               echo -e "Windgeschwindkeit\t: $GR${MESSWERTE[6]}$WE km/h"
                                               echo -e "Windböengeschwindkeit\t: $GR${MESSWERTE[7]}$WE km/h"
                                               echo -e "max. Windböe\t\t: $GR${MESSWERTE[21]}$WE km/h"
                                            

                                            Und ein EChart von der maximalen Windgeschwindigkeit/Böen sieht so aus (max ca. 20 km/h):
                                            2021-11-18 13_44_44-echarts - kubix.jpg

                                            Laut wetter.com Wettervorhersage sind heute für hier für den ganzen Tag 5-7 km/h Wind vorhergesagt, das passt auch zu den Daten, die die Wetterstation liefert, die schwanken zwar etwas mehr, aber nie mehr als um die 10 km/h.
                                            Aber in den Upload-Daten ins wetter.com Netzwerk zeigt der Graph heute schon mehrmals über 20 km/h und im Durchschnitt vielleicht so um die 10 km/h an, das passt irgendwie nicht zusammen.
                                            Die anderen Werte wie Temp oder Luftfeuchte oder Luftdruck passen aber, so dass ich zumindest ausschließen kann, dass die Werte von jemand anderem kommen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

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