[SOLVED] Fibaro The button - Sample scene configuration

Hi All

Can anyone provide the required scene configuration for each button press?

Ie: 1 x Press = Scene 1.0
1 x Press & Hold = Scene ??


Just setting up the required rules etc for when this device arrives



I use two Fibaro FGPB101 but would like to manage your expectations first based on my experience:

  • The button hardware looks great, but mechanically, works very badly.
  • The large button has a tiny switch inside, which requires a careful press - certainly not a casual tap.
  • The button seems to have a tiny aerial, which makes communication very patchy. It can take several presses to ‘wake up’ the device, and get any comms to show up in the OH log.
  • Even when it does work, latency between a careful ‘click’ and a rule firing can be several frustrated seconds.
  • A long press seems to work a lot more reliably than multiple clicks (harder than getting a triple click on a Fibaro FGD-212 for Z-Wave pairing!).

Using OpenHAB 2.4.0 configured via files and running on RPi2 (OpenHABian)…


Number  nButton        "Button"           {channel="zwave:device:<number>:nodeXX:scene_number"}
Number  nButton_Batt   "BBatt [%d %%]"    {channel="zwave:device:<number>:nodeXX:battery-level"}
Switch  nButton_Tamp   "BTamp [%d %%]"    {channel="zwave:device:<number>:nodeXX:alarm_general"}


/* Fibaro Button rules
 * Based on:
 * https://community.openhab.org/t/fgpb-101-not-recognized-properly/15479/22
 * vim: set tabstop=4:

rule "Button Rule"
    Item nButton received update
    //logInfo("Button", "Rule entry...")
    logInfo("Button", "<" + nButton.state + ">")

    if (nButton.state == 1.0) {
        logInfo("Button", "1x press")
    if (nButton.state == 1.1) {
        logInfo("Button", "long press release")
    if (nButton.state == 1.2) {
        logInfo("Button", "long press")
    if (nButton.state == 1.3) {
        logInfo("Button", "2x press")
    if (nButton.state == 1.4) {
        logInfo("Button", "3x press")
    if (nButton.state == 1.5) {
        logInfo("Button", "4x press")
    if (nButton.state == 1.6) {
        logInfo("Button", "5x press")

    //logInfo("Button", "Rule exit...")

Thank you James!

I hope your experiences with it aren’t the same as mine! I will most likely have the button in the same room as the Controller, but I’ll need to experiment as I might move it around once some Wallmotes are ordered.

Hi James

you were right, mine are being returned. They are garbage! Waste of money. Dont work, even next to the controller. Fibaro forums full of users with the exact same issue

The WallMote Quads are working perfectly now, but the Fibaro is useless.

Does this problem still exists with The Button?
I’m planning to buy one and I really could make use of those different scenes.


The code I posted still works in v2.5, but it can take several attempts to get the device to wake up and send a Z-Wave message as the hardware is unchanged (very poor, IMHO). Fibaro refulse to release firmware updates unless you have one of their own Home Centre controllers. :frowning:

I’d avoid The Button, and I also found their keychain remote to be poor (pretty, but tiny buttons and a fiddly battery cap).

Personally, I’m looking at DIY ESP8266 buttons with Tasmota firmware. There’s a few projects out there to take a Sonoff or a bare ESP and add custom hardware buttons to send MQTT messages. Just be careful with mains voltage isolation - not all Sonoff mains powered devices are safe to modify, although ESP devices are safer as they typically connect to a 5v USB PSU.



Sorry for resurrecting an old thread but I just found that the bad responsiveness that I also experienced is fixed by setting the Wake Up Interval from the default 0 to 1.

Fairly sure that will result in your device only lasting a short time on battery as it would wake up every 1 second as opposed to the default of 3600 seconds. Not really a fix. Its just a defective device.

Right, that does raise some concerns.
However, according to Fibaro’s manual the default value is 0, meaning wake up never occurs automatically.
The funny thing is that the manual also mentions that only values 0 and 3600-64800 (1-18h) are valid.
I should switch to DEBUG logging and check if the button actually connects every second, because it still works properly and I have yet to switch batteries.