Wie behandle ich einen Dimmer im Userinterface ( fhem oder ftui ) ?
Vielleicht eine zu einfache Frage, aber so richtig kriege ich es nicht gebacken.
Der Dimmer kennt on , off und set dim xxx Kommandos.
Jede Ausführung eines solchen Kommandos ändert 'state' und 'STATE entsprechend,
set dim xxx schaltet den Dimmer nicht ein oder aus ( etwa bei xxx > 0 bzw. aus bei xxx=0 ), kann in jedem Zustand ausgeführt werden, erfolgreich aber nur wenn Dimmer schon 'on' ist.
Letzteres ist nicht so schlimm, aber es passiert folgendes :
'set Dimmer on' schaltet ihn ein, 'STATE' ist 'on' , 'state' ist 'on', Icon wird passend gesetzt.
Dann, 'set Dimmer dim 10' setzt den Level auf 10, wie gewünscht. Icon verschwindet, da 'state' bzw. 'STATE' jetzt weder 'on' noch 'off' sind, sondern halt 'dim 10'.
Die Information, ob on oder off, ist jetzt weg.
Wie löst man sowas ?
Oder habe ich was übersehen ?
Hier ist das Listing :
DEF cfba8db6 35
IODev ZWAVE2
LASTInputDev ZWAVE2
MSGCNT 4
NAME LichtWohnEsstisch
NR 169
STATE dim 50
TYPE ZWave
ZWAVE2_MSGCNT 4
ZWAVE2_RAWMSG 00489222
ZWAVE2_TIME 2018-06-15 16:51:07
ZWaveSubDevice no
cmdsPending 0
homeId cfba8db6
isWakeUp
lastMsgSent 1529083560.37043
nodeIdHex 23
READINGS:
2018-06-15 12:18:10 config_0 0
2018-06-15 16:51:16 neighborList ZWAVE2 ZWKeller ZWEisenbahn AirconUp AirconWohn LichtWohnKamin KodiMedia LichtWohnTuer LichtWohnRegal UNKNOWN_47 LichtFlur
2018-06-15 16:51:07 neighborUpdate done
2018-06-15 19:26:00 state dim 50
2018-06-15 19:26:00 timeToAck 0.028
2018-06-15 19:26:00 transmit OK
Attributes:
IODev ZWAVE2
classes SWITCH_MULTILEVEL SWITCH_ALL PROTECTION CONFIGURATION NODE_NAMING VERSION MANUFACTURER_SPECIFIC
devStateIcon .*on:FS20.on .*off:FS20.off
fp_Erdgeschoss 144,520,0,LichtWohnEsstisch,
icon ge_wht_steckdose
room Wohnzimmer,ZWave
vclasses CONFIGURATION:1 MANUFACTURER_SPECIFIC:1 NODE_NAMING:1 PROTECTION:1 SWITCH_ALL:1 SWITCH_MULTILEVEL:1 VERSION:1
Das habe ich ausprobiert :
- ein notify mit einem setreading . das funktioniert, sprich, ich bekomme jetzt ein Reading, das immer das anzeigt, was ich will.
Das Userinterface wird dabei bekanntlich nicht getriggert - das ist noch nicht ausreichend.
Variationen mit (fhem)sleep enden bis jetzt alle katastrophal, etwas wie { fhem " sleep 1.0;; setreading ...... " } fuehrt zu einem endlosen Update des Readings
Syntaxfehler. Mit der richtigen Anzahl ; funktioniert es korrekt.
Welches Reading setzt du? Oder hast du ein neues userreading erstellt?
Übrigens: Ich habe mal irgendwo gelesen, dass es sich manchmal (je nach Modul?) folgendermassen verhält:
zwei ;; = sequentielle Verarbeitung der Befehle
ein ; = gleichzeitige Verarbeitung der Befehle
Oder Umgekehrt.
Ich habe ein eigenes Reading erstellt, was ich dann nur bei Bedarf setze.