FTUI Chart-Widget min1, max1 im data-columnspec

Begonnen von fruemmel, 24 Januar 2019, 12:29:42

Vorheriges Thema - Nächstes Thema

fruemmel

Hallo,

im Diagrammtitel vom Chart-Widget gibt es ja die Möglichkeit mit den Platzhaltern min1, max1 etc. zu arbeiten.

Gibt es eine Möglichkeit, auf diese Werte auch beim data-columnspec zuzugreifen (z. B. für eigene logProxy-Funktionen oder ConstY)?
Ich habe schon etliches probiert, vermute aber, dass es im Code nicht umgesetzt ist.

Gruß fruemmel

fruemmel

Zitat von: fruemmel am 24 Januar 2019, 12:29:42
im Diagrammtitel vom Chart-Widget gibt es ja die Möglichkeit mit den Platzhaltern min1, max1 etc. zu arbeiten.

Gibt es eine Möglichkeit, auf diese Werte auch beim data-columnspec zuzugreifen (z. B. für eigene logProxy-Funktionen oder ConstY)?
Ich habe schon etliches probiert, vermute aber, dass es im Code nicht umgesetzt ist.
Ich habe mich mit Log-Ausgaben jetzt an die Ursache rangetastet. So wie es aussieht, ruft das Chart-Widget beim logProxy jedes Element aus data-columnspec einzeln ab. Damit kann der logProxy auch den Bezug zu anderen definierten Graphen (z. b. $data{max1}) im selben chart nicht herstellen.

Folglich gibt es keine Möglichkeit, z. B. mittels ConstX vertikale Linien z. B. bei Maxima zu zeichen.

Sehe ich das richtig, oder mache ich doch etwas falsch? Falls nicht, wäre es umsetzbar, dass das Chart-Widget die columnspec komplett an den logProxy abgibt?

eki

Das geht bisher so nicht und ist auch ein bisschen schwierig. Aktuell würde das bedeuten, dass das Chart sich erst mal die Daten holen müsste, danach müssten die max/min etc. Werte  aus den so gewonnen Daten bestimmt werden, dann müsste die Columnspec entsprechend ersetzt werden und dann müsste man die Daten noch mal (mit den neuen Parametern) holen. Der Mechanismus in FHEM SVG ist komplett anders und daher funktioniert es dort.

Ich schau mal, ob ich da was machen kann.

fruemmel

Zitat von: eki am 30 Januar 2019, 13:26:31
Ich schau mal, ob ich da was machen kann.
Ok, erst einmal danke für die Bestätigung.

Ich habe mir über einen Umweg geholfen. Ich hänge an die columnspec der relevanten Kurve eine postFn, die die max- und min-Werte aus dem Daten-Array ermittelt und speichert.
Über eine andere Funktion (die man dann in einer zweiten columnspec-Definition mittels Func:... anspricht), gebe ich diese Werte z. B. mit einem Datum wieder aus. Damit kann ich z. B. die Skalierung beeinflussen, oder auch beim Start des aktuellen Tages eine vertikale Linie zeichnen.
Das reicht für mich aus, bevor Du das ganze Modul umkrempelst :)

eki

Noch ein Tipp. Man kann einzelne Parameter der Chart Definition auch mit Werten aus Readings von FHEM setzen. Beispiel:

data-maxvalue="dumTest:data-maxvalue"

dann würde der Maximalwert für die X-Achse aus dem Reading data-maxvalue des Devices dumTest in FHEM verwendet (und wenn sich der ändert, würde auch das Chart entsprechend dynamisch geändert).
Weitere Infos siehe https://forum.fhem.de/index.php/topic,48450.msg401006.html#msg401006 ziemlich unten im ersten Post.

fruemmel

Zitat von: eki am 30 Januar 2019, 16:33:42
Noch ein Tipp. Man kann einzelne Parameter der Chart Definition auch mit Werten aus Readings von FHEM setzen. Beispiel:
Ja vielen Dank, das hatte ich schon gesehen. Das hilft nur insofern nicht, als dass bei manueller Veränderung des Charts durch den Anwender (z. B. Zoom oder Zeit vor/zurück) die Werte nicht in Abhängigkeit der angezeigten Daten neu berechnet werden. Aber wie geschrieben, ich kann mit meiner skizzierten Lösung gut leben.