neues Feature: uiTable mit mehreren Tabellen

Begonnen von Damian, 23 April 2021, 22:19:32

Vorheriges Thema - Nächstes Thema

Damian

Bisher konnte uiTable nur eine Tabelle darstellen. Das bedeutete, dass man immer die gleiche Anzahl von Spalten hatte. Wollte man innerhalb einer Tabelle zwischendurch  eine andere Anzahl von Spalten haben, dann musste man umständlich mit dem html-Attribut colspan hantieren.

Bsp1:

defmod di_newtable DOIF ##
attr di_newtable uiTable {\
  package ui_Table;;\
  $TABLE='text-align:center;;';;\
}\
icon_temp_hum_ring("temp_outside",[Aussensensor:temperature],[Aussensensor:humidity],undef,undef,130)|\
icon_ring2([Wetter:WindKm] > 0 ? "wind".",1,0,0,".[Wetter:WindrichtungGrad]:"no_wind",[Wetter:WindKm],0,50,120,0,"km/h",130,undef,1,[Wetter:WindboeenKm],0,50,120,0,"km/h",undef,1) |\
icon_ring2("weather_rain_gauge",[Wetter:RegenMm],0,10,180,270,"mm/h",130,undef,1,[Wetter:RegenGesamtMm],0,50,180,270,"mm/d",undef,1)\
\
icon_ring ("sani_solar",[Wetter:UV],0,10,200,0,"UV",0,130)|\
icon_uring ('0,1,1,6',"weather_barometric_pressure",[Wetter:LuftdruckHpa],980,1047,undef,undef,"hPa",0,130,[(1008.5,0,1018.5,270,1047,190)],",40,45,45,,45")


Man kann nun eine Tabelle beenden und eine neue beginnen. Dazu wird am Ende einer Zeile < angegeben, um dieses Verhalten zu erreichen.

Im zweiten Bespiel wird nach dem dritten Ring < angegeben, um die Tabelle zu beenden und eine neue Tabelle zu beginnen:

defmod di_newtable DOIF ##
attr di_newtable uiTable {\
  package ui_Table;;\
  $TABLE='text-align:center;;';;\
}\
icon_temp_hum_ring("temp_outside",[Aussensensor:temperature],[Aussensensor:humidity],undef,undef,130)|\
icon_ring2([Wetter:WindKm] > 0 ? "wind".",1,0,0,".[Wetter:WindrichtungGrad]:"no_wind",[Wetter:WindKm],0,50,120,0,"km/h",130,undef,1,[Wetter:WindboeenKm],0,50,120,0,"km/h",undef,1) |\
icon_ring2("weather_rain_gauge",[Wetter:RegenMm],0,10,180,270,"mm/h",130,undef,1,[Wetter:RegenGesamtMm],0,50,180,270,"mm/d",undef,1)<\
\
icon_ring ("sani_solar",[Wetter:UV],0,10,200,0,"UV",0,130)|\
icon_uring ('0,1,1,6',"weather_barometric_pressure",[Wetter:LuftdruckHpa],980,1047,undef,undef,"hPa",0,130,[(1008.5,0,1018.5,270,1047,190)],",40,45,45,,45")


Ergebnisse siehe Anhang.

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

Damian

#1
Die Aufteilung einer Tabelle in mehrere Tabellenbereiche lässt sich gut anwenden. Für das folgende Layout reicht ein globales Tabellen-Style-Attribut  zum Zentrieren aller Felder und für die Aufteilung in zwei Tabellenbereiche ein <

attr di_heizung uiTable {
  package ui_Table;

  ## Alle Zellen sollen zentriert sein
  $TABLE='text-align:center;';
}

## Obere Zeile mit mehreren Ringen und Select-Widgets wird beendet mit <
icon_temp_ring("temp_outside",[vaillant:Aussentemp],-15,40)|
....
widget([vaillant:NachtSolltemp],"selectnumbers,15,1,25,1,lin","set")|icon_temp_mring("scene_night\@#3464eb",[vaillant:NachtSolltemp],undef,undef)<

## Zwei weitere Zeilen mit card-Funktionen
card([vaillant:Aussentemp:col],"Außentemperatur","temp_outside",-15,35,undef,undef,"°C",\&temp_hue)|
...
card([$SELF:diff_hwc:col],"Energie Warmwasser","sani_water_tap",0,15,120,0,"kWh",undef,1)

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

Invers

Ich finde gerade kein passenderes Thema und poste deshalb mal hier.
Im Wiki steht ein Beispiel für die Steuerung von Rollos.
Leider benötige ich die Symble oder die Schaltwerte (Prozente) in umgekehrter Reihenfolge.
Wie kann ich das erreichen?

Hier mal der Code aus dem Wiki:
defmod ui_Table_shutter DOIF ##
attr ui_Table_shutter uiTable {\
  package ui_Table;;\
}\
shutter([R_Keller:pct],"\@yellow",2)     ## zwei Symbole für 0 % und 100 %\
shutter([R_Wohnzimmer_S:pct])            ## entspricht shutter ([R_Wohnzimmer_S:pct],"\@DarkOrange",3) \
shutter([R_Wohnzimmer_W1:pct],"blue",4)  ## vier Symbole \
shutter([R_Wohnzimmer_W2:pct],"\@red",5) ## fünf Symbole\
shutter([R_Wohnzimmer_W3:pct],"red",6    ## sechs Symbole)


Danke im Voraus für die Antwort.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Damian

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

Invers

Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Per

Wenn ich mit < eine neue Tabelle anfange, beginnt dann auch die Zählung der Zeilen neu?
$TR{0}
$TR{1..$end}

Damian

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

Per

Ist das Absicht oder ließe sich das ändern?
Neue Tabellen haben in der Regel auch neue Köpfe...
Oder gibt es andere Möglichkeiten, ohne rechnen hinzukommen? $lastrow oder sowas?

Damian

Zitat von: Per am 06 Februar 2023, 16:36:36
Ist das Absicht oder ließe sich das ändern?
Neue Tabellen haben in der Regel auch neue Köpfe...
Oder gibt es andere Möglichkeiten, ohne rechnen hinzukommen? $lastrow oder sowas?

Ist schwierig, da intern nur die Zeilen in uiTable gezählt werden und nicht die echten HTML-Tabellen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF