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.
    • Negalein
      Negalein Global Moderator @Thomas Braun last edited by

      @thomas-braun

      ioB

      nega@ioBroker:~$ timedatectl
                     Local time: Sat 2025-06-28 18:42:46 CEST
                 Universal time: Sat 2025-06-28 16:42:46 UTC
                       RTC time: n/a
                      Time zone: Europe/Vienna (CEST, +0200)
      System clock synchronized: yes
                    NTP service: inactive
                RTC in local TZ: no
      

      Proxmox

                     Local time: Sat 2025-06-28 18:44:05 CEST
                 Universal time: Sat 2025-06-28 16:44:05 UTC
                       RTC time: Sat 2025-06-28 16:44:05
                      Time zone: Europe/Vienna (CEST, +0200)
      System clock synchronized: yes
                    NTP service: active
                RTC in local TZ: no
      

      Wetter

      kennt er nicht

      dietpi@DietPi:~$ timedatectl
      Failed to create bus connection: Datei oder Verzeichnis nicht gefunden
      
      Thomas Braun 1 Reply Last reply Reply Quote 0
      • Thomas Braun
        Thomas Braun Most Active @Negalein last edited by Thomas Braun

        @negalein

        Joh, dietpi ist ja auch radikal zusammengestaucht. Da wird es wohl andere Befehle geben.

        Siehe:
        https://dietpi.com/forum/t/time/5537/2

        Hab ich jetzt für dich ergoogelt.

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

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

          Siehe

          das ist passend

          c5b1dfdd-e0c5-4134-9de2-5d65b99733e9-image.png

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

            @negalein
            Der angemeckerte TS (bzw. die Zeitdifferenz) stammt auch nicht vom System, dies ist der zu übertragene Zeitpunkt der Messung wann diese statt fand und der kommt direkt vom Display/Gateway. Stimmt die Uhrzeit vom Display/Gateway?

            Negalein 1 Reply Last reply Reply Quote 0
            • wendy2702
              wendy2702 last edited by

              Da hier die Wetterstations Profis sind erlaube ich mir mal eine Frage zu meiner Station hier zu verlinken

              https://forum.iobroker.net/topic/81470/wetterstation-ventus-w830-zeigt-falsche-uhrzeit/5

              Vielleicht hat ja jemand von hier eine Idee dazu.

              Danke und schönen Sonntag

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

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

                Stimmt die Uhrzeit vom Display/Gateway?

                Ja, die stimmt genau

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

                  @negalein
                  Ich habe mir die Routine noch mal angesehen und ich lag falsch. Tatsächlich wird die Uhrzeit des Clients benutzt.

                  Dann versuchen wir es mal so wie die Routine es macht. Führe mal auf dem Skript-System ein date +%s aus. Da sollte nun als Ausgabe ein Uinxtimestamp erscheinen. Den kopierst du und fügst ihn mal bei bspw. unixtime.de ein.Das sollte dann dein aktuelles Datum und Uhrzeit sein.
                  Bild 001.png Bild 002.png

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

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

                    Das sollte dann dein aktuelles Datum und Uhrzeit sein.

                    ja, das passt +- ca. 30 Sek.

                    5c70da06-cb27-4d2c-8150-f81d903864b6-image.png

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

                      Hallo,
                      ich habe vor ein paar Tagen, die DS 100 Sensoren von 11 auf 16 Stück erhöht.
                      Hat auch alles Dank der Anleitung in Wiki vorerst gut funktioniert, im Iobroker sehe ich nun 16 Bodenfeuchte Sensoren.
                      Nun bemerkte ich, das der Sensor 1 & 16 immer die gleichen Werte angezeigen:
                      a6216ee5-2c28-45a3-bc54-7451852658de-grafik.png
                      Nachdem ich auf der Ecowitt App kontrolliert habe, bin ich mir nun sicher, das der Wert von Sensor 1, falsch angezeigt wird, also es ist derselbe Wert wie 16.
                      Habe schon einiges probiert, von Neustart der Wetterstation, Raspherry, IoBroker, usw....
                      Ich bekomme immer den Wert 16 zweimal angezeigt und den Wertz 1 falsch...
                      Hat jemand eine Idee?
                      Danke
                      Oliver

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

                        @sborg genau. Und wie vermutet... ECOWITT WS3900 funktioniert.

                        Danke für dein Skript

                        Mike

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

                          @negalein
                          Da es aktuell funktioniert, bei dir mal funktionierte und so kein Fehler ersichtlich ist, bleibt nur die Vermutung Problem von "Außerhalb". Ev. sind sie zB. mittels Geocaching der Meinung ihr hättet keine Sommerzeit und meinen deshalb die Werte wären über 60 Minuten alt. Verbiegen wir mal deinen Übertragungszeitstempel um eine Stunde zurück:

                          öffne mal die wetterstation.sub und suche nach windy_update (sollte bei ca. #1870ff sein)

                          dort ersetzt du nun (sollten vier Zeilen runter sein):

                           windy_DATA="station=${windy_Station}&ts=$(date +%s)&temp=${MESSWERTE[1]}&mbar=${MESSWERTE[9]}"
                          

                          mit

                           ts_tweak=$(date +%s) && let ts_tweak-=3600
                           windy_DATA="station=${windy_Station}&ts=${ts_tweak}&temp=${MESSWERTE[1]}&mbar=${MESSWERTE[9]}"
                          

                          Service restarten systemctl restart wetterstation

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

                            @oliver1972
                            Ich habe es mir eben noch mal angeschaut ob ich da ev. die Werte/Sensoren falsch zugeordnet habe, konnte aber so nichts finden.
                            Kannst du nochmal einen aktuellen String (./wetterstation.sh --data) posten (Passkey etc. kannst du kpl. löschen, ich brauche eigentlich nur den Teil mit den 16 Sensoren)? Dann kann ich mir Messwerte von 1-16 faken und sehe wo die Falschzuweisung erfolgt 😉

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

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

                              @sborg genau. Und wie vermutet... ECOWITT WS3900 funktioniert.

                              Danke für dein Skript

                              Mike

                              Immer gerne und nehme ich mit in die Liste auf 🙂

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

                                @sborg die Ecowitt WS3800 (A) kannst du auch gerne in die Liste aufnehmen 🙂

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

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

                                  mit

                                  jetzt kommt nur noch das

                                  Datenübertragung an windy.com:
                                  {"observations":[],"stations":[]}
                                  

                                  aber es werden Daten geschickt (Vgl. mit den letzten 2 Tagen)
                                  e087a4d3-0c35-49ae-a061-4ae3b409ea1c-image.png

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

                                    @sborg Habe mal alles kopiert (außer Versionsinfo), da ich mich hier Zuwenig auskenne..:

                                     #Versionierung
                                      SH_VER="V3.5.0"
                                      CONF_V="V3.5.0"
                                      SUBVER="V3.5.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 \e[0m"
                                         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 \e[0m"
                                         exit 1
                                      fi
                                    
                                     #Konfiguration lesen + Subroutinen laden
                                      . "${DIR}/wetterstation.conf"
                                      . "${DIR}/wetterstation.sub"
                                    
                                     #gibt es Parameter?
                                      while [ "$1" != "" ]; do
                                        case $1 in
                                            --debug )               version
                                                                    debug=true   #override
                                                                    ;;
                                            --osem_reg )            osem_register
                                                                    exit
                                                                    ;;
                                            --windy_reg )           windy_register
                                                                    exit
                                                                    ;;
                                            --metsommer )           metsom_override=true
                                                                    metsommer
                                                                    exit
                                                                    ;;
                                            --influx_test)          minmax24h DEBUG
                                                                    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 + Initial ausführen
                                      setup
                                      minmaxheute
                                    
                                    
                                    #Endlosschleife
                                    while true
                                     do
                                    
                                      #Kommunikation herstellen und Daten empfangen
                                      get_DATA
                                    
                                      #KOM-Fehler?
                                      if [ "$?" -eq "0" ]; then
                                       unset MESSWERTE; unset MESSWERTERAWIN
                                       MESSWERTERAWIN=(${DATA//&/ })
                                       rawinlen=${#MESSWERTERAWIN[@]}
                                       j=35
                                       for (( i=1; i<rawinlen; i++ ))
                                       do
                                         if [[ ${MESSWERTERAWIN[$i]} == tempinf=* ]] || [[ ${MESSWERTERAWIN[$i]} == indoortempf=* ]]
                                            then MESSWERTE[0]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); INDOOR_TEMP=${MESSWERTE[0]}; convertFtoC 0; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == tempf=* ]]
                                            then MESSWERTE[1]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); TEMPF=${MESSWERTE[1]}; convertFtoC 1; do_trend_aussentemp; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == dewptf=* ]]
                                            then MESSWERTE[2]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); DEWPTF=${MESSWERTE[2]}; convertFtoC 2; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == windchillf=* ]]
                                            then MESSWERTE[3]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertFtoC 3; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == humidityin=* ]] || [[ ${MESSWERTERAWIN[$i]} == indoorhumidity=* ]]
                                            then MESSWERTE[4]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); fi
                                         if [[ ${MESSWERTERAWIN[$i]} == humidity=* ]]
                                            then MESSWERTE[5]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); fi
                                         if [[ ${MESSWERTERAWIN[$i]} == windspeedmph=* ]]
                                            then MESSWERTE[6]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertMPHtoKMH 6; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == windgustmph=* ]]
                                            then MESSWERTE[7]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertMPHtoKMH 7; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == winddir=* ]]
                                            then MESSWERTE[8]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); winddir 8; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == baromabsin=* ]] || [[ ${MESSWERTERAWIN[$i]} == absbaromin=* ]]
                                            then MESSWERTE[9]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertLuftdruck 9; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == baromrelin=* ]] || [[ ${MESSWERTERAWIN[$i]} == baromin=* ]]
                                            then MESSWERTE[10]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertLuftdruck 10; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == rainratein=* ]] || [[ ${MESSWERTERAWIN[$i]} == rainin=* ]] || [[ ${MESSWERTERAWIN[$i]} == rrain_piezo=* ]]
                                            then MESSWERTE[11]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertInchtoMM 11; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == dailyrainin=* ]] || [[ ${MESSWERTERAWIN[$i]} == drain_piezo=* ]]
                                            then MESSWERTE[12]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertInchtoMM 12; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == weeklyrainin=* ]] || [[ ${MESSWERTERAWIN[$i]} == wrain_piezo=* ]]
                                            then MESSWERTE[13]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertInchtoMM 13; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == monthlyrainin=* ]] || [[ ${MESSWERTERAWIN[$i]} == mrain_piezo=* ]]
                                            then MESSWERTE[14]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertInchtoMM 14; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == yearlyrainin=* ]] || [[ ${MESSWERTERAWIN[$i]} == yrain_piezo=* ]]
                                            then MESSWERTE[15]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertInchtoMM 15; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == solarradiation=* ]]
                                            then MESSWERTE[16]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); sonnenpuls 16; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == uv=* ]] || [[ ${MESSWERTERAWIN[$i]} == UV=* ]]
                                            then MESSWERTE[17]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); uv_belastung 17; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == dateutc=* ]]
                                            then MESSWERTE[18]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertTime 18; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == stationtype=* ]] || [[ ${MESSWERTERAWIN[$i]} == softwaretype=* ]]
                                            then MESSWERTE[19]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); fi
                                         if [[ ${MESSWERTERAWIN[$i]} == wh65batt=* ]]
                                            then MESSWERTE[20]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); fi
                                         if [[ ${MESSWERTERAWIN[$i]} == maxdailygust=* ]]
                                            then MESSWERTE[21]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertMPHtoKMH 21; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == eventrainin=* ]]
                                            then MESSWERTE[22]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertInchtoMM 22; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == hourlyrainin=* ]]
                                            then MESSWERTE[23]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertInchtoMM 23; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == totalrainin=* ]]
                                            then MESSWERTE[24]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertInchtoMM 24; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == model=* ]]
                                            then MESSWERTE[25]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); fi
                                         if [[ ${MESSWERTERAWIN[$i]} == winddir_avg10m=* ]]
                                            then MESSWERTE[26]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); winddir 26; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == windspdmph_avg10m=* ]]
                                            then MESSWERTE[27]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertMPHtoKMH 27; fi
                                         if [[ ${MESSWERTERAWIN[$i]} == vpd=* ]]
                                            then MESSWERTE[30]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); fi
                                    
                                    
                                         ### zusätzliche DPxxx-Sensoren ############################################################
                                          if [ "${ANZAHL_DP10}" -gt "0" ]; then DP10; fi
                                          if [ "${ANZAHL_DP35}" -gt "0" ]; then DP35; fi
                                          if [ "${ANZAHL_DP40}" -gt "0" ]; then DP40; fi
                                          if [ "${ANZAHL_DP50}" -gt "0" ] || [ "${ANZAHL_DP100}" -gt "0" ]; then DP50_100; fi
                                          if [ "${ANZAHL_DP60}" -gt "0" ]; then DP60; fi
                                          if [ "${ANZAHL_DP70}" -gt "0" ]; then DP70; fi
                                          if [ "${ANZAHL_DP200}" -gt "0" ]; then DP200; fi
                                          if [ "${ANZAHL_DP250}" -gt "0" ]; then DP250; fi
                                          if [ "${ANZAHL_DP300}" -gt "0" ]; then DP300; fi
                                         ### zusätzliche DPxxx-Sensoren ################################################### ENDE ###
                                    
                                         ### zusätzliche WHxxx-Sensoren ############################################################
                                          if [ "${ANZAHL_WH31}" -gt "0" ]; then WH31; fi
                                         ### zusätzliche WHxxx-Sensoren ################################################### ENDE ###
                                    
                                         ### zusätzliche WSxxx-Sensoren ############################################################
                                          if [ "${ANZAHL_WS90}" -gt "0" ]; then WS90; fi
                                         ### zusätzliche WHxxx-Sensoren ################################################### ENDE ###
                                    
                                         ### zusätzliche Bresser-Sensoren ##########################################################
                                          if [ "${ANZAHL_7009999}" -gt "0" ]; then BR_001; fi
                                         ### zusätzliche WHxxx-Sensoren ################################################### ENDE ###
                                    
                                         ### zusätzliche Sainlogic oder Curconsa Sensoren, Station FT0300 ###########################
                                         if [ "${ANZAHL_DP50}" -eq "0" ] || [ "${ANZAHL_DP100}" -eq "0" ]; then
                                          if [[ ${MESSWERTERAWIN[$i]} == temp1f=* ]]
                                            then MESSWERTE[28]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertFtoC 28; fi
                                          if [[ ${MESSWERTERAWIN[$i]} == humidity1=* ]]
                                            then MESSWERTE[29]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); fi
                                         fi
                                         ### zusätzliche Sainlogic oder Curconsa Sensoren, Station FT0300 ################## ENDE ###
                                    
                                       done
                                    
                                    
                                       #Taupunkt und Windchill
                                        do_windchill
                                    
                                       #durchschnittliche Windgeschwindigkeit der letzten 10 Minuten
                                        if [[ ! "$DATA" =~ "windspdmph_avg10m=" ]]; then do_windspeed ${MESSWERTE[6]}; fi
                                    
                                       #Daten an ioB schicken
                                        if [ ${FIX_AUSSENTEMP} == "true" ]
                                         then
                                           if (( $(bc -l <<< "${MESSWERTE[1]} > -273") ))
                                            then
                                             iob_send
                                             if [ "${TEMPFIX_ERR}" -gt "0" ]; then let "TEMPFIX_ERR--"; fi
                                            else
                                             MELDUNG "unplausibler Messwert Aussentemperatur. Datenpaket verworfen..."
                                             let "TEMPFIX_ERR++"
                                             if [ "${TEMPFIX_ERR}" -gt "10" ]
                                              then
                                               MELDUNG "m%C3%B6glicherweise Batterie des Wettermastes schwach"
                                               SAPI "Single" "set/${DP_STATION_BATTERIE}?value=1&ack=true"
                                              fi
                                           fi
                                         else
                                           iob_send
                                        fi
                                    
                                       #Reset Kommfehler
                                        if [ ! -z "$KOMFEHLER" ] && [ "$KOMFEHLER" -gt "0" ]; then
                                           let "KOMFEHLER--"
                                           if [ "$KOMFEHLER" -eq "0" ] && [ $RESET_KOMFEHLER == "true" ]; then SAPI "Single" "set/${DP_KOMFEHLER}?value=false&ack=true"; fi
                                        fi
                                    
                                    
                                      else
                                       let "KOMFEHLER++"
                                       if [ "$KOMFEHLER" -eq "10" ]; then SAPI "Single" "set/${DP_KOMFEHLER}?value=true&ack=true"; fi
                                       if [ "$KOMFEHLER" -gt "10" ]; then KOMFEHLER=10; fi  #Anzahl beschränken
                                      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)
                                            minmaxavg365d      #Min-/Max-/Avg-Aussentemperatur vor einem Jahr
                                            metsommer          #meteorologischer Sommer Durchschnittstemperatur und Regenmenge
                                            MELDUNG "Mitternachtjobs durchgef%C3%BChrt"
                                       fi
                                       if [ $(date +%H) -eq "0" ] && [ $(date +%M) -le "3" ]; then
                                           unset MIDNIGHTRUN
                                           if [ $(date +%Z) == "CEST" ]; then ZULU=22; else ZULU=23; fi
                                       fi
                                    
                                    
                                    
                                      #15-Minutenjobs: Wetterprognose; min/max Aussentemperatur der letzten 24h + heute
                                       DO_IT=$(date +%M)
                                       DO_IT=${DO_IT#0}
                                       if [ $(( $DO_IT % 15 )) -eq "0" ]; then
                                         if [ $(date +%s) -ge "$TIMER_SET" ]; then wetterprognose
                                          if [ ! -z ${INFLUX_BUCKET} ]; then minmax24h; minmaxheute; fi
                                         fi
                                         do_Wetterwarnung
                                         #stündlich Lebenszeichen
                                         if [ "$(date +%H)" -ne "${ALIVE}" ]; then ALIVE=$(date +%H); MELDUNG "Skript l%C3%A4uft..."; fi
                                       fi
                                    
                                    
                                    
                                      #6-Minutenjobs: WOW, Windy
                                       if [ $(( $DO_IT % 6 )) -eq "0" ] && [ ${block_6minjobs} -le "0" ]; then
                                    
                                         #Windy
                                          if [ ${use_windy} == "true" ]; then windy_update; fi
                                         #WOW
                                          if [ ${use_wow} == "true" ]; then wow_update; fi
                                    
                                         #run_onlyonce
                                          block_6minjobs=3;
                                    
                                        else
                                         let block_6minjobs--
                                       fi
                                    
                                    
                                    
                                      #5-Minutenjobs: wetter.com; Wolkenbasis
                                       if [[ $(( $DO_IT % 5 )) -eq "0" && -z ${run_5minjobs_onlyonce} ]]; then
                                    
                                         #wetter.com / Wolkenbasis
                                         if [ ! -z ${WETTERCOM_ID} ]; then wettercom_update; fi
                                         do_wolkenbasis
                                    
                                         #Windböe max. für Stationen die keinen Wert (#21) liefern
                                         if [ ! -z ${INFLUX_BUCKET} ] && [ -z ${MESSWERTE[21]} ]; then windboeemax; fi
                                    
                                         #run only once
                                          run_5minjobs_onlyonce=true
                                    
                                        else
                                         if [ ${run_5minjobs_onlyonce} ]; then unset run_5minjobs_onlyonce; fi
                                       fi
                                    
                                    
                                    
                                       #Hitzeindex
                                         if (( $(bc -l <<< "${MESSWERTE[1]} > 20") )); then
                                           HITZEINDEX=$(round $(hitzeindex ${MESSWERTE[1]} ${MESSWERTE[5]}) 2)
                                          else
                                           HITZEINDEX=
                                         fi
                                    
                                    
                                      #openSenseMap
                                       if [ ${openSenseMap} == "true" ]; then opensensemap; fi
                                    
                                      #Wunderground
                                       if [ ${WUNDERGROUND_UPDATE} == "true" ]; then wunderground_update; fi
                                    
                                      #AWEKAS
                                       if [ ${use_awekas} == "true" ]; then awekas_update; fi
                                    
                                    
                                      #Logging eingeschaltet?
                                       if [ $logging == "true" ]; then logging; fi
                                    
                                    
                                     done
                                    ###EoF
                                    
                                    
                                    

                                    Danke

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

                                      @oliver1972
                                      @sborg meinte die Kommandozeile ./wetterstation.sh --data ausführen und die Ausgabe der Sensoren, ohne den ganzen Krismkrams darum, posten:
                                      Hier Feuchte-Sensor 1-5:

                                      ->  soilmoisture1=30&soilad1=185&soilmoisture2=55&soilad2=230&soilmoisture4=11&soilad4=114&soilmoisture5=40&soilad5=224
                                      

                                      Achja vor der Ausführung den Dienst stoppen (systemctl stop wetterstation.service)

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

                                        und wieder hat es mir nach einem Stromausfall den 0_userdata.0.Wetterstation.Regen_Tag verhaun.

                                        bei 0-Regen hat er wieder 4,089 mm geschrieben.
                                        Bring den Wert erst morgen aus der DB, da er direkt von der verkackten Station kommt.

                                        Der Wert stammt ursprünglich vom 27.6.25 (letzter Regen).

                                        vlcsnap-2025-07-02-21h46m12s081.jpg

                                        könnt ihr eine zuverlässlichere als die Froggit WH4000SE empfehlen?

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

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

                                          @sborg meinte die Kommandozeile ./wetterstation.sh --data ausführen und die Ausgabe der Sensoren, ohne den ganzen Krismkrams darum, posten:

                                          Ok, ich hoffe das sind nun die richtigen Werte...

                                          soilmoisture1=50&soilad1=240&soilmoisture2=47&soilad2=249&soilmoisture3=35&soilad3=196&soilmoisture4=46&soilad4=245&soilmoisture5=50&soilad5=260&soilmoisture6=47&soilad6=247&soilmoisture7=41&soilad7=225&soilmoisture8=38&soilad8=222&soilmoisture9=50&soilad9=250&soilmoisture10=48&soilad10=238&soilmoisture11=58&soilad11=282&soilmoisture12=52&soilad12=248&soilmoisture13=54&soilad13=257&soilmoisture14=50&soilad14=239&soilmoisture15=53&soilad15=255&soilmoisture16=56&soilad16=261
                                          

                                          Wenn ich das richtig verstehe, dann zeigt es hier, im Gegensatz zu den Werten in IoBroker, die richtigen Werte an.
                                          Aktuell in IoBroker:
                                          0f813add-e6a0-44ac-87c8-12eedcfdb69f-image.png
                                          Danke für Eure Hilfe!

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          787
                                          Online

                                          31.8k
                                          Users

                                          80.0k
                                          Topics

                                          1.3m
                                          Posts

                                          linux shell-script wetterstation wlan-wetterstation
                                          144
                                          5514
                                          3316120
                                          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