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

[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:

    Passt das?

    ja, zu der Zeit war es ca. 15:14 MEZ

    Thomas BraunT Online
    Thomas BraunT Online
    Thomas Braun
    Most Active
    schrieb am zuletzt editiert von
    #5493

    @negalein

    Ich vermute, einer der beteiligten hosts hat eine falsche Zeitzone.

    Linux-Werkzeugkasten:
    https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
    NodeJS Fixer Skript:
    https://forum.iobroker.net/topic/68035/iob-node-fix-skript
    iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

    NegaleinN 1 Antwort Letzte Antwort
    0
    • Thomas BraunT Thomas Braun

      @negalein

      Ich vermute, einer der beteiligten hosts hat eine falsche Zeitzone.

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

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

      Ich vermute, einer der beteiligten hosts hat eine falsche Zeitzone.

      ioB
      Proxmox
      Wetter

      wie überprüf ich das?

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

      Thomas BraunT 1 Antwort Letzte Antwort
      0
      • NegaleinN Negalein

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

        Ich vermute, einer der beteiligten hosts hat eine falsche Zeitzone.

        ioB
        Proxmox
        Wetter

        wie überprüf ich das?

        Thomas BraunT Online
        Thomas BraunT Online
        Thomas Braun
        Most Active
        schrieb am zuletzt editiert von
        #5495

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

        wie überprüf ich das?

        Kommt auf das System an. Ich check es meist mit

        timedatectl
        

        Linux-Werkzeugkasten:
        https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
        NodeJS Fixer Skript:
        https://forum.iobroker.net/topic/68035/iob-node-fix-skript
        iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

        NegaleinN 1 Antwort Letzte Antwort
        0
        • Thomas BraunT Thomas Braun

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

          wie überprüf ich das?

          Kommt auf das System an. Ich check es meist mit

          timedatectl
          
          NegaleinN Offline
          NegaleinN Offline
          Negalein
          Global Moderator
          schrieb am zuletzt editiert von
          #5496

          @thomas-braun

          ioB

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

          Proxmox

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

          Wetter

          kennt er nicht

          dietpi@DietPi:~$ timedatectl
          Failed to create bus connection: Datei oder Verzeichnis nicht gefunden
          

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

          Thomas BraunT 1 Antwort Letzte Antwort
          0
          • NegaleinN Negalein

            @thomas-braun

            ioB

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

            Proxmox

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

            Wetter

            kennt er nicht

            dietpi@DietPi:~$ timedatectl
            Failed to create bus connection: Datei oder Verzeichnis nicht gefunden
            
            Thomas BraunT Online
            Thomas BraunT Online
            Thomas Braun
            Most Active
            schrieb am zuletzt editiert von Thomas Braun
            #5497

            @negalein

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

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

            Hab ich jetzt für dich ergoogelt.

            Linux-Werkzeugkasten:
            https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
            NodeJS Fixer Skript:
            https://forum.iobroker.net/topic/68035/iob-node-fix-skript
            iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

            NegaleinN 1 Antwort Letzte Antwort
            0
            • Thomas BraunT Thomas Braun

              @negalein

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

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

              Hab ich jetzt für dich ergoogelt.

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

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

              Siehe

              das ist passend

              c5b1dfdd-e0c5-4134-9de2-5d65b99733e9-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
              • 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 Offline
                  wendy2702W Offline
                  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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          639

                                          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