Fibaro RGBW controller as sensor / input

Tags: #<Tag:0x00007f1731e2fd70>

Hi,

I’m trying to configure a Fibaro RGBW module (FGRBGWM-441) as an analog 0-10V sensor.
I managed to get a reading of the power load (which is 0, but I think that’s expected as there is no output, just inputs), but I can’t get readings of the voltages as inputs.
Using a multimeter I do see the voltage between GND and IN1 and between GND and IN2 changes by several volts.

I use OpenHAB 1.7.1, with a ZME_UZB1 Controller (on a Pi2). I tried a few things for the inputs, but no luck:

Number RGBWControllerPower "RGBW Controller Power Consumption [%.2f W]" (RGBW) {zwave="10:0:command=sensor_multilevel"}
Number RGBWControllerEnergy "RGBW Controller Energy Consumption [%.3f KWh]" (RGBW) {zwave="10:0:command=meter"}

Number nRgbInX "rgbX [%d]" (RGBW) {zwave="10:1:command=SWITCH_MULTILEVEL"} 
Number nRgbIn1 "rgb1 [%d]" (RGBW) {zwave="10:2:command=SWITCH_MULTILEVEL"} 
Number nRgbIn2 "rgb2 [%d]" (RGBW) {zwave="10:3:command=SWITCH_MULTILEVEL"} 

Number nRgbInN1v1 "rgbN1v1 [%d]" (RGBW) {zwave="10:1:command=meter,meter_scale=E_V,refresh_interval=20"} 
Number nRgbInN2v1 "rgbN2v1 [%d]" (RGBW) {zwave="10:2:command=meter,meter_scale=E_V,refresh_interval=20"} 
Number nRgbInN3v1 "rgbN3v1 [%d]" (RGBW) {zwave="10:3:command=meter,meter_scale=E_V,refresh_interval=20"} 
Number nRgbInN1v2 "rgbN1v2 [%d]" (RGBW) {zwave="10:1:command=sensor_multilevel,refresh_interval=20"} 
Number nRgbInN2v2 "rgbN2v2 [%d]" (RGBW) {zwave="10:2:command=sensor_multilevel,refresh_interval=20"} 
Number nRgbInN3v2 "rgbN3v2 [%d]" (RGBW) {zwave="10:3:command=sensor_multilevel,refresh_interval=20"} 
Number nRgbInN1v3 "rgbN1v3 [%d]" (RGBW) {zwave="10:1"} 
Number nRgbInN2v3 "rgbN2v3 [%d]" (RGBW) {zwave="10:2"} 
Number nRgbInN3v3 "rgbN3v3 [%d]" (RGBW) {zwave="10:3"} 

Dimmer nRgbIn1DimmerV1 "rgb1DimmerV1 [%d]" (RGBW) {zwave="10:1:command=sensor_multilevel,refresh_interval=20"} 
Dimmer nRgbIn2DimmerV1 "rgb2DimmerV1 [%d]" (RGBW) {zwave="10:2:command=sensor_multilevel,refresh_interval=20"} 
Dimmer nRgbIn3DimmerV1 "rgb3DimmerV1 [%d]" (RGBW) {zwave="10:3:command=sensor_multilevel,refresh_interval=20"} 
Dimmer nRgbIn1DimmerV2 "rgb1DimmerV2 [%d]" (RGBW) {zwave="10:1:command=switch_multilevel"} 
Dimmer nRgbIn2DimmerV2 "rgb2DimmerV2 [%d]" (RGBW) {zwave="10:2:command=switch_multilevel"} 
Dimmer nRgbIn3DimmerV2 "rgb3DimmerV2 [%d]" (RGBW) {zwave="10:3:command=switch_multilevel"} 
Dimmer nRgbIn1DimmerV3 "rgb1DimmerV3 [%d]" (RGBW) {zwave="10:1"} 
Dimmer nRgbIn2DimmerV3 "rgb2DimmerV3 [%d]" (RGBW) {zwave="10:2"} 
Dimmer nRgbIn3DimmerV3 "rgb3DimmerV3 [%d]" (RGBW) {zwave="10:3"} 

I set the config parameter 14 to Analog 0-10V (sensor) for all inputs, which is 1000100010001000 = 34952 (displayed as −30584 in habmin), and parameter 43 to 10 (1V).

I do see updates on RGBWControllerPower (of 0 value), which suggests the controller is working, but nothing at all on the other items.

Am I doing something wrong here?
Has anyone managed to make this work in this mode (inputs)? Could you share your device config parameters and item definitions?

Thanks,
Thibault.

ps: extract of the zwave logs:

$ tail -10000f logs/zwave.log |grep 'NODE 10'
2015-10-10 17:58:29.816 [DEBUG] [z.internal.ZWaveNetworkMonitor:341 ]- NODE 10: Sending periodic PING.
2015-10-10 17:58:29.816 [DEBUG] [c.ZWaveNoOperationCommandClass:72  ]- NODE 10: Creating new message for command No Operation
2015-10-10 17:58:29.817 [DEBUG] [o.b.z.i.protocol.SerialMessage:109 ]- NODE 10: Creating empty message of class = SendData (0x13), type = Request (0x00)
2015-10-10 17:58:29.821 [DEBUG] [WaveController$ZWaveSendThread:1315]- NODE 10: Sending REQUEST Message = 01 08 00 13 0A 01 00 25 86 4C 
2015-10-10 17:58:29.834 [DEBUG] [b.z.i.p.s.SendDataMessageClass:38  ]- NODE 10: Sent Data successfully placed on stack.
2015-10-10 17:58:29.852 [DEBUG] [b.z.i.p.s.SendDataMessageClass:74  ]- NODE 10: SendData Request. CallBack ID = 134, Status = Transmission complete and ACK received(0)
2015-10-10 17:58:29.856 [DEBUG] [WaveController$ZWaveSendThread:1374]- NODE 10: Response processed after 34ms/833ms.
2015-10-10 18:00:26.940 [DEBUG] [ZWaveMultiLevelSensorConverter:68  ]- NODE 10: Generating poll message for SENSOR_MULTILEVEL, endpoint 0
2015-10-10 18:00:26.940 [DEBUG] [veMultiLevelSensorCommandClass:205 ]- NODE 10: Creating new message for command SENSOR_MULTI_LEVEL_GET
2015-10-10 18:00:26.941 [DEBUG] [o.b.z.i.protocol.SerialMessage:109 ]- NODE 10: Creating empty message of class = SendData (0x13), type = Request (0x00)
2015-10-10 18:00:26.946 [DEBUG] [.o.b.z.i.c.ZWaveMeterConverter:68  ]- NODE 10: Generating poll message for METER, endpoint 0
2015-10-10 18:00:26.948 [DEBUG] [z.i.p.c.ZWaveMeterCommandClass:232 ]- NODE 10: Creating new message for application command METER_GET
2015-10-10 18:00:26.949 [DEBUG] [o.b.z.i.protocol.SerialMessage:109 ]- NODE 10: Creating empty message of class = SendData (0x13), type = Request (0x00)
2015-10-10 18:00:26.953 [DEBUG] [ZWaveMultiLevelSwitchConverter:91  ]- NODE 10: Generating poll message for SWITCH_MULTILEVEL for node 1 endpoint {}
2015-10-10 18:00:26.954 [DEBUG] [veMultiLevelSwitchCommandClass:134 ]- NODE 10: Node doesn't support get requests
2015-10-10 18:00:26.955 [WARN ] [.b.z.i.c.ZWaveConverterHandler:248 ]- NODE 10: Generating message failed for command class = SWITCH_MULTILEVEL
2015-10-10 18:00:26.957 [DEBUG] [ZWaveMultiLevelSwitchConverter:91  ]- NODE 10: Generating poll message for SWITCH_MULTILEVEL for node 2 endpoint {}
2015-10-10 18:00:26.957 [DEBUG] [veMultiLevelSwitchCommandClass:134 ]- NODE 10: Node doesn't support get requests
2015-10-10 18:00:26.958 [WARN ] [.b.z.i.c.ZWaveConverterHandler:248 ]- NODE 10: Generating message failed for command class = SWITCH_MULTILEVEL
2015-10-10 18:00:26.959 [DEBUG] [ZWaveMultiLevelSwitchConverter:91  ]- NODE 10: Generating poll message for SWITCH_MULTILEVEL for node 3 endpoint {}
2015-10-10 18:00:26.960 [DEBUG] [veMultiLevelSwitchCommandClass:134 ]- NODE 10: Node doesn't support get requests
2015-10-10 18:00:26.961 [WARN ] [.b.z.i.c.ZWaveConverterHandler:248 ]- NODE 10: Generating message failed for command class = SWITCH_MULTILEVEL
2015-10-10 18:00:27.080 [DEBUG] [ZWaveMultiLevelSwitchConverter:91  ]- NODE 10: Generating poll message for SWITCH_MULTILEVEL for node 1 endpoint {}
2015-10-10 18:00:27.080 [DEBUG] [veMultiLevelSwitchCommandClass:134 ]- NODE 10: Node doesn't support get requests
2015-10-10 18:00:27.081 [WARN ] [.b.z.i.c.ZWaveConverterHandler:248 ]- NODE 10: Generating message failed for command class = SWITCH_MULTILEVEL
2015-10-10 18:00:27.096 [DEBUG] [ZWaveMultiLevelSwitchConverter:91  ]- NODE 10: Generating poll message for SWITCH_MULTILEVEL for node 2 endpoint {}
2015-10-10 18:00:27.097 [DEBUG] [veMultiLevelSwitchCommandClass:134 ]- NODE 10: Node doesn't support get requests
2015-10-10 18:00:27.098 [WARN ] [.b.z.i.c.ZWaveConverterHandler:248 ]- NODE 10: Generating message failed for command class = SWITCH_MULTILEVEL
2015-10-10 18:00:27.113 [DEBUG] [ZWaveMultiLevelSwitchConverter:91  ]- NODE 10: Generating poll message for SWITCH_MULTILEVEL for node 3 endpoint {}
2015-10-10 18:00:27.114 [DEBUG] [veMultiLevelSwitchCommandClass:134 ]- NODE 10: Node doesn't support get requests
2015-10-10 18:00:27.116 [WARN ] [.b.z.i.c.ZWaveConverterHandler:248 ]- NODE 10: Generating message failed for command class = SWITCH_MULTILEVEL
2015-10-10 18:00:27.766 [DEBUG] [WaveController$ZWaveSendThread:1315]- NODE 10: Sending REQUEST Message = 01 09 00 13 0A 02 31 04 25 AD 50 
2015-10-10 18:00:27.782 [DEBUG] [b.z.i.p.s.SendDataMessageClass:38  ]- NODE 10: Sent Data successfully placed on stack.
2015-10-10 18:00:27.798 [DEBUG] [b.z.i.p.s.SendDataMessageClass:74  ]- NODE 10: SendData Request. CallBack ID = 173, Status = Transmission complete and ACK received(0)
2015-10-10 18:00:27.809 [DEBUG] [ApplicationCommandMessageClass:38  ]- NODE 10: Application Command Request (ALIVE:DONE)
2015-10-10 18:00:27.810 [DEBUG] [ApplicationCommandMessageClass:56  ]- NODE 10: Incoming command class SENSOR_MULTILEVEL
2015-10-10 18:00:27.810 [DEBUG] [veMultiLevelSensorCommandClass:97  ]- NODE 10: Received Sensor Multi Level Request
2015-10-10 18:00:27.811 [DEBUG] [veMultiLevelSensorCommandClass:131 ]- NODE 10: Sensor Multi Level REPORT received
2015-10-10 18:00:27.812 [DEBUG] [veMultiLevelSensorCommandClass:141 ]- NODE 10: Sensor Type = Power(4), Scale = 0
2015-10-10 18:00:27.812 [DEBUG] [veMultiLevelSensorCommandClass:150 ]- NODE 10: Sensor Value = 0E+1
2015-10-10 18:00:27.835 [DEBUG] [.z.internal.ZWaveActiveBinding:450 ]- NODE 10: Got a value event from Z-Wave network, endpoint = 0, command class = SENSOR_MULTILEVEL, value = 0E+1
2015-10-10 18:00:27.848 [DEBUG] [WaveController$ZWaveSendThread:1374]- NODE 10: Response processed after 81ms/833ms.
2015-10-10 18:00:27.852 [DEBUG] [WaveController$ZWaveSendThread:1315]- NODE 10: Sending REQUEST Message = 01 09 00 13 0A 02 32 01 25 AE 55 
2015-10-10 18:00:27.869 [DEBUG] [b.z.i.p.s.SendDataMessageClass:38  ]- NODE 10: Sent Data successfully placed on stack.
2015-10-10 18:00:27.884 [DEBUG] [b.z.i.p.s.SendDataMessageClass:74  ]- NODE 10: SendData Request. CallBack ID = 174, Status = Transmission complete and ACK received(0)
2015-10-10 18:00:27.900 [DEBUG] [ApplicationCommandMessageClass:38  ]- NODE 10: Application Command Request (ALIVE:DONE)
2015-10-10 18:00:27.901 [DEBUG] [ApplicationCommandMessageClass:56  ]- NODE 10: Incoming command class METER
2015-10-10 18:00:27.901 [DEBUG] [z.i.p.c.ZWaveMeterCommandClass:109 ]- NODE 10: Received Meter Request
2015-10-10 18:00:27.902 [DEBUG] [z.i.p.c.ZWaveMeterCommandClass:157 ]- NODE 10: Meter: Type=Electric(1), Scale=kWh(0), Value=0E+1
2015-10-10 18:00:27.905 [DEBUG] [.z.internal.ZWaveActiveBinding:450 ]- NODE 10: Got a value event from Z-Wave network, endpoint = 0, command class = METER, value = 0E+1
2015-10-10 18:00:27.914 [DEBUG] [WaveController$ZWaveSendThread:1374]- NODE 10: Response processed after 62ms/833ms.
2015-10-10 18:01:05.896 [DEBUG] [ApplicationCommandMessageClass:38  ]- NODE 10: Application Command Request (ALIVE:DONE)
2015-10-10 18:01:05.896 [DEBUG] [ApplicationCommandMessageClass:56  ]- NODE 10: Incoming command class BASIC
2015-10-10 18:01:05.897 [DEBUG] [z.i.p.c.ZWaveBasicCommandClass:74  ]- NODE 10: Received Basic Request
2015-10-10 18:01:05.897 [DEBUG] [z.i.p.c.ZWaveBasicCommandClass:78  ]- NODE 10: Basic Set sent to the controller will be processed as Basic Report
2015-10-10 18:01:05.897 [DEBUG] [z.i.p.c.ZWaveBasicCommandClass:107 ]- NODE 10: Basic report, value = 0x24
2015-10-10 18:01:05.899 [DEBUG] [.z.internal.ZWaveActiveBinding:450 ]- NODE 10: Got a value event from Z-Wave network, endpoint = 0, command class = BASIC, value = 36
2015-10-10 18:01:19.161 [DEBUG] [ApplicationCommandMessageClass:38  ]- NODE 10: Application Command Request (ALIVE:DONE)
2015-10-10 18:01:19.162 [DEBUG] [ApplicationCommandMessageClass:56  ]- NODE 10: Incoming command class BASIC
2015-10-10 18:01:19.162 [DEBUG] [z.i.p.c.ZWaveBasicCommandClass:74  ]- NODE 10: Received Basic Request
2015-10-10 18:01:19.163 [DEBUG] [z.i.p.c.ZWaveBasicCommandClass:78  ]- NODE 10: Basic Set sent to the controller will be processed as Basic Report
2015-10-10 18:01:19.163 [DEBUG] [z.i.p.c.ZWaveBasicCommandClass:107 ]- NODE 10: Basic report, value = 0x23
2015-10-10 18:01:19.165 [DEBUG] [.z.internal.ZWaveActiveBinding:450 ]- NODE 10: Got a value event from Z-Wave network, endpoint = 0, command class = BASIC, value = 35

Below/attached is the configuration of the item in habmin:

I ended up noticing etc/zwave/node10.xml which made me think about the Basic command. I ended up with:

Dimmer nRgbInN1v3 "rgbN1v3 [%d]" (RGBW) {zwave="10:1:command=BASIC,respond_to_basic=true,refresh_interval=60"} 
Dimmer nRgbInN2v3 "rgbN2v3 [%d]" (RGBW) {zwave="10:2:command=BASIC,respond_to_basic=true,refresh_interval=60"} 
Dimmer nRgbInN3v3 "rgbN3v3 [%d]" (RGBW) {zwave="10:3:command=BASIC,respond_to_basic=true,refresh_interval=60"} 
Dimmer nRgbInN4v3 "rgbN4v3 [%d]" (RGBW) {zwave="10:4:command=BASIC,respond_to_basic=true,refresh_interval=60"} 
Dimmer nRgbInN5v3 "rgbN5v3 [%d]" (RGBW) {zwave="10:5:command=BASIC,respond_to_basic=true,refresh_interval=60"} 

which seems to work.

One thing I don’t understand is why my items must be Dimmer and why Number doesn’t work?
Is there a way to know which item type one should use for a given item?

Regards,
Thibault.

I contacted the Fibaro support and it sounds like it should work.
I’ve now come across https://groups.google.com/forum/#!category-topic/openhab/z-wave/goiGzBJiEqY : (bug in the MULTI_CMD command class) could it be the issue I am experiencing here?

This was fixed a while ago. Firstly, what version of the binding are you using? Second, does this device use the MULTI_CMD class?

Hi Chris,

I was using the binding coming with OpenHAB, so 1.7.1.
I tried upgrading to a recent version coming with HABmin (dowloaded this week), and it does seem to work better.
It does seem to use MULTI_INSTANCE as in my etc/zwave/node10.xml I see:

  <commandClass>MULTI_INSTANCE</commandClass>

In terms of items, I ended up with the below which seems to work (which someone may find useful one day):

// RGBWControllerPower doesn't work?
Number RGBWControllerPower "RGBW Controller Power Consumption [%.2f W]" (RGBW) {zwave="10:command=meter,meter_scale=W"}
Number RGBWControllerEnergy "RGBW Controller Energy Consumption [%.3f KWh]" (RGBW) {zwave="10:command=meter,meter_scale=E_KWh"}
// Same thing as RGBWControllerEnergy?
Number RGBWControllerSensorMultilevel "RGBW Controller Energy Consumption [%.3f KWh]" (RGBW) {zwave="10:command=sensor_multilevel,sensor_type=4"}

/* RGBW Controller:
* instance 2 = input 1
* instance 3 = Input 2
* instance 4 = Input 3
* instance 5 = Input 4
*/

Number nRgbInN1v2 "rgbN1v2 [%d]" (RGBW) {zwave="10:1:command=switch_multilevel,respond_to_basic=true"} 
Number nRgbInN2v2 "rgbN2v2 [%d]" (RGBW) {zwave="10:2:command=switch_multilevel,respond_to_basic=true"} 
Number nRgbInN3v2 "rgbN3v2 [%d]" (RGBW) {zwave="10:3:command=switch_multilevel,respond_to_basic=true"}
Number nRgbInN4v2 "rgbN4v2 [%d]" (RGBW) {zwave="10:4:command=switch_multilevel,respond_to_basic=true"}
Number nRgbInN5v2 "rgbN5v2 [%d]" (RGBW) {zwave="10:5:command=switch_multilevel,respond_to_basic=true"}

I do get notified when the voltage changes now.
Polling (e.g. refresh_interval) doesn’t work as is, but using a ‘command=basic’ instead of switch_multilevel allows for polling. I don’t really know if using switch_multilevel has any benefit over ‘basic’.

Now my issue, which is probably nothing to do with OpenHAB but with the RGBW Controller itself is that it seems slow at reacting to voltage changes. It seems the voltage has to change for 10-20 seconds for it to send a notification. If it only changes from 4v to 0v for say 3s, and then back to 4v, then I get a notification for the change to 4v but not for the change to 0v.
This makes it a bit useless for my needs.

I’ll have to stick to using my Fibaro FGBS-001 Binary Sensor, which can’t measure the voltage (only whether it is 0 or non-0), but which reacts instantly.

Regards,
Thibault.

I note that polling is disabled for this device for multi level switch - this would have been done as the device presumably didn’t respond to it, and this ‘no response’ causes timeouts, so it is disabled…

Regarding the slow response, I guess this is to do with the device if it’s being slow and you see this in the logs…

Chris

Yes the lack of polling as switch_multilevel and the slowness seem to be due to the device itself.

FYI the node10.xml shows isGetSupported set to false for switch_multilevel:

  <commandClass>MULTI_INSTANCE</commandClass>
  <multiInstanceCommandClass>
    <version>2</version>
    <instances>1</instances>
    <endpoints>
      <entry>
        <int>1</int>
        <endPoint>
          <deviceClass>
            <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
            <genericDeviceClass>MULTILEVEL_SWITCH</genericDeviceClass>
            <specificDeviceClass>POWER_SWITCH_MULTILEVEL</specificDeviceClass>
          </deviceClass>
          <endpointId>1</endpointId>
          <supportedCommandClasses>
            <entry>
              <commandClass>BASIC</commandClass>
              <basicCommandClass>
                <endpoint reference="../../../.."/>
                <version>0</version>
                <instances>0</instances>
                <isGetSupported>true</isGetSupported>
              </basicCommandClass>
            </entry>
            <entry>
              <commandClass>SWITCH_MULTILEVEL</commandClass>
              <multiLevelSwitchCommandClass>
                <endpoint reference="../../../.."/>
                <version>1</version>
                <instances>1</instances>
                <isGetSupported>false</isGetSupported>
              </multiLevelSwitchCommandClass>
            </entry>
          </supportedCommandClasses>
        </endPoint>

I assume this is what the device reported as opposed to an interpretation of the zwave add-on?

No - as I said above, this is disabled in the binding (actually in the database). The device doesn’t respond to these messages which causes problems and will make the device show dead so we disable this. You can try changing this if you want and if it works, then we can see how to handle this as it’s possible that some versions might change this, but be aware of timeouts!

Ah OK, thanks for the clarification.
I don’t need polling for my use-case, and polling does seem to work with
command=basic, so all good as is as far as I’m concerned.
Thanks Chris.

Hi @chris,

For fibaro RGBW-441 controller, On HABmin, it shows 2 modes.
Can you please tell me what is meaning of 2 modes?
Is it related to RGB strip type…?

Thanks.
Shrikant

I don’t know this device - what are the modes?

If this is something that is specific to the device, then you probably should check the manual?

It’s unclear what you mean, where does it show 2 modes and which ones ?
If you refer to MODE1/MODE2 settings of parameter 8 (as in the habmin picture above), then check out the manual what it is doing. It’s determining the meaning of parameters 8 to 11, effectively.

You might need to adjust parameter 43 (voltage change threshold to trigger reporting).
Also note you will need to configure a separate association for each input port, the ‘general’ association #5 (to controller) isn’t sufficient (at least for me, it didn’t work properly unless I added that association).

Hi @chris,

i am getting an warning continuously for fibaro RGBW-441 controller ,
2016-08-23 16:34:38.875 [WARN ] [.z.internal.ZWaveActiveBinding] - NODE 159: No item bound for event, endpoint = 0, command class = SENSOR_MULTILEVEL, value = 5.8, ignoring.

i am getting this type WARNING for many devices…
can you please tell me what does it mean…?

Thanks,
shrikant

It means that you have no item bound the node 159 for command class sensor_multilevel even though the device is sending data for this. Basically, the binding thinks you should have an item configured, but it doesn’t find one.

Dusted off this old topic, because I’m having problems getting readings from the Fibaro RGBW zWave device.

The RGBW device is connected and OH3 sees the device. I’ve set parameter 14 to 34592 so all 4 inputs should be working. But they don’t… The channels are connected as Items (Red, blue, green, white) all present NULL as a result.

What am I doning wrong??