Hallo Damian,
kannst Du bitte mal diesen Code nachstellen. Ich finde 2 Sachen, die ich nicht verstehe.
1. Wenn das bei Dir so ist wie bei mir, erscheint in der 1. Zeile der Webansicht im Klartext "border-collapse: separate;border-spacing: 10px 1px". Wenn ich aber die Zeile TABLE=... in den Package Block verschiebe, geht es wie gewünscht, die Abstände in der Tabelle passen und die 1. Zeile ist auch ok.
2. Beim Reload der Seite bzw. bei der ersten Ausführung von Setter ist alles ok. Ab dem 2. Mal verschwinden die Icons. Was mache ich falsch?
und Zusatzfrage: Den uiState könnte ich mit einem Template wunderbar vereinfachen, wie könnte ich es hinbekommen, dass nach n-Wertepaaren eine neue Zeile begonnen wird?
defmod di_tester DOIF subs {\
sub subGetState {\
my ($value) = @_;;\
return ("on","off")[$value];;\
}\
}\
\
init {\
fhem("deletereading $SELF .*");;\
for (my $i=0;; $i<10;; $i++) {\
push(@{$_zustaende},"zustand_$i");; \
}\
}\
\
setter {\
[+15];;\
set_Reading("$_",subGetState(int(rand(2))),1) foreach (@{$_zustaende}) ;;\
}\
attr di_tester disable 0
attr di_tester room Labor
attr di_tester uiState {\
package ui_Table;;\
}\
\
$TABLE = "border-collapse: separate;;border-spacing: 10px 1px";; \
$TC{0,2,4,6} = "style='font-size: normal;;text-align:right;;color: DarkOrange'";;\
\
"Zustand 1" | icon([$SELF:zustand_1,"off"],"general_aus\@grey","general_an\@darkorange","off","on")|\
"Zustand 2" | icon([$SELF:zustand_2,"off"],"general_aus\@grey","general_an\@darkorange","off","on")|\
"Zustand 3" | icon([$SELF:zustand_3,"off"],"general_aus\@grey","general_an\@darkorange","off","on")\
\
"Zustand 4" | icon([$SELF:zustand_4,"off"],"general_aus\@grey","general_an\@darkorange","off","on")|\
"Zustand 5" | icon([$SELF:zustand_5,"off"],"general_aus\@grey","general_an\@darkorange","off","on")|\
"Zustand 6" | icon([$SELF:zustand_6,"off"],"general_aus\@grey","general_an\@darkorange","off","on")\
\
"Zustand 7" | icon([$SELF:zustand_7,"off"],"general_aus\@grey","general_an\@darkorange","off","on")|\
"Zustand 8" | icon([$SELF:zustand_8,"off"],"general_aus\@grey","general_an\@darkorange","off","on")|\
"Zustand 9" | icon([$SELF:zustand_9,"off"],"general_aus\@grey","general_an\@darkorange","off","on")\
\
"Zustand 0" | icon([$SELF:zustand_0,"off"],"general_aus\@grey","general_an\@darkorange","off","on")\
Zu 1:
Die Variablen gehören in den Perlblock
Zitatattr di_tester uiState {\
package ui_Table;;\
\
$TABLE = "border-collapse: separate;;border-spacing: 10px 1px";; \
$TC{0,2,4,6} = "style='font-size: normal;;text-align:right;;color: DarkOrange'";;\
}\
Zu 2
Offenbar schlagen bei uiState FHEM-Mechanismen zu, die den Status verändern. Das ist eine größere Geschichte, die ich im Developerboard klären muss. DOIF-SVG-Funktionen funktionieren uiState dagegen korrekt. Im Attribut uiTable gibt es solche Probleme grundsätzlich nicht.
ok danke. Das scheint mir leicht inkonsistent zu sein, die $TC.. und $TR.. funktionieren auch außerhalb des package Blocks, nur TABLE nicht. In der Referenz unter https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Der_Perlblock (https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Der_Perlblock) ist ebenfalls kein Package Block angegeben (fairerweise in den Beispielen drunter schon). Vielleicht ein Prio3-Doku-Fixing Thema?
Zu Frage 2 habe ich verstanden, warte ich erstmal ab. Hättest Du noch einen Tip zur Zusatzfrage?
Danke & Grüße
eddy242
Zitat von: eddy242 am 10 März 2022, 12:03:25
ok danke. Das scheint mir leicht inkonsistent zu sein, die $TC.. und $TR.. funktionieren auch außerhalb des package Blocks, nur TABLE nicht. In der Referenz unter https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Der_Perlblock (https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Der_Perlblock) ist ebenfalls kein Package Block angegeben (fairerweise in den Beispielen drunter schon). Vielleicht ein Prio3-Doku-Fixing Thema?
Zu Frage 2 habe ich verstanden, warte ich erstmal ab. Hättest Du noch einen Tip zur Zusatzfrage?
Danke & Grüße
eddy242
Es hat nichts mit dem package zu tun, sondern dem Perlblock (siehe geschweifte Klammern). Sie funktionieren alle ausserhalb eines Perlblocks nicht. In der Doku sind auch alle innerhalb eines Perlblocks definiert.
zu Zusatzfrage: nach n-Wertepaaren darf kein | kommen, damit die nächsten in der neuen Zeile landen.
Problem gelöst - Update von fhemweb.js.
siehe: https://forum.fhem.de/index.php/topic,126680.0.html
Klasse, Danke!