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 @chrissi1 last edited by

      @chrissi1
      Das fängt so an?
      Da fehlt die shebang

      Trag da mal als allererste Zeile ein:

      #!/bin/bash
      
      Negalein 1 Reply Last reply Reply Quote 0
      • Negalein
        Negalein Global Moderator @Thomas Braun last edited by Negalein

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

        Das fängt so an?

        Nö, Originalscript

        @chrissi1

        #!/bin/bash
        
        # V1.4.0 - 30.10.2020 (c) 2019-2020 SBorg
        #
        # wertet ein Datenpaket einer WLAN-Wetterstation im Wunderground-Format aus, konvertiert dieses und überträgt
        # die Daten an den ioBroker
        #
        # benötigt den 'Simple RESTful API'-Adapter im ioBroker, 'jq' (nur openSenseMap) und 'bc' unter Linux
        #
        # V1.4.0 / 30.10.2020 - + Support für openSenseMap
        # V1.3.1 / 08.10.2020 - ~ Fix falls Leerzeichen im Verzeichnisnamen
        # V1.3.0 / 19.06.2020 - + letztes Regenereignis und Regenmenge
        #                       + Fehlermeldung bei falscher WS_ID / ID der Wetterstation
        #                       + Sonnenscheindauer + Solarenergie vom Vortag
        #                       ~ Änderung/Fix Sonnenscheindauer
        # V1.2.0 / 20.04.2020 - + Firmwareupgrade verfügbar?
        #                       + Firmwareversion
        #                       + Sonnenscheindauer Heute, Woche, Monat, Jahr
        #                       + UV-Belastung
        #                       + Solarenergie Heute, Woche, Monat, Jahr
        #                       + Vorjahreswerte von Regenmenge, Sonnenscheindauer und Solarenergie
        # V1.1.0 / 03.04.2020 - + aktueller Regenstatus
        #                       + Luftdrucktendenz, Wettertrend und aktuelles Wetter
        # V1.0.0 / 12.03.2020 - + Berechnung Jahresregenmenge
        #                       + Windrichtung zusätzlich als Text
        #                       ~ Änderung "Regen Aktuell" in "Regenrate"
        #                       ~ Splitt in conf- + sub-Datei
        # V0.1.3 / 08.02.2020 - + Unterstützung für Datenpunkt "Regenmenge Jahr", zB. für Froggit WH4000 SE
        #                       + Shell-Parameter -s (Klartextanzeige Passwort + Station-ID)
        #                       + Shell-Parameter --data (zeigt nur das gesendete Datenpaket der Wetterstation an)
        # V0.1.2 / 31.01.2020 - + Prüfung auf Datenintegrität
        #                       + neuer Datenpunkt bei Kommunikationsfehler
        #                       + Ausgabe Datenpaket der Wetterstation bei Debug
        # V0.1.1 / 01.01.2020 - + UTC-Korrektur
        #                       + Config-Versionscheck
        #                       + Shell-Parameter -v/-h/--debug
        # V0.1.0 / 29.12.2019 - erstes Release
        
        
         SH_VER="V1.4.0"
         CONF_V="V1.4.0"
         SUBVER="V1.4.0"
        
        
         #Installationsverzeichnis feststellen
          DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
        
         #Config-Version prüfen
          VER_CONFIG=$(cat "${DIR}/wetterstation.conf"|grep '### Setting'|cut -d" " -f3)
          if [ $CONF_V != $VER_CONFIG ]; then
        	echo -e "wetterstation: \e[31mERROR #000 - Config-Version mismatch!\n"
        	echo -e "benutzt: $VER_CONFIG\t benötigt wird: $CONF_V$WE"
        	exit 1
          fi
        
         #Sub-Version prüfen
          SUB_CONFIG=$(cat "${DIR}/wetterstation.sub"|grep '### Subroutinen'|cut -d" " -f3)
          if [ $SUBVER != $SUB_CONFIG ]; then
        	echo -e "wetterstation: \e[31mERROR #001 - Subroutinen-Version mismatch!\n"
        	echo -e "benutzt: $SUB_CONFIG\t benötigt wird: $SUBVER$WE"
        	exit 1
          fi
        
        
         #Konfiguration lesen + Subroutinen laden
          . "${DIR}/wetterstation.conf"
          . "${DIR}/wetterstation.sub"
        
        
         #gibt es Parameter?
          while [ "$1" != "" ]; do
            case $1 in
                --debug )               debug=true   #override
                                        ;;
                --osem_reg )            osem_register
                                        exit
                                        ;;
                -s | --show )           show_pwid=true
                                        ;;
                -d | --data )           setup
                                        ws_data
                                        exit
                                        ;;
                -v | --version )        version
                                        exit
                                        ;;
                -h | --help )           usage
                                        exit
                                        ;;
                * )                     usage
                                        exit 1
            esac
            shift
          done
        
         #Setup ausführen
          setup
        
        
        
        
        #Endlosschleife
        while true
         do
        
          #Kommunikation herstellen und Daten empfangen
           get_DATA
        
          #KOM-Fehler?
          if [ "$?" -eq "0" ]; then
        
           #DATA zerlegen (Messwerte Block #3-#22)
           ii=2
           for ((i=0; i<20; i++))
            do
             let "ii++"
             MESSWERTERAW[$i]=$(echo ${DATA}|cut -d'&' -f${ii} | cut -d"=" -f2)
             MESSWERTE[$i]=${MESSWERTERAW[$i]}
              if [ "$i" -ge "0" ] && [ "$i" -lt "4" ]; then convertFtoC; fi
              if [ "$i" -eq "6" ] || [ "$i" -eq "7" ]; then convertMPHtoKMH; fi
              if [ "$i" -eq "8" ]; then winddir; fi
              if [ "$i" -eq "9" ] || [ "$i" -eq "10" ]; then convertLuftdruck; fi
              if [ "$i" -ge "11" ] && [ "$i" -lt "16" ]; then convertInchtoMM; fi
              if [ "$i" -eq "16" ]; then sonnenpuls; fi
              if [ "$i" -eq "17" ]; then uv_belastung; fi
              if [ "$i" -eq "18" ]; then convertTime; fi
            done
        
           #Daten an ioB schicken
            iob_send
        
        
          else
           let "KOMFEHLER++"
           if [ "$KOMFEHLER" -eq "5" ]; then curl "http://${IPP}/set/${DP_KOMFEHLER}?value=true&ack=true" >/dev/null 2>&1;fi
          fi
        
        
          #Debug eingeschaltet?
           if [ $debug == "true" ]; then debuging; fi
        
          #Mitternachtjobs
           if [ `date +%H` -ge "23" ] && [ `date +%M` -ge "58" ] && [ -z $MIDNIGHTRUN ]; then
        	rain               #Jahresregenmenge
        	firmware_check     #neue Firmware
        	reset_zaehler      #Sonnenscheindauer, Solarenergie zurücksetzen (enthällt auch Speicherung Werte VorJahr)
           fi
           if [ `date +%H` -eq "0" ] && [ `date +%M` -le "3" ]; then unset MIDNIGHTRUN; fi
        
        
          #Wetterprognose
           DO_IT=`date +%M`
           DO_IT=${DO_IT#0}
           if [ $(( $DO_IT % 15 )) -eq "0" ] && [ `date +%s` -ge "$TIMER_SET" ]; then wetterprognose; fi
        
          #openSenseMap
           if [ ${openSenseMap} == "true" ]; then opensensemap; fi
         done
        
        ###EoF
        
        Thomas Braun 1 Reply Last reply Reply Quote 0
        • Thomas Braun
          Thomas Braun Most Active @Negalein last edited by Thomas Braun

          @Negalein
          Sag ich doch... 🙂

          Vermutlich beim copy&paste die shebang nicht mitkopiert.

          1 Reply Last reply Reply Quote 0
          • C
            chrissi1 last edited by

            So, es klappt jetzt soweit erstmal.

            Ich habe alle drei Dateien gelöscht und nochmal neu erstellt.

            Danach habe ich auf Github die drei Dateien angeklickt, aufgerufen und dort alles kopiert.

            Vorher habe ich das Projekt von Github als ZIP-Datei gedownloadet und die drei Dateien mit Notepad geöffnet, alles markiert, kopiert und in Putty eingefügt.

            Das scheint wohl nicht zu klappen.

            Jetzt führe ich laut Anleitung noch folgenden Punkt durch und hoffe das dann alles funktioniert.

            Einstellung als Autostart (Möglichkeit #1 per systemd)

            Ich danke euch.

            Thomas Braun Negalein 2 Replies Last reply Reply Quote 0
            • Thomas Braun
              Thomas Braun Most Active @chrissi1 last edited by

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

              mit Notepad

              Achtung, Windows Notepad nutzt andere Zeilenschaltungen als Linux.

              1 Reply Last reply Reply Quote 0
              • Negalein
                Negalein Global Moderator @chrissi1 last edited by

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

                mit Notepad

                verwende dafür Notepad++

                C 1 Reply Last reply Reply Quote 0
                • C
                  chrissi1 @Negalein last edited by

                  @Negalein Notepad++ habe ich verwendet, aber naja. 🙄

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

                    Immerhin scheinen doch wesentlich mehr das Projekt zu nutzen als die 10 Up-Votings im Eingangspost vermuten lassen. Stellenweise fragt man sich nämlich schon ob die viele Zeit sinnvoll verbraten ist 😉
                    Leider kann ich über GitHub auch nicht die Anzahl der Downloads ermitteln. Was mir aber auffiel, seit ich mit OSEM-Programmierung anfing, kamen so 1-2 SenseBoxen pro Woche dazu.
                    Erste Beta: +10 SenseBoxen
                    offizielle Veröffentlichung der V1.4.0: binnen 6 Stunden +40 SenseBoxen
                    ...und seit Beginn bis Heute insgesamt rund +80 SenseBoxen

                    Ja ich könnte auch ein "NachHausefunken" implementieren und darüber die Anzahl der Installationen ermitteln, aber da bin ich kein Freund von (und ja, ich kann das auch fest einbauen damit man es nicht deaktivieren kann. Auch ein Shell-Skript lässt sich binär codieren...) und der "Nutzen" liegt dann genau wo?

                    Vielleicht denkt also der stille User/Nutzer mal darüber nach 5 Sekunden Zeit zu investieren und im 1. Post ein Up-Vote da zulassen. Kostet nix, ich bekomme dafür auch nix, nur sehe ich halt, dass mehr Interesse besteht als nur der "harte Kern" der hier regelmäßig postet und ggf. eine angestiegene Anzahl von SenseBox-Registrierungen... 🙂

                    wendy2702 da_Woody 2 Replies Last reply Reply Quote 2
                    • wendy2702
                      wendy2702 @SBorg last edited by

                      @SBorg Up-Vote ist das kleinste Problem.

                      🙂

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

                        @SBorg oops, grad erledigt. 😉

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

                          Alles gut 🙂
                          ...nur wenn es keiner nutzt, weiß ich auch besseres mit meiner Zeit anzufangen 😉

                          OSEM läuft auch:
                          Bild 1.png
                          Desegen bin ich gerade so bisserl am planen einer Road-Map wo die Reise hingehen soll. Für das Statistik-Modul gibt es die Tage noch ein Update. Damit sollte der Monatsreset zum 01. des Monats korrekt funktionieren (typisches JS([Programmierer]-Problem. Funktion A ist noch am werkeln, da will die gerade laufende Funktion B schon Daten von A haben...).
                          Auch wenn ich die *.conf nur selten anrühre (dafür habe ich sie ja extra damals ausgegliedert), ist es mit/seit OSEM nicht prickelnd wenn man sie aus versehen überschreibt. Deswegen schwebt mir noch eine Update-Routine vor, die das Ganze vereinfacht.

                          Des weiteren habe ich noch paar € Spenden über (nochmals Danke an dieser Stelle), die ich in DIY - Wetterstation-PimpOn investieren werde. Hier steht an 1. Stelle ein echter Regensensor, gefolgt von einem Luftgütesensor. Weiteres muss man sehen (zB. Bodenfeuchte, O³, Nebel ...). Das wird aber auch Hardware-Gebastel. Besteht daran öffentliches Interesse?

                          An die Aktion mit Ecowitt (Sensoren + Gateway) mache ich offiziell ein Haken. Nach ~3.5 Monaten Wartezeit sind die Samples wohl nicht mehr zu erwarten...

                          Neuschwansteini Negalein da_Woody 3 Replies Last reply Reply Quote 0
                          • Neuschwansteini
                            Neuschwansteini @SBorg last edited by

                            @SBorg Hi, ich hab vorletzte Woche oder so meinen iobroker von ner 2 Jahre alten VM in n lxc umgezogen, und dabei jetzt auch das script auf V1.40 installiert, läuft alles super, vielen Dank!

                            Dadurch ist das OSEM etwas an mir vorbei gegangen.. das ist doch nur, um die Daten öffentlich darzustellen, oder ?
                            oder hat das noch n Vorteil ?

                            SBorg 1 Reply Last reply Reply Quote 0
                            • Negalein
                              Negalein Global Moderator @SBorg last edited by

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

                              Hier steht an 1. Stelle ein echter Regensensor, gefolgt von einem Luftgütesensor. Weiteres muss man sehen (zB. Bodenfeuchte, O³, Nebel ...). Das wird aber auch Hardware-Gebastel. Besteht daran öffentliches Interesse?

                              Ja, definitiv.
                              Wegen dem Gebastel muss ich mir zwecks Handicap dann was überlegen.

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

                                @SBorg ich hätte da ein paar AZDelivery 5 x Bodenfeuchtesensor rum liegen. kann man damit was anfangen? wenn ja, schick ich dir gern einen...

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

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

                                  Dadurch ist das OSEM etwas an mir vorbei gegangen.. das ist doch nur, um die Daten öffentlich darzustellen, oder ?
                                  oder hat das noch n Vorteil ?

                                  Jepp, du kannst es auch einfach in der *.conf auf false stehen lassen und gut ist. Ich bin ein Freund von "...alles kann, aber nix muss..."
                                  Hintergrund ist einfach die Daten jedem zur Verfügung zu stellen. So könnte man auch mal ein Adapter für eine virtuelle Wetterstation bauen. Du hast bspw. keine weil Mietwohnung, möchtest aber trotzdem gerne Dinge smart regeln. Zum Glück gibt es aber in deiner Nähe/Stadt eine Wetterstation. Adapter installiert, schon hast du deine "eigene" Wetterstation.

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

                                  Wegen dem Gebastel muss ich mir zwecks Handicap dann was überlegen.

                                  Ich möchte dafür eh in China Platinen fertigen lassen. Die gibt es sowieso nur im 5er(oder 10er?) - Lot. Widerstände sogar im 100er Pack usw. Wenn ich also Kleinteile ordere habe ich immer x-Sätze übrig. Ich kann/will/darf eh keinen Handel betreiben, könnte mir aber für 4-9 (je nach Platinen halt) freiwilligen Spenden a 12,43 € (Beispiel, aber teuer wird es dank China sowieso nicht) vorstellen, als Dankeschön gratis übrig gebliebenes Material kostenfrei an die Spender als einmalige Aktion zu verschicken. Braucht man dann nur zB. den Luftgütesensor. Den kann ich bspw. nicht mit ordern, da der bei einem Stückpreis von 10-12 € einfach zu teuer wäre (Zoll etc.).
                                  ...und im Spezialfall kann ich es auch ggf. zusammen tackern, solange dann das Porto nach Ö noch passabel ist. So ein Platinchen dürfte wohl nicht die Welt kosten?

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

                                  @SBorg ich hätte da ein paar AZDelivery 5 x Bodenfeuchtesensor rum liegen. kann man damit was anfangen? wenn ja, schick ich dir gern einen...

                                  Ich kann immer Unterstützung gebrauchen. Wenn du noch ein Gehäuse (ich habe keinen 3D-Drucker) drauf legen könntest wäre ich happy 🙂

                                  Versorgt müsste das Ganze mit einem Steckernetzteil werden (ich kann/darf 230V, da soll aber keiner mit in Berührung kommen). Solar scheidet wg. der Kosten aus, da hier doch ein Recht großes Panel zum Einsatz kommen müsste wegen zB. des Luftgütesensors.
                                  Bleibt nur die Frage Funk wie bei der Wetterstation vs. WLAN. Funk würde im Haus einen zusätzlichen Empfänger unabdingbar machen.

                                  Negalein liv-in-sky Neuschwansteini da_Woody 4 Replies Last reply Reply Quote 1
                                  • Negalein
                                    Negalein Global Moderator @SBorg last edited by

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

                                    Ich möchte dafür eh in China Platinen fertigen lassen. Die gibt es sowieso nur im 5er(oder 10er?) - Lot. Widerstände sogar im 100er Pack usw. Wenn ich also Kleinteile ordere habe ich immer x-Sätze übrig. Ich kann/will/darf eh keinen Handel betreiben, könnte mir aber für 4-9 (je nach Platinen halt) freiwilligen Spenden a 12,43 € (Beispiel, aber teuer wird es dank China sowieso nicht) vorstellen, als Dankeschön gratis übrig gebliebenes Material kostenfrei an die Spender als einmalige Aktion zu verschicken. Braucht man dann nur zB. den Luftgütesensor. Den kann ich bspw. nicht mit ordern, da der bei einem Stückpreis von 10-12 € einfach zu teuer wäre (Zoll etc.).
                                    ...und im Spezialfall kann ich es auch ggf. zusammen tackern, solange dann das Porto nach Ö noch passabel ist. So ein Platinchen dürfte wohl nicht die Welt kosten?

                                    Das wäre super!

                                    Porto ist kein Problem, da ich eh in DE auch eine Adresse habe.
                                    Ist nur der Inn dazwischen. Bin quasi halb Bayer 😁

                                    1 Reply Last reply Reply Quote 1
                                    • liv-in-sky
                                      liv-in-sky @SBorg last edited by liv-in-sky

                                      @SBorg verstehe ich das richtig - du würdest so ein gerät für einen zusammenbauen - bin da nicht so gut drin 😞

                                      spende könnte ja ein z.b amazongutschein sein ?

                                      mein eigener regesensor arbeitet immer nur einmal - dann setzt er wieder für einen tag aus 😞

                                      SBorg 1 Reply Last reply Reply Quote 0
                                      • SBorg
                                        SBorg Forum Testing Most Active @liv-in-sky last edited by

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

                                        du würdest so ein gerät für einen zusammenbauen -

                                        Für zwei "Spezialfälle" bestimmt 😉
                                        Das wird auch nicht wahnsinnig komplex werden. Ist nur eine Spannungsversorgung 12V/5V/3.3V für die diversen Sensoren und etwas Außenbeschaltung für die Sensoren. Dann noch paar SDA/SDL-, I2C-Buchsen als Reserve für die gängigsten Sensoren und Anschlussklemmen für das übrige. Und natürlich noch ein ESP 😉

                                        Muss dass aber eh erst planen, Schaltbild, Platine... usw. dann kann ich auch etwas zu den Kosten sagen.

                                        liv-in-sky 1 Reply Last reply Reply Quote 1
                                        • liv-in-sky
                                          liv-in-sky @SBorg last edited by

                                          @SBorg mach dir keinen stress - wenn du was hast, gehts weiter und wäre dankbar für die löt und platinenarbeit - etwas zusammenschrauben oder in ein gehäuse einbauen, werd ich schon hinbekommen

                                          ps: ich würde wlan bevorzugen

                                          SBorg 1 Reply Last reply Reply Quote 0
                                          • SBorg
                                            SBorg Forum Testing Most Active @liv-in-sky last edited by

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

                                            ps: ich würde wlan bevorzugen

                                            Darauf wird es wohl hinauslaufen, da man dann direkt an den ioB senden kann und es wesentlich weniger Hardwareaufwand ist.

                                            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
                                            2872915
                                            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