Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. Abfrage influxDB 2.0 per node-red

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Abfrage influxDB 2.0 per node-red

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

      Hallo zusammen,
      ich kämpfe gerade mit folgendem Problem:

      Ich möchte über node-red den LETZTEN um 00:00 in die influxDB (2.0 !) geschrieben Wert abfragen, um die Tagessumme zu berechnen.

      1. Influx:

      c5272875-187d-4c87-97b2-5d0aaa6bf416-image.png

      a54212fe-dcc1-4920-be3c-84789eca1c4e-image.png

      1. node-red (Änderung aggregationWindow ->2d):

      b3e567a7-fe75-4930-bf21-f4dd9993e81f-image.png

      6f1778fd-77e9-4290-84af-49c5c5b86a9d-image.png

      Leider ergibt die Abfrage folgenden Fehler:

      e288a1d0-fbfa-4e8c-bee5-a0bf716c24ac-image.png

      Wer kann mir bitte helfen ? WAS stimmt an der Abfrage NICHT ?

      Auch mein Alternativ-Abruf per ioBroker/ influxDB Adapter funktioniert bisher NICHT:

      Die Verbindung wird wohl hergestellt, aber es erscheinen Keine Datenpunkte:

      379009ae-c887-41f0-9b52-6531447d053b-image.png

      Danke für Euere Hilfe
      Andreas

      Marc Berg sprobst 2 Replies Last reply Reply Quote 0
      • Marc Berg
        Marc Berg Most Active @ak68 last edited by

        @ak68 sagte in Abfrage influxDB 2.0 per node-red:

        WAS stimmt an der Abfrage NICHT ?

        Das "v" bezieht sich auf den Zeitraum, der z.B. in Grafana Dashboards eingestellt ist. In deiner Abfrage gibt es diese Variable deshalb nicht. Hier muss ein absoluter oder relativer Zeitwert angegeben werden. Wenn du die Abfrage hier als Text in Code-Tags reingestellt hättest, könnte man das gleich als Beispiel reinstellen.

        A 1 Reply Last reply Reply Quote 0
        • A
          ak68 @Marc Berg last edited by ak68

          @marc-berg

          Danke für die Hilfe, hier der (bisherige) Code:

          from(bucket: "datenbank_langzeit")
            |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
            |> filter(fn: (r) => r["_measurement"] == "Strom_Wallbox_Zaehler")
            |> aggregateWindow(every: 1d, fn: mean)
            |> yield(name: "mean")
          
          Marc Berg 1 Reply Last reply Reply Quote 0
          • Marc Berg
            Marc Berg Most Active @ak68 last edited by

            @ak68 sagte in Abfrage influxDB 2.0 per node-red:

            @marc-berg

            Danke für die Hilfe, hier der Code:

            from(bucket: "datenbank_langzeit")
            |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
            |> filter(fn: (r) => r["_measurement"] == "Strom_Wallbox_Zaehler")
            |> aggregateWindow(every: 1m, fn: mean)
            |> yield(name: "mean")

            Hier ein Beispiel, welches die letzten 10 Tage abfragt. Das musst du dann mit für dich sinnvollen Daten ersetzen.

            from(bucket: "datenbank_langzeit")
            |> range(start: -10d, stop: now)
            |> filter(fn: (r) => r["_measurement"] == "Strom_Wallbox_Zaehler")
            |> aggregateWindow(every: 1m, fn: mean)
            |> yield(name: "mean")
            
            A 1 Reply Last reply Reply Quote 0
            • A
              ak68 @Marc Berg last edited by

              @marc-berg

              Danke erst einmal, funktioniert aber leider noch nicht:

              c966aee1-a22d-4fb0-8551-2996f69e1d7a-image.png

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

                @ak68 sagte in Abfrage influxDB 2.0 per node-red:

                funktioniert aber leider noch nicht

                Ja, mein Fehler. Wenn "bis jetzt" abgefragt werden soll, dann ohne Stop-Parameter

                from(bucket: "datenbank_langzeit")
                |> range(start: -10d)
                |> filter(fn: (r) => r["_measurement"] == "Strom_Wallbox_Zaehler")
                |> aggregateWindow(every: 1m, fn: mean)
                |> yield(name: "mean")
                
                A 1 Reply Last reply Reply Quote 0
                • A
                  ak68 @Marc Berg last edited by

                  @marc-berg

                  ad991619-626a-4499-b7b0-eb2ad3425733-image.png

                  Danke, jetzt komme ich weiter .......

                  1 Reply Last reply Reply Quote 0
                  • sprobst
                    sprobst @ak68 last edited by

                    @ak68
                    Hallo,

                    ich würde mal so starten:

                    import "date"
                    import "timezone"
                    option location = timezone.location(name: "Europe/Berlin")
                    from(bucket: "telegraf")
                      |> range(start:date.truncate(t: -30d, unit: 1d))
                      |> filter(fn: (r) => r["_measurement"] == "Strom_Wallbox_Zaehler")
                      |> aggregateWindow(every: 1d, fn: last, createEmpty: false)
                      |> difference(nonNegative: true)
                      |> yield(name: "daily")
                    

                    Was macht das?

                    • es lädt die deutsche Zeitzone, da Du ja vermutlich nicht die Summen nach UTC machen möchtest
                    • es setzt den Startpunkt auf den Tagesanfang vor 30 Tagen
                    • es wird dann jeweils der letzte Wert des Tages genommen (nicht der Durchschnitt (mean))
                    • es werden die Differenzen zwischen den Tagesendpunkten genommen

                    d.h. aus der Abfrage purzeln die Tagessummen der letzten 30 Tage direkt heraus.
                    (nicht wundern über den Time-Wert, der steht aktuell auf ...23:00:00.000Z, das kommt durch UTC/CET-Unterschied)
                    Der letzte Wert ist dann natürlich das was heute bis jetzt angefallen ist.

                    A 1 Reply Last reply Reply Quote 0
                    • A
                      ak68 @sprobst last edited by

                      @sprobst

                      Vielen Dank, ich versuche mich an Eueren Anleitungen "enlangzuhangeln"

                      Jetzt möchte ich die Maximaltemperatur der letzten 24h auslesen (alt: seit 0 Uhr)

                      Leider bring die folgende Abfrage keine korrekten Werte und müsste eigentlich um 7.0 Grad zurückwerfen;

                      import "date"
                      import "timezone"
                      option location = timezone.location(name: "Europe/Berlin")
                      from(bucket: "datenbank_kurzzeit")
                      |> range(start: -24h)
                      |> filter(fn: (r) => r["_measurement"] == "T.Aussen")
                      |> aggregateWindow(every: 1d, fn: max)
                      |> yield(name: "max")
                      

                      5ce7a359-0220-41ef-aee0-fc3f34834a66-image.png

                      43d35cd8-36b6-49b5-8589-d2aaa8e1209e-image.png

                      Wie muss hier die korrekte Syntax sein ?
                      Danke 🙂

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      739
                      Online

                      31.7k
                      Users

                      79.7k
                      Topics

                      1.3m
                      Posts

                      3
                      9
                      393
                      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