FHEM Forum

FHEM - Hausautomations-Systeme => ZWave => Thema gestartet von: tomspatz am 11 August 2016, 09:45:01

Titel: Fehler bei abarbeiten eines DOIF
Beitrag von: tomspatz am 11 August 2016, 09:45:01
Ich weis doif hat ein eigenen Teil, da ich es aber mit zwave einsetzte probiere ich es erst hier.
Das doif geht so:
define LichtKammerAutomatik DOIF ([TuerKammer] eq "offen") (set LichtBad_30.02 on) DOELSEIF ([TuerKammer] eq "geschlossen") (set LichtBad_30.02 off)

Wobei TuerKammer ein Fibaro FGK101 ist.
Internals:
   DEF        c9cc092a 32
   IMAGE      /fhem/deviceimages/zwave/8a77269b55c554d5a690c03b82b6bbdcda07c164.jpg
   IODev      ZWDongle_0
   LASTInputDev ZWDongle_0
   MSGCNT     213
   NAME       TuerKammer
   NR         297
   STATE      geschlossen
   TYPE       ZWave
   ZWDongle_0_MSGCNT 213
   ZWDongle_0_RAWMSG 0004002003200100
   ZWDongle_0_TIME 2016-08-11 09:37:43
   ZWaveSubDevice no
   homeId     c9cc092a
   isWakeUp   1
   lastMsgSent 1470900675.30409
   nodeIdHex  20
   Readings:
     2016-08-11 09:31:13   CMD             ZW_APPLICATION_UPDATE
     2016-08-11 09:11:43   UNPARSED        SENSOR_BINARY 03300102
     2016-08-11 09:37:43   basicSet        00
     2016-08-09 19:38:04   battery         97 %
     2016-08-09 19:35:39   model           FIBARO System FGK101 Door Opening Sensor
     2016-08-09 19:35:39   modelConfig     fibaro/fgk001.xml
     2016-08-09 19:35:39   modelId         010f-0700-1000
     2016-08-11 09:31:14   neighborList    ZWDongle_0 FunkDose1 LichtWohnzimmerSchrank1A LichtWohnzimmerSchrank2A FunkDose2 LichtBuero1A LichtKueche LichtFlurSpiegel DimmerWohnzimmer LichtFlur LichtBad
     2016-08-11 09:37:43   reportedState   closed
     2016-08-11 09:37:43   state           closed
     2016-08-11 09:31:15   timeToAck       0.029
     2016-08-11 09:31:15   transmit        OK
     2016-08-11 08:31:04   wakeup          notification
     2016-08-09 19:37:44   wakeupReport    interval 4000 target 1
Attributes:
   IODev      ZWDongle_0
   alias      Tür Kammer
   classes    SENSOR_BINARY SENSOR_ALARM ASSOCIATION MANUFACTURER_SPECIFIC CONFIGURATION VERSION BATTERY CRC_16_ENCAP WAKE_UP FIRMWARE_UPDATE_MD MARK SCENE_ACTIVATION BASIC
   devStateIcon offen:fts_door_right_open@red .*:fts_door_right
   eventMap   open:offen closed:geschlossen
   group      Fenster und Türen
   icon       fts_door_right
   neighborListPos 257.2181420672305,72.11792404213035
   room       Flur,System
   vclasses   ASSOCIATION:2 BATTERY:1 CONFIGURATION:1 CRC_16_ENCAP:1 FIRMWARE_UPDATE_MD:1 MANUFACTURER_SPECIFIC:1 SCENE_ACTIVATION:1 SENSOR_ALARM:1 SENSOR_BINARY:1 VERSION:1 WAKE_UP:1


und LichtBad_30.02 der zweite Teil eines Fibaro FGS222.
Internals:
   DEF        c9cc092a 7682
   IODev      ZWDongle_0
   LASTInputDev ZWDongle_0
   MSGCNT     21
   NAME       LichtBad_30.02
   NR         207
   STATE      aus
   TYPE       ZWave
   ZWDongle_0_MSGCNT 21
   ZWDongle_0_RAWMSG 0004001e07600d0202250300
   ZWDongle_0_TIME 2016-08-11 09:15:47
   ZWaveSubDevice yes
   homeId     c9cc092a
   isWakeUp
   nodeIdHex  1e02
   Readings:
     2016-08-11 09:15:47   reportedState   off
     2016-08-11 09:37:43   state           off
Attributes:
   IODev      ZWDongle_0
   alias      Licht Kammer
   classes    SWITCH_BINARY
   devStateIcon .*an:on-for-timer
   eventMap   on:an off:aus
   group      Licht
   icon       light_ceiling
   room       Flur,System,ZWave
   webCmd     :


hier der "Master" davon.
Internals:
   DEF        c9cc092a 30
   IMAGE      /fhem/deviceimages/zwave/271.514.4098_fgs222.double.relay.switch.jpg
   IODev      ZWDongle_0
   LASTInputDev ZWDongle_0
   MSGCNT     11
   NAME       LichtBad
   NR         203
   STATE      aus
   TYPE       ZWave
   ZWDongle_0_MSGCNT 11
   ZWDongle_0_RAWMSG 0004001e03250300
   ZWDongle_0_TIME 2016-08-11 09:24:47
   ZWaveSubDevice no
   homeId     c9cc092a
   isWakeUp
   lastMsgSent 1470901063.35206
   nodeIdHex  1e
   Readings:
     2016-03-20 19:34:17   assocGroup_1    Max 5 Nodes ZWDongle_0
     2016-03-20 19:34:17   assocGroup_2    Max 5 Nodes
     2016-03-20 19:34:23   assocGroup_3    Max 1 Nodes ZWDongle_0
     2016-03-20 19:34:17   assocGroups     3
     2016-03-20 18:15:05   basicSet        00
     2016-03-28 16:44:19   configALARMFLASHINGAlarmTime 600
     2016-03-28 16:44:19   configAutoOffForRelay1 0
     2016-03-28 16:44:19   configAutoOffForRelay2 0
     2016-03-28 16:44:19   configAutoOffRelayAfterSpecifiedTime ManualOverrideDisabled
     2016-03-28 16:44:19   configControlKey2Behaviour DeviceStatusIsNotChecked
     2016-03-28 16:44:19   configDimmerRollerShutterControl DisableDimmerRollerShutter0
     2016-03-28 16:44:19   configEnableDisableALLONOFF ALLONActiveALLOFFActive
     2016-03-28 16:44:19   configInputsBehaviour Toggle
     2016-03-28 16:44:19   configInputsButtonSwitchConfiguration MonoStableInputButton
     2016-03-28 16:44:19   configRelay1ResponseToGeneralAlarm ALARMFLASHINGRelayWillTurnONAndO3
     2016-03-28 16:44:19   configRelay1ResponseToSmokeCOCO2Alarm ALARMFLASHINGRelayWillTurnONAndO3
     2016-03-28 16:44:19   configRelay1ResponseToTemperatureAlarm ALARMRELAYONRelayWillTurnONUpon1
     2016-03-28 16:44:19   configRelay1ResponseToWaterFloodAlarm ALARMRELAYOFFRelayWillTurnOFF2
     2016-03-28 16:44:19   configRelay2ResponseToGeneralAlarm ALARMFLASHINGRelayWillTurnONAndO3
     2016-03-28 16:44:19   configRelay2ResponseToSmokeCOCO2Alarm ALARMFLASHINGRelayWillTurnONAndO3
     2016-03-28 16:44:19   configRelay2ResponseToTemperatureAlarm ALARMRELAYONRelayWillTurnONUpon1
     2016-03-28 16:44:19   configRelay2ResponseToWaterFloodAlarm ALARMRELAYOFFRelayWillTurnOFF2
     2016-03-28 16:44:19   configSavingStateBeforePowerFaillure StateSavedAtPowerFailureAll1
     2016-03-28 16:44:19   configSeparationOfAssociationSending6 MapStatusToAllDevicesInGroup10
     2016-03-20 18:08:07   mcCapability_01 SWITCH_BINARY
     2016-03-20 18:12:16   mcCapability_02 SWITCH_BINARY
     2016-03-20 18:08:07   mcEndpoints     total 2, identical
     2016-03-20 18:08:07   model           FIBARO System FGS222 Double Relay Switch 2x1.5kW
     2016-03-20 18:08:07   modelConfig     fibaro/fgs222.xml
     2016-03-20 18:08:07   modelId         010f-0202-1002
     2016-03-28 16:06:25   neighborList    ZWDongle_0 FunkDose1 HeizungSchlafzimmer HeizungWohnzimmer LichtWohnzimmerSchrank1A LichtWohnzimmerSchrank2A HeizungBad HeizungKueche FunkDose2 LichtBuero1A LichtKueche LichtFlurSpiegel LichtWohnzimmer LichtFlur
     2016-08-11 09:24:47   reportedState   off
     2016-08-11 09:24:47   state           off
     2016-08-11 09:37:44   timeToAck       1.059
     2016-08-11 09:37:44   transmit        OK
Attributes:
   IODev      ZWDongle_0
   alias      Licht Bad
   classes    MANUFACTURER_SPECIFIC VERSION CONFIGURATION ASSOCIATION MULTI_CHANNEL_ASSOCIATION MULTI_CHANNEL SWITCH_BINARY SWITCH_ALL FIRMWARE_UPDATE_MD POWERLEVEL MARK SWITCH_BINARY MULTI_CHANNEL
   eventMap   on:an off:aus
   group      Licht
   icon       light_ceiling
   neighborListPos 131.39791710649686,545.6925446450147
   room       Bad,System,ZWave
   webCmd     :


Wenn ich den Lichtschalter betätige, geht logischerweise das Licht an. Kein Eintrag im Log.
Schalte ich das selbe Licht per fhem web.
2016.08.11 09:56:46 3: ZWave set LichtBad_30.02 on
bzw.
2016.08.11 09:57:24 3: ZWave set LichtBad_30.02 off

Das soweit OK, wenn allerdings das ganze per DOIF ausgelöst wird.... was auch einwandfrei funktioniert. Passiert das:
2016.08.11 09:58:41 3: ZWave set LichtBad_30.02 on
2016.08.11 09:58:41 2: ZWDongle_ProcessSendStack: no ACK, resending message 010e00131e07600d01022501FF257e15


bzw. beim schliessen:
2016.08.11 09:59:23 3: ZWave set LichtBad_30.02 off
2016.08.11 09:59:24 2: ZWDongle_ProcessSendStack: no ACK, resending message 010e00131e07600d0102250100258014


Der Fibaro FGK101 sollte eigentlich OK sein den der Status, Batterie etc. wird alles übertragen ohne das ich etwas fehlerhaftes finde.

Bitte nicht böse aufnehmen wenn das doch ins doif Forum gehört.
Titel: Antw:Fehler bei abarbeiten eines DOIF
Beitrag von: jeep am 11 August 2016, 10:42:21
Zitat von: tomspatz am 11 August 2016, 09:45:01
Ich weis doif hat ein eigenen Teil, da ich es aber mit zwave einsetzte probiere ich es erst hier.
Das doif geht so:
define LichtKammerAutomatik DOIF ([TuerKammer] eq "offen") (set LichtBad_30.02 on) DOELSEIF ([TuerKammer] eq "geschlossen") (set LichtBad_30.02 off)
Verstehe das Problem nicht ganz aber warum nicht so:

define LichtKammerAutomatik DOIF ([TuerKammer:state] eq "offen") (set LichtBad_30.02 on) DOELSEIF (set LichtBad_30.02 off)

Grüße, Josef
Titel: Antw:Fehler bei abarbeiten eines DOIF
Beitrag von: tomspatz am 11 August 2016, 13:32:09
Hallo Josef
weil
define LichtKammerAutomatik DOIF ([TuerKammer:state] eq "offen") (set LichtBad_30.02 on) DOELSEIF (set LichtBad_30.02 off)

beim Speicher bringt:
LichtKammerAutomatik DOIF: no trigger in condition: set LichtBad_30.02 off

und so wie ich es definiert habe steht es auch in der Commandref.

Bringt uns aber bei dem eigentlichen nicht weiter.

Danke trotzdem

Tom
Titel: Antw:Fehler bei abarbeiten eines DOIF
Beitrag von: jeep am 11 August 2016, 15:07:25
Hi Michael,

schau mal im EventMonitor, dort müsstest Du sehen was der  FGK101 triggert. Ich benutze das gleiche DOIF mit einem  FGK101 und einem Wallplug. Keine Probleme damit.

Grüße, Josef
Titel: Antw:Fehler bei abarbeiten eines DOIF
Beitrag von: Ellert am 11 August 2016, 15:30:38
Zitat von: tomspatz am 11 August 2016, 13:32:09
Hallo Josef
weil
define LichtKammerAutomatik DOIF ([TuerKammer:state] eq "offen") (set LichtBad_30.02 on) DOELSEIF (set LichtBad_30.02 off)

beim Speicher bringt:
LichtKammerAutomatik DOIF: no trigger in condition: set LichtBad_30.02 off

und so wie ich es definiert habe steht es auch in der Commandref.

Bringt uns aber bei dem eigentlichen nicht weiter.

Danke trotzdem

Tom

Verwende DOELSE, DOELSEIF erwartet eine Bedingung, DOELSE nicht.
Titel: Antw:Fehler bei abarbeiten eines DOIF
Beitrag von: jeep am 11 August 2016, 15:35:12
Zitat von: Ellert am 11 August 2016, 15:30:38
Verwende DOELSE, DOELSEIF erwartet eine Bedingung, DOELSE nicht.

Wie recht Du hast, habe ich leider übersehen.

Grüße, Josef
Titel: Antw:Fehler bei abarbeiten eines DOIF
Beitrag von: tomspatz am 11 August 2016, 16:44:30
DOELSE statt DOELSEIF ist in diesem Falle tatsächlich OK.

Doch ihr lieben  ;) mein eigentliches Problem
2016.08.11 16:40:29 3: ZWave set LichtBad_30.02 on
2016.08.11 16:40:30 2: ZWDongle_ProcessSendStack: no ACK, resending message 010e00131e07600d01022501FF257d16

bzw.
2016.08.11 16:40:44 3: ZWave set LichtBad_30.02 off
2016.08.11 16:40:45 2: ZWDongle_ProcessSendStack: no ACK, resending message 010e00131e07600d0102250100257eea


ist allerdings damit nicht behoben und hängt auch me nach nicht an dem DOIF.
Titel: Antw:Fehler bei abarbeiten eines DOIF
Beitrag von: Ellert am 11 August 2016, 17:20:56
Ich kenne ZWave nicht, aber der Titel Deines Beitrags scheint das Problem nicht zu treffen, daher bekommst Du Ratschläge zu DOIF.
Titel: Antw:Fehler bei abarbeiten eines DOIF
Beitrag von: krikan am 11 August 2016, 17:30:33
Zitat von: tomspatz am 11 August 2016, 16:44:30
ist allerdings damit nicht behoben und hängt auch me nach nicht an dem DOIF.

Dann zeige bitte mal ein Log der Schaltvorgänge mit verbose 5 bei ZWDongle. Einmal normal geschaltet und einmal mit DOIF. Vielleicht kommen dann Ideen zu ZWave..
So sieht es bei ZWave nach einer Wiederholung aus, die aber immer zum Erfolg führt. Also nicht tragisch, aber wenn es reproduzierbar ist, trotzdem komisch und interessant.  :)
Titel: Antw:Fehler bei abarbeiten eines DOIF
Beitrag von: gamauf am 11 August 2016, 19:08:43
probiers mit:
define LichtKammerAutomatik DOIF ([TuerKammer:state] eq "offen") (sleep 0.15; set LichtBad_30.02 on) DOELSE (sleep 0.15; set LichtBad_30.02 off)
ich glaub, daß die Kommunikation mit dem Türkontakt noch nicht abgeschlossen ist wenn der Controller schon den "on" Befehl ans Licht schickt -> die auslösende und die ausgelöste Funkkommunikation behindern sich!
Titel: Antw:Fehler bei abarbeiten eines DOIF
Beitrag von: Ellert am 11 August 2016, 19:15:22
Zitat von: gamauf am 11 August 2016, 19:08:43
probiers mit:
define LichtKammerAutomatik DOIF ([TuerKammer:state] eq "offen") (sleep 0.15; set LichtBad_30.02 on) DOELSE (sleep 0.15; set LichtBad_30.02 off)
ich glaub, daß die Kommunikation mit dem Türkontakt noch nicht abgeschlossen ist wenn der Controller schon den "on" Befehl ans Licht schickt -> die auslösende und die ausgelöste Funkkommunikation behindern sich!

Nebenbei, statt "sleep" sollte im DOIF "wait" verwendet werden, also so:
define LichtKammerAutomatik DOIF ([TuerKammer:state] eq "offen") (set LichtBad_30.02 on) DOELSE (set LichtBad_30.02 off)
attr  LichtKammerAutomatik wait .15:.15
siehe http://fhem.de/commandref_DE.html#DOIF_wait
Titel: Antw:Fehler bei abarbeiten eines DOIF
Beitrag von: gamauf am 11 August 2016, 19:20:41
Zitat von: Ellert am 11 August 2016, 19:15:22
Nebenbei, statt "sleep" sollte im DOIF "wait" verwendet werden...
...ist natürlich viel eleganter und leichter lesbar! Danke!
Titel: Antw:Fehler bei abarbeiten eines DOIF
Beitrag von: Thyraz am 11 August 2016, 19:44:27
Hab das auch ab und zu bei DOIFs die auf die Multisensoren von Fibaro reagieren (Bewegung).
Die Sensoren schicken manchmal auch noch Temperatur oder Helligkeit mit.

Die weiteren Nachrichten kommen dann wohl teils zeitgleich mit der Ausführung des DOIFs und es kommt zu dem beobachteten ZWAVE-"Schluckauf".
Ist an sich nicht weiter schlimm, da ZWAVE ja Nachrichten ohne ACK wiederholt.

Wenn die Nachrichten im Log stören (oder die Verzögerung durch das Wiederholen spürbar ist), hilft wie erwähnt eine kurze Verzögerung über das wait Attribut.
Titel: Antw:Fehler bei abarbeiten eines DOIF
Beitrag von: krikan am 12 August 2016, 07:48:39
Zur Funklastreduzierung und damit auch zur Reduzierung der Gefahr von Telegrammkollisionen würde ich vor wait/sleep-Konstrukten erst einmal beim FGK den Controller aus der Assogroup 1 herausnehmen. Controller in Assogroup 3 sollte doch reichen oder wofür werden die zusätzlichen Befehle aus CC Basic an Controller in Assogroup 1 gebraucht?
Titel: Antw:Fehler bei abarbeiten eines DOIF
Beitrag von: tomspatz am 16 August 2016, 20:42:38
OK ich komme im Moment nicht viel dazu, aber hier schon mal etwas Futter.
Das mit dem wait attr habe ich noch nicht probiert.

Hier der Log vom ZWDongle_0 mit Verbose 5 ausgelöst durch das DOIF:
2016.08.16 20:34:39 4: ZWDongle_Read ZWDongle_0: rcvd 00040020033003ff (request APPLICATION_COMMAND_HANDLER), sending ACK
2016.08.16 20:34:39 5: SW: 06
2016.08.16 20:34:39 5: ZWDongle_0 dispatch 00040020033003ff
2016.08.16 20:34:39 4: CMD:APPLICATION_COMMAND_HANDLER ID:20 ARG:033003ff CB:00
2016.08.16 20:34:39 3: ZWave set LichtBad_30.02 on
2016.08.16 20:34:39 5: ZWDongle_Write 00131e07600d01022501FF25e9 (c9cc092a)
2016.08.16 20:34:39 5: SW: 010e00131e07600d01022501FF25e982
2016.08.16 20:34:39 4: ZWDongle_Read ZWDongle_0: rcvd 00040020032001ff (request APPLICATION_COMMAND_HANDLER), sending ACK
2016.08.16 20:34:39 5: SW: 06
2016.08.16 20:34:39 5: ZWDongle_0 dispatch 00040020032001ff
2016.08.16 20:34:39 4: CMD:APPLICATION_COMMAND_HANDLER ID:20 ARG:032001ff CB:00
2016.08.16 20:34:39 4: ZWDongle_Read ZWDongle_0: CAN received
2016.08.16 20:34:40 2: ZWDongle_ProcessSendStack: no ACK, resending message 010e00131e07600d01022501FF25e982
2016.08.16 20:34:40 5: SW: 010e00131e07600d01022501FF25e982
2016.08.16 20:34:40 5: ACK received, WaitForAck=>2 for 010e00131e07600d01022501FF25e982
2016.08.16 20:34:40 4: ZWDongle_Read ZWDongle_0: rcvd 011301 (answer ZW_SEND_DATA), sending ACK
2016.08.16 20:34:40 5: SW: 06
2016.08.16 20:34:40 5: ZWDongle_0 dispatch 011301
2016.08.16 20:34:40 4: ZWDongle_Read ZWDongle_0: rcvd 0013e9000003 (request ZW_SEND_DATA), sending ACK
2016.08.16 20:34:40 5: SW: 06
2016.08.16 20:34:40 5: device ack reveived, removing 010e00131e07600d01022501FF25e982 from dongle sendstack
2016.08.16 20:34:40 5: ZWDongle_0 dispatch 0013e9000003
2016.08.16 20:34:40 4: CMD:ZW_SEND_DATA ID:00 ARG:0003 CB:e9
2016.08.16 20:34:40 4: ZWDongle_0 transmit OK for CB e9, target LichtBad
2016.08.16 20:34:42 4: ZWDongle_Read ZWDongle_0: rcvd 0004002003300300 (request APPLICATION_COMMAND_HANDLER), sending ACK
2016.08.16 20:34:42 5: SW: 06
2016.08.16 20:34:42 5: ZWDongle_0 dispatch 0004002003300300
2016.08.16 20:34:42 4: CMD:APPLICATION_COMMAND_HANDLER ID:20 ARG:03300300 CB:00
2016.08.16 20:34:42 3: ZWave set LichtBad_30.02 off
2016.08.16 20:34:42 5: ZWDongle_Write 00131e07600d010225010025ea (c9cc092a)
2016.08.16 20:34:42 5: SW: 010e00131e07600d010225010025ea7e
2016.08.16 20:34:42 4: ZWDongle_Read ZWDongle_0: rcvd 0004002003200100 (request APPLICATION_COMMAND_HANDLER), sending ACK
2016.08.16 20:34:42 5: SW: 06
2016.08.16 20:34:42 5: ZWDongle_0 dispatch 0004002003200100
2016.08.16 20:34:42 4: CMD:APPLICATION_COMMAND_HANDLER ID:20 ARG:03200100 CB:00
2016.08.16 20:34:42 4: ZWDongle_Read ZWDongle_0: CAN received
2016.08.16 20:34:43 2: ZWDongle_ProcessSendStack: no ACK, resending message 010e00131e07600d010225010025ea7e
2016.08.16 20:34:43 5: SW: 010e00131e07600d010225010025ea7e
2016.08.16 20:34:43 5: ACK received, WaitForAck=>2 for 010e00131e07600d010225010025ea7e
2016.08.16 20:34:43 4: ZWDongle_Read ZWDongle_0: rcvd 011301 (answer ZW_SEND_DATA), sending ACK
2016.08.16 20:34:43 5: SW: 06
2016.08.16 20:34:43 5: ZWDongle_0 dispatch 011301
2016.08.16 20:34:43 4: ZWDongle_Read ZWDongle_0: rcvd 0013ea000002 (request ZW_SEND_DATA), sending ACK
2016.08.16 20:34:43 5: SW: 06
2016.08.16 20:34:43 5: device ack reveived, removing 010e00131e07600d010225010025ea7e from dongle sendstack
2016.08.16 20:34:43 5: ZWDongle_0 dispatch 0013ea000002
2016.08.16 20:34:43 4: CMD:ZW_SEND_DATA ID:00 ARG:0002 CB:ea
2016.08.16 20:34:43 4: ZWDongle_0 transmit OK for CB ea, target LichtBad
2016.08.16 20:34:45 4: ZWDongle_Read ZWDongle_0: rcvd 000400180c600d02023105014400000953 (request APPLICATION_COMMAND_HANDLER), sending ACK
2016.08.16 20:34:45 5: SW: 06
2016.08.16 20:34:45 5: ZWDongle_0 dispatch 000400180c600d02023105014400000953
2016.08.16 20:34:45 4: CMD:APPLICATION_COMMAND_HANDLER ID:18 ARG:0c600d02023105014400000953 CB:00


So und hier  der Log vom ZWDongle_0 mit Verbose 5 ausgelöst durch fhem web:
2016.08.16 20:40:18 3: ZWave set LichtBad_30.02 on
2016.08.16 20:40:18 5: ZWDongle_Write 00131e07600d01022501FF25f6 (c9cc092a)
2016.08.16 20:40:18 5: SW: 010e00131e07600d01022501FF25f69d
2016.08.16 20:40:18 5: ACK received, WaitForAck=>2 for 010e00131e07600d01022501FF25f69d
2016.08.16 20:40:18 4: ZWDongle_Read ZWDongle_0: rcvd 011301 (answer ZW_SEND_DATA), sending ACK
2016.08.16 20:40:18 5: SW: 06
2016.08.16 20:40:18 5: ZWDongle_0 dispatch 011301
2016.08.16 20:40:18 4: ZWDongle_Read ZWDongle_0: rcvd 0013f6000003 (request ZW_SEND_DATA), sending ACK
2016.08.16 20:40:18 5: SW: 06
2016.08.16 20:40:18 5: device ack reveived, removing 010e00131e07600d01022501FF25f69d from dongle sendstack
2016.08.16 20:40:18 5: ZWDongle_0 dispatch 0013f6000003
2016.08.16 20:40:18 4: CMD:ZW_SEND_DATA ID:00 ARG:0003 CB:f6
2016.08.16 20:40:18 4: ZWDongle_0 transmit OK for CB f6, target LichtBad
2016.08.16 20:40:22 3: ZWave set LichtBad_30.02 off
2016.08.16 20:40:22 5: ZWDongle_Write 00131e07600d010225010025f7 (c9cc092a)
2016.08.16 20:40:22 5: SW: 010e00131e07600d010225010025f763
2016.08.16 20:40:22 5: ACK received, WaitForAck=>2 for 010e00131e07600d010225010025f763
2016.08.16 20:40:22 4: ZWDongle_Read ZWDongle_0: rcvd 011301 (answer ZW_SEND_DATA), sending ACK
2016.08.16 20:40:22 5: SW: 06
2016.08.16 20:40:22 5: ZWDongle_0 dispatch 011301
2016.08.16 20:40:22 4: ZWDongle_Read ZWDongle_0: rcvd 0013f7000002 (request ZW_SEND_DATA), sending ACK
2016.08.16 20:40:22 5: SW: 06
2016.08.16 20:40:22 5: device ack reveived, removing 010e00131e07600d010225010025f763 from dongle sendstack
2016.08.16 20:40:22 5: ZWDongle_0 dispatch 0013f7000002
2016.08.16 20:40:22 4: CMD:ZW_SEND_DATA ID:00 ARG:0002 CB:f7
2016.08.16 20:40:22 4: ZWDongle_0 transmit OK for CB f7, target LichtBad
2016.08.16 20:40:34 4: ZWDongle_Read ZWDongle_0: rcvd 0004001a0c600d02023105014400000915 (request APPLICATION_COMMAND_HANDLER), sending ACK
2016.08.16 20:40:34 5: SW: 06
2016.08.16 20:40:34 5: ZWDongle_0 dispatch 0004001a0c600d02023105014400000915
2016.08.16 20:40:34 4: CMD:APPLICATION_COMMAND_HANDLER ID:1a ARG:0c600d02023105014400000915 CB:00
Titel: Antw:Fehler bei abarbeiten eines DOIF
Beitrag von: krikan am 17 August 2016, 09:33:59
Anmerkungen zum Log mit DOIF:
2016.08.16 20:34:39 4: ZWDongle_Read ZWDongle_0: rcvd 00040020033003ff (request APPLICATION_COMMAND_HANDLER), sending ACK
FHEM erhält Telegramm vom Dongle und verarbeitet Info vom Sensor per CC SENSOR_BINARY, dass das Fenster geöffnet wurde (->Assogroup 3). Das löst das DOIF aus.
2016.08.16 20:34:39 5: SW: 010e00131e07600d01022501FF25e982
Das DOIF setzt den Einschaltbefehl für das Licht ab und FHEM schickt den Befehl an das Dongle
2016.08.16 20:34:39 4: ZWDongle_Read ZWDongle_0: rcvd 00040020032001ff (request APPLICATION_COMMAND_HANDLER), sending ACK
FHEM erhält Telegramm vom Dongle und verarbeitet Info vom Sensor per CC BASIC, dass das Fenster geöffnet wurde (->Assogroup 1).
2016.08.16 20:34:39 4: ZWDongle_Read ZWDongle_0: CAN received
Dongle informiert FHEM, dass der letzte an das Dongle geschickte Befehl (Einschaltbefehl Licht) nicht verarbeitet werden konnte, weil das Dongle mit einer anderen Nachricht (Empfang Telegramm CC BASIC) beschäftigt war. Das ist gleichzeitig Hinweis für FHEM den Befehl noch einmal zu schicken.
2016.08.16 20:34:40 2: ZWDongle_ProcessSendStack: no ACK, resending message 010e00131e07600d01022501FF25e982
FHEM loggt das normale Ereignis von Kollisionen durch CAN
2016.08.16 20:34:40 5: SW: 010e00131e07600d01022501FF25e982
FHEM schickt den Befehl noch mal und er wird korrekt verarbeitet.

Grundsätzlich passiert hier nichts ungewöhnliches oder falsches. Die Kollision (CAN) ist aber vermutlich vermeidbar, indem man die doppelte Benachrichtigung an FHEM über die FGK-Zustandsänderung beseitigt. Für die gibt es mMn keinen Grund.

Also Abhilfe:
ZWDongle_0 aus der Assoziationsgruppe 1 des Sensors entfernen (-> associationDel) und testen.
Wenn das wirklich nicht reichen sollte, dann erst mit wait/sleep-Konstrukten arbeiten.
Titel: Antw:Fehler bei abarbeiten eines DOIF
Beitrag von: tomspatz am 17 August 2016, 17:08:41
Hallo Christian

dank für die ausführliche Erklärung. Nun beide Wege führen zum Ziel.
Ich habe es mit
attr  LichtKammerAutomatik wait .15:.15
funktioniert einwandfrei.
Jetzt soeben das attr gelöscht und ZWDongle_0 aus der Assoziationsgruppe 1 des Sensors entfernt, das funktioniert auch.
Vielen dank.

btw.
habe ich mir Gedanken gemacht ob man die Funklast nicht reduzieren könnte, sollte.
Es ist zwar NUR ein Befehl der vermutlich nicht zigfach pro Sekunde ausgelöst wird, aber dennoch.
Könnte mann oder sollte man ggf. bevor das Licht eingeschaltet wird prüfen ob es nicht schon an ist.
Im Umkehrschluss warum ein Befehl zum ausschalten schicken wenn es gar nich leuchtet.

Ist da was dran?
Titel: Antw:Fehler bei abarbeiten eines DOIF
Beitrag von: krikan am 17 August 2016, 19:09:15
Zitat von: tomspatz am 17 August 2016, 17:08:41
Nun beide Wege führen zum Ziel.
Klar funktioniert auch die Verzögerung zur Vermeidung eines Logeintrages, aber die eigentliche Ursache bleibt mMn eine überflüssige Assoziierung des Controllers mit Group 1 des Sensors.  :)

Zitathabe ich mir Gedanken gemacht ob man die Funklast nicht reduzieren könnte, sollte.
Es ist zwar NUR ein Befehl der vermutlich nicht zigfach pro Sekunde ausgelöst wird, aber dennoch.
Könnte mann oder sollte man ggf. bevor das Licht eingeschaltet wird prüfen ob es nicht schon an ist.
Im Umkehrschluss warum ein Befehl zum ausschalten schicken wenn es gar nich leuchtet.

Ist da was dran?
Persönlich sehe ich das so. Unnötige Funknachrichten bringen manchmal -wie bei Deinem Ausgangsthema- unnötige Probleme.
Beim notify kann man für diesen Zweck alternativ zu if-Konstrukten im set-Befehl devspec verwenden, um den Schaltvorgang nur auszulösen, wenn der Schaltzustand noch nicht vorliegt.