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

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

Community Forum

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

NEWS

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

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

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

[Linux Shell-Skript] WLAN-Wetterstation

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

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

    Siehe

    das ist passend

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

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

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

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

    NegaleinN 1 Antwort Letzte Antwort
    0
    • wendy2702W Online
      wendy2702W Online
      wendy2702
      schrieb am zuletzt editiert von
      #5500

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

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

      Vielleicht hat ja jemand von hier eine Idee dazu.

      Danke und schönen Sonntag

      Bitte keine Fragen per PN, die gehören ins Forum!

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      1 Antwort Letzte Antwort
      0
      • SBorgS SBorg

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

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

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

        Stimmt die Uhrzeit vom Display/Gateway?

        Ja, die stimmt genau

        ° 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

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

          Stimmt die Uhrzeit vom Display/Gateway?

          Ja, die stimmt genau

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

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

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

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

          NegaleinN 1 Antwort Letzte Antwort
          0
          • SBorgS SBorg

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

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

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

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

            Das sollte dann dein aktuelles Datum und Uhrzeit sein.

            ja, das passt +- ca. 30 Sek.

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

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

            SBorgS 1 Antwort Letzte Antwort
            0
            • SBorgS SBorg

              @oliver1972
              Hi,
              Gewissensfrage: Hast du im WiKi nachgesehen? Ich frage nur deshalb, ob es ev. nicht verständlich genug ist ;)
              Falls nicht, auch nicht schlimm: https://github.com/SBorg2014/WLAN-Wetterstation/wiki/Neue-Sensoren-nachträglich-hinzufügen
              Ansonsten auch gerne noch mal nachfragen, oder ich muss es dort ggf. umformulieren.

              Aber andere Frage, ist der DP50 nicht ein reiner Temperatur-/Feuchtesensor? Die 16 Sensoren werden meines Wissens aktuell(er Firmware) nur bei den Bodenfeuchtesensoren und den neuen "smarten API-Sensoren" unterstützt?

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

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

              SBorgS 1 Antwort Letzte Antwort
              0
              • SBorgS SBorg

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

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

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

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

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

                Danke für dein Skript

                Mike

                SBorgS 1 Antwort Letzte Antwort
                1
                • NegaleinN Negalein

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

                  Das sollte dann dein aktuelles Datum und Uhrzeit sein.

                  ja, das passt +- ca. 30 Sek.

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

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

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

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

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

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

                  mit

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

                  Service restarten systemctl restart wetterstation

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

                  NegaleinN 1 Antwort Letzte Antwort
                  0
                  • S Shakira1972

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

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

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

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

                    S 1 Antwort Letzte Antwort
                    0
                    • Mike77M Mike77

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

                      Danke für dein Skript

                      Mike

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

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

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

                      Danke für dein Skript

                      Mike

                      Immer gerne und nehme ich mit in die Liste auf :)

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

                      H 1 Antwort Letzte Antwort
                      0
                      • SBorgS SBorg

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

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

                        Danke für dein Skript

                        Mike

                        Immer gerne und nehme ich mit in die Liste auf :)

                        H Online
                        H Online
                        hoschi2007
                        schrieb am zuletzt editiert von
                        #5509

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

                        SBorgS 1 Antwort Letzte Antwort
                        1
                        • SBorgS SBorg

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

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

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

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

                          mit

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

                          Service restarten systemctl restart wetterstation

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

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

                          mit

                          jetzt kommt nur noch das

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

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

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

                          SBorgS 1 Antwort Letzte Antwort
                          0
                          • SBorgS SBorg

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

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

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

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

                            Danke

                            BoronsbruderB SBorgS 2 Antworten Letzte Antwort
                            0
                            • S Shakira1972

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

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

                              Danke

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

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

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

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

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

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

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

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

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

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

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

                                BoronsbruderB 1 Antwort Letzte Antwort
                                0
                                • BoronsbruderB Boronsbruder

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

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

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

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

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

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

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

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

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

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

                                    @SBorg

                                    heute hatte ich einen error der wetterstation.sh.

                                    Nach restart ging es wieder.

                                    woher ist der gekommen?

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

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

                                    SBorgS 1 Antwort Letzte Antwort
                                    0
                                    • NegaleinN Negalein

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

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

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

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

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

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

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

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

                                        Hallo,

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

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

                                        Grüsse

                                        Gernot

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

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

                                          Hallo zusammen,

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

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

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

                                          Woran könnte das liegen?

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

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

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

                                          Hoffe Ihr könnt mir helfen.
                                          Danke

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          716

                                          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