card-Funktion mit besserer Autoskalierung

Begonnen von Damian, 28 September 2025, 22:58:40

Vorheriges Thema - Nächstes Thema

Damian

Bisher war die automatische Skalierung der Werte auf der Y-Achse nicht besonders gut ablesbar. Diese habe ich nun überarbeitet - siehe Screenshots. Update kommt in den nächsten Tagen. Die Definition der card-Aufrufe ist in beiden Fällen gleich.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

#1
Neue DOIF-Version eingecheckt. Die Syntax hat sich nicht geändert. Die automatische Skalierung funktioniert bei mir so gut, dass ich bei mir alle Cards auf autoscaling umgestellt habe. Diese wird jetzt auch bei fixedscaling erzwungen, wenn ein Wert über das definierte Minimum bzw. Maximum hinausschießt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

#2
Ja, der Platz wird natürlich nicht ganz ausgenutzt, das habe ich in Kauf genommen. Es werden zwischen 5 und 8 Zahlen dargestellt, wie es am besten hinhaut.

Dass bei dir der autoscale-Modus erzwungen wird, liegt bei der Darstellung der Jahresverbräuche daran, dass die Werte den maximalen Wert übersteigen. Wenn du fixedscale haben willst, dann musst du die Grenzen höher setzen.

Edit: Der vorherige Post wurde offenbar gelöscht.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Wzut

Zitat von: Damian am 30 September 2025, 09:42:50Edit: Der vorherige Post wurde offenbar gelöscht.
ja da ich Mist geschrieben hatte und meine Limits doch überschritten waren und darum fixedscal nicht ging.
Und ich darf meine Limits nicht zu knapp an die möglichen min/max Werte setzen
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Damian

Zitat von: Wzut am 30 September 2025, 13:20:03ja da ich Mist geschrieben hatte und meine Limits doch überschritten waren und darum fixedscal nicht ging.
Und ich darf meine Limits nicht zu knapp an die möglichen min/max Werte setzen

Das Problem bei fixedscale ist oft, dass man nicht genau weiß, wo der höchste Wert sein wird. Wählt man den zu klein wird er überschritten, nimmt man den zu groß, verschenkt man viel Platz und die Werte werden klein dargestellt. Das ist insb. bei starker Dynamik problematisch. Gestern hatten wir z. B. um 19:00 Uhr 80 Cent! pro Kilowattstunde. Daher fand ich die Automatik besser, allerdings war die Skalierung nicht userfreundlich, deswegen habe ich sie gemieden. Das ist jetzt besser, auch wenn prinzipbedingt etwas Platz nicht ausgenutzt wird. Im Schnitt vielleicht aber weniger als bei fixedscale.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Wzut

IMHO kommt autoscaled mit kleineren Werten besser klar als mit grossen ( Hunderter , Tausender)
Der Screenshot zeigt oben meine Grenzen mit auto darunter die gleichen Grundwerte mit fix.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Damian

#6
Zitat von: Wzut am 30 September 2025, 17:55:33IMHO kommt autoscaled mit kleineren Werten besser klar als mit grossen ( Hunderter , Tausender)

Das ist nicht richtig. Es hängt von den einzelnen Werten selbst, insb. von deren Differenz ab und nicht von deren Größenordnung.

Z. B. ergibt im Automatikmodus beim minimalen und maximalen Wert von -6 bis 6, -60 bis 60, -600 bis 600, -6000 bis 6000 die gleiche Anzahl von Linien nämlich fünf. Bei -50000 bis 50000 sind es dagegen sieben und die Skalierung ist dann von -60000 bis 60000. Es hängt viel mehr mit unserem Dezimalzahlensystem zusammen und durch welche Zahlen sich eine 10er-Potenz teilen lässt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Ich habe den Algorithmus weiter optimiert. Jetzt werden tendenziell mehr Zeilen erzeugt, maximal aber 8 wie zuvor. Damit sollte auch bei dir der Platz besser ausgenutzt werden.

hier: https://svn.fhem.de/trac/browser/trunk/fhem?desc=1&order=date#FHEM kannst du bereits die neue DOIF-Version runterladen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Zitat von: Damian am 30 September 2025, 19:42:15Ich habe den Algorithmus weiter optimiert. Jetzt werden tendenziell mehr Zeilen erzeugt, maximal aber 8 wie zuvor. Damit sollte auch bei dir der Platz besser ausgenutzt werden.

hier: https://svn.fhem.de/trac/browser/trunk/fhem?desc=1&order=date#FHEM kannst du bereits die neue DOIF-Version runterladen.

Ich sehe allerdings bei mir im Live-System mit der neuen Version keine wirkliche Verbesserung. Es gibt zwar Fälle, wo es mehr Zeilen gibt, was aber auch ggf. zu kleineren Balken führen kann.

Wenn es bei dir auch keine Verbesserung gibt, dann baue ich die Optimierung wieder aus, da sie unnötig Perfomance kostet.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Wzut

THX4Info, bei dem Beispiel von oben sehe ich zwar keine Veränderung aber ein einem anderer Block wo ich eh schlechte Fixwerte gesetzt hatte sieht nun alles wesentlich besser aus  8)  :)
Edit : kannst sie ruhig wieder entfernen
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Damian

#10
Zitat von: Wzut am 30 September 2025, 20:39:41THX4Info, bei dem Beispiel von oben sehe ich zwar keine Veränderung aber ein einem anderer Block wo ich eh schlechte Fixwerte gesetzt hatte sieht nun alles wesentlich besser aus  8)  :)
Edit : kannst sie ruhig wieder entfernen
ja, bei mir sehen viele Diagramme mit autoscaling jetzt besser aus, insbesondere wenn es Ausreißer gibt, mit denen man nicht gerechnet hat. Gutes Beispiel ist z. B. auch der Gasverbrauch, der in den Wintermonaten wesentlich höher ist als in den Sommermonaten, da macht fixedscaling wenig Sinn.

Die Optimierung habe ich allerdings entfernt, weil sie nicht wirklich was gebracht hat und zum Teil kontraproduktiv war.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Hier noch mal ein Scrennshot des DOIFs der Verbräuche mit automatischer Skalierung in allen Cards
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF