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: täglichen Solar-Ertrag summieren

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Grafana: täglichen Solar-Ertrag summieren

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      mere13 last edited by mere13

      Hallo zusammen,

      mein Victronic Blue Solar liefert mir den Ertrag in kWh als Wert in einem Datenpunkt. Jetzt möchte ich diesen Wert pro Tag addieren und daraus einen Wochen/Monats/Jahres-Ertrag berechnen. Dafür habe ich diese FLUX Query geschrieben:

      import "timezone"
      option location = timezone.location(name: "Europe/Berlin")
      from(bucket: "homebucket")
      |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
      |> filter(fn: (r) => r["_measurement"] == "Victronic Heute Ertrag" and r["_field"] == "value")
      |> aggregateWindow(every: 1d, fn: last, createEmpty: false)
      |> aggregateWindow(every: 1w, offset: 4d, fn: sum, createEmpty: false)
      |> yield(name: "sum")

      Leider stimmt die Visualisierung nicht ganz. Sowohl die Summe als auch die Anzeige des Datums (DD-MM) funktionieren nicht. Findet jemand meinen Fehler?

      Bildschirmfoto 2024-04-22 um 14.24.17.png

      Meister Mopper Marc Berg 2 Replies Last reply Reply Quote 0
      • Meister Mopper
        Meister Mopper @mere13 last edited by

        @mere13

        Hier z. B. eine Lösung für eine Tagesübersicht:

        import "timezone"
        option location = timezone.location(name: "Europe/Berlin")
        
        from(bucket: "iobroker")
          |> range(start: -1mo, stop: v.timeRangeStop)
          |> filter(fn: (r) => r["_measurement"] == "solax.0.data.yieldtoday" and r["_field"] == "value")
          |> aggregateWindow(every: 1d, fn: max, timeSrc: "_start")
        

        2d8bfd38-1da2-4803-846e-20f3dc156654-grafik.png

        Das kannst du natürlich auch für Monate und Jahre anzeigen lassen.

        M 1 Reply Last reply Reply Quote 0
        • M
          mere13 @Meister Mopper last edited by mere13

          @meister-mopper Danke! Das habe ich auch schon so ähnlich. Ich muss aber für die Wochenübersicht die Tageswerte addieren und dann als einen Balken darstellen. Also "max" als fn ist es nicht und ich habe versucht, durch eine zweite aggregation diese Wochensumme zu ermitteln.

          Oder gibt es eine andere Möglichkeit, diese 7 Werte jeweils zu addieren?

          Meister Mopper 1 Reply Last reply Reply Quote 0
          • Meister Mopper
            Meister Mopper @mere13 last edited by

            @mere13

            Hier die Tage einer Woche, Wochen in einem Monat u. s. w. sollte damit auch funktionieren:

            import "timezone"
            option location = timezone.location(name: "Europe/Berlin")
            
            from(bucket: "iobroker")
              |> range(start: -1w)
              |> filter(fn: (r) => r["_measurement"] == "smartmeter.0.1-0:1_8_0__255.value" and r["_field"] == "value")
              |> difference()
              |> aggregateWindow(every: 1d, fn: sum, timeSrc: "_start")
              |> map(fn: (r) => ({r with _cost: float(v: r._value) * 0.4414894736842105}))
            

            f42be3d5-950e-4415-8937-99d7a4e6fb81-grafik.png

            M 1 Reply Last reply Reply Quote 0
            • M
              mere13 @Meister Mopper last edited by

              @meister-mopper said in Grafana: täglichen Solar-Ertrag summieren:

              |> difference()

              Danke. Ich glaub wir missverstehen uns. Ich bekomme für jeden Tag einen Wert geliefert. Z.B. Montag 2 kWh, Dienstag 2,5, Mittwoch 1,3 usw. Und für die Wochendarstellung muss ich die Werte addieren und als Wochenwert darstellen. Der Datenpunkt liefert immer den ganzen Tag einen Wert, der tagsüber ansteigt und in der Nacht gleich bleibt und um 0 Uhr wieder auf 0 zurückgestellt wird.

              import "timezone"
              option location = timezone.location(name: "Europe/Berlin")
              from(bucket: "homebucket")
              |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
              |> filter(fn: (r) => r["_measurement"] == "Victronic Heute Ertrag" and r["_field"] == "value")
              |> aggregateWindow(every: 24h, fn: last, timeSrc: "_start")
              |> yield(name: "last")

              liefert diese Werte:

              Time value
              2024-04-15 16:15:11 2.17
              2024-04-16 00:00:00 2.20
              2024-04-17 00:00:00 2.12
              2024-04-18 00:00:00 2.13
              2024-04-19 00:00:00 1.52
              2024-04-20 00:00:00 2.30
              2024-04-21 00:00:00 2.75
              2024-04-22 00:00:00 2.77

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

                @mere13 sagte in Grafana: täglichen Solar-Ertrag summieren:

                |> aggregateWindow(every: 1w, offset: 4d, fn: sum, createEmpty: false)

                in beiden "aggregateWindow"-Funktionen muss

                timeSrc: "_start"
                

                angehängt werden.

                In der grafana.ini kannst du noch das deutsche Datumsformat einstellen (wenn gewünscht)

                M 1 Reply Last reply Reply Quote 1
                • M
                  mere13 @Marc Berg last edited by

                  @marc-berg said in Grafana: täglichen Solar-Ertrag summieren:

                  timeSrc: "_start"

                  Super!! Das war die Lösung.

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  932
                  Online

                  31.7k
                  Users

                  79.7k
                  Topics

                  1.3m
                  Posts

                  3
                  7
                  463
                  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