Fibaro FGMS-001 how to get sensor data

Hi guys,

This is my fisrt post and in general, I am super new to the zwave topic (one week!), so please warmly recive this newy.

The problem: I have the Fibaro Motion Sensor FGMS-001 and can’t get the Temperature/Light values.
The part oft he setup relevant for the setup:

  • rPi with zwave binding 1.7.1.
  • Fibaro Motion Sensor FGMS-001.

My first try was following: collection of working z-wave configs, my items looked like this (I set the refresh_interval that low in order to faster debug):

Number  Lux              "Lux: [%.2f Lux]"         <sun>          { zwave="6:0:command=sensor_multilevel,sensor_type=3,refresh_interval=30" } (FF_Floor)
Number  Temp             "Temperature: [%.1f °C]"  <temperature>  { zwave="6:0:command=sensor_multilevel,sensor_type=1,refresh_interval=30" } (FF_Floor)

This didn’t work and I always got the following error:

2015-09-07 09:21:46.209 [DEBUG] [ZWaveMultiLevelSensorConverter:68  ]- NODE 6: Generating poll message for SENSOR_MULTILEVEL, endpoint 0
2015-09-07 09:21:46.211 [DEBUG] [veMultiLevelSensorCommandClass:247 ]- NODE 6: Node doesn't support get requests for MULTI_LEVEL_SENSOR
2015-09-07 09:21:46.213 [WARN ] [.b.z.i.c.ZWaveConverterHandler:248 ]- NODE 6: Generating message failed for command class = SENSOR_MULTILEVEL

After reading Fibaro Motion sensor error sensor_multilevel, it seems that the device doesn’t support GET requests to the multilevel sensor command class, which I find totally logic but why is it working for other fellows in the forum?? Mystery, never mind, we continue putting together the found pieces. So I guess the way I am supposed to do it is: FGMS-001 sends this messages automatically to the items it is associated with, and I picke the event, some how. I associated then controller in all 3 groups (it was associated only to group 1), and configured the FGMS-001 to send temperature and Light values every 60 seconds (again, low values to faster debug). I turned the log to debug, and removed the configured items from .items, and I see in the logs:

015-09-07 09:22:12.011 [DEBUG] [eController$ZWaveReceiveThread:1528]- Receive Message = 01 10 00 04 00 06 0A 56 01 31 05 03 0A 00 84 D6 9D 42
2015-09-07 09:22:12.032 [DEBUG] [eController$ZWaveReceiveThread:1452]- Receive queue ADD: Length=1
2015-09-07 09:22:12.032 [DEBUG] [b.z.i.protocol.ZWaveController:1210]- Receive queue TAKE: Length=0
2015-09-07 09:22:12.040 [DEBUG] [o.b.z.i.protocol.SerialMessage:233 ]- Assembled message buffer = 01 10 00 04 00 06 0A 56 01 31 05 03 0A 00 84 D6 9D 42
2015-09-07 09:22:12.046 [DEBUG] [b.z.i.protocol.ZWaveController:1211]- Process Message = 01 10 00 04 00 06 0A 56 01 31 05 03 0A 00 84 D6 9D 42
2015-09-07 09:22:12.052 [DEBUG] [b.z.i.protocol.ZWaveController:190 ]- Message: class = ApplicationCommandHandler (0x04), type = Request (0x00), payload = 00 06 0A 56 01 31 05 03 0A 00 84 D6 9D
2015-09-07 09:22:12.054 [DEBUG] [ApplicationCommandMessageClass:38  ]- NODE 6: Application Command Request (ALIVE:DONE)
2015-09-07 09:22:12.056 [DEBUG] [ApplicationCommandMessageClass:56  ]- NODE 6: Incoming command class CRC_16_ENCAP
2015-09-07 09:22:12.057 [DEBUG] [CRC16EncapsulationCommandClass:63  ]- NODE 6: Received CRC 16 Encapsulation Request
2015-09-07 09:22:12.059 [DEBUG] [CRC16EncapsulationCommandClass:129 ]- NODE 6: Calling handleApplicationCommandRequest.
2015-09-07 09:22:12.060 [DEBUG] [veMultiLevelSensorCommandClass:97  ]- NODE 6: Received Sensor Multi Level Request
2015-09-07 09:22:12.062 [DEBUG] [veMultiLevelSensorCommandClass:131 ]- NODE 6: Sensor Multi Level REPORT received
2015-09-07 09:22:12.064 [DEBUG] [veMultiLevelSensorCommandClass:141 ]- NODE 6: Sensor Type = Luminance(3), Scale = 1
2015-09-07 09:22:12.066 [DEBUG] [veMultiLevelSensorCommandClass:150 ]- NODE 6: Sensor Value = 132
2015-09-07 09:22:12.067 [DEBUG] [b.z.i.protocol.ZWaveController:682 ]- Notifying event listeners: ZWaveMultiLevelSensorValueEvent
2015-09-07 09:22:12.072 [DEBUG] [.z.internal.ZWaveActiveBinding:433 ]- ZwaveIncomingEvent
2015-09-07 09:22:12.074 [DEBUG] [.z.internal.ZWaveActiveBinding:450 ]- NODE 6: Got a value event from Z-Wave network, endpoint = 0, command class = SENSOR_MULTILEVEL, value = 132
2015-09-07 09:22:12.076 [DEBUG] [ApplicationCommandMessageClass:85  ]- Transaction not completed: node address inconsistent.
2015-09-07 09:22:15.997 [DEBUG] [eController$ZWaveReceiveThread:1528]- Receive Message = 01 10 00 04 00 06 0A 56 01 31 05 01 22 00 CF ED 3D B8
2015-09-07 09:22:16.022 [DEBUG] [eController$ZWaveReceiveThread:1452]- Receive queue ADD: Length=1
2015-09-07 09:22:16.022 [DEBUG] [b.z.i.protocol.ZWaveController:1210]- Receive queue TAKE: Length=0
2015-09-07 09:22:16.028 [DEBUG] [o.b.z.i.protocol.SerialMessage:233 ]- Assembled message buffer = 01 10 00 04 00 06 0A 56 01 31 05 01 22 00 CF ED 3D B8
2015-09-07 09:22:16.032 [DEBUG] [b.z.i.protocol.ZWaveController:1211]- Process Message = 01 10 00 04 00 06 0A 56 01 31 05 01 22 00 CF ED 3D B8
2015-09-07 09:22:16.036 [DEBUG] [b.z.i.protocol.ZWaveController:190 ]- Message: class = ApplicationCommandHandler (0x04), type = Request (0x00), payload = 00 06 0A 56 01 31 05 01 22 00 CF ED 3D
2015-09-07 09:22:16.037 [DEBUG] [ApplicationCommandMessageClass:38  ]- NODE 6: Application Command Request (ALIVE:DONE)
2015-09-07 09:22:16.039 [DEBUG] [ApplicationCommandMessageClass:56  ]- NODE 6: Incoming command class CRC_16_ENCAP
2015-09-07 09:22:16.040 [DEBUG] [CRC16EncapsulationCommandClass:63  ]- NODE 6: Received CRC 16 Encapsulation Request
2015-09-07 09:22:16.041 [DEBUG] [CRC16EncapsulationCommandClass:129 ]- NODE 6: Calling handleApplicationCommandRequest.
2015-09-07 09:22:16.043 [DEBUG] [veMultiLevelSensorCommandClass:97  ]- NODE 6: Received Sensor Multi Level Request
2015-09-07 09:22:16.044 [DEBUG] [veMultiLevelSensorCommandClass:131 ]- NODE 6: Sensor Multi Level REPORT received
2015-09-07 09:22:16.045 [DEBUG] [veMultiLevelSensorCommandClass:141 ]- NODE 6: Sensor Type = Temperature(1), Scale = 0
2015-09-07 09:22:16.046 [DEBUG] [veMultiLevelSensorCommandClass:150 ]- NODE 6: Sensor Value = 20.7
2015-09-07 09:22:16.048 [DEBUG] [b.z.i.protocol.ZWaveController:682 ]- Notifying event listeners: ZWaveMultiLevelSensorValueEvent
2015-09-07 09:22:16.049 [DEBUG] [.z.internal.ZWaveActiveBinding:433 ]- ZwaveIncomingEvent
2015-09-07 09:22:16.052 [DEBUG] [.z.internal.ZWaveActiveBinding:450 ]- NODE 6: Got a value event from Z-Wave network, endpoint = 0, command class = SENSOR_MULTILEVEL, value = 20.7
2015-09-07 09:22:16.053 [DEBUG] [ApplicationCommandMessageClass:85  ]- Transaction not completed: node address inconsistent.

So hurra!! There are my values being sent!!

My question is, how to pick these values up??

I get my values though the following items:

Number    FibEye1_Lux    "Helligkeit MotSens: [%.2f Lux]"    <lux>    (gTest)        { zwave="3:command=sensor_multilevel,sensor_type=3" }
Number    FibEye1_Battery    "Motion Sensor: [%d %%]"    <battery>    (gBattery)        { zwave="3:command=battery" }
Number    FibEye1_Temp    "Temp MotSens: [%.1f C]"    <temperature>    (gTest)        { zwave="3:command=sensor_multilevel,sensor_type=1" }

Good luck.

Hi @sihui

For one moment I thought that removing the instance 0 would solve my problem, but I continue receiving the same error :smirk:

This is how my config looks like now:

Number  Lux              "Lux: [%.2f Lux]"         <sun>          { zwave="6:command=sensor_multilevel,sensor_type=3,refresh_interval=30" } (FF_Floor)
Number  Temp             "Temperature: [%.1f °C]"  <temperature>  { zwave="6:command=sensor_multilevel,sensor_type=1,refresh_interval=30" } (FF_Floor)

Try it this way:

Number Lux "Lux: [%.2f Lux]" <sun> (FF_Floor) {zwave="6:command=sensor_multilevel,sensor_type=3,refresh_interval=30" }

Number  Temp "Temperature: [%.1f °C]"  <temperature>  (FF_Floor) { zwave="6:command=sensor_multilevel,sensor_type=1,refresh_interval=30" }   

You can find the correct syntax >>>here<<<

Edit: And as far as I remember from a previous post this sensor doesn’t support polling, so remove the refresh interval.

Hi @sihui

it works now :smile: . There problem was something different (nevertheless the syntax was wrong, thanks).

In etc/zwavw/node?xml isGetSupported for SENSOR_MULTILEVEL was set to false. I changed it to true and it started working afterward. Why it was in false for me, no idea.

Also, I am removing the refresh_interval.

Thanks a lot!
L

This means you can’t poll it. If you try and poll the device, it will not respond - this in turn causes a timeout, which can cause the device to show DEAD.

To receive this data, you must use associations - as you are doing - so I don’t see any problem with your configuration. I would however remove node 1 from all groups other than the controller group - this can cause problems if it is in multiple groups.

You should remove the refresh_interval setting since this will not do anything as the device doesn’t support GET messages.

Hmmm - you should set it back to false (it will set back automatically at some stage, but it may take some time). This won’t have been the problem you were having, and it is now likely that you will have other problems (as I mentioned above) since the device doesn’t respond to GET requests :frowning:

Hi @chris

now it comes all clear to me :wink:.

Facts:

  • the item declaration was wrong as pointed out by @sihui, that is why I never even saw the items in the gui.
  • the errors I saw were from me trying to poll the device.
  • as soon as I proper declared the items, without refresh_interval, set the isGetSupported back to false, and gave the device the time to send the date, I could see the the values.

:sunglasses:

Thanks!
Luis

No problem - I’m glad it’s working :smile:

Cheers
Chris

I just bought a Fibaro MultiSensor.
It is correctly recognized (I see it in habmin.
I have configured the item file like above:

Number Lux “Lux: [%f Lux]” (gGF) {zwave=“10:command=sensor_multilevel,sensor_type=3,refresh_interval=30” }
Number Temp “Temperature: [%f °C]” (gGF) { zwave=“10:command=sensor_multilevel,sensor_type=1,refresh_interval=30” }

But I have no luck… no value is returned.
I did not touch any of the config of the sensor.

What could be wrong?
TX for the help as usual.

Now I do some dig in the log

I have also removed the refreshinterval.
same result

Did you set up the association for the controller?
What setting do you have for the wakeup command?
Maybe it is not initialized completely, so manually wake up the device by pushing the button …

Good luck.

Illumination and temperature are not sent by default - you need to enable them independently (take a look at parameters around 40-42.

what a… parameter 42 set to 0 !
What do you buy a PIR for???

Ditto for temperature report (parameter 62)!

Tx . now late in old europe. set parameters to send reports. tomorrow will check

It is completely setup.
Where do I check setup for wakeup command? in parameters?

UHM I have modified params in habmin (highlighted yellow) but I am afraid the values are not sent to device.
How can I check?

Yep. Works now.
TX guys as usual the community help is unvaluable

Illumination and temperature are not sent by default - you need to enable them independently (take a look at parameters around 40-42.

Hi @chris, could you clarify this for me:
If parameter 40 is set to 200 lux and 42 set to 0, I will never receive an update, even if light conditions go to 1000 lux?

Thanks

[quote=“federic0, post:18, topic:2416, full:true”]
If parameter 40 is set to 200 lux and 42 set to 0, I will never receive an update, even if light conditions go to 1000 lux?[/quote]

According to the manual your assumption is right, but in my case I have 40 set to 10 and 42 set to 0 and still get correct lux values … strange …

No, that’s exactly how I understand the manual, both parameters are independent.

However, I am not getting any updates and I am not able to set parameters (stays yellow) even after manually forcing a wake up (B button pressed 3 times with blue led)…