[gelöst]: beliebigen Befehl auf iconLabel legen.

Begonnen von LuBeDa, 10 Dezember 2017, 12:20:22

Vorheriges Thema - Nächstes Thema

LuBeDa

Hallo,

ich bin fasziniert von den Möglichkeiten der neuen uiTables, habe auch schon einiges hinbekommen.

Derzeit hänge ich aber fest.

Ich zeige ein Internal mit ein iconLabel Widget an und möchte bei einem Klick darauf einen beliebigen FHEM-Befehl absetzen.
Es handelt sich um einen MAX CUL der das Internal pairmode hat und den Befehl "set pairmode 60".

defmod Status_MAXCul DOIF (1)
attr Status_MAXCul DbLogExclude .*
attr Status_MAXCul uiTable "Pairing:"|WID([CUL868MAX:&pairmode],"iconLabel,0,cul_max\@Black,1,cul_max\@green","set CUL868MAX pairmode 60")


Der Internal Wert hat entweder 0 oder 1.

Macht er aber nicht. Vielleicht weil man ein Internal nicht schreiben kann?

Grundsätzlich ist meine Frage ob man irgendeinen Befehl auf ein Widget legen kann?

Ludger

Damian

Zitat von: LuBeDa am 10 Dezember 2017, 12:20:22
Hallo,

ich bin fasziniert von den Möglichkeiten der neuen uiTables, habe auch schon einiges hinbekommen.

Derzeit hänge ich aber fest.

Ich zeige ein Internal mit ein iconLabel Widget an und möchte bei einem Klick darauf einen beliebigen FHEM-Befehl absetzen.
Es handelt sich um einen MAX CUL der das Internal pairmode hat und den Befehl "set pairmode 60".

defmod Status_MAXCul DOIF (1)
attr Status_MAXCul DbLogExclude .*
attr Status_MAXCul uiTable "Pairing:"|WID([CUL868MAX:&pairmode],"iconLabel,0,cul_max\@Black,1,cul_max\@green","set CUL868MAX pairmode 60")


Der Internal Wert hat entweder 0 oder 1.

Macht er aber nicht. Vielleicht weil man ein Internal nicht schreiben kann?

Grundsätzlich ist meine Frage ob man irgendeinen Befehl auf ein Widget legen kann?

Ludger

iconLabel ist nur für Anzeige geeignet. Zum Schalten musst du iconSwitch benutzen (siehe meine Beispiele). WID ist kompatibel zu FHEMWEB-Widgets, damit kann man per set oder setreading nur den Wert übergeben, der bei iconSwitch zuvor definiert wird. Als letzten Parameter kann man nur "set", oder hier "set pairmode" angeben, der Wert dahinter wird automatisch aufgrund der iconSwitch-Definition eingestellt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Ellert

set CUL868MAX pairmode 60
würde ich über einen Link darstellen
"<a target='_blank' href='$FW_ME?cmd.$SELF=set CUL868MAX pairmode 60$FW_CSRF' title='set CUL868MAX pairmode 60'>".FW_makeImage("cul_max\@black")."</a>"

Damian

#3
Zitat von: Ellert am 10 Dezember 2017, 14:48:16
set CUL868MAX pairmode 60
würde ich über einen Link darstellen
"<a target='_blank' href='$FW_ME?cmd.$SELF=set CUL868MAX pairmode 60$FW_CSRF' title='set CUL868MAX pairmode 60'>".FW_makeImage("cul_max\@black")."</a>"

Falls man ein anklickbares Icon mit einem beliebigen Kommando öfters nutzen möchte, so kann man sich ein Template definieren, z. B.

DEF TPL_iconCmd ("<a target='_blank' href='$FW_ME?cmd.$SELF=$2$FW_CSRF' title='$2'>".FW_makeImage("$1")."</a>")

Die Angabe ist dann nur noch:

TPL_iconCmd (<icon>,<command>)

hier also:

TPL_iconCmd (cul_max\@black,set CUL868MAX pairmode 60)

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

LuBeDa

Cool,
ich habe mal beide Methoden ausprobiert. Die mit dem Widget ist in diesem Fall nicht so sauber, weil es kein Reading "pairmode" gibt. Die andere mit dem oben beschrieben Template gefällt mir am besten!

"Pairing:"|WID([CUL868MAX:pairmode],"uzsuSelect,60","set")|TPL_iconCmd(cul_max\@orange,set CUL868MAX pairmode 60)

Danke für die Unterstützung