NEWS
Historische Werte als Zahl
-
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. -
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.
-
@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 sagte in Historische Werte als Zahl:
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.
-
So wjrdeoich es machen. Der TE möchte ja kein grafana als iframe einbinden.
Das hier klappt aber noch nicht so ganz....
-
-
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.
Muss man über die Liste eben entsprechend Formatieren und ggf noch die ms bis kurz vor Tagesende draufrechnen.
-
@david-g
Asche auf mein Haupt
Hab's jetzt getestet. Dreh mal 2. und 1. Element im Blockly
Bei mir kommen jetzt Werte -
@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.
-
@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. -
Wobei man beim result noch den Wert extrahieren muss.
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). -
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
-
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.
-
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.
-
@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. -
Jetzt geht es...
-
-
@plotter123
Braucht es die Pause wirklich?
Ohne ist es ggg was smoother in der Visualisierung.Du holst ja jetzt den Zählerstand von Mittags. Abends macht mehr Sinn oder?
-
@david-g
Ob die Pause nötig ist weiß ich nicht, hatte irgendwo gelesen, dass sonst die Werte evtl. nicht bereit stehen. Und eine Verzögerung kann ich nicht sehen, schon bevor der Kalender geschlossen ist stehen die neuen Werte da.Ich wollte genau die Werte vom Mittag haben.
Mit dem get history Block hatte ich allerdings auch schon öfter Probleme, manchmal kamen keine Werte obwohl in der Datenbank definitiv vorhanden. Das war ärgerlich, weil dahinter noch eine weitere Berechnung hing, die dann im Ausgabegraf völlig unsinnige Werte liefert. Darum speichere ich im Moment parallel auch in eine InfluxDB, und frage mit Javascript ab.
Hier muss ich dann aber die Zeitvorgabe in dem Scriptteil hinter den drei Punkten machen und ich weiß leider nicht, wie ich eine Variable dorthin bekomme. Interessieren würde mich das schon ....
Aber wie gesagt, die manuelle Abfrage geht im Moment gut und wird natürlich auch nicht so oft genutzt wie ein kontinuierlich abgefragter Wert.
-
Die Pause braucht man denke nur wenn du die Abfrage über eine JS Funktion machst,sonst arbeitest du schon weiter bevor die Daten da sind.
Ich vermute, das ist hier nicht nötig, da du ja in dem Block weiter arbeitest und dieser erst weiter läuft wenn das result da ist.
Ich hatte bisher noch keine Probleme mit dem Block. Frage aber auch eine MariaDB und nicht die "normale" History ab.