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. Off Topic
  4. influxdb2 - Downsampling per Tasks

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

influxdb2 - Downsampling per Tasks

Geplant Angeheftet Gesperrt Verschoben Off Topic
18 Beiträge 5 Kommentatoren 1.1k Aufrufe 6 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.
  • AgrippinenserA Offline
    AgrippinenserA Offline
    Agrippinenser
    schrieb am zuletzt editiert von
    #1

    stecke seit ein paar Tagen fest.
    Ich habe diesen Task zur Test angelegt:

    option task = { 
      name: "test5m",
      every: 5m,
    }
    
    from(bucket: "iobroker")
        |> range(start: -5m)
        |> filter(fn: (r) => r["_measurement"] == "zaehlerstand.strom")
        |> filter(fn: (r) => r["_field"] == "value")
        |> aggregateWindow(every: 5m, fn: last, createEmpty: false)
        |> difference()
        |> yield(name: "last")
        |> to(bucket: "test5m", org: "home")
    

    laut Protokoll werden wird alles "success .. " ausgeführt aber ich finde im Bucket test5m keinen Eintrag.

    Vielleicht hat jemand einen Tipp der mir weiterhilft.

    LG

    Grüße vom Rhein @Colonia Claudia Ara Agrippinensium

    AgrippinenserA 1 Antwort Letzte Antwort
    0
    • AgrippinenserA Agrippinenser

      stecke seit ein paar Tagen fest.
      Ich habe diesen Task zur Test angelegt:

      option task = { 
        name: "test5m",
        every: 5m,
      }
      
      from(bucket: "iobroker")
          |> range(start: -5m)
          |> filter(fn: (r) => r["_measurement"] == "zaehlerstand.strom")
          |> filter(fn: (r) => r["_field"] == "value")
          |> aggregateWindow(every: 5m, fn: last, createEmpty: false)
          |> difference()
          |> yield(name: "last")
          |> to(bucket: "test5m", org: "home")
      

      laut Protokoll werden wird alles "success .. " ausgeführt aber ich finde im Bucket test5m keinen Eintrag.

      Vielleicht hat jemand einen Tipp der mir weiterhilft.

      LG

      AgrippinenserA Offline
      AgrippinenserA Offline
      Agrippinenser
      schrieb am zuletzt editiert von
      #2

      @agrippinenser sagte in influxdb2 - Downsampling per Tasks:

      aber ich finde im Bucket test5m keinen Eintrag.

      .. noch zur Ergänzung > so versuche ich zu finden!

      from(bucket: "test5m")
        |> range(start: 1970-01-01T00:00:00Z, stop: now())
        |> filter(fn: (r) => r["_measurement"] == "zaehlerstand.strom")
        |> filter(fn: (r) => r["_field"] == "value")
        |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)
        |> yield(name: "last")
      

      Grüße vom Rhein @Colonia Claudia Ara Agrippinensium

      Marc BergM ? 2 Antworten Letzte Antwort
      0
      • AgrippinenserA Agrippinenser

        @agrippinenser sagte in influxdb2 - Downsampling per Tasks:

        aber ich finde im Bucket test5m keinen Eintrag.

        .. noch zur Ergänzung > so versuche ich zu finden!

        from(bucket: "test5m")
          |> range(start: 1970-01-01T00:00:00Z, stop: now())
          |> filter(fn: (r) => r["_measurement"] == "zaehlerstand.strom")
          |> filter(fn: (r) => r["_field"] == "value")
          |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)
          |> yield(name: "last")
        
        Marc BergM Offline
        Marc BergM Offline
        Marc Berg
        Most Active
        schrieb am zuletzt editiert von Marc Berg
        #3

        @agrippinenser

        <meinen Unsinn gelöscht>

        Die Abfrage

        from(bucket: "iobroker")
            |> range(start: -5m)
            |> filter(fn: (r) => r["_measurement"] == "zaehlerstand.strom")
            |> filter(fn: (r) => r["_field"] == "value")
            |> aggregateWindow(every: 5m, fn: last, createEmpty: false)
            |> difference()
        

        ergibt leider gar keinen Sinn.

        Du filterst auf die letzten 5 Minuten, fragst dann den letzten Wert aus diesen 5min ab. Und dann willst du aus (max.) einem Wert die Differenz bilden. Das geht nicht ...

        NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+RabbitMQ+Grafana

        Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

        Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

        AgrippinenserA 1 Antwort Letzte Antwort
        0
        • Marc BergM Marc Berg

          @agrippinenser

          <meinen Unsinn gelöscht>

          Die Abfrage

          from(bucket: "iobroker")
              |> range(start: -5m)
              |> filter(fn: (r) => r["_measurement"] == "zaehlerstand.strom")
              |> filter(fn: (r) => r["_field"] == "value")
              |> aggregateWindow(every: 5m, fn: last, createEmpty: false)
              |> difference()
          

          ergibt leider gar keinen Sinn.

          Du filterst auf die letzten 5 Minuten, fragst dann den letzten Wert aus diesen 5min ab. Und dann willst du aus (max.) einem Wert die Differenz bilden. Das geht nicht ...

          AgrippinenserA Offline
          AgrippinenserA Offline
          Agrippinenser
          schrieb am zuletzt editiert von
          #4

          @marc-berg sagte in influxdb2 - Downsampling per Tasks:

          ergibt leider gar keinen Sinn.

          das ist vielleicht mein Verständnisproblem !

          Wenn ich diese Abfrage ausführe ergibt das ein zumindest ein Ergebnis. Ob richtig sei mal dahingestellt :-)

          55ef4f9f-a3c9-4838-9292-bc7a28b23a4d-image.png

          Grüße vom Rhein @Colonia Claudia Ara Agrippinensium

          Marc BergM 1 Antwort Letzte Antwort
          0
          • AgrippinenserA Agrippinenser

            @marc-berg sagte in influxdb2 - Downsampling per Tasks:

            ergibt leider gar keinen Sinn.

            das ist vielleicht mein Verständnisproblem !

            Wenn ich diese Abfrage ausführe ergibt das ein zumindest ein Ergebnis. Ob richtig sei mal dahingestellt :-)

            55ef4f9f-a3c9-4838-9292-bc7a28b23a4d-image.png

            Marc BergM Offline
            Marc BergM Offline
            Marc Berg
            Most Active
            schrieb am zuletzt editiert von
            #5

            @agrippinenser
            Dann ist mir irgendwie unklar, was du erreichen willst. Willst du die Zählerstände im Ergebnis haben oder die Verbräuche?

            NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+RabbitMQ+Grafana

            Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

            Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

            AgrippinenserA 2 Antworten Letzte Antwort
            0
            • AgrippinenserA Agrippinenser

              @agrippinenser sagte in influxdb2 - Downsampling per Tasks:

              aber ich finde im Bucket test5m keinen Eintrag.

              .. noch zur Ergänzung > so versuche ich zu finden!

              from(bucket: "test5m")
                |> range(start: 1970-01-01T00:00:00Z, stop: now())
                |> filter(fn: (r) => r["_measurement"] == "zaehlerstand.strom")
                |> filter(fn: (r) => r["_field"] == "value")
                |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false)
                |> yield(name: "last")
              
              ? Offline
              ? Offline
              Ein ehemaliger Benutzer
              schrieb am zuletzt editiert von
              #6

              @agrippinenser

              Moin,

              vielleicht als Denkanstoß,

              import "timezone"
              
              option task = {name: "Downsampling Vb_Stromzaehler", cron: "15 0 * * *"}
              
              option location = timezone.location(name: "Europe/Berlin")
              
              data =
                  from(bucket: "iobroker_strom")
                      |> range(start: -2mo, stop: now())
                      |> filter(fn: (r) => r["_measurement"] == "sonoff.0.DVES_8AA766.SENSOR.SML.total_kwh")
                      |> filter(fn: (r) => r["_field"] == "value")
                      // Spalten "_start", "_stop", "ack", "from", "q", ausschliessen
                      |> drop(columns: ["ack", "q", "from"])
              
              data
                  |> aggregateWindow(every: 1d, fn: last, timeSrc: "_time")
                  // In Wh ohne Komma
                  |> toInt()
                  |> set(key: "_measurement", value: "Hauptzaehler")
                  // Use the to() function to validate that the results look correct. This is optional.
                  |> to(bucket: "Stromverbrauch", org: "iobroker_strom")
              

              VG
              Bernd

              1 Antwort Letzte Antwort
              1
              • Marc BergM Marc Berg

                @agrippinenser
                Dann ist mir irgendwie unklar, was du erreichen willst. Willst du die Zählerstände im Ergebnis haben oder die Verbräuche?

                AgrippinenserA Offline
                AgrippinenserA Offline
                Agrippinenser
                schrieb am zuletzt editiert von Agrippinenser
                #7

                @marc-berg sagte in influxdb2 - Downsampling per Tasks:

                dann ist mir irgendwie unklar, was du erreichen willst.

                hätte ich auch vorher sagen sollen. Ich wollte downsampling üben.

                Zu Testzwecken werden alle paar Sekunden Zählerstände des Stromzählers in Bucket "zaehlerstand.strom" geschrieben.
                Nun sollte das Range zwischen(Anfang und Ende) der letzten 5 Minuten ermittelt werden und ins Bucket "test5m" wegeschieben werden.

                Grüße vom Rhein @Colonia Claudia Ara Agrippinensium

                Marc BergM 1 Antwort Letzte Antwort
                0
                • Marc BergM Marc Berg

                  @agrippinenser
                  Dann ist mir irgendwie unklar, was du erreichen willst. Willst du die Zählerstände im Ergebnis haben oder die Verbräuche?

                  AgrippinenserA Offline
                  AgrippinenserA Offline
                  Agrippinenser
                  schrieb am zuletzt editiert von Agrippinenser
                  #8

                  @marc-berg

                  vielleicht noch .. es geht mir weniger um das richte Ergebnis sodern das überhaupt etwas geschrieben wird.

                  @marc-berg sagte in influxdb2 - Downsampling per Tasks:

                  ergibt leider gar keinen Sinn.

                  könntest du eine Abfrage zum errechnen der Differenz zwischen min und max innerhalb des Zeitraumes vorschlagen?

                  Grüße vom Rhein @Colonia Claudia Ara Agrippinensium

                  1 Antwort Letzte Antwort
                  0
                  • AgrippinenserA Agrippinenser

                    @marc-berg sagte in influxdb2 - Downsampling per Tasks:

                    dann ist mir irgendwie unklar, was du erreichen willst.

                    hätte ich auch vorher sagen sollen. Ich wollte downsampling üben.

                    Zu Testzwecken werden alle paar Sekunden Zählerstände des Stromzählers in Bucket "zaehlerstand.strom" geschrieben.
                    Nun sollte das Range zwischen(Anfang und Ende) der letzten 5 Minuten ermittelt werden und ins Bucket "test5m" wegeschieben werden.

                    Marc BergM Offline
                    Marc BergM Offline
                    Marc Berg
                    Most Active
                    schrieb am zuletzt editiert von Marc Berg
                    #9

                    @agrippinenser sagte in influxdb2 - Downsampling per Tasks:

                    Nun sollte das Range zwischen(Anfang und Ende) der letzten 5 Minuten ermittelt werden und ins Bucket "test5m" wegeschieben werden.

                    okay, das ginge z.B. so:

                    from(bucket: "iobroker")
                      |> range(start:-5m)
                      |> filter(fn: (r) => r["_measurement"] == "zaehlerstand.strom")
                      |> filter(fn: (r) => r["_field"] == "value")
                      |> difference()
                      |> aggregateWindow(every:5m,fn:sum,createEmpty:false)
                    

                    Damit ermitteltst du im ersten Schritt alle Differenzen zwischen allen Einzelwerten im Zeitraum und bildest danach die Summe aller Differenzen. Damit ist eigentlich dein Ziel erreicht, trotzdem würde ich es so nicht machen, da dir ggf. die Differenzen zwischen den Zeitfenstern verloren gehen können.

                    Stattdessen würde ich nicht die Verbräuche "downsamplen", sondern z.B. den jeweils letzten Zählerstand des Tages wegschreiben. Aus diesen Tageswerten kannst du dann dynamisch Verbräuche errechnen. Das(?) Ziel, Speicherplatz zu sparen ist aber erreicht. Das Beispiel von Bernd macht glaube ich, genau das.

                    NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+RabbitMQ+Grafana

                    Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

                    Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

                    AgrippinenserA 1 Antwort Letzte Antwort
                    1
                    • AgrippinenserA Offline
                      AgrippinenserA Offline
                      Agrippinenser
                      schrieb am zuletzt editiert von
                      #10

                      @marc-berg @dp20eic

                      Vielen Dank euch ... dass muss ich erst mal verarbeiten ..

                      Grüße vom Rhein @Colonia Claudia Ara Agrippinensium

                      S 1 Antwort Letzte Antwort
                      0
                      • AgrippinenserA Agrippinenser

                        @marc-berg @dp20eic

                        Vielen Dank euch ... dass muss ich erst mal verarbeiten ..

                        S Offline
                        S Offline
                        SpacerX
                        schrieb am zuletzt editiert von
                        #11

                        @agrippinenser ich hab da auch noch ein Beispiel, wie ich von den Tagestemperaturen Min und Max pro Tag in ein anderes Bucket schreibe.

                        import "timezone"
                        
                        option location = timezone.location(name: "Europe/Berlin")
                        option task = {name: "Downsampling Temperatur_Ost", cron: "10 0 * * *"}
                        
                        data =
                            from(bucket: "ioBroker")
                                // Für Cron: "10 0 * * *" = 0:10 Uhr
                                |> range(start: date.truncate(t: -2d, unit: 1d), stop: today())
                                |> filter(fn: (r) => r["_measurement"] == "Ost_Temperatur")
                                |> filter(fn: (r) => r["from"] == "system.adapter.hm-rpc.0")
                                // Spalten "ack", "from", "q", ausschliessen
                                |> drop(columns: ["ack", "q", "from"])
                        
                        min_temp =
                            data
                                |> aggregateWindow(every: 1d, fn: min, createEmpty: false, timeSrc: "_start")
                                |> set(key: "_field", value: "min")
                        
                        max_temp =
                            data
                                |> aggregateWindow(every: 1d, fn: max, createEmpty: false, timeSrc: "_start")
                                |> set(key: "_field", value: "max")
                        
                        data
                        union(tables: [min_temp, max_temp])
                            |> set(key: "_measurement", value: "Ost_Balkon")
                            |> to(bucket: "Temperaturen", org: "RBE")
                        

                        Anzeigen aus dem anderen Bucket mit:

                        import "timezone" // import wegen der Berechnung um 02:00:00
                        option location = timezone.location(name: "Europe/Berlin")
                        
                        from(bucket: "Temperaturen")
                          |> range(start: -1y, stop: now())
                          |> filter(fn: (r) => r["_measurement"] == "Ost_Balkon")
                          |> filter(fn: (r) => r["_field"] == "max" or r["_field"] == "min")
                          |> yield(name: "Ost")
                        

                        Viel Spaß beim durchforsten.

                        DS720|Nuc8i3BEH|Proxmox|RaspberryMatic|ioBroker|influxDB2|Grafana

                        AgrippinenserA 1 Antwort Letzte Antwort
                        1
                        • Marc BergM Marc Berg

                          @agrippinenser sagte in influxdb2 - Downsampling per Tasks:

                          Nun sollte das Range zwischen(Anfang und Ende) der letzten 5 Minuten ermittelt werden und ins Bucket "test5m" wegeschieben werden.

                          okay, das ginge z.B. so:

                          from(bucket: "iobroker")
                            |> range(start:-5m)
                            |> filter(fn: (r) => r["_measurement"] == "zaehlerstand.strom")
                            |> filter(fn: (r) => r["_field"] == "value")
                            |> difference()
                            |> aggregateWindow(every:5m,fn:sum,createEmpty:false)
                          

                          Damit ermitteltst du im ersten Schritt alle Differenzen zwischen allen Einzelwerten im Zeitraum und bildest danach die Summe aller Differenzen. Damit ist eigentlich dein Ziel erreicht, trotzdem würde ich es so nicht machen, da dir ggf. die Differenzen zwischen den Zeitfenstern verloren gehen können.

                          Stattdessen würde ich nicht die Verbräuche "downsamplen", sondern z.B. den jeweils letzten Zählerstand des Tages wegschreiben. Aus diesen Tageswerten kannst du dann dynamisch Verbräuche errechnen. Das(?) Ziel, Speicherplatz zu sparen ist aber erreicht. Das Beispiel von Bernd macht glaube ich, genau das.

                          AgrippinenserA Offline
                          AgrippinenserA Offline
                          Agrippinenser
                          schrieb am zuletzt editiert von Agrippinenser
                          #12

                          @marc-berg

                          @marc-berg sagte in influxdb2 - Downsampling per Tasks:

                          Stattdessen würde ich nicht die Verbräuche "downsamplen", sondern z.B. den jeweils letzten Zählerstand des Tages wegschreiben.

                          Dank eurer Hilfe bin ich einen riesen Schritt weiter gekommen. Daten werden richtig aggregiert per Task geschrieben und ich finde sie auch wieder. :+1:
                          Den letzten Zählerstand niederschreiben macht Sinn! Das bringt mich allerdings zu grundlegender selbstkritischer Idee:
                          "Warum protokolliere ich den Zählerstand vor Tageswechsel nicht mittels Skript in einen Datenpunkt und mache stattdessen solche Umwege?"

                          .. wo wir gerade dabei sind, habe dieses gestern im Netz gefunden, weis leider nicht mehr wo.
                          Hier wird min / max / range ausgegeben. Vielleicht kann es jemand brauchen.

                          from(bucket: "iobroker")
                          //  |> range(start: 1970-01-01T00:00:00Z, stop: now())
                          //  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                            |> range(start:-24d)
                            |> filter(fn: (r) => r["_measurement"] == "zaehlerstand.strom")
                            |> filter(fn: (r) => r["_field"] == "value")
                            |> reduce(fn: (r,
                              accumulator) => ({
                                min: if r._value < accumulator.min then r._value else accumulator.min,
                                max: if r._value > accumulator.max then r._value else accumulator.max
                              }),
                              identity: {min: 10000000000.0, max: -10000000000.0})
                            |> map(fn: (r) => ({ r with range: (r.max - r.min)*1.0 }))
                            |> yield(name: "Range/[kWh]")
                          

                          vielen Dank !
                          LG

                          Grüße vom Rhein @Colonia Claudia Ara Agrippinensium

                          1 Antwort Letzte Antwort
                          0
                          • S SpacerX

                            @agrippinenser ich hab da auch noch ein Beispiel, wie ich von den Tagestemperaturen Min und Max pro Tag in ein anderes Bucket schreibe.

                            import "timezone"
                            
                            option location = timezone.location(name: "Europe/Berlin")
                            option task = {name: "Downsampling Temperatur_Ost", cron: "10 0 * * *"}
                            
                            data =
                                from(bucket: "ioBroker")
                                    // Für Cron: "10 0 * * *" = 0:10 Uhr
                                    |> range(start: date.truncate(t: -2d, unit: 1d), stop: today())
                                    |> filter(fn: (r) => r["_measurement"] == "Ost_Temperatur")
                                    |> filter(fn: (r) => r["from"] == "system.adapter.hm-rpc.0")
                                    // Spalten "ack", "from", "q", ausschliessen
                                    |> drop(columns: ["ack", "q", "from"])
                            
                            min_temp =
                                data
                                    |> aggregateWindow(every: 1d, fn: min, createEmpty: false, timeSrc: "_start")
                                    |> set(key: "_field", value: "min")
                            
                            max_temp =
                                data
                                    |> aggregateWindow(every: 1d, fn: max, createEmpty: false, timeSrc: "_start")
                                    |> set(key: "_field", value: "max")
                            
                            data
                            union(tables: [min_temp, max_temp])
                                |> set(key: "_measurement", value: "Ost_Balkon")
                                |> to(bucket: "Temperaturen", org: "RBE")
                            

                            Anzeigen aus dem anderen Bucket mit:

                            import "timezone" // import wegen der Berechnung um 02:00:00
                            option location = timezone.location(name: "Europe/Berlin")
                            
                            from(bucket: "Temperaturen")
                              |> range(start: -1y, stop: now())
                              |> filter(fn: (r) => r["_measurement"] == "Ost_Balkon")
                              |> filter(fn: (r) => r["_field"] == "max" or r["_field"] == "min")
                              |> yield(name: "Ost")
                            

                            Viel Spaß beim durchforsten.

                            AgrippinenserA Offline
                            AgrippinenserA Offline
                            Agrippinenser
                            schrieb am zuletzt editiert von
                            #13

                            @spacerx

                            vielen Dank dafür. Ich nutze das nun etwas abgeändert für abfragen von min max Aktienkurse.

                            ich muss zugeben das ich den Umstieg von V1.8 auf 2.x unterschätz habe. Aber so langsam geht's voran :v:

                            import "date"
                            import "timezone"
                            option location = timezone.location(name: "Europe/Berlin")
                            
                            data =
                                from(bucket: "iobroker")
                                    |> range(start: date.truncate(t: -1d, unit: 1d), stop: today())
                                    |> filter(fn: (r) => r["_measurement"] == "Aktien_WKN_XXXXXX")
                                    |> filter(fn: (r) => r["_field"] == "value")
                                    |> drop(columns: ["ack", "q", "from"])
                            
                            minkurs =
                                data
                                    |> aggregateWindow(every: 1d, fn: min, createEmpty: false, timeSrc: "_start")
                                    |> set(key: "_field", value: "min")
                            
                            maxkurs =
                                data
                                    |> aggregateWindow(every: 1d, fn: max, createEmpty: false, timeSrc: "_start")
                                    |> set(key: "_field", value: "max")
                            
                            data
                                union(tables: [minkurs, maxkurs])
                                |> set(key: "_measurement", value: "min_max_Kurse")
                                |> to(bucket: "Tageskurse", org: "home")
                            

                            Grüße vom Rhein @Colonia Claudia Ara Agrippinensium

                            B 1 Antwort Letzte Antwort
                            0
                            • AgrippinenserA Agrippinenser

                              @spacerx

                              vielen Dank dafür. Ich nutze das nun etwas abgeändert für abfragen von min max Aktienkurse.

                              ich muss zugeben das ich den Umstieg von V1.8 auf 2.x unterschätz habe. Aber so langsam geht's voran :v:

                              import "date"
                              import "timezone"
                              option location = timezone.location(name: "Europe/Berlin")
                              
                              data =
                                  from(bucket: "iobroker")
                                      |> range(start: date.truncate(t: -1d, unit: 1d), stop: today())
                                      |> filter(fn: (r) => r["_measurement"] == "Aktien_WKN_XXXXXX")
                                      |> filter(fn: (r) => r["_field"] == "value")
                                      |> drop(columns: ["ack", "q", "from"])
                              
                              minkurs =
                                  data
                                      |> aggregateWindow(every: 1d, fn: min, createEmpty: false, timeSrc: "_start")
                                      |> set(key: "_field", value: "min")
                              
                              maxkurs =
                                  data
                                      |> aggregateWindow(every: 1d, fn: max, createEmpty: false, timeSrc: "_start")
                                      |> set(key: "_field", value: "max")
                              
                              data
                                  union(tables: [minkurs, maxkurs])
                                  |> set(key: "_measurement", value: "min_max_Kurse")
                                  |> to(bucket: "Tageskurse", org: "home")
                              
                              B Offline
                              B Offline
                              babl
                              schrieb am zuletzt editiert von
                              #14

                              @agrippinenser
                              @SpacerX
                              kann mir mal bitte jemand erklären warum ich keinen task speichern kann der button ist ausgegraut.

                              Danke

                              ? Marc BergM 2 Antworten Letzte Antwort
                              0
                              • B babl

                                @agrippinenser
                                @SpacerX
                                kann mir mal bitte jemand erklären warum ich keinen task speichern kann der button ist ausgegraut.

                                Danke

                                ? Offline
                                ? Offline
                                Ein ehemaliger Benutzer
                                schrieb am zuletzt editiert von
                                #15

                                @babl sagte in influxdb2 - Downsampling per Tasks:

                                @agrippinenser
                                @SpacerX
                                kann mir mal bitte jemand erklären warum ich keinen task speichern kann der button ist ausgegraut.

                                Danke

                                Moin,

                                kannst Du zeigen, was Du gemacht hast, denn meine Glaskugel ist zur Politur.

                                VG
                                Bernd

                                B 1 Antwort Letzte Antwort
                                0
                                • ? Ein ehemaliger Benutzer

                                  @babl sagte in influxdb2 - Downsampling per Tasks:

                                  @agrippinenser
                                  @SpacerX
                                  kann mir mal bitte jemand erklären warum ich keinen task speichern kann der button ist ausgegraut.

                                  Danke

                                  Moin,

                                  kannst Du zeigen, was Du gemacht hast, denn meine Glaskugel ist zur Politur.

                                  VG
                                  Bernd

                                  B Offline
                                  B Offline
                                  babl
                                  schrieb am zuletzt editiert von
                                  #16

                                  @dp20eic ich habe das task script von oben genommen, habe es in einen task eingegeben und nach meinen datenpunkten angepasst und dann wollte ich das speichern um es zu testen, wenn ich auf den button save klicke ändert sich der mauszeiger in ein durchfahrtsverbot und das wars.

                                  Habe es jetzt aber anders gelöst, im data explorer die datenpunkte ausgewählt die ich aggregieren will und dann save as "task" angeklickt, hier wird der task gespeichert, so nun bin ich mal am testen daß ich hier vernünftige lösungen hinbekomme um auch die datenbank nicht zu groß werden zu lassen und doch vernünftig daten auf längere sicht zu haben.

                                  1 Antwort Letzte Antwort
                                  0
                                  • B babl

                                    @agrippinenser
                                    @SpacerX
                                    kann mir mal bitte jemand erklären warum ich keinen task speichern kann der button ist ausgegraut.

                                    Danke

                                    Marc BergM Offline
                                    Marc BergM Offline
                                    Marc Berg
                                    Most Active
                                    schrieb am zuletzt editiert von Marc Berg
                                    #17

                                    @babl sagte in influxdb2 - Downsampling per Tasks:

                                    kann mir mal bitte jemand erklären warum ich keinen task speichern kann der button ist ausgegraut.

                                    "Save" wird nur aktiv, wenn mindestens "Name" und "Every/Cron" ausgefüllt wurde.

                                    7c6464ac-7594-4553-8809-30f7b7d621d8-grafik.png

                                    NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+RabbitMQ+Grafana

                                    Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

                                    Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

                                    AgrippinenserA 1 Antwort Letzte Antwort
                                    0
                                    • Marc BergM Marc Berg

                                      @babl sagte in influxdb2 - Downsampling per Tasks:

                                      kann mir mal bitte jemand erklären warum ich keinen task speichern kann der button ist ausgegraut.

                                      "Save" wird nur aktiv, wenn mindestens "Name" und "Every/Cron" ausgefüllt wurde.

                                      7c6464ac-7594-4553-8809-30f7b7d621d8-grafik.png

                                      AgrippinenserA Offline
                                      AgrippinenserA Offline
                                      Agrippinenser
                                      schrieb am zuletzt editiert von
                                      #18

                                      @marc-berg hei!

                                      ..und falls es ein CRON Job werden soll dann konfiguriere ich dort UTC, also für 23:59 Uhr 59 21 * * *
                                      Zumindest habe ich das nach gefühlt 73 Versuchen für mich festgestellt.

                                      Grüße vom Rhein @Colonia Claudia Ara Agrippinensium

                                      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

                                      515

                                      Online

                                      32.5k

                                      Benutzer

                                      81.7k

                                      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