Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. "Warn" Logeinträge InfluxDB-Adapter

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    "Warn" Logeinträge InfluxDB-Adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • mango1402
      mango1402 @apollon77 last edited by

      @apollon77
      So, dies ist der Übeltäter:

      from(bucket: "iobrokerV2")
      |> range(start: 2022-03-08T08:17:20.688Z, stop: 2023-03-08T08:17:20.687Z)
      |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Zaehler.SmartMeter.aktuelleLeistung")
      |> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")
      |> group()
      |> sort(columns: ["_time"], desc: true)
      |> limit(n: 1)
      

      benötigt im Influx-Frontend 5,24s. Ein bisserl lang für genau einen Wert.... (OK, durchsucht ja auch ein ganzes Jahr 😉 )

      Wenn man es so macht, kommt genau das selbe raus, aber in 0,01s:

      from(bucket: "iobrokerV2")
      |> range(start: 2022-02-08T08:28:18.244Z, stop: 2023-02-08T08:28:18.244Z)
      |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Zaehler.SmartMeter.aktuelleLeistung")
      |> last()
      |> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")
      |> limit(n: 1)
      

      Abfrage für den ersten Wert nach Bereich ließe sich auch optimieren und damit 0,06s rausholen:

      from(bucket: "iobrokerV2")
      |> range(start: 2023-02-09T08:17:20.689Z)
      |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Zaehler.SmartMeter.aktuelleLeistung")
      |> first()
      |> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")
      |> limit(n: 1)
      

      Der Datenabruf selbst schaut in Ordnung aus. Braucht bei 24h lediglich 0,10. Sollte noch im Rahmen sein.
      Ob nun mit pivot und sortieren, oder ohne spielt keine Rolle.

      Was ich noch nicht verstehe ist die erste Abfrage nach bool.
      Bei mir macht es bei der 'Hauptabfrage' keinen Unterschied, welcher Datentyp gespeichert ist.

      Jetzt wär's toll das Ganze in's coding zu bringen, dann kann ich es auch im Echtbetrieb ausprobieren.

      mango1402 1 Reply Last reply Reply Quote 2
      • mango1402
        mango1402 @mango1402 last edited by

        So, hab nun selbst gebastelt und den Adapter mal angepasst.
        Ergebnis:

        2023-03-11 10:28:33.910 - debug: influxdb.1 (3577787) Incoming message getHistory from system.adapter.admin.0
        2023-03-11 10:28:33.910 - debug: influxdb.1 (3577787) 0_userdata.0.Zaehler.SmartMeter.Zaehlerstand16785269139100.18926732151144776 getHistory message: {"id":"0_userdata.0.Zaehler.SmartMeter.Zaehlerstand","options":{"start":1678440515587,"end":1678526915587,"aggregate":"minmax","from":false,"ack":false,"q":false,"addID":false,"count":300,"instance":"system.adapter.influxdb.1","sessionId":5,"user":"system.user.admin"}}
        2023-03-11 10:28:33.911 - debug: influxdb.1 (3577787) Query to execute:
        from(bucket: "iobrokerV2")
        |> range(start: 2023-03-10T09:28:35.587Z, stop: 2023-03-11T09:28:35.587Z)
        |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Zaehler.SmartMeter.Zaehlerstand" and contains(value: r._value, set: [true, false]))
        |> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")
        |> group()
        2023-03-11 10:28:34.012 - debug: influxdb.1 (3577787) Query to execute: from(bucket: "iobrokerV2")
        |> range(start: 2022-03-10T09:28:35.587Z, stop: 2023-03-10T09:28:35.586Z)
        |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Zaehler.SmartMeter.Zaehlerstand")
        |> last()
        |> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")
        2023-03-11 10:28:34.030 - debug: influxdb.1 (3577787) Query to execute: from(bucket: "iobrokerV2") |> range(start: 2023-03-10T09:28:35.587Z, stop: 2023-03-11T09:28:35.587Z) |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Zaehler.SmartMeter.Zaehlerstand") |> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value") |> sort(columns:["_time"], desc: false)
        2023-03-11 10:28:34.181 - debug: influxdb.1 (3577787) Query to execute: from(bucket: "iobrokerV2")
        |> range(start: 2023-03-11T09:28:35.588Z)
        |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Zaehler.SmartMeter.Zaehlerstand")
        |> first()
        |> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")
        2023-03-11 10:28:34.237 - debug: influxdb.1 (3577787) Send: 602 of: 7557 in: 327ms
        2023-03-11 10:28:34.445 - debug: influxdb.1 (3577787) Incoming message getHistory from system.adapter.admin.0
        2023-03-11 10:28:34.445 - debug: influxdb.1 (3577787) 0_userdata.0.Zaehler.SmartMeter.aktuelleLeistung16785269144450.6908542122702093 getHistory message: {"id":"0_userdata.0.Zaehler.SmartMeter.aktuelleLeistung","options":{"start":1678440515587,"end":1678526915587,"aggregate":"minmax","from":false,"ack":false,"q":false,"addID":false,"count":300,"instance":"system.adapter.influxdb.1","sessionId":5,"user":"system.user.admin"}}
        2023-03-11 10:28:34.446 - debug: influxdb.1 (3577787) Query to execute:
        from(bucket: "iobrokerV2")
        |> range(start: 2023-03-10T09:28:35.587Z, stop: 2023-03-11T09:28:35.587Z)
        |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Zaehler.SmartMeter.aktuelleLeistung" and contains(value: r._value, set: [true, false]))
        |> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")
        |> group()
        2023-03-11 10:28:34.542 - debug: influxdb.1 (3577787) Query to execute: from(bucket: "iobrokerV2")
        |> range(start: 2022-03-10T09:28:35.587Z, stop: 2023-03-10T09:28:35.586Z)
        |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Zaehler.SmartMeter.aktuelleLeistung")
        |> last()
        |> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")
        2023-03-11 10:28:34.556 - debug: influxdb.1 (3577787) Query to execute: from(bucket: "iobrokerV2") |> range(start: 2023-03-10T09:28:35.587Z, stop: 2023-03-11T09:28:35.587Z) |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Zaehler.SmartMeter.aktuelleLeistung") |> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value") |> sort(columns:["_time"], desc: false)
        2023-03-11 10:28:34.664 - debug: influxdb.1 (3577787) Query to execute: from(bucket: "iobrokerV2")
        |> range(start: 2023-03-11T09:28:35.588Z)
        |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Zaehler.SmartMeter.aktuelleLeistung")
        |> first()
        |> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")
        2023-03-11 10:28:34.716 - debug: influxdb.1 (3577787) Send: 1111 of: 7198 in: 271ms
        

        Ergebnis: laut Debugs Verbesserung der Laufzeit von 11,8s auf 0,8s.

        apollon77 1 Reply Last reply Reply Quote 1
        • apollon77
          apollon77 @mango1402 last edited by

          @mango1402 Goil ... machste einen PR? oder wenigstens die Infos bitte ins GitHub Issue.

          DANKE!

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

            @apollon77 passt das dann auch zu history und flot?
            da gibt es einige Threads, dass das zu lange dauert.

            apollon77 1 Reply Last reply Reply Quote 0
            • apollon77
              apollon77 @Homoran last edited by

              @homoran Ja klar ... wenn die alle sich um InfluxDB drehen dann betrifft der Fix dort alle

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

                @apollon77 sagte in "Warn" Logeinträge InfluxDB-Adapter:

                wenn die alle sich um InfluxDB drehen

                eben nicht

                @homoran sagte in "Warn" Logeinträge InfluxDB-Adapter:

                passt das dann auch zu history und flot?

                z.b. https://forum.iobroker.net/post/960310

                apollon77 1 Reply Last reply Reply Quote 0
                • apollon77
                  apollon77 @Homoran last edited by

                  @homoran Wenn "History" dann ist das durch einen Fix bei Influxdb nicht abgedeckt.

                  Ich kenne Keine Github issues zu performanceproblemen bei history ... 😉 Bei History muss man dinge anders prüfen ... auch hier sollte der Anfang ein Debug log sein und ein Github issue

                  Homoran mango1402 2 Replies Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @apollon77 last edited by

                    @apollon77 sagte in "Warn" Logeinträge InfluxDB-Adapter:

                    Ich kenne Keine Github issues zu performanceproblemen bei history

                    ich auch nicht.
                    muss mal die entsprechenden Threads durchflöhen und

                    @apollon77 sagte in "Warn" Logeinträge InfluxDB-Adapter:

                    ein Debug log s

                    versuchen zu bekommen

                    DANKE

                    1 Reply Last reply Reply Quote 0
                    • mango1402
                      mango1402 @apollon77 last edited by mango1402

                      @apollon77
                      File im GIT angehängt. kenn mich leider nixht so mit PR usw aus.....

                      Hab auch mit float gecheckt - Ja, rennt wieder rund 😀
                      Wobei - es dürft egal sein, wer am Adapter das getHistory() abfragt. Die alle zünden wieder den Turbo.

                      DANKE schon mal vorab für's rasche einhängen und releasen in eine saubere Version 😉

                      lg
                      Manfred

                      apollon77 1 Reply Last reply Reply Quote 1
                      • apollon77
                        apollon77 @mango1402 last edited by

                        @mango1402 sagte in "Warn" Logeinträge InfluxDB-Adapter:

                        File im GIT angehängt. kenn mich leider nixht so mit PR usw aus.....

                        Im zweifel einfach: Im Github auf das zu ändernde File gehen, rechts oben auf den Stift klicken, ändern was zu ändern ist und dann unten "propose change" klicken, und auf der nächsten Seite "Create pull request", done 🙂 Aber mit dem File kann ichs auch so vergleichen. Danke

                        mango1402 1 Reply Last reply Reply Quote 0
                        • mango1402
                          mango1402 @apollon77 last edited by

                          @apollon77
                          Danke für die GitHub-Einschulung 😉 Geht ja einfacher als ich gedacht habe.
                          Hab jetzt meinen ersten PR erstellt. Hoffe es passt so.

                          lg
                          manfred

                          apollon77 1 Reply Last reply Reply Quote 0
                          • apollon77
                            apollon77 @mango1402 last edited by

                            @mango1402 Cool, checke die Tage ... (Bin gerade in anderen Themen zu tief drin ... aber bald, DANKE!) und ja GitHub ist ganz einfach 🙂

                            1 Reply Last reply Reply Quote 0
                            • V
                              viper4iob last edited by

                              @mango1402 said in [Linux Shell-Skript] WLAN-Wetterstation:

                              @viper4iob @ilovegym @Latzi
                              zum Thema mit der lahmen Influx-V2 Abfrage siehe hier:
                              https://forum.iobroker.net/post/958290

                              Es erscheint Licht am Ende des Tunnels 😉

                              Vielen Dank fürs Analysieren 👍
                              Somit hat sich bestätigt, dass es am Influx Adapter vom iobroker liegt.
                              Ich bin gespannt, wann dein Pull Request in einem Release landet.

                              1 Reply Last reply Reply Quote 0
                              • V
                                viper4iob last edited by viper4iob

                                @mango1402
                                Ich habe mal deinen Code in der iobroker/node_modules/iobroker.influxdb/main.js eingesetzt und die ECharts gehen wieder deutlich schneller 👍
                                Wenn man aber bei einem Datenpunkt auf das Zahnrädchen klickt und den Verlauf von z.B. einem Tag anschaut, dauert es im Vergleich zum V1 Modus immer noch mehrere Sekunden bis die Daten angezeigt werden. Da hat sich also zumindest bei mir nichts verbessert.
                                Hat deine Änderung da keinen Einfluss?

                                mango1402 Negalein 2 Replies Last reply Reply Quote 0
                                • mango1402
                                  mango1402 @viper4iob last edited by

                                  @viper4iob
                                  also bei mir ist auch bei dem 'Zahnrädchen' eine deutliche Verbesserung wahrnehmbar.
                                  Ich werwende aber diese Art von Darstellung nicht - war schon mit V1 ein Lotteriespiel ob und wann man überhaupt eine Anzeige bekommt.....

                                  V 1 Reply Last reply Reply Quote 0
                                  • V
                                    viper4iob @mango1402 last edited by

                                    @mango1402
                                    Das sieht auch gar nicht so richtig danach aus, dass eine Abfrage an Influx so lange braucht, denn die Sekunden, in denen es lädt, steht das Datum auf 01.01.1970.
                                    Sobald er auf das richtige Zeitfenster springt, sind die Daten sofort da.
                                    Im V1 Modus zeigt er gleich den richtigen Zeitraum an, ist also eventuell noch ein anderer Fehler an dieser Stelle.
                                    Aber ich nutze das auch nicht wirklich, wichtiger ist, dass die ECharts und eventuell andere Adpater die Daten schneller laden können.

                                    mango1402 1 Reply Last reply Reply Quote 0
                                    • Negalein
                                      Negalein Global Moderator @viper4iob last edited by

                                      @viper4iob @mango1402

                                      ich habe eure Beiträge hierher verschoben. Passen besser hier als zur Wetterstation 😉

                                      1 Reply Last reply Reply Quote 1
                                      • mango1402
                                        mango1402 @viper4iob last edited by

                                        @viper4iob
                                        das 'Zahnrädchen' möchte scheinbar immer alle daten ab 2000 bis jetzt:

                                        2023-03-24 12:49:39.344 - debug: influxdb.0 (489) 0_userdata.0.Zaehler.SmartMeter.aktuelleLeistung16796585793440.6297946848561795 getHistory message: {"id":"0_userdata.0.Zaehler.SmartMeter.aktuelleLeistung","options":{"instance":"influxdb.0","start":946681200000,"end":1679658580637,"limit":1,"from":false,"ack":false,"q":false,"addID":false,"aggregate":"none","user":"system.user.admin"}}
                                        

                                        946681200000 = Fri Dec 31 1999 23:00:00 GMT+0000

                                        Hat aber nix mit dem Influx-Adapter zu tun. Der macht ja nur was ihm 'aufgetragen' wird.
                                        Ich glaub das geht hier in Richtung 'admin-Adapter'.....

                                        V 1 Reply Last reply Reply Quote 0
                                        • V
                                          viper4iob @mango1402 last edited by viper4iob

                                          @mango1402

                                          Den Startzeitpunkt kann ich bestätigen, habe das im Log auch gerade nachvollzogen, macht irgendwie nicht so viel Sinn, erst mal alle Werte seit 2000 zu laden, erklärt aber zumindest, warum es mehrere Sekunden dauert.
                                          Und jetzt kommts, im Influx Adpater V1 Modus macht er das nicht, habe ich gerade ausprobiert.
                                          Wenn ich da den Verlauf von z.B. "Dieser Tag" anzeigen lasse:

                                          2023-03-24 13:40:38.527  - debug: influxdb.0 (2583993) javascript.0.Wetterstation.Aussentemperatur16796616385270.6902108576272359 getHistory message: {"id":"javascript.0.Wetterstation.Aussentemperatur","options":{"instance":"influxdb.0","start":1679612400000,"end":1679661660000,"from":true,"ack":true,"q":true,"addID":false,"aggregate":"none","returnNewestEntries":true,"user":"system.user.admin"}}
                                          

                                          Da steht als Start-Zeitpunkt 1679612400000 = Fri Mar 24 2023 00:00:00 GMT+0100

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          513
                                          Online

                                          31.7k
                                          Users

                                          79.8k
                                          Topics

                                          1.3m
                                          Posts

                                          9
                                          53
                                          3028
                                          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