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.2k

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

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

[Linux Shell-Skript] WLAN-Wetterstation

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
linuxshell-scriptwetterstationwlan-wetterstation
5.7k Beiträge 152 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

    @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
                              • T tritor

                                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

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

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

                                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

                                Das Skript verarbeitet immer nur den letzten Tag. Außer mittels Flux selbst zu extrahieren bleibt dir wenig übrig, außer ev. die Daten mittels des Explorers vorzuselektieren, als CSV zu exportieren, um es dann in Excel auszuwerten.

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

                                1 Antwort Letzte Antwort
                                1
                                • SBorgS SBorg

                                  @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" 😉

                                  V Offline
                                  V Offline
                                  vmi
                                  schrieb am zuletzt editiert von Negalein
                                  #5526

                                  @sborg Super vielen Dank. Jetzt läuft es wieder 🙂

                                  Noch eine Frage bekomme folgende Meldungen beim debug Test ... habe aber keine DP50 Sensoren?

                                  Ist bisher nicht aufgefallen

                                  {
                                      "error": "datapoint \"0_userdata.0.Wetterstation.DP50.1.Temperatur\" not found"
                                    },
                                    {
                                      "error": "datapoint \"0_userdata.0.Wetterstation.DP50.1.Feuchtigkeit\" not found"
                                    },
                                    {
                                      "error": "datapoint \"0_userdata.0.Wetterstation.DP50.2.Temperatur\" not found"
                                    },
                                    {
                                      "error": "datapoint \"0_userdata.0.Wetterstation.DP50.2.Feuchtigkeit\" not found"
                                    },
                                    {
                                      "error": "datapoint \"0_userdata.0.Wetterstation.DP50.3.Temperatur\" not found"
                                    },
                                   {
                                      "error": "datapoint \"0_userdata.0.Wetterstation.DP50.1.Batterie\" not found"
                                    },
                                    {
                                      "error": "datapoint \"0_userdata.0.Wetterstation.DP50.2.Batterie\" not found"
                                    },
                                    {
                                      "error": "datapoint \"0_userdata.0.Wetterstation.DP50.3.Batterie\" not found"
                                    },
                                  

                                  6f4a2b0d-76c1-4128-b4df-49095a68f544-grafik.png

                                  0e038197-0ea6-4ddc-8ca9-c7147afa95c1-grafik.png

                                  Die zwei Aussentemeratur Sensoren habe ich nicht eingebunden, da nur ein DP40 unsterstützt wird, oder?

                                  Kann es ein, das der Pool Thermometer von ecowitt WN36 und die WH31 als DP50 erkannt werden?

                                  dd6a5ba5-f28d-4aca-90f0-591d4787f92f-grafik.png

                                  Hbae jetzt einfach mal die DP50 Datenpunkte angelegt und siehe da, die Daten sind da 🙂

                                  Jetzte hatte das ganze Updatethema auch noch was gutes, habe jetzt alle Thermometer im ibroker 🙂

                                  21e8d69c-2fff-4c0f-a4ef-9c67735a0817-grafik.png

                                  Vielen Dank und ein schönes Wochenende 🙂

                                  crunchipC SBorgS 2 Antworten Letzte Antwort
                                  0
                                  • SBorgS SBorg

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

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

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

                                    Kommen die Daten jetzt noch immer regelmäßig an?

                                    nein, seit Mittwoch 19 Uhr tot

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

                                    SBorgS 1 Antwort Letzte Antwort
                                    0
                                    • V vmi

                                      @sborg Super vielen Dank. Jetzt läuft es wieder 🙂

                                      Noch eine Frage bekomme folgende Meldungen beim debug Test ... habe aber keine DP50 Sensoren?

                                      Ist bisher nicht aufgefallen

                                      {
                                          "error": "datapoint \"0_userdata.0.Wetterstation.DP50.1.Temperatur\" not found"
                                        },
                                        {
                                          "error": "datapoint \"0_userdata.0.Wetterstation.DP50.1.Feuchtigkeit\" not found"
                                        },
                                        {
                                          "error": "datapoint \"0_userdata.0.Wetterstation.DP50.2.Temperatur\" not found"
                                        },
                                        {
                                          "error": "datapoint \"0_userdata.0.Wetterstation.DP50.2.Feuchtigkeit\" not found"
                                        },
                                        {
                                          "error": "datapoint \"0_userdata.0.Wetterstation.DP50.3.Temperatur\" not found"
                                        },
                                       {
                                          "error": "datapoint \"0_userdata.0.Wetterstation.DP50.1.Batterie\" not found"
                                        },
                                        {
                                          "error": "datapoint \"0_userdata.0.Wetterstation.DP50.2.Batterie\" not found"
                                        },
                                        {
                                          "error": "datapoint \"0_userdata.0.Wetterstation.DP50.3.Batterie\" not found"
                                        },
                                      

                                      6f4a2b0d-76c1-4128-b4df-49095a68f544-grafik.png

                                      0e038197-0ea6-4ddc-8ca9-c7147afa95c1-grafik.png

                                      Die zwei Aussentemeratur Sensoren habe ich nicht eingebunden, da nur ein DP40 unsterstützt wird, oder?

                                      Kann es ein, das der Pool Thermometer von ecowitt WN36 und die WH31 als DP50 erkannt werden?

                                      dd6a5ba5-f28d-4aca-90f0-591d4787f92f-grafik.png

                                      Hbae jetzt einfach mal die DP50 Datenpunkte angelegt und siehe da, die Daten sind da 🙂

                                      Jetzte hatte das ganze Updatethema auch noch was gutes, habe jetzt alle Thermometer im ibroker 🙂

                                      21e8d69c-2fff-4c0f-a4ef-9c67735a0817-grafik.png

                                      Vielen Dank und ein schönes Wochenende 🙂

                                      crunchipC Abwesend
                                      crunchipC Abwesend
                                      crunchip
                                      Forum Testing Most Active
                                      schrieb am zuletzt editiert von
                                      #5528

                                      @vmi mal so nebenbei, hast du vllt. vergessen deine Höhenmeter zu hinterlegen oder wo liegt dein Wohnort

                                      umgestiegen von Proxmox auf Unraid

                                      V 1 Antwort Letzte Antwort
                                      0
                                      • crunchipC crunchip

                                        @vmi mal so nebenbei, hast du vllt. vergessen deine Höhenmeter zu hinterlegen oder wo liegt dein Wohnort

                                        V Offline
                                        V Offline
                                        vmi
                                        schrieb am zuletzt editiert von
                                        #5529

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

                                        so nebenbei, hast du vllt. vergessen deine Höhenmeter zu hinterlegen oder wo liegt dein Wohnort

                                        warum meinst Du? 199 über dem Meer

                                        crunchipC 1 Antwort Letzte Antwort
                                        0
                                        • V vmi

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

                                          so nebenbei, hast du vllt. vergessen deine Höhenmeter zu hinterlegen oder wo liegt dein Wohnort

                                          warum meinst Du? 199 über dem Meer

                                          crunchipC Abwesend
                                          crunchipC Abwesend
                                          crunchip
                                          Forum Testing Most Active
                                          schrieb am zuletzt editiert von crunchip
                                          #5530

                                          @vmi weil dein absolut und relativ beides auf 989hPa steht.
                                          Unter Calibration bei Altitude for REL muss die Höhenangabe rein

                                          umgestiegen von Proxmox auf Unraid

                                          V 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

                                          498

                                          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