Moin!
Ich sitze jetzt seit mehreren Stunden vor meinem Problem. Ich konnte es jetzt eingrenzen auf das Attribut "eventmap".
Folgende Situation:
KNX Dimmer von MDT.
6 Gruppenadressen:
1. EinAus Schalten dpt1
2. EinAus Status dpt1
3. Dimmen dpt5.001
4. Dimmen Status dpt5.001
5. Tuneable White dpt7.600
6. Tuneable White Status dpt7.600
Das Device ist angelegt:
defmod Dimmer KNX 0/0/3:dpt1:EinAus:set:nosuffix \
0/0/4:dpt1:Status:listenonly:nosuffix \
0/0/5:dpt5.001:Dimmen:set:nosuffix \
0/0/6:dpt5.001:DimmStatus:listenonly:nosuffix\
0/0/7:dpt7.600:TW:set:nosuffix\
0/0/8:dpt7.600:TWStatus:listenonly:nosuffix
attr Dimmer devStateIcon devStateIcon off:li_wht_off:on on:li_wht_on:off 0.*:li_wht_off:on \d+.*:li_wht_on:off
attr Dimmer eventMap {\
usr=>{\
'^dimup' => '" . sprintf("Dimmen %d",minNum(100, ReadingsNum($NAME,"Dimmen",0) + 10)) . "', \
'^dimdown' => '" . sprintf("Dimmen %d",maxNum(0, ReadingsNum($NAME,"Dimmen",0) - 10)) . "',\
'^twup' => '" . sprintf("TW %d", minNum(10000,ReadingsNum($NAME,"TW", 0) + 100)) . "', \
'^twdown' => '" . sprintf("TW %d", maxNum(0, ReadingsNum($NAME,"TW", 0) - 100)) . "'\
}, \
fw=>{\
'^dimup'=> 'dimup', '^dimdown'=> 'dimdown','^twup'=> 'TWup', '^twdown'=> 'TWdown'\
}\
}
attr Dimmer stateCmd { \
if ($gadName eq 'DimmStatus') \
{ \
fhem ("sleep 0.05 quiet;;setreading $name Dimmen $state;;");; \
}\
elsif ($gadName eq 'TWStatus') \
{ \
fhem ("sleep 0.05 quiet;;setreading $name TW $state;;");; \
}\
elsif ($gadName eq 'EinAus') \
{\
my $val = ($state eq 'on')?'100':'0';;\
fhem ("sleep 0.05 quiet;;setreading $name Dimmen $val;;");;\
} \
return $state;;\
}
attr Dimmer webCmd :dimup:dimdown:TWup:TWdown:Dimmen
attr Dimmer widgetOverride Dimmen@set:slider,0,5,100 TW@set:slider,1000,100,10000
setstate Dimmer 2700 K
setstate Dimmer 2024-05-07 20:46:25 DimmStatus 100 %
setstate Dimmer 2024-05-07 20:46:25 Dimmen 100 %
setstate Dimmer 2024-05-07 20:08:39 EinAus on
setstate Dimmer 2024-05-07 20:23:51 IODev KNX.MDTRouter.IO
setstate Dimmer 2024-05-07 20:08:39 Status on
setstate Dimmer 2024-05-07 20:46:28 TW 2700 K
setstate Dimmer 2024-05-07 20:46:28 TWStatus 2700 K
setstate Dimmer 2024-05-07 20:46:28 last-sender 1.2.77
setstate Dimmer 2024-05-07 20:46:28 state 2700 K
Das ganze ist diesem Beispiel entnommen: https://wiki.fhem.de/wiki/KNX_Device_Definition_-_Beispiele#Dimmer
Und ich habe des ergänzt durch den Tuneable White Code. Die Steuerung der Farbtemperatur per Slider funktioniert wunderbar.
ABER:
Die beiden Schaltflächen TWup und TWdown geben folgende Fehlermeldung raus:
invalid cmd: "set Dimmer TWup EinAus off" - ignored
Was sich auch im LogFile wiederfindet:
2024.05.07 21:22:36 2: Dimmer [KNX_Set_dpt1 1043]: invalid cmd: "set Dimmer TWup EinAus off" issued - ignored
Meine Vermutung ist, dass die Funktion ReadingsNum nicht auf den Wert im Reading TW zugreift. Daher dann einen falschen Wert liefert. Ist diese Annahme richtig?
Kann mir hierfür jemand helfen?
Viele Grüße
Alex
Zitat von: erwin am 07 Mai 2024, 22:19:28TWup statt twup
Moin!
Danke für den Tipp! Der war goldrichtig.
Gruß
Alex