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

donate donate
  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.8k

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

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

[Linux Shell-Skript] WLAN-Wetterstation

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
linuxshell-scriptwetterstationwlan-wetterstation
5.7k Beiträge 153 Kommentatoren 3.8m Aufrufe 135 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.
  • SBorgS SBorg

    Das ganze entstand aus diesem Thread.
    Damit ist es möglich mit einem Linux-Client die Daten einer WLAN-Wetterstation und/oder mit Hilfe eines Gateways und Zusatzsensoren zu empfangen, aufzubereiten und im ioBroker zur Verfügung zu stellen. Optional können die Daten auch bei AWEKAS.at, OpenSenseMap, Windy und wetter.com zur Verfügung gestellt werden.
    Mein Dank geht an @Latzi für das testen in der Entwicklungsphase und dessen Unterstützung bei der Verfassung der WiKi-Artikel.


    Aktuelle Version auf GitHub: Current Release
    Neue Versionen im Thread sind ab V2.15.0 (Juli 2022) unterschiedlich farblich gekennzeichnet:

    • Beta-Releases haben dann eine rote Versionsnummer
    • stabile Releases haben dann eine grüne Versionsnummer

    Projektseite (inkl. WiKi): https://sborg2014.github.io/WLAN-Wetterstation/
    Da es sich um keinen Adapter handelt, ist dies eine "Vorschaltseite" von GitHub. Nicht das wer auf die Idee kommt von der URL im ioBroker installieren zu wollen ;)
    Zum Download/WiKi geht es dann weiter per View on GitHub

    Bisher geteste Stationen:

    • BRESSER
      • WLAN Farb-Wetter Center mit 5-in-1 Profi-Sensor V (1) @pandor
      • WLAN Comfort Wetterstation mit 7-in-1 Profi-Sensor (1)
    • ChiliTec Funk Wetterstation 12in1 @tege0
    • DNT Weatherscreen PRO @Petersilie
    • Ecowitt
      • GW1000
      • GW2000A
      • GW3000A @MartyBr
      • WS2910 @Nashra
      • WS3800A @hoschi2007
      • WS3900 @Mike77
    • ELV WS980WiFi @sonystar
    • Eurochron EFWS2900 @Latzi, @ilovegym, @SBorg (baugleich mit Ambient Weather WS-2902, Chilitec CTW-902, Sainlogic 10 in 1)
    • Froggit
      • Gateway/USB-Dongle DP1500/DP2000 @Boronsbruder
      • HP1000SE Pro @Stormbringer
      • WH3000 SE @ToxSox, @crunchip
      • WH4000 SE @unltdnetworx, @Glasfaser, @Negalein, @Boronsbruder
      • WH6000 Pro @Mugel80
    • Renkforce WH2600
    • Sainlogic
      • 7 in 1 WiFi WS3500 @tritor, @manu96
      • Profi Wlan Wetterstation FT0300 (1) @XxJooO
    • Ventus W830 @CiroCool, @Rushmed
    (1) Abfrage per DNS-Server wie bspw. PiHole oder dnsmasq

    Bisher unterstütze Zusatzsensoren per Station oder mittels DP1500/DP2000/GW1000/GW2000A - Gateway:

    • bis zu 8 Stück DP35/WN34 Wassertemperatur-Sensoren
    • ein DP40/WH32 (bzw. WH26) Außentemperatur- und Luftfeuchtigkeitssensor
    • bis zu 8 Stück DP50/WH31 Temperatur-/Luftfeuchtigkeit-Sensoren
    • ein DP60/WH57 Blitzsensor
    • bis zu 4 Stück DP70/WH55 Wasserleckage-Sensoren
    • bis zu 16 Stück DP100/WH51 Bodenfeuchte-Sensoren
    • bis zu 4 Stück DP200/WH43 PM2.5 Feinstaub-Sensoren
    • ein DP250/WH45 5-In-1 CO2 / PM2.5 / PM10 / Temperatur / Luftfeuchte Innenraumsensor
    • ein DP300/WS68 Solarunterstütztes Anemometer mit UV-Lichtsensor
    • ein WH31 (bzw. WH25) Sensor
    • ein WH40H Sensor
    • ein WS80 Sensor
    • ein WS90 "Wittboy" Sensor
    • BRESSER (1)
      • bis zu 4 Stück(2) BRESSER Thermo-/Hygro-Sensor 7 Kanal #7009999

    Für den WFC01 hat @Rand nun hier und folgende ein kleines Javascript gebaut, um diesen auch auslesen zu können.

    (1) nicht alle Bresser-Stationen unterstützen Zusatzsensoren! siehe hier
    (2) durch das verwendete Wunderground-Protokoll limitiert

    Die mögliche Anzahl der Zusatzsensoren ist nicht durch das Skript begrenzt, sondern wird vom Display und/oder Gateway bestimmt.

    Es besteht ferner auch die Möglichkeit Stationen (wie bspw. Sainlogic Profi Wlan Wetterstation FT0300) einzubinden die nicht per WS View[+] App konfiguriert werden können und nur ein Web-Interface bieten, dass keine Angabe eines eigenen Wetterdienst-Servers zulässt. Hierfür kann man den Umweg eines eigenen DNS-Servers wie dnsmasq oder Pi-hole gehen. Für Pi-hole hat @XxJooO freundlicherweise hier im Forum eine ausführliche Doku erstellt: klick mich

    Wäre schön wenn sich weitere User mit entsprechenden Modellen melden bei denen es funktioniert (auch wenn es baugleiche sein sollten, so ist man sich wenigstens sicher ;) )

    Update von einer Vorgängerversion (bei Nutzung per systemd):

    Im Installationsverzeichnis ./ws_updater.sh ausführen.
    Alternativ (falls die aktuell installierte Version kleiner als V2.12.0 ist): im Installationsverzeichnis bash <(curl -s https://raw.githubusercontent.com/SBorg2014/WLAN-Wetterstation/master/ws_updater.sh) ausführen

    Update von einer Vorgängerversion (bei Nutzung als cronjob):

    Am besten das laufende Skript mit pkill -9 wetterstation.sh stoppen, wetterstation.sh und -.sub ersetzen (-.conf und -.js nur nach Aufforderung nötig; conf dann neu konfigurieren / js ersetzen und einmalig ausführen), dann entweder

    • direkt am Linux-Client ./wetterstation.sh &
    • oder per Putty oä. nohup ./wetterstation.sh & (erzeugt dabei eine Datei nohup.out)
    • oder reboot des Systemes (Skript wird dann per cronjob wieder gestartet)

    jeweils im Installationsverzeichnis ausführen. Sonst befindet sich ggf. noch das alte Skript im RAM und läuft munter bis zum nächsten Reboot weiter ;)

    Beispiele einer grafischen Umsetzung:
    @Glasfaser: View / zum Beitrag
    View

    @crunchip: Grafana / zum Beitrag
    Grafana

    Wetterstation-Statistik (JS-Addon)

    Statistikmodul als Javascript. Liefert diverse Statistiken:
    Bild 1.png

    Javascript für eine HTML-Tabelle vorheriger Monatswerte ( @liv-in-sky ) :

    Beispiel 1Beispiel 2
    zum Thread

    Neues Projekt PimpMyStation (14.11.2020)

    Google Spreadsheet


    Kein Support per PM/Chat !

    jensfrJ Offline
    jensfrJ Offline
    jensfr
    schrieb am zuletzt editiert von
    #1212

    Tolles Skript. Funktioniert super!

    Darf ich mal ne Frage zum WH3000 SE stellen? Der zeigt bei mir sowas von spät an, dass es regnet. Hat noch jemand das Problem? Kann auch sein das es 2 std. leicht regnet u. es nicht angezeigt wird...

    DAnke.

    R L 2 Antworten Letzte Antwort
    0
    • jensfrJ jensfr

      Tolles Skript. Funktioniert super!

      Darf ich mal ne Frage zum WH3000 SE stellen? Der zeigt bei mir sowas von spät an, dass es regnet. Hat noch jemand das Problem? Kann auch sein das es 2 std. leicht regnet u. es nicht angezeigt wird...

      DAnke.

      R Offline
      R Offline
      Rushmed
      Most Active
      schrieb am zuletzt editiert von
      #1213

      @jensfr Der geringste Wert den meine Station wahrnimmt sind 0,3 mm Niederschlag, wenn es nur leicht nieselt kann es schon dauern bis da etwas kommt.

      jensfrJ 1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        SteffenTM
        schrieb am zuletzt editiert von
        #1214

        Nabend,
        ich habe seit fast zwei Jahren eine Ventus W830 Wetterstation. Am Anfang hatte ich die Station über Wunderground registriert und über die API in der Instanz die Daten nach iobroker geholt. Hat ohne Problem funktioniert, nur finde ich es schizophren meine eigenen Daten um die halbe Welt zu schicken um sie wieder verwenden zu können. Nachdem ich auf die Möglichkeit mit dem Shell-Skript gestoßen bin habe ich das direkt implementiert. War genau das, was ich gesucht hatte. Seit März läuft das bei mir ohne jedes Problem. Müsste nur mal das Update machen. Läuft bei mir auf nem PI4 mit ner SSD als Datenspeicher.

        L 1 Antwort Letzte Antwort
        0
        • S SteffenTM

          Nabend,
          ich habe seit fast zwei Jahren eine Ventus W830 Wetterstation. Am Anfang hatte ich die Station über Wunderground registriert und über die API in der Instanz die Daten nach iobroker geholt. Hat ohne Problem funktioniert, nur finde ich es schizophren meine eigenen Daten um die halbe Welt zu schicken um sie wieder verwenden zu können. Nachdem ich auf die Möglichkeit mit dem Shell-Skript gestoßen bin habe ich das direkt implementiert. War genau das, was ich gesucht hatte. Seit März läuft das bei mir ohne jedes Problem. Müsste nur mal das Update machen. Läuft bei mir auf nem PI4 mit ner SSD als Datenspeicher.

          L Offline
          L Offline
          lemuba
          schrieb am zuletzt editiert von
          #1215

          @SBorg

          Hattest Du eigentlich schon Dein Testgelöt von Lucy/Ecowitt erhalten?
          Wollte mal was bei Ecowitt ordern, aber die sind ja anscheinend noch immer im Lockdown/hinten dran mit sehr langen Lieferzeiten... Da kommt auch bald ein Sensor mit einem Wasserdichten Fühler. Wollte dann auch damit meinen Aldi Pool vielleicht etwas smarter machen. Vielleicht ordere ich dann auch den angehenden neuen Luftgütesensor mit CO2 Werten, etc.

          Gruss,

          Matthias

          SBorgS 1 Antwort Letzte Antwort
          0
          • jensfrJ jensfr

            Tolles Skript. Funktioniert super!

            Darf ich mal ne Frage zum WH3000 SE stellen? Der zeigt bei mir sowas von spät an, dass es regnet. Hat noch jemand das Problem? Kann auch sein das es 2 std. leicht regnet u. es nicht angezeigt wird...

            DAnke.

            L Offline
            L Offline
            lemuba
            schrieb am zuletzt editiert von lemuba
            #1216

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

            Tolles Skript. Funktioniert super!

            Darf ich mal ne Frage zum WH3000 SE stellen? Der zeigt bei mir sowas von spät an, dass es regnet. Hat noch jemand das Problem? Kann auch sein das es 2 std. leicht regnet u. es nicht angezeigt wird...

            DAnke.

            Jo, das ist so Konstruktionsbedingt. Der Löffel mit der 0.3mm Auflösung benötigt eben seine Zeit bis er auslöst... Bei leichtem Grissel verdunsten die Tröpfelchen im Trichter, bzw. werden gar nicht gezählt. Kannst den Trichter eventuell mit Teflon beschichten.

            http://www.ecowitt.com/news/60.html

            Aber definitiv kein Ersatz/Lösung für einen reinrassigen Regensensor der beim ersten Tropfen alarmiert. Beispiel:

            https://www.homematic-ip.com/produkte/detail/homematic-ip-regensensor.html

            Der Standard Regenmesser einer Wetterstation ist für Bauern und Gärtner ;-) Was der nicht erfasst, kommt auch nicht bei der Wurzel an, aber fast 32mm heute🙂
            https://www.fitzbek-wetter.de/pwsWDxx/PWS_index2.php

            Gruss,
            Matthias

            1 Antwort Letzte Antwort
            0
            • R Rushmed

              @jensfr Der geringste Wert den meine Station wahrnimmt sind 0,3 mm Niederschlag, wenn es nur leicht nieselt kann es schon dauern bis da etwas kommt.

              jensfrJ Offline
              jensfrJ Offline
              jensfr
              schrieb am zuletzt editiert von
              #1217

              @Rushmed Danke. Die sollten es gewesen sein. Es war auch schon recht viel Wasser in der Schaufel drin. Muss das nochmal etwas beobachten....

              1 Antwort Letzte Antwort
              0
              • L lemuba

                @SBorg

                Hattest Du eigentlich schon Dein Testgelöt von Lucy/Ecowitt erhalten?
                Wollte mal was bei Ecowitt ordern, aber die sind ja anscheinend noch immer im Lockdown/hinten dran mit sehr langen Lieferzeiten... Da kommt auch bald ein Sensor mit einem Wasserdichten Fühler. Wollte dann auch damit meinen Aldi Pool vielleicht etwas smarter machen. Vielleicht ordere ich dann auch den angehenden neuen Luftgütesensor mit CO2 Werten, etc.

                Gruss,

                Matthias

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

                Lese ich immer gerne wenn es funktioniert und natürlich auch wenn es genutzt wird :)

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

                Hattest Du eigentlich schon Dein Testgelöt von Lucy/Ecowitt erhalten?

                Nö, Stand heute ist noch nichts eingetrudelt. Über "meinen" Zoll dauert es aktuell 3-4 Monate...
                ...auch wenn man es nicht unbedingt gerne lesen mag, aber ich habe derzeit sowieso noch 1.000 andere Baustellen. Ist im Grunde also auch nicht weiter tragisch ;)

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

                1 Antwort Letzte Antwort
                0
                • NegaleinN Offline
                  NegaleinN Offline
                  Negalein
                  Global Moderator
                  schrieb am zuletzt editiert von
                  #1219

                  Hallo @SBorg

                  Ich möchte gern so eine Statistik erstellen.
                  Mit Sourceanalytic geht zB Temperatur nicht.

                  Hast du eine Idee, wie man die Werte ähnlich Sourceanalytic speichern könnte?
                  WhatsApp Image 2020-09-01 at 19.51.10.jpeg

                  ° Node.js: 20.17.0 NPM: 10.8.2
                  ° Proxmox, Ubuntu 22.04.3 LTS
                  ° Fixer ---> iob fix

                  SBorgS 1 Antwort Letzte Antwort
                  0
                  • NegaleinN Negalein

                    Hallo @SBorg

                    Ich möchte gern so eine Statistik erstellen.
                    Mit Sourceanalytic geht zB Temperatur nicht.

                    Hast du eine Idee, wie man die Werte ähnlich Sourceanalytic speichern könnte?
                    WhatsApp Image 2020-09-01 at 19.51.10.jpeg

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

                    @Negalein Da ich ein Statistik-Fan bin: gefällt mir :grin:
                    Pauschal kann/könnte ich die Werte auch zur Verfügung, aber dazu wäre eigentlich eine DB geeigneter (wg. der anfallenden Datemenge; ich müsste zumindest für den aktuellen Monat immer alle Werte aktuell halten. Danach den abgelaufenen Monat in 13 neue Datenpunkte verschieben). Ad hoc müssten sich die Werte aber einfacher aus bspw. InfluxDB ziehen lassen.
                    Ich hatte da mal angefangen (nicht wundern, Wohnzimmer geht nicht mehr so ganz ;) ) :
                    Bild 1.png
                    Das erweitert und am Monatsende die Werte in DPs geschrieben wären IMO der gangbarste Weg.

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

                    NegaleinN 1 Antwort Letzte Antwort
                    1
                    • SBorgS SBorg

                      @Negalein Da ich ein Statistik-Fan bin: gefällt mir :grin:
                      Pauschal kann/könnte ich die Werte auch zur Verfügung, aber dazu wäre eigentlich eine DB geeigneter (wg. der anfallenden Datemenge; ich müsste zumindest für den aktuellen Monat immer alle Werte aktuell halten. Danach den abgelaufenen Monat in 13 neue Datenpunkte verschieben). Ad hoc müssten sich die Werte aber einfacher aus bspw. InfluxDB ziehen lassen.
                      Ich hatte da mal angefangen (nicht wundern, Wohnzimmer geht nicht mehr so ganz ;) ) :
                      Bild 1.png
                      Das erweitert und am Monatsende die Werte in DPs geschrieben wären IMO der gangbarste Weg.

                      NegaleinN Offline
                      NegaleinN Offline
                      Negalein
                      Global Moderator
                      schrieb am zuletzt editiert von
                      #1221

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

                      Ad hoc müssten sich die Werte aber einfacher aus bspw. InfluxDB ziehen lassen.

                      Influx läuft bei mir bereits. Da könnt ich alle benötigten DP vom Script mal mitschreiben lassen.

                      Dann stehts bei mir aber schon an. Da bist für den weiteren Weg du meine Hilfe ;)

                      ° Node.js: 20.17.0 NPM: 10.8.2
                      ° Proxmox, Ubuntu 22.04.3 LTS
                      ° Fixer ---> iob fix

                      SBorgS 1 Antwort Letzte Antwort
                      0
                      • NegaleinN Negalein

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

                        Ad hoc müssten sich die Werte aber einfacher aus bspw. InfluxDB ziehen lassen.

                        Influx läuft bei mir bereits. Da könnt ich alle benötigten DP vom Script mal mitschreiben lassen.

                        Dann stehts bei mir aber schon an. Da bist für den weiteren Weg du meine Hilfe ;)

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

                        @Negalein Ich muss mal schauen was performanter in der Abfrage ist. Habe mal ein kleines JS "zusammen gehämmert" was die Daten per History (hab aber erst gegen Mittag mit dem sammeln begonnen) zieht:
                        Bild 1.png
                        Macht aktuell nur Min/Max/Durchschnitt und °C über 20°C?

                        Mir war schon klar, dass ich es machen "darf" :innocent:
                        Daran liegt es auch nicht, nur ist es direkt über das Script viel zu Ressourcen fressend, dass geht per DB/History und JS performanter (und auch einfacher).
                        Dann muss ich mir noch was mit dem Datenmanagement und den Datenpunkten überlegen.

                        • Die Tagestemperaturen sollten so bleiben? Ein 31°C-Tag zählt zu >30 und zu >25 und zu >20 (ja, es war ja auch einer über 20/25°).
                        • soll(te) das 1x täglich (bspw. Mitternacht) aktualisiert werden? Die Datenmenge wären pro Datenpunkt 86400 / 16 = 5.600 DPs die sonst abgefragt werden müssen. Das sollte man nicht im Minutentakt ausführen ^^

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

                        NegaleinN R 2 Antworten Letzte Antwort
                        0
                        • SBorgS SBorg

                          @Negalein Ich muss mal schauen was performanter in der Abfrage ist. Habe mal ein kleines JS "zusammen gehämmert" was die Daten per History (hab aber erst gegen Mittag mit dem sammeln begonnen) zieht:
                          Bild 1.png
                          Macht aktuell nur Min/Max/Durchschnitt und °C über 20°C?

                          Mir war schon klar, dass ich es machen "darf" :innocent:
                          Daran liegt es auch nicht, nur ist es direkt über das Script viel zu Ressourcen fressend, dass geht per DB/History und JS performanter (und auch einfacher).
                          Dann muss ich mir noch was mit dem Datenmanagement und den Datenpunkten überlegen.

                          • Die Tagestemperaturen sollten so bleiben? Ein 31°C-Tag zählt zu >30 und zu >25 und zu >20 (ja, es war ja auch einer über 20/25°).
                          • soll(te) das 1x täglich (bspw. Mitternacht) aktualisiert werden? Die Datenmenge wären pro Datenpunkt 86400 / 16 = 5.600 DPs die sonst abgefragt werden müssen. Das sollte man nicht im Minutentakt ausführen ^^
                          NegaleinN Offline
                          NegaleinN Offline
                          Negalein
                          Global Moderator
                          schrieb am zuletzt editiert von
                          #1223

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

                          Mir war schon klar, dass ich es machen "darf"

                          kennst mich doch. ;) Du bist da der King :grin:

                          Daran liegt es auch nicht, nur ist es direkt über das Script viel zu Ressourcen fressend, dass geht per DB/History und JS performanter (und auch einfacher).

                          kein Problem.

                          Die Tagestemperaturen sollten so bleiben? Ein 31°C-Tag zählt zu >30 und zu >25 und zu >20 (ja, es war ja auch einer über 20/25°).

                          genau. Am liebsten so wie am Screenshot. Auch mit den kalten Tagen

                          soll(te) das 1x täglich (bspw. Mitternacht) aktualisiert werden? Die Datenmenge wären pro Datenpunkt 86400 / 16 = 5.600 DPs die sonst abgefragt werden müssen. Das sollte man nicht im Minutentakt ausführen ^^

                          Ja, 1x am Tag sollte reichen. Geht eh nur um Tageswerte

                          ° Node.js: 20.17.0 NPM: 10.8.2
                          ° Proxmox, Ubuntu 22.04.3 LTS
                          ° Fixer ---> iob fix

                          SBorgS 1 Antwort Letzte Antwort
                          0
                          • NegaleinN Negalein

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

                            Mir war schon klar, dass ich es machen "darf"

                            kennst mich doch. ;) Du bist da der King :grin:

                            Daran liegt es auch nicht, nur ist es direkt über das Script viel zu Ressourcen fressend, dass geht per DB/History und JS performanter (und auch einfacher).

                            kein Problem.

                            Die Tagestemperaturen sollten so bleiben? Ein 31°C-Tag zählt zu >30 und zu >25 und zu >20 (ja, es war ja auch einer über 20/25°).

                            genau. Am liebsten so wie am Screenshot. Auch mit den kalten Tagen

                            soll(te) das 1x täglich (bspw. Mitternacht) aktualisiert werden? Die Datenmenge wären pro Datenpunkt 86400 / 16 = 5.600 DPs die sonst abgefragt werden müssen. Das sollte man nicht im Minutentakt ausführen ^^

                            Ja, 1x am Tag sollte reichen. Geht eh nur um Tageswerte

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

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

                            Auch mit den kalten Tagen

                            Das ist auch easy going und recht einfach umzusetzen, ich habe zum testen aber erst mal nur die 4 Werte genutzt.
                            Aber egal ob es dann per Influx oder History wird, die Anzahl der "warmen/kalten" Tage ist etwas tricky. Ich möchte eigentlich eine Einzelabfrage umgehen, d.h. zB. für August 19 wären das 31 Tage x 13 Messwerte x Anzahl der Messwerte...
                            Deswegen wird es wohl auf einen JSON-Datenpunkt hinauslaufen, der dann täglich um die entsprechenden Gradtage erhöht wird. Dann brauche ich die Vorjahresmonatsabfrage immer nur einmalig für den Monat ausführen.
                            ...mal drüber schlafen ;)

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

                            NegaleinN 1 Antwort Letzte Antwort
                            0
                            • SBorgS SBorg

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

                              Auch mit den kalten Tagen

                              Das ist auch easy going und recht einfach umzusetzen, ich habe zum testen aber erst mal nur die 4 Werte genutzt.
                              Aber egal ob es dann per Influx oder History wird, die Anzahl der "warmen/kalten" Tage ist etwas tricky. Ich möchte eigentlich eine Einzelabfrage umgehen, d.h. zB. für August 19 wären das 31 Tage x 13 Messwerte x Anzahl der Messwerte...
                              Deswegen wird es wohl auf einen JSON-Datenpunkt hinauslaufen, der dann täglich um die entsprechenden Gradtage erhöht wird. Dann brauche ich die Vorjahresmonatsabfrage immer nur einmalig für den Monat ausführen.
                              ...mal drüber schlafen ;)

                              NegaleinN Offline
                              NegaleinN Offline
                              Negalein
                              Global Moderator
                              schrieb am zuletzt editiert von
                              #1225

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

                              mal drüber schlafen

                              Ich werde dich virtuell dabei unterstützen 😂

                              ° Node.js: 20.17.0 NPM: 10.8.2
                              ° Proxmox, Ubuntu 22.04.3 LTS
                              ° Fixer ---> iob fix

                              SBorgS 2 Antworten Letzte Antwort
                              0
                              • NegaleinN Negalein

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

                                mal drüber schlafen

                                Ich werde dich virtuell dabei unterstützen 😂

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

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

                                Ich werde dich virtuell dabei unterstützen 😂

                                War auch teilweise erfolgreich, wenn auch mehr Fragen offen sind als ich derzeit Antworten habe. Die Werte ermitteln ist "easy peasy", aber die Statistik hat doch so ihre Fallstricke.
                                Zumindest läuft es aktuell auf InfluxDB hinaus, da es viele (auch wg. Grafana) eh am laufen haben. History produziert nur zusätzlich eine Menge an Daten, ist deutlich langsamer und ineffizient in der Abfrage zu handeln.
                                Ich hatte zwar zuvor schon eine tägliche Auswertung angedacht, dass muss aber nun so sein, denn eine monatliche Auswertung würde zu lange dauern. Bei einem Turnus von 16 Sekunden der Wetterstation haben wir ~ 5.600 Messwerte pro Tag pro Unit. Wir bräuchten also die Aussentemperaturwerte, Regenmenge und Windgeschwindigkeit. Eine Abfrage der Tageswerte dauert per Influx aber schon 2-3 Sekunden (die Ermittlung der div. Werte ist dabei so gut wie nicht messbar). Da ist die monatliche Abfrage nicht mehr zu handeln: 3 Sek x 3 Abfragen x 30 Tage = ~fast 5(!) Minuten...
                                ...also täglich speichern, einlesen, addieren...
                                ...und so nebenbei mal Gedanken gemacht, wie denn die DPs überhaupt aussehen müssen damit man die dynamisch in der VIS anzeigen kann...

                                btw: Fragen etc. zum eigentlichen Thread natürlich weiter gerne hier, aber IMHO sind die letzten Posts nicht OT, sondern gehören doch irgendwie zum Thema und es "dürfen" sich auch gerne mehr beteiligen ;) :)

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

                                1 Antwort Letzte Antwort
                                1
                                • NegaleinN Negalein

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

                                  mal drüber schlafen

                                  Ich werde dich virtuell dabei unterstützen 😂

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

                                  @Negalein Dann mal ein erster Test. Neues JS anlegen (am besten in einer neuen Instanz, dann knallt es dir nicht im Fehlerfall den eigentlichen JS-Adapter weg. Sollte zwar nicht, aber man weiß ja nie... ;) ) :

                                  /* Wetterstation-Statistiken 
                                     (c)2020 by SBorg 
                                     V0.0.1 - 05.09.2020   erste Alpha + Min/Max/Durchschnitt/Temp über 20°?
                                     holt die Messwerte aus einer InfluxDB und erstellt eine Statistik
                                    ToDo: vieles ;)
                                    known issues: keine
                                  */
                                  
                                  let werte = [];
                                  let zeitstempel = new Date();
                                  let start = new Date(zeitstempel.getFullYear(),zeitstempel.getMonth(),zeitstempel.getDate(),0,0,0);
                                  start = start.getTime();
                                  let end = new Date(zeitstempel.getFullYear(),zeitstempel.getMonth(),zeitstempel.getDate(),23,59,59);
                                  end = end.getTime();
                                  
                                  sendTo('influxdb.0', 'query', 'select * FROM "javascript.0.Wetterstation.Aussentemperatur" WHERE time >= ' + (start *1000000) + ' AND time <= ' + (end *1000000), function (result) {
                                  
                                      if (result.error) {
                                          console.error('Fehler: '+result.error);
                                      } else {
                                          //console.log('Rows: ' + JSON.stringify(result.result[0]));
                                          for (let i = 0; i < result.result[0].length; i++) {
                                          werte[i] = result.result[0][i].value;
                                          }
                                      }
                                  
                                   /*   const json = JSON.stringify(result.result[0][0]);
                                      const obj = JSON.parse(json);
                                      console.log(obj.ts);
                                      console.log(obj.value); */
                                  
                                      Math.sum = (...werte) => Array.prototype.reduce.call(werte,(a,b) => a+b);
                                      let Durchschnitt = (Math.sum(...werte)/werte.length).toFixed(2);
                                      if (Math.max(...werte) > 20) {console.log('Temperatur lag heute über 20°C');}
                                      console.log('Tiefstwert: ' + Math.min(...werte) + '°C');
                                      console.log('Höchstwert: ' + Math.max(...werte) + '°C');
                                      console.log('Durchschnitt: ' + Durchschnitt + '°C');
                                      console.log('Erster Messwert: ' + new Date(result.result[0][0].ts).toISOString() + ' ***' + result.result[0][0].value);
                                      console.log('Letzter Messwert: ' + new Date(result.result[0][werte.length-1].ts).toISOString() + ' ***' + result.result[0][werte.length-1].value);
                                      console.log('Anzahl Datensätze: ' + werte.length);
                                  });
                                  
                                  function timeConverter(UNIX_timestamp){
                                    let a = new Date(UNIX_timestamp);
                                    let months = ['Jan','Feb','Mär','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'];
                                    let year = a.getFullYear();
                                    let month = months[a.getMonth()];
                                    let date = a.getDate();
                                    let hour = a.getHours();
                                    let min = a.getMinutes();
                                    let sec = a.getSeconds();
                                    let time = pad(date) + '. ' + month + ' ' + year + ' ' + pad(hour) + ':' + pad(min) + ':' + pad(sec) ;
                                    return time;
                                  }
                                  
                                  function pad(n) {
                                      return n<10 ? '0'+n : n;
                                  }
                                  
                                  console.log('Daten ab ' + timeConverter(start));
                                  console.log('Daten bis ' + timeConverter(end)); 
                                  
                                  

                                  Anpassen musst du nur #16 ob dein Influx unter Instanz "0" läuft und den DP-Zweig für die Aussentemperatur.
                                  Sollte dann so nach dem starten aussehen:
                                  Bild 1.png
                                  Interessieren würde mich dann

                                  • allgemeine Laufzeit
                                  • dein System (PI, bzw. CPU + RAM)
                                  • sind die Werte plausibel
                                  • speziell gegen ~23:5x Uhr
                                    • Laufzeit
                                    • Anzahl der Datensätze

                                  Wenn der Ansatz so funktioniert werde ich zum "master-Branch" auf GitHub einen "Beta" anlegen, um dort dann das aktuelle JS vor zu halten.

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

                                  NegaleinN 2 Antworten Letzte Antwort
                                  0
                                  • S Offline
                                    S Offline
                                    skokarl
                                    schrieb am zuletzt editiert von skokarl
                                    #1228

                                    OT

                                    nur für Euch zur Info, Montag Aldi Nord, allerdings nur Online, Gruß Bernd

                                    1.PNG

                                    IOBroker mit Proxmox auf Celeron Nuc mit 16 GB und Debian11, Sonos API, Echo Show 15 als Wandtablet, Homematic IP, HUE, Sonos, Echos, DS718+ als Backup

                                    GlasfaserG 1 Antwort Letzte Antwort
                                    1
                                    • S skokarl

                                      OT

                                      nur für Euch zur Info, Montag Aldi Nord, allerdings nur Online, Gruß Bernd

                                      1.PNG

                                      GlasfaserG Offline
                                      GlasfaserG Offline
                                      Glasfaser
                                      schrieb am zuletzt editiert von
                                      #1229

                                      ++++ inklusiv Support von @skokarl , der demnächst für Neulinge hier kommt :grinning: .... ;)

                                      Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                                      S 1 Antwort Letzte Antwort
                                      0
                                      • GlasfaserG Glasfaser

                                        ++++ inklusiv Support von @skokarl , der demnächst für Neulinge hier kommt :grinning: .... ;)

                                        S Offline
                                        S Offline
                                        skokarl
                                        schrieb am zuletzt editiert von
                                        #1230

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

                                        ++++ inklusiv Support von @skokarl , der demnächst für Neulinge hier kommt :grinning: .... ;)

                                        Ich komm seit nem halben Jahr zu nix mehr, eine Baustelle nach der anderen, Corona Mist,
                                        und noch nen Mops Welpen für die Frau....also, Support erst ab 2022 :grimacing:
                                        :grinning:
                                        außerdem bin ich bei Euren geilen Views und Datenbanken schon lange raus ...

                                        IOBroker mit Proxmox auf Celeron Nuc mit 16 GB und Debian11, Sonos API, Echo Show 15 als Wandtablet, Homematic IP, HUE, Sonos, Echos, DS718+ als Backup

                                        SBorgS 1 Antwort Letzte Antwort
                                        0
                                        • SBorgS SBorg

                                          @Negalein Dann mal ein erster Test. Neues JS anlegen (am besten in einer neuen Instanz, dann knallt es dir nicht im Fehlerfall den eigentlichen JS-Adapter weg. Sollte zwar nicht, aber man weiß ja nie... ;) ) :

                                          /* Wetterstation-Statistiken 
                                             (c)2020 by SBorg 
                                             V0.0.1 - 05.09.2020   erste Alpha + Min/Max/Durchschnitt/Temp über 20°?
                                             holt die Messwerte aus einer InfluxDB und erstellt eine Statistik
                                            ToDo: vieles ;)
                                            known issues: keine
                                          */
                                          
                                          let werte = [];
                                          let zeitstempel = new Date();
                                          let start = new Date(zeitstempel.getFullYear(),zeitstempel.getMonth(),zeitstempel.getDate(),0,0,0);
                                          start = start.getTime();
                                          let end = new Date(zeitstempel.getFullYear(),zeitstempel.getMonth(),zeitstempel.getDate(),23,59,59);
                                          end = end.getTime();
                                          
                                          sendTo('influxdb.0', 'query', 'select * FROM "javascript.0.Wetterstation.Aussentemperatur" WHERE time >= ' + (start *1000000) + ' AND time <= ' + (end *1000000), function (result) {
                                          
                                              if (result.error) {
                                                  console.error('Fehler: '+result.error);
                                              } else {
                                                  //console.log('Rows: ' + JSON.stringify(result.result[0]));
                                                  for (let i = 0; i < result.result[0].length; i++) {
                                                  werte[i] = result.result[0][i].value;
                                                  }
                                              }
                                          
                                           /*   const json = JSON.stringify(result.result[0][0]);
                                              const obj = JSON.parse(json);
                                              console.log(obj.ts);
                                              console.log(obj.value); */
                                          
                                              Math.sum = (...werte) => Array.prototype.reduce.call(werte,(a,b) => a+b);
                                              let Durchschnitt = (Math.sum(...werte)/werte.length).toFixed(2);
                                              if (Math.max(...werte) > 20) {console.log('Temperatur lag heute über 20°C');}
                                              console.log('Tiefstwert: ' + Math.min(...werte) + '°C');
                                              console.log('Höchstwert: ' + Math.max(...werte) + '°C');
                                              console.log('Durchschnitt: ' + Durchschnitt + '°C');
                                              console.log('Erster Messwert: ' + new Date(result.result[0][0].ts).toISOString() + ' ***' + result.result[0][0].value);
                                              console.log('Letzter Messwert: ' + new Date(result.result[0][werte.length-1].ts).toISOString() + ' ***' + result.result[0][werte.length-1].value);
                                              console.log('Anzahl Datensätze: ' + werte.length);
                                          });
                                          
                                          function timeConverter(UNIX_timestamp){
                                            let a = new Date(UNIX_timestamp);
                                            let months = ['Jan','Feb','Mär','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'];
                                            let year = a.getFullYear();
                                            let month = months[a.getMonth()];
                                            let date = a.getDate();
                                            let hour = a.getHours();
                                            let min = a.getMinutes();
                                            let sec = a.getSeconds();
                                            let time = pad(date) + '. ' + month + ' ' + year + ' ' + pad(hour) + ':' + pad(min) + ':' + pad(sec) ;
                                            return time;
                                          }
                                          
                                          function pad(n) {
                                              return n<10 ? '0'+n : n;
                                          }
                                          
                                          console.log('Daten ab ' + timeConverter(start));
                                          console.log('Daten bis ' + timeConverter(end)); 
                                          
                                          

                                          Anpassen musst du nur #16 ob dein Influx unter Instanz "0" läuft und den DP-Zweig für die Aussentemperatur.
                                          Sollte dann so nach dem starten aussehen:
                                          Bild 1.png
                                          Interessieren würde mich dann

                                          • allgemeine Laufzeit
                                          • dein System (PI, bzw. CPU + RAM)
                                          • sind die Werte plausibel
                                          • speziell gegen ~23:5x Uhr
                                            • Laufzeit
                                            • Anzahl der Datensätze

                                          Wenn der Ansatz so funktioniert werde ich zum "master-Branch" auf GitHub einen "Beta" anlegen, um dort dann das aktuelle JS vor zu halten.

                                          NegaleinN Offline
                                          NegaleinN Offline
                                          Negalein
                                          Global Moderator
                                          schrieb am zuletzt editiert von Negalein
                                          #1231

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

                                          Dann mal ein erster Test.

                                          Du bist der Hammer :)

                                          Also, das Log sieht gut aus.

                                          javascript.1	2020-09-05 17:10:20.786	info	(1029) script.js.common.Wetterstatistik: Anzahl Datensätze: 939
                                          javascript.1	2020-09-05 17:10:20.785	info	(1029) script.js.common.Wetterstatistik: Letzter Messwert: 2020-09-05T15:09:15.128Z ***27.5
                                          javascript.1	2020-09-05 17:10:20.785	info	(1029) script.js.common.Wetterstatistik: Erster Messwert: 2020-09-04T22:02:36.676Z ***17.27
                                          javascript.1	2020-09-05 17:10:20.785	info	(1029) script.js.common.Wetterstatistik: Durchschnitt: 20.48°C
                                          javascript.1	2020-09-05 17:10:20.785	info	(1029) script.js.common.Wetterstatistik: Höchstwert: 28.72°C
                                          javascript.1	2020-09-05 17:10:20.784	info	(1029) script.js.common.Wetterstatistik: Tiefstwert: 12.88°C
                                          javascript.1	2020-09-05 17:10:20.775	info	(1029) script.js.common.Wetterstatistik: Temperatur lag heute über 20°C
                                          javascript.1	2020-09-05 17:10:20.671	info	(1029) script.js.common.Wetterstatistik: registered 0 subscriptions and 0 schedules
                                          javascript.1	2020-09-05 17:10:20.671	info	(1029) script.js.common.Wetterstatistik: Daten bis 05. Sep 2020 23:59:59
                                          javascript.1	2020-09-05 17:10:20.670	info	(1029) script.js.common.Wetterstatistik: Daten ab 05. Sep 2020 00:00:00
                                          javascript.1	2020-09-05 17:10:20.663	info	(1029) Start javascript script.js.common.Wetterstatistik
                                          javascript.1	2020-09-05 17:10:20.532	info	(1029) Stop script script.js.common.Wetterstatistik
                                          javascript.1	2020-09-05 17:10:18.149	info	(1029) script.js.common.Wetterstatistik: Anzahl Datensätze: 939
                                          javascript.1	2020-09-05 17:10:18.149	info	(1029) script.js.common.Wetterstatistik: Letzter Messwert: 2020-09-05T15:09:15.128Z ***27.5
                                          javascript.1	2020-09-05 17:10:18.148	info	(1029) script.js.common.Wetterstatistik: Erster Messwert: 2020-09-04T22:02:36.676Z ***17.27
                                          javascript.1	2020-09-05 17:10:18.148	info	(1029) script.js.common.Wetterstatistik: Durchschnitt: 20.48°C
                                          javascript.1	2020-09-05 17:10:18.148	info	(1029) script.js.common.Wetterstatistik: Höchstwert: 28.72°C
                                          javascript.1	2020-09-05 17:10:18.145	info	(1029) script.js.common.Wetterstatistik: Tiefstwert: 12.88°C
                                          javascript.1	2020-09-05 17:10:18.145	info	(1029) script.js.common.Wetterstatistik: Temperatur lag heute über 20°C
                                          javascript.1	2020-09-05 17:10:17.534	info	(1029) script.js.common.Wetterstatistik: registered 0 subscriptions and 0 schedules
                                          javascript.1	2020-09-05 17:10:17.533	info	(1029) script.js.common.Wetterstatistik: Daten bis 05. Sep 2020 23:59:59
                                          javascript.1	2020-09-05 17:10:17.533	info	(1029) script.js.common.Wetterstatistik: Daten ab 05. Sep 2020 00:00:00
                                          javascript.1	2020-09-05 17:10:17.416	info	(1029) Start javascript script.js.common.Wetterstatistik
                                          

                                          Interessieren würde mich dann

                                          allgemeine Laufzeit

                                          wie meinst du das?

                                          dein System (PI, bzw. CPU + RAM)

                                          Synology 718+, 10 GB RAM, im Docker

                                          sind die Werte plausibel

                                          Ja, auf den ersten Blick sind sie es

                                          speziell gegen ~23:5x Uhr
                                          Laufzeit

                                          wie meinst du das?

                                          Anzahl der Datensätze

                                          stehen die auch wieder im Log? Um 23:59? Oder sind die dann anders zu finden?

                                          ° Node.js: 20.17.0 NPM: 10.8.2
                                          ° Proxmox, Ubuntu 22.04.3 LTS
                                          ° Fixer ---> iob fix

                                          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

                                          907

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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