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 - InfluxDB 2 - Tageswert Zeitleiste

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    Grafana - InfluxDB 2 - Tageswert Zeitleiste

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

      Hallo zusammen,

      ich habe im Forum zu diesen Thema schon einige Beiträge gelesen, habe aber so richtig noch keine perfekte Lösung gefunden. Bei mir werden aktuell auch die Balkendiagramme an verschiedenen Tagen und zu verschiedenen Zeiten dargestellt.

      Ich habe aus den Beiträgen folgende Lösungen gefunden, z.B.: (https://forum.iobroker.net/topic/72601/grafana-anzeige-um-einen-tag-verschoben)

          |> timeShift(duration: -24h)
      

      oder

      |> range(start: -8d)
      |>aggregateWindow(every: 1d, fn: max, createEmpty: false, timeSrc: "_start")
      

      Wenn ich es richtig verstehe,

      • verschiebe ich mit Time Shift um die angegebene Zeitdifferenz,

      • mit TimeSrC: "_start" verschiebe ich den Bezugspunkt auf die aktuelle Tageszeit abzüglich des definierten "range" (im Beispiel 8 Tage)

      Frage: Gibt es die Möglichkeit immer zu Beginn des Tages auf 0:00 zu schieben, egal wann die erste Aufzeichnung eines Datenpunktes in der influxDB erfolgt?
      z.B. aus der aktuelles Tageszeit die h+min rausrechnen und dann an den definierten Range anhängen oder noch viel einfacher ;-).

      Danke & Vg

      Armilar 1 Reply Last reply Reply Quote 0
      • Armilar
        Armilar Most Active Forum Testing @Smartuser_1 last edited by

        @smartuser_1 sagte in Grafana - InfluxDB 2 - Tageswert Zeitleiste:

        Bei mir werden aktuell auch die Balkendiagramme an verschiedenen Tagen und zu verschiedenen Zeiten dargestellt.

        Welche Balkendiagramme? Was stellen sie dar? über welchen Zeitraum? Wie sind sie aggregiert? usw.?

        Er sind eigentlich erstmal nur Fragen...

        Ich denke die beiden Beispiele beziehen sich nicht wirklich auf das was du machen oder erreichen willst.

        In Grafana ist es am sinnvollsten mit einem Range (Start und Stop) zu arbeiten, da diese im Filter gesetzt werden können...

        typische Filter wären dann für deine Folgefrage:

        a51392b3-e19c-43df-8d52-5cca255256b1-image.png

        Beginn 00:00 Uhr des heutigen Tages und Ende jetzt

        acb46a76-a47e-4245-aaa8-2f6f4a370ce8-image.png

        Beginn 00:00 Uhr des heutigen Tages und Ende 23:59

        Aber wie bereits erwähnt, hast du nichts über das was "Du" machen möchtest erzählt...

        1 Reply Last reply Reply Quote 0
        • S
          Smartuser_1 last edited by Smartuser_1

          @armilar

          Also ich habe 2 Beispiele.

          #1: Hier möchte ich meine PV Prognose, den realen PV Ertrag und den Bewölkungszustand mit 0 Tagen und einen 1 Tag Forecast darstellen

          be930556-8a75-455b-a86f-e8b7f894b70a-image.png

          Dabei verwende ich z.B.:

          from(bucket: "iobroker")
              |> range(start: -8d)
              |> filter(fn: (r) => r._measurement == "0_userdata.0.02_PV.03_PV_Tag_Aktuell")
              |> filter(fn: (r) => r["_field"] == "value")
              |> set(key: "_field", value: "PV_Tag_Aktuell")
              |> aggregateWindow(every: 1d, fn: max, createEmpty: false, timeSrc: "_start")
              |> map(fn: (r) => ({ r with _value: r._value / 1.0 }))
              |> timeShift(duration: -0h)
          |> yield(name: "PV Tag Aktuell")
          
          from(bucket: "iobroker")
              |> range(start: -7d)
              |> filter(fn: (r) => r._measurement == "weatherunderground.0.forecast.1d.cloudCover")
              |> filter(fn: (r) => r["_field"] == "value")
              |> set(key: "_field", value: "Cloud Cover Forecast 1D")
              |> aggregateWindow(every: 1d, fn: mean, createEmpty: false )
              |> map(fn: (r) => ({ r with _value: r._value / 1.0 }))
              |> timeShift(duration: -48h)
          |> yield(name: "Cloud Cover 1d") 
          

          usw. in ähnlicher Form. Damit die Prognose zum Tagesdatum passt, habe ich nochmal den Timeshift zusätzlich integriert. (Die Datenerfassung läuft erst seit ein paar Tagen, deswegen habe ich noch nicht zu allen Tagen die kompletten Werte)

          #2
          Ich plotte den PV Soll und Ist Ertrag pro Monat in ein Diagramm. Auch hier habe ich Probleme mit den Zeitachsen, weil ich den Sollwert zu Beginn des Monats schreibe, der Ist Wert läuft allerdings über den ganzen Monat hoch. Das Bild ist jetzt am Anfang des Monats -> gegen Ende haben die Ist - Balken die gleiche Breite wie Soll.

          d0bac752-9d9d-4687-8d16-11f36fe47d6f-image.png

          Danke & Vg

          1 Reply Last reply Reply Quote 0
          • Armilar
            Armilar Most Active Forum Testing last edited by Armilar

            @smartuser_1

            Musste erstmal mit so viel Forecast in der Vergangenheit umgehen...

            Faktisch stellst du ja gar keinen Forecast da, sondern nur die Vergangenheit... d.h. heute - 8 Tage

            Der Filter oben

            b0f317dc-0076-4d19-956c-96c571acad26-image.png

            kann nicht greifen, da du ja jeden Datensatz bereits in der Abfrage manipulierst

            Dein Hauptproblem, bei den dargestellten Werten sind die unterschiedlichen Timestamps / Tag (mal 19:37, mal 2:00 usw). Die müsstest du mal loswerden und nur das Datum betrachten...

            Das kannst du durch Overrides mit Unit je Wert erreichen. Für Unit setzt du dann für timestamp "time: DD.MM.YYYY"

            Ungeachtet der Zeitformatierung (die auch zur Verschiebung führt) frage ich mich, was du da erreichen willst? Ist das eine Gegenüberstellung wie sich der Forecast innerhalb von 3 Tagen verändert? Sollte nicht der aktuelle Tag in Beziehung aktuellem Forecast oder Current Weather des heutigen Tages stehen?

            EDIT: Unter Forecast verstehe ich die folgende Entwicklung der Zustände im Zeitstrahl

            Beispiel:
            131cf94e-6446-4ae5-81ff-8145d105ffc4-image.png

            1815126f-a5e6-46d9-86e3-046da22564fa-image.png

            jetzt könnte man weiter zurückgehen als eine Stunde und den aktuellen Tag noch mit Daten befüttern...

            Aber ich würde niemals mit Timshift dieses Problem lösen, sondern immer mit aggregierten Werten, die auch zu diesem Zeitraum passen...

            S 1 Reply Last reply Reply Quote 1
            • S
              Smartuser_1 @Armilar last edited by

              @armilar

              Also der Gedanke liegt eigentlich darin die PV Prognose zu verbessern.

              Ich nutze den PV Forecast Adapter. Aus den bisherigen Vergleich zwischen Ist Ertrag und Prognose zeigt sich allerdings immer ein zu geringer Prognosewert, vor allem bei eher sonnigen Tagen. Mag aktuell Zufall sein, aber deswegen wollte ich es mal länger beobachten und aufzeichnen. Der Adapter weatherunderground gibt mir zusätzlich noch den Cloud Cover. Damit der zeitliche Zusammenhang zwischen Tages Istwert und zugehöriger Prognose bestehen bleibt, verschiebe ich die Prognose zeitlich nach hinten.

              Die Hoffnung wäre, über einen längeren Zeitraum eine Korrelationsfunktion zu finden und die Prognose zu verbessern.
              Den Prognosewert versuche ich etwas genauer zu ermitteln, weil ich Nachts den Solarspeicher zu günstigen Zeiten vor allem in den Wintermonaten laden möchte. Falls am nächsten Sonnentag eine gute Prognose wäre, müsste ich das eben nicht machen.

              Woher kommen bei Dir die Daten und wie wäre der Vorgang zu den Override/in Grafana bzw. hast Du noch andere Ansätze?

              Armilar 1 Reply Last reply Reply Quote 1
              • Armilar
                Armilar Most Active Forum Testing @Smartuser_1 last edited by Armilar

                @smartuser_1

                Ich denke an dem Thema arbeiten aktuell viele User...

                Meine Daten kamen "bislang" ebenfalls aus dem PV-Forecast-Adapter. Und ja es stimmt... es sind keine zuverlässigen Daten für eine saubere Prognose und zum Schalten von Aktoren für z.B. Batteriespeicher, um diese zu idealsten Zeiten zu laden. Also nutze ich "diese" Forecast's auch künftig nicht mehr, da Daten für dieses Vorhaben einfach nicht stabil genug sind.

                Im oberen Graphen siehst du die Daten aus dem neuen ioBroker Wetter-Adapter "Brightsky" (Die Daten einer nahegelegenen Wetterstation des Deutschen Wetterdienstes - DWD), mit dem ich aktuell noch experimentiere. Mittelfristiges Ziel ist es mit Hilfe eines geeigneten Algorithmus (der im Moment bei mir "noch nicht" existiert), ebenfalls ein Energieschema aufzubauen, dass auf der einen Seite die Bedarfe der Verbraucher in Abhängigkeit intelligent steuert und sich dabei auch netzdienlich verhält. Und welches System wäre da für ein solches Vorhaben besser geeignet als der ioBroker?

                Hier ein Link zum Brightsky-Adapter: https://forum.iobroker.net/topic/81967/betatest-bright-sky-v0-2-x (ist bereits im ioBroker latest-Repo, dürfte die nächsten Tage ins stable-Repo kommen - kann aber auch schon installiert werden und liefert hervorragende Daten)

                Hierzu brauchst du aber in erster Linie erstmal verlässlichere Daten und da kommt höchstwahrscheinlich Bright Sky ins Spiel. @Homoran hat in seinem Thread https://forum.iobroker.net/post/1293357 bereits einen Forecast/Ist-Abgleich mit seiner Anlage versucht und ist meiner Ansicht nach zu verblüffend nutzbaren Ergebnissen gekommen, was die Tagesertragsprognose der Solaranlage betrifft. Stelle auch gerne dort deine Fragen!

                Da Bright Sky bereits die Prognose der nächsten 240 Stunden kennt und ebenfalls die Wolkensituation berücksichtigt, kann man vorausschauend (aber eben vorsichtig - je weiter in die Zukunft, desto unzuverlässiger bekanntlich der Forecast) bis zu 10 Tage stundengenau in die Zukunft blicken.

                Wenn ich dich richtig verstanden habe, möchtest du einen Batteriespeicher unter folgenden Faktoren und Anforderungen aufladen:

                1. bevorzugt durch Solar:
                  a) wenn in "naher Zukunft - z.B. bis nächsten Sonntag" die Sonne angemessen scheinen sollte (hierfür der Wetter-Forecast)

                  • hierfür müsstest du deinen eigenen Verbrauch (unterschiedlichste Lasten) ebenso prognostizieren um zu sehen, ob denn die aktuelle Ladung deiner Batterie denn auch bis zu diesem Lade-Zeitpunkt reichen wird.

                  b) wenn am aktuellen Tag Kapazitäten über sind und in den Speicher einfließen können


                1. sekundär durch Netzbezug:
                  a) wenn an der Strombörse der niedrigste Preis bei einem dynamische Stromtarif erkannt wird
                  • setzt Voraus, dass man immer das Delta aus der Solarprognose kennt und auch eine Prognose für den idealen Zeitpunkt des Netzimportes macht

                Man sieht sehr schnell, dass die Komplexität bei weiteren Gedanken wächst und das zu jedem Zeitpunkt eine aktualisierte Prognose unterschiedlichster Faktoren vorliegen müsste um dieses Vorhaben angemessen umzusetzen...

                Ein Forecast für das Wetter, der aktuelle Batterieladezustand, die günstigsten Netzpreise für Bezug und dein eigener Verbrauch spielen hier im wesentlichen eine Rolle... Noch schwieriger wird es, wenn man eine Nulleinspeisung betreibt oder künftig betreiben müsste und nur den realistisch möglichen Tagesertrag errechnen kann.

                Ich mache mir aber ebenfalls zu diesen Themen Gedanken und werde diese auch zu gegebener Zeit im Forum mitteilen.


                Jetzt zu Grafana:

                Bestandsdaten:
                Daten die in der influxDB2 landen, sind bereits Vergangenheit und werden mit dem influxDB2-Connector in Grafana visualisiert. Für aktuelle Daten kann man das auch oder alternativ per REST-API die Daten dazu holen.
                c38678dc-5829-432a-b9e2-fcaea2e7d47b-image.png

                Die Overides findest du im rechten Menü ganz unten und diese kannst du anlegen und anpassen. Die folgende Formatierung setzt den Zeitstempel in einem Bar-Chart je Tag...

                e1039fa2-2215-4170-bfcf-dbb2ee4ab185-image.png

                und versuche möglichst im Time Range zu belieben:

                from(bucket: "iobroker")
                  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                

                Somit kannst du auch nachträglich jederzeit einen anderen Zeitraum filtern


                Forecastdaten:
                Diese Daten sind in der Regel nicht in InfluxDB2 (da sie ja noch nicht passiert sind und im ioBroker direkt eher unbrauchbar in Objektordnern liegen) und können daher auch nicht auf diese Weise visualisiert werden. Hierfür benötigt man eine Aufbereitung der kommenden Tage, Stunden oder Minuten in Form eines JSON-Objektes, das man dann mit einem JSON-Connector. Ich nutze gerne den Infinity-Connector hierfür. Der kann auch direkt aus einer API heraus arbeiten.
                403c3908-689c-4147-93b2-883e6697636e-image.png

                Hier ein kleines Beispiel für einen Forecast der Globalstrahlung des aktuellen Tages + 4 Folgetage mit dynamischem Time-Range:

                93f4dcee-8918-46a3-8d7d-ecd1c504d434-image.png

                icebear 1 Reply Last reply Reply Quote 0
                • icebear
                  icebear @Armilar last edited by

                  @armilar said in Grafana - InfluxDB 2 - Tageswert Zeitleiste:

                  Hierfür benötigt man eine Aufbereitung der kommenden Tage, Stunden oder Minuten in Form eines JSON-Objektes, das man dann mit einem JSON-Connector. Ich nutze gerne den Infinity-Connector hierfür. Der kann auch direkt aus einer API heraus arbeiten.

                  Könntest du mal die Url mit dem Aufruf für die 'Sonnenscheindauer' und die 'Bewölkung' sowie für die 'Globalstrahlung' hier bereitstellen ?

                  Homoran 1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @icebear last edited by

                    @icebear sagte in Grafana - InfluxDB 2 - Tageswert Zeitleiste:

                    die 'Sonnenscheindauer' und die 'Bewölkung'

                    aus dem API des DWD
                    Screenshot_20250912-113700_Firefox.jpg
                    =brightsky Adapter

                    1 Reply Last reply Reply Quote 0
                    • Armilar
                      Armilar Most Active Forum Testing last edited by Armilar

                      @icebear

                      klar - gerne 😊

                      ist für beide die gleiche

                      https://api.brightsky.dev/weather?date=${__from:date:YYYY-MM-DD}&last_date=${__to:date:YYYY-MM-DD}&lat=53.xxx&lon=7.xxx&max_dist=50000
                      

                      müsst nur bei lat und lon eure eigenen Geo-Koordinaten eingeben... also da wo ich jeweils xxx reingeschrieben habe...

                      EDIT: Parsing für Sonnenschein und Bewölkung:

                      188b3d82-ed16-4ac0-afd0-834a901fb367-image.png :

                      Und noch die Configs und Overides:

                      8903dbd1-115c-40ce-a021-024ccae44d74-image.png

                      cf0c255c-e8bc-4181-8c9b-06cb05f807a0-image.png

                      Homoran 1 Reply Last reply Reply Quote 1
                      • Homoran
                        Homoran Global Moderator Administrators @Armilar last edited by

                        @armilar und was ist da die Globalstrahlung?
                        das ist doch in solar drin, oder?

                        Armilar 1 Reply Last reply Reply Quote 0
                        • Armilar
                          Armilar Most Active Forum Testing @Homoran last edited by

                          @homoran

                          ja

                          S 1 Reply Last reply Reply Quote 0
                          • S
                            Smartuser_1 @Armilar last edited by

                            @armilar

                            Vielen Dank für die Hinweise und Anregungen. Ich finde die angesprochenen Themen sehr spannend und smart und werde mich in den nächsten Tagen mal weiter vertiefen. Bin auf die weiteren Gedanken im Forum gespannt.

                            Bei der PV Prognose reicht mir eigentlich erstmal der nächste Tag, weiter komme ich mit meinen Solaredge Speicher (12kW) aktuell sowieso nicht. Beim Energiemanagement versuche ich meine Hauptverbraucher (Wärmepumpe, Wallbox und Haushalt) möglichst einfach zu steuern. Das mache ich über verschiedene Script Regeln, z.B sobald die Wärmepumpe oder die Wallbox aktiv sind und der Speicher ein Grenzlevel erreicht, begrenze ich das Discharge Limit des Speichers. Die Wärmepumpe hat in meinen Fall nochmal einen eigenen geringeren Stromtarif und hängt nicht am dynamischen Tibber Tarif. Mit Prio 1 bediene ich dann im Winter den Haushalt mit ca. 8 kWh/Tag aus dem Speicher. Aus dem Tibber Adapter lese ich die Vorschau der nächsten 24h Strompreise und ermittle die optimalen Zeiten zum Laden des PV Speichers oder des Autos. Und hier würde dann die bessere PV Prognose helfen, da ich dann Netzladen auf den minimal erforderlichen Umfang begrenzen kann.

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            723
                            Online

                            32.1k
                            Users

                            80.6k
                            Topics

                            1.3m
                            Posts

                            4
                            12
                            116
                            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