Fibaro RGBW Controller (DTH link in post 32, police light smartapp link in post 79)

Yeah, the police lights should be fixed now. If you go the virtual switch route, you could have all of your controllers kick off the same program with any automation that can control switches. For example, you could use Smart Lighting to turn on all of the “Police” switches if a motion sensor is tripped.

[UPDATE] - Dedicated thread for my device handler is here.

Done! After battling with some annoying bugs in both the SmartThings API and the Fibaro firmware, I am pleased to announce the first release of my own ‘advanced’ Fibaro RGBW device handler. Key features are:

  • Physical device parameters can be edited from the SmartThings GUI, and verified in the IDE Log.
  • Support for using the channels in a mixture of IN/OUT modes (i.e. support for analog input sensors)!
  • No more glitches (as sending commands and receiving reports is done properly!) :wink:
  • “Energy Meter”, “Power Meter”, and “Polling” capabilities fully implemented.
  • Level attributes and sliders now have a have range of 0-100%, instead of 0-99%.
  • Channels can be mapped to different colours without needing to physically rewire the device.
  • Improved compliance with the ‘Color Control’ capability definition, as discussed here.

[Update] You can now edit the Association Group members from the GUI too.

The code, instructions, and examples can all be found here:

All feedback greatly received.

Some screenshots:

11 Likes

Just to let others know, the best and ONLY serious DH for the Fibaro RGBW Controller is the one 2 posts up, it’s been a very very long road of struggle, near misses, and frustration with this module, but finally it has the DH it deserves. It just works flawlessly, fast, snappy, all the parameters available to edit within the app, I also finally have it controlled by a physical switch. No weird behaviour like colours randomly changing by themselves. Very happy.

3 Likes

I have tried your DTH for the Fibaro RGBW. I created a new Fibaro RGBW device type uising your code on GitHub and then switched my Fibaro to your handler in the IDE. I open the app on my phone, open the device and go to settings. There it has a bunch of fields in red that need to be filled in. I enter all of the default values as you noted. But when I get to the bottom of the list I see Association Groups. I have no idea what those are or what should be entered in them. They don’t seem to be required so I left them blank. When I hit Done the app says “Please fill out all required fields.” I’ve triple check and have every required field input. Any suggestions?

This is a perennial problem with the Android app. It doesn’t populate the default values properly. :tired_face:

You need to clear and re-enter all the settings (even the ones that look like they have a value). It’s a pain, I recommend you complain to SmartThings support about it. If that doesn’t work, try setting all the values from the IDE instead.

You are right that the Association Groups are not required and can be left blank.

1 Like

Hello, am planning on getting my SmartThings hub during this week, I am fairly new to home automation and would like to know what I need to control my existing 10m LED strip with the SmartThings app, am sorry but am really confused and need some step by step help to setup my LED strip will link my LED strip.

LED strip:

Hi, I’m really new to all of this, not much of a coder. Thanks a ton for making this device code, it gives a ton more control.

I’m having trouble getting in installed though. I copied and published the code, and changed the device’s type to match. When I look at in the app I get your GUI. But when I go into the settings on the app, I run into trouble. I set all the setting to the default values, but when I get “done”, it pops up and says “Please fill out all required fields”. I’ve set everything though. Any idea what’s going on here?

I’m on Android if that matters, and here are the live logs from when I was editing it:

Robin, do you know of any documentation or examples of this? If it’s possible to do using a Fibaro hub, it should be possible to replicate in SmartThings. We just need to know the commands/parameters to send.

1 Like

Evan, see Phil’s question and my response above (8 days ago).

D’oh! How did I miss that? Thanks it’s working now.

One more question, when I tell my google home to turn the lights “White”, it changes to the version of white where the RGBs are still on. I’d like white to be just the white channel, with the RGBs off.

I edited the “White” parameters in getPresetColors() to 0,0,0,255, which I assume should do that, but it doesn’t seem to be working. Is there somewhere else I need to tweak something? After updating that I saved, published, powercycled the controller, and restarted the app.

It’s really interesting that Google Home is able to set the colour. It’s not something that Amazon Alexa will do at the moment! :slight_smile:

I suspect that Google Home is calculating a value of white itself and calling the setColor() command with a map such as [red: 255, green: 255, blue 255]. Rather than calling the white() command (which is non-standard). I might be wrong though, so please enable the Debug option in the settings then look at the Live Logging in the IDE. You should be able to see what command Google Home is triggering. I would be interested to know…

Is Google Home also able to set other colours? What happens if you ask for something like “dark green” or “light blue”?

Here’s some logs!

White:

Red:

Dark Green (the actual color it creates isn’t quite correct, I suspect this is something on my end though)

Light Blue (color is correct):

ok, so Google is converting your spoken colour name into hue and saturation values, which it passes to the setColor() command. This then gets converted to a RGBW value via the hsvToRGBW() function.

You could edit the hsvToRGBW() function to add an additional check at the end, so that if the RGB values are very close, use the W channel instead. You’d want to define some tolerance here though.

Presumably Google knows the most obscure colours. What happens if you try “Smaragdine” or “British Racing Green” or “Amaranth” ? :stuck_out_tongue:

Turns out it does know “Baby blue” and “aquamarine”, but I don’t think it gets more complex than that.

Any chance you’d be willing to help with programming that check? I don’t know much about programming. :grimacing:

1 Like

Will anyone please help me out, as am really lost here

@Al7omed have a look at YouTube instructional videos for inspiration, like this one…

1 Like

I am curious to see peoples wiring setup and how they tackled multiple feeds into the controller.

I want to use my fibaro to control 3 LEDs plus an analog input, but I DON’T want the input to control the lights (I want it to run a contact sensor). I’ve changed parameter 14 in codersaur’s excellent DTH TO 3 momentary outs plus 1 analog sensor, but although I can control the lights fine I can’t get the sensor to report in the app when I close IN1 to ground, instead it seems to turn off the lights.

Any ideas what I’m doing wrong?

Thanks!

I was being dim - have now connected the contact sensor to IN 4 and it’s working as I’d hoped.

Thanks again @codersaur for this very comprehensive and configurable DTH!.

Thank you @zcapr17 for posting this handler for the Fibaro RGBW controller! I’ve been testing it for a few days now in my setup and I really like the device tile interface and access to the settings. I am however stuck on trying to identify a new effect that this handler has vice the other handlers I’ve tried. I have noticed that if the lights are already on and have set color/brightness and they receive a command to turn on again from another source (Echo, Logitech remote, CORE), then they adjust to full brightness of all channels resulting in bright white output.

Does anyone know of a particular configuration or adjustment that I can make to prevent this action?