Autor Thema: neue svg-Funktion: card  (Gelesen 37630 mal)

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9756
Antw:neue svg-Funktion: card
« Antwort #180 am: 05 Juni 2021, 20:44:53 »
Meine aktuelle todo-Liste ist erst mal abgearbeitet. :)

Es gibt jetzt auch die Möglichkeit mehrere Werte mit gleicher Einheit darzustellen. Hierbei wird die Skalierung über alle Werte errechnet. Dadurch ist die Vergleichbarkeit der Wertverläufe gegeben.

Syntax:

card (<Array von Sensoren>,$header,$icon,$min,$max,$minColor,$maxColor,<Array der Einheiten>,$func,$decfont,$prop,$model,$lightness)

Es können auch mehr als zwei Sensoren angegeben werden (sinnvoll mit Halbringen) oder in Kombination mit einem weiteren Wert über collect2.

Beispiel:
defmod Sprit DOIF ##
attr Sprit uiTable {package ui_Table;;}\
"Standard"|card([[Tankstelle:SuperE5:col24],[Tankstelle:Diesel:col24]],"Sprit","fuel","1.20","1.60",120,0,["E5","Diesel"],undef,"2",",,1",undef,undef)\
"ohne Skalierung"|card([[Tankstelle:SuperE5:col24],[Tankstelle:Diesel:col24]],"Sprit","fuel","1.20","1.60",120,0,["E5","Diesel"],undef,"2",",1,1",undef,undef)\
"mit Halbringen"|card([[Tankstelle:SuperE5:col24],[Tankstelle:Diesel:col24]],"Sprit","fuel","1.20","1.60",120,0,["E5","Diesel"],undef,"2",",,1,,,1",undef,undef)

Natürlich können ebenso alle anderen Dinge mit gleicher Einheit auf diese Weise sinnvoll gegenübergestellt werden, wie z. B. Temperaturen, Energie usw.
« Letzte Änderung: 06 Juni 2021, 21:33:57 von Damian »
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9756
Antw:neue svg-Funktion: card
« Antwort #181 am: 05 Juni 2021, 22:49:05 »
Hier ein Beispiel mit drei Werten. Die Daten müssen noch gesammelt werden.

defmod PV DOIF {}
attr PV DOIF_Readings l_Eigenv: [zaehler:l-Produktion]-[zaehler:l-Lieferung],\
Eigenv:[zaehler:Produktion]-[zaehler:Lieferung],\
l_Verbrauch: [zaehler:l-Bezug,0]+[$SELF:l_Eigenv,0],\
Verbrauch:[zaehler:Bezug]+[$SELF:Eigenv],\
l_Bezug:-[zaehler:l-Bezug]
attr PV event-on-change-reading .*
attr PV uiTable {\
 package ui_Table;;\
 $SHOWNOSTATE=1;;\
 $TC{0..1}="align='center'";;\
}\
\
cylinder("Leistung ",-2,3.6,"kW",145,undef,undef,1,-[zaehler:l-Bezug:d1],0,"Bezug",[zaehler:l-Produktion:d1],60,"Produktion",[$SELF:l_Eigenv:d1],30,"Eigenverb.")|\
cylinder("Energie",-20,30,"kWh",145,undef,undef,1,-[zaehler:Bezug:d1],0,"Bezug",[zaehler:Produktion:d1],60,"Produktion",[$SELF:Eigenv:d1],30,"Eigenverb.")<\
\
card([[zaehler:l-Produktion:col],[$SELF:l_Eigenv:col],[$SELF:l_Bezug:col]],undef,"fa_bolt\@silver",-2,3.6,0,90,["Solar","Eigenv.","Bezug"],undef,"2","157,1,1,,,1,190")
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline kumue

  • Hero Member
  • *****
  • Beiträge: 1041
Antw:neue svg-Funktion: card
« Antwort #182 am: 06 Juni 2021, 10:25:25 »
Super Arbeit. Danke und Daumen hoch !

##############################
Eine Frage noch...
Die Werte für den zweiten Sensor $min2,$max2,$minColor2,$maxColor2 (siehe #179) kann ich wohl in der aktuellen Version nicht definieren...oder ?
« Letzte Änderung: 06 Juni 2021, 16:52:47 von kumue »

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9756
Antw:neue svg-Funktion: card
« Antwort #183 am: 06 Juni 2021, 16:58:11 »
Super Arbeit. Danke und Daumen hoch !

##############################
Eine Frage noch...
Die Werte für den zweiten Sensor $min2,$max2,$minColor2,$maxColor2 (siehe #179) kann ich wohl in der aktuellen Version nicht definieren...oder ?

Doch:

Zitat
Es können auch mehr als zwei Sensoren angegeben werden (sinnvoll mit Halbringen) oder in Kombination mit einem weiteren Wert über collect2.

Das heißt, die letzte Version beinhaltet alles, was bisher hier gepostet wurde. Wenn ich meine Tests beendet habe, werde ich sie einchecken.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9756
Antw:neue svg-Funktion: card
« Antwort #184 am: 06 Juni 2021, 17:14:44 »
Die Energieanzeige sieht jetzt so aus:
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Online xenos1984

  • Developer
  • Full Member
  • ****
  • Beiträge: 473
Antw:neue svg-Funktion: card
« Antwort #185 am: 06 Juni 2021, 17:41:36 »
-Skalierbarkeit der Grafik, Breite der Karte einstellbar

Danke, damit hast du meinen Wunsch nach Breite / Höhe erfüllt :)

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9756
Antw:neue svg-Funktion: card
« Antwort #186 am: 06 Juni 2021, 21:12:56 »
Die neue Version hat meine Tests bestanden. Sie wurde eingecheckt. Doku wurde angepasst:

https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Anzeige_eines_Werteverlaufs_und_des_aktuellen_Wertes_mit_Hilfe_der_SVG-Funktion_card

Es sind zwei drei weitere Beispiele hinzugekommen.
« Letzte Änderung: 06 Juni 2021, 21:22:33 von Damian »
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Offline jkriegl

  • Full Member
  • ***
  • Beiträge: 339
Antw:neue svg-Funktion: card
« Antwort #187 am: 12 Juni 2021, 19:52:28 »
Die Möglichkeiten mit DOIF/uiTable (hier card) sind inzwischen sehr umfangreich und komplex.
Z. B. kann man in einem svg von mehreren Tankstellen den aktuellen Preis, das Minimum, das Maximum und wann am Preis geschraubt wurde darstellen (als Folge, wann droht eine Preisänderung).
Schön wäre es, wenn man die einzelnen Graphen der jeweiligen Tanke zuordnen könnte.
Mit $colorRef kann man noch Anpassungen bei den Farben vornehmen. Wenn ich das Beispiel PV richtig verstehe funktioniert diese Anpassung innerhalb eines Bereiches. Alle Tanken haben in etwa die gleiche Spanne.
Weitere Beispiele könnten Raumtemperauren, Heizkörpereinstellungen usw. sein.
Edit: die Definition dazu ist mehr als einfach.
« Letzte Änderung: 12 Juni 2021, 19:57:51 von jkriegl »
Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9756
Antw:neue svg-Funktion: card
« Antwort #188 am: 13 Juni 2021, 21:49:05 »
So würde die card-Funktion mit Farbzuordnung aussehen:
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9756
Antw:neue svg-Funktion: card
« Antwort #189 am: 14 Juni 2021, 18:42:21 »
neue Version zum Ausprobieren:

-Algorithmus zum Speichern der Werte wurde verbessert
-Bei Halbringen können einfarbige Graphen gezeichnet werden

Bei der Einheit-Beschriftung kann jetzt kommagetrennt eine Farbe als Text oder als Hex-Angabe angegeben werden.

Beispiele:
card([[zaehler:l-Produktion:col],[$SELF:l_Eigenv:col],[$SELF:l_Bezug:col]],"kW","fa_bolt\@silver",-3.6,3.6,0,90,["Solar,yellow","Eigen.,lime","Bezug,red"],[(-1,0,0,30,1,60,3.6,90)],"2","167,,1,,1,1",",,1,6")oder
card([[zaehler:l-Produktion:col],[$SELF:l_Eigenv:col],[$SELF:l_Bezug:col]],"kW","fa_bolt\@silver",-3.6,3.6,0,90,["Solar,white","Eigen.,silver","Bezug,gray"],[(-1,0,0,30,1,60,3.6,90)],"2","167,,1,,1,1",",,1,6")
« Letzte Änderung: 15 Juni 2021, 23:40:21 von Damian »
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9756
Antw:neue svg-Funktion: card
« Antwort #190 am: 14 Juni 2021, 18:51:49 »
Wie gut der neue Algorithmus funktioniert, sieht man an der Gegenüberstellung einer Normalauflösung 72 Slots und einer doppelt so hohen mit 144. Alle Nuancen sind zu erkennen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Offline juergen012

  • Full Member
  • ***
  • Beiträge: 402
Antw:neue svg-Funktion: card
« Antwort #191 am: 15 Juni 2021, 12:04:19 »
@jkriegl
habe versucht, deine Ansicht der Spritpreise nachzubauen..soo einfach ist das für mich nicht. Wäre schön, wenn Du deine Konfiguration posten würdest.
Beste Grüße
Jürgen K.
Fhem unter Proxmox

Offline jkriegl

  • Full Member
  • ***
  • Beiträge: 339
Antw:neue svg-Funktion: card
« Antwort #192 am: 15 Juni 2021, 13:31:05 »
@Jürgen
card([[Sprit:Allg-e10:col6], [Sprit:HEM-e10:col6], [Sprit:JET-e10:col6], [Sprit:V-M-e10:col6]],"E10","fuel",[Sprit:e10min],[Sprit:e10min]+.1,120,0,["Allg","HEM","JET","V-M"],undef,"3","165,1,1,,,1,233")min/max (Sprit:e10min) kannst Du auch card überlassen, ist ein userReading min((ReadingsVal($name,"Allg-e10",0), ReadingsVal...), abgerundet. Die Preise stammen von Tankerkönig.
Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

Offline juergen012

  • Full Member
  • ***
  • Beiträge: 402
Antw:neue svg-Funktion: card
« Antwort #193 am: 15 Juni 2021, 14:14:15 »
Super! DANKE!!
Fhem unter Proxmox

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9756
Antw:neue svg-Funktion: card
« Antwort #194 am: 15 Juni 2021, 18:56:15 »
Jetzt geht auch card mit ring2 mit festen Farben:
« Letzte Änderung: 15 Juni 2021, 20:28:36 von Damian »
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF