Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Grafana - InfluxDB 2 - Tageswert wird Folgetag zugeordnet

    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 - InfluxDB 2 - Tageswert wird Folgetag zugeordnet

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      AndreasK @Guest last edited by

      @dp20eic
      Sorry, wenn ich fragen muss. Bin neu in dem Thema!
      In die Query von Grafana?
      Ich habe die InfluxDB v2.6.1 am Laufen

      ? 1 Reply Last reply Reply Quote 0
      • ?
        A Former User @AndreasK last edited by A Former User

        @andreask sagte in Grafana - InfluxDB 2 - Tageswert wird Folgetag zugeordnet:

        @dp20eic
        Sorry, wenn ich fragen muss. Bin neu in dem Thema!
        In die Query von Grafana?
        Ich habe die InfluxDB v2.6.1 am Laufen

        Moin,
        ja,, in Grafana im Panel/Daschborad welches du anpassen musst. Die Abfragesprache ist halt influxDB - Flux, wenn dein Grafana gegen eine influxDB V 2.x gebunden ist und Du dort mit FLUX abfragst.

        VG
        Bernd

        Edit, Bild gelöscht, da es mehr verwirrt als hilft.

        1 Reply Last reply Reply Quote 0
        • A
          AndreasK last edited by

          Hallo.
          Aktuell sieht meine Query so aus

          import “timezone”
          
          option location = timezone.location(name: “Europe/Berlin”)
          
          from(bucket: "iobroker")
            |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
            |> filter(fn: (r) => r["_measurement"] == "Täglicher Stromverbrauch")
            |> filter(fn: (r) => r["_field"] == "value")
            |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
            |> yield(name: "mean")
          

          Nun bekomme aber folgende Fehlermeldung

          invalid: compilation failed: error @1:8-1:11: expected STRING, got ILLEGAL (“) at 1:8 error @1:8-1:11: invalid string literal error @1:19-1:22: invalid statement: ” error @3:37-3:59: invalid expression @3:59-3:62: ” error @3:46-3:52: invalid expression @3:43-3:46: “
          

          Als Datenquelle habe ich IngfluxDB mit Query Language "Flux" eingerichtet

          Glasfaser 1 Reply Last reply Reply Quote 0
          • Glasfaser
            Glasfaser @AndreasK last edited by Glasfaser

            @andreask sagte in Grafana - InfluxDB 2 - Tageswert wird Folgetag zugeordnet:

            import “timezone”
            “Europe/Berlin”)

            die Anführungszeichen " sind falsch , liegt an deiner Tastatur !!!

            Steht auch in der Meldung :

            got ILLEGAL (“)

            ? 1 Reply Last reply Reply Quote 0
            • ?
              A Former User @Glasfaser last edited by

              @glasfaser

              Warst schneller 🙂

              Neh, kann auch an dem Kopierten von mir liegen 😞

              Wollte Ihm auch gerade die Fehlermeldungen mal erklären, für die Zukunft 😉

              VG
              Bernd

              Glasfaser 1 Reply Last reply Reply Quote 0
              • Glasfaser
                Glasfaser @Guest last edited by Glasfaser

                @dp20eic sagte in Grafana - InfluxDB 2 - Tageswert wird Folgetag zugeordnet:

                Neh, kann auch an dem Kopierten von mir liegen

                Ahh ... gar nicht oben gesehn 🙂

                57999da1-7cea-42ef-b835-a8bf52ac6c4a-grafik.png

                ? 1 Reply Last reply Reply Quote 0
                • ?
                  A Former User @Glasfaser last edited by

                  @glasfaser sagte in Grafana - InfluxDB 2 - Tageswert wird Folgetag zugeordnet:

                  Ahh ... gar nicht oben gesehn

                  Deswegen, wer kopiert, verliert 🙂

                  VG
                  Bernd

                  1 Reply Last reply Reply Quote 1
                  • A
                    AndreasK last edited by

                    Na toll 😊

                    Nun habe ich es richtig hinzugefügt. Aber trotzdem wird der Wert, welcher laut iobroker am 29.01. um 23:59 Uhr (unter letzter Änderung) ins Objekt geschrieben wurde, immer noch im Balken des 30.01. angezeigt.
                    Was ist hier immer noch falsch?

                    ? 1 Reply Last reply Reply Quote 0
                    • Marc Berg
                      Marc Berg Most Active last edited by Marc Berg

                      @andreask sagte in Grafana - InfluxDB 2 - Tageswert wird Folgetag zugeordnet:

                      Na toll 😊

                      Nun habe ich es richtig hinzugefügt. Aber trotzdem wird der Wert, welcher laut iobroker am 29.01. um 23:59 Uhr (unter letzter Änderung) ins Objekt geschrieben wurde, immer noch im Balken des 30.01. angezeigt.
                      Was ist hier immer noch falsch?

                      Mit Deiner Abfrage stellst Du nicht sicher, dass ein "aggregateWindow" auch exakt um 00:00 Uhr startet. Es könnte je nach Ausführungsstart auch um 23:50 Uhr starten und bis 00:05 Uhr gehen. Durch die Dynamik in der Abfrage (v.timeRangestart ...) ist das eher zufällig.

                      Ich habe das so gelöst, wobei ich je nach Abfragezeitraum noch fixe aggregateWindows berechne. Beachte dabei den Teil "date.truncate"!
                      Meine Abfrage bezieht sich auf einen Zählerstand, deshalb "difference", das müsstest Du für Dich anpassen.

                      import "date"
                      import "timezone"
                      option location = timezone.location(name: "Europe/Berlin")
                      v_duration = duration(v:uint(v: v.timeRangeStop) - uint(v: v.timeRangeStart))
                      v_every = if int(v:v_duration) <= int(v:2d) then 1h 
                                else if int(v:v_duration) <= int(v:7d) then 6h
                                else if int(v:v_duration) <= int(v:30d) then 24h
                                else 1w
                      
                      from(bucket: "iobroker")
                        |> range(start:date.truncate(t:v.timeRangeStart, unit:v_every), stop: v.timeRangeStop)
                        |> filter(fn: (r) => r["_measurement"] == "mqtt.0.power.Elektro.ZaehlerStandE")
                        |> filter(fn: (r) => r["_field"] == "value")
                        |> difference()
                        |> aggregateWindow(every: v_every,fn:sum,timeSrc: "_start",createEmpty:false)
                      

                      Kann sein, dass es irgendwie auch einfacher geht. Eine bessere Lösung habe ich aber bisher nicht gefunden.

                      Edit: timeSrc: "_start" nicht vergessen! (letzte Zeile)

                      1 Reply Last reply Reply Quote 0
                      • ?
                        A Former User @AndreasK last edited by

                        @andreask @Marc-Berg

                        Bin mir nicht sicher, ob das passt, habe keine passenden Daten.

                          |> range(start: today())
                          |> aggregateWindow(every: 1h, fn: mean, createEmpty: false)
                        

                        VG
                        Bernd

                        1 Reply Last reply Reply Quote 0
                        • OstfrieseUnterwegs
                          OstfrieseUnterwegs last edited by

                          Hier ist meine Lösung zu einem ähnlichen Problem. Sourceanalytix schreibt den Tagesverbrauch immer 00:01 am nächsten Tag. Ich hab also in Grafana ein Shift eingebaut. Unique brauche ich, weil SA bei Neustart des Adapters den Wert erneut schreibt.

                          from(bucket: "iobroker")
                            |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                            |> filter(fn: (r) => r["_measurement"] == "multimedia-power-consumed")
                            |> filter(fn: (r) => r["_field"] == "value")
                            |> timeShift(duration: -24h)
                            |> aggregateWindow(every: v.windowPeriod, fn: unique, createEmpty: false)
                            |> unique()
                            |> fill(column: "value", usePrevious: true)
                           
                          
                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          957
                          Online

                          31.9k
                          Users

                          80.2k
                          Topics

                          1.3m
                          Posts

                          grafana i influx2db kostal plenticore
                          10
                          26
                          4081
                          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