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

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Linux Shell-Skript] WLAN-Wetterstation

    This topic has been deleted. Only users with topic management privileges can see it.
    • SBorg
      SBorg Forum Testing Most Active @Chillmaster last edited by

      @chillmaster
      Danke für das Feedback und schön dass es wieder läuft 🙂

      Deswegen hatte ich unter anderem die Bucketnamen etc. in Grafana in Variablen gepackt. Ich habe schon mal bei mehr als 50 Panels die geändert... Dank der zentralen Variablen ist dies nun ratz-fatz erledigt.
      Ich kann auch nur zu Aliasen im ioB raten. Macht zwar einmalig etwas mehr Arbeit, aber wenn ein Gerät ausfällt dann alle Skripte/Blockys/Flows/VIS/Bindings usw. ändern zu müssen...

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

        @sborg
        Hi, meine Wetterstation läuft seit ein paar Tagen nicht. Also es werden keine Daten in Iob geschrieben.
        Zum System: UnifiPro-4 , Iob läuft unter Proxmox, DNS AdGuard auch Proxmox.

        Hier mal ein Auszug aus dem Log:


        WLAN-Wetterstation V3.2.0 - (c)2019-2023 by SBorg
        Config-Version: V3.2.0
        Sub-Version : V3.2.0

        'bc' installiert: []
        'jq' installiert: []

        'dc' installiert: []

        [sudo] Passwort für michael:
        'nc' in der Openbsd-Variante installiert: []
        'netcat' in Openbsd-Variante aktiv, alles korrekt []

        Connection to 192.168.1.39 8087 port [tcp/*] succeeded!

        Messwerteblock:

        Nicht alle Werte werden unterstÌtzt (abhÀngig vom Modell der Wetterstation und dem verwendeten Protokoll)!

        Temperatur Innen : °C
        Temperatur Aussen : °C
        Taupunkt : °C
        GefÌhlte Temperatur : °C
        Luftfeuchte Innen : %
        Luftfeuchte Aussen : %
        Windgeschwindigkeit : km/h
        Windgeschwindigkeit 10min : km/h
        Windböengeschwindigkeit : km/h
        Windböe max. : km/h
        Windrichtung : °
        Windrichtung :
        Windrichtung 10min : °
        Luftdruck absolut : hPa
        Luftdruck relativ : hPa
        Regenrate : mm/h
        Regenstatus :
        Regen seit Regenbeginn : mm
        Regen Stunde : mm
        Regen Tag : mm
        Regen Woche : mm
        Regen Monat : mm
        Regen Jahr : mm
        Regen Gesamt : mm
        Sonnenstrahlung : W/m²
        UV-Index :
        Zeitstempel :
        Firmware :
        Batteriestand: :
        Gateway-Modell :

        Zusatzsensoren:

        Datenstring fÃŒr ioBroker:

        DATA von Wetterstation:

        Debug VAR:
        Installationsverzeichnis: /opt/iobroker/WLAN-Wetterstation-master
        IPP: 192.168.1.39:8087 WS_PORT: 1080 WS_POLL: 30 PRE_DP: javascript.0.Datenpunkte.Wetterstation
        WEB: HTTP WS_PROT: DNS

        Zusatzsensoren:
        DP10/35/40/50/60/70/100/200/250/300: 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0
        WH31: 0 || WS90: 0
        Bresser: 7009999 [0]

        Script-Version: V3.2.0 Config-Version: V3.2.0 Sub-Version: V3.2.0

        Kommunikationsfehler!

        DatenÃŒbertragung an wunderground.com:
        (vor einer Veröffentlichung unbedingt zumindest das Passwort unkenntlich machen, ggf. auch die Station-ID[=Benutzername])
        --2024-05-31 20:34:11-- https://weatherstation.wunderground.com/
        Auflösen des Hostnamens weatherstation.wunderground.com (weatherstation.wunderground.com)... 54.159.105.134, 52.22.134.222, 34.232.250.77
        Verbindungsaufbau zu weatherstation.wunderground.com (weatherstation.wunderground.com)|54.159.105.134|:443 ... verbunden.
        HTTP-Anforderung gesendet, auf Antwort wird gewartet ... 404 Not Found
        2024-05-31 20:34:11 FEHLER 404: Not Found.

        michael@iobroker:/opt/iobroker/WLAN-Wetterstation-master$

        Und so langsam bin ich genervt weil es nicht laufen will ! 😞

        Habt Ihr eine Idee ? Was ich noch prüfen kann ?

        LG
        M.M.

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

          @SBorg

          Ich habe heute diesen Error im Log entdeckt.

          
          javascript.1
          2024-06-01 01:03:00.084	error	at processImmediate (node:internal/timers:478:21)
          
          javascript.1
          2024-06-01 01:03:00.084	error	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/db-states-redis/src/lib/states/statesInRedisClient.ts:379:37)
          
          javascript.1
          2024-06-01 01:03:00.084	error	at change (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:11082:45)
          
          javascript.1
          2024-06-01 01:03:00.084	error	at Object.cb (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2993:38)
          
          javascript.1
          2024-06-01 01:03:00.084	error	at Object.<anonymous> (script.js.Wetter.Wetterstatistik:192:43)
          
          javascript.1
          2024-06-01 01:03:00.084	error	at Array.reduce (<anonymous>)
          
          javascript.1
          2024-06-01 01:03:00.083	error	Error in callback: TypeError: Reduce of empty array with no initial value
          

          Was muss ich da machen?

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

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

            Habt Ihr eine Idee ? Was ich noch prüfen kann ?

            Pauschal bekommst du keine Verbindung vom Display/Gateway zum Rechner auf dem das Skript läuft.
            Welche Station nutzt du denn (weil du als Protokoll "DNS" nutzt)?
            Falls "DNS" (zB. bei einer Station von Bresser) Absicht ist, funktioniert die DNS-Umleitung der Wunderground-URL zum Skript-Rechner nicht korrekt.

            Rene55 M 2 Replies Last reply Reply Quote 0
            • Rene55
              Rene55 @SBorg last edited by

              @sborg Ich habe den gleichen Fehler wie @Negalein bei mir entdeckt. Die Daten kommen ja grundsätzlich von der Wetterstation an.
              Ich versuche mal zu erforschen, seit wann der Fehler auftritt. Evtl. hängt es ja mit dem Javascript-Adapter zusammen.

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

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

                Was muss ich da machen?

                "Error in callback: TypeError: Reduce of empty array with no initial value"

                Du bekommst keine Verbindung zur InfluxDB. Im Skript noch alles (Bucket, Instanz) korrekt eingetragen?


                Ok, jetzt kam gerade @Rene55 dazwischen 🙂
                Testet ihr ev. den neuen Alpha 6.0? Mit dem aktuellen läuft alles.

                Rene55 Negalein SBorg 3 Replies Last reply Reply Quote 0
                • SBorg
                  SBorg Forum Testing Most Active last edited by

                  Aktuell gibt es bei Windy ein kleineres Problem. Die haben an der API rum geschraubt und zusätzlich das Mindest-Sendeintervall geändert. Fix ist in Arbeit, allerdings funktioniert die Übertragung (zumindest jede zweite) trotzdem, nur der DP für eine korrekte Übertragung an Windy verbleibt immer auf false.

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

                    @sborg Nee, ist ja Produktivsystem mit 5.0.19, javascript v8.3.1

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

                      @rene55
                      Ok, dann ist es dies zumindest nicht. Ich nutze zwar 5.0.19 und 8.4.2, da wäre mir aber weiter nichts bekannt warum er plötzlich die InfluxDB nicht mehr lesen kann...?

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

                        @sborg Müsste nicht, wenn die Influx nicht gelesen werden kann, der "Fehler beim Lesen der InfluxDB" im Log erscheinen?

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

                          @rene55
                          IMO nicht wenn überhaupt keine Verbindung zustande kommt, sondern nur wenn bei der Abfrage selbst ein Problem auftritt. Das Problem hatte genau in der Art ein anderer User vor einiger Zeit, da kam auch keine andere Fehlermeldung (damals war die Bezeichnung des Buckets falsch).

                          Ist nur komisch warum bei euch beiden (ev. melden sich ja auch noch weitere) und bspw. bei mir läuft es.

                          Rene55 2 Replies Last reply Reply Quote 0
                          • Negalein
                            Negalein Global Moderator @SBorg last edited by

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

                            Testet ihr ev. den neuen Alpha 6.0?

                            Nö, bin noch auf 5.0.19
                            Javascript: 8.4.2

                            Du bekommst keine Verbindung zur InfluxDB. Im Skript noch alles (Bucket, Instanz) korrekt eingetragen?

                            Ja, da hat sich nichts geändert.

                            // *** User-Einstellungen **********************************************************************************************************************************
                                const WET_DP='0_userdata.0.Wetterstation';          // wo liegen die Datenpunkte mit den Daten der Wetterstation  [default: 0_userdata.0.Wetterstation]                          
                                const INFLUXDB_INSTANZ='1';                         // unter welcher Instanz läuft die InfluxDB [default: 0]
                                const INFLUXDB_BUCKET='iobroker';                     // Name des zu benutzenden Buckets
                            
                            SBorg 1 Reply Last reply Reply Quote 0
                            • Rene55
                              Rene55 @SBorg last edited by

                              @sborg Tatsächlich sind die Results von 'Temp, Wind und Rain' leer.

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

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

                                Tatsächlich sind die Results von 'Temp, Wind und Rain

                                die in 0_userdata.0.Wetterstation?

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

                                  @negalein Ich zieh mich mal eben zurück. Ich hab den Fehler wahrscheinlich schon länger drin. Asche über mein Haupt.
                                  @SBorg erinnert sich sicher noch daran, dass ich damals versucht habe, die Measurement-Namen zu kürzen. Da hab ich wohl nicht alles konsequent durchgezogen.
                                  Daten kommen aktuell wieder aus der Influx.

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

                                    @sborg Trotz der eingelesenen Daten habe ich (im Debugmodus) eine Ausgabe
                                    "Erster Messwert: 2024-05-30T22:00:28.347Z ***undefined",
                                    die ich mir nicht erklären kann.

                                    Was genau macht eigentlich "const reducer = (accumulator, curr) => accumulator + curr;" ?

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

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

                                      Ja, da hat sich nichts geändert.

                                      Dann müsste es auch gehen 😇
                                      Wenn also da alles korrekt ist, stehen denn überhaupt Daten in der InfluxDB für den Zeitraum?Bild 001.png

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

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

                                        "Erster Messwert: 2024-05-30T22:00:28.347Z ***undefined",
                                        die ich mir nicht erklären kann.

                                        Immerhin hat er einen Zeitstempel aus dem Array lesen können, nur keinerlei Wert. Loggst du die DPs in Influx beim "Typ" als "Automatik" oder explizit als Zahl (letzteres würde ich bevorzugen)?

                                        Was genau macht eigentlich "const reducer = (accumulator, curr) => accumulator + curr;" ?

                                        Das gehört zusammen

                                            const reducer = (accumulator, curr) => accumulator + curr;
                                            let Temp_Durchschnitt = Number((temps.reduce(reducer)/temps.length).toFixed(2));
                                        

                                        und nutze ich zur Berechnung eines Durchschnittes. reduce bildet die Summe eines Arrays. Normalerweise würdest du bei einem Array mittels "for each" oder Schleife über das Array iterieren und dann jeweils Summe += Einzelwert ausführen, um dann den Durchschnitt mittels "Summe / Anzahl der Elemente im Array" bilden. Das ist hier bei drei Arrays mit rund 100k Datensätzen auf einem Raspi eine Aktion von mehreren Minuten, mittels "reduce" wenige Sekunden 😉

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

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

                                          stehen denn überhaupt Daten in der InfluxDB für den Zeitraum?

                                          Ja, im Explorer, sowie in Grafana

                                          5ddc476e-6e0c-48ee-ad63-359c087561e9-image.png


                                          Edit: ich denke, Fehler gefunden.

                                          Ich hatte const INFLUXDB_BUCKET='iobroker'; // Name des zu benutzenden Buckets
                                          Richtig ist aber const INFLUXDB_BUCKET='iobroker-1w.


                                          schaut jetzt so aus.

                                          b86a1e08-b75d-467f-b930-d85a67569997-image.png

                                          2024 ist natürlich jetzt versaut ((könnt mich selber schlagen) 😞

                                          Warum steht aber bei Regentage 2021 dort undefined?

                                          Und die anderen 0-Werte dürften auch nicht stimmen.

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

                                            @sborg Danke für die Erklärung. Ich konnte damit (noch) nichts anfangen. Ich tue mich mit diesen Array-Funktionen doch etwas schwer.
                                            Die Werte werden meistens als Number in die Influx geschrieben.
                                            Jetzt haben wir dich umsonst aus dem Wochenende an den Rechner geholt. Oder gibt es noch Verbesserungen (=Windy) ?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            747
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            linux shell-script wetterstation wlan-wetterstation
                                            143
                                            5478
                                            3276126
                                            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