Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

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

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

[Linux Shell-Skript] WLAN-Wetterstation

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
linuxshell-scriptwetterstationwlan-wetterstation
5.7k Beiträge 152 Kommentatoren 3.8m Aufrufe 134 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • G G.Hawk
    pi@raspberrypi:~ $ ls -la /home/iobroker/wetterstation.sh
    -rwxr-xr-x 1 root root 15472 Nov  3 09:40 /home/iobroker/wetterstation.sh
    

    Mod-Edit: Code in </> Code-Tag gepackt!

    G Offline
    G Offline
    G.Hawk
    schrieb am zuletzt editiert von
    #3101

    @martin-0
    Es lag an der Formatierung.

    Ich habe Leerzeilen eingefügt zwischen den Befehlen. Jetzt geht es.

    V 1 Antwort Letzte Antwort
    0
    • G G.Hawk

      @martin-0
      Es lag an der Formatierung.

      Ich habe Leerzeilen eingefügt zwischen den Befehlen. Jetzt geht es.

      V Offline
      V Offline
      viper4iob
      schrieb am zuletzt editiert von viper4iob
      #3102

      @martin-0
      Das klingt dann danach, dass die Zeilenumbrüche nicht gepasst haben.
      Linux nutzt LF und Windows CRLF und wenn man das irgendwie von Windows rüber holt, hat man evtl. die falschen.
      Da gibt es dann z.B. das Kommando dos2unix, um das umzuwandeln.
      Und wenn man die Zeilenumbrüche he dem Editor unter Linux wieder einfügt, nimmt er natürlich LF
      Du hast also vorhin beim Löschen der Leerzeilen wahrscheinlich die falschen gelöscht und dann durchs einfügen, die richtigen hinzugefügt.

      1 Antwort Letzte Antwort
      0
      • G G.Hawk
        pi@raspberrypi:~ $ ls -la /home/iobroker/wetterstation.sh
        -rwxr-xr-x 1 root root 15472 Nov  3 09:40 /home/iobroker/wetterstation.sh
        

        Mod-Edit: Code in </> Code-Tag gepackt!

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

        @martin-0

        Die Datei in /home/iobroker sollte aber NIE dem root gehören.

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

        G 1 Antwort Letzte Antwort
        0
        • Thomas BraunT Thomas Braun

          @martin-0

          Die Datei in /home/iobroker sollte aber NIE dem root gehören.

          G Offline
          G Offline
          G.Hawk
          schrieb am zuletzt editiert von
          #3104

          @thomas-braun
          Ich habe alles mögliche umgestellt.
          Warum denn nicht?

          Thomas BraunT V 3 Antworten Letzte Antwort
          0
          • G G.Hawk

            @thomas-braun
            Ich habe alles mögliche umgestellt.
            Warum denn nicht?

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

            @martin-0
            Weil das das /home des iobrokers ist. Und nicht vom root. Der wohnt unter /root.

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

            1 Antwort Letzte Antwort
            0
            • G G.Hawk

              @thomas-braun
              Ich habe alles mögliche umgestellt.
              Warum denn nicht?

              V Offline
              V Offline
              viper4iob
              schrieb am zuletzt editiert von viper4iob
              #3106

              @martin-0
              Kannst du mal das machen :
              cat -e /etc/systemd/system/wetterstation.service

              Der sollte den Inhalt der Datei mit Zeilenumbrüchen darstellen. Ich hoffe auch CRLF, falls vorhanden.
              Was kommt da raus?
              Es geht zwar jetzt, aber diese Leerzeilen gehören da eigentlich nicht hin. Evtl. hast du jetzt beide Typen drin.

              EDIT
              Er müsste $ für LF anzeigen, was richtig wäre.
              Und ^M$ für CRLF. Die sollten da nicht auftauchen.

              V 1 Antwort Letzte Antwort
              0
              • G G.Hawk

                @thomas-braun
                Ich habe alles mögliche umgestellt.
                Warum denn nicht?

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

                @martin-0

                sudo chown iobroker:iobroker /home/iobroker/wetterstation.sh
                

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

                1 Antwort Letzte Antwort
                0
                • V viper4iob

                  @martin-0
                  Kannst du mal das machen :
                  cat -e /etc/systemd/system/wetterstation.service

                  Der sollte den Inhalt der Datei mit Zeilenumbrüchen darstellen. Ich hoffe auch CRLF, falls vorhanden.
                  Was kommt da raus?
                  Es geht zwar jetzt, aber diese Leerzeilen gehören da eigentlich nicht hin. Evtl. hast du jetzt beide Typen drin.

                  EDIT
                  Er müsste $ für LF anzeigen, was richtig wäre.
                  Und ^M$ für CRLF. Die sollten da nicht auftauchen.

                  V Offline
                  V Offline
                  viper4iob
                  schrieb am zuletzt editiert von viper4iob
                  #3108

                  Zum Thema Dateirechten und Besitzerschaft vom Skript:
                  Im Prinzip gebe ich @Martin-0 recht. Wenn man das Skript im Home vom iobroker betreibt, sollte es auch iobroker gehören.
                  Aus Sicherheitssicht spielt es aber keine große Rolle, denn sobald das Skript als systemd Service gestartet wird, läuft es unter root. Kann man beispielsweise mit ps -ef | grep wetterstation kontrollieren.
                  Und das Risiko ist denke ich deutlich höher, falls eben jemand das Github Repository manipuliert und man sich diese Änderungen dann installiert.

                  Wichtig wäre also meiner Meinung nach den Service unter einem anderen User als root ausführen zu lassen. Das Skript braucht soweit ich das aktuell feststellen konnte, für das normale Ausführen keine root-Rechte, es führt netcat aus und solange der Port über 1024 ist, braucht das keine root Rechte. Und dann kommuniziert es mit iobroker und die InfluxDB über deren Schnittstellen, was ebenfalls keine root Rechte benötigt.
                  Um den Service als anderer User zu starten muss man im Service File im Abschnitt [Service] die Argumente User und Group hinzufügen und da dann beispielsweise den iobroker angeben.
                  Ich hab es aktuell unter meinem eigenen User laufen.
                  Streng genommen sind beide User nicht optimal und man müsste einen komplett neuen User nur für das Skript anlegen, der sich auch nicht interaktiv anmelden kann und darüber dann den Dienst laufen lassen, aber das war mir dann auch zu viel des Guten.
                  Unter meinem User funktioniert es auf alle Fälle.
                  Über den iobroker User habe ich es noch nicht getestet. Der iobroker user wäre vielleicht aktuell sogar die bessere Wahl, weil der sich wahrscheinlich nicht interaktiv anmelden kann, also nur ein System User ist. Nur weiß man nie, ob sich da mit irgendeinem Update mal wieder was ändern könnte. Bis vor einiger Zeit lief der iobroker auch nicht unter eigenem User, das wurde dann irgendwann mal angepasst.

                  @SBorg
                  Das wäre evtl. nochmal ein Punkt, worüber man für den Install Guide und der Service File Definition nachdenken könnte. Vielleicht auch einfach nur als Hinweis und man kann dann selbst entscheiden.

                  SBorgS 1 Antwort Letzte Antwort
                  1
                  • V viper4iob

                    Zum Thema Dateirechten und Besitzerschaft vom Skript:
                    Im Prinzip gebe ich @Martin-0 recht. Wenn man das Skript im Home vom iobroker betreibt, sollte es auch iobroker gehören.
                    Aus Sicherheitssicht spielt es aber keine große Rolle, denn sobald das Skript als systemd Service gestartet wird, läuft es unter root. Kann man beispielsweise mit ps -ef | grep wetterstation kontrollieren.
                    Und das Risiko ist denke ich deutlich höher, falls eben jemand das Github Repository manipuliert und man sich diese Änderungen dann installiert.

                    Wichtig wäre also meiner Meinung nach den Service unter einem anderen User als root ausführen zu lassen. Das Skript braucht soweit ich das aktuell feststellen konnte, für das normale Ausführen keine root-Rechte, es führt netcat aus und solange der Port über 1024 ist, braucht das keine root Rechte. Und dann kommuniziert es mit iobroker und die InfluxDB über deren Schnittstellen, was ebenfalls keine root Rechte benötigt.
                    Um den Service als anderer User zu starten muss man im Service File im Abschnitt [Service] die Argumente User und Group hinzufügen und da dann beispielsweise den iobroker angeben.
                    Ich hab es aktuell unter meinem eigenen User laufen.
                    Streng genommen sind beide User nicht optimal und man müsste einen komplett neuen User nur für das Skript anlegen, der sich auch nicht interaktiv anmelden kann und darüber dann den Dienst laufen lassen, aber das war mir dann auch zu viel des Guten.
                    Unter meinem User funktioniert es auf alle Fälle.
                    Über den iobroker User habe ich es noch nicht getestet. Der iobroker user wäre vielleicht aktuell sogar die bessere Wahl, weil der sich wahrscheinlich nicht interaktiv anmelden kann, also nur ein System User ist. Nur weiß man nie, ob sich da mit irgendeinem Update mal wieder was ändern könnte. Bis vor einiger Zeit lief der iobroker auch nicht unter eigenem User, das wurde dann irgendwann mal angepasst.

                    @SBorg
                    Das wäre evtl. nochmal ein Punkt, worüber man für den Install Guide und der Service File Definition nachdenken könnte. Vielleicht auch einfach nur als Hinweis und man kann dann selbst entscheiden.

                    SBorgS Offline
                    SBorgS Offline
                    SBorg
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von
                    #3109

                    @viper4iob Solange bspw. die "sh" root:root gehört und der User also das Ganze als root durchführt (weil es ja einfacher ist und man nicht dauernd ein Passwort eingeben muss, oder dauernd ein sudo nutzen muss... :man-facepalming: ) sehe ich es noch als "geringeres Übel" an. 99% der User werden auch einfach die "sh"s ausführen ohne vorher mal rein zu sehen. Wozu auch, verstehen eh nur die wenigsten und bei Windows sehe ich in der setup.exe eh nicht was am/im System passiert. Ihnen ist aber nicht bewusst, dass, wenn sie es als "root" ausführen, ich die volle Kontrolle über ihr Systems erlange. Wenn ich dies denn wollte, und nein liebe Mitleser, da brauche ich nicht mal was zu hacken.
                    Diese Gefahr besteht natürlich auch wenn man meinen GitHub-Account hackt. Deswegen announce ich auch neue Betas und Releases immer hier. So müsste er auch meinen Foren-Account hacken. Allerdings wird da nicht jeder darauf achten, und diejenigen die per Suche auf das GitHub-Repository stoßen sowieso nicht.

                    Trotzdem könnte man es natürlich auch einfach als User-Service laufen lassen, gäbe es nicht wieder eine Ausnahme mit Protokoll #9. Dies läuft explizit (da es ein offizieller Web-Server sein muss) nur auf Port 80, sonst würde ich einfach keine Ports <=1024 mehr zulassen und könnte mich damit nur Userrechten zuwenden.

                    Die Idee mit einem extra unprivilegierten User hat aber was (iobroker mag ich aus den von dir schon genannten Gründen nicht). Dann müsste nur der Protokoll #9-Nutzer den Service halt mit root-Rechten laufen lassen.


                    Nutzt denn wer einen Port <=1024? Wenn ja, warum (außer Protokoll #9-Nutzer ;) ) ? Es gibt ~64.5k andere Ports :)

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

                    V L 2 Antworten Letzte Antwort
                    0
                    • SBorgS SBorg

                      @viper4iob Solange bspw. die "sh" root:root gehört und der User also das Ganze als root durchführt (weil es ja einfacher ist und man nicht dauernd ein Passwort eingeben muss, oder dauernd ein sudo nutzen muss... :man-facepalming: ) sehe ich es noch als "geringeres Übel" an. 99% der User werden auch einfach die "sh"s ausführen ohne vorher mal rein zu sehen. Wozu auch, verstehen eh nur die wenigsten und bei Windows sehe ich in der setup.exe eh nicht was am/im System passiert. Ihnen ist aber nicht bewusst, dass, wenn sie es als "root" ausführen, ich die volle Kontrolle über ihr Systems erlange. Wenn ich dies denn wollte, und nein liebe Mitleser, da brauche ich nicht mal was zu hacken.
                      Diese Gefahr besteht natürlich auch wenn man meinen GitHub-Account hackt. Deswegen announce ich auch neue Betas und Releases immer hier. So müsste er auch meinen Foren-Account hacken. Allerdings wird da nicht jeder darauf achten, und diejenigen die per Suche auf das GitHub-Repository stoßen sowieso nicht.

                      Trotzdem könnte man es natürlich auch einfach als User-Service laufen lassen, gäbe es nicht wieder eine Ausnahme mit Protokoll #9. Dies läuft explizit (da es ein offizieller Web-Server sein muss) nur auf Port 80, sonst würde ich einfach keine Ports <=1024 mehr zulassen und könnte mich damit nur Userrechten zuwenden.

                      Die Idee mit einem extra unprivilegierten User hat aber was (iobroker mag ich aus den von dir schon genannten Gründen nicht). Dann müsste nur der Protokoll #9-Nutzer den Service halt mit root-Rechten laufen lassen.


                      Nutzt denn wer einen Port <=1024? Wenn ja, warum (außer Protokoll #9-Nutzer ;) ) ? Es gibt ~64.5k andere Ports :)

                      V Offline
                      V Offline
                      viper4iob
                      schrieb am zuletzt editiert von viper4iob
                      #3110

                      Ich habe mal eine Frage Richtung Best Practice für das Thema iobroker, InfluxDB, Grafana.
                      Und zwar gibt es Datenpunkte, bei denen nur der aktuelle Wert eine Rolle spielt, wie z.B. Letzte_Regenmenge. Aus Sicht iobroker macht es keinen Sinn diese als Historie in der InfluxDB mitzuschreiben.
                      Damit der Wert aber in Grafana angezeigt werden kann, muss man es doch tun.
                      Da sich der Wert nicht so oft ändert, lasse ich nur Änderungen in die DB schreiben, man muss ja nicht unnötig Daten schreiben, dachte ich.
                      Allerdings ist das nun für Grafana ein ziemliches Problem, denn Grafana zeigt Werte aus einem bestimmten Zeitraum an. Also beispielsweise die letzten 24 Stunden. Für einen Graphen ist das natürlich sinnvoll, aber oft will man ja nur den letzten aktuellen Wert anzeigen.
                      Und da kommen wir zum Problem: Wenn innerhalb dieses Zeitraums kein Wert in die InfluxDB geschrieben wurde, zeigt er gar nichts an, also NA bzw. No Data.
                      Muss ich jetzt wirklich im iobroker bei der Historie eines solchen Datenpunkts einstellen, dass der in festen Zeitabständen geschrieben wird, damit das in Grafana angezeigt wird?
                      Wenn man das auf die Spitze treibt und ich in Grafana mal den Zeitraum auf 5 min stellen will, dann müsste man im iobroker einstellen, dass im Endeffekt alle 5 min der gleiche Wert geschrieben wird, nur damit es in Grafana angezeigt wird.
                      Das macht irgendwie keinen Sinn.
                      Was ist hier also sinnvoll?

                      SBorgS 1 Antwort Letzte Antwort
                      0
                      • L LaplaceII

                        Hallo,

                        hoffe hier kann mir jemand weiterhelfen. Gibt es einen Adapter mit dem man die Wetterstation 7 in 1 von Explore Scientific (Vertrieb über Bresser WSX3001) auslesen kann? Über WUnderground funktioniert das, aber ich würde gerne die Station gerne direkt aus dem eigenen Netzwerk auslesen, vergleichbar dem Skript hier (leider ist die Explore Scientific nicht dabei)?

                        Danke

                        T Offline
                        T Offline
                        tege0
                        schrieb am zuletzt editiert von
                        #3111

                        @laplaceii Hallo, bin auch am überlegen mir die BRESSER WLAN Comfort Wettercenter mit 7-in-1 zuzulegen. Konntest du deine Station die ja ein Clone dazu ist integrieren? Finde das Stationsdisplay eigentlich ganz schick. Wie sind deine Erfahrungen?

                        Zudem hab ich noch eine andere frage, ich würde gerne eine Onedrop Meldung bekommen. Welchen Sensoren kann ich hierfür einbinden?

                        L SBorgS 2 Antworten Letzte Antwort
                        0
                        • T tege0

                          @laplaceii Hallo, bin auch am überlegen mir die BRESSER WLAN Comfort Wettercenter mit 7-in-1 zuzulegen. Konntest du deine Station die ja ein Clone dazu ist integrieren? Finde das Stationsdisplay eigentlich ganz schick. Wie sind deine Erfahrungen?

                          Zudem hab ich noch eine andere frage, ich würde gerne eine Onedrop Meldung bekommen. Welchen Sensoren kann ich hierfür einbinden?

                          L Offline
                          L Offline
                          LaplaceII
                          schrieb am zuletzt editiert von LaplaceII
                          #3112

                          @tege0 Hallo, ich habe auch tatsächlich die Bresser Station (ist baugleich mit der Explore Scientific, da Bresser die Station nur vertreibt, steht sogar Explore Scientifc drauf). Ich habe mich um die Integration, trotz angebotener Unterstützung nicht wirklich kümmern können. Über den klassischen Weg die WS View app zu nutzen geht es nicht: Wenn ich unter Device list die IP der Station angebe passiert leider nichts. Ggf. hat hier jemand schon Erfahrungen....
                          Den in der Installationsanleitung gezeigten Screen kann ich bei mir nicht aufrufen
                          a9bdfae3-4828-4459-9cc8-2654ed87065d-image.png

                          1 Antwort Letzte Antwort
                          0
                          • SBorgS SBorg

                            @viper4iob Solange bspw. die "sh" root:root gehört und der User also das Ganze als root durchführt (weil es ja einfacher ist und man nicht dauernd ein Passwort eingeben muss, oder dauernd ein sudo nutzen muss... :man-facepalming: ) sehe ich es noch als "geringeres Übel" an. 99% der User werden auch einfach die "sh"s ausführen ohne vorher mal rein zu sehen. Wozu auch, verstehen eh nur die wenigsten und bei Windows sehe ich in der setup.exe eh nicht was am/im System passiert. Ihnen ist aber nicht bewusst, dass, wenn sie es als "root" ausführen, ich die volle Kontrolle über ihr Systems erlange. Wenn ich dies denn wollte, und nein liebe Mitleser, da brauche ich nicht mal was zu hacken.
                            Diese Gefahr besteht natürlich auch wenn man meinen GitHub-Account hackt. Deswegen announce ich auch neue Betas und Releases immer hier. So müsste er auch meinen Foren-Account hacken. Allerdings wird da nicht jeder darauf achten, und diejenigen die per Suche auf das GitHub-Repository stoßen sowieso nicht.

                            Trotzdem könnte man es natürlich auch einfach als User-Service laufen lassen, gäbe es nicht wieder eine Ausnahme mit Protokoll #9. Dies läuft explizit (da es ein offizieller Web-Server sein muss) nur auf Port 80, sonst würde ich einfach keine Ports <=1024 mehr zulassen und könnte mich damit nur Userrechten zuwenden.

                            Die Idee mit einem extra unprivilegierten User hat aber was (iobroker mag ich aus den von dir schon genannten Gründen nicht). Dann müsste nur der Protokoll #9-Nutzer den Service halt mit root-Rechten laufen lassen.


                            Nutzt denn wer einen Port <=1024? Wenn ja, warum (außer Protokoll #9-Nutzer ;) ) ? Es gibt ~64.5k andere Ports :)

                            L Offline
                            L Offline
                            Langer
                            schrieb am zuletzt editiert von
                            #3113

                            @sborg

                            Hallo,

                            anbei ein Screenshot einer Darstellung von Deinem Wetterstatistik Programm. Von Liv-in-sky habe ich mir die Grundlagen geholt.

                            Statistik.png
                            Nun meine Fragen:

                            1. Könnte man zB. am 01.01.2022 eine komplette Monatsstruktur anlegen, also 01 - 12 und mit jeweils mit einem json füllen der nur "0" als Wert enthält?
                            {
                            "Tiefstwert":0,
                            "Hoechstwert":0,
                            "Temp_Durchschnitt":0,
                            "Max_Windboe":0,
                            "Max_Regenmenge":0,
                            "Regenmenge_Monat":0,
                            "warme_Tage":0,
                            "Sommertage":0,
                            "heisse_Tage":0,
                            "Frost_Tage":0,
                            "kalte_Tage":0,
                            "Eistage":0,
                            "sehr_kalte_Tage":0,
                            "Trockenperiode":0
                            }
                            
                            1. Wenn Du um 01:03 Deine Statistik erstellst, auch für den laufenden Monat einen json erstellst bzw. Aktualisierst?
                            {
                            "Tiefstwert":-3.5,
                            "Hoechstwert":10.61,
                            "Temp_Durchschnitt":3.91,
                            "Max_Windboe":21.88,
                            "Max_Regenmenge":21.3,
                            "Regenmenge_Monat":51.5,
                            "warme_Tage":0,
                            "Sommertage":0,
                            "heisse_Tage":0,
                            "Frost_Tage":5,
                            "kalte_Tage":7,
                            "Eistage":0,
                            "sehr_kalte_Tage":0,
                            "Trockenperiode":0
                            }
                            
                            1. Das gleiche für das laufende Jahr?

                            2. Das gleiche für die Rekordwerte?

                            Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt?

                            Über die Darstellung kann man streiten, aber es ist erst der Anfang!!

                            Vielen Dank im voraus

                            MfG
                            Wastl

                            SBorgS 1 Antwort Letzte Antwort
                            0
                            • V viper4iob

                              Ich habe mal eine Frage Richtung Best Practice für das Thema iobroker, InfluxDB, Grafana.
                              Und zwar gibt es Datenpunkte, bei denen nur der aktuelle Wert eine Rolle spielt, wie z.B. Letzte_Regenmenge. Aus Sicht iobroker macht es keinen Sinn diese als Historie in der InfluxDB mitzuschreiben.
                              Damit der Wert aber in Grafana angezeigt werden kann, muss man es doch tun.
                              Da sich der Wert nicht so oft ändert, lasse ich nur Änderungen in die DB schreiben, man muss ja nicht unnötig Daten schreiben, dachte ich.
                              Allerdings ist das nun für Grafana ein ziemliches Problem, denn Grafana zeigt Werte aus einem bestimmten Zeitraum an. Also beispielsweise die letzten 24 Stunden. Für einen Graphen ist das natürlich sinnvoll, aber oft will man ja nur den letzten aktuellen Wert anzeigen.
                              Und da kommen wir zum Problem: Wenn innerhalb dieses Zeitraums kein Wert in die InfluxDB geschrieben wurde, zeigt er gar nichts an, also NA bzw. No Data.
                              Muss ich jetzt wirklich im iobroker bei der Historie eines solchen Datenpunkts einstellen, dass der in festen Zeitabständen geschrieben wird, damit das in Grafana angezeigt wird?
                              Wenn man das auf die Spitze treibt und ich in Grafana mal den Zeitraum auf 5 min stellen will, dann müsste man im iobroker einstellen, dass im Endeffekt alle 5 min der gleiche Wert geschrieben wird, nur damit es in Grafana angezeigt wird.
                              Das macht irgendwie keinen Sinn.
                              Was ist hier also sinnvoll?

                              SBorgS Offline
                              SBorgS Offline
                              SBorg
                              Forum Testing Most Active
                              schrieb am zuletzt editiert von
                              #3114

                              @viper4iob IMHO am einfachsten die "Gruppierung" weg lassen, dann ist die Abfrage von Grafana nach einem Zeitbereich in Influx auch weg. Trotzdem lasse ich alle 12h mal den Wert schreiben. Sind dann max. (unnötige) 730 Datenpunkte in der Influx, was aber nur paar kB ausmacht.
                              Man kann natürlich auch innerhalb der Serie(n) zB. auf 14 Tage beschränken mittels einer Retention Policy. Dann wird immer alles älter als 14 Tage gedroppt. Aktuell wird nach einem Jahr gelöscht (sofern man im Influx-Adapter nichts anderes eingestellt hat).
                              Bild 1.png

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

                              V 1 Antwort Letzte Antwort
                              0
                              • T tege0

                                @laplaceii Hallo, bin auch am überlegen mir die BRESSER WLAN Comfort Wettercenter mit 7-in-1 zuzulegen. Konntest du deine Station die ja ein Clone dazu ist integrieren? Finde das Stationsdisplay eigentlich ganz schick. Wie sind deine Erfahrungen?

                                Zudem hab ich noch eine andere frage, ich würde gerne eine Onedrop Meldung bekommen. Welchen Sensoren kann ich hierfür einbinden?

                                SBorgS Offline
                                SBorgS Offline
                                SBorg
                                Forum Testing Most Active
                                schrieb am zuletzt editiert von
                                #3115

                                @tege0 / @laplaceii Wenn die Station keinen eigenen Wetterserver zulässt, bleibt nur der Umweg per DNS-Server. Hier werden die Daten die normalerweise an WU geschickt werden auf einen heimischen Rechner umgeleitet, auf dem dann das Skript läuft. Leider ist man dann auf das WU-Protokoll beschränkt: weniger Funktionen u. weniger Sensoren.
                                Wenn man bspw. schon PiHole nutzt braucht man nur einen zusätzlichen Eintrag tätigen, sonst muss man zB. dnsmasq installieren und dort konfigurieren...

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

                                Finde das Stationsdisplay eigentlich ganz schick

                                Bei uns schaut da kaum einer drauf. Ich habe es halt aufgestellt weil es dabei war ;)
                                Die Bresser hat so keinen besseren Funktionsumfang. Wenn es nur rein um das Display geht, solltest du ev. das Gateway mit Wettermast in Betracht ziehen (da kannst du dann auch später/gleich weitere Sensoren hinzufügen). Als Anzeige nimmst du dann ein kleines Tablett oder Monitor mit bspw. einem alten Pi und lässt dort eine ioB-View drauf laufen. Da kannst du dir nicht nur das Aussehen nach belieben gestalten, sondern auch weitere Werte anzeigen lassen die das Display nicht kann. Sogar Touch ist dann möglich ;)

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

                                1 Antwort Letzte Antwort
                                0
                                • L Langer

                                  @sborg

                                  Hallo,

                                  anbei ein Screenshot einer Darstellung von Deinem Wetterstatistik Programm. Von Liv-in-sky habe ich mir die Grundlagen geholt.

                                  Statistik.png
                                  Nun meine Fragen:

                                  1. Könnte man zB. am 01.01.2022 eine komplette Monatsstruktur anlegen, also 01 - 12 und mit jeweils mit einem json füllen der nur "0" als Wert enthält?
                                  {
                                  "Tiefstwert":0,
                                  "Hoechstwert":0,
                                  "Temp_Durchschnitt":0,
                                  "Max_Windboe":0,
                                  "Max_Regenmenge":0,
                                  "Regenmenge_Monat":0,
                                  "warme_Tage":0,
                                  "Sommertage":0,
                                  "heisse_Tage":0,
                                  "Frost_Tage":0,
                                  "kalte_Tage":0,
                                  "Eistage":0,
                                  "sehr_kalte_Tage":0,
                                  "Trockenperiode":0
                                  }
                                  
                                  1. Wenn Du um 01:03 Deine Statistik erstellst, auch für den laufenden Monat einen json erstellst bzw. Aktualisierst?
                                  {
                                  "Tiefstwert":-3.5,
                                  "Hoechstwert":10.61,
                                  "Temp_Durchschnitt":3.91,
                                  "Max_Windboe":21.88,
                                  "Max_Regenmenge":21.3,
                                  "Regenmenge_Monat":51.5,
                                  "warme_Tage":0,
                                  "Sommertage":0,
                                  "heisse_Tage":0,
                                  "Frost_Tage":5,
                                  "kalte_Tage":7,
                                  "Eistage":0,
                                  "sehr_kalte_Tage":0,
                                  "Trockenperiode":0
                                  }
                                  
                                  1. Das gleiche für das laufende Jahr?

                                  2. Das gleiche für die Rekordwerte?

                                  Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt?

                                  Über die Darstellung kann man streiten, aber es ist erst der Anfang!!

                                  Vielen Dank im voraus

                                  MfG
                                  Wastl

                                  SBorgS Offline
                                  SBorgS Offline
                                  SBorg
                                  Forum Testing Most Active
                                  schrieb am zuletzt editiert von
                                  #3116

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

                                  1. Könnte man zB. am 01.01.2022 eine komplette Monatsstruktur anlegen, also 01 - 12 und mit jeweils mit einem json füllen der nur "0" als Wert enthält?
                                  2. Wenn Du um 01:03 Deine Statistik erstellst, auch für den laufenden Monat einen json erstellst bzw. Aktualisierst?
                                  3. Das gleiche für das laufende Jahr?
                                  4. Das gleiche für die Rekordwerte?

                                  Pauschal ja, aber da ich ein massives Zeitproblem habe aktuell leider nicht.
                                  #1 ist eher unkritisch, dass sollte sich auch zeitnah lösen lassen, da es max. nur eine handvoll Quellcode ist.
                                  #2-4 birgt leider noch ein weiteres Problem (bei #2 nicht so dramatisch). #3 + #4 sind, gerade zum Ende des Jahres bei vielen Datensätzen, eigentlich ein absolutes "Killerfeature" für Pi-Nutzer. Der braucht da 2-3 Minuten unter JS dafür, dabei laggt dann das ganze System. Unter Linux dauert die Abfrage unter 2 Sekunden, dann wäre aber ein Teil der Statistik im JS-Teil, der andere im Wetterstation-Skript...
                                  Das schreit dann schon wieder fast nach einer Wetterstatistik.sh, gerade weil es dann eigentlich nur Abfragen gegen die InfluxDB sind, wobei das für #4 eigentlich nicht gilt...
                                  ...und wo ich gerade tippe, #4? Das sind Allzeitwerte, also bspw. die höchste jemals gemessene Außentemperatur von 43.1° gemessen am 15.07.2020
                                  Solange es jetzt nicht über 43.1°C wird (oder du den Wert löschst) wird sich da nix mehr weiter tun ;)
                                  Sonst bitte Stellungnahme in dreifacher, schriftlicher Ausführung mit Durchschlag auf Normblatt 08/15 DIN A4 quer, gelocht mit Schrägstanzung :joy:

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

                                  L 1 Antwort Letzte Antwort
                                  0
                                  • SBorgS SBorg

                                    @viper4iob IMHO am einfachsten die "Gruppierung" weg lassen, dann ist die Abfrage von Grafana nach einem Zeitbereich in Influx auch weg. Trotzdem lasse ich alle 12h mal den Wert schreiben. Sind dann max. (unnötige) 730 Datenpunkte in der Influx, was aber nur paar kB ausmacht.
                                    Man kann natürlich auch innerhalb der Serie(n) zB. auf 14 Tage beschränken mittels einer Retention Policy. Dann wird immer alles älter als 14 Tage gedroppt. Aktuell wird nach einem Jahr gelöscht (sofern man im Influx-Adapter nichts anderes eingestellt hat).
                                    Bild 1.png

                                    V Offline
                                    V Offline
                                    viper4iob
                                    schrieb am zuletzt editiert von viper4iob
                                    #3117

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

                                    @viper4iob IMHO am einfachsten die "Gruppierung" weg lassen, dann ist die Abfrage von Grafana nach einem Zeitbereich in Influx auch weg. Trotzdem lasse ich alle 12h mal den Wert schreiben. Sind dann max. (unnötige) 730 Datenpunkte in der Influx, was aber nur paar kB ausmacht.
                                    Man kann natürlich auch innerhalb der Serie(n) zB. auf 14 Tage beschränken mittels einer Retention Policy. Dann wird immer alles älter als 14 Tage gedroppt. Aktuell wird nach einem Jahr gelöscht (sofern man im Influx-Adapter nichts anderes eingestellt hat).
                                    Bild 1.png

                                    Die Gruppierung wegzulassen hatte ich schon probiert, das hat leider nicht geholfen.
                                    Grafana fragt die Werte trotzdem immer nur in dem aktuellen Zeitraum ab, also z.B. die letzten 24h. Das sieht man im Query Inspector, bei jeder Abfrage steht am Ende der Zeitraum: z.B.
                                    SELECT "value" FROM "javascript.0.Wetterstation.Regenstatus" WHERE time >= now() - 24h and time <= now()
                                    Und wenn er da keine Daten findet, wird auch nichts angezeigt, die Gruppierung hat da keinen Unterschied gemacht.

                                    Ich lasse jetzt auch einfach die betroffenen Datenpunkte zwar nur bei Änderung schreiben, aber zusätzlich nochmal alle 6 Stunden.

                                    SBorgS 1 Antwort Letzte Antwort
                                    0
                                    • V viper4iob

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

                                      @viper4iob IMHO am einfachsten die "Gruppierung" weg lassen, dann ist die Abfrage von Grafana nach einem Zeitbereich in Influx auch weg. Trotzdem lasse ich alle 12h mal den Wert schreiben. Sind dann max. (unnötige) 730 Datenpunkte in der Influx, was aber nur paar kB ausmacht.
                                      Man kann natürlich auch innerhalb der Serie(n) zB. auf 14 Tage beschränken mittels einer Retention Policy. Dann wird immer alles älter als 14 Tage gedroppt. Aktuell wird nach einem Jahr gelöscht (sofern man im Influx-Adapter nichts anderes eingestellt hat).
                                      Bild 1.png

                                      Die Gruppierung wegzulassen hatte ich schon probiert, das hat leider nicht geholfen.
                                      Grafana fragt die Werte trotzdem immer nur in dem aktuellen Zeitraum ab, also z.B. die letzten 24h. Das sieht man im Query Inspector, bei jeder Abfrage steht am Ende der Zeitraum: z.B.
                                      SELECT "value" FROM "javascript.0.Wetterstation.Regenstatus" WHERE time >= now() - 24h and time <= now()
                                      Und wenn er da keine Daten findet, wird auch nichts angezeigt, die Gruppierung hat da keinen Unterschied gemacht.

                                      Ich lasse jetzt auch einfach die betroffenen Datenpunkte zwar nur bei Änderung schreiben, aber zusätzlich nochmal alle 6 Stunden.

                                      SBorgS Offline
                                      SBorgS Offline
                                      SBorg
                                      Forum Testing Most Active
                                      schrieb am zuletzt editiert von
                                      #3118

                                      @viper4iob Dann haben sie es wohl irgendwann geändert (ich glaube es gab in den letzten 14 Tagen vier neue Versionen).
                                      Mir ist es allerdings auch nicht aufgefallen, da ich es eben auch zusätzlich alle 12 Stunden schreiben lasse.

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

                                      V 1 Antwort Letzte Antwort
                                      0
                                      • SBorgS SBorg

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

                                        1. Könnte man zB. am 01.01.2022 eine komplette Monatsstruktur anlegen, also 01 - 12 und mit jeweils mit einem json füllen der nur "0" als Wert enthält?
                                        2. Wenn Du um 01:03 Deine Statistik erstellst, auch für den laufenden Monat einen json erstellst bzw. Aktualisierst?
                                        3. Das gleiche für das laufende Jahr?
                                        4. Das gleiche für die Rekordwerte?

                                        Pauschal ja, aber da ich ein massives Zeitproblem habe aktuell leider nicht.
                                        #1 ist eher unkritisch, dass sollte sich auch zeitnah lösen lassen, da es max. nur eine handvoll Quellcode ist.
                                        #2-4 birgt leider noch ein weiteres Problem (bei #2 nicht so dramatisch). #3 + #4 sind, gerade zum Ende des Jahres bei vielen Datensätzen, eigentlich ein absolutes "Killerfeature" für Pi-Nutzer. Der braucht da 2-3 Minuten unter JS dafür, dabei laggt dann das ganze System. Unter Linux dauert die Abfrage unter 2 Sekunden, dann wäre aber ein Teil der Statistik im JS-Teil, der andere im Wetterstation-Skript...
                                        Das schreit dann schon wieder fast nach einer Wetterstatistik.sh, gerade weil es dann eigentlich nur Abfragen gegen die InfluxDB sind, wobei das für #4 eigentlich nicht gilt...
                                        ...und wo ich gerade tippe, #4? Das sind Allzeitwerte, also bspw. die höchste jemals gemessene Außentemperatur von 43.1° gemessen am 15.07.2020
                                        Solange es jetzt nicht über 43.1°C wird (oder du den Wert löschst) wird sich da nix mehr weiter tun ;)
                                        Sonst bitte Stellungnahme in dreifacher, schriftlicher Ausführung mit Durchschlag auf Normblatt 08/15 DIN A4 quer, gelocht mit Schrägstanzung :joy:

                                        L Offline
                                        L Offline
                                        Langer
                                        schrieb am zuletzt editiert von
                                        #3119

                                        @sborg

                                        Danke für Deine schnelle Antwort, leider ist mir das Normblatt 08/15 DIN A4 quer, gelocht mit Schrägstanzung ausgegangen:white_frowning_face:

                                        Aber Spaß bei Seite, ich habe bzw. bin ja dabei mit Javascript die Tabellen wie im Screenshot zu sehen, zu erstellen.
                                        Meine Frage: Wenn ich also am zB. 1.1.2022 im laufe des Tages mein Script laufen lasse, der die Dummy Monate 02 - 12.2022 erstellt, kommt Dein Programm mit dem Vorhanden sein der Dummy Monate zurecht?

                                        Die Aktualisierung des laufenden Monats, der Rekordwerte und des laufenden Jahres läuft ja schon bei mir.
                                        Wenn Dein Programm dies beinhalten würde währe es halt für alle verfügbar.

                                        Bei Fragen, geht es auch ohne Normblätter!!

                                        MfG
                                        Wastl

                                        SBorgS 1 Antwort Letzte Antwort
                                        0
                                        • SBorgS SBorg

                                          @viper4iob Dann haben sie es wohl irgendwann geändert (ich glaube es gab in den letzten 14 Tagen vier neue Versionen).
                                          Mir ist es allerdings auch nicht aufgefallen, da ich es eben auch zusätzlich alle 12 Stunden schreiben lasse.

                                          V Offline
                                          V Offline
                                          viper4iob
                                          schrieb am zuletzt editiert von viper4iob
                                          #3120

                                          @sborg

                                          Noch ein kleiner Punkt zum Thema Grafana, und zwar die Windrose.
                                          Ich hatte mich gewundert, warum diese bei wenig Wind, wo sich also auch seltener die Windrichtung ändert, immer Wind aus 0° angezeigt wird:

                                          2021-11-11_14-49-46__Window.jpg
                                          Nun ist es so, dass hier das DB Abfrage Intervall 1 Minute ist, dass heißt Grafana liest für jede Minute einen Wert aus der InfluxDB aus.
                                          Wenn aber kein Wert verfügbar ist, wird dieser mit null gefüllt. Und null wird aber scheinbar von der Windrose als 0° interpretiert.
                                          Ich lasse die Werte vom iobroker nur bei Änderungen in die DB schreiben, weil sich der Wert im Normalfall sehr häufig ändert, außer bei geringem Wind.
                                          Wenn sich jetzt also z.B. 5 min lang die Richtung nicht ändert, dann habe ich einen realen Wert und 4 null-Werte, was mir das Gesamtbild der Windrose verfälscht.

                                          Ich habe jetzt statt fill(null) fill(previous) eingestellt, was das Bild meiner Meinung nach verbessert. Und es entspricht ja auch dem, was die Windfahne macht, sie bleibt so stehen bis sie ihre Richtung wieder ändert:
                                          2021-11-11_14-49-00__Window.jpg

                                          Man könnte jetzt natürlich auch im iobroker den Wert minütlich schreiben lassen, würde aber am Ende zum gleichen Ergebnis führen.

                                          SBorgS 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          751

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe