Hallo zusammen,
ich habe nun schon recht viel rumprobiert und auch hier gesucht. Doch leider komme ich zu keinem vernünftigen Ergebnis.
Ich habe eine Fibaro KeyFob und möchte damit mehrere Sachen schalten. Das Ziel ist es mit Taster "1" "Stehlampe" ein- UND auszuschalten.
Ich bekomme es einfach nicht hin das Taster "1" als Taster funktioniert. Bei meinem aktuellen Stand kann ich zwar mit Taste "1" die "Stehlampe" einschalten jedoch nicht ausschalten. Ausschalten klappt aber mit Taste 2-6.... was ich auch nicht verstehe ;-)
Hier mal ein List jeweils vom DOIF und dem Device:
DOIF:
CFGFN
DEF ([KeyFob:cSceneSet] eq "1") (set Stehlampe:FILTER=STATE!=on on) DOELSE (set Stehlampe:FILTER=STATE!=off off) DOELSE
MODEL FHEM
NAME Keyfob
NR 286081
NTFY_ORDER 50-Keyfob
STATE cmd_1
TYPE DOIF
READINGS:
2018-05-25 19:52:27 Device KeyFob
2018-05-25 19:52:27 cmd 1
2018-05-25 19:52:27 cmd_event KeyFob
2018-05-25 19:52:27 cmd_nr 1
2018-05-25 19:52:27 e_KeyFob_cSceneSet 1
2018-05-25 19:51:34 mode enabled
2018-05-25 19:52:27 state cmd_1
Regex:
condition:
0 ReadingValDoIf($hash,'KeyFob','cSceneSet') eq "1"
devices:
0 KeyFob
all KeyFob
do:
0:
0 set Stehlampe:FILTER=STATE!=on on
1:
0 set Stehlampe:FILTER=STATE!=off off
helper:
DOIF_Readings_events
DOIF_eventas
event cSceneSet: 1
globalinit 1
last_timer 0
sleeptimer -1
timerdev KeyFob
timerevent cSceneSet: 1
triggerDev KeyFob
timerevents:
cSceneSet: 1
timereventsState:
cSceneSet: 1
triggerEvents:
cSceneSet: 1
triggerEventsState:
cSceneSet: 1
internals:
itimer:
readings:
0 KeyFob:cSceneSet
all KeyFob:cSceneSet
trigger:
uiState:
uiTable:
Attributes:
do always
event-on-update-reading cmd
room Aktionen
Device:
CFGFN
DEF df3b91e6 44
IODev ZWave_Modul
LASTInputDev ZWave_Modul
MSGCNT 414
NAME KeyFob
NR 162457
STATE wakeupInterval 86400 1
TYPE ZWave
ZWaveSubDevice no
ZWave_Modul_MSGCNT 414
ZWave_Modul_RAWMSG 0004002c055b038f8001
ZWave_Modul_TIME 2018-05-25 19:52:27
cmdsPending 0
homeId df3b91e6
isWakeUp 1
lastMsgSent 1526311744.79428
nodeIdHex 2c
READINGS:
2018-05-24 21:45:50 battery 80 %
2018-05-25 19:52:27 cSceneSet 1
2018-05-14 17:29:04 model FIBARO System FGKF601 Keyfob
2018-05-14 17:29:04 modelConfig fibaro/fgkf601.xml
2018-05-14 17:29:04 modelId 010f-1001-1000
2018-05-14 17:29:02 state wakeupInterval 86400 1
2018-05-14 17:29:04 timeToAck 0.025
2018-05-14 17:29:04 transmit OK
Attributes:
IODev ZWave_Modul
classes ZWAVEPLUS_INFO ASSOCIATION ASSOCIATION_GRP_INFO BATTERY CENTRAL_SCENE CONFIGURATION CRC_16_ENCAP DEVICE_RESET_LOCALLY FIRMWARE_UPDATE_MD MANUFACTURER_SPECIFIC MULTI_CHANNEL_ASSOCIATION POWERLEVEL SECURITY VERSION WAKE_UP PROTECTION APPLICATION_STATUS
event-on-update-reading cSceneSet
icon it_remote
room Aktionen
vclasses APPLICATION_STATUS:1 ASSOCIATION:2 ASSOCIATION_GRP_INFO:1 BATTERY:1 CENTRAL_SCENE:3 CONFIGURATION:1 CRC_16_ENCAP:1 DEVICE_RESET_LOCALLY:1 FIRMWARE_UPDATE_MD:3 MANUFACTURER_SPECIFIC:2 MULTI_CHANNEL_ASSOCIATION:3 POWERLEVEL:1 PROTECTION:2 SECURITY:1 VERSION:2 WAKE_UP:2 ZWAVEPLUS_INFO:2
Ich habe event-on-update-reading im Device und do always im DOIF.
Nach meinem Verständnis sollte das so funktionieren. Aber scheinbar stehe ich auf dem Schlauch.
Könnte mich eventuell jemand auf den richtigen Weg bringen?
Also Ziel ist es bei drücken von Taste 1 geht Licht an - bei erneutem drücken geht es wieder aus.
Vielen Dank schon mal
toggle
Du verwendest zwei DOELSE Zweige, aus welchem Grund?
Zitat von: Ellert am 27 Mai 2018, 18:31:08
Du verwendest zwei DOELSE Zweige, aus welchem Grund?
Nur um eine bessere Chance zu haben, dass es nicht funktioniert ;)
Zitat von: DerTobi am 25 Mai 2018, 20:10:55Ich bekomme es einfach nicht hin das Taster "1" als Taster funktioniert. Bei meinem aktuellen Stand kann ich zwar mit Taste "1" die "Stehlampe" einschalten jedoch nicht ausschalten. Ausschalten klappt aber mit Taste 2-6.... was ich auch nicht verstehe
Deine Def. sagt, wenn taste = 1 dann schalte ein, sonst schalte aus. Also genau das Verhalten, was du bekommen hast.
Der Filter dahinter schickt nur das Ein-Kommando nicht ab, wenn die Lampe schon an ist. Hat aber keinerlei Einfluss auf das DOIF.
Du wolltest aber: wenn Taste = 1 und Lampe aus, dann an. Sonst Lampe aus.
Dein
Filter muss also (wenn auch nicht als
Filter, sondern als Lampe = an) in die Bedingung mit rein.