FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: mfeske am 17 November 2021, 12:56:40

Titel: dummy nur mit devStateIcon
Beitrag von: mfeske am 17 November 2021, 12:56:40
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
Titel: Antw:dummy nur mit devStateIcon
Beitrag von: Beta-User am 17 November 2021, 13:08:45
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...
Titel: Antw:dummy nur mit devStateIcon
Beitrag von: mfeske am 17 November 2021, 13:40:38
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
Titel: Antw:dummy nur mit devStateIcon
Beitrag von: Beta-User am 17 November 2021, 13:48:52
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...