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.3k

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

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

[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.
  • BoronsbruderB Boronsbruder

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

    0 Aus
    1 Reset
    2 Backup und Reset
    

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

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

    Backup_Jahresstatistik();
    Reset_Jahresstatistik();
    

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

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

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

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

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

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

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

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

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

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

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

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

    Rene55R 1 Antwort Letzte Antwort
    2
    • S Offline
      S Offline
      schittl
      schrieb am zuletzt editiert von schittl
      #5139

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

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

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

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

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

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

      R 1 Antwort Letzte Antwort
      0
      • S schittl

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

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

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

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

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

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

        S 1 Antwort Letzte Antwort
        0
        • R Rushmed

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

          S Offline
          S Offline
          schittl
          schrieb am zuletzt editiert von
          #5141

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

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

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

          1 Antwort Letzte Antwort
          0
          • SBorgS SBorg

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

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

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

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

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

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

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

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

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

            Rene55R Offline
            Rene55R Offline
            Rene55
            schrieb am zuletzt editiert von
            #5142

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

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

            SBorgS 1 Antwort Letzte Antwort
            0
            • Rene55R Rene55

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

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

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

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

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

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

              NegaleinN Rene55R 3 Antworten Letzte Antwort
              0
              • SBorgS SBorg

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

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

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

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

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

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

                kannst du das genauer erklären?

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

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

                SBorgS 1 Antwort Letzte Antwort
                0
                • SBorgS SBorg

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

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

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

                  Rene55R Offline
                  Rene55R Offline
                  Rene55
                  schrieb am zuletzt editiert von
                  #5145

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

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

                  1 Antwort Letzte Antwort
                  0
                  • SBorgS SBorg

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

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

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

                    Rene55R Offline
                    Rene55R Offline
                    Rene55
                    schrieb am zuletzt editiert von
                    #5146

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

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

                    LatziL 1 Antwort Letzte Antwort
                    0
                    • Rene55R Rene55

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

                      LatziL Online
                      LatziL Online
                      Latzi
                      schrieb am zuletzt editiert von
                      #5147

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

                      Ozon-Werte

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

                      1 Antwort Letzte Antwort
                      0
                      • Rene55R Offline
                        Rene55R Offline
                        Rene55
                        schrieb am zuletzt editiert von
                        #5148

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

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

                        LatziL SBorgS 2 Antworten Letzte Antwort
                        0
                        • Rene55R Rene55

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

                          LatziL Online
                          LatziL Online
                          Latzi
                          schrieb am zuletzt editiert von Latzi
                          #5149

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

                          Wetterstation-Dashboard_V3

                          nein, verwende ich nicht!

                          Rene55R 1 Antwort Letzte Antwort
                          0
                          • LatziL Latzi

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

                            Wetterstation-Dashboard_V3

                            nein, verwende ich nicht!

                            Rene55R Offline
                            Rene55R Offline
                            Rene55
                            schrieb am zuletzt editiert von
                            #5150

                            @latzi ok, trotzdem Danke.

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

                            1 Antwort Letzte Antwort
                            0
                            • Rene55R Rene55

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

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

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

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

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

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

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

                              1 Antwort Letzte Antwort
                              0
                              • Rene55R Offline
                                Rene55R Offline
                                Rene55
                                schrieb am zuletzt editiert von Rene55
                                #5152

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

                                Wetter_Panel-Regen.png

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

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

                                SBorgS 1 Antwort Letzte Antwort
                                0
                                • NegaleinN Negalein

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

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

                                  kannst du das genauer erklären?

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

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

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

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

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

                                  kannst du das genauer erklären?

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

                                  + @Rene55

                                  Da wirst du so auch nichts "gutes" finden, denn Flux beherrscht kein "drop" von Datenreihen. Mit einem einfachen Task ist da nichts zu machen. Meine Lösung war (ich nutze sie auch nicht mehr) weder richtig praktikabel, geschweige denn massentauglich. Das war auslagern der gewünschten Daten, kpl. Reihe droppen und die ausgelagerte wieder importieren.
                                  Sehr, sehr System lastig und durch den Im- und Export gehen auch definitiv Daten verloren, da alles was in dem Zeitraum Export - droppen - Import in die InfluxDB an neuen Daten geschrieben wird geht unweigerlich den Weg ins Nirvana.

                                  Aus Zeitmangel speichere ich aktuell einfach alles. Mein NAS hat im Moment 20TB, da ist noch Platz (auch für zusätzliche HDDs).
                                  Der Zukunftsplan sieht dann aggregieren vor wo es Sinn macht (Temperatur genügt IMO alle 15 Minuten ein Messwert) und leider per Bash-Skript und Cronjob dann droppen der nicht benötigten Daten per Influx-CLI. Eine andere praktikable Lösung sehe ich aktuell nicht. Das Hauptproblem dabei ist, man kann halt nicht das aktuelle Bucket bearbeiten. Man muss immer alles in ein anderes Bucket schreiben. Verweist man bei Grafana auf das "neue" Bucket fehlen aktuelle Daten (außer man lässt den Task alle x Minuten laufen), nimmt man das "aktuelle" Bucket muss man die Daten in diesem auch zumindest für 365 Tage vorhalten :(

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

                                  Rene55R 1 Antwort Letzte Antwort
                                  0
                                  • SBorgS SBorg

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

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

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

                                    kannst du das genauer erklären?

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

                                    + @Rene55

                                    Da wirst du so auch nichts "gutes" finden, denn Flux beherrscht kein "drop" von Datenreihen. Mit einem einfachen Task ist da nichts zu machen. Meine Lösung war (ich nutze sie auch nicht mehr) weder richtig praktikabel, geschweige denn massentauglich. Das war auslagern der gewünschten Daten, kpl. Reihe droppen und die ausgelagerte wieder importieren.
                                    Sehr, sehr System lastig und durch den Im- und Export gehen auch definitiv Daten verloren, da alles was in dem Zeitraum Export - droppen - Import in die InfluxDB an neuen Daten geschrieben wird geht unweigerlich den Weg ins Nirvana.

                                    Aus Zeitmangel speichere ich aktuell einfach alles. Mein NAS hat im Moment 20TB, da ist noch Platz (auch für zusätzliche HDDs).
                                    Der Zukunftsplan sieht dann aggregieren vor wo es Sinn macht (Temperatur genügt IMO alle 15 Minuten ein Messwert) und leider per Bash-Skript und Cronjob dann droppen der nicht benötigten Daten per Influx-CLI. Eine andere praktikable Lösung sehe ich aktuell nicht. Das Hauptproblem dabei ist, man kann halt nicht das aktuelle Bucket bearbeiten. Man muss immer alles in ein anderes Bucket schreiben. Verweist man bei Grafana auf das "neue" Bucket fehlen aktuelle Daten (außer man lässt den Task alle x Minuten laufen), nimmt man das "aktuelle" Bucket muss man die Daten in diesem auch zumindest für 365 Tage vorhalten :(

                                    Rene55R Offline
                                    Rene55R Offline
                                    Rene55
                                    schrieb am zuletzt editiert von
                                    #5154

                                    @sborg Das hört sich für mich gerade so an, als ob das aufspalten in long/short eigentlich gar nichts bringt.
                                    Ergo: speichern bis die Platte voll ist; ja oder bis kurz davor, damit man noch was retten kann. Oder einen Fummel schreiben, der aus dem Datenwust, irgendetwas komprimiertes macht. Noch keine Ahnung, was das sein könnte.

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

                                    1 Antwort Letzte Antwort
                                    0
                                    • Rene55R Rene55

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

                                      Wetter_Panel-Regen.png

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

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

                                      @rene55
                                      Jupp, da fehlt wohl bisserl was beim Regen. Irgendwie finde ich im neuen Grafana gerade nicht den JSON-Export für ein Panel...
                                      Hier ist mal mein JSON, allerdings müsstest du da überall die "uid": "ssI1YtJ4z" durch die UID deiner InfluxDB vor dem Import ersetzen.

                                      {
                                       "datasource": {
                                         "uid": "000000001",
                                         "type": "influxdb"
                                       },
                                       "fieldConfig": {
                                         "defaults": {
                                           "custom": {
                                             "align": "left",
                                             "cellOptions": {
                                               "type": "auto"
                                             },
                                             "inspect": false,
                                             "filterable": false
                                           },
                                           "mappings": [],
                                           "thresholds": {
                                             "mode": "absolute",
                                             "steps": [
                                               {
                                                 "color": "green",
                                                 "value": null
                                               }
                                             ]
                                           },
                                           "color": {
                                             "mode": "thresholds"
                                           },
                                           "decimals": 1,
                                           "displayName": "${__field.name}"
                                         },
                                         "overrides": [
                                           {
                                             "matcher": {
                                               "id": "byName",
                                               "options": "Field"
                                             },
                                             "properties": [
                                               {
                                                 "id": "displayName",
                                                 "value": "Zeitraum"
                                               },
                                               {
                                                 "id": "custom.align",
                                                 "value": "left"
                                               }
                                             ]
                                           },
                                           {
                                             "matcher": {
                                               "id": "byName",
                                               "options": "Last"
                                             },
                                             "properties": [
                                               {
                                                 "id": "displayName",
                                                 "value": "Regenmenge"
                                               },
                                               {
                                                 "id": "custom.align",
                                                 "value": "left"
                                               },
                                               {
                                                 "id": "decimals",
                                                 "value": 1
                                               },
                                               {
                                                 "id": "unit",
                                                 "value": "mm"
                                               }
                                             ]
                                           }
                                         ]
                                       },
                                       "gridPos": {
                                         "h": 7,
                                         "w": 5,
                                         "x": 9,
                                         "y": 12
                                       },
                                       "id": 79,
                                       "options": {
                                         "showHeader": true,
                                         "cellHeight": "sm",
                                         "footer": {
                                           "show": false,
                                           "reducer": [
                                             "sum"
                                           ],
                                           "countRows": false,
                                           "fields": "",
                                           "enablePagination": false
                                         }
                                       },
                                       "pluginVersion": "10.2.3",
                                       "targets": [
                                         {
                                           "datasource": {
                                             "type": "influxdb",
                                             "uid": "ssI1YtJ4z"
                                           },
                                           "alias": "☂️ Heute",
                                           "groupBy": [
                                             {
                                               "params": [
                                                 "$__interval"
                                               ],
                                               "type": "time"
                                             },
                                             {
                                               "params": [
                                                 "none"
                                               ],
                                               "type": "fill"
                                             }
                                           ],
                                           "hide": false,
                                           "measurement": "0_userdata.0.Wetterstation.Regen_Tag",
                                           "orderByTime": "ASC",
                                           "policy": "default",
                                           "query": " from(bucket: \"${DatenBucket}\")\r\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n  |> filter(fn: (r) => r._measurement == \"${Data_Prefix}.${Data_Instanz}.Statistik.Wetter.VorTag.Regenmenge\" and r._field == \"value\")\r\n  |> set(key: \"_field\", value: \"☂️ Gestern\")\r\n  |> yield(name: \"Gestern\")\r\n  ",
                                           "refId": "B",
                                           "resultFormat": "time_series",
                                           "select": [
                                             [
                                               {
                                                 "params": [
                                                   "value"
                                                 ],
                                                 "type": "field"
                                               },
                                               {
                                                 "params": [],
                                                 "type": "last"
                                               }
                                             ]
                                           ],
                                           "tags": []
                                         },
                                         {
                                           "datasource": {
                                             "type": "influxdb",
                                             "uid": "ssI1YtJ4z"
                                           },
                                           "alias": "☂️ Heute",
                                           "groupBy": [
                                             {
                                               "params": [
                                                 "$__interval"
                                               ],
                                               "type": "time"
                                             },
                                             {
                                               "params": [
                                                 "none"
                                               ],
                                               "type": "fill"
                                             }
                                           ],
                                           "hide": false,
                                           "measurement": "0_userdata.0.Wetterstation.Regen_Tag",
                                           "orderByTime": "ASC",
                                           "policy": "default",
                                           "query": " from(bucket: \"${DatenBucket}\")\r\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n  |> filter(fn: (r) => r._measurement == \"${Data_Prefix}.${Data_Instanz}.${Data_Ordnername}.Regen_Tag\" and r._field == \"value\")\r\n  |> set(key: \"_field\", value: \"☂️ Heute\")\r\n  |> yield(name: \"Heute\")\r\n\r\n  ",
                                           "refId": "C",
                                           "resultFormat": "time_series",
                                           "select": [
                                             [
                                               {
                                                 "params": [
                                                   "value"
                                                 ],
                                                 "type": "field"
                                               },
                                               {
                                                 "params": [],
                                                 "type": "last"
                                               }
                                             ]
                                           ],
                                           "tags": []
                                         },
                                         {
                                           "datasource": {
                                             "type": "influxdb",
                                             "uid": "ssI1YtJ4z"
                                           },
                                           "alias": "☂️ Heute",
                                           "groupBy": [
                                             {
                                               "params": [
                                                 "$__interval"
                                               ],
                                               "type": "time"
                                             },
                                             {
                                               "params": [
                                                 "none"
                                               ],
                                               "type": "fill"
                                             }
                                           ],
                                           "hide": false,
                                           "measurement": "0_userdata.0.Wetterstation.Regen_Tag",
                                           "orderByTime": "ASC",
                                           "policy": "default",
                                           "query": " from(bucket: \"${DatenBucket}\")\r\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n  |> filter(fn: (r) => r._measurement == \"${Data_Prefix}.${Data_Instanz}.${Data_Ordnername}.Regen_Woche\" and r._field == \"value\")\r\n  |> set(key: \"_field\", value: \"☂️ aktuelle Woche\")\r\n  |> yield(name: \"aktuelle Woche\")\r\n\r\n  ",
                                           "refId": "D",
                                           "resultFormat": "time_series",
                                           "select": [
                                             [
                                               {
                                                 "params": [
                                                   "value"
                                                 ],
                                                 "type": "field"
                                               },
                                               {
                                                 "params": [],
                                                 "type": "last"
                                               }
                                             ]
                                           ],
                                           "tags": []
                                         },
                                         {
                                           "datasource": {
                                             "type": "influxdb",
                                             "uid": "ssI1YtJ4z"
                                           },
                                           "alias": "☂️ Heute",
                                           "groupBy": [
                                             {
                                               "params": [
                                                 "$__interval"
                                               ],
                                               "type": "time"
                                             },
                                             {
                                               "params": [
                                                 "none"
                                               ],
                                               "type": "fill"
                                             }
                                           ],
                                           "hide": false,
                                           "measurement": "0_userdata.0.Wetterstation.Regen_Tag",
                                           "orderByTime": "ASC",
                                           "policy": "default",
                                           "query": " from(bucket: \"${DatenBucket}\")\r\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n  |> filter(fn: (r) => r._measurement == \"${Data_Prefix}.${Data_Instanz}.${Data_Ordnername}.Regen_Monat\" and r._field == \"value\")\r\n  |> set(key: \"_field\", value: \"☂️ aktueller Monat\")\r\n  |> yield(name: \"aktueller Monat\")\r\n\r\n  ",
                                           "refId": "E",
                                           "resultFormat": "time_series",
                                           "select": [
                                             [
                                               {
                                                 "params": [
                                                   "value"
                                                 ],
                                                 "type": "field"
                                               },
                                               {
                                                 "params": [],
                                                 "type": "last"
                                               }
                                             ]
                                           ],
                                           "tags": []
                                         },
                                         {
                                           "datasource": {
                                             "type": "influxdb",
                                             "uid": "ssI1YtJ4z"
                                           },
                                           "alias": "☂️ Heute",
                                           "groupBy": [
                                             {
                                               "params": [
                                                 "$__interval"
                                               ],
                                               "type": "time"
                                             },
                                             {
                                               "params": [
                                                 "none"
                                               ],
                                               "type": "fill"
                                             }
                                           ],
                                           "hide": false,
                                           "measurement": "0_userdata.0.Wetterstation.Regen_Tag",
                                           "orderByTime": "ASC",
                                           "policy": "default",
                                           "query": " from(bucket: \"${DatenBucket}\")\r\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n  |> filter(fn: (r) => r._measurement == \"${Data_Prefix}.${Data_Instanz}.${Data_Ordnername}.Regen_Jahr_kumuliert\" and r._field == \"value\")\r\n  |> set(key: \"_field\", value: \"☂️ aktuelles Jahr\")\r\n  |> yield(name: \"aktuelles Jahr\")\r\n\r\n  ",
                                           "refId": "F",
                                           "resultFormat": "time_series",
                                           "select": [
                                             [
                                               {
                                                 "params": [
                                                   "value"
                                                 ],
                                                 "type": "field"
                                               },
                                               {
                                                 "params": [],
                                                 "type": "last"
                                               }
                                             ]
                                           ],
                                           "tags": []
                                         },
                                         {
                                           "datasource": {
                                             "type": "influxdb",
                                             "uid": "ssI1YtJ4z"
                                           },
                                           "alias": "☂️ Heute",
                                           "groupBy": [
                                             {
                                               "params": [
                                                 "$__interval"
                                               ],
                                               "type": "time"
                                             },
                                             {
                                               "params": [
                                                 "none"
                                               ],
                                               "type": "fill"
                                             }
                                           ],
                                           "hide": false,
                                           "measurement": "0_userdata.0.Wetterstation.Regen_Tag",
                                           "orderByTime": "ASC",
                                           "policy": "default",
                                           "query": " from(bucket: \"${DatenBucket}\")\r\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n  |> filter(fn: (r) => r._measurement == \"${Data_Prefix}.${Data_Instanz}.${Data_Ordnername}.Info.Regenmenge_VorJahr\" and r._field == \"value\")\r\n  |> set(key: \"_field\", value: \"☂️ VorJahr\")\r\n  |> yield(name: \"VorJahr\")\r\n\r\n  ",
                                           "refId": "G",
                                           "resultFormat": "time_series",
                                           "select": [
                                             [
                                               {
                                                 "params": [
                                                   "value"
                                                 ],
                                                 "type": "field"
                                               },
                                               {
                                                 "params": [],
                                                 "type": "last"
                                               }
                                             ]
                                           ],
                                           "tags": []
                                         }
                                       ],
                                       "transformations": [
                                         {
                                           "id": "reduce",
                                           "options": {
                                             "includeTimeField": false,
                                             "labelsToFields": true,
                                             "mode": "seriesToRows",
                                             "reducers": [
                                               "last"
                                             ]
                                           }
                                         }
                                       ],
                                       "transparent": true,
                                       "type": "table",
                                       "description": ""
                                      }
                                      


                                      Temperatur in 3h geht über den Adapter "Das Wetter" und ein kleines JS:

                                      
                                      const idTemp = '0_userdata.0.Data.Temperatur_in_3h';
                                      if (!existsState(idTemp)) { createState(idTemp, 0, { name: "erwartete Aussentemperatur in 3 Stunden", type: "number", role: "state", unit: "°C" }); }
                                      
                                      schedule('2 * * * *', function () {
                                         let hours3 = new Date().getHours() + 3;
                                         let id = 'daswetter.0.NextHours.Location_1.Day_1.Hour_' + hours3 + '.temp_value';
                                      
                                         if(hours3 > 24) { 
                                            hours3 -= 24;
                                            id = 'daswetter.0.NextHours.Location_1.Day_2.Hour_' + hours3 + '.temp_value';
                                          }
                                      
                                          setState(idTemp, getState(id).val, true);
                                      });
                                      
                                      

                                      Das leere Panel unter UV-Index existiert bei mir nicht mehr, aber das könnte das Panel für das "Boom-Theme" sein. Das ist eigentlich auf unsichtbar gestellt, darüber kann man aber das Hintergrundbild auswählen.


                                      Mit dem long/short bin ich noch unschlüssig. Eine Idee wäre in ein "Tages-Bucket" zu schreiben. Hierauf würden dann aktuelle Werte von Grafana (short) verweisen. Per Tasks wird dann alles kopiert, aggregiert und ins long geshifftet. Hierauf verweist dann Grafana auf alles was eben nicht "heute" ist (zB. Temperaturgraf der letzten 365 Tage).
                                      Die Retention für dieses "Tages-Bucket" könnte dann bspw. 5 Tage sein, sprich alles älter als 5 Tage wird automatisch aus diesem Bucket gelöscht. Deswegen ist die Idee mit mehreren Buckets nicht abwegig, da man pro Bucket die Retention wählen kann ;)

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

                                      Rene55R 1 Antwort Letzte Antwort
                                      1
                                      • SBorgS SBorg

                                        @rene55
                                        Jupp, da fehlt wohl bisserl was beim Regen. Irgendwie finde ich im neuen Grafana gerade nicht den JSON-Export für ein Panel...
                                        Hier ist mal mein JSON, allerdings müsstest du da überall die "uid": "ssI1YtJ4z" durch die UID deiner InfluxDB vor dem Import ersetzen.

                                        {
                                         "datasource": {
                                           "uid": "000000001",
                                           "type": "influxdb"
                                         },
                                         "fieldConfig": {
                                           "defaults": {
                                             "custom": {
                                               "align": "left",
                                               "cellOptions": {
                                                 "type": "auto"
                                               },
                                               "inspect": false,
                                               "filterable": false
                                             },
                                             "mappings": [],
                                             "thresholds": {
                                               "mode": "absolute",
                                               "steps": [
                                                 {
                                                   "color": "green",
                                                   "value": null
                                                 }
                                               ]
                                             },
                                             "color": {
                                               "mode": "thresholds"
                                             },
                                             "decimals": 1,
                                             "displayName": "${__field.name}"
                                           },
                                           "overrides": [
                                             {
                                               "matcher": {
                                                 "id": "byName",
                                                 "options": "Field"
                                               },
                                               "properties": [
                                                 {
                                                   "id": "displayName",
                                                   "value": "Zeitraum"
                                                 },
                                                 {
                                                   "id": "custom.align",
                                                   "value": "left"
                                                 }
                                               ]
                                             },
                                             {
                                               "matcher": {
                                                 "id": "byName",
                                                 "options": "Last"
                                               },
                                               "properties": [
                                                 {
                                                   "id": "displayName",
                                                   "value": "Regenmenge"
                                                 },
                                                 {
                                                   "id": "custom.align",
                                                   "value": "left"
                                                 },
                                                 {
                                                   "id": "decimals",
                                                   "value": 1
                                                 },
                                                 {
                                                   "id": "unit",
                                                   "value": "mm"
                                                 }
                                               ]
                                             }
                                           ]
                                         },
                                         "gridPos": {
                                           "h": 7,
                                           "w": 5,
                                           "x": 9,
                                           "y": 12
                                         },
                                         "id": 79,
                                         "options": {
                                           "showHeader": true,
                                           "cellHeight": "sm",
                                           "footer": {
                                             "show": false,
                                             "reducer": [
                                               "sum"
                                             ],
                                             "countRows": false,
                                             "fields": "",
                                             "enablePagination": false
                                           }
                                         },
                                         "pluginVersion": "10.2.3",
                                         "targets": [
                                           {
                                             "datasource": {
                                               "type": "influxdb",
                                               "uid": "ssI1YtJ4z"
                                             },
                                             "alias": "☂️ Heute",
                                             "groupBy": [
                                               {
                                                 "params": [
                                                   "$__interval"
                                                 ],
                                                 "type": "time"
                                               },
                                               {
                                                 "params": [
                                                   "none"
                                                 ],
                                                 "type": "fill"
                                               }
                                             ],
                                             "hide": false,
                                             "measurement": "0_userdata.0.Wetterstation.Regen_Tag",
                                             "orderByTime": "ASC",
                                             "policy": "default",
                                             "query": " from(bucket: \"${DatenBucket}\")\r\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n  |> filter(fn: (r) => r._measurement == \"${Data_Prefix}.${Data_Instanz}.Statistik.Wetter.VorTag.Regenmenge\" and r._field == \"value\")\r\n  |> set(key: \"_field\", value: \"☂️ Gestern\")\r\n  |> yield(name: \"Gestern\")\r\n  ",
                                             "refId": "B",
                                             "resultFormat": "time_series",
                                             "select": [
                                               [
                                                 {
                                                   "params": [
                                                     "value"
                                                   ],
                                                   "type": "field"
                                                 },
                                                 {
                                                   "params": [],
                                                   "type": "last"
                                                 }
                                               ]
                                             ],
                                             "tags": []
                                           },
                                           {
                                             "datasource": {
                                               "type": "influxdb",
                                               "uid": "ssI1YtJ4z"
                                             },
                                             "alias": "☂️ Heute",
                                             "groupBy": [
                                               {
                                                 "params": [
                                                   "$__interval"
                                                 ],
                                                 "type": "time"
                                               },
                                               {
                                                 "params": [
                                                   "none"
                                                 ],
                                                 "type": "fill"
                                               }
                                             ],
                                             "hide": false,
                                             "measurement": "0_userdata.0.Wetterstation.Regen_Tag",
                                             "orderByTime": "ASC",
                                             "policy": "default",
                                             "query": " from(bucket: \"${DatenBucket}\")\r\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n  |> filter(fn: (r) => r._measurement == \"${Data_Prefix}.${Data_Instanz}.${Data_Ordnername}.Regen_Tag\" and r._field == \"value\")\r\n  |> set(key: \"_field\", value: \"☂️ Heute\")\r\n  |> yield(name: \"Heute\")\r\n\r\n  ",
                                             "refId": "C",
                                             "resultFormat": "time_series",
                                             "select": [
                                               [
                                                 {
                                                   "params": [
                                                     "value"
                                                   ],
                                                   "type": "field"
                                                 },
                                                 {
                                                   "params": [],
                                                   "type": "last"
                                                 }
                                               ]
                                             ],
                                             "tags": []
                                           },
                                           {
                                             "datasource": {
                                               "type": "influxdb",
                                               "uid": "ssI1YtJ4z"
                                             },
                                             "alias": "☂️ Heute",
                                             "groupBy": [
                                               {
                                                 "params": [
                                                   "$__interval"
                                                 ],
                                                 "type": "time"
                                               },
                                               {
                                                 "params": [
                                                   "none"
                                                 ],
                                                 "type": "fill"
                                               }
                                             ],
                                             "hide": false,
                                             "measurement": "0_userdata.0.Wetterstation.Regen_Tag",
                                             "orderByTime": "ASC",
                                             "policy": "default",
                                             "query": " from(bucket: \"${DatenBucket}\")\r\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n  |> filter(fn: (r) => r._measurement == \"${Data_Prefix}.${Data_Instanz}.${Data_Ordnername}.Regen_Woche\" and r._field == \"value\")\r\n  |> set(key: \"_field\", value: \"☂️ aktuelle Woche\")\r\n  |> yield(name: \"aktuelle Woche\")\r\n\r\n  ",
                                             "refId": "D",
                                             "resultFormat": "time_series",
                                             "select": [
                                               [
                                                 {
                                                   "params": [
                                                     "value"
                                                   ],
                                                   "type": "field"
                                                 },
                                                 {
                                                   "params": [],
                                                   "type": "last"
                                                 }
                                               ]
                                             ],
                                             "tags": []
                                           },
                                           {
                                             "datasource": {
                                               "type": "influxdb",
                                               "uid": "ssI1YtJ4z"
                                             },
                                             "alias": "☂️ Heute",
                                             "groupBy": [
                                               {
                                                 "params": [
                                                   "$__interval"
                                                 ],
                                                 "type": "time"
                                               },
                                               {
                                                 "params": [
                                                   "none"
                                                 ],
                                                 "type": "fill"
                                               }
                                             ],
                                             "hide": false,
                                             "measurement": "0_userdata.0.Wetterstation.Regen_Tag",
                                             "orderByTime": "ASC",
                                             "policy": "default",
                                             "query": " from(bucket: \"${DatenBucket}\")\r\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n  |> filter(fn: (r) => r._measurement == \"${Data_Prefix}.${Data_Instanz}.${Data_Ordnername}.Regen_Monat\" and r._field == \"value\")\r\n  |> set(key: \"_field\", value: \"☂️ aktueller Monat\")\r\n  |> yield(name: \"aktueller Monat\")\r\n\r\n  ",
                                             "refId": "E",
                                             "resultFormat": "time_series",
                                             "select": [
                                               [
                                                 {
                                                   "params": [
                                                     "value"
                                                   ],
                                                   "type": "field"
                                                 },
                                                 {
                                                   "params": [],
                                                   "type": "last"
                                                 }
                                               ]
                                             ],
                                             "tags": []
                                           },
                                           {
                                             "datasource": {
                                               "type": "influxdb",
                                               "uid": "ssI1YtJ4z"
                                             },
                                             "alias": "☂️ Heute",
                                             "groupBy": [
                                               {
                                                 "params": [
                                                   "$__interval"
                                                 ],
                                                 "type": "time"
                                               },
                                               {
                                                 "params": [
                                                   "none"
                                                 ],
                                                 "type": "fill"
                                               }
                                             ],
                                             "hide": false,
                                             "measurement": "0_userdata.0.Wetterstation.Regen_Tag",
                                             "orderByTime": "ASC",
                                             "policy": "default",
                                             "query": " from(bucket: \"${DatenBucket}\")\r\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n  |> filter(fn: (r) => r._measurement == \"${Data_Prefix}.${Data_Instanz}.${Data_Ordnername}.Regen_Jahr_kumuliert\" and r._field == \"value\")\r\n  |> set(key: \"_field\", value: \"☂️ aktuelles Jahr\")\r\n  |> yield(name: \"aktuelles Jahr\")\r\n\r\n  ",
                                             "refId": "F",
                                             "resultFormat": "time_series",
                                             "select": [
                                               [
                                                 {
                                                   "params": [
                                                     "value"
                                                   ],
                                                   "type": "field"
                                                 },
                                                 {
                                                   "params": [],
                                                   "type": "last"
                                                 }
                                               ]
                                             ],
                                             "tags": []
                                           },
                                           {
                                             "datasource": {
                                               "type": "influxdb",
                                               "uid": "ssI1YtJ4z"
                                             },
                                             "alias": "☂️ Heute",
                                             "groupBy": [
                                               {
                                                 "params": [
                                                   "$__interval"
                                                 ],
                                                 "type": "time"
                                               },
                                               {
                                                 "params": [
                                                   "none"
                                                 ],
                                                 "type": "fill"
                                               }
                                             ],
                                             "hide": false,
                                             "measurement": "0_userdata.0.Wetterstation.Regen_Tag",
                                             "orderByTime": "ASC",
                                             "policy": "default",
                                             "query": " from(bucket: \"${DatenBucket}\")\r\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n  |> filter(fn: (r) => r._measurement == \"${Data_Prefix}.${Data_Instanz}.${Data_Ordnername}.Info.Regenmenge_VorJahr\" and r._field == \"value\")\r\n  |> set(key: \"_field\", value: \"☂️ VorJahr\")\r\n  |> yield(name: \"VorJahr\")\r\n\r\n  ",
                                             "refId": "G",
                                             "resultFormat": "time_series",
                                             "select": [
                                               [
                                                 {
                                                   "params": [
                                                     "value"
                                                   ],
                                                   "type": "field"
                                                 },
                                                 {
                                                   "params": [],
                                                   "type": "last"
                                                 }
                                               ]
                                             ],
                                             "tags": []
                                           }
                                         ],
                                         "transformations": [
                                           {
                                             "id": "reduce",
                                             "options": {
                                               "includeTimeField": false,
                                               "labelsToFields": true,
                                               "mode": "seriesToRows",
                                               "reducers": [
                                                 "last"
                                               ]
                                             }
                                           }
                                         ],
                                         "transparent": true,
                                         "type": "table",
                                         "description": ""
                                        }
                                        


                                        Temperatur in 3h geht über den Adapter "Das Wetter" und ein kleines JS:

                                        
                                        const idTemp = '0_userdata.0.Data.Temperatur_in_3h';
                                        if (!existsState(idTemp)) { createState(idTemp, 0, { name: "erwartete Aussentemperatur in 3 Stunden", type: "number", role: "state", unit: "°C" }); }
                                        
                                        schedule('2 * * * *', function () {
                                           let hours3 = new Date().getHours() + 3;
                                           let id = 'daswetter.0.NextHours.Location_1.Day_1.Hour_' + hours3 + '.temp_value';
                                        
                                           if(hours3 > 24) { 
                                              hours3 -= 24;
                                              id = 'daswetter.0.NextHours.Location_1.Day_2.Hour_' + hours3 + '.temp_value';
                                            }
                                        
                                            setState(idTemp, getState(id).val, true);
                                        });
                                        
                                        

                                        Das leere Panel unter UV-Index existiert bei mir nicht mehr, aber das könnte das Panel für das "Boom-Theme" sein. Das ist eigentlich auf unsichtbar gestellt, darüber kann man aber das Hintergrundbild auswählen.


                                        Mit dem long/short bin ich noch unschlüssig. Eine Idee wäre in ein "Tages-Bucket" zu schreiben. Hierauf würden dann aktuelle Werte von Grafana (short) verweisen. Per Tasks wird dann alles kopiert, aggregiert und ins long geshifftet. Hierauf verweist dann Grafana auf alles was eben nicht "heute" ist (zB. Temperaturgraf der letzten 365 Tage).
                                        Die Retention für dieses "Tages-Bucket" könnte dann bspw. 5 Tage sein, sprich alles älter als 5 Tage wird automatisch aus diesem Bucket gelöscht. Deswegen ist die Idee mit mehreren Buckets nicht abwegig, da man pro Bucket die Retention wählen kann ;)

                                        Rene55R Offline
                                        Rene55R Offline
                                        Rene55
                                        schrieb am zuletzt editiert von Rene55
                                        #5156

                                        @sborg Mega Danke. Ich werde mich jetzt erstmal um die uid kümmern und dein Script einbauen. Damit komme ich bestimmt weiter. (Hab aber bestimmt noch weitere Fragen) :blush:
                                        Tasks wird dann alles kopiert, aggregiert und ins long geshifftet das wäre sowas, wie ich oben den Fummel betitelt hatte.

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

                                        1 Antwort Letzte Antwort
                                        1
                                        • NashraN Offline
                                          NashraN Offline
                                          Nashra
                                          Most Active Forum Testing
                                          schrieb am zuletzt editiert von
                                          #5157

                                          @SBorg
                                          welchen Adapter nutzt du für die Ozonwerte?

                                          Gruß Ralf
                                          Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

                                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                          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

                                          738

                                          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