Toggle mit UntoggleDirect funktioniert nicht

Begonnen von Floon, 03 Januar 2018, 21:26:14

Vorheriges Thema - Nächstes Thema

Floon

Hallo!

Ich habe Probleme den UntoggleDirect zum laufen zu bekommen. Der toggle Befehl schaltet immer nur den Verbraucher ein, aber nicht aus. Einzelbefehle funktioneren allerdings.

Was ist alles eingestellt:
defmod wz.Licht_toggle notify wz.Licht {UntoggleDirect("wz.Licht")}


defmod wz.Licht EnOcean xxxx
attr wz.Licht IODev TCM_ESP3_0
attr wz.Licht eventMap /AI:on/ /A0:off/
attr wz.Licht manufID 00D
attr wz.Licht model TF
attr wz.Licht room Wohnzimmer
attr wz.Licht subType switch
attr wz.Licht switchMode switch


Im Frontend funktioniert alles sauber mit
set wz.Licht off
und
set wz.Licht on
aber eben bei
set wz.Licht toggle
schaltet sich das Licht nur ein, aber beim zweiten mal sendet es auch nur den Ein-Befehl. Das erkennt man im Log
2018.01.03 21:12:07 3 : EnOcean set wz.Licht AI
2018-01-03 21:12:07 EnOcean wz.Licht channelA: on
2018-01-03 21:12:07 EnOcean wz.Licht on
2018.01.03 21:12:33 3 : EnOcean set wz.Licht AI
2018-01-03 21:12:33 EnOcean wz.Licht channelA: on
2018-01-03 21:12:33 EnOcean wz.Licht on


Der in meinen Augen richtige Status mit entweder off bzw. on wird eigentlich auch korrekt mit
{OldValue("wz.Licht")}
bestätigt.

Und der UntoggleDirect Code steht natürlich auch sauber in der 99_utils.pm drin
######## UntoggleDirect ###########################################
# What  : For devices paired directly, converts state 'toggle' into 'on' or 'off'
# Call  : { UntoggleDirect("myDevice") }
#         define untoggle_myDevice notify myDevice { UntoggleDirect("myDevice") }
# Source: http://www.fhemwiki.de/wiki/FS20_Toggle_Events_auf_On/Off_umsetzen
sub UntoggleDirect($)
{
my ($obj) = shift;
Log 4, "UntoggleDirect($obj)";
if (Value($obj) eq "toggle"){
   if (OldValue($obj) eq "off") {
     {fhem ("setstate ".$obj." on")}
   }
   else {
     {fhem ("setstate ".$obj." off")}
   }
}
else {
   {fhem "setstate ".$obj." ".Value($obj)}

}


Was mache ich falsch?


Gruß Florian