Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Grafana
    5. Tagesverbrauch - Ich komm nicht drauf

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Tagesverbrauch - Ich komm nicht drauf

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

      Hallo zusammen,

      bin echt am verzweifeln. Hab diesen query geschrieben. Der "mystrom energy since boot - WLAN" liefert immer die summierte Energie in Watt-Sekunden seit der ersten Betriebssekunde. Und ich möchte daraus den Tageswert jeweils ermitteln. Also um Mitternacht immer bestimmen, was seit letzter Mitternacht dazu kam. Aber der query summiert einfach Tag für Tag zusammen. Wo ist der Fehler? Kann mir jemand helfen?

      import "timezone"
      option location = timezone.location(name: "Europe/Berlin")
      from(bucket: "homebucket")
      |> range(start: -10d)
      |> filter(fn: (r) => r["_measurement"] == "mystrom energy since boot - WLAN" and r["_field"] == "value")
      |> aggregateWindow(every: 24h, fn: last, timeSrc: "_start", createEmpty: false)
      |> difference(nonNegative: true, columns: ["_value"])
      |> map(fn: (r) => ({r with _value: r._value / 3600.0}))
      |> yield(name: "last")

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

        @mere13 sagte in Tagesverbrauch - Ich komm nicht drauf:

        |> aggregateWindow(every: 24h, fn: last, timeSrc: "_start", createEmpty: false)

        Würde stattdessen mal every: 1d testen. Sonst werden wahrscheinlich immer nur 24 Stunden genommen und die Tagesgrenze ignoriert.

        Ich würde vor dem aggregateWindow die Differenz bilden und dann sum aller Differenzen anwenden.

        import "timezone"
        option location = timezone.location(name: "Europe/Berlin")
        from(bucket: "homebucket")
        |> range(start: -10d)
        |> filter(fn: (r) => r["_measurement"] == "mystrom energy since boot - WLAN" and r["_field"] == "value")
        |> difference(nonNegative: true, columns: ["_value"])
        |> aggregateWindow(every: 1d, fn: sum, timeSrc: "_start", createEmpty: false)
        |> map(fn: (r) => ({r with _value: r._value / 3600.0}))
        |> yield(name: "last")
        
        1 Reply Last reply Reply Quote 0
        • First post
          Last post

        Support us

        ioBroker
        Community Adapters
        Donate

        919
        Online

        31.7k
        Users

        79.7k
        Topics

        1.3m
        Posts

        2
        2
        161
        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