Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Historische Werte als Zahl

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Historische Werte als Zahl

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

      Hallo zusammen, kennt jemand eine Möglichkeit einen historischen Wert zu einem bestimmten Zeitpunkt als Zahl abzufragen.

      Zum Beispiel wüsste ich gerne den Stromzählerstand von vor einem Monat. Bisher bin ich sowohl mit VIS als auch mit Jarvis nur in der Lage mir den aktuellen Stand als Zahl anzeigen zu lassen oder den Verlauf als Graph. Beim Graph ist aber nur eine ungenaue Ablesung möglich. Außerdem möchte ich auch gerne flexibel sein und nicht nur den Stand von vor einem Monat, sondern auch zu einem beliebigen anderen Zeitpunkt wissen.

      Ich stelle mir also vor, auf einem Kalender die Zeit zu wählen und dann im Nachbarfeld den zugehörigen Wert zu sehen. Außer mit Jarvis und VIS habe ich noch mit keiner anderen Visualisierung Erfahrung. Wenn so etwas nur mit einer anderen geht bitte auch gerne mitteilen.

      Schönen Abend noch!

      1 Reply Last reply Reply Quote 0
      • David G.
        David G. last edited by David G.

        @plotter123

        Ich hatte mal in anderem Kontext nach was ähnlichem gefragt.

        Schau mal hier rein https://forum.iobroker.net/topic/43729/mit-werten-aus-sql-adapter-rechnen-abfragen/10

        Edit
        Das könnte schon reichen
        Screenshot_20231118_211534_Chrome.jpg

        1 Reply Last reply Reply Quote 0
        • P
          Plotter123 last edited by

          Nicht so richtig das, was ich mir vorgestellt hatte. Ich möchte ja interaktiv in der Visualisierung auf einen bestimmten Wert zugreifen.

          Aber möglicherweise geht es ja über so einen Weg, wenn man den Zeitpunkt zurück in den IO Broker bekommt. Dann dort über ein Script den Datenpunkt aus der History holen und wieder in der Visu darstellen.

          Weiß denn einer, wie man aus VIS oder Jarvis wieder etwas zurück in IO Broker bekommt?

          W David G. 2 Replies Last reply Reply Quote 0
          • W
            wolfi913 @Plotter123 last edited by

            @plotter123
            Wenn Du eh schon Jarvis nutzt hätte ich eine Möglichkeit das Datum an iobroker zu übergeben

            Screenshot 2023-11-18 220811.png
            Einstellung beim Action Element
            Screenshot 2023-11-18 220830.png
            Schaut dann so aus
            Screenshot 2023-11-18 220702.png
            Screenshot 2023-11-18 220716.png

            Und dann im iobroker per Blockly weiternutzen
            Screenshot 2023-11-18 220519.png
            Den unteren Block brauchst Du nur, wenn auch ein Endedatum benötigt wird. Ich brauchs für meine Grafana-Dashboards so. Ist wegen der Schalttage etwas umständlich, hab aber nichts besseres zusammengebracht.

            Als JS schaut's so aus.
            Am Ende hast Du das Anfangsdatum als Timestamp in 0_userdata.0.Datenpunkte.Widgets.iFrame.Date_Timestamp und das Endedatum (+1 Tag) in 0_userdata.0.Datenpunkte.Widgets.iFrame.Date_Timestamp_to

            var date_temp, date, day, date_to;
            
            
            on({ id: '0_userdata.0.Datenpunkte.Widgets.iFrame.Date_Picker' /* Date_Picker */, change: 'ne' }, async (obj) => {
              let value = obj.state.val;
              let oldValue = obj.oldState.val;
              date_temp = getState('0_userdata.0.Datenpunkte.Widgets.iFrame.Date_Picker').val.split('.');
              date = getDateObject(([date_temp[1],'.',date_temp[0],'.',date_temp[2]].join(''))).getTime();
              setState('0_userdata.0.Datenpunkte.Widgets.iFrame.Date_Timestamp' /* Date_Timestamp */, (date - 0), true);
              day = parseFloat((date_temp[0]));
              day = (typeof day === 'number' ? day : 0) + 1;
              date_to = getDateObject(([date_temp[1],'.',day,'.',date_temp[2]].join(''))).getTime();
              if (date_to - date == 82800000) {
                setState('0_userdata.0.Datenpunkte.Widgets.iFrame.Date_Timestamp_to' /* Date_Timestamp_to */, (date + 82800000), true);
              } else if (date_to - date == 90000000) {
                setState('0_userdata.0.Datenpunkte.Widgets.iFrame.Date_Timestamp_to' /* Date_Timestamp_to */, (date + 90000000), true);
              } else {
                setState('0_userdata.0.Datenpunkte.Widgets.iFrame.Date_Timestamp_to' /* Date_Timestamp_to */, (date + 86400000), true);
              }
            });
            
            David G. 1 Reply Last reply Reply Quote 0
            • David G.
              David G. @Plotter123 last edited by

              @plotter123

              Du musst es ja im Hintergrund mit einem Skript lösen.
              Den Trigger auf den DP wo du dein Datum änderst. Das Ergebnis in einen DP schreiben der in deiner Visu angezeigt wird.

              Wie oft schreibst du die Zählerstände?
              Mit der Info kann man das dann ja sehr gut lösen.

              W 1 Reply Last reply Reply Quote 0
              • David G.
                David G. @wolfi913 last edited by

                @wolfi913

                Schreibt der Datepicker das darum in Form von 18.11.2023 in einen DP?

                Wenn ja kann man doch den oben gezeigten Blocklybajstein nehmen. Bei Beginn über konvertieren den DP in ein Datum Objekt wandeln und bei Ende den selben Wert zB +6min falls der Zähler alle 5min aktualisiert.
                Dann bekommt man den einen Zählerstand aus den 6min.

                Zumindest so in der Art. Weiß grad nicht ob beim konvertieren der Tagesbeginn oder Ende genommen wird. Aber das bekommt man ja alles ausgerechnet.

                W 1 Reply Last reply Reply Quote 0
                • W
                  wolfi913 @David G. last edited by

                  @david-g
                  Jarvis schreibt das Datum in den Datenpunkt des iobrokers
                  Wenn sich der ändert wird das Script abgearbeitet.
                  Und mit der Änderung eines der Datenpunkte in denen die Timestamps landen wird der Rest getriggert, bei mir werden die URLs für die Grafana-Dashboards zusammengebaut und dann in Jarvis als iframe dargestellt.

                  http://192.168.2.202:3000/d/f195a351-2922-4463-be5c-e6de5b710b15/battery?orgId=1&refresh=30s&kiosk&from=1700262000000&to=1700348400000&theme=dark
                  

                  Aber Du brauchst ja für das obige Blockly nur "Beginn des Tages" (also Date_Timestamp) und "Ende des Tages" (also Date_Timestamp_to) zum Weitermachen.

                  David G. 1 Reply Last reply Reply Quote 0
                  • W
                    wolfi913 @David G. last edited by

                    @david-g sagte in Historische Werte als Zahl:

                    @wolfi913

                    Schreibt der Datepicker das darum in Form von 18.11.2023 in einen DP?

                    Wenn ja kann man doch den oben gezeigten Blocklybajstein nehmen. Bei Beginn über konvertieren den DP in ein Datum Objekt wandeln und bei Ende den selben Wert zB +6min falls der Zähler alle 5min aktualisiert.
                    Dann bekommt man den einen Zählerstand aus den 6min.

                    Zumindest so in der Art. Weiß grad nicht ob beim konvertieren der Tagesbeginn oder Ende genommen wird. Aber das bekommt man ja alles ausgerechnet.

                    Das Datum kommt im iobroker mit "18.11.2023" an. Die Konvertierung in den Timestamp (zumindest bei meinem Blockly) geht immer auf 0:00 Uhr. Wenn Du das in Minuten brauchst müsstest Du die Timestamps halt nicht mit 86400000 (24h x 60min x 60sek x 1000msek) sondern entsprechend aufaddieren.

                    1 Reply Last reply Reply Quote 0
                    • David G.
                      David G. @wolfi913 last edited by

                      @wolfi913

                      So wjrdeoich es machen. Der TE möchte ja kein grafana als iframe einbinden.

                      Das hier klappt aber noch nicht so ganz....
                      Screenshot_20231118_223913_Chrome.jpg

                      W 1 Reply Last reply Reply Quote 0
                      • W
                        wolfi913 @David G. last edited by wolfi913

                        @david-g

                        Versuchs mal so (nicht getestet). Könnte aber funktionieren

                        Screenshot 2023-11-18 225336.png

                        Edit (Blockly)
                        blockly.txt

                        David G. 1 Reply Last reply Reply Quote 0
                        • David G.
                          David G. @wolfi913 last edited by David G.

                          @wolfi913

                          Ist ja das selbe. Nur Tag und Monat getauscht.
                          Hab es einfach im Text gedreht.

                          Kommt ein leeres Array als Ergebnis.
                          Mit der ersten Schreibweise kommen zig Ergebnisse (ka wie viele)

                          Edit
                          So klappt es.
                          Screenshot_20231118_231346_Chrome.jpg

                          Muss man über die Liste eben entsprechend Formatieren und ggf noch die ms bis kurz vor Tagesende draufrechnen.

                          W 1 Reply Last reply Reply Quote 0
                          • W
                            wolfi913 @David G. last edited by

                            @david-g
                            Asche auf mein Haupt 😰
                            Hab's jetzt getestet. Dreh mal 2. und 1. Element im Blockly
                            Screenshot 2023-11-18 231425.png
                            Bei mir kommen jetzt Werte

                            David G. 1 Reply Last reply Reply Quote 0
                            • David G.
                              David G. @wolfi913 last edited by David G.

                              @wolfi913
                              Hab grad oben zeitgleich geschrieben. Bei mir wollte er einen _ anstatt ein .

                              Das sollte für den TE ja reichen.
                              Voraussetzung, sein Zähler übermittelt periodisch und gleiche Werte werden in die Datenbank geschrieben (oder er fragt den ganzen Tag ab und nimmt den höchsten Wert aus der Liste).

                              Mit Jarvis kann ich es nicht testen. Nutze Lovelace. Der schreibt bei der Darumsauswahl die ms in den DP, da muss man es nicht umwandeln.

                              W 1 Reply Last reply Reply Quote 0
                              • W
                                wolfi913 @David G. last edited by

                                @david-g
                                Sehe ich auch so. Und er muss halt aus seiner Visualisierung einen Datenpunkt mit dem gewünschten Datum beschreiben. Deshalb mein (komplizierter) Weg für meine Grafana-Dashboards. Ist klar nicht 1 zu 1 anwendbar. Hatte auch die Schnelle nichts besseres greifbar. Aber da kann er sich ja rausnehmen was er braucht.

                                1 Reply Last reply Reply Quote 0
                                • David G.
                                  David G. last edited by David G.

                                  @wolfi913

                                  Wobei man beim result noch den Wert extrahieren muss.
                                  Screenshot_20231119_091216_Chrome.jpg

                                  Edit
                                  Falls die Werte nicht periodisch kommen kann man auch einen größeren Zeitraum, Zb den ganzen Tag, abfragen und den größten Wert nehmen (bei einem Zähler, muss man die Werte natürlich nicht sortieren, mein Testdatenpunkt ist eine Temperatur die steigt und sinkt).

                                  Screenshot_20231119_094853_Chrome.jpg

                                  1 Reply Last reply Reply Quote 0
                                  • jogibear9988
                                    jogibear9988 last edited by jogibear9988

                                    ich hab in meine webui mal support für history bindings eingebaut: https://forum.iobroker.net/topic/68819/neue-visualiserung-webui-im-stable-repository/43?_=1700381191659

                                    1 Reply Last reply Reply Quote 0
                                    • David G.
                                      David G. last edited by

                                      Offtopic an:
                                      Habe oben einen Thread von mir verlinkt wo es um Historyabfragen ging.
                                      Dort wurde noch js in Blockly benötigt.

                                      Habe es jetzt mal komplett im Blockly umgesetzt.

                                      Es gibt eine telegram wenn der Dieselpreis günstiger als in den letzten 3 Tagen ist und es sich lohnt zu tanken.

                                      Screenshot_20231119_103317_Chrome.jpg

                                      1 Reply Last reply Reply Quote 0
                                      • P
                                        Plotter123 last edited by

                                        Oh, was ist hier los? Mit so einer regen Diskussion hatte ich nicht gerechnet, vielen Dank! Das sieht vielversprechend aus. Ich werde mich später mal daran setzen und danach berichten.

                                        1 Reply Last reply Reply Quote 0
                                        • P
                                          Plotter123 last edited by

                                          @David-G, @wolfi913
                                          Hat prima geklappt und funktioniert genau so wie ich es mir vorgestellt hatte. Würde auch gerne Screenshots zeigen, aber wenn ich über "Upload Image" gehe bekomme ich eine Fehlermeldung.

                                          @jogibear9988
                                          Danke für die Anregung, schien mir aber zu viel Aufwand noch eine weitere Visualisierung zu nutzen.

                                          1 Reply Last reply Reply Quote 0
                                          • P
                                            Plotter123 last edited by

                                            Screenshot 2023-11-19 162958.jpg

                                            Jetzt geht es...

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            859
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            24
                                            809
                                            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