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.
    • Latzi
      Latzi @Nashra last edited by

      @nashra
      ich hab die Eurochron EFWS 2900 seit mehr als 4 Jahren im Einsatz, läuft wie am ersten Tag - sowohl Innen- als auch Außeneinheit ohne Probleme (nur etwas Reinigungsaufwand der Außeneinheit einmal jährlich)!

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

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

        ich hab die Eurochron EFWS 2900 seit mehr als 4 Jahren im Einsatz, läuft wie am ersten Tag - sowohl Innen- als auch Außeneinheit ohne Probleme (nur etwas Reinigungsaufwand der Außeneinheit einmal jährlich)!

        Dito für ca. 3.5 Jahre, nur habe ich seit 3.5 Jahren genau mal gar nix an der Außeneinheit gemacht 🙃
        ...sind sogar noch die ersten Batterien drin.
        Bzgl. Display: meins sieht noch wie am ersten Tag aus bei ca. 16/7 - Betrieb.

        Alternativ wenn du eh kaum das Display genutzt hast / nutzen willst, ev. nur den Wettermast und ein Gateway.

        1 Reply Last reply Reply Quote 0
        • Nashra
          Nashra Most Active Forum Testing last edited by Nashra

          Hallo Leute,
          jetzt bin ich wirklich sauer.
          Letzten Sonntag hatte sich ja die Außeneinheit verabschiedet, die Displayeinheit funktionierte
          zwar noch aber seit langem konnte man kaum noch was darauf erkennen.
          Hatte noch das Solarmodul sauber gemacht und auch mal neue Batterien eingelegt, aber nichts.
          Ok, am Dienstag ein neues Set bestellt, eine Ecowitt WS2910 🙂
          Das Teil kam schon Mittwoch an und was muß ich feststellen.....
          Die alte Außeneinheit funkt auf einmal wieder 😬 als wenn sie nur darauf
          gewartet hat das die Neue kommt.
          Egal, die fliegt jetzt raus und die Neue geht in den Betrieb.
          Frau freut sich auf neue Displayeinheit, da schon lange gemeckert wegen der alten.
          Und ich, schau mal Schatzi, deine neue Wetterstation schon mal vorab zu Weihnachten.
          Ups, der Blick hätte töten können. 😁

          T SBorg 2 Replies Last reply Reply Quote 0
          • T
            tritor @Nashra last edited by

            Windrose

            meine aktuelle Windrose in Grafana wird anscheinend nicht mehr unterstützt.
            "Angular plugin
            This plugin uses a deprecated, legacy platform based on AngularJS and will stop working in future releases of Grafana."

            Hat jemand eine funktioierende Windrose vorzugsweise in Grafana?

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

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

              Ups, der Blick hätte töten können.

              Wie hieß das in der Werbung "Für alles hat man... Alles andere ist unbezahlbar" ✌


              @tritor
              AngularJS ist ein Sicherheitsrisiko. Das hatten sie schon zu Anfang der 10er angekündigt es nicht weiter unterstützen zu wollen. Mit der aktuellen Grafana-Version haben sie es jetzt endgültig abgeschaltet.
              Einen Ersatz für das Windrose-Plugin habe ich bis dato leider auch noch nicht gefunden 😞
              Hilft wohl nur warten und hoffen...

              Boronsbruder T 2 Replies Last reply Reply Quote 0
              • Boronsbruder
                Boronsbruder @SBorg last edited by Boronsbruder

                @sborg
                Ouch das hatte auch das AngularJS als Basis

                Aber es gibt opensource Varianten:
                https://github.com/spectraphilic/grafana-windrose/

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

                  @boronsbruder
                  Genau die ist in meinem Demo-Dashboard drin und geht nicht mehr 😉

                  Aber es hat sich bei Grafana was getan, nur getestet habe ich es noch nicht: https://grafana.com/grafana/plugins/operato-windrose-panel/

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

                    @sborg

                    merci für die Info, das hilft schon sehr weiter, dann werd ich mal die Windinfo "zu Fuß" darstellen.
                    die Operato Windrose hab ich gesehen, und ein wenig experimentiert: Zumindest wird mal was angezeigt:

                    InfluxDB - Windrose - Operato

                    from(bucket: "ioBroker")
                      |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                      |> filter(fn: (r) => r._measurement == "0_userdata.0.Wetterstation.Windrichtung_10min" or r._measurement == "0_userdata.0.Wetterstation.Wind_10min")
                      |> filter(fn: (r) => r._field == "value")
                      |> pivot(rowKey:["_time"], columnKey: ["_measurement"], valueColumn: "_value")
                      |> filter(fn: (r) => exists r["0_userdata.0.Wetterstation.Windrichtung_10min"] and exists r["0_userdata.0.Wetterstation.Wind_10min"])
                      |> rename(columns: {"0_userdata.0.Wetterstation.Windrichtung_10min": "wind_direction", "0_userdata.0.Wetterstation.Wind_10min": "wind_speed"})
                      |> map(fn: (r) => ({ r with  direction: r.wind_direction}))
                      |> map(fn: (r) => ({ r with  speed: r.wind_speed}))
                      |> aggregateWindow(every: 2m0s, fn: first, column: "direction", createEmpty: false)
                    

                    WindroseOperator.png

                    Die Legende skalieren läßt sich nur mit dem Auswählen der "speed-buckets". Also wieviele "Farben" man darstellen möchte.
                    8 sind der Standard, ich habs auf 5 reduziert, dann passt es auch mit meiner Vis.
                    WindroseOperatorVis.png WindroseOperatorVis2.png

                    SBorg 1 Reply Last reply Reply Quote 3
                    • SBorg
                      SBorg Forum Testing Most Active @tritor last edited by

                      @tritor Supi, danke fürs testen. Dann werde ich es mal bei Gelegenheit einbauen.
                      ...und wieder was für die ToDo-Liste... 🤕

                      1 Reply Last reply Reply Quote 0
                      • Nashra
                        Nashra Most Active Forum Testing last edited by

                        @tritor
                        schade, der Code von dir funktioniert bei mir nicht.
                        Oben links das rote Zeichen und wenn ich mit der Maus darauf gehe
                        zeigt er an: t.fields[0] is undefined

                        T 1 Reply Last reply Reply Quote 0
                        • T
                          tritor @Nashra last edited by tritor

                          @nashra

                          ich hab das in Grafana 10.1 eingegeben mit einer InfluxDB2 ver. 2.7 als Datensource eingegeben.
                          Eventuell postest mal einen Screenshot?
                          sieht bei mir so aus:
                          windroseOperato.png

                          Nashra 1 Reply Last reply Reply Quote 0
                          • Nashra
                            Nashra Most Active Forum Testing @tritor last edited by

                            @tritor
                            Grafana 10.2.2
                            InflusDB 2.7.4

                            windrose.png

                            T 1 Reply Last reply Reply Quote 0
                            • T
                              tritor @Nashra last edited by tritor

                              @nashra

                              na dann stellen sich folgende Fragen:

                              1. deine Datensource (Bucket) heisst: iobroker (hast du zumindest geändert)
                              2. deine WetterstionsDPs sind alle unter 0_userdata.0 oder sind die unter javascript.0.Wetterstation....
                              3. die Datenpunkte sind bei dir genauso vorhanden

                              Sonst kann ich es mir nicht erklären, wo es sonst noch haken könnte.

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

                                @Nashra
                                Du hast wahrscheinlich keine Daten im Bucket. Wenn es relativ Windstill ist oder sich die Richtung im 10 Minutenraster nicht ändert, steht kaum was in der DB.
                                Entweder musst du beim loggen bspw. jede Stunde mal das schreiben eines Wertes erzwingen, oder die aktuellen Werte nutzen (also nicht den 10 Minuten Durchschnitt):

                                from(bucket: "${DatenBucket}")
                                  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                                  |> filter(fn: (r) => r._measurement == "0_userdata.0.Wetterstation.Windrichtung" or r._measurement == "0_userdata.0.Wetterstation.Wind")
                                  |> filter(fn: (r) => r._field == "value")
                                  |> pivot(rowKey:["_time"], columnKey: ["_measurement"], valueColumn: "_value")
                                  |> filter(fn: (r) => exists r["0_userdata.0.Wetterstation.Windrichtung"] and exists r["0_userdata.0.Wetterstation.Wind"])
                                  |> rename(columns: {"0_userdata.0.Wetterstation.Windrichtung": "wind_direction", "0_userdata.0.Wetterstation.Wind": "wind_speed"})
                                  |> map(fn: (r) => ({ r with  direction: r.wind_direction}))
                                  |> map(fn: (r) => ({ r with  speed: r.wind_speed}))
                                  |> aggregateWindow(every: 2m0s, fn: first, column: "direction", createEmpty: false)
                                
                                Chris76e Nashra 2 Replies Last reply Reply Quote 0
                                • Chris76e
                                  Chris76e @SBorg last edited by

                                  @sborg

                                  Hatte das gleiche Problem wie @Nashra

                                  Ohne die _10min klappte es.

                                  Screenshot 2023-11-27 224631.png

                                  Danke und danke natürlich auch an

                                  @tritor

                                  Wie hast du diese Ansicht gemacht?

                                  Screenshot 2023-11-27 224436.png

                                  T SBorg 2 Replies Last reply Reply Quote 1
                                  • T
                                    tritor @Chris76e last edited by tritor

                                    @chris76e

                                    Also erst mal Visualisierung Bar Gauge und dann 4 Queries:

                                    Jahr

                                    from(bucket: "ioBroker")
                                      |> range(start: v.timeRangeStart, stop:v.timeRangeStop)
                                      |> filter(fn: (r) =>
                                        r._measurement == "0_userdata.0.Wetterstation.Regen_Jahr" and
                                        r._field == "value"
                                      )
                                    

                                    Monat

                                    from(bucket: "ioBroker")
                                      |> range(start: v.timeRangeStart, stop:v.timeRangeStop)
                                      |> filter(fn: (r) =>
                                        r._measurement == "0_userdata.0.Wetterstation.Regen_Monat" and
                                        r._field == "value"
                                      )
                                    

                                    Woche

                                    from(bucket: "ioBroker")
                                      |> range(start: v.timeRangeStart, stop:v.timeRangeStop)
                                      |> filter(fn: (r) =>
                                        r._measurement == "0_userdata.0.Wetterstation.Regen_Woche" and
                                        r._field == "value"
                                      )
                                    

                                    Tag

                                    from(bucket: "ioBroker")
                                      |> range(start: v.timeRangeStart, stop:v.timeRangeStop)
                                      |> filter(fn: (r) =>
                                        r._measurement == "0_userdata.0.Wetterstation.Regen_Tag" and
                                        r._field == "value"
                                      )
                                    

                                    Und dann die settings & Overrides:
                                    Regen01.png

                                    Regen02.png
                                    Regen03.png
                                    Regen04.png

                                    Die Max Werte mußt du halt so wählen damit es dann auch passt, z.B. beim Jahr hab ich 900 als max Wert genommen, das kann natürlich abhängig von deiner Region, wie oft und wieviel es da regnet, auch zu hoch sein. Ich habe noch kein ganzes Jahr gelogged, deshalb hab ich es mal auf 900 gesetzt.

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

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

                                      @nashra

                                      na dann stellen sich folgende Fragen:

                                      1. deine Datensource (Bucket) heisst: iobroker (hast du zumindest geändert)
                                      2. deine WetterstionsDPs sind alle unter 0_userdata.0 oder sind die unter javascript.0.Wetterstation....
                                      3. die Datenpunkte sind bei dir genauso vorhanden

                                      Sonst kann ich es mir nicht erklären, wo es sonst noch haken könnte.

                                      Ja, alles unter 0_userdata.0, DP vorhanden und auch befüllt. Aber ohne die ....__10min funktioniert es.

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

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

                                        @Nashra
                                        Du hast wahrscheinlich keine Daten im Bucket. Wenn es relativ Windstill ist oder sich die Richtung im 10 Minutenraster nicht ändert, steht kaum was in der DB.
                                        Entweder musst du beim loggen bspw. jede Stunde mal das schreiben eines Wertes erzwingen, oder die aktuellen Werte nutzen (also nicht den 10 Minuten Durchschnitt):

                                        from(bucket: "${DatenBucket}")
                                          |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                                          |> filter(fn: (r) => r._measurement == "0_userdata.0.Wetterstation.Windrichtung" or r._measurement == "0_userdata.0.Wetterstation.Wind")
                                          |> filter(fn: (r) => r._field == "value")
                                          |> pivot(rowKey:["_time"], columnKey: ["_measurement"], valueColumn: "_value")
                                          |> filter(fn: (r) => exists r["0_userdata.0.Wetterstation.Windrichtung"] and exists r["0_userdata.0.Wetterstation.Wind"])
                                          |> rename(columns: {"0_userdata.0.Wetterstation.Windrichtung": "wind_direction", "0_userdata.0.Wetterstation.Wind": "wind_speed"})
                                          |> map(fn: (r) => ({ r with  direction: r.wind_direction}))
                                          |> map(fn: (r) => ({ r with  speed: r.wind_speed}))
                                          |> aggregateWindow(every: 2m0s, fn: first, column: "direction", createEmpty: false)
                                        

                                        Moin, die ..._10min rausgenommen und läuft. Obwohl Daten ohne Ende in den Datenpunkten.
                                        Schau mir das am Wochenende mal genau an, da habe ich mehr Zeit.

                                        windrose1.png

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

                                          @nashra Kommt halt auf beide DPs an. Bei mir sah bspw. gestern die 10 Min Windrichtung so aus (also bis kurz vor Mitternacht ein einziger Wert; ich erzwinge hier kein zusätzliches schreiben):
                                          Bild 001.png

                                          Man muss für die Anzeige nicht unbedingt den 10 Minutenwert nehmen, sondern erhöht einfach bei der Abfrage #10 das aggregieren auf 10 Minuten, hat den gleichen Effekt, umgeht aber das Problem zu wenig Werte zu haben.

                                          aggregateWindow(every: 10m0s, fn: first, column: "direction", createEmpty: true)
                                          
                                          1 Reply Last reply Reply Quote 0
                                          • SBorg
                                            SBorg Forum Testing Most Active @Chris76e last edited by SBorg

                                            @chris76e
                                            Du musst im Plugin noch auf "km/h" umstellen, denn der gelieferte Wert ist nicht "m/s" 😉

                                            btw: das "unschöne" Datenpunktwirrwarr bei der Temperatur kannst du umgehen:
                                            1701167180364.png
                                            Zeile #5 einfügen (value natürlich anpassen 😉 ) : |> set(key: "_field", value: "Aussen")
                                            Dann in den Optionen eintragen: ${__field.name} (sind wirklich zwei Unterstriche)
                                            Dann noch bei den "Overrides" eintragen: ${__field.name} und die neue Datenquelle auswählen.
                                            Bild 003.png
                                            Sollte die noch nicht in der Liste auftauchen, Panel speichern, schließen und Panel erneut zum editieren öffnen, dann sollte es nun auch in der Liste auftauchen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            849
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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