Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Grafana
    5. Grafana macht aus 7 Tagen 8 Tage

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Grafana macht aus 7 Tagen 8 Tage

    This topic has been deleted. Only users with topic management privileges can see it.
    • G
      guergen @igabbert last edited by guergen

      @igabbert hiermit macht er die letzten 7 Tage ausser heute:

        |> range(start: date.add(d: -7d, to: today()), stop: date.truncate(t: today(), unit: 1d))
      

      und

      import "date"
      

      oben nicht vergessen

      1 Reply Last reply Reply Quote 0
      • haus-automatisierung
        haus-automatisierung Developer Most Active @igabbert last edited by

        @igabbert sagte in Grafana macht aus 7 Tagen 8 Tage:

        genau wie Grafana aus 7 Tagen 8 Tage macht, wird aus 4 Wochen 5 Wochen gemacht

        Hast Du die Antwort/Begründung von @Marc-Berg oben gelesen?

        I 1 Reply Last reply Reply Quote 0
        • I
          igabbert @haus-automatisierung last edited by

          @haus-automatisierung
          Habe nochmal überlegt, besser 28d bzw. 27d als 1mo im Code verwenden?
          Meinst Du das?

          Viele Grüße, Ingo

          I 1 Reply Last reply Reply Quote 0
          • I
            igabbert @igabbert last edited by

            @igabbert said in Grafana macht aus 7 Tagen 8 Tage:

            @haus-automatisierung
            Habe nochmal überlegt, besser 28d bzw. 27d als 1mo im Code verwenden?
            Meinst Du das?

            Viele Grüße, Ingo

            Habe nun folgenden Code verwendet, aber das Erscheinungsbild des Panels hat sich nicht geändert:

            import "timezone"
            import "date"
             
            option location = timezone.location(name: "Europe/Berlin")
            from(bucket: "iobroker")
              |> range(start: date.truncate(t:-27d, unit:7d))
              |> filter(fn: (r) => r["_measurement"] == "ErtragTotal" and r["_field"] == "value")
              |> difference()
              |> aggregateWindow(every: 7d, offset: -3d, fn: sum, timeSrc: "_start")
            
            haus-automatisierung 1 Reply Last reply Reply Quote 0
            • haus-automatisierung
              haus-automatisierung Developer Most Active @igabbert last edited by haus-automatisierung

              @igabbert sagte in Grafana macht aus 7 Tagen 8 Tage:

              |> range(start: date.truncate(t:-27d, unit:7d))

              Die Funktion erlaubt als unit aber nur Werte mit 1. Also 1s, 1m, 1h, ...

              Was genau soll 7d als Unit denn bezwecken?! Und warum ein Offset von -3d?

              Definiere doch nochmal genau was Du haben möchtest. Erst war Dir ein Tag zu viel, dann wurde darauf geantwortet und eine Lösung geboten. Dann wurde auf Monat umgestellt und ein Monat zu viel?

              Von wann bis wann genau möchtest Du welche Daten haben

              I 1 Reply Last reply Reply Quote 1
              • I
                igabbert @haus-automatisierung last edited by

                @haus-automatisierung
                Das mit der Woche hat sich, wie ich bereits geschrieben habe, erledigt und klappt jetzt auch gut. Nun habe ich das gleiche Problem bei der Monatsauswertung, d.h. Ich definiere im Code einen Monat, also 1mo und er soll die letzten vier Wochenwerte anzeigen.
                Er zeigt aber 5 Wochen an, wobei der linke Balken im Laufe des Woche stetig weniger wird. Ich habe oben bereits ein Screenshot eingebunden.

                Der offset in der Wochengeschichte, hat damit zu tun, dass für Grafana die Woche am Donnerstag beginnt und nicht am Montag.

                Viele Grüße, Ingo

                haus-automatisierung 1 Reply Last reply Reply Quote 0
                • haus-automatisierung
                  haus-automatisierung Developer Most Active @igabbert last edited by haus-automatisierung

                  Zusammenfassung:

                  • date.add(d: -1mo, to: today()) würde Dir heute Minus 1 Monat rechnen (also heute 04.08. > 04.07.). Die Frage ist ob Du das als Start möchtest oder ganze Wochen (Mo-So). Sonst würde ja ggf. eine halbe Woche oder noch weniger in der Auswertung auftauchen.
                  • date.truncate(t: today(), unit: 1mo) würde den Anfang des aktuellen Monats ausgeben. Also heute 04.08 > 01.08). Da sind nur nicht 4 Wochen enthalten.

                  @igabbert sagte in Grafana macht aus 7 Tagen 8 Tage:

                  Der offset in der Wochengeschichte, hat damit zu tun, dass für Grafana die Woche am Donnerstag beginnt und nicht am Montag.

                  Ach stimmt, da bin ich auch mal drüber gestolpert. Der Grund ist:

                  The Unix epoch was on a Thursday, so all calculated weeks begin on Thursday.

                  Daher liefert

                  • date.truncate(t: today(), unit: 1w) auch aktuell den 03.08. statt den 31.07.
                  • date.sub(d: 3d, from: date.truncate(t: today(), unit: 1w)) wäre dann richtig (der letzte Anfang der Woche). Das klappt aber nicht immer (z.B. Montag oder Dienstag). Daher schlage ich vorher nochmal 3 Tage drauf (von Heute) und später wieder 3 Tage zurück vom Ergebnis. siehe unten

                  Mein Ziel wäre jetzt (an Deiner Stelle) von dort aus 4x 7 Tage = 28 Tage zurück zu gehen (also wäre das der 03.07.). So bekommt man 4 vollständige Wochen als Ergebnis und die aktuell laufende Woche wird ignoriert.

                  import "timezone"
                  import "date"
                  
                  option location = timezone.location(name: "Europe/Berlin")
                  
                  tempDate = date.add(d: 3d, to: today())
                  weekStart = date.sub(d: 3d, from: date.truncate(t: tempDate, unit: 1w))
                  
                  from(bucket: "iobroker")
                    |> range(start: date.sub(d: 28d, from: weekStart), stop: weekStart)
                    |> filter(fn: (r) => r["_measurement"] == "ErtragTotal" and r["_field"] == "value")
                    |> difference()
                    |> aggregateWindow(every: 1w, offset: -3d, fn: sum, timeSrc: "_start")
                  

                  EDIT: Habe das Statement gerade noch einmal bearbeitet. So bekomme ich genau 4 Ergebnisse und diese stimmen mit den Daten aus meinem Wechselrichter überein.

                  I 1 Reply Last reply Reply Quote 0
                  • I
                    igabbert @haus-automatisierung last edited by

                    @haus-automatisierung
                    Hallo,

                    Es scheint zu funktionieren! Ich habe nur das Gefühl, das immer noch der linke Balken zum Ende der Woche kürzer wird, also die Werte fallen. Ich halte das mal im Blick und melde mich. Trotzdem schon einmal vielen Dank für Deine Hilfe.

                    Viele Grüße, Ingo

                    haus-automatisierung 1 Reply Last reply Reply Quote 0
                    • haus-automatisierung
                      haus-automatisierung Developer Most Active @igabbert last edited by

                      @igabbert sagte in Grafana macht aus 7 Tagen 8 Tage:

                      Ich habe nur das Gefühl, das immer noch der linke Balken zum Ende der Woche kürzer wird

                      Kann ja nicht, da weekStart auf diese Art und Weise immer auf dem gleichen Zeitpunkt bleibt, bis die Woche wechselt.

                      I 1 Reply Last reply Reply Quote 0
                      • I
                        igabbert @haus-automatisierung last edited by

                        @haus-automatisierung
                        Stimmt!
                        Vielen Dank für Deine Hilfe.

                        Viele Grüße, Ingo

                        I 1 Reply Last reply Reply Quote 0
                        • I
                          igabbert @igabbert last edited by

                          @igabbert Hallo zusammen, ich muss nochmal nerven. Das o.g. Script läuft nicht weiter. Eigentlich sollte nun die neue Woche mit dem 28.08. beginnen und die Woche ab 31.07. verschwinden. Passiert aber nicht.

                          Bildschirmfoto 2023-08-30 um 07.43.24.png

                          Hat jemand eine Idee? Am Code habe ich nichts geändert.

                          Viele Grüße, Ingo

                          Marc Berg haus-automatisierung 2 Replies Last reply Reply Quote 0
                          • Marc Berg
                            Marc Berg Most Active @igabbert last edited by

                            @igabbert sagte in Grafana macht aus 7 Tagen 8 Tage:

                            Das o.g. Script läuft nicht weiter

                            Da "oben" gibt einige Queries. Es ist unklar, worauf du dich beziehst.

                            Außerdem:

                            @haus-automatisierung sagte in Grafana macht aus 7 Tagen 8 Tage:

                            So bekommt man 4 vollständige Wochen als Ergebnis und die aktuell laufende Woche wird ignoriert.

                            Und genau DAS sehe ich in deinem Screenshot.

                            1 Reply Last reply Reply Quote 1
                            • haus-automatisierung
                              haus-automatisierung Developer Most Active @igabbert last edited by

                              @igabbert sagte in Grafana macht aus 7 Tagen 8 Tage:

                              Eigentlich sollte nun die neue Woche mit dem 28.08. beginnen und die Woche ab 31.07. verschwinden. Passiert aber nicht.

                              Ja? Das hatten wir oben aber anders besprochen 🙂

                              I 1 Reply Last reply Reply Quote 0
                              • I
                                igabbert @haus-automatisierung last edited by

                                @haus-automatisierung Alles klar, war mein Denkfehler... Stimmt, die letzten 4 "kompletten" Wochen... Sorry, ich bin so ungeduldig. 😉

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                716
                                Online

                                31.9k
                                Users

                                80.1k
                                Topics

                                1.3m
                                Posts

                                4
                                21
                                1102
                                Loading More Posts
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes
                                Reply
                                • Reply as topic
                                Log in to reply
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                The ioBroker Community 2014-2023
                                logo