Fibaro RGBW Controller

Fibaro RGBW Controller
The Fibaro RGBW Controller is a compact Z-Wave module that provides 4-channel dimming capability and 4 analogue input channels. The full capabilities of the module are described on the Fibaro website. A lot of the functionality seems to be accessible via the Fibaro home controller and associated app, so it will be interesting to see how much of this can be exposed and accessed via our VeraLite.

The RGBW part of the name refers to Red, Green, Blue and White. This means that this controller can work with RGB lamps and RGB + W lamps, where an extra white LED/bulb is included to enable higher white light output levels.

Just to confuse things slightly, the manual refers to a part number of FGRGBWM-441 and the device is marked as part number FGRGB-101.

A nice feature about this device is the inclusion of four analogue inputs (0-10V range). These can also be used as digital inputs (switches) in both momentary and change-over (toggle) contacts.

Technical Specification

The module can be used with both 12V and 24V dc power supplies and can output 6A per channel maximum, with a limitation of 12A across all channels combined. This equates to 144W of lighting at 12V and 288W at 24V.

The PWM output frequency is a relatively low 244Hz.

Like all of the Fibaro modules, this one is tiny (42mm wide × 37mm tall × 17mm thick).

Installation & Configuration

The manual (PDF version)for this module is supplied on a double-sided A4 piece of paper and there is a lot of information in very small print. The device is shown below, with it's 10 screw terminals and the 'B' button recessed in the small hole next to the antenna. Note that this the EU version and this device is available for other regions (with their associated Z-Wave frequencies).

Connections

The physical installation must support the 70mm wire antenna being suitably located to enable the Z-Wave wireless signals to reach the controller or relay nodes. The antenna is tuned to the local operating frequency, so DO NOT cut it shorter!

One down side of so many connections on such a small device, is that you need a very small screwdriver on the terminals.

Power Supply

The Fibaro manual says you should use a dedicated, regulated dc power supply with this device. The 12V and 24V support means it is possible to use a 12V battery and it should easily be able to handle direct connection to a battery that is being charged, assuming the connected bulbs can also handle the potentially higher (than 12V) voltages.

The controller must be powered by the same power source used to power the loads (lamps).

Analogue Inputs

The analogue inputs are limited to 0-10V, so you have to be careful with dumb sensors (e.g. a light-dependent resistor or LDR) connected via the 12V/24V power supply, to ensure the inputs do not see more than 10V. The manual claims the maximum wire length is 10m but, most analogue sensors will require much shorter lead lengths than this.

Lighting Loads

With 12V and 24V lighting, you will get voltage drops as the length of wire from the power source to the lamps increases and the current drawn increases (i.e higher loads will generate greater voltage drops). These will result in lower light output.

Installation & Testing

Our initial testing was done with some LEDs connected to the four outputs:
Initial test set up

Z-Wave Inclusion

Z-Wave inclusion is achieved using the 'B' button or a switch connected to the inputs (IN1 to IN4).

In testing we just powered the device up and our VeraLite found it immediately. This was then the view on the Vera web console:
Installation

As you can see, there are more devices than exist physically. One is the parent device, one is an overall control device (switches all 4 outputs together) and then we have the individual channel devices. The parent device also appears to report power usage.

We then renamed the devices to make it easier to see what we were testing. These changes were also reflected into the VeraMobile app that we use for testing:
Renamed devices

Basic Lamp Control

Testing each channel
Some basic testing showed that we had full control of the brightness of each LED in 10% steps. LEDs are not a particularly good test case as their brightness is not very proportional to the input voltage. Halogen lamps would be a better test case.

We then did some testing to see how well the brightness varied using halogen lamps. With 20W MR16 bulb connected to the white channel, we got much better control of the brightness. With these bulbs the output light level has a much more linear relationship to the voltage applied and the values displayed in the Vera console.

The response time of the module to input commands is OK but, there is noticeable delay. We were hoping to programmatically ramp light levels up and fade between colours. This may not be a realistic ambition.

Advanced Configuration

This is the bit that most people hate about Z-Wave devices. The Vera UI exposes a lot of the basic configuration elements of most devices but, in order to really get most to perform as required, you have to delve into the depths of the advanced configuration options. Whilst it remains this way, Z-Wave is never really going to become a mainstream home automation technology. Someone needs to find a way to make this stuff invisible to the typical user.

Each parameter has a number and an associated value:

1 = All On & All Off Function

This enables and disables the all-on and all-off feature of the module:
0 = All On inactive, All Off inactive
1 = All On inactive, All Off active
2 = All On active, All Off inactive
255 = All On active, All Off active (this is the default value)

6 = Associations Command Class Choice

The default setting is 0.

8 = Output State Change Mode

This parameter determines how the outputs change depending on the requested changes sent to the module. The default setting is 0.

A value of 0 (MODE 1) means that parameters 9 (step value) and 10 (time between steps) are used to determine speed taken to change the output value. These basically set the ramp-up or ramp-down slope and speed. This enables you to set nice smooth transitions (fade) if required.

In MODE 1 and with parameter 9 set to a value of 5 and parameter 10 set to 250, we could get nice smooth transitions from a single command to set output to 100% from an initial value of 0%:

A value of 1 (MODE 2) means that parameters 11 (time for changing from start value to end value) is used to determine speed taken to change the output value.

9 = Step Value

This is only used is parameter 8 is set to MODE 1. The default value is 1 and it is a single byte value between 1 and 255.

10 = Time Between Steps

This is only used is parameter 8 is set to MODE 1. The default value is 10 (10ms). A value of zero means an immediate change between request and current state. The maximum value is 60,000 (60 seconds).

14 = Input/Output Configuration

Fibaro provide a configuration guide for this parameter when used with 3rd party controllers like the VeraLite but, it seems to have a number of mistakes in my view.

To use the module with four analogue inputs, this 2-byte parameter needs to be set to 8000h or 32768. When I tried a value of 8888h or 34952 decimal the RGB outputs were stuck on.

43 = Reporting 0-10V Analogue Input Change Threshold

This is the change in input value detected before the module reports a new analogue input value back to the controller. It is a value of 1 to 100 (each represents 0.1V), so for best sensitivity it is set to 1. The default value is 5 (0.5V).

Advanced Parameters Summary

These are the parameters we are currently using:
Advanced parameters

Power Usage

Even with the tiny LED lamps we are using, the device is reporting total power usage (1W).

Looking at the Vera logs, we can also see power usage information being listed.

Analogue Inputs

The 4 inputs can be set up to work independently from the lighting control and for our purposes, this is the preferred way to use this device. When we did the initial Z-Wave inclusion, no inputs showed up on the Vera console.

So far we have been unable to get the Vera to show any analogue input devices and values.

Vera Plugins

Vera plug-ins provide the ability to develop customer user interface elements within the Vera controller UI. To be honest, we never really use this. All of the automation is done outside of our Vera device using our Home Control System (HCS) software. The Vera is simply used as a Z-Wave gateway.

In theory, full control of this device should be possible using a Vera plugin. The UI components are fairly limited on the Vera, so things like a colour selection wheel will be unlikely.

Lighting Types & Loads

Our intial testing has been done with single LEDs and 20W halogen MR12 bulbs. You can get MR12 coloured bulbs in both halogen and LED form but the logistics of installing them in an attractive manner would be challenging.

It would be really cool if an MR12 LED bulb existed with the 5 connections (ground, red, green, blue, white) but, I'm not sure if such a bulb exists.

LED RGBW Strips

LED RGBW lighting strip
We ordered a 5M / 86W / 12 LED RGBW strip with 360 LEDs from AppLamp.

This is our 5m LED strip:
5m roll of LEDs

There are 6 LEDs per 'segment', alternating warm white LEDs with tri-coloured LEDs. This means that 50% of the LEDs are warm white. When the three coloured LEDs are lit, the result is a fairly cold white. The combination of these and warm white gives a nice warmer light and the light level output is very high.
LEDs

Programming

PHP

The device ID of each Z-Wave device is easily found using the command:
http://192.168.1.xxx:3480/data_request?id=lu_invoke
Knowing this it is very easy to control each RGBW channel using HTTP requests.

To set the output of a particular channel use an HTTP request of the form:
http://192.168.1.xxx:3480/data_request?id=action&DeviceNum=30&serviceId=urn:upnp-org:serviceId:Dimming1&action=SetLoadLevelTarget&newLoadlevelTarget=20

We quickly wrote a PHP script that sets the desired colour arrangement by calling a URL on our Home Control System (HCS) web server:
http://192.168.1.xxx/zwave/rgbw.php?r=1&g=1&b=1&w=1

Note that although the Vera exposes brightness levels in steps of 10%, the module actually works to a granularity of 1%. We could see clear differences in light output at 1%, 2%, 3%, 4%, 5%, etc.

Ajax

Colour wheel
Using the above approach it would be extremely easy to create a web-based interface using a colour wheel to select the desired colour and then send it to the Vera device using Ajax. We will have a demonstration of this here soon.

Queries Via Scenes

In our Home Control System (HCS), we interface to the Vera using socket layer communications.

If we have the following Lua code in a scene, we can query the current value of the output (in this case the red channel):
local socket = require("socket")
host = "192.168.1.xxx"
local sensor = luup.variable_get("urn:upnp-org:serviceId:Dimming1","LoadLevelStatus", 30)
c = assert(socket.connect(host, <port>))
c:send("Test,Study,RGBW-Red," .. sensor)
c:close()

Possible Applications

As well as the obvious RGBW control for lamps or LED strips, we can see a number of other potential applications for this device.

LED RGBW Strip Lighting

We are using it with 5m length of LED RGBW.

External / Garden Lighting

Being 12V dc (or 24V) operation, we can see this device would work very effectively as a four-channel, low-voltage garden lighting controller in the garden. We are keen to get the analogue inputs working to see how it could then be used for sensing in the garden.

Summary

The focus of our work with this set up is currently enabling voice and text control using our smart home artificial intelligence engine.

Related Reading

Share ...
We are on ...
Facebook Twitter
YouTube Flickr Follow us on Pinterest