Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

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

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    883

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

[Linux Shell-Skript] WLAN-Wetterstation

Scheduled Pinned Locked Moved Praktische Anwendungen (Showcase)
linuxshell-scriptwetterstationwlan-wetterstation
5.7k Posts 155 Posters 3.9m Views 137 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • BoronsbruderB Boronsbruder

    @bigmike71
    Ohne Nur Änderungen aufzeichnen wird halt bei jedem Empfang der Daten ein neuer Datensatz geschrieben, was die Datenmenge in der Datenbank erhöht.

    Man muss beim Setzen von Nur Änderungen aufzeichnen bedenken, dass wenn Skripte Verläufe oder Mittelwerte abrufen, in gewissen Zeitabständen doch die unveränderten Werte geschrieben werden, um Fehler in den Berechnungen zu verhindern.

    Man kann aber in Influx2 über Tasks auch die Datenmengen reduzieren. Der Vorteil an dieser Variante ist, dass z.B. kürzer in der Vergangenheit liegende Daten noch in vollen Details vorhanden sind und ob ich in 5 Jahren noch wissen will, dass um 12:14 Uhr 11,7°C grad waren...

    B Offline
    B Offline
    BigMike71
    wrote on last edited by
    #5133

    @boronsbruder
    mit der Datenmenge habe ich auch ein Auge drauf.
    Gibt es da ein verständliches Beispiel für Tasks?
    habe damit noch nie gearbeitet da ich recht neu mit der sache Influx/Grafana bin.
    Löscht Task wichtige Datenwerte oder reduziert die Datenmenge ohne die Genauigkeit (Werte) zu ändern?
    Habe Influx2 mit Weboberfläche, da habe ich auch Tasks, das scheint aber alles nur über eingabe Befehle zu gehen...

    B 2 Replies Last reply
    0
    • B BigMike71

      @boronsbruder
      mit der Datenmenge habe ich auch ein Auge drauf.
      Gibt es da ein verständliches Beispiel für Tasks?
      habe damit noch nie gearbeitet da ich recht neu mit der sache Influx/Grafana bin.
      Löscht Task wichtige Datenwerte oder reduziert die Datenmenge ohne die Genauigkeit (Werte) zu ändern?
      Habe Influx2 mit Weboberfläche, da habe ich auch Tasks, das scheint aber alles nur über eingabe Befehle zu gehen...

      B Offline
      B Offline
      babl
      wrote on last edited by
      #5134

      @bigmike71 ich schick dir morgen Mal ein Beispiel für Wetterstation in 15min runtergerechnet. Das nehme ich dann für die Langzeit vielleicht lasse ich es nochmal auf 1 Stunde runterrechnen bis jetzt habe ich eine grösse von ca. 500mb gezippt

      1 Reply Last reply
      0
      • B BigMike71

        @boronsbruder
        mit der Datenmenge habe ich auch ein Auge drauf.
        Gibt es da ein verständliches Beispiel für Tasks?
        habe damit noch nie gearbeitet da ich recht neu mit der sache Influx/Grafana bin.
        Löscht Task wichtige Datenwerte oder reduziert die Datenmenge ohne die Genauigkeit (Werte) zu ändern?
        Habe Influx2 mit Weboberfläche, da habe ich auch Tasks, das scheint aber alles nur über eingabe Befehle zu gehen...

        B Offline
        B Offline
        babl
        wrote on last edited by babl
        #5135

        @bigmike71 hier ist mein Task für die Wetterstation, er wird alle Stunde aufgerufen und verarbeitet dann die Daten die in die normale influxdb bucket wetterstation laufen dann auf 15 minuten.

        import "timezone"
        
        option task = {name: "wetterstation-history-15min", every: 1h}
        
        from(bucket: "wetterstation")
            |> range(start: -24h, stop: now())
            |> filter(
                fn: (r) =>
                    r["_measurement"] == "0_userdata.0.Allgemein.Wettervorschau" or r["_measurement"]
                        ==
                        "0_userdata.0.Statistik.Wetter.VorTag.Regenmenge" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Aussenfeuchtigkeit" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Aussentemperatur" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Aussentemperatur_Trend" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Druck_Tendenz" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Druck_absolut" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Druck_relativ" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Gefuehlte_Temperatur" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Info.Hitzeindex" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Info.Letzte_Regenmenge" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Info.Letzter_Regen" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Info.Regenmenge_VorJahr" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Info.Solarenergie_Jahr" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Info.Solarenergie_Monat" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Info.Solarenergie_Tag" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Info.Solarenergie_VorJahr" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Info.Solarenergie_VorTag" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Info.Solarenergie_Woche" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Info.Sonnenschein_Jahr" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Info.Sonnenschein_Monat" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Info.Sonnenschein_Tag" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Info.Sonnenschein_VorJahr" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Info.Sonnenschein_VorTag" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Info.Sonnenschein_Woche" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Info.Temp_Aussen_24h_max" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Info.Temp_Aussen_24h_min" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Info.Temp_Aussen_365t_avg" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Info.Temp_Aussen_365t_max" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Info.Temp_Aussen_365t_min" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Info.Wolkenbasis" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Innenfeuchtigkeit" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Innentemperatur" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Regen_Jahr" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Regen_Monat" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Regen_Tag" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Regen_Woche" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Regenrate" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Regenstatus" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Sonnenstrahlung" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Taupunkt" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.UV_Index" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Wetter_Trend" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Wetter_aktuell" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Wind" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Wind_max" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Windrichtung" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Windrichtung_10min" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Windrichtung_Text_10min" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation.Zeitstempel" or r["_measurement"]
                        ==
                        "0_userdata.0.Wetterstation._Kommunikationsfehler" or r["_measurement"]
                        ==
                        "daswetter.0.NextDays.Location_1.Day_1.Wetterbedingungen_value" or r["_measurement"]
                        ==
                        "daswetter.0.NextDays.Location_1.Day_2.Wetterbedingungen_value" or r["_measurement"]
                        ==
                        "odl.0.093721531.value" or r["_measurement"] == "uv-protect.0.ozone"
                        or
                        r["_measurement"] == "weatherunderground.0.forecast.0d.precipitationAllDay"
                        or
                        r["_measurement"] == "weatherunderground.0.forecast.0d.precipitationChance"
                        or
                        r["_measurement"] == "0_userdata.0.Wetterstation.Regen_Jahr_kumuliert",
            )
            |> filter(
                fn: (r) =>
                    r["_field"] == "ack" or r["_field"] == "from" or r["_field"] == "q" or r["_field"]
                        ==
                        "value",
            )
            |> aggregateWindow(every: 15m, fn: last)
            |> yield(name: "last")
            |> to(bucket: "wetterstation-history-15min", org: "privat")
        
        
        

        @Boronsbruder @SBorg nach dem Reset ist alles wieder gut, danke.

        B 1 Reply Last reply
        0
        • B babl

          @bigmike71 hier ist mein Task für die Wetterstation, er wird alle Stunde aufgerufen und verarbeitet dann die Daten die in die normale influxdb bucket wetterstation laufen dann auf 15 minuten.

          import "timezone"
          
          option task = {name: "wetterstation-history-15min", every: 1h}
          
          from(bucket: "wetterstation")
              |> range(start: -24h, stop: now())
              |> filter(
                  fn: (r) =>
                      r["_measurement"] == "0_userdata.0.Allgemein.Wettervorschau" or r["_measurement"]
                          ==
                          "0_userdata.0.Statistik.Wetter.VorTag.Regenmenge" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Aussenfeuchtigkeit" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Aussentemperatur" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Aussentemperatur_Trend" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Druck_Tendenz" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Druck_absolut" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Druck_relativ" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Gefuehlte_Temperatur" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Info.Hitzeindex" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Info.Letzte_Regenmenge" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Info.Letzter_Regen" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Info.Regenmenge_VorJahr" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Info.Solarenergie_Jahr" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Info.Solarenergie_Monat" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Info.Solarenergie_Tag" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Info.Solarenergie_VorJahr" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Info.Solarenergie_VorTag" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Info.Solarenergie_Woche" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Info.Sonnenschein_Jahr" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Info.Sonnenschein_Monat" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Info.Sonnenschein_Tag" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Info.Sonnenschein_VorJahr" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Info.Sonnenschein_VorTag" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Info.Sonnenschein_Woche" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Info.Temp_Aussen_24h_max" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Info.Temp_Aussen_24h_min" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Info.Temp_Aussen_365t_avg" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Info.Temp_Aussen_365t_max" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Info.Temp_Aussen_365t_min" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Info.Wolkenbasis" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Innenfeuchtigkeit" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Innentemperatur" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Regen_Jahr" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Regen_Monat" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Regen_Tag" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Regen_Woche" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Regenrate" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Regenstatus" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Sonnenstrahlung" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Taupunkt" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.UV_Index" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Wetter_Trend" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Wetter_aktuell" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Wind" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Wind_max" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Windrichtung" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Windrichtung_10min" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Windrichtung_Text_10min" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation.Zeitstempel" or r["_measurement"]
                          ==
                          "0_userdata.0.Wetterstation._Kommunikationsfehler" or r["_measurement"]
                          ==
                          "daswetter.0.NextDays.Location_1.Day_1.Wetterbedingungen_value" or r["_measurement"]
                          ==
                          "daswetter.0.NextDays.Location_1.Day_2.Wetterbedingungen_value" or r["_measurement"]
                          ==
                          "odl.0.093721531.value" or r["_measurement"] == "uv-protect.0.ozone"
                          or
                          r["_measurement"] == "weatherunderground.0.forecast.0d.precipitationAllDay"
                          or
                          r["_measurement"] == "weatherunderground.0.forecast.0d.precipitationChance"
                          or
                          r["_measurement"] == "0_userdata.0.Wetterstation.Regen_Jahr_kumuliert",
              )
              |> filter(
                  fn: (r) =>
                      r["_field"] == "ack" or r["_field"] == "from" or r["_field"] == "q" or r["_field"]
                          ==
                          "value",
              )
              |> aggregateWindow(every: 15m, fn: last)
              |> yield(name: "last")
              |> to(bucket: "wetterstation-history-15min", org: "privat")
          
          
          

          @Boronsbruder @SBorg nach dem Reset ist alles wieder gut, danke.

          B Offline
          B Offline
          BigMike71
          wrote on last edited by
          #5136

          @babl
          vielen dank!
          das bedeutet dann, das die Daten einen Zeitabstand von 15min haben?
          im moment logge ich "wind" und "richtung" alle 16sek, danach gibt es dann nur alle 15min einen datenpunkt, verstehe ich das richtig?

          B 1 Reply Last reply
          0
          • B BigMike71

            @babl
            vielen dank!
            das bedeutet dann, das die Daten einen Zeitabstand von 15min haben?
            im moment logge ich "wind" und "richtung" alle 16sek, danach gibt es dann nur alle 15min einen datenpunkt, verstehe ich das richtig?

            B Offline
            B Offline
            babl
            wrote on last edited by
            #5137

            @bigmike71 jawohl, das mache ich für die langzeitspeicherung, natürlich geht dir dann eine Böe z.B. verloren, aber für die letzten 30 Tage kannst du ja das normale Fenster (16sec) nehmen und ab dann das für die 15 min. In Grafana kannst das ja über die Variablen (Buckets) angeben bei Langzeitauswertung.

            1 Reply Last reply
            0
            • BoronsbruderB Boronsbruder

              @babl @SBorg
              Im Skript ist ein Hinweis.
              In der Doku fehlt er, glaube ich noch ?
              Ich habe aus dem Quellcode abgeleitet, dass mit

              0 Aus
              1 Reset
              2 Backup und Reset
              

              der Jahresstatistik zum 01.01. durchgeführt wird.
              Wenn du jetzt 0_userdata.0.Statistik.Wetter.Control.Reset_Jahresstatistik auf true setzt wird zum nächsten Statistikdurchlauf, die Jahresstatistik zurückgesetzt. (Das steht schon in der Doku)
              ACHTUNG: aber ohne die Daten der Jahresstatistik in einen Datenpunkt zu sichern!

              Ich habe, um ein Backup mit Reset sofort zu erzwingen, ganz am Ende des Statistikskripts

              Backup_Jahresstatistik();
              Reset_Jahresstatistik();
              

              angehängt, das Skript gespeichert, und dann den Anhang wieder entfernt und gespeichert.

              SBorgS Offline
              SBorgS Offline
              SBorg
              Forum Testing Most Active
              wrote on last edited by
              #5138

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

              Im Skript ist ein Hinweis.
              In der Doku fehlt er, glaube ich noch ?

              Eigentlich auch im Datenpunkt direkt, zumindest wenn er vom Script angelegt wurde.
              Aber der Hinweis in der WiKi fehlt(e) tatsächlich.

              1.2. AutoReset_Jahresstatistik - [Zahl: 0,1,2] was soll am 01.01. des Jahres mit den Statistikdaten passieren?
              0 = Aus | die Daten werden einfach fortlaufend weitergeführt
              1 = Ein | die Werte werden "genullt" und ggf. (zB. Höchst-/Tiefstwert) auf Extreme gesetzt, damit dann wieder korrekte Höchst-/Tiefstwerte oä. ermittelt werden können
              2 = Ein+Backup | wie 1, nur werden zusätzlich Daten in einer Jahresstatistik gespeichert

              Extreme bedeutet dabei "nicht mögliche Werte" wie zB. bei den Temperaturen.
              Hier wird der Tiefstwert auf 99°C und der Höchstwert auf -99°C gesetzt. Somit wird zum nächsten Durchlauf jede Temperatur den Tiefstwert unterschreiten, sowie jede Temperatur den Höchstwert überschreiten.

              Min-Temp am 01.01. -5°C
              Max-Temp am 01.01. 2°C

              Für den Vergleich ist dann
              -5 weniger als 99 = neuer Tiefstwert -5°C
              2 mehr als -99 = neuer Höchstwert 2°C

              Würden die auch nur "genullt" und wir hätten zB. am 01.01. ein Min von 6°C und ein Max von 9°C (wie es bei mir tatsächlich war), würde zwar der Maxwert korrekt auf 9°C gesetzt werden, der Minwert verbliebe aber bei 0°C, da 6 größer als 0 ist ;)
              ...und löschen und keinen Wert hineinschreiben wird dann mit einer Fehlermeldung vom Javaskript-Adapter belohnt.

              Nur weil ich schon gefragt wurde warum diese verqueren "99er"-Werte. Ab und an denkt sich der alte Mann sogar etwas bei dem was er tut, wenn auch nicht immer :blush:

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

              Rene55R 1 Reply Last reply
              2
              • S Offline
                S Offline
                schittl
                wrote on last edited by schittl
                #5139

                Seit heute morgen kommen falsche Werte bei mir in iobroker an. Bis ca. 9 Uhr hat es funktioniert. Die Displays (WH3000SE) zeigen noch die korrekte Temperatur an. Nur in ioBroker landen falsche Werte. Auch in WU landen nur korrekte Daten. Da sendet der DP1500, welchen ich auch für iobroker nutze. Debug zeigt folgendes:

                PASSKEY=xxxxxxxx&stationtype=GW1000A_V1.7.7&runtime=7311343&dateutc=2024-01-07+10:19:16&tempinf=43.34&humidityin=44&baromrelin=27.950&baromabsin=27.950&tempf=59.36&humidity=85&winddir=72&windspeedmph=0.00&windgustmph=1.12&maxdailygust=11.41&solarradiation=0.00&uv=0&rainratein=0.000&eventrainin=0.000&hourlyrainin=0.000&dailyrainin=0.000&weeklyrainin=0.000&monthlyrainin=2.000&yearlyrainin=52.201&totalrainin=52.201&temp1f=60.98&humidity1=40&temp2f=73.04&soilmoisture1=21&soilad1=150&soilmoisture2=59&soilad2=290&soilmoisture3=60&soilad3=290&soilmoisture4=27&soilad4=171&soilmoisture5=47&soilad5=244&lightning_num=0&lightning=17&lightning_time=1703179736&leak_ch1=0&tf_ch1=71.06&wh65batt=0&batt1=0&batt2=0&soilbatt1=1.5&soilbatt2=1.5&soilbatt3=1.5&soilbatt4=1.5&soilbatt5=1.5&wh57batt=5&leakbatt1=4&tf_batt1=1.52&freq=868M&model=GW1000A_Pro
                

                Hat jemand ne Idee, woran das liegen kann? Aktuell sind es Minus 5,4 ° und in ioBroker 15,2°. Scriptversion habe ich V3.2.0.

                ZusatzInfo:
                Momentan geht es wieder aber ich verstehe nicht wieso die falschen Werte ankamen. Naja Hauptsache geht wieder.

                HW: Lenovo M920q (Proxmox, ioBroker, RaspMatic & Z2M), QNAP (Docker, Influx), Arduino Mega 2560 R3 (I2C DS18B20 + LED)

                SW: CT IoBroker, VM RaspMatic(v3.79.6.20241122)

                R 1 Reply Last reply
                0
                • S schittl

                  Seit heute morgen kommen falsche Werte bei mir in iobroker an. Bis ca. 9 Uhr hat es funktioniert. Die Displays (WH3000SE) zeigen noch die korrekte Temperatur an. Nur in ioBroker landen falsche Werte. Auch in WU landen nur korrekte Daten. Da sendet der DP1500, welchen ich auch für iobroker nutze. Debug zeigt folgendes:

                  PASSKEY=xxxxxxxx&stationtype=GW1000A_V1.7.7&runtime=7311343&dateutc=2024-01-07+10:19:16&tempinf=43.34&humidityin=44&baromrelin=27.950&baromabsin=27.950&tempf=59.36&humidity=85&winddir=72&windspeedmph=0.00&windgustmph=1.12&maxdailygust=11.41&solarradiation=0.00&uv=0&rainratein=0.000&eventrainin=0.000&hourlyrainin=0.000&dailyrainin=0.000&weeklyrainin=0.000&monthlyrainin=2.000&yearlyrainin=52.201&totalrainin=52.201&temp1f=60.98&humidity1=40&temp2f=73.04&soilmoisture1=21&soilad1=150&soilmoisture2=59&soilad2=290&soilmoisture3=60&soilad3=290&soilmoisture4=27&soilad4=171&soilmoisture5=47&soilad5=244&lightning_num=0&lightning=17&lightning_time=1703179736&leak_ch1=0&tf_ch1=71.06&wh65batt=0&batt1=0&batt2=0&soilbatt1=1.5&soilbatt2=1.5&soilbatt3=1.5&soilbatt4=1.5&soilbatt5=1.5&wh57batt=5&leakbatt1=4&tf_batt1=1.52&freq=868M&model=GW1000A_Pro
                  

                  Hat jemand ne Idee, woran das liegen kann? Aktuell sind es Minus 5,4 ° und in ioBroker 15,2°. Scriptversion habe ich V3.2.0.

                  ZusatzInfo:
                  Momentan geht es wieder aber ich verstehe nicht wieso die falschen Werte ankamen. Naja Hauptsache geht wieder.

                  R Offline
                  R Offline
                  Rushmed
                  Most Active
                  wrote on last edited by
                  #5140

                  @schittl Bei mir ist sowas kürzlich passiert kurz bevor die Batterie vom Außensensor aufgegeben hat.

                  S 1 Reply Last reply
                  0
                  • R Rushmed

                    @schittl Bei mir ist sowas kürzlich passiert kurz bevor die Batterie vom Außensensor aufgegeben hat.

                    S Offline
                    S Offline
                    schittl
                    wrote on last edited by
                    #5141

                    @rushmed Ok danke für die Info. Das kann durchaus sein. Sensor ist ja schon mehr als 3 Jahre aktiv. Ich werde es beobachten.

                    HW: Lenovo M920q (Proxmox, ioBroker, RaspMatic & Z2M), QNAP (Docker, Influx), Arduino Mega 2560 R3 (I2C DS18B20 + LED)

                    SW: CT IoBroker, VM RaspMatic(v3.79.6.20241122)

                    1 Reply Last reply
                    0
                    • SBorgS SBorg

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

                      Im Skript ist ein Hinweis.
                      In der Doku fehlt er, glaube ich noch ?

                      Eigentlich auch im Datenpunkt direkt, zumindest wenn er vom Script angelegt wurde.
                      Aber der Hinweis in der WiKi fehlt(e) tatsächlich.

                      1.2. AutoReset_Jahresstatistik - [Zahl: 0,1,2] was soll am 01.01. des Jahres mit den Statistikdaten passieren?
                      0 = Aus | die Daten werden einfach fortlaufend weitergeführt
                      1 = Ein | die Werte werden "genullt" und ggf. (zB. Höchst-/Tiefstwert) auf Extreme gesetzt, damit dann wieder korrekte Höchst-/Tiefstwerte oä. ermittelt werden können
                      2 = Ein+Backup | wie 1, nur werden zusätzlich Daten in einer Jahresstatistik gespeichert

                      Extreme bedeutet dabei "nicht mögliche Werte" wie zB. bei den Temperaturen.
                      Hier wird der Tiefstwert auf 99°C und der Höchstwert auf -99°C gesetzt. Somit wird zum nächsten Durchlauf jede Temperatur den Tiefstwert unterschreiten, sowie jede Temperatur den Höchstwert überschreiten.

                      Min-Temp am 01.01. -5°C
                      Max-Temp am 01.01. 2°C

                      Für den Vergleich ist dann
                      -5 weniger als 99 = neuer Tiefstwert -5°C
                      2 mehr als -99 = neuer Höchstwert 2°C

                      Würden die auch nur "genullt" und wir hätten zB. am 01.01. ein Min von 6°C und ein Max von 9°C (wie es bei mir tatsächlich war), würde zwar der Maxwert korrekt auf 9°C gesetzt werden, der Minwert verbliebe aber bei 0°C, da 6 größer als 0 ist ;)
                      ...und löschen und keinen Wert hineinschreiben wird dann mit einer Fehlermeldung vom Javaskript-Adapter belohnt.

                      Nur weil ich schon gefragt wurde warum diese verqueren "99er"-Werte. Ab und an denkt sich der alte Mann sogar etwas bei dem was er tut, wenn auch nicht immer :blush:

                      Rene55R Offline
                      Rene55R Offline
                      Rene55
                      wrote on last edited by
                      #5142

                      @sborg Ich brauche nochmals eure Hilfe: Ich hatte vor, meine Datenbanken etwas zu säubern. 'Jetzt' gibt es ja die longtermBuckets und die shorttermBuckets. Gibt es eine Übersicht, welche Datenpunkte ins long müssen und welche nicht? Dann noch die anschließende Frage: in der wetterstation.conf muss ich ja ein Bucket angeben, damit bestimmte Werte aus der Influx geholt werden können. Muss der Bezug dann hier auf shorttermBucket stehen?

                      Host: Fujitsu Intel(R) Pentium(R) CPU G4560T, 32 GB RAM, Proxmox 8.x + lxc Ubuntu 22.04
                      ioBroker (8 GB RAM) Node.js: 20.19.1, NPM: 10.8.2, js-Controller: 7.0.6, Admin: 7.6.3
                      Wetterstation: Froggit WH3000SE V1.6.6

                      SBorgS 1 Reply Last reply
                      0
                      • Rene55R Rene55

                        @sborg Ich brauche nochmals eure Hilfe: Ich hatte vor, meine Datenbanken etwas zu säubern. 'Jetzt' gibt es ja die longtermBuckets und die shorttermBuckets. Gibt es eine Übersicht, welche Datenpunkte ins long müssen und welche nicht? Dann noch die anschließende Frage: in der wetterstation.conf muss ich ja ein Bucket angeben, damit bestimmte Werte aus der Influx geholt werden können. Muss der Bezug dann hier auf shorttermBucket stehen?

                        SBorgS Offline
                        SBorgS Offline
                        SBorg
                        Forum Testing Most Active
                        wrote on last edited by
                        #5143

                        @rene55
                        Prinzipiell kannst du das erst mal handeln wie du willst. Der Gedanke war dabei die Daten 1 Jahr vorzuhalten. Länger fragt das WLAN-Skript auch keine Daten ab ("Temperatur vor einem Jahr").
                        Alles was man darüber hinaus behalten wollte sollte dann ins Longterm.

                        Das Konstrukt ist aber offen gestanden suboptimal (ich nutze es selbst nicht mehr). Hier sind die Influx-Tasks mit aggregieren deutlich besser. Ich weiß meine Zeiträume gerade nicht auswendig, aber bspw. eine "Windrichtung" braucht man kaum aufheben. Die wird aber im ~30 Sekundenraster (halt Sendeintervall der Station) geloggt und belegt nur Platz. Wer braucht denn aktuell die Windrichtung vom 29. November 2023 um 11:52:33 Uhr? Also schmeiße ich die per Task (glaube 7 Tage) kpl. aus der DB raus. Auch die Temperatur ist jetzt (mir) nicht sooo wichtig, als dass ich die Ewigkeiten bräuchte. Sie ändert sich ja auch nicht alle 30 Sekunden. Also aggregiere ich einen 15 Minutenmittelwert der Temperatur und schrinke die DB um das 30-fache oder von 30 Datensätzen auf einen. Da kann ich sie auch länger aufheben und dann zB. nach 365 Tagen auch sagen "aggregiere" jetzt auf eine Stunde. Dann habe ich nur noch 24 Datensätze pro Tag.

                        Der Bezug in der conf muss halt auf das Bucket verweisen welches zumindest für 365 Tage Daten vorhält. Ob die "roh" sind oder bereits aggregiert sind ist dabei unerheblich. Ich lese immer dynamisch so viele Datensätze ein wie vorhanden sind ;)

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

                        NegaleinN Rene55R 3 Replies Last reply
                        0
                        • SBorgS SBorg

                          @rene55
                          Prinzipiell kannst du das erst mal handeln wie du willst. Der Gedanke war dabei die Daten 1 Jahr vorzuhalten. Länger fragt das WLAN-Skript auch keine Daten ab ("Temperatur vor einem Jahr").
                          Alles was man darüber hinaus behalten wollte sollte dann ins Longterm.

                          Das Konstrukt ist aber offen gestanden suboptimal (ich nutze es selbst nicht mehr). Hier sind die Influx-Tasks mit aggregieren deutlich besser. Ich weiß meine Zeiträume gerade nicht auswendig, aber bspw. eine "Windrichtung" braucht man kaum aufheben. Die wird aber im ~30 Sekundenraster (halt Sendeintervall der Station) geloggt und belegt nur Platz. Wer braucht denn aktuell die Windrichtung vom 29. November 2023 um 11:52:33 Uhr? Also schmeiße ich die per Task (glaube 7 Tage) kpl. aus der DB raus. Auch die Temperatur ist jetzt (mir) nicht sooo wichtig, als dass ich die Ewigkeiten bräuchte. Sie ändert sich ja auch nicht alle 30 Sekunden. Also aggregiere ich einen 15 Minutenmittelwert der Temperatur und schrinke die DB um das 30-fache oder von 30 Datensätzen auf einen. Da kann ich sie auch länger aufheben und dann zB. nach 365 Tagen auch sagen "aggregiere" jetzt auf eine Stunde. Dann habe ich nur noch 24 Datensätze pro Tag.

                          Der Bezug in der conf muss halt auf das Bucket verweisen welches zumindest für 365 Tage Daten vorhält. Ob die "roh" sind oder bereits aggregiert sind ist dabei unerheblich. Ich lese immer dynamisch so viele Datensätze ein wie vorhanden sind ;)

                          NegaleinN Offline
                          NegaleinN Offline
                          Negalein
                          Global Moderator
                          wrote on last edited by
                          #5144

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

                          Also schmeiße ich die per Task (glaube 7 Tage) kpl. aus der DB raus

                          kannst du das genauer erklären?

                          Hab mir dazu schon öfter was im Netz gesucht. Aber so richtig schlau, wie wo was konfiguriert werden muss, hab ich nichts vernünftiges gefunden.

                          ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
                          ° Node.js Fixer ---> iob nodejs-update
                          ° Fixer ---> iob fix

                          SBorgS 1 Reply Last reply
                          0
                          • SBorgS SBorg

                            @rene55
                            Prinzipiell kannst du das erst mal handeln wie du willst. Der Gedanke war dabei die Daten 1 Jahr vorzuhalten. Länger fragt das WLAN-Skript auch keine Daten ab ("Temperatur vor einem Jahr").
                            Alles was man darüber hinaus behalten wollte sollte dann ins Longterm.

                            Das Konstrukt ist aber offen gestanden suboptimal (ich nutze es selbst nicht mehr). Hier sind die Influx-Tasks mit aggregieren deutlich besser. Ich weiß meine Zeiträume gerade nicht auswendig, aber bspw. eine "Windrichtung" braucht man kaum aufheben. Die wird aber im ~30 Sekundenraster (halt Sendeintervall der Station) geloggt und belegt nur Platz. Wer braucht denn aktuell die Windrichtung vom 29. November 2023 um 11:52:33 Uhr? Also schmeiße ich die per Task (glaube 7 Tage) kpl. aus der DB raus. Auch die Temperatur ist jetzt (mir) nicht sooo wichtig, als dass ich die Ewigkeiten bräuchte. Sie ändert sich ja auch nicht alle 30 Sekunden. Also aggregiere ich einen 15 Minutenmittelwert der Temperatur und schrinke die DB um das 30-fache oder von 30 Datensätzen auf einen. Da kann ich sie auch länger aufheben und dann zB. nach 365 Tagen auch sagen "aggregiere" jetzt auf eine Stunde. Dann habe ich nur noch 24 Datensätze pro Tag.

                            Der Bezug in der conf muss halt auf das Bucket verweisen welches zumindest für 365 Tage Daten vorhält. Ob die "roh" sind oder bereits aggregiert sind ist dabei unerheblich. Ich lese immer dynamisch so viele Datensätze ein wie vorhanden sind ;)

                            Rene55R Offline
                            Rene55R Offline
                            Rene55
                            wrote on last edited by
                            #5145

                            @sborg Danke für die schnellen Antworten. Ja sicher, ob der Wind vor nem Jahr aus Osten kam ist sicher nicht wichtig. Ich hatte mich anhand des Dashboards hier angenähert. Da sah ich eigentlich nur vier Datenpunkte, die im long waren (Aussentemperatur, Temperatur_außen_Max_24h, Temperatur_außen_Min_24h und Solarenergie_Vortag). Wobei die Werte möglicherweise ja auch ins short könnten - oder liege ich da falsch? Welchen Ansatz verfolgst du denn, um den überflüssigen Datensalat zu entsorgen?

                            Host: Fujitsu Intel(R) Pentium(R) CPU G4560T, 32 GB RAM, Proxmox 8.x + lxc Ubuntu 22.04
                            ioBroker (8 GB RAM) Node.js: 20.19.1, NPM: 10.8.2, js-Controller: 7.0.6, Admin: 7.6.3
                            Wetterstation: Froggit WH3000SE V1.6.6

                            1 Reply Last reply
                            0
                            • SBorgS SBorg

                              @rene55
                              Prinzipiell kannst du das erst mal handeln wie du willst. Der Gedanke war dabei die Daten 1 Jahr vorzuhalten. Länger fragt das WLAN-Skript auch keine Daten ab ("Temperatur vor einem Jahr").
                              Alles was man darüber hinaus behalten wollte sollte dann ins Longterm.

                              Das Konstrukt ist aber offen gestanden suboptimal (ich nutze es selbst nicht mehr). Hier sind die Influx-Tasks mit aggregieren deutlich besser. Ich weiß meine Zeiträume gerade nicht auswendig, aber bspw. eine "Windrichtung" braucht man kaum aufheben. Die wird aber im ~30 Sekundenraster (halt Sendeintervall der Station) geloggt und belegt nur Platz. Wer braucht denn aktuell die Windrichtung vom 29. November 2023 um 11:52:33 Uhr? Also schmeiße ich die per Task (glaube 7 Tage) kpl. aus der DB raus. Auch die Temperatur ist jetzt (mir) nicht sooo wichtig, als dass ich die Ewigkeiten bräuchte. Sie ändert sich ja auch nicht alle 30 Sekunden. Also aggregiere ich einen 15 Minutenmittelwert der Temperatur und schrinke die DB um das 30-fache oder von 30 Datensätzen auf einen. Da kann ich sie auch länger aufheben und dann zB. nach 365 Tagen auch sagen "aggregiere" jetzt auf eine Stunde. Dann habe ich nur noch 24 Datensätze pro Tag.

                              Der Bezug in der conf muss halt auf das Bucket verweisen welches zumindest für 365 Tage Daten vorhält. Ob die "roh" sind oder bereits aggregiert sind ist dabei unerheblich. Ich lese immer dynamisch so viele Datensätze ein wie vorhanden sind ;)

                              Rene55R Offline
                              Rene55R Offline
                              Rene55
                              wrote on last edited by
                              #5146

                              @sborg Da ich gerade so schön tief im Dashboard stecke. Welcher Adapter liefert denn die Ozon-Werte?

                              Host: Fujitsu Intel(R) Pentium(R) CPU G4560T, 32 GB RAM, Proxmox 8.x + lxc Ubuntu 22.04
                              ioBroker (8 GB RAM) Node.js: 20.19.1, NPM: 10.8.2, js-Controller: 7.0.6, Admin: 7.6.3
                              Wetterstation: Froggit WH3000SE V1.6.6

                              LatziL 1 Reply Last reply
                              0
                              • Rene55R Rene55

                                @sborg Da ich gerade so schön tief im Dashboard stecke. Welcher Adapter liefert denn die Ozon-Werte?

                                LatziL Online
                                LatziL Online
                                Latzi
                                wrote on last edited by
                                #5147

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

                                Ozon-Werte

                                z.B. 590e6ece-a4a5-40b7-be62-4e9673428cd3-image.png

                                1 Reply Last reply
                                0
                                • Rene55R Offline
                                  Rene55R Offline
                                  Rene55
                                  wrote on last edited by
                                  #5148

                                  @latzi Danke dafür! Jetzt habe ich auch Ozon-Werte. Hast du das Wetterstation-Dashboard_V3 am laufen? Ich hab da einige leere und blöd aussehende Felder drin.

                                  Host: Fujitsu Intel(R) Pentium(R) CPU G4560T, 32 GB RAM, Proxmox 8.x + lxc Ubuntu 22.04
                                  ioBroker (8 GB RAM) Node.js: 20.19.1, NPM: 10.8.2, js-Controller: 7.0.6, Admin: 7.6.3
                                  Wetterstation: Froggit WH3000SE V1.6.6

                                  LatziL SBorgS 2 Replies Last reply
                                  0
                                  • Rene55R Rene55

                                    @latzi Danke dafür! Jetzt habe ich auch Ozon-Werte. Hast du das Wetterstation-Dashboard_V3 am laufen? Ich hab da einige leere und blöd aussehende Felder drin.

                                    LatziL Online
                                    LatziL Online
                                    Latzi
                                    wrote on last edited by Latzi
                                    #5149

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

                                    Wetterstation-Dashboard_V3

                                    nein, verwende ich nicht!

                                    Rene55R 1 Reply Last reply
                                    0
                                    • LatziL Latzi

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

                                      Wetterstation-Dashboard_V3

                                      nein, verwende ich nicht!

                                      Rene55R Offline
                                      Rene55R Offline
                                      Rene55
                                      wrote on last edited by
                                      #5150

                                      @latzi ok, trotzdem Danke.

                                      Host: Fujitsu Intel(R) Pentium(R) CPU G4560T, 32 GB RAM, Proxmox 8.x + lxc Ubuntu 22.04
                                      ioBroker (8 GB RAM) Node.js: 20.19.1, NPM: 10.8.2, js-Controller: 7.0.6, Admin: 7.6.3
                                      Wetterstation: Froggit WH3000SE V1.6.6

                                      1 Reply Last reply
                                      0
                                      • Rene55R Rene55

                                        @latzi Danke dafür! Jetzt habe ich auch Ozon-Werte. Hast du das Wetterstation-Dashboard_V3 am laufen? Ich hab da einige leere und blöd aussehende Felder drin.

                                        SBorgS Offline
                                        SBorgS Offline
                                        SBorg
                                        Forum Testing Most Active
                                        wrote on last edited by
                                        #5151

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

                                        @latzi Danke dafür! Jetzt habe ich auch Ozon-Werte. Hast du das Wetterstation-Dashboard_V3 am laufen? Ich hab da einige leere und blöd aussehende Felder drin.

                                        Wenn du sie füllen willst dann sag doch mal welche fehlen. Das Dashboard hatte ich für mich erstellt, wurde dann aber gebeten es öffentlich zu stellen. Deswegen sind da auch Dinge drin wie bspw. "Ozon" was überhaupt nichts mit dem WLAN-Skript zu tun hat. Ein oder zwei Dinge basieren auch auf einem JS (glaube Temperatur in 3 Stunden).

                                        Solange es im Thema "Wetter" bleibt habe ich hier auch keine Probleme mit Fragen über Grafana/Influx, nur keine allgemeine Fragen diesbzgl. wie zB. "wie komme ich denn in Influx an die Daten meines Smartmeters..."

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

                                        1 Reply Last reply
                                        0
                                        • Rene55R Offline
                                          Rene55R Offline
                                          Rene55
                                          wrote on last edited by Rene55
                                          #5152

                                          @sborg Besten Dank. Auch dafür, dass du das .json veröffentlicht hast. Vorweg: das alte Dashboard mit Influx1 habe ich derzeit auch noch laufen. Aber ich möchte den alten Ballast mal abwerfen. Ja konkret Ozon bekomme ich jetzt wahrscheinlich hin. Stimmt auch "Temperatur in 3 Stunden" fehlt (oder würde mir fehlen). Dann habe ich genau unter UV Index ein Panel, in dem keine Abfrage drin ist. OK, könnte ich löschen. Der größte Missstand ist der, dass ich z.B beim Regen dieses sehe:

                                          Wetter_Panel-Regen.png

                                          Ich denke, ich hab da auch noch ein grundlegendes Problem mit Mehrfachdaten.

                                          Host: Fujitsu Intel(R) Pentium(R) CPU G4560T, 32 GB RAM, Proxmox 8.x + lxc Ubuntu 22.04
                                          ioBroker (8 GB RAM) Node.js: 20.19.1, NPM: 10.8.2, js-Controller: 7.0.6, Admin: 7.6.3
                                          Wetterstation: Froggit WH3000SE V1.6.6

                                          SBorgS 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          704

                                          Online

                                          32.6k

                                          Users

                                          82.1k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe