Fibaro motion sensor FGMS001 Gen5 (Zwaveplus)

Yes, works since almost three years with all available zwave bindings.

Wake the device up (press the inside button three times quickly) and wait for completing initialization. Do that in close range to the controller.

Thank you for the tip, I woke up the device and corresponding to the initialization was completed

I am not able to paste or upload full log here, is there anything in the log that I can look for?

13:05:03.601 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 1D 00 49 84 02 17 04 07 01 5E 20 86 72 5A 59 85 73 84 80 71 56 70 31 8E 22 30 9C 98 7A C7 
13:05:03.602 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
13:05:03.602 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 1D 00 49 84 02 17 04 07 01 5E 20 86 72 5A 59 85 73 84 80 71 56 70 31 8E 22 30 9C 98 7A C7 
13:05:03.603 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 1D 00 49 84 02 17 04 07 01 5E 20 86 72 5A 59 85 73 84 80 71 56 70 31 8E 22 30 9C 98 7A C7 
13:05:03.603 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=ApplicationUpdate[0x49], type=Request[0x00], priority=High, dest=255, callback=0, payload=84 02 17 04 07 01 5E 20 86 72 5A 59 85 73 84 80 71 56 70 31 8E 22 30 9C 98 7A 
13:05:03.603 [DEBUG] [essage.ApplicationUpdateMessageClass] - NODE 2: Application update request. Node information received.
13:05:03.604 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 2: Starting initialisation from DONE
13:05:03.604 [DEBUG] [ve.internal.protocol.ZWaveController] - Event Listener org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer@269bc29c already registered
13:05:03.604 [DEBUG] [commandclass.ZWaveWakeUpCommandClass] - NODE 2: Is awake with 6 messages in the wake-up queue.
13:05:03.604 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveWakeUpEvent
13:05:03.605 [DEBUG] [ve.internal.protocol.ZWaveController] - Message queued. Queue length = 1. Queue={}
13:05:03.605 [DEBUG] [ocol.ZWaveController$ZWaveSendThread] - Took message from queue for sending. Queue length = 0
13:05:03.605 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Sent Message: class=SendData[0x13], type=Request[0x00], priority=Immediate, dest=2, callback=226, payload=02 02 84 08 
13:05:03.605 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 09 00 13 02 02 30 02 25 E9 1B 
13:05:03.606 [DEBUG] [ing.zwave.handler.ZWaveSerialHandler] - NODE 2: Sending REQUEST Message = 01 09 00 13 02 02 30 02 25 E9 1B 
13:05:03.606 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Recv Message: class=ApplicationUpdate[0x49], type=Request[0x00], priority=High, dest=255, callback=0, payload=84 02 17 04 07 01 5E 20 86 72 5A 59 85 73 84 80 71 56 70 31 8E 22 30 9C 98 7A 
13:05:03.606 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: class=ApplicationUpdate, callback id=226, expected=SendData, cancelled=false      MISMATCH
13:05:03.614 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 04 01 13 01 E8 
13:05:03.614 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
13:05:03.614 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 04 01 13 01 E8 
13:05:03.615 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 04 01 13 01 E8 
13:05:03.615 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=SendData[0x13], type=Response[0x01], priority=High, dest=255, callback=0, payload=01 
13:05:03.615 [DEBUG] [l.serialmessage.SendDataMessageClass] - NODE 2: Sent Data successfully placed on stack.
13:05:03.629 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 07 00 13 E9 00 00 02 00 
13:05:03.630 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
13:05:03.630 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 09 00 13 E9 00 00 02 00 00 0E 
13:05:03.631 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 09 00 13 E9 00 00 02 00 00 0E 
13:05:03.631 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=SendData[0x13], type=Request[0x00], priority=High, dest=255, callback=0, payload=E9 00 00 02 
13:05:03.631 [DEBUG] [l.serialmessage.SendDataMessageClass] - NODE 2: SendData Request. CallBack ID = 233, Status = Transmission complete and ACK received(0)
13:05:03.631 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 2: Starting initialisation from DONE
13:05:03.632 [DEBUG] [ve.internal.protocol.ZWaveController] - Event Listener org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer@269bc29c already registered
13:05:03.632 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Sent Message: class=SendData[0x13], type=Request[0x00], priority=Immediate, dest=2, callback=233, payload=02 02 30 02 
13:05:03.632 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Recv Message: class=SendData[0x13], type=Request[0x00], priority=High, dest=255, callback=0, payload=E9 00 00 02 
13:05:03.632 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: class=SendData, callback id=233, expected=ApplicationCommandHandler, cancelled=false      MISMATCH
13:05:03.641 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 09 00 04 00 02 03 30 03 FF 3F 
13:05:03.641 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
13:05:03.642 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 09 00 04 00 02 03 30 03 FF 3F 
13:05:03.642 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 09 00 04 00 02 03 30 03 FF 3F 
13:05:03.642 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 02 03 30 03 FF 
13:05:03.642 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 2: Application Command Request (ALIVE:DONE)
13:05:03.643 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 2: Starting initialisation from DONE
13:05:03.643 [DEBUG] [ve.internal.protocol.ZWaveController] - Event Listener org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer@269bc29c already registered
13:05:03.643 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 2: Incoming command class SENSOR_BINARY
13:05:03.643 [DEBUG] [dclass.ZWaveBinarySensorCommandClass] - NODE 2: Received SENSOR_BINARY command V1
13:05:03.643 [DEBUG] [dclass.ZWaveBinarySensorCommandClass] - NODE 2: Sensor Binary report, type=Unknown, value=255
13:05:03.644 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveBinarySensorValueEvent
13:05:03.644 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Sent Message: class=SendData[0x13], type=Request[0x00], priority=Immediate, dest=2, callback=233, payload=02 02 30 02 
13:05:03.644 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Recv Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 02 03 30 03 FF 
13:05:03.644 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: class=ApplicationCommandHandler, callback id=233, expected=ApplicationCommandHandler, cancelled=false        transaction complete!
13:05:03.645 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveTransactionCompletedEvent
13:05:03.645 [DEBUG] [ve.internal.protocol.ZWaveController] - Message queued. Queue length = 1. Queue={}
13:05:03.645 [DEBUG] [curityCommandClassWithInitialization] - NODE 2: updating lastSentMessageTimestamp
13:05:03.645 [DEBUG] [ocol.ZWaveController$ZWaveSendThread] - NODE 2: Response processed after 39ms/1664ms.
13:05:03.646 [DEBUG] [ocol.ZWaveController$ZWaveSendThread] - Took message from queue for sending. Queue length = 0
13:05:03.646 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 0B 00 13 02 04 31 04 01 00 25 EA 1A 
13:05:03.646 [DEBUG] [ing.zwave.handler.ZWaveSerialHandler] - NODE 2: Sending REQUEST Message = 01 0B 00 13 02 04 31 04 01 00 25 EA 1A 
13:05:03.654 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 04 01 13 01 E8 
13:05:03.654 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
13:05:03.655 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 04 01 13 01 E8 
13:05:03.655 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 04 01 13 01 E8 
13:05:03.656 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=SendData[0x13], type=Response[0x01], priority=High, dest=255, callback=0, payload=01 
13:05:03.656 [DEBUG] [l.serialmessage.SendDataMessageClass] - NODE 2: Sent Data successfully placed on stack.
13:05:03.670 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 07 00 13 EA 00 00 02 03 
13:05:03.671 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
13:05:03.671 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 09 00 13 EA 00 00 02 00 00 0D 
13:05:03.672 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 09 00 13 EA 00 00 02 00 00 0D 
13:05:03.672 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=SendData[0x13], type=Request[0x00], priority=High, dest=255, callback=0, payload=EA 00 00 02 
13:05:03.672 [DEBUG] [l.serialmessage.SendDataMessageClass] - NODE 2: SendData Request. CallBack ID = 234, Status = Transmission complete and ACK received(0)
13:05:03.672 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 2: Starting initialisation from DONE
13:05:03.673 [DEBUG] [ve.internal.protocol.ZWaveController] - Event Listener org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer@269bc29c already registered
13:05:03.673 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Sent Message: class=SendData[0x13], type=Request[0x00], priority=Immediate, dest=2, callback=234, payload=02 04 31 04 01 00 
13:05:03.673 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Recv Message: class=SendData[0x13], type=Request[0x00], priority=High, dest=255, callback=0, payload=EA 00 00 02 
13:05:03.674 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: class=SendData, callback id=234, expected=ApplicationCommandHandler, cancelled=false      MISMATCH
13:05:03.682 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 0C 00 04 00 02 06 31 05 01 22 00 E8 0C 
13:05:03.682 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
13:05:03.683 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 0C 00 04 00 02 06 31 05 01 22 00 E8 0C 
13:05:03.683 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 0C 00 04 00 02 06 31 05 01 22 00 E8 0C 
13:05:03.684 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 02 06 31 05 01 22 00 E8 
13:05:03.684 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 2: Application Command Request (ALIVE:DONE)
13:05:03.684 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 2: Starting initialisation from DONE
13:05:03.684 [DEBUG] [ve.internal.protocol.ZWaveController] - Event Listener org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer@269bc29c already registered
13:05:03.684 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 2: Incoming command class SENSOR_MULTILEVEL
13:05:03.685 [DEBUG] [ss.ZWaveMultiLevelSensorCommandClass] - NODE 2: Received COMMAND_CLASS_SENSOR_MULTILEVEL command V8
13:05:03.685 [DEBUG] [ss.ZWaveMultiLevelSensorCommandClass] - NODE 2: Sensor Multi Level REPORT received
13:05:03.685 [DEBUG] [ss.ZWaveMultiLevelSensorCommandClass] - NODE 2: Sensor Type = Temperature(1), Scale = 0
13:05:03.685 [DEBUG] [ss.ZWaveMultiLevelSensorCommandClass] - NODE 2: Sensor Value = 23.2
13:05:03.686 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveMultiLevelSensorValueEvent
13:05:03.686 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Sent Message: class=SendData[0x13], type=Request[0x00], priority=Immediate, dest=2, callback=234, payload=02 04 31 04 01 00 
13:05:03.686 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Recv Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 02 06 31 05 01 22 00 E8 
13:05:03.686 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: class=ApplicationCommandHandler, callback id=234, expected=ApplicationCommandHandler, cancelled=false        transaction complete!
13:05:03.687 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveTransactionCompletedEvent
13:05:03.687 [DEBUG] [ve.internal.protocol.ZWaveController] - Message queued. Queue length = 1. Queue={}
13:05:03.687 [DEBUG] [curityCommandClassWithInitialization] - NODE 2: updating lastSentMessageTimestamp
13:05:03.687 [DEBUG] [ocol.ZWaveController$ZWaveSendThread] - NODE 2: Response processed after 40ms/1664ms.
13:05:03.687 [DEBUG] [ocol.ZWaveController$ZWaveSendThread] - Took message from queue for sending. Queue length = 0
13:05:03.688 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 0B 00 13 02 04 31 04 19 00 25 EB 03 
13:05:03.688 [DEBUG] [ing.zwave.handler.ZWaveSerialHandler] - NODE 2: Sending REQUEST Message = 01 0B 00 13 02 04 31 04 19 00 25 EB 03 
13:05:03.696 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 04 01 13 01 E8 
13:05:03.696 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
13:05:03.697 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 04 01 13 01 E8 
13:05:03.697 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 04 01 13 01 E8 
13:05:03.697 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=SendData[0x13], type=Response[0x01], priority=High, dest=255, callback=0, payload=01 
13:05:03.698 [DEBUG] [l.serialmessage.SendDataMessageClass] - NODE 2: Sent Data successfully placed on stack.
13:05:03.712 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 07 00 13 EB 00 00 03 03 
13:05:03.713 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
13:05:03.713 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 09 00 13 EB 00 00 03 00 00 0D 
13:05:03.713 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 09 00 13 EB 00 00 03 00 00 0D 
13:05:03.714 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=SendData[0x13], type=Request[0x00], priority=High, dest=255, callback=0, payload=EB 00 00 03 
13:05:03.714 [DEBUG] [l.serialmessage.SendDataMessageClass] - NODE 2: SendData Request. CallBack ID = 235, Status = Transmission complete and ACK received(0)
13:05:03.714 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 2: Starting initialisation from DONE
13:05:03.715 [DEBUG] [ve.internal.protocol.ZWaveController] - Event Listener org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer@269bc29c already registered
13:05:03.715 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Sent Message: class=SendData[0x13], type=Request[0x00], priority=Immediate, dest=2, callback=235, payload=02 04 31 04 19 00 
13:05:03.715 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Recv Message: class=SendData[0x13], type=Request[0x00], priority=High, dest=255, callback=0, payload=EB 00 00 03 
13:05:03.715 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: class=SendData, callback id=235, expected=ApplicationCommandHandler, cancelled=false      MISMATCH

13:05:46.604 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 2: Starting initialisation from DONE
13:05:46.604 [DEBUG] [ve.internal.protocol.ZWaveController] - Event Listener org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer@269bc29c already registered
13:05:46.605 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 2: Incoming command class SENSOR_MULTILEVEL
13:05:46.605 [DEBUG] [ss.ZWaveMultiLevelSensorCommandClass] - NODE 2: Received COMMAND_CLASS_SENSOR_MULTILEVEL command V8
13:05:46.605 [DEBUG] [ss.ZWaveMultiLevelSensorCommandClass] - NODE 2: Sensor Multi Level REPORT received
13:05:46.606 [DEBUG] [ss.ZWaveMultiLevelSensorCommandClass] - NODE 2: Sensor Type = Luminance(3), Scale = 1
13:05:46.606 [DEBUG] [ss.ZWaveMultiLevelSensorCommandClass] - NODE 2: Sensor Value = 13
13:05:46.606 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveMultiLevelSensorValueEvent
13:05:46.607 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Sent Message: class=SendData[0x13], type=Request[0x00], priority=Immediate, dest=2, callback=240, payload=02 02 84 08 
13:05:46.608 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Recv Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 02 06 31 05 03 0A 00 0D 
13:05:46.608 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: class=ApplicationCommandHandler, callback id=240, expected=SendData, cancelled=false      MISMATCH

but still the motion alarm is not sent - even as it is detected (sensor flashing) - and the values for temperature and battery are still empty.

Load your debug log into the Zwave log viewer:
http://www.cd-jackson.com/index.php/openhab/zwave-log-viewer
it’s much easier to read:


Actually it looks fine, data is coming in.

Verify you have the correct channels linked to your items:

Number	FibEye1_Battery	"Motion Sensor: [%d %%]"	<battery>	(gBattery,gInfluxdb) {channel="zwave:device:158b44ebf65:node3:battery-level"}
Switch	FibEye1_Motion_S	"Motion Hallway up [%s]" <motion> (gRestore) {channel="zwave:device:158b44ebf65:node3:sensor_binary"}

OK thank you, great tool!
I removed all my items and recreated them, then I woke up device again as you described. So now at least values for all sensors are shown and the motion alert is fired. I will observe if they are updated as expected.

I have the same problems as others have had in this post. I’ve followed the same steps, but cannot get events logging for motion. I had to remove from PaperUI, remove from ZWave stick, then include again for it to show up correctly. If I edit the thing in PaperUI, then change say, parameter 1 to 30, then click to Save, it says at the bottom right of the GUI:

"Thing updated"
and then 1 second later:
“HTTP: 500 - Internal Server Error”

and in the openhab.log I get:

2017-07-11 17:26:46.905 [ERROR] [ome.io.rest.core.thing.ThingResource] - Exception during HTTP PUT request for update config at ‘things/zwave:device:fbcf2efa:node13/config’ for thing ‘zwave:device:fbcf2efa:node13’: For input string: “org.openhab.binding.zwave.internal.protocol.ZWaveAssociationGroup@55f01b”

I’ve been going around in circles with this for ages and am now at a loss on what to do next. I don’t think I need to exclude/include again, as it picks it up with all the parameters fine in PaperUI.

I would strongly recommend not to use PaperUI for configuring ZWave - it does a number of strange things and doesn’t handle some constructs properly.

1 Like

I can confirm…
I always use HABmin to modify my Z-Wave nodes (things) configuration parameters…
PaperUI almost always gives me troubles (I have the same device: FGMS001)

Thanks, and totally agree… if I could get HABMin to load. It just sits there saying “Loading…” and never does.

Check the console log in the browser debugger to find out what’s happening then…

Just got a response in another thread, “delete browser cache” - instead I tried Firefox instead of Chrome, and it goes STRAIGHT in no issues! Here I was looking into the deep dark depths of configuration problems… gah! Thanks Chris!

I now have it to a stage where I can get alarm, tamper, temperature and LUX recording event changes in events.log file. In HABMin, Configuration/Things/FGMS001 Motion Sensor/Description, I can see these show “Alarm” (on the right side) against the channels if I pickup or “tamper with” the sensor (and they show “Ok” under normal use)

I can also see items related to the binary sensor that I created.

I have the .items file populated with the following entries:

// Sensor
Switch          masterWardrobeAlarm             "Alarm [%s]"                         <fire>                             { channel="zwave:device:fbcf2efa:node14:alarm_motion" }
Switch          masterWardrobeTamper            "Tamper [%s]"                        <tamper>                           { channel="zwave:device:fbcf2efa:node14:alarm_tamper" }
Switch          masterWardrobeSensor            "Movement [%s]"                      <sensor>                           { channel="zwave:device:fbcf2efa:node14:sensor_binary" }
Number          masterWardrobeLUX               "LUX [%.2f Lux]"                     <sun>                              { channel="zwave:device:fbcf2efa:node14:sensor_luminance" }
Number          masterWardrobeBattery           "Battery [%d %%]"                    <energy>                           { channel="zwave:device:fbcf2efa:node14:battery-level" }
Number          masterWardrobeTemp              "Temperature [%.1f C]"               <temperature>                      { channel="zwave:device:fbcf2efa:node14:sensor_temperature" }

I cannot get the sensor to provide any feedback on movement events.

I have spent 4 days trying to get this working and am at a complete loss as to why the channels appear to be properly linked to the items, but they do not respond.

Any ideas at all would be appreciated.

EDIT: I DID have it reporting LUX, after I clicked refresh items in HABmin, it now only responds to tamper and alarm. But I get this in the logs:

2017-07-12 10:43:43.320 [ItemCommandEvent ] - Item ‘masterWardrobeLUX’ received command REFRESH
2017-07-12 10:43:43.325 [ItemCommandEvent ] - Item ‘masterWardrobeSensor’ received command REFRESH
2017-07-12 10:43:43.423 [ItemCommandEvent ] - Item ‘masterWardrobeAlarm’ received command REFRESH
2017-07-12 10:43:43.448 [ItemCommandEvent ] - Item ‘masterWardrobeTemp’ received command REFRESH
2017-07-12 10:43:43.513 [ItemCommandEvent ] - Item ‘masterWardrobeTamper’ received command REFRESH
2017-07-12 10:43:43.555 [ItemCommandEvent ] - Item ‘masterWardrobeBattery’ received command REFRESH

Attached is the zwave node.xml file
node14.xml (22.2 KB)

Additionally, if I triple click the device it wakes up the device and I will get some feedback on LUX and temp. But then it goes back to sleep and I get nothing after that (LUX and temp won’t report changes)

2017-07-12 10:50:16.500 [ItemStateChangedEvent ] - masterWardrobeLUX changed from 23 to 36
2017-07-12 10:50:16.680 [ItemStateChangedEvent ] - masterWardrobeTemp changed from 19.9 to 19.8
2017-07-12 10:50:19.499 [ItemStateChangedEvent ] - masterWardrobeLUX changed from 36 to 283
2017-07-12 10:50:27.666 [ItemStateChangedEvent ] - Date changed from 2017-07-12T10:49:27.534+1200 to 2017-07-12T10:50:27.534+1200
2017-07-12 10:50:33.865 [ItemStateChangedEvent ] - masterWardrobeLUX changed from 283 to 3

And this is what I see in HABmin. Binary Sensor always says triggered no matter what.

Moving my hand in front of the sensor, the alarm motion gets triggered - not the binary sensor. Therefore would this most likely indicate an issue on the OpenHAB side??? If so, what?

Hmmm, when I declared my items, I never really revisited them when troubleshooting this… I’ve been looking at sensor binary all this time and trying to get events triggered on this.

I’ve just looked now and noticed the “alarm_motion” event, whereas others above do not seem to declare that and rely on sensor binary for movement. I’ve changed my items to the following, and will just use “masterWardrobeSensor” for ON/OFF events to trigger the wardrobe lights. I’ve removed sensor binary mapping to an item completely.

Switch masterWardrobeTamper “Tamper [%s]” { channel=“zwave:device:fbcf2efa:node14:alarm_tamper” }
Switch masterWardrobeSensor “Movement [%s]” { channel=“zwave:device:fbcf2efa:node14:alarm_motion” }
Number masterWardrobeLUX “LUX [%.2f Lux]” { channel=“zwave:device:fbcf2efa:node14:sensor_luminance” }
Number masterWardrobeBattery “Battery [%d %%]” { channel=“zwave:device:fbcf2efa:node14:battery-level” }
Number masterWardrobeTemp “Temperature [%.1f C]” { channel=“zwave:device:fbcf2efa:node14:sensor_temperature” }

In firmware version 2.8 of the FGMS001 (node2.xml) I don’t have this channel (sensor_binary). It seems that this exists only in version >3.2

Anyway, I use the alarm_motion channel to get movement events and it works fine.
I personally, use a Number item and then define my rule as:

ZWave.items:

/* Fibaro Sensors */
Number	FibEye01_Movement	"FE01 Movement: [%s]"			<present>		(gZWave)	{channel="zwave:device:ZW090C:node2:alarm_motion"}
Number	FibEye01_Temp		"FE01 Temperature: [%.2f °C]"	<temperature>	(gZWave)	{channel="zwave:device:ZW090C:node2:sensor_temperature"}
Number	FibEye01_Lux		"FE01 Lux: [%.2f Lux]"			<sun>			(gZWave)	{channel="zwave:device:ZW090C:node2:sensor_luminance"}
Number	FibEye01_Bat		"FE01 Battery [%d %%]"			<battery>		(gZWave)	{channel="zwave:device:ZW090C:node2:battery-level"}
Number	FibEye01_Alarm		"FE01 Alarm: [%s]"				<fire>			(gZWave)	{channel="zwave:device:ZW090C:node2:alarm_tamper"}

example rule:

var	Timer	FE01_Timer = null
val	Integer	FE01_TimeOut = 5

rule "FE01_ON" // FibEye01 motion detection turns ON Staircase LEDs when dark
when
	Item FibEye01_Movement changed from 0 to 1
then
	if (FibEye01_Lux.state < 80 ) {
		if (FE01_Timer != null) {
			WDim01_Dim.sendCommand(100)
			logInfo("FE01","FE01 Timer rescheduled for " + FE01_TimeOut + " minutes")
			FE01_Timer.reschedule(now.plusMinutes(FE01_TimeOut))
		} else {
			logInfo("FE01", "FE01 Motion Detected! Turn ON Staircase LEDs")
			WDim01_Dim.sendCommand(100)
			logInfo("FE01","FE01 Timer created with " + FE01_TimeOut + " minutes")
			FE01_Timer = createTimer(now.plusMinutes(FE01_TimeOut))
			[|
				if (FibEye01_Movement.state ==  1) {
					logInfo("FE01","FE01 Timer triggered, but rescheduled again for " + FE01_TimeOut + " minutes")
					FE01_Timer.reschedule(now.plusMinutes(FE01_TimeOut))
				} else {
					logInfo("FE01", "FE01 No Motion Detected! Turn OFF Staircase LEDs")
					WDim01_Dim.sendCommand(0)
					FE01_Timer = null
				}
			]
		}
	}
end

Of course, you can use a Switch type for alarm_motion and then use changed from OFF to ON

Thanks, yeah I just setup this similar - in my case its simply a sensor in the wardrobe that switches on the lights… because I’m too lazy to reach 0.5m away and flick a switch… :sunglasses:

I did my rule similar, although used switches and did separate rules. It uses the configuration parameter 6 (“motion detection - alarm cancellation delay”) which I set to 40 (seconds) - which is when it automatically switches back to OFF triggering the 2nd rule, which simply turns off the light (don’t like timers had issues with them, it doesn’t give me the reschedule option you have but eh, its only a wardrobe)

//
// Wardrobe SENSOR - activation
//

rule "Master Wardrobe Movement activated"
when
    	Item masterWardrobeSensor changed from OFF to ON
then
	if (swSystemBootUp.state == OFF) {
		if (masterWardrobeLight.state == OFF) 	{
			if (masterWardrobeLUX.state <= 100) {
				logInfo("wardrobe sensor", "Turning Wardrobe Light ON")
				sendCommand(masterWardrobeLight, ON)
			}
			else {
				logInfo("wardrobe sensor", "Not turning on, sufficient light detected")
			}
		}
		else {
			logInfo("wardrobe sensor", "Not turning on, wardrobe light already on")
		}
	}
	else {
		logInfo("wardrobe sensor", "Wardrobe sensor got triggered, doing nothing because booting up")
	}
end


//
// Wardrobe SENSOR - deactivation
//

rule "Master Wardrobe Movement deactivated - after 30 seconds"
when
    	Item masterWardrobeSensor changed from ON to OFF
then
	if (swSystemBootUp.state == OFF) {
		sendCommand(masterWardrobeLight, OFF)
	}
end
2 Likes

For me it works with alarm_motion but doesn’t work with sensor_binary!

The sensor_binary doesn’t change the status ?

  • Also what is the difference between sensor_binary and alarm_motion ?

  • In addition, whenever I go to I still find couple of motion sensor nodes, can you tell me is it normal ?

Zwave devices can send commands through different command classes, so you may freely use the one you like more: :grinning:

Also regarding the FGMS, older versions don’t have the sensor_binary configured in the database:
https://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list/devicesummary/115
Newer version do have it configured:
https://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list/devicesummary/328

If you did not exclude your devices properly before (for example) reincluding those will be still on your controller and are always rediscovered.

Hi Guys,

Ive managed to get a basic rule working with motion detection using alarm_motion with Lux. Can anyone point me in the direction of some logic to turn my lights OFF after 5minutes of no movement?
Thanks!

The sensor seems to work great!

var Timer FE01_Timer = null
val Integer FE01_TimeOut = 5

rule "FE01_ON" // FibEye01 motion detection turns ON Staircase LEDs when dark
when
	Item FibEye01_Movement changed from 0 to 1
then
	if (FibEye01_Lux.state < 80 ) {
		if (FE01_Timer !== null) {
			WDim01_Dim.sendCommand(100)
			logInfo("FE01","FE01 Timer rescheduled for " + FE01_TimeOut + " minutes")
			FE01_Timer.reschedule(now.plusMinutes(FE01_TimeOut))
		} else {
			logInfo("FE01", "FE01 Motion Detected! Turn ON Staircase LEDs")
			WDim01_Dim.sendCommand(100)
			logInfo("FE01","FE01 Timer created with " + FE01_TimeOut + " minutes")
			FE01_Timer = createTimer(now.plusMinutes(FE01_TimeOut))
			[|
				if (FibEye01_Movement.state ==  1) {
					logInfo("FE01","FE01 Timer triggered, but rescheduled again for " + FE01_TimeOut + " minutes")
					FE01_Timer.reschedule(now.plusMinutes(FE01_TimeOut))
				} else {
					logInfo("FE01", "FE01 No Motion Detected! Turn OFF Staircase LEDs")
					WDim01_Dim.sendCommand(0)
					FE01_Timer = null
				}
			]
		}
	}
end

edit: not exactly what you asked for, but you can customize it :slight_smile:

1 Like

I used the above as a template but the motion sensor keeps tripping, despite no motion.

Thoughts?

need more info :slight_smile:
what do you mean “keeps tripping” ? :stuck_out_tongue:
does the FGMS001 send motion events over the Z-Wave protocol without any actual motion and as a result the bound Item state gets updated?