Hallo zusammen,
ich hab einen Dummy angelegt [1], welcher über ein DOIF gesteuert wird [2], bzw, mit einem DOIF eine schalter ansteuert [3] und jeweils das devStateIcon Icon ändert; Ich habe für mich leider auch keinen .Weg gefunden die beiden DOIFS zu vereinen So weit so gut. Wie bekomme ich aber das on off daneben weg ?
[1]
Internals:
FUUID 5ffc37b6-f33f-a44f-4176-9809542fcf810500
NAME Taster_Dachluke
NR 620
STATE off
TYPE dummy
READINGS:
2021-11-17 12:45:07 state off
Attributes:
devStateIcon on:black_down off:black_up
readingList state
room Bad_klein
setList on off
[2]
Internals:
CFGFN
DEF ([ITW_852_Bad_klein_01:"on"]) (set Taster_Dachluke off) DOELSE (set Taster_Dachluke on)
FUUID 6194e601-f33f-a44f-a943-46f77f9038fe601a
MODEL FHEM
NAME Taster_Dachluke_doif
NOTIFYDEV ITW_852_Bad_klein_01,global
NR 831
NTFY_ORDER 50-Taster_Dachluke_doif
STATE cmd_1
TYPE DOIF
VERSION 24905 2021-09-01 18:35:54
READINGS:
2021-11-17 12:45:07 Device ITW_852_Bad_klein_01
2021-11-17 12:45:07 cmd 1
2021-11-17 12:45:07 cmd_event ITW_852_Bad_klein_01
2021-11-17 12:45:07 cmd_nr 1
2021-11-17 12:45:07 e_ITW_852_Bad_klein_01_events on
2021-11-17 12:25:21 mode enabled
2021-11-17 12:45:07 state cmd_1
Regex:
accu:
collect:
cond:
ITW_852_Bad_klein_01:
0:
&STATE ^ITW_852_Bad_klein_01$
attr:
cmdState:
wait:
waitdel:
condition:
0 ::EventDoIf('ITW_852_Bad_klein_01',$hash,'on',1)
do:
0:
0 set Taster_Dachluke off
1:
0 set Taster_Dachluke on
helper:
DEVFILTER ^global$|^ITW_852_Bad_klein_01$
NOTIFYDEV global|ITW_852_Bad_klein_01
event on
globalinit 1
last_timer 0
sleeptimer -1
timerdev ITW_852_Bad_klein_01
timerevent on
triggerDev ITW_852_Bad_klein_01
DOIF_eventa:
cmd_nr: 1
cmd: 1
cmd_event: ITW_852_Bad_klein_01
cmd_1
DOIF_eventas:
cmd_nr: 1
cmd: 1
cmd_event: ITW_852_Bad_klein_01
state: cmd_1
timerevents:
on
timereventsState:
state: on
triggerEvents:
on
triggerEventsState:
state: on
internals:
readings:
trigger:
all ITW_852_Bad_klein_01
uiState:
uiTable:
Attributes:
room Bad_klein
[3]
Internals:
CFGFN
DEF ([Taster_Dachluke:"on"]) (set ITW_852_Bad_klein_01 off) DOELSE (set ITW_852_Bad_klein_01 on)
FUUID 6194e927-f33f-a44f-8dbb-da24c9af6b63f6c4
MODEL FHEM
NAME ITW_852_Bad_klein_01_doif
NOTIFYDEV global,Taster_Dachluke
NR 904
NTFY_ORDER 50-ITW_852_Bad_klein_01_doif
STATE cmd_2
TYPE DOIF
VERSION 24905 2021-09-01 18:35:54
READINGS:
2021-11-17 12:45:07 Device Taster_Dachluke
2021-11-17 12:45:08 cmd 2
2021-11-17 12:45:08 cmd_event Taster_Dachluke
2021-11-17 12:45:08 cmd_nr 2
2021-11-17 12:45:07 e_Taster_Dachluke_events off
2021-11-17 12:37:25 mode enabled
2021-11-17 12:45:08 state cmd_2
Regex:
accu:
collect:
cond:
Taster_Dachluke:
0:
&STATE ^Taster_Dachluke$
attr:
cmdState:
wait:
waitdel:
condition:
0 ::EventDoIf('Taster_Dachluke',$hash,'on',1)
do:
0:
0 set ITW_852_Bad_klein_01 off
1:
0 set ITW_852_Bad_klein_01 on
helper:
DEVFILTER ^global$|^Taster_Dachluke$
NOTIFYDEV global|Taster_Dachluke
event off
globalinit 1
last_timer 0
sleeptimer -1
timerdev Taster_Dachluke
timerevent off
triggerDev Taster_Dachluke
DOIF_eventa:
cmd_nr: 2
cmd: 2
cmd_event: Taster_Dachluke
cmd_2
DOIF_eventas:
cmd_nr: 2
cmd: 2
cmd_event: Taster_Dachluke
state: cmd_2
timerevents:
off
off
timereventsState:
state: off
triggerEvents:
off
off
triggerEventsState:
state: off
internals:
readings:
trigger:
all Taster_Dachluke
uiState:
uiTable:
Attributes:
room Bad_klein
Nur interessehalber: Was soll dieser ganze dummy-Wert-Geschubse-Zinnober...?
Das eigentliche Zielgerät (die Luke) fehlt, und es würde vermutlich ausreichen, wenn du einfach dort ein passendes devStateIcon setzt...
(damit nicht nur gemosert ist - die Minimallösung unter Beibehaltung des "Chaos-Codings" wäre:
attr Taster_Dachluke webCmd :
)
EDIT - falls das (https://forum.fhem.de/index.php/topic,117660.msg1120658.html#msg1120658) noch aktuell ist:
define ITW_852_Bad_klein_01 IT 10000000011101011001101010 0 0000
setuuid ITW_852_Bad_klein_01 5ffc053d-f33f-a44f-3474-f7eb334e82536018
attr ITW_852_Bad_klein_01 IODev CUL433
attr ITW_852_Bad_klein_01 devStateIcon on:fts_light_dome_open:off off:fts_light_dome:on
attr ITW_852_Bad_klein_01 room Bad_klein,Funkzentrale
Durch diese kleine Ergänzung in devStateIcon sollte sich die Dachluke direkt durch das devStateIcon vollständig schalten lassen...
Hallo ,
vielen Dank für Deine Hilfe.
attr Taster_Dachluke webCmd :
war dann die Lösung.
Die Dachluke als solche habe ich nur als Befehlsempfänger. Ich hatte es aufgetrennt, da es Benutzer im Haus gibt, die den Taster verwenden und nicht das Webinterface, sowie umgekehrt aber jeder sollte den Status ja entsprechend einsehen können (soweit möglich)
ITW_852_Bad_klein_01 hatte ich schon gelöst, trotzdem danke.
Gru
Micha
Sorry, aber den Einwand kapiere ich mit meiner begrenzent Glaskugel nicht.
Welchen "Taster" betätigt wer?
Wenn das Zielgerät (sowohl im Sinne des FHEM-Devices per Weboberfläche wie durch einen Hardwaretaster vor Ort) direkt bedienbar ist und den korrekten Zustand anzeigt, braucht man sonst schlicht: "nichts". Fisch geputzt.
Wenn man "sicherheitshalber" getrennte FHEMWEB-"Tasten" für hoch und runter braucht, hilft webCmd und cmdIcon weiter. Fisch gekocht.
Ohne dummy, bestenfalls mit einem einfachen Eventhandler.
War nicht dein Ziel, das übersichtlicher und verständlicher zu haben (https://forum.fhem.de/index.php/topic,124179.msg1187665.html#msg1187665). Dann weg mit allem, was man nicht braucht. Ist nur unübersichtlich und funktioniert im Zweifel nicht so, wie man es erwartet...