[RELEASE] Fibaro Dimmer 2 (US)

I have been waiting about 2 years for a Fibaro Dimmer to reach the US. Now that it is here and I have my hands on one, I have to say that I am not disappointed. This is the in-wall dimming device that I have been waiting for.

Anyway, the SmartThings handler “Fibaro Dimmer” didn’t seem to work and I couldn’t find a community handler that worked with the US version so I put this together. It is also setup with the “button” capability and can send button commands. You have to enable the “Scene Activation Functionality in the device preferences”. The mappings will be posted below.

This device has 50 configurable settings. I have included what I thought were the most relevant ones, but if anyone thinks there should be more, just let me know. A description of them can be found in the device handler itself or here. Configurable options:

  • Minimum brightness level
  • Maximum brightness level
  • Automatic control - dimming step size
  • Automatic control - time of a dimming step
  • Manual control - dimming step size
  • Manual control - time of a dimming step
  • State of the device after a power failure
  • Timer functionality (auto - off)
  • Forced switch on brightness level
  • Switch type
  • Assign toggle switch status to the device status
  • Double click option
  • The function of 3-way switch
  • Scene activation functionality
  • Switch functionality of S1 and S2
  • Auto-calibration after power on
  • Active power reports
  • Periodic active power and energy reports
  • Energy reports
  • Self-measurement

Button Mappings:

Momentary S1

  • 1x click - Button 1, “pushed”
  • 2x click - Button 2, “pushed”
  • held - Button 1, “held”
  • release - Button 2, “held”

Momentary S2

  • 1x click - Button 3, “pushed”
  • 2x click - Button 4, “pushed”
  • 3x click - Button 5, “pushed”
  • held - Button 3, “held”
  • release - Button 4, “held”

Toggle S1

  • Off to On - Button 1, “pushed”
  • On to Off - Button 1, “held”
  • 2x click - Button 2, “pushed”

Toggle S2

  • Off to On - Button 3, “pushed”
  • On to Off - Button 3, “held”
  • 2x click - Button 4, “pushed”
  • 3x click - Button 5, “pushed”

Roller blinds S1

  • Turn On (1x click) - Button 1, “pushed”
  • Release - Button 1, “held”
  • 2x click - Button 2, “pushed”
  • Brightening - Button 2, “held”

Roller blinds S2

  • Turn Off - Button 3, “pushed”
  • Release - Button 3, “held”
  • 2x click - Button 4, “pushed”
  • 3x click - Button 5, “pushed”
  • Dimming - Button 4, “held”

I bought mine from here:
http://www.thesmartesthouse.com/collections/fibaro/products/fibaro-z-wave-plus-dimmer-2-fgd-212



7 Likes

Very good! I’ve been using a load of these in my setup here in the UK for a while now, and they’re robust and very adaptable. The best out there imho. We’ve had a similar written device type, but without the ‘held’ functionality, which hopefully we’ll see eventually, or when I get time to play with some Groovy perhaps!

Nice work on getting a DH together so quickly.

Hi Eric, not sure if you can help, how do you figure out how to digest various z-wave signal and translate it to value in the report?

I bought a latest version of Fibaro smoke sensor but seems like it’s not reporting the battery and temperature, so I suspect it could be somethings to do with the latest firmware

I haven’t thought a whole lot about these in-wall dimmers. What is the use case versus a standard dimmer? How are you using them?

You might want to check the crc16 method in my device handler (def zwaveEvent(physicalgraph.zwave.commands.crc16encapv1.Crc16Encap cmd)). Fibaro uses encapsulation with a CRC-16 checksum on this dimmer. These commands have to be decoded first with the method mentioned above. It is possible that the new firmware is using this technique.

@whoismoses I am just not a fan of the available “look & feel” of current Z-Wave Dimmers/Switches. I prefer the kind of switches I have and in-wall dimmers/switches allow me to keep them.

2 Likes

Does everything fix in the wall box?

Yes, but it depends on the depth of your gang boxes and how much wiring is shoved in their. I have in-wall dimmers and switches installed in every one of my light switches. Some are a tight fit, but I have gotten them all to fit. It also depends on the size of the device. The Fibaro’s are tiny. The Aeon’s a bit bigger.

Eric, how do you decide the Command Class for the “parse”:
[0x20: 1, 0x84: 1, 0x98: 1, 0x56: 1, 0x60: 3]

and the list of Command Class for crc16encapv1:
[0x31: 5, 0x30: 1, 0x9C: 1, 0x70: 2, 0x85: 2]

I found this website where the Command class matches exactly with my FGD-212.
http://www.pepper1.net/zwavedb/device/750

Hopefully you can shed some light on how you decide the Command Class so I can do something about my smoke sensor FGSS-001:
http://www.pepper1.net/zwavedb/device/552

HI @erocm1231

Im trying to use the scenes with Core. I have added a piston that will turn on a switch when a “button 4” is pressed from the fibaro dimmer. I can’t get it to work.

This is what the dimmer reports when I double click s2

b3db65e6-45e0-410a-b6ad-cea10ce34d0d 14.29.00 CEST: debug dimmingDuration: 0
b3db65e6-45e0-410a-b6ad-cea10ce34d0d 14.29.00 CEST: debug sceneId: 14
b3db65e6-45e0-410a-b6ad-cea10ce34d0d 14.29.00 CEST: debug SceneActivationSet: SceneActivationSet(dimmingDuration: 0, sceneId: 14)

Hi @cscheiene, if you are double clicking S2, and it is sending a sceneId of 14, then it seems something is off. First, do you have a momentary (push button) switch hooked up to S2, or a toggle? In the US, momentary are not very common (although that is what I use). Second, it seems like you already do, but make sure that the preference “Scene activation functionality” is enabled. Lastly, the preference to "Switch functionality of S1 and S2 is set to Standard correct?

There may be an easier way to do it, but I typically watch the logs to see what the device is sending in CRC16 format. At that point I use the z-wave command reference to find the correct command class code and put it in the crc16encapv1 parse method. Sometimes it is a trial and error process.

1 Like

Yes, I use momentary switches. Scene activation is enabled, and S1 and S2 is Standard.
Im using a eu version of the dimmer. I have been using this handler and app for handling scenes: https://github.com/hajar97/FibaroDimmers but its very limited. Was hoping to use scenes with Core

According to the documentation, a double click of S2 should send a sceneId of 24. A sceneId of 14, is supposed to be sent on a double click of S1.

My handler is written according to the docs from Fibaro, so if you set Core up to activate when button “2” is “pushed” does that work?

Sorry my bad, I have it set up as Roller Blind switches (pushbuttons, sw1 to switch on/brighten and sw2 to turn off/dim) So it should be scene id 14 as per the documentation.

I tried Core with all the buttons available from the dimmer 2 without any luck

Do you see any button events in the “Recently” tab for the dimmer?

No nothing.

The configuration is not working either. Anything to do with it been a EU version? Here is some logs from trying to update parameters and double-clicking s2

b3db65e6-45e0-410a-b6ad-cea10ce34d0d 12.18.53 CEST: debug dimmingDuration: 0
b3db65e6-45e0-410a-b6ad-cea10ce34d0d 12.18.53 CEST: debug sceneId: 14
b3db65e6-45e0-410a-b6ad-cea10ce34d0d 12.18.53 CEST: debug SceneActivationSet: SceneActivationSet(dimmingDuration: 0, sceneId: 14)
b3db65e6-45e0-410a-b6ad-cea10ce34d0d 12.18.48 CEST: debug Firmware Report FirmwareMdReport(checksum: 35113, firmwareId: 274, manufacturerId: 271)
b3db65e6-45e0-410a-b6ad-cea10ce34d0d 12.18.48 CEST: debug Requesting device firmware version
b3db65e6-45e0-410a-b6ad-cea10ce34d0d 12.18.48 CEST: debug updated() is being called
b3db65e6-45e0-410a-b6ad-cea10ce34d0d 12.18.47 CEST: debug Requesting device firmware version
b3db65e6-45e0-410a-b6ad-cea10ce34d0d 12.18.47 CEST: debug updated() is being called

That is strange, it should send a button event based on the logs. Other things might not work because it is the EU version, but the logs show sceneId 14 was received, and if that is the case, it should send “button 4 pushed”. Is the “Switch type” configured to “Roller Blind” in the preferences? When a button event is triggered by the switch it should show up in the “recently” tab.

There is nothing. In the old handler I used I could see scene 14 is activated in the recently feed.

I have already set roller blind to switch type in the previous DTH. Changing any parameters in your DTH does not have any effect at all, but it says synced all the time.

My device handler actually uses what you have set in the Switch Type preference to know which button event to create. I just changed that so if you don’t have anything selected, at least it will use a default (but you should still set it so it sends the correct button event). I’ve also added some additional logging.

When I got the switch I looked at the handlers that were available for the EU version. I tried a couple of course and they didn’t work. Looking at the code, it was quite different from what mine is, so I believe their are some significant differences in the firmware between the US and EU versions.

Anyway, my guess is that the preference not being set is the culprit.

Its now displaying this every few seconds:

02ebcc32-4fc8-49fc-bd3a-a87cf813a182 13.33.42 CEST: debug SensorMultilevelReport: SensorMultilevelReport(precision: 1, scale: 0, scaledSensorValue: 0.0, sensorType: 4, sensorValue: [0, 0], size: 2)
02ebcc32-4fc8-49fc-bd3a-a87cf813a182 13.33.39 CEST: debug SensorMultilevelReport: SensorMultilevelReport(precision: 1, scale: 0, scaledSensorValue: 0.0, sensorType: 4, sensorValue: [0, 0], size: 2)
02ebcc32-4fc8-49fc-bd3a-a87cf813a182 13.33.36 CEST: debug SensorMultilevelReport: SensorMultilevelReport(precision: 1, scale: 0, scaledSensorValue: 0.0, sensorType: 4, sensorValue: [0, 0], size: 2)
02ebcc32-4fc8-49fc-bd3a-a87cf813a182 13.33.34 CEST: debug SensorMultilevelReport: SensorMultilevelReport(precision: 1, scale: 0, scaledSensorValue: 0.0, sensorType: 4, sensorValue: [0, 0], size: 2)
02ebcc32-4fc8-49fc-bd3a-a87cf813a182 13.33.30 CEST: debug SensorMultilevelReport: SensorMultilevelReport(precision: 1, scale: 0, scaledSensorValue: 0.0, sensorType: 4, sensorValue: [0, 0], size: 2)
02ebcc32-4fc8-49fc-bd3a-a87cf813a182 13.33.27 CEST: debug SensorMultilevelReport: SensorMultilevelReport(precision: 1, scale: 0, scaledSensorValue: 0.0, sensorType: 4, sensorValue: [0, 0], size: 2)
02ebcc32-4fc8-49fc-bd3a-a87cf813a182 13.33.24 CEST: debug SensorMultilevelReport: SensorMultilevelReport(precision: 1, scale: 0, scaledSensorValue: 0.0, sensorType: 4, sensorValue: [0, 0], size: 2)

Do you know what that means?