neue svg-Funktionen: icon_ring, icon_bar, cylinder_bars, icon_ring2

Begonnen von Damian, 30 Januar 2021, 20:03:18

Vorheriges Thema - Nächstes Thema

cwagner

Die Knobs habe ich bei mir mal etwas fingerfreundlicher (:-)) gemacht. Vielleicht ist das eine Anregung...


...
$TPL{HKnob}="knob,min:15,max:25,width:40,height:35,step:1,fgColor:#33cc00,bgcolor:#3399ff,anglearc:270,angleOffset:225,thickness:.5";
}
"CC_Wohnzimmer".":",[CC_Wohnzimmer]|temp2([T.Wohnzimmer:temperature:d1],12),hum2([TF.Wohnzimmer:humidity:d0],12)|"Δ:".[RR_Wohnzimmer:delta:d1],"SP: ".[RR_Wohnzimmer:setpoint]."%"|WID([RR_Wohnzimmer:setpointTemp],$TPL{HKnob},"set")
"CC.Ute".":",[CC.Ute]|temp2([TF.Ute:temperature:d1],12),hum2([TF.Ute:humidity:d0],12)|"autark","VL: ".[RR_Ute:feedTemp]."°","SP: ".[RR_Ute:setpoint]."%"|WID([RR_Ute:setpointTemp],$TPL{HKnob},"set")
...


Christian
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

Reinhart

gute Idee mit einem dickeren Ring, danke für die Anregung!

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Reinhart

@Damian
du hast da schon eine ziemlich komplexe Funktion realisiert da auch die Timersteuerung für die Busabfrage inkludiert ist.

Die Verwendung des Beistrich als Zeilensprung finde ich gut und habe das gleich einmal getestet. So kann man natürlich auch sehr gut beschriften, dann kompensiert sich auch die Verschiebung der vertikal Zentrierung.

Schade das ich deinen Thread erst so spät entdeckt habe, gerade im Heizungsbereich läßt sich die Funktion sehr gut einsetzen.

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Reinhart

ich habe das ganz ehrlich auch nicht gekannt und habe es im aktuellen eBus Thread jetzt in der ersten Seiten verlinkt, da wird es jetzt hoffentlich gefunden!

Wäre schade wenn das übersehen wird da diese Funktionen genau wie geschaffen für diesen Zweck sind. So manch einer überlegt sich ob da noch ein eigenes Tablett-Ui überhaupt notwendig ist. Der Aufwand mit dem DOIF hält sich ja in Grenzen wenn man weiß wies es funktioniert und man hat sofort einen ansprechenden Output.

Danke auf jeden Fall das du dich da so in das Thema hinein stürzt!

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Damian

#35
Zitat von: Reinhart am 10 Februar 2021, 22:16:35
ich habe das ganz ehrlich auch nicht gekannt und habe es im aktuellen eBus Thread jetzt in der ersten Seiten verlinkt, da wird es jetzt hoffentlich gefunden!

Wäre schade wenn das übersehen wird da diese Funktionen genau wie geschaffen für diesen Zweck sind. So manch einer überlegt sich ob da noch ein eigenes Tablett-Ui überhaupt notwendig ist. Der Aufwand mit dem DOIF hält sich ja in Grenzen wenn man weiß wies es funktioniert und man hat sofort einen ansprechenden Output.

Danke auf jeden Fall das du dich da so in das Thema hinein stürzt!

LG

ja, das Standard-Design von FHEM lässt stark zu Wünschen übrig, damit kann man es wenigsten etwas aufpeppen.

Im Übrigen übernehmen die meisten meiner aktuellen DOIF-Definitionen inzwischen sowohl die Steuerung als auch das UI in einem Device.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

cwagner

#36
Zitat von: Damian am 10 Februar 2021, 20:40:04
Da hat es wohl keinen interessiert ;)

https://forum.fhem.de/index.php/topic,116836.msg1111936.html#msg1111936

Nun, ich bastele auf Basis Deiner Umsetzung an Statistiken für Ölverbrauch (schäm), Stromverbrauch, Solarproduktion und Thermosolar-Wärmezähler. Also einen weiteren hat's interessiert :)

Christian
PI 2B+/3B+ Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

Damian

Hier ist eine aktuelle Version davon, die cylinder-Funktion kann man auch durch andere svg-Funktion ersetzen.

defmod Heizenergie DOIF subs {\
sub day \
{\
  my ($type,$mday,$yday)=@_;;\
  set_Reading("gesamt_Vortag_$type",get_Reading("gesamt_$type"));;\
  set_Reading("Vortag_$type",get_Reading("Tagesverbrauch_$type"),1);;\
  set_Reading("Tagesverbrauch_$type",get_Reading("heute_$type"),1);;\
  set_Reading("Monat_$type",get_Reading("heute_$type")+get_Reading("Monat_$type"));;\
  set_Reading("Jahr_$type",get_Reading("heute_$type")+get_Reading("Jahr_hc"));;\
  set_Reading("heute_$type",0);;\
  if ($mday == 1) {\
    set_Reading("Vormonat_$type",get_Reading("Monatsverbrauch_$type"),1);;\
    set_Reading("Monatsverbrauch_$type",get_Reading("Monat_$type"),1);;\
    set_Reading("Monat_$type",0);;\
  }\
  if ($yday == 1) {\
    set_Reading("Vorjahr_$type",get_Reading("Jahresverbrauch_$type"),1);;\
    set_Reading("Jahresverbrauch_$type",get_Reading("Jahr_$type"),1);;\
    set_Reading("Mahr",0);;\
  }\
}\
\
sub resettype {\
  my ($type)=@_;;\
  #set_Reading ("heute_$type",0);;\
  #set_Reading ("Monat_$type",0);;\
  #set_Reading ("Jahr_$type",0);;\
  #set_Reading ("Tagesverbrauch_$type",0);;\
  #set_Reading ("Monatsverbrauch_$type",0);;\
  #set_Reading ("Jahresverbrauch_$type",0);;\
  set_Reading ("Vortag_$type",0);;\
  set_Reading ("Vormonat_$type",0);;\
  set_Reading ("Vorjahr_$type",0);;\
\
}\
}\
\
{[+[1]:01];;foreach (qw(PrEnergySumHc1 PrEnergySumHwc1 HcHours HwcHours)) {fhem_set("MQTT2_FHEM_Server publish ebusd/bai/$_/get")}}\
\
{ [00:02];;\
  day("hc",$mday,$yday);;\
  day("hwc",$mday,$yday);;\
  day("hour_hc",$mday,$yday);;\
  day("hour_hwc",$mday,$yday);;\
} \
\
{\
  set_Reading("gesamt_hc",[vaillant:PrEnergySumHc1_0_value]/100000,0);;\
  set_Reading("heute_hc",get_Reading("gesamt_hc")-get_Reading("gesamt_Vortag_hc"),1);;\
}\
\
{\
  set_Reading("gesamt_hwc",[vaillant:PrEnergySumHwc1_0_value]/100000,0);;\
  set_Reading("heute_hwc",get_Reading("gesamt_hwc")-get_Reading("gesamt_Vortag_hwc"),1);;\
}\
\
{\
  set_Reading("gesamt_hour_hc",[vaillant:HcHours_hoursum2_value],0);;\
  set_Reading("heute_hour_hc",get_Reading("gesamt_hour_hc")-get_Reading("gesamt_Vortag_hour_hc"),1);;\
}\
\
{\
  set_Reading("gesamt_hour_hwc",[vaillant:HwcHours_hoursum2_value],0);;\
  set_Reading("heute_hour_hwc",get_Reading("gesamt_hour_hwc")-get_Reading("gesamt_Vortag_hour_hwc"),1);;\
}\
\
\
reset {\
  ##set_Reading ("gesamt_Vortag_hc",[?vaillant:PrEnergySumHc1_0_value]);;\
  ##set_Reading ("gesamt_Vortag_hwc",[?vaillant:PrEnergySumHwc1_0_value]);;\
  resettype ("hc");;\
  resettype ("hwc");;\
  resettype ("hour_hc");;\
  resettype ("hour_hwc");;\
}
attr Heizenergie group Aktuell
attr Heizenergie room test6,Ebus
attr Heizenergie uiTable {package ui_Table;;\
$TC{0..4}="style='padding-left: 3px;;padding-right: 3px'"\
}\
"Heizung"|""|""|""\
\
cylinder("Tag",0,100,"kWh",undef,undef,undef,1,[$SELF:Vortag_hc],0,"vorletzter",[$SELF:Tagesverbrauch_hc],30,"letzter",[$SELF:heute_hc],60,"aktuell")|\
cylinder("Monat",0,3000,"kWh",undef,undef,undef,1,[$SELF:Vormonat_hc],0,"vorletzter",[$SELF:Monatsverbrauch_hc],30,"letzter",[$SELF:Monat_hc],60,"akuell")|\
cylinder("Jahr",0,20,"MWh",undef,undef,undef,3,[$SELF:Vorjahr_hc]/1000,0,"vorletzter",[$SELF:Jahresverbrauch_hc]/1000,30,"letztes",[$SELF:Jahr_hc]/1000,60,"aktuell")\
"Wasser"|""|""|""\
cylinder("Tag",0,30,"kWh",undef,undef,undef,1,[$SELF:Vortag_hwc],0,"vorletzter",[$SELF:Tagesverbrauch_hwc],30,"letzter",[$SELF:heute_hwc],60,"aktuell")|\
cylinder("Monat",0,300,"kWh",undef,undef,undef,1,[$SELF:Vormonat_hwc],0,"vorletzter",[$SELF:Monatsverbrauch_hwc],30,"letzter",[$SELF:Monat_hwc],60,"akuell")|\
cylinder("Jahr",0,5,"MWh",undef,undef,undef,3,[$SELF:Vorjahr_hwc]/1000,0,"vorletztes",[$SELF:Jahresverbrauch_hwc]/1000,30,"letztes",[$SELF:Jahr_hwc]/1000,60,"aktuell")
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Reinhart

Ja, Säulen sind ideal zur Gegenüberstellung!
Du musst deine Einheiten noch etwas überarbeiten, denn ein Verbrauch von 100Kwh erscheint mir ein bisschen hoch!

Schade das die Readings "PrEnergy.." nicht bei allen Heizgeräten aktiv sind, bei meiner Therme geht das nicht, aber ich  habe dafür einen Reedkontakt am Gaszähler montiert.

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Damian

#39
Zitat von: Reinhart am 11 Februar 2021, 18:18:18
Ja, Säulen sind ideal zur Gegenüberstellung!
Du musst deine Einheiten noch etwas überarbeiten, denn ein Verbrauch von 100Kwh erscheint mir ein bisschen hoch!

Schade das die Readings "PrEnergy.." nicht bei allen Heizgeräten aktiv sind, bei meiner Therme geht das nicht, aber ich  habe dafür einen Reedkontakt am Gaszähler montiert.

LG

Das stimmt ziemlich genau mit dem Gasverbrauch, den ich separat messe, überein.

Mit Säulen, die sich nicht überlappen, kann man es noch besser erkennen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Reinhart

Ja, nebeneinander ist die Gegenüberstellung noch besser ersichtlich.

Kannst du mir sagen wie man die Farbe der Beschriftung beeinflusst? Hier hat sie sich selbst auf orange gesetzt, vermutlich von der letzten Farbe des Ringes.

{package ui_Table;;
  $TC{0..4}="align='center'";;}

icon_temp_ring((([Fanspeed:Fanspeed]) >=0?"sani_boiler_temp\@red":""),[VorlaufSoll:VorlaufSoll:d1],20,60,120),"SollTemp"|
icon_temp_ring("sani_supply_temp",[Vorlauf:Vorlauf],20,60,120),"Vorlauf"|
icon_temp_ring("sani_return_temp",[Ruecklauf:Ruecklauf],20,60,120),"Rücklauf"|
icon_temp_ring ("sani_water_hot",[WarmW.Temp.:WarmW.Temp.],20,60,120),"Warmwasser"|
WID([WarmWasserEinstellen:state],"selectnumbers,55,0.5,60,1,lin","set"),"Warmwasser"

icon_ring((([Fanspeed:Fanspeed]) >=10?"vent_ventilation_level_3\@red":"vent_ventilation_level_0\@gray"),[Fanspeed:Fanspeed],0,3000,140,0,"upm",0,120),"Ventilator"|
icon_ring((([PumpeWatt:PumpeWatt]) >=10?"sani_pump\@red":"sani_pump\@gray"),[PumpeWatt:PumpeWatt],0,100,120,0,"Watt",0,120),"Pumpe"|
icon_ring ("weather_barometric_pressure",[Druck:Druck],0,2,120,0,"Bar",1,120),"Druck"|
icon_ring ("temp_control",[HKurve:HKurve],0,2,120,0,"Curve",1,120),"Hkurve"|
WID([HeizkurveEinstellen:state],"0.20,0.40,0.50,0.60,0.70,0.80,0.90,1.00,1.10,1.20,1.30,1.40,1.50,1.60,1.70","set"),"Heizkurve"
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Damian

Druck ist bei dir ein Device, deswegen wird es als Link angezeigt und ist damit auch anklickbar. Die Farbe kommt von deinem f18-Style für Links.

Wenn man keine anklickbaren Links haben will, dann lässt sich das mit der Variablen $SHOWNODEVICELINK abstellen:

{package ui_Table;;
  $SHOWNODEVICELINK=1;
  $TC{0..4}="align='center'";;}

Farbige Texte kann man selbstverständlich auch definieren:

https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Textformatierungen_mit_Hilfe_der_Funktion_style
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Reinhart

oh Mann, das ist klar, das gleiche bei Vorlauf! Die Farbe kommt ja vom Fhem Style wie dort ein Link definiert ist und dort ist er mit "FF9900" ( orange ) eingestellt.
Danke für die Aufklärung!

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Reinhart

Super Danke, vor allem die vielen Beispieldefinitionen machen es wesentlich leichter und das Wiki ist schön übersichtlich gestaltet!

Ist eigentlich ein ganz schöner Umfang den du da realisiert hast, eigentlich deckt das jetzt alle Anwendungen aus Fhem ab!
Ich bin mitten drinnen und hübsche jetzt meine gesamten Ansichten in Fhem auf!

LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa