Z-Wave Fibaro Button (FGPB-101)

Have anyone found any workarounds or are the FGPB-101 useless with HA?
(I was stupid enough to impulse buy one…)

No workarounds I think until OZW 1.6 comes out, then will probably work with HA too.

1 Like

I saw they were ~80% done with that milestone, hopefully it will be released soon.
But I also saw this in the comments of the “improve support for CentralScene Command Class”-PullRequest on GitHub.


nechry commented 12 days ago
we also work on the Central Scene CC https://github.com/jeedom/plugin-openzwave/blob/beta/resources/python-openzwave/openzwave/cpp/src/command_classes/CentralScene.cpp

We need do more tests, but is actually working very well.


I wounder if we could take that file and recompile the current version OZW somehow?
Everything used for the compile at first install is still in the /srv/hass/src/ so I guess we should be able to do it?

Well you should be able to clone the beta branch in github and build it. I returned my buttons so I cannot test it. I bought some dash buttons instead. Flic is an alternative if you want a button that can do more than one click in case you are thinking about return it.

So I got the button to work semi stable, without double tabs being recognized yet.

First change your zwcfg config as stated here:
https://home-assistant.io/docs/z-wave/device-specific/

Note: Make sure that home assistant is switched off. Turning off the zwave network is not enough as some articles suggest. If you forget this home assistant will overwrite your changes. I also realized that my changes were overwritten at a later stage.

Then you got to write an automation to pick up changes:

- action:
  - data:
      entity_id: input_boolean.button1_button
    service: input_boolean.turn_on
  alias: Trigger Button
  condition: []
  id: '1515230231092'
  trigger:
  - event_data: {}
    event_type: zwave.scene_activated
    platform: event
- action:
  - data:
      entity_id: input_boolean.button2_button
    service: input_boolean.turn_on
  alias: Trigger Button 1 time
  condition: []
  id: '1515231355136'
  trigger:
  - event_data:
      entity_id: zwave.redbutton
      scene_id: 1
      scene_data: 0
    event_type: zwave.scene_activated
    platform: event

Note:

  • I would use the new automation manager to create the automations. This checks for errors. Also IDs are now needed
  • I use the first automation for debugging, that is to check if I pick up any scene changed event. I have it quite often that I press the button, the button reacts but does not send a scence changed.
  • Note the above article suggests values for the scene_data, however my values are different (also an article below has my values). You can find your values in the open zwave log:

2018-01-06 13:08:06.553 Info, Node005, Received Central Scene set from node 5: scene id=1 in 7800 seconds. Sending event notification.
2018-01-06 13:08:06.554 Detail, Node005, Refreshed Value: old value=7740, new value=7800, type=int

Current issues:

At the moment I am still debugging the set up. The button does not always send scene changes for whatever reason. I have no idea why. It wakes up, reports the battery state, but the central scene line is missing from the logs.

I am also not able yet to get the double triggers to work. The log mentions “new value=7800” which I put into the scene data, yet it does not trigger. So far only the most general automation (ignoring the scene_data) and the long push trigger.

Articles which helped:

https://community.home-assistant.io/t/scene-data-on-fibaro-system-fgpb101-button/28008/7

https://community.home-assistant.io/t/aeotec-wallmote-quad-zw130/12100/19

My Button works fine, even with multiple triggers. I followed the adjustment as described here https://home-assistant.io/docs/z-wave/device-specific/

Afterwards, I could use the different triggers within the automation:

trigger:
platform: event
event_type: zwave.scene_activated
event_data:
entity_id: zwave.fibaro_button_black
scene_id: 1
scene_data: 7680 # 1-click 7680, 2-click 7860, 3-click 7920, 4-click 7980, 5-click 8040, long-click 7800, release-7400

I hope this helps

1 Like

Thanks for the note.

I guess mine might be broken. Whenever I click I receive something into the stack. When I receive a scene I get a 13 bits long message, when nothing happens then I get a message shorter than this with varying length.
Cannot really be a range issue as I stand next to the stick. Battery is reported 100%. Could then only be that the button does not like the Aeotec Gen 5. But then others should have the same issue.

So I might get it replaced.

What is wrong here ? Nothing happens and it looks similar to your code ?

- alias: Druk Zwarte knop
  hide_entity: true
  trigger:
    event_type: zwave.scene_activated
    platform: event
    event_data:
      entity_id: zwave.zwarte_knop_4
      scene_id: 1
      scene_data: 7680
  action:
    service: media_player.turn_off
    entity_id: media_player.viera_dt60_series

this is my log

2018-02-19 16:37:30.242 Info, Node004, Received Central Scene set from node 4: scene id=1 in 7860 seconds. Sending event notification.
2018-02-19 16:37:30.242 Detail, Node004, Refreshed Value: old value=7680, new value=7860, type=int
2018-02-19 16:37:30.242 Detail, Node004, Changes to this value are not verified
2018-02-19 16:37:30.242 Detail, Node004, Notification: ValueChanged
2018-02-19 16:37:31.109 Detail, Node004,   Received: 0x01, 0x0b, 0x00, 0x04, 0x00, 0x04, 0x05, 0x5b, 0x03, 0x07, 0x82, 0x01, 0x2d
2018-02-19 16:37:31.109 Detail,
2018-02-19 16:37:31.109 Info, Node004, Received Central Scene set from node 4: scene id=1 in 7800 seconds. Sending event notification.
2018-02-19 16:37:31.109 Detail, Node004, Refreshed Value: old value=7860, new value=7800, type=int
2018-02-19 16:37:31.109 Detail, Node004, Changes to this value are not verified
2018-02-19 16:37:31.109 Detail, Node004, Notification: ValueChanged
2018-02-19 16:37:32.445 Warning, WARNING: Out of frame flow! (0x00).  Sending NAK.
2018-02-19 16:37:32.448 Detail, Node004,   Received: 0x01, 0x0b, 0x00, 0x04, 0x00, 0x04, 0x05, 0x5b, 0x03, 0x08, 0x81, 0x01, 0x21
2018-02-19 16:37:32.448 Detail,
2018-02-19 16:37:32.448 Info, Node004, Received Central Scene set from node 4: scene id=1 in 7740 seconds. Sending event notification.
2018-02-19 16:37:32.448 Detail, Node004, Refreshed Value: old value=7800, new value=7740, type=int
2018-02-19 16:37:32.448 Detail, Node004, Changes to this value are not verified
2018-02-19 16:37:32.448 Detail, Node004, Notification: ValueChanged
2018-02-19 16:37:35.291 Detail, Node004,   Received: 0x01, 0x0b, 0x00, 0x04, 0x00, 0x04, 0x05, 0x5b, 0x03, 0x09, 0x80, 0x01, 0x21
2018-02-19 16:37:35.291 Detail,
2018-02-19 16:37:35.291 Info, Node004, Received Central Scene set from node 4: scene id=1 in 7680 seconds. Sending event notification.
2018-02-19 16:37:35.291 Detail, Node004, Refreshed Value: old value=7740, new value=7680, type=int
2018-02-19 16:37:35.291 Detail, Node004, Changes to this value are not verified
2018-02-19 16:37:35.291 Detail, Node004, Notification: ValueChanged
2018-02-19 16:37:36.651 Detail, Node004,   Received: 0x01, 0x0b, 0x00, 0x04, 0x00, 0x04, 0x05, 0x5b, 0x03, 0x0a, 0x80, 0x01, 0x22
2018-02-19 16:37:36.651 Detail,
2018-02-19 16:37:36.651 Info, Node004, Received Central Scene set from node 4: scene id=1 in 7680 seconds. Sending event notification.
2018-02-19 16:37:36.651 Detail, Node004, Refreshed Value: old value=7680, new value=7680, type=int
2018-02-19 16:37:36.651 Detail, Node004, Changes to this value are not verified
2018-02-19 16:37:36.651 Detail, Node004, Notification: ValueChanged
2018-02-19 16:37:37.990 Detail, Node004,   Received: 0x01, 0x0b, 0x00, 0x04, 0x00, 0x04, 0x05, 0x5b, 0x03, 0x0b, 0x80, 0x01, 0x231

Try this:

- alias: "Druk Zwarte knop"
  hide_entity: true
  trigger:
    platform: event
    event_type: zwave.scene_activated
    event_data:
      entity_id: zwave.zwarte_knop_4
      scene_id: 1
      scene_data: 7680
  action:
    -  service: media_player.turn_off
       data:
         entity_id: media_player.viera_dt60_series

solution

it looks like I have a media_player.panasonic_viera_tv and a media_player.viera_dt60_series

and I was using the wrong. But it’s nowhere defined …

I do not receive the message like this “Received Central Scene set from node 4: scene id=1 in 7740 seconds. Sending event notification.” from my Node018. But it is in my Zwave Network.
Can anybody send my the XML Entries of their Fibaro FGPB-101-5 v3.2 Node?
I found some other links, where they had to change the XML (e.g. A button to trigger automations)

I have hassio 0.81.6

Have you compared what is in your xml file for that device to this:==> https://github.com/OpenZWave/open-zwave/blob/Dev/config/fibaro/fgpb101.xml

Thanks, this helped. Unfortunately, wrong numbers on the main page.

Did you get anywhere with consistency of the scene data being sent through? I’m having similar issues with occasional wakes and battery status being reported. But no scene data. I can’t find any pattern to the behaviour as yet.

Hi, I’m using multiple Fibaro Buttons with HA and Aeotec Z-Stick Gen 5 - They all work fine and I have no issues with scene notifications.

Make sure you are up to date with HA and remove and re-add the button to the network.
After the button initialization is completed (you might need to wake up the button by pressing it 4 times if it does not complete) save the zwave config, stop the network and edit the xml file to modify the command class 91 section. Then start the network again.

this is how my xml for command class 91 looks:

		<CommandClass id="91" name="COMMAND_CLASS_CENTRAL_SCENE" version="1" request_flags="4" innif="true" scenecount="1">
			<Instance index="1" />
			<Value type="int" genre="system" instance="1" index="0" label="Scene Count" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
			<Value type="int" genre="user" instance="1" index="1" label="Button" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
		</CommandClass>

example automation:

- alias: Button x1 
  trigger:
  - platform: event
    event_type: zwave.scene_activated
    event_data:
      entity_id: zwave.button_entity #change that of course
      scene_data: 7680
      scene_id: 1
  condition: []
  action: []

For the Fibaro Button scene_id is always 1, scene_data is:
7680 - pressed x 1
7860 - pressed x 2
7920 - pressed x 3
7980 - pressed x 4
8040 - pressed x 5
7800 - held
7740 - released

All of the above works perfectly for me.

3 Likes

Thanks for the guide.
I had the device working, but was getting issues with the button not always sending scene changes(but always reporting the battery state)

  1. Removed the device from configuration->z-wave->remove node(Press button 6 times, or more).
  2. Reset the button, pressing it 5 times, and one time after that for 5 seconds
  3. rebooted HA
  4. Added the device again (Add Secure Node), this can be tricky, sometimes you need to press more than 6 times for it to recognize the device)
  5. After the device was added, and shown in z-wave devices, i stopped HA.
  6. Edit the zwcfg_xxxxx.xml file, replacing the complete <CommandClass id=“91” section with:
		<CommandClass id="91" name="COMMAND_CLASS_CENTRAL_SCENE" version="1" request_flags="4" innif="true" scenecount="1">
			<Instance index="1" />
			<Value type="int" genre="system" instance="1" index="0" label="Scene Count" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
			<Value type="int" genre="user" instance="1" index="1" label="Button" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
		</CommandClass>
  1. Rebooted HA
  2. tail -f OZW_Log.txt | grep Scene Now shows a scene event EVERY time i press the button :grinning::rofl:

For all of those struggling to get the Button work inside homeassistant: I just got mine replaced because it was DEFECT. Please find an extract of the error description below. My supplier has run additional tests on the device and confirmed that it doesn’t work the way it’s supposed. Good luck to all of those who might have seen similar issues.

"only one command is working - long push - which creates a central scene command with ID=1 and scene 7800. Afterwards with a second attempt (e.g. push twice), the Button also confirms a scene ID. As soon as I give it a third try, NO MORE COMMAND is being reported back, except for long push.

For me it looks like the Button is no longer capable of sending additional central scene commands after having worked twice before."

Very good work! :+1:

Guys, can someone post what the xml should look like for the button.
Because the <CommandClass id=“91” on the https://www.home-assistant.io/docs/z-wave/device-specific/ it shows scene_data 0, 3 and 4.

Hi, I have followed the tutorial and write the xml file but I don’t get the event_type; zwave.scene_activated
Also I can find it in my service tab. what am I doing wrong