Navigation

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

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Linux Shell-Skript] WLAN-Wetterstation

    This topic has been deleted. Only users with topic management privileges can see it.
    • liv-in-sky
      liv-in-sky @Negalein last edited by

      @Negalein

      soweit bis heute - immer hin einen monat

      Image 9.png

      Negalein 1 Reply Last reply Reply Quote 1
      • Negalein
        Negalein Global Moderator @liv-in-sky last edited by

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

        soweit bis heute - immer hin einen monat

        cool

        Ist es möglich, die Namen (Regenmenge_Monat, ...) zu beschönigen (Unterstrich raus, Leerzeichen rein, ...)?

        Aber es eilt nicht.

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

          Wer aktuell eine Wetterstation sucht, die Eurochron EFWS 2900 gibt es aktuell für 111,- € VKF bei Voelkner

          da_Woody 1 Reply Last reply Reply Quote 0
          • liv-in-sky
            liv-in-sky @Negalein last edited by liv-in-sky

            @Negalein ja - das ist kein thema - schönheits-op kommt später

            mein problem ist einfach das ganze nun 12 mal anzuzeigen , weil:

            • zum einen ist das eine ganze seite

            • ich müßte die tabelle wieder in eine tabelle stecken, weil es sonst entweder 12 in vertikaler oder 12 in horizontaler richtung sind - die gehen sicher nicht mehr ohne scrollen auf eine seite

            • könntest du evtl mit 3 monaten auskommen - ein vor- und einer nach dem aktuellen monat
              z.b. jetz ist nov ---> oktober november dezember

            was am einfachsten wäre, 12 scripte, die 12 tabellen in 12 eigene datenpunkte schreiben - das problem - die tabellen werden jedes jahr breiter

            egal wie ich es hindrehe - die tabellen werden immer größer und werden extrem viel platz brauchen

            oder wir basteln einen schalter rein, mit dem du auswählen kannst, welchen monat du sehen willst und der standardmäßig den momentanen monat (oder 3 monate ) anzeigt

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

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

              Wer aktuell eine Wetterstation sucht, die Eurochron EFWS 2900 gibt es aktuell für 111,- € VKF bei Voelkner

              schön, mit versand nach ö kommts sicher nich billiger, als bei den amazonischen... 😞 131€
              und ich hab meine ja schon 😄

              1 Reply Last reply Reply Quote 0
              • Negalein
                Negalein Global Moderator @liv-in-sky last edited by

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

                oder wir basteln einen schalter rein, mit dem du auswählen kannst, welchen monat du sehen willst und der standardmäßig den momentanen monat (oder 3 monate ) anzeigt

                das wär natürlich das Nonplusultra

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

                  @Negalein

                  siehe hier:

                  anim-gif10.gif

                  Negalein 1 Reply Last reply Reply Quote 3
                  • Negalein
                    Negalein Global Moderator @liv-in-sky last edited by

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

                    siehe hier:

                    cool, das ist perfekt 🙂

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

                      @Negalein

                      ich lege das script in einen thread von mir - sonst find ich das später nicht mehr

                      https://forum.iobroker.net/topic/38286/vis-tabelle-für-wlan-wetterstation

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

                        Hallo,

                        ich habe die Eurochron EFWS2900 Wetterstation.

                        Die Station läuft, in der App habe ich alle Daten eingegeben.

                        Die Datenpunkte im ioBroker (Raspberry 4) sind auch angelegt.

                        Im Verzeichnis /home/iobroker habe die drei Dateien angelegt: wetterstation.sh, wetterstation.sub und wetterstation.conf

                        Wenn ich folgenden Befehl in Putty ausführe: ./wetterstation.sh --debug

                        Erscheint diese Fehlermeldung: /bin/bash: V1.4.0 - 30.10.2020 (c) 2019-2020 SBorg: Datei oder Verzeichnis nicht gefunden

                        Was mache ich falsch?

                        Mit dem Ping-Befehl: ping IP-Adresse kommt was in Putty an, d.h. die Wetterstation ist erreichbar.

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

                          @chrissi1 Vermutlich stehst du nicht im Verzeichnis, in dem wetterstation.sh liegt.

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

                            @Thomas-Braun

                            Doch eigentlich befinde ich mich im korrekten Verzeichnis.

                            Unbenannt1.PNG

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

                              @chrissi1 Bitte keine Screenshots, sondern Text auch als Text in CodeTags einbetten.

                              Dann fehlt da vermutlich das Kommentarzeichen vor der Zeile mit dem Text
                              den ich jetzt (wegen Screenshot) nicht kopieren kann.

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

                                @Thomas-Braun ok, werde ich beim nächsten Mal beachten.

                                Aber welches Kommentarzeichen fehlt denn?

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

                                  @chrissi1
                                  Ein # wohl.

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

                                    @chrissi1 Poste mal die ersten Zeilen des skriptes. Vollständig. In CodeTags.

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

                                      @Thomas-Braun hier das Skript:

                                      
                                      # 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 @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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            402
                                            Online

                                            31.8k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

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