Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. [Linux Shell-Skript] WLAN-Wetterstation

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.4k

[Linux Shell-Skript] WLAN-Wetterstation

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
linuxshell-scriptwetterstationwlan-wetterstation
5.7k Beiträge 153 Kommentatoren 3.8m Aufrufe 134 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • SBorgS SBorg

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

    Ich kann dir nächste Woche sagen, ob eine ECOWITT WS3900 funktioniert...

    Sollte eigentlich ;)
    Dann brauchst du das DNS-Gedönse auch nicht.

    Mike77M Offline
    Mike77M Offline
    Mike77
    schrieb am zuletzt editiert von
    #5505

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

    Danke für dein Skript

    Mike

    SBorgS 1 Antwort Letzte Antwort
    1
    • NegaleinN Negalein

      @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

      SBorgS Offline
      SBorgS Offline
      SBorg
      Forum Testing Most Active
      schrieb am zuletzt editiert von SBorg
      #5506

      @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

      LG SBorg ( SBorg auf GitHub)
      Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

      NegaleinN 1 Antwort Letzte Antwort
      0
      • S Shakira1972

        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

        SBorgS Offline
        SBorgS Offline
        SBorg
        Forum Testing Most Active
        schrieb am zuletzt editiert von
        #5507

        @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 ;)

        LG SBorg ( SBorg auf GitHub)
        Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

        S 1 Antwort Letzte Antwort
        0
        • Mike77M Mike77

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

          Danke für dein Skript

          Mike

          SBorgS Offline
          SBorgS Offline
          SBorg
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #5508

          @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 :)

          LG SBorg ( SBorg auf GitHub)
          Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

          H 1 Antwort Letzte Antwort
          0
          • SBorgS SBorg

            @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 Online
            H Online
            hoschi2007
            schrieb am zuletzt editiert von
            #5509

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

            SBorgS 1 Antwort Letzte Antwort
            1
            • SBorgS 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

              NegaleinN Offline
              NegaleinN Offline
              Negalein
              Global Moderator
              schrieb am zuletzt editiert von Negalein
              #5510

              @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

              ° Node.js: 20.17.0 NPM: 10.8.2
              ° Proxmox, Ubuntu 22.04.3 LTS
              ° Fixer ---> iob fix

              SBorgS 1 Antwort Letzte Antwort
              0
              • SBorgS SBorg

                @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 ;)

                S Offline
                S Offline
                Shakira1972
                schrieb am zuletzt editiert von
                #5511

                @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

                BoronsbruderB SBorgS 2 Antworten Letzte Antwort
                0
                • S Shakira1972

                  @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

                  BoronsbruderB Offline
                  BoronsbruderB Offline
                  Boronsbruder
                  schrieb am zuletzt editiert von Boronsbruder
                  #5512

                  @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)

                  S 1 Antwort Letzte Antwort
                  0
                  • NegaleinN Offline
                    NegaleinN Offline
                    Negalein
                    Global Moderator
                    schrieb am zuletzt editiert von Negalein
                    #5513

                    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?

                    ° Node.js: 20.17.0 NPM: 10.8.2
                    ° Proxmox, Ubuntu 22.04.3 LTS
                    ° Fixer ---> iob fix

                    BoronsbruderB 1 Antwort Letzte Antwort
                    0
                    • BoronsbruderB 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)

                      S Offline
                      S Offline
                      Shakira1972
                      schrieb am zuletzt editiert von
                      #5514

                      @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!

                      S 1 Antwort Letzte Antwort
                      0
                      • NegaleinN Offline
                        NegaleinN Offline
                        Negalein
                        Global Moderator
                        schrieb am zuletzt editiert von
                        #5515

                        @SBorg

                        heute hatte ich einen error der wetterstation.sh.

                        Nach restart ging es wieder.

                        woher ist der gekommen?

                        dietpi@DietPi:~$ sudo systemctl status wetterstation
                        ● wetterstation.service - Service für ioBroker Wetterstation
                           Loaded: loaded (/etc/systemd/system/wetterstation.service; enabled; vendor preset: enabled)
                           Active: active (running) since Wed 2025-07-02 08:19:05 CEST; 1 day 23h ago
                         Main PID: 280 (wetterstation.s)
                            Tasks: 5 (limit: 264)
                           Memory: 6.9M
                           CGroup: /system.slice/wetterstation.service
                                   ├─  280 /bin/bash /home/iobroker/wetterstation.sh
                                   ├─27383 /bin/bash /home/iobroker/wetterstation.sh
                                   ├─27384 timeout 38 nc -nlvw 1 -p 1080
                                   ├─27385 tail -1
                                   └─27386 nc -nlvw 1 -p 1080
                        
                        Jul 03 21:25:09 DietPi wetterstation.sh[280]: (standard_in) 12: syntax error
                        Jul 03 21:25:09 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error
                        Jul 03 21:25:41 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error
                        Jul 03 21:25:41 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error
                        Jul 03 21:26:11 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error
                        Jul 03 21:26:11 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error
                        Jul 03 21:26:42 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error
                        Jul 03 21:26:43 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error
                        Jul 03 21:27:13 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error
                        Jul 03 21:27:13 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error
                        

                        ° Node.js: 20.17.0 NPM: 10.8.2
                        ° Proxmox, Ubuntu 22.04.3 LTS
                        ° Fixer ---> iob fix

                        SBorgS 1 Antwort Letzte Antwort
                        0
                        • NegaleinN 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?

                          BoronsbruderB Offline
                          BoronsbruderB Offline
                          Boronsbruder
                          schrieb am zuletzt editiert von
                          #5516

                          @negalein
                          Reines Gateway und lieber dazu ein Tablet mit einer schönen Vis oder Grafana ;)
                          Ich hab hier das GW2000 (Lan und Wifi) und ein GW1100 (nur Wlan - ist nur für meine Bewässerung) am laufen.
                          Zur Stabilität bei Stromausfall kann ich nix sagen da das GW2000 über ein POE-Splitter am Switch mit USV hängt.

                          1 Antwort Letzte Antwort
                          0
                          • T Offline
                            T Offline
                            tritor
                            schrieb am zuletzt editiert von tritor
                            #5517

                            Hallo,

                            Ich habe in der Statistik für einige Monate keine Daten (typo bei InfluxDB Namen).

                            Gibt es einen einfachen Weg an die Daten ranzukommem, oder muss ich die manuell aus der InfluxDB extrahieren?

                            Grüsse

                            Gernot

                            Host: i9 server Proxmox , Debian 12.0 for ioBroker
                            ioBroker: 7.7.19, Node.js: 22.21.1, NPM: 10.9.3, JS-controller: 7.0.7
                            Wetterstation: HP1000SEPro V1.9.0 Easeweather V1.7.0
                            Grafana 12.0.2 / InfluxDB 2.7.11

                            SBorgS 1 Antwort Letzte Antwort
                            0
                            • V Offline
                              V Offline
                              vmi
                              schrieb am zuletzt editiert von Negalein
                              #5518

                              Hallo zusammen,

                              habe das Update auf die V3.5.1 ausgeführt, seit dem läuft leider nichts mehr :(

                              Wenn ich ./.etterstation.sh -debug auisführe erhalte ich einen "endlos Liste" mit Fehlern ... bis ich es abbreche

                              admin@raspberrypi:~/wetterstation $ admin@raspberrypi:~/wetterstation $ ./wetterstation.sh --debug
                              /home/admin/wetterstation/wetterstation.sub: Zeile 3: $'\r': Kommando nicht gefunden.
                              /home/admin/wetterstation/wetterstation.sub: Zeile 4: $'\r': Kommando nicht gefunden.
                              /home/admin/wetterstation/wetterstation.sub: Zeile 93: $'\r': Kommando nicht gefunden.
                              /home/admin/wetterstation/wetterstation.sub: Zeile 94: $'\r': Kommando nicht gefunden.
                              /home/admin/wetterstation/wetterstation.sub: Zeile 98: $'\r': Kommando nicht gefunden.
                              /home/admin/wetterstation/wetterstation.sub: Zeile 99: $'\r': Kommando nicht gefunden.
                              /home/admin/wetterstation/wetterstation.sub: Zeile 107: $'\r': Kommando nicht gefunden.
                              /home/admin/wetterstation/wetterstation.sub: Zeile 109: Syntaxfehler beim unerwarteten Symbol »$'{\r'«
                              'home/admin/wetterstation/wetterstation.sub: Zeile 109: `debuging() {
                              ./wetterstation.sh: Zeile 194: version: Kommando nicht gefunden.
                              ./wetterstation.sh: Zeile 230: setup: Kommando nicht gefunden.
                              ./wetterstation.sh: Zeile 231: minmaxheute: Kommando nicht gefunden.
                              ./wetterstation.sh: Zeile 239: get_DATA: Kommando nicht gefunden.
                              ./wetterstation.sh: Zeile 387: debuging: Kommando nicht gefunden.
                              (standard_in) 1: syntax error
                              ./wetterstation.sh: Zeile 239: get_DATA: Kommando nicht gefunden.
                              ./wetterstation.sh: Zeile 387: debuging: Kommando nicht gefunden.
                              (standard_in) 1: syntax error
                              

                              Woran könnte das liegen?

                              Ordener Wetterstationb sieht aus wie immer:
                              11cdfce8-2b75-490b-9d38-f0ea55d1d687-grafik.png

                              mit ./wetterstation.sh --data erhalte ich:

                              admin@raspberrypi:~/wetterstation $ ./wetterstation.sh --data
                              /home/admin/wetterstation/wetterstation.sub: Zeile 3: $'\r': Kommando nicht gefunden.
                              /home/admin/wetterstation/wetterstation.sub: Zeile 4: $'\r': Kommando nicht gefunden.
                              /home/admin/wetterstation/wetterstation.sub: Zeile 93: $'\r': Kommando nicht gefunden.
                              /home/admin/wetterstation/wetterstation.sub: Zeile 94: $'\r': Kommando nicht gefunden.
                              /home/admin/wetterstation/wetterstation.sub: Zeile 98: $'\r': Kommando nicht gefunden.
                              /home/admin/wetterstation/wetterstation.sub: Zeile 99: $'\r': Kommando nicht gefunden.
                              /home/admin/wetterstation/wetterstation.sub: Zeile 107: $'\r': Kommando nicht gefunden.
                              /home/admin/wetterstation/wetterstation.sub: Zeile 109: Syntaxfehler beim unerwarteten Symbol »$'{\r'«
                              'home/admin/wetterstation/wetterstation.sub: Zeile 109: `debuging() {
                              ./wetterstation.sh: Zeile 212: setup: Kommando nicht gefunden.
                              ./wetterstation.sh: Zeile 213: ws_data: Kommando nicht gefunden.
                              

                              Hoffe Ihr könnt mir helfen.
                              Danke

                              SBorgS 1 Antwort Letzte Antwort
                              0
                              • V vmi

                                Hallo zusammen,

                                habe das Update auf die V3.5.1 ausgeführt, seit dem läuft leider nichts mehr :(

                                Wenn ich ./.etterstation.sh -debug auisführe erhalte ich einen "endlos Liste" mit Fehlern ... bis ich es abbreche

                                admin@raspberrypi:~/wetterstation $ admin@raspberrypi:~/wetterstation $ ./wetterstation.sh --debug
                                /home/admin/wetterstation/wetterstation.sub: Zeile 3: $'\r': Kommando nicht gefunden.
                                /home/admin/wetterstation/wetterstation.sub: Zeile 4: $'\r': Kommando nicht gefunden.
                                /home/admin/wetterstation/wetterstation.sub: Zeile 93: $'\r': Kommando nicht gefunden.
                                /home/admin/wetterstation/wetterstation.sub: Zeile 94: $'\r': Kommando nicht gefunden.
                                /home/admin/wetterstation/wetterstation.sub: Zeile 98: $'\r': Kommando nicht gefunden.
                                /home/admin/wetterstation/wetterstation.sub: Zeile 99: $'\r': Kommando nicht gefunden.
                                /home/admin/wetterstation/wetterstation.sub: Zeile 107: $'\r': Kommando nicht gefunden.
                                /home/admin/wetterstation/wetterstation.sub: Zeile 109: Syntaxfehler beim unerwarteten Symbol »$'{\r'«
                                'home/admin/wetterstation/wetterstation.sub: Zeile 109: `debuging() {
                                ./wetterstation.sh: Zeile 194: version: Kommando nicht gefunden.
                                ./wetterstation.sh: Zeile 230: setup: Kommando nicht gefunden.
                                ./wetterstation.sh: Zeile 231: minmaxheute: Kommando nicht gefunden.
                                ./wetterstation.sh: Zeile 239: get_DATA: Kommando nicht gefunden.
                                ./wetterstation.sh: Zeile 387: debuging: Kommando nicht gefunden.
                                (standard_in) 1: syntax error
                                ./wetterstation.sh: Zeile 239: get_DATA: Kommando nicht gefunden.
                                ./wetterstation.sh: Zeile 387: debuging: Kommando nicht gefunden.
                                (standard_in) 1: syntax error
                                

                                Woran könnte das liegen?

                                Ordener Wetterstationb sieht aus wie immer:
                                11cdfce8-2b75-490b-9d38-f0ea55d1d687-grafik.png

                                mit ./wetterstation.sh --data erhalte ich:

                                admin@raspberrypi:~/wetterstation $ ./wetterstation.sh --data
                                /home/admin/wetterstation/wetterstation.sub: Zeile 3: $'\r': Kommando nicht gefunden.
                                /home/admin/wetterstation/wetterstation.sub: Zeile 4: $'\r': Kommando nicht gefunden.
                                /home/admin/wetterstation/wetterstation.sub: Zeile 93: $'\r': Kommando nicht gefunden.
                                /home/admin/wetterstation/wetterstation.sub: Zeile 94: $'\r': Kommando nicht gefunden.
                                /home/admin/wetterstation/wetterstation.sub: Zeile 98: $'\r': Kommando nicht gefunden.
                                /home/admin/wetterstation/wetterstation.sub: Zeile 99: $'\r': Kommando nicht gefunden.
                                /home/admin/wetterstation/wetterstation.sub: Zeile 107: $'\r': Kommando nicht gefunden.
                                /home/admin/wetterstation/wetterstation.sub: Zeile 109: Syntaxfehler beim unerwarteten Symbol »$'{\r'«
                                'home/admin/wetterstation/wetterstation.sub: Zeile 109: `debuging() {
                                ./wetterstation.sh: Zeile 212: setup: Kommando nicht gefunden.
                                ./wetterstation.sh: Zeile 213: ws_data: Kommando nicht gefunden.
                                

                                Hoffe Ihr könnt mir helfen.
                                Danke

                                SBorgS Offline
                                SBorgS Offline
                                SBorg
                                Forum Testing Most Active
                                schrieb am zuletzt editiert von
                                #5519

                                @vmi
                                Lade dir von Github nochmals die wetterstation.sub herunter und ersetze sie. Nach dem Start des Services sollte es wieder laufen.

                                Problem: die *.sub lag mal wieder im DOS-Format (CR + LF) auf GitHub. Linux mag aber kein "CR" ;)

                                LG SBorg ( SBorg auf GitHub)
                                Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                                V 1 Antwort Letzte Antwort
                                0
                                • H hoschi2007

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

                                  SBorgS Offline
                                  SBorgS Offline
                                  SBorg
                                  Forum Testing Most Active
                                  schrieb am zuletzt editiert von
                                  #5520

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

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

                                  Danke, nehme ich mit auf :)

                                  LG SBorg ( SBorg auf GitHub)
                                  Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                                  1 Antwort Letzte Antwort
                                  0
                                  • NegaleinN 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

                                    SBorgS Offline
                                    SBorgS Offline
                                    SBorg
                                    Forum Testing Most Active
                                    schrieb am zuletzt editiert von
                                    #5521

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

                                    jetzt kommt nur noch das

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

                                    Keine direkte Fehlermeldung mehr. Kommen die Daten jetzt noch immer regelmäßig an?

                                    LG SBorg ( SBorg auf GitHub)
                                    Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                                    NegaleinN 1 Antwort Letzte Antwort
                                    0
                                    • SBorgS Offline
                                      SBorgS Offline
                                      SBorg
                                      Forum Testing Most Active
                                      schrieb am zuletzt editiert von
                                      #5522

                                      Da ich einen gedanklichen Fehler bei der V3.5.0 bei der Erhöhung der Sensoranzahl auf 16 Stück beim DP100 hatte:

                                      Neues Bugfix-Release des Wetterstation WLAN-Skriptes auf GitHub V3.5.1

                                      • ~ Fix falsche Messwerte bei DP100 Sensor Nr.1 wenn mehr als 10 Sensoren vorhanden sind

                                      Wie immer zu finden im GitHub


                                      Update-Routine von Vorgängerversion:

                                      • aktuellen WS-Updater nutzen

                                        wget -O ws_updater.sh https://raw.githubusercontent.com/SBorg2014/WLAN-Wetterstation/master/ws_updater.sh
                                      • ./ws_updater.sh im Installationsverzeichnis ausführen
                                      • Menüpunkt "4" wählen und die Fragen beantworten

                                      Update enthält lediglich einen Fix für mehr als 9 Stück DP100 Sensoren, ist also optional.

                                      LG SBorg ( SBorg auf GitHub)
                                      Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                                      BoronsbruderB 1 Antwort Letzte Antwort
                                      0
                                      • S Shakira1972

                                        @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

                                        SBorgS Offline
                                        SBorgS Offline
                                        SBorg
                                        Forum Testing Most Active
                                        schrieb am zuletzt editiert von
                                        #5523

                                        @shakira1972
                                        siehe Update V3.5.1
                                        Zumindest im Test hat es nun funktioniert. Ist aber immer so eine Sache ohne einen einzigen Sensor ;)

                                        Problem war, ohne zu sehr programmiertechnisch zu werden, dass zweistellige Sensoren in der Zuweisung immer auf Sensor #1 aufliefen. #10 bis #15 hast du garnicht bemerkt, es wurde immer nur der höchste (bei dir #16) in #1 angezeigt.

                                        LG SBorg ( SBorg auf GitHub)
                                        Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                                        1 Antwort Letzte Antwort
                                        0
                                        • NegaleinN Negalein

                                          @SBorg

                                          heute hatte ich einen error der wetterstation.sh.

                                          Nach restart ging es wieder.

                                          woher ist der gekommen?

                                          dietpi@DietPi:~$ sudo systemctl status wetterstation
                                          ● wetterstation.service - Service für ioBroker Wetterstation
                                             Loaded: loaded (/etc/systemd/system/wetterstation.service; enabled; vendor preset: enabled)
                                             Active: active (running) since Wed 2025-07-02 08:19:05 CEST; 1 day 23h ago
                                           Main PID: 280 (wetterstation.s)
                                              Tasks: 5 (limit: 264)
                                             Memory: 6.9M
                                             CGroup: /system.slice/wetterstation.service
                                                     ├─  280 /bin/bash /home/iobroker/wetterstation.sh
                                                     ├─27383 /bin/bash /home/iobroker/wetterstation.sh
                                                     ├─27384 timeout 38 nc -nlvw 1 -p 1080
                                                     ├─27385 tail -1
                                                     └─27386 nc -nlvw 1 -p 1080
                                          
                                          Jul 03 21:25:09 DietPi wetterstation.sh[280]: (standard_in) 12: syntax error
                                          Jul 03 21:25:09 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error
                                          Jul 03 21:25:41 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error
                                          Jul 03 21:25:41 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error
                                          Jul 03 21:26:11 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error
                                          Jul 03 21:26:11 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error
                                          Jul 03 21:26:42 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error
                                          Jul 03 21:26:43 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error
                                          Jul 03 21:27:13 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error
                                          Jul 03 21:27:13 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error
                                          
                                          SBorgS Offline
                                          SBorgS Offline
                                          SBorg
                                          Forum Testing Most Active
                                          schrieb am zuletzt editiert von
                                          #5524

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

                                          @SBorg

                                          heute hatte ich einen error der wetterstation.sh.

                                          Nach restart ging es wieder.

                                          woher ist der gekommen?

                                          Der Fehler sagt so leider nichts aus, aber das passiert immer wenn ein Wert nur "NULL" ist. Es sind für ca. 2 Minuten 5 Datenpakete hintereinander. Mast --> Display // Display --> WLAN // kurzfristiges Übertragungsproblem (zerstückeltes Datenpaket) oder Problem mit dem Mast/Display.


                                          Ich bin mit Ecowitt (falls du überhaupt noch ein Display willst, ich würde es eher wie von @Boronsbruder vorgeschlagen lösen) sehr zufrieden. Läuft seit 5 Jahren 24/7 ohne jegliches Problem.

                                          LG SBorg ( SBorg auf GitHub)
                                          Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          730

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe