Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. [Linux Shell-Skript] WLAN-Wetterstation

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Linux Shell-Skript] WLAN-Wetterstation

    This topic has been deleted. Only users with topic management privileges can see it.
    • Boronsbruder
      Boronsbruder @Chris76e last edited by

      @chris76e

      Mai 16 19:12:51 ioBroker wetterstation.sh[967063]: /home/chris/wetterstation.conf: Zeile 67: DATUM: Kommando nicht gefunden.
      

      Du hast auf jedenfall einen Fehler in der Config.
      Ob der ursächlich für die anderen ist, kann ich aber nicht sagen

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

        Jupp 😉

        @chris76e Schau mal in deiner "conf" bei Zeile #67, da hast du wohl aus versehen die Raute gelöscht

         # Datum = .....
        

        Dann sicherheitshalber Skript stoppen systemctl stop wetterstation, kurz warten und wieder starten systemctl start wetterstation.

        Daraus könnten die vier weiteren Fehler resultieren, zumindest kommen die genau zu jeder vollen Viertelstunde und genau da wird "Minmax24h" und "...heute" berechnet. Sind die nun weg, dürfte auch alles funktionieren 😉

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

          @sborg

          habe das geändert kein Fehler mehr, aber immer noch dasselbe. Hab auch mal die DP´s gelöscht und über das Script neu anlegen lassen. Hat auch nicht geholfen.

          chris@ioBroker:~$ 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 2023-05-17 10:30:07 CEST; 45min ago
             Main PID: 628054 (wetterstation.s)
                Tasks: 5 (limit: 21048)
               Memory: 2.8M
                  CPU: 1min 28.219s
               CGroup: /system.slice/wetterstation.service
                       ├─628054 /bin/bash /home/chris/wetterstation.sh
                       ├─666172 /bin/bash /home/chris/wetterstation.sh
                       ├─666173 timeout 38 nc -nlvw 1 -p 1080
                       ├─666174 tail -1
                       └─666175 nc -nlvw 1 -p 1080
          
          Mai 17 10:30:07 ioBroker wetterstation.sh[628071]: Connection to 192.168.0.21 8087 port [tcp/*] succeeded!
          
          
          SBorg Boronsbruder 2 Replies Last reply Reply Quote 0
          • SBorg
            SBorg Forum Testing Most Active @Chris76e last edited by

            @chris76e Keine Fehler mehr ist schon mal gut. Ev. klemmt es an der Influx-Konnektivität. Kleiner Test im Installationsverzeichnis stehend:

            • sudo systemctl stop wetterstation
            • . ./wetterstation.conf
            • . ./wetterstation.sub
            • minmax24h DEBUG

            Bild 001.png

            Danach Service wieder starten systemctl start wetterstation

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

              @chris76e

              Verdammt, wegen dir ist mir jetzt aufgefallen, dass ich das selbe Problem habe....

              @SBorg
              Bei mir liegt es sowie es aussieht am https

              lvl=info msg="http: TLS handshake error from 172.17.0.1:53300: local error: tls: bad record MAC" log_id=0hrT8bdl000 service=http
              

              ich hab in der .sub bei der Influxquery den -k Parameter hinzugefügt (weil ich ein selbstsigniertes Zertifikat verwende) und schon geht es
              Zeile 1213

                      local TMP_DATA=$(curl -sk --request POST "${INFLUX_WEB}://${INFLUX_API}/api/v2/query?org=${INFLUX_ORG}" --header 'Content-Type: application/vnd.flux' \
              
              SBorg 1 Reply Last reply Reply Quote 1
              • Chris76e
                Chris76e @SBorg last edited by Chris76e

                @sborg

                Dann kommt das hier

                chris@ioBroker:~$ sudo systemctl stop wetterstation
                [sudo] Passwort für chris:
                chris@ioBroker:~$ . ./wetterstation.conf
                chris@ioBroker:~$ . ./wetterstation.sub
                chris@ioBroker:~$ minmax24h DEBUG
                Testing InfluxDB... min/max Aussentemperatur 24h: °C °C
                
                

                hier ist mal meine wetterstation.conf, eventuell ist da ein Fehler???

                ### Settings V3.0.0 -----------------------------------------------------------
                 #Debuging einschalten [true/false] / default: false / Ausgabe der Messwerte
                  debug=false
                
                 #Verhalten bei Kommunikationsfehler [true/false] / default: false / Soll der Datenpunkt automatisch resettet werden?
                  RESET_KOMFEHLER=false
                
                 #Logging einschalten [true/false] / default: false / schreibt die Datenstrings der Station in eine Datei
                  logging=false
                
                 #ioBroker-IP und Port der Simple-Restful-API [xxx.xxx.xxx.xxx:xxxxx]
                  IPP=192.168.0.21:8087
                
                 #Protokoll, ioBroker-IP und Port der Rest-API [http(s)://xxx.xxx.xxx.xxx:xxxxx] / leer lassen falls nicht benutzt
                  RESTAPI_URL=http://192.168.0.21:8093
                  RESTAPI_USER=RestAPI
                  RESTAPI_PW=xxxxx
                
                 #Protokoll der Wetterstation [1/2/9] / 1=Wunderground ; 2=Ecowitt ; 9=DNS / default: 2
                  WS_PROTOKOLL=2
                
                 #Anzahl der vorhandenen Zusatzsensoren Froggit, Ecowitt und Bresser / default: 0
                  ANZAHL_WH31=0
                  ANZAHL_WS90=0
                  ANZAHL_DP10=0
                  ANZAHL_DP35=0
                  ANZAHL_DP40=0
                  ANZAHL_DP50=0
                  ANZAHL_DP60=0
                  ANZAHL_DP70=0
                  ANZAHL_DP100=0
                  ANZAHL_DP200=0
                  ANZAHL_DP250=0
                  ANZAHL_DP300=0
                  ANZAHL_7009999=0
                
                 #Protokoll (HTTP oder HTTPS) / default: HTTP
                  WEB=HTTP
                
                 #Ignoriere Zertifikatsfehler bei der Simple-Restful-API [true/false] / default: false / nötig bei eigenen Zertifikaten
                  WEB_IGN_SSL_ERROR=false
                
                 #User-Authentifizierung falls benutzt; sonst leer lassen
                  AUTH_USER=
                  AUTH_PASS=
                
                 #Port der Wetterstation
                  WS_PORT=1080
                
                 #Pollintervall der Wetterstation in Sekunden (minimal 16 Sekunden)
                  WS_POLL=16
                
                 #Name/ID der Wetterstation
                  WS_ID=ZuHause
                
                 #wo sollen die Datenobjekte abgelegt werden
                  PRE_DP=javascript.0.Wetterstation
                
                 #InfluxDB-Konfiguration für Influx V1.x.x / ohne InfluxDB alles leer lassen
                  #IP und Port der API [xxx.xxx.xxx.xxx:xxxxx]
                   INFLUX_API=192.168.0.23:8086
                  #Bucket, Token und Organisation der InfluxDB
                   INFLUX_BUCKET=iobroker
                   INFLUX_TOKEN=6mBq1PkKwMWsHGRMS_qtSYH1e2dho2kOu_36JRr873i8FyCwcd81uieH9ZnbJ437CowkICe0837Ye_UXKGyF0w
                   INFLUX_ORG=iobroker
                
                 #letztes Regenereignis als [DATUM], [UNIX]-Timestamp oder [DIFF]erenz ("vor xx Tagen")
                 # DATUM = 28.04.2020 13:12
                 # UNIX  = 1588074964
                 # DIFF  = gerade eben / vor einer Stunde / vor 23 Stunden / vor einem Tag / vor 12 Tagen
                
                  LAST_RAIN=DIFF
                
                 #Text-Format für Datenpunkte "Sonnenschein_[Tag|Woche|Monat|Jahr]_Text"
                 # zweistellig wird ggf. mit einer führenden "0" aufgefüllt
                 # d = Tag(e) 0...n ein- und mehrstellig / h = Stunden 0...n ein- oder mehrstellig
                 # hh = Stunden zweistellig (00...23) / mm = Minuten zweistellig (00...59) / ss = Sekunden zweistellig (00...59)
                 #
                 # Beispiel: 68 Stunden, 2 Minuten und 15 Sekunden
                 #
                 # Auswahl                            | Ausgabe im Datenpunkt
                 # ----------------------------------------------------------------------------
                 # [0] = h Std. mm Min. ss Sek.       | 68 Std. 02 Min. 15 Sek.
                 # [1] = h:mm                         | 68:02
                 # [2] = d Tag/e h Std.               | 2 Tage 20 Std.
                 # [3] = d Tag/e, h Std, m Min        | 2 Tage, 20 Std, 2 Min (Anzeige Tage erst bei >0)
                
                  SONNENSCHEIN_TXTFORMAT=3
                
                
                  #Daten an Wetter.com senden (leer lassen falls nicht gewünscht)?
                   WETTERCOM_ID=
                   WETTERCOM_PW=
                
                
                 #Daten an Wunderground.com senden? [true/false] / default: false
                   #Nur nötig und sinnvoll bei WS_PROTOKOLL=9 (DNS) wenn trotzdem auch Daten weiterhin an Wunderground.com gesendet werden sollen.
                   WUNDERGROUND_UPDATE=false
                
                 #Windrichtung und -geschwindigkeit der letzten 10 Minuten anstelle aktueller Werte an
                 #windy/OpenSenseMap/wetter.com übertragen? [true/false] / default: false
                  USE_AVG_WIND=false
                
                 #Fix aktivieren bei fehlerhafter Außentemperatur [true/false] / default: false
                 #Bei unplausiblem Messwert wird kein Datenpaket an den ioB geschickt
                  FIX_AUSSENTEMP=false
                
                
                
                
                 #############################################################################################
                 ###    openSenseMap - Einstellungen (nur nötig falls openSenseMap benutzt werden soll)    ###
                 ###                                                                                       ###
                 ###    Für die Registrierung muss "openSenseMap" auf "false" eingestellt sein!            ###
                 ###    Erst wenn auch Sensoren angelegt wurden, darf auf "true" umgestellt werden!        ###
                 #############################################################################################
                
                  #openSenseMap aktivieren [true/false] / default: false
                   openSenseMap=false
                
                  #SenseBox-User
                   senseBox_USER=
                
                  #SenseBox-Password
                   senseBox_PWD=
                
                  #ID der senseBox (24-stellig)
                   senseBox_ID=
                
                  #Security-Token der Box
                   BOX_TOKEN=
                
                
                
                  ### Die restlichen Einstellungen für OpenSenseMap werden vom System generiert/benutzt ######
                  ### Änderungen sind hier nicht nötig, außer man weiß ganz genau was man tut! ###############
                
                  #Sensor-IDs (wird automatisch anhand der Sensoren erzeugt)
                   SENSEBOX_IDSENSOR=()
                
                  #Sensor-Bezeichnung (Reihenfolge muss zur Sensor-ID identisch sein!)
                   SENSEBOX_IDNAME=("Temperatur" "Luftfeuchte" "Luftdruck relativ" "Luftdruck absolut" "Taupunkt" "gefühlte Temperatur" "Sonnenstrahlung" "Windgeschwindigkeit" "Windrichtung" "UV-Index" "Regenrate")
                
                  #Messwertezuordnung (Reihenfolge muss zur Sensor-ID identisch sein!)
                   SENSEBOX_IDMESSWERT=(1 5 10 9 2 3 16 6 8 17 11)
                 #Sensorendefinitionen
                   ICONS=(osem-thermometer osem-humidity osem-barometer osem-barometer osem-thermometer osem-thermometer osem-brightness osem-particulate-matter osem-particulate-matter osem-brightness osem-umbrella)
                   UNITS=('°C' '%H' 'hPa' 'hPa' '°C' '°C' 'W/m²' 'km/h' '°' 'Index' 'mm/h')
                
                 #############################################################################################
                 ###    openSenseMap - Ende der Einstellungen    #############################################
                 #############################################################################################
                
                
                
                 #############################################################################################
                 ###    Windy - Einstellungen (nur nötig falls Windy benutzt werden soll)                  ###
                 #############################################################################################
                
                  #Windy aktivieren [true/false] / default: false
                   use_windy=false
                
                  #Windy API-Key
                   windy_APIKey=
                
                  #Station [number: 0 - 2147483647] / default: 0
                   windy_Station=
                
                  #Name der Station [Text]
                   windy_Name=
                
                  #Latitude/Breitengrad der Station
                   windy_Latitude=
                
                  #Longitude/Längengrad der Station
                   windy_Longitude=
                
                  #Elevation/Höhe ÜNN
                   windy_Elevation=
                
                  #Montagehöhe Temperatursensor über Boden
                   windy_Tempheight=
                
                  #Montagehöhe Windsensor über Boden
                   windy_Windheight=
                
                 #############################################################################################
                 ###    Windy - Ende der Einstellungen    ####################################################
                 #############################################################################################
                
                 #############################################################################################
                 ###    AWEKAS - Einstellungen (nur nötig falls AWEKAS benutzt werden soll)                ###
                 #############################################################################################
                
                  #AWEKAS aktivieren [true/false] / default: false
                   use_awekas=true
                
                  #AWEKAS Login Username und Passwort
                   AWEKAS_USER=xxxx
                   AWEKAS_PW=jxxxx
                
                 #############################################################################################
                 ###    AWEKAS - Ende der Einstellungen    ###################################################
                 #############################################################################################
                
                ###  Ende Usereinstellungen
                ###EoF
                
                
                SBorg 1 Reply Last reply Reply Quote 0
                • SBorg
                  SBorg Forum Testing Most Active @Boronsbruder last edited by

                  @boronsbruder Sehr gut 🙂
                  Das fehlt dann aber auch beim Metsommer, da wird die Influx ebenso abgefragt.

                  @Chris76e Jepp, da kommt nix. Ich gehe mal davon aus, dass dein Influx soweit in der conf korrekt ist. Deswegen auch die Frage:
                  Nutzt du ebenfalls bei Influx "https" mit einem selbst signierten Zertifikat?

                  Dann Q&D-fix auf die schnelle: im Installationsverzeichnis stehend

                   sed -i "s/curl -s --request POST/curl -sk --request POST/g" wetterstation.sub
                  

                  ausführen und den Service restarten.
                  Die Änderung pflege ich in die V3.1.0 dann ein.

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

                    @chris76e Ok, Fehler gefunden, dir fehlt das Protokoll für Influx:

                    
                     #InfluxDB-Konfiguration / ohne InfluxDB alles leer lassen
                      #Protokoll (HTTP oder HTTPS) / default: HTTP
                       INFLUX_WEB=HTTP
                      #IP und Port der API [xxx.xxx.xxx.xxx:xxxxx]
                       INFLUX_API=
                      #Bucket, Token und Organisation der InfluxDB
                       INFLUX_BUCKET=
                       INFLUX_TOKEN=
                       INFLUX_ORG=
                    

                    Füge einfach INFLUX_WEB=HTTP hinzu, neu starten und dann hoffentlich freuen 😉

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

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

                      Nutzt du ebenfalls bei Influx "https" mit einem selbst signierten Zertifikat?

                      Nicht das ich wüsste... Wo kann ich das sehen?

                      Habe das jetzt so geändert

                      
                       #InfluxDB-Konfiguration für Influx V1.x.x / ohne InfluxDB alles leer lassen
                        #IP und Port der API [xxx.xxx.xxx.xxx:xxxxx]
                         INFLUX_WEB=HTTP
                         INFLUX_API=192.168.0.23:8086
                       
                      

                      und neugestartet. jetzt mal schaun ob es funktioniert.

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

                        @sborg

                        hat sich nichts geändert, unter Heute Max und min, wird immer noch die aktuelle Temperatur geschrieben und unter 24h Max/min sowie 365t.... wird nichts geschrieben

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

                          @chris76e
                          was sagt das influx log?

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

                            @boronsbruder

                            wo finde ich den?

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

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

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

                              Nutzt du ebenfalls bei Influx "https" mit einem selbst signierten Zertifikat?

                              Nicht das ich wüsste... Wo kann ich das sehen?

                              Wie du die influx-GUI öffnest, per "http://192....:xxxx" oder "https://192....:xxxx"

                              Aber, falls es kein C&P-Fehler ist/war, prüfe mal deinen Token. Die enden auf "...==" und bei dir fehlen lt. conf die beiden =.

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

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

                                Aber, falls es kein C&P-Fehler ist/war, prüfe mal deinen Token. Die enden auf "...==" und bei dir fehlen lt. conf die beiden =.

                                Das war es 🙂

                                1.jpg

                                Jetzt fehlen mir nur noch die Daten für ...365t...

                                Wann sollten die kommen? Logge seit Anfang Mai 2022.

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

                                  @chris76e
                                  Kommen um ca. Mitternacht

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

                                    @SBorg

                                    keine Ahnung was da los war, aber seit heute Punkt Mitternacht wurde nichts mehr übertragen.
                                    Erst ein Restart des Service brachte sie wieder zum laufen.

                                    Gibt es wo ein Log, das man anschauen könnte?

                                    3f32138a-4acc-4c75-a866-e7bddd01d870-image.png

                                    Chris76e Quarkmax 2 Replies Last reply Reply Quote 0
                                    • Chris76e
                                      Chris76e @Negalein last edited by Chris76e

                                      @negalein

                                      gerade aufgefallen, bei mir genauso.....

                                      Screenshot 2023-06-02 214830.jpg

                                      Negalein 1 Reply Last reply Reply Quote 0
                                      • Quarkmax
                                        Quarkmax @Negalein last edited by

                                        @negalein

                                        dito

                                        Jun  2 00:00:00 iobroker wetterstation.sh[133]: /home/pi/wetterstation/wetterstation.sub: line 583: [: : integer expression expected
                                        Jun  2 00:00:00 iobroker wetterstation.sh[133]: /home/pi/wetterstation/wetterstation.sub: line 584: [: : integer expression expected
                                        Jun  2 00:00:00 iobroker wetterstation.sh[133]: /home/pi/wetterstation/wetterstation.sub: line 585: [: : integer expression expected
                                        Jun  2 00:00:00 iobroker wetterstation.sh[133]: /home/pi/wetterstation/wetterstation.sub: line 586: [: : integer expression expected
                                        Jun  2 00:00:00 iobroker wetterstation.sh[133]: /home/pi/wetterstation/wetterstation.sub: line 587: [: : integer expression expected
                                        Jun  2 00:00:00 iobroker wetterstation.sh[956120]: (standard_in) 1: syntax error
                                        Jun  2 00:00:00 iobroker wetterstation.sh[956123]: (standard_in) 1: syntax error
                                        Jun  2 00:00:00 iobroker wetterstation.sh[133]: /home/pi/wetterstation/wetterstation.sub: line 1951: [: : integer expression expected
                                        Jun  2 00:00:00 iobroker wetterstation.sh[956134]: (standard_in) 1: syntax error
                                        Jun  2 00:00:01 iobroker wetterstation.sh[956146]: (standard_in) 1: syntax error
                                        Jun  2 00:00:01 iobroker wetterstation.sh[956148]: (standard_in) 12: syntax error
                                        Jun  2 00:00:01 iobroker wetterstation.sh[956152]: (standard_in) 1: syntax error
                                        

                                        In den betreffenden 500er Zeilen steht

                                        	#Wetter erfassen und bestimmen
                                        	 if [ "$LUFTDRUCK" -le "980" ]; then WETTER_AKTUELL="stürmisch, Regen"; fi
                                        	 if [ "$LUFTDRUCK" -gt "980" ] && [ "$LUFTDRUCK" -le "1000" ]; then WETTER_AKTUELL="regnerisch"; fi
                                        	 if [ "$LUFTDRUCK" -gt "1000" ] && [ "$LUFTDRUCK" -le "1020" ]; then WETTER_AKTUELL="wechselhaft"; fi
                                        	 if [ "$LUFTDRUCK" -gt "1020" ] && [ "$LUFTDRUCK" -le "1040" ]; then WETTER_AKTUELL="sonnig"; fi
                                        	 if [ "$LUFTDRUCK" -gt "1040" ]; then WETTER_AKTUELL="trocken, Gewitter"; fi
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • Negalein
                                          Negalein Global Moderator @Chris76e last edited by Negalein

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

                                          gerade aufgefallen, bei mir genauso.....

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

                                          dito

                                          dann werden wir mal auf unseren @SBorg warten 🙂

                                          PS: wenn ihr Awekas aktiviert habt, müsst ihr nun vermutlich (wegen des mehrstündigen Ausfall) wieder in Awekas die Sensoren aktivieren.

                                          Hier habt ihr vermutlich gelbe Schalter (temporär inaktiv).
                                          184b05cc-e555-4c19-a352-cee25a5d1d21-image.png

                                          Chris76e 2 Replies Last reply Reply Quote 0
                                          • Chris76e
                                            Chris76e @Negalein last edited by

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

                                            PS: wenn ihr Awekas aktiviert habt, müsst ihr nun vermutlich (wegen des mehrstündigen Ausfall) wieder in Awekas die Sensoren aktivieren.
                                            Hier habt ihr vermutlich gelbe Schalter (temporär inaktiv).

                                            Danke für die Info, hätte ich sonst vergessen 👍

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            899
                                            Online

                                            31.8k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            linux shell-script wetterstation wlan-wetterstation
                                            143
                                            5478
                                            3305986
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo