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.
    • Thomas Braun
      Thomas Braun Most Active @qqolli last edited by Thomas Braun

      @qqolli
      Ich kopiere da gar nix von einem Windows-Rechner aus irgendwohin.

      Ich würde mir ein Verzeichnis anlegen:

      sudo -u iobroker mkdir /home/iobroker/wetterstation
      

      Dann in das neue Verzeichnis stellen:

      cd /home/iobroker/wetterstation
      

      Und dann per

      sudo -u iobroker wget https://github.com/SBorg2014/WLAN-Wetterstation/releases/download/V2.10.1/WLAN-Wetterstation.zip
      sudo -u iobroker unzip WLAN-Wetterstation.zip
      sudo -u iobroker chmod 744 *
      

      alles runterladen und ausführbar machen. Fertig.

      Sieht dann so aus:

      echad@chet:/home/iobroker/wetterstation $ ls -la
      total 168
      drwxr-xr-x  2 iobroker iobroker  4096 Dec 16 20:49 .
      drwxr-xr-x 10 iobroker iobroker  4096 Dec 16 20:48 ..
      -rwxr--r--  1 iobroker iobroker  5706 Nov  3 09:48 wetterstation.conf
      -rwxr--r--  1 iobroker iobroker 20079 Nov  3 09:40 wetterstation.js
      -rwxr--r--  1 iobroker iobroker 15285 Nov 29 10:20 wetterstation.sh
      -rwxr--r--  1 iobroker iobroker 65767 Nov 29 10:19 wetterstation.sub
      -rwxr--r--  1 iobroker iobroker 29299 Dec  7 10:18 WLAN-Wetterstation.zip
      -rwxr--r--  1 iobroker iobroker 16368 Nov 29 10:19 ws_updater.sh
      

      Ich hab jetzt aber nicht geschaut, ob es noch weitere Hinweise des skript-Erstellers gibt. Nur so als grundsätzlicher Hint, wie man unter Linux sowas machen kann. Ganz ohne Desktop oder gar Kopiererei von einem Windows-System per WinSCP oder sowas unschönem.

      qqolli 1 Reply Last reply Reply Quote 0
      • Thomas Braun
        Thomas Braun Most Active @qqolli last edited by

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

        Habe gerade gelesen, das man deshalb und wenn man WinSCP "anständig" nutzen will, vorher auf dem Raspi den "root-user" aktivieren soll

        Das ist dann wiedermal eine 'Anleitung' die von kompletter Ahnungslosigkeit zeugt.
        Wenn eine Anleitung enthält: "Zuerst beschaffen wir uns mal vollen Zugriff, indem wir da mit root-Rechten über das System rutschen", dann vergiss den Krampf sofort.

        1 Reply Last reply Reply Quote 1
        • qqolli
          qqolli @Thomas Braun last edited by

          @thomas-braun

          Das hat, wie von Dir gewohnt, super funktioniert! Station lebt wieder 🙂

          Noch eine kurze Frage. Kann man mit dem wget-Befehl auch direkt eine "Adresse" auf z. B. dem Windows-PC angeben, z. B. "c:\User\Test\testdatei.txt" anstatt eine Webadresse?

          Thomas Braun 1 Reply Last reply Reply Quote 0
          • Thomas Braun
            Thomas Braun Most Active @qqolli last edited by Thomas Braun

            @qqolli

            Wenn es denn erforderlich wäre...
            Ich würde das dann mit scp oder pscp oder ähnlichem machen.
            Zum Beispiel so:

            pscp -pw password c:\User\Test\testdatei.txt user@192.168.33.10:/etc/var/test/test.txt
            

            pscp kommt aus der puTTY-Ecke. Keine Ahnung, ob das mit einer Grundinstallation von puTTY mitinstalliert wird.

            qqolli 1 Reply Last reply Reply Quote 1
            • qqolli
              qqolli @Thomas Braun last edited by

              @thomas-braun

              Da ich puTTY habe, ist es (wie bereits von Dir vermutet) dabei:

              pscp /?
              PuTTY Secure Copy client
              Release 0.73
              Usage: pscp [options] [user@]host:source target
                     pscp [options] source [source...] [user@]host:target
                     pscp [options] -ls [user@]host:filespec
              Options:
                -V        print version information and exit
                -pgpfp    print PGP key fingerprints and exit
                -p        preserve file attributes
                -q        quiet, don't show statistics
                -r        copy directories recursively
                -v        show verbose messages
                -load sessname  Load settings from saved session
                -P port   connect to specified port
                -l user   connect with specified username
                -pw passw login with specified password
                -1 -2     force use of particular SSH protocol version
                -4 -6     force use of IPv4 or IPv6
                -C        enable compression
                -i key    private key file for user authentication
                -noagent  disable use of Pageant
                -agent    enable use of Pageant
                -hostkey aa:bb:cc:...
                          manually specify a host key (may be repeated)
                -batch    disable all interactive prompts
                -no-sanitise-stderr  don't strip control chars from standard error
                -proxycmd command
                          use 'command' as local proxy
                -unsafe   allow server-side wildcards (DANGEROUS)
                -sftp     force use of SFTP protocol
                -scp      force use of SCP protocol
                -sshlog file
                -sshrawlog file
                          log protocol details to a file
              
              Thomas Braun 1 Reply Last reply Reply Quote 0
              • Thomas Braun
                Thomas Braun Most Active @qqolli last edited by

                @qqolli

                Mit der Windows PowerShell geht es ähnlich:

                PS C:\Users\212396433\Documents\Vodafone_speedtests> scp '.\2021-05-11 20_28_53-Echarts [ioBroker].jpg' echad@chet.fritz.box:/home/echad/testdatei.jpg
                
                1 Reply Last reply Reply Quote 2
                • Rene55
                  Rene55 last edited by

                  @SBorg Ich muss hier auch noch mal nachfragen: Dein Script läuft bei mir im Docker-Container. Ich habs heute mal geschafft, das Script im debug laufen zu lassen. Hier viel mir folgendes auf:
                  WLAN-Wetterstation V2.11.0 - (c)2019-2021 by SBorg
                  Config-Version: V2.11.0
                  Sub-Version : V2.11.0

                  'bc' installiert: [✓]
                  'jq' installiert: [✓]

                  /opt/weather/wetterstation.sub: line 752: sudo: command not found
                  /opt/weather/wetterstation.sub: line 756: sudo: command not found
                  ┌────────────────────────────────────────────────────────────┐
                  │ │
                  │ "netcat" ist nicht in der benötigten Version installiert! │
                  │ │
                  │ Soll er nun installiert werden? [J/N]: j │
                  │ │
                  └────────────────────────────────────────────────────────────┘

                  /opt/weather/wetterstation.sub: line 772: sudo: command not found.
                  In meinem Dockerfile ist aber explizit die 'netcat-openbsd' installiert.
                  Weiterhin fiel mir auf, dass der Datenstring seltsam aufhört:
                  Datenstring für ioBroker: 0_userdata.0.Wetterstation.Innentemperatur=19.11&0_userdata.0.Wetterstation.Aussen...<gekürzt>.....Wetterstation.Windrichtung_Text=SSW&0_userdata.0.Wetterstation.Info.Hitzeindex=
                  Hast du dazu eine Meinung - oder zwei?

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

                    @rene55 Fangen wir mit dem einfachen an:

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

                    Datenstring für ioBroker: 0_userdata.0.Wetterstation.Innentemperatur=19.11&0_userdata.0.Wetterstation.Aussen...<gekürzt>.....Wetterstation.Windrichtung_Text=SSW&0_userdata.0.Wetterstation.Info.Hitzeindex=

                    Ist normal und Ok. Aktuell gibt es keinen Wert für den Hitzeindex, deswegen endet der direkt mit einem "=". So wird ein ggf. vorher existierender Index gelöscht/resettet und gleichzeitig kein Wert geschrieben (hilfreich zB. beim Influx-Logging).
                    Kleiner Exkurs / Rechnung: 86400 sek. (pro Tag) / 30 sek. (Standardintervall der Datenübertragung) = 2.880 Daten-/Messwerte
                    Rechnen wir mal grob (IMHO noch viel mehr als die gleich angenommen 250 Tage) die Nächte, Winter, teils Herbst und Frühjahr und teilweise den Sommer ab, wären das 250 Tage x 2.880 = 720.000 Messwerte in denen nur drin steht "es liegt kein Hitzeindex vor".
                    Ähnliches gilt für den Regen. Es ergibt ja keinen Sinn dauernd zu melden "kein Regen".
                    Da ist es doch einfacher (weil es auch nicht andauernd regnet) keine Meldung = kein Regen und nur was melden wenn es dann auch tatsächlich regnet 😊


                    Docker bin ich leider außen vor, aber um zB. die netcat-Alternative korrekt einzustellen werden "sudo" - Rechte benötigt. Das meckert er auch an:

                    /opt/weather/wetterstation.sub: line 752: sudo: command not found
                    /opt/weather/wetterstation.sub: line 756: sudo: command not found
                    

                    Er findet "sudo" nicht, wahrscheinlich für/im Container nicht aktiviert/verfügbar. Das ist aber nur die Überprüfung ob netcat korrekt ist. Wenn es das sowieso schon war bzw. installiert ist, macht es auch nichts wenn die Prüfung fehlschlägt, solange es die "openbsd"-Variante ist.

                    1 Reply Last reply Reply Quote 0
                    • Rene55
                      Rene55 last edited by

                      @SBorg Danke für die ausführlichen Erklärungen - das hilft mir weiter. Tatsächlich gibt es in dem Container kein sudo. Ich könnte ja mal spaßeshalber einen Container mit Sudo bauen und nochmal testen.
                      Beim Hitzeindex war ich mir nicht so sicher, da ich immer noch Probleme habe, den Simple-API mit User/Kennwort zu betreiben. Ich dachte, der Datenstring wäre unvollständig und deswegen kämen User und Passwort nicht mit rüber. Auch das werde ich dieser Tage nochmals testen. Auf jeden Fall, nochmals Danke für Script und Erklärung.

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

                        @rene55 immer gerne 🙂

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

                        ...da ich immer noch Probleme habe, den Simple-API mit User/Kennwort zu betreiben

                        Habe ich auch offen gestanden nie probiert und der Aufruf ist nur lt. Doku umgesetzt. Muss ich mal Zeit dafür finden (ggf. ein Issue auf GitHub, dann vergesse ich es auch nicht 😉 )

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

                          Neue Version des JavaScriptes Wetterstation-Statistik auf GitHub V1.0.1

                          • ~Bugfixing "error: TypeError: Cannot read property '0' of null"
                          • ~Wechsel zu axios

                          Wie immer zu finden im GitHub


                          Der Wechsel zu axios ist lediglich ein "unter der Haube". Der Support der benötigten "request"-Routine wird bzw. ist seitens NPM eingestellt.

                          1 Reply Last reply Reply Quote 1
                          • Boronsbruder
                            Boronsbruder last edited by

                            Ich habe in letzter Zeit immer mal wieder das Problem, dass ich folgenden Eintragungen im Log des Wetterstation.service bekomme:

                            Dec 25 11:57:45 ZEROSERVER wetterstation.sh[26522]: Connection to 192.168.116.249 8087 port [tcp/*] succeeded!
                            Dec 26 00:41:49 ZEROSERVER wetterstation.sh[26522]: (standard_in) 1: syntax error
                            Dec 26 00:42:08 ZEROSERVER wetterstation.sh[26522]: (standard_in) 1: syntax error
                            Dec 26 00:42:27 ZEROSERVER wetterstation.sh[26522]: (standard_in) 1: syntax error
                            Dec 26 00:42:46 ZEROSERVER wetterstation.sh[26522]: (standard_in) 1: syntax error
                            
                            Dec 18 13:05:06 ZEROSERVER wetterstation.sh[14524]: Connection to 192.168.116.249 8087 port [tcp/*] succeeded!
                            Dec 18 14:14:53 ZEROSERVER wetterstation.sh[14524]: (standard_in) 1: syntax error
                            Dec 18 14:15:11 ZEROSERVER wetterstation.sh[14524]: (standard_in) 1: syntax error
                            Dec 19 03:03:46 ZEROSERVER wetterstation.sh[14524]: (standard_in) 1: syntax error
                            

                            Zu verschiedenen Zeitpunkten

                            Irgendwann aber nicht gleichzeit treten dann im Iobroker-Log

                            2021-12-27 08:38:05.097 - info: simple-api.0 (15129) State value to set for "0_userdata.0.Wetterstation.Info.Solarenergie_Tag" has to be type "number" but received type "string"
                            2021-12-27 08:38:05.099 - info: simple-api.0 (15129) State value to set for "0_userdata.0.Wetterstation.Info.Solarenergie_Woche" has to be type "number" but received type "string"
                            2021-12-27 08:38:05.141 - info: simple-api.0 (15129) State value to set for "0_userdata.0.Wetterstation.Info.Solarenergie_Monat" has to be type "number" but received type "string"
                            2021-12-27 08:38:05.141 - info: simple-api.0 (15129) State value to set for "0_userdata.0.Wetterstation.Info.Solarenergie_Jahr" has to be type "number" but received type "string" 
                            

                            auf

                            Dec 27 08:38:05 ZEROSERVER wetterstation.sh[26522]: (standard_in) 1: syntax error
                            Dec 27 08:38:05 ZEROSERVER wetterstation.sh[26522]: (standard_in) 1: syntax error
                            Dec 27 08:38:05 ZEROSERVER wetterstation.sh[26522]: (standard_in) 1: syntax error
                            Dec 27 08:38:05 ZEROSERVER wetterstation.sh[26522]: (standard_in) 1: syntax error
                            Dec 27 08:38:05 ZEROSERVER wetterstation.sh[26522]: (standard_in) 1: syntax error
                            Dec 27 08:38:05 ZEROSERVER wetterstation.sh[26522]: (standard_in) 1: syntax error
                            Dec 27 08:38:05 ZEROSERVER wetterstation.sh[26522]: (standard_in) 1: syntax error
                            Dec 27 08:38:05 ZEROSERVER wetterstation.sh[26522]: (standard_in) 1: syntax error
                            Dec 27 08:38:05 ZEROSERVER wetterstation.sh[26522]: (standard_in) 1: syntax error
                            

                            die syntax error setzen sich dann fort bis zum Service-Restart...

                            Wo kann ich da suchen bzw. wie?

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

                              Ich glaube ich habe eine Spur...
                              Mir ist aufgefallen, dass gerade auf der WSView-App keine Daten mehr vom Sensor kamen.
                              Das Fehlen der Daten scheint die syntax-Error auszulösen...

                              Hab jetzt mal das in der .conf das logging aktiviert.

                              Dabei trat bei mir mal wieder ein Fehler auf...

                              /home/wetter/wetterstation.sub: Zeile 1141: 20211227_station.log: Keine Berechtigung
                              

                              Erst als ich die Zeile 1141 in der .sub mit "/home/wetter" erweitert habe, durfte er schreiben. Wo wollte er zuvor hin schreiben?

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

                                @boronsbruder Anscheinend bekommt er da keine Daten vom "Sonnensensor", deswegen die Meldungen im Log. Darauf deutet dann auch

                                "0_userdata.0.Wetterstation.Info.Solarenergie_Tag" has to be type "number" but received type "string"
                                usw.
                                

                                Der Wert ist eigentlich eine Zahl, er bekommt aber wg. der vermutlich fehlgeschlagenen Rechnung (weil er keine Daten zum rechnen hatte) nun einen String ("rechne mit nix" = NULL [also kein Wert; dies wird dann als String interpretiert]) zurück.

                                Trotzdem merkwürdig, denn eigentlich sollte der ganze Solarenergie-Part (der wird ja nur kpl. berechnet und basiert auf keinem Wert den die Station so liefert) nur ausgeführt werden wenn auch ein Wert vorliegt:

                                 if [ "$SONNEN_STRAHLUNG" -gt "0" ]...
                                

                                Ev. liefert das Log was schlüssigeres. Aktuell fehlt mir da leider der Ansatzpunkt...


                                Das Log wird (oder sollte) im aktuellen Verzeichnis angelegt (werden). Wenn er aber als Service gestartet wird (IMO waren meine Tests nur per Shell-Aufruf?) will er sie wohl im "systemd"-Verzeichnis anlegen, was ohne root-Rechte nicht erlaubt ist. Fix kommt dann in die V2.11.0 mit rein:

                                
                                logging() {
                                      local DATUM=$(date '+%Y%m%d')
                                      echo -e "\n${DATA}" >> "${DIR}/${DATUM}_station.log"
                                }
                                
                                

                                Damit landet es auch wirklich im Installationsverzeichnis 😉

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

                                  @sborg mannmann, wieder typisch... nachdem vor einigen tagen der strom für 5 std abgedreht war, hatte ich probleme mit der station beim wieder einbinden. hat schon gut angefangen, weil sich das kabelmodem nicht mehr mit dem provider verbunden hat. nach einer stunde dann anruf beim provider, der das modem neu gestartet, auf einmal gings...
                                  so bin ich jetzt nach und nach am fehler suchen und zu reparieren.
                                  dann in ws_view nachgeschaut, bei wunderground keine werte! ich schau auf der webpage, meine station ist offline.
                                  das ganze mit aktuellem stand komplett neu gemacht, alles eingetragen, keine änderung.
                                  gestern sogar versucht eine neue station bei WU zu machen, genauso offline.
                                  jetzt seh ich den beitrag, will nachfragen, schau nochmal in ws-view, daten! wunderground.com, die station ist online!
                                  manchmal ist es echt zum aus der haut fahren...
                                  so, genug gekotzt, danke fürs lesen... 😄

                                  1 Reply Last reply Reply Quote 0
                                  • A
                                    Andre105 last edited by

                                    Hallo zusammen,

                                    Ich hänge mich hier mal rein.
                                    Habe auch eine Eurochron EFWS2900 mir gekauft.
                                    Habe sie eingerichtet und die Daten werden schon bei Ecowitt.net angezeigt.
                                    Leider Kommen die Daten bei Weather Underground nicht an.
                                    Dort ist die Station immer offline.
                                    Was muss ich da noch einstellen?

                                    SBorg 1 Reply Last reply Reply Quote 0
                                    • Boronsbruder
                                      Boronsbruder last edited by Boronsbruder

                                      @sborg
                                      Also, das Problem entsteht z.B. wenn aus unerklärlichen Gründen (sprich ohne Änderungen an der Funkstrecke) der Sensor keine Daten mehr sendet...

                                      dann kommen vom Gateway nur noch

                                      PASSKEY=*****&stationtype=GW1000A_V1.6.8&dateutc=2021-12-28+06:09:35&tempinf=80.2&humidityin=29&baromrelin=29.574&baromabsin=27.929&freq=868M&model=GW1000_Pro
                                      

                                      Das löst den Syntaxerror aus (denke ich)

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

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

                                        Was muss ich da noch einstellen?

                                        Nur die korrekte Station-ID und -Key. Diese sollte keine Sonderzeichen, Umlaute und Leerzeichen enthalten (sollte so schon seitens WU so sein).
                                        Aber @da_Woody hatte ein Post über deinem temporär das gleiche Problem. Ev. hat WU auch aktuell Probleme.

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

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

                                          Das löst den Syntaxerror aus (denke ich)

                                          Jupp, kein Wert der Sonnenstrahlung. Damit kann man arbeiten. Wir erweitern einfach die Definition (es muss auch eine Außentemperatur geben) wann ein Datenpaket valide ist. Damit führt er dann keine Berechnung aus (setzt aber den Komfehlerzähler hoch, deswegen wäre hier dann der Reset per conf empfehlenswert. "Dauerfehler" lösen ihn dann trotzdem permanent aus).

                                          In der sub so um Zeile #265 von

                                          if [ "$STRLEN" -gt "150" ] && [[ "$DATA" =~ "PASSKEY=" ]]; then return 0; else return 1; fi
                                          

                                          in

                                          if [ "$STRLEN" -gt "150" ] && [[ "$DATA" =~ "PASSKEY=" ]] && [[ "$DATA" =~ "tempf=" ]]; then return 0; else return 1; fi
                                          
                                          Boronsbruder 1 Reply Last reply Reply Quote 0
                                          • da_Woody
                                            da_Woody @SBorg last edited by

                                            @sborg wieso meine station auf einmal wieder online ist? k.A.
                                            in deinem script hatte ich anscheinend wiedermal sauhaufen drinnen, bei irgendeinem update was falsch gemacht.
                                            beim neu machen noch ein kleine blindheitsproblem:

                                             #InfluxDB-Konfiguration / ohne InfluxDB alles leer lassen
                                              #IP und Port der API [192.168.0.252:8086]
                                               INFLUX_API=192.168.0.252:8086
                                            

                                            die adresse nicht bei INFLUX_API eingetragen, sondern oberhalb. 🙄

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            549
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

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