Fibaro FGBS222 “smart implant” fully working with Openzwave and Jeedom


Being equipped with Jeedom, this post’s illustrated with screenshots from Jeedom. However, those information should be interesting for any user of this module, or any other smarthome controller, particularly those using openzwave : Jeedom, Domoticz, Home Assistant, etc …

I’ve recently bought a Fibaro FGBS222 “smart implant” module to control my garage door (post to come). I wanted to do a little more with it, but had many difficulties to fulfill all my needs. Regarding the different posts I’ve found on the subject in forums, I’m not the lonely one to have problems, so here is this post.

Difficulties relative to this module

  1. The 2 outputs states are changing in regards to inputs
  2. Module isn’t sending value updates automatically being inputs/outputs or sensors
  3. When including in secure mode we lose a big part of features

The first 2 problems are specific to module, so it shoud interests everybody using it.
The last problem is a limitation of openzwave. All of you equipped with a controller using openzwave could be interested.

The 2 outputs states are changing in regards to inputs

Smart implant seems to be developed to be integrated into an alarm system. Module is then configured by default to copy the input states to outputs.

It can be disabled in 2 ways :

  1. The one I’ve tested : configure inputs as analog one
    • Click on module name
    • Enter in Advanced parameters
    • Parameter tab
    • Change the first 2 parameters :
  2. I’ve not tested the other method but it’s described in forums :
    • Click on module name
    • Enter in Advanced parameters
    • System tab
    • Modify Protection parameter
    • Select value No operation possible

Module isn’t  sending value updates automatically being inputs/outputs or sensors

This is  this post that gave me some information : FGBS222 have undocumented association parameters that have to be activated for those updates to be sent. By default configuration profile for FGBS222 isn’t including those parameters (this is logical…).

Here are the steps to follow :

  1. Here is a fgbs222.xml configuration file updated with those undocumented parameters. I also provide this fle to openzwave contributors for them to integrate it by default if they want to. Buf for the time being, this file can be copied, for a jeedom setup to directory /var/www/html/plugins/openzwave/resources/openzwaved/config/fibaro/ , replacing previous fgbs222.xml file.
  2. When done a new inclusion-exclusion procedure have to be done. If everything is ok, those new association parameters should appear ( Advanced parameters –> Associations tab)
  3. Add associations with your controller for peripherals that should update their values. Add root of controller instead of an endpoint (no number enclosed with parenthesis at the end of name)
  4. This association should seem not to work : icon remains active and controller name isn’t displaying. I suspect all messages aren’t supported by module for these hidden association parameters ( “get association” not implemented ? To be confirmed).
    Keep calm, association is still active. For the icon to disappear, my trick is to request an update of node information.
  5. Finally, you have to configure update conditions (Parameters tab).
    Example with analog inputs :

When all steps done, you should have values updating automatically by module without polling.

When testing with analog inputs and external temperature sensor, this update is working but isn’t perfect  :

  • analog conversion seems to be done every 10 – 15 seconds, which is the delay time before receiving the value when there’s an event
  • Although I’ve configured module to send temperature update when there’s a delta of 0.1°C or every hour, my module seems to update only to a minimum interval of 30 minutes, I receive then certain change with more important delta than 0.1°C.

When including in secure mode we lose a big part of features

Prior alert : solving the problem would only be done by advanced users. In case of bad manipulation you could corrupt your z-wave installation and have to re-install everything. I won’t include so much details in this chapter, if some elements aren’t comprehensible by you, it may be risky to try to modify your system …

Moreover, although manipulation is functional, everything isn’t 100% under control. For instance a software evolution of openzwave could break it.

Openzwave is an open source software which is maintained by and developed by volonteers. Don’t shoot the sheriff !
It should be more constructive to help them if you’re a software developer, or if you earn money directly or indirectly by using this software part

Root cause of problem : needed code to detect “endpoints” when including a module in secure mode haven’t be written yet in openzwave. In case of FGBS222, sensors are fitted to different endpoints, then we lose them when doing secured inclusion.

General method to have those features back :

  1. Do a a non-secured inclusion of module
  2. copy setup of module detected by openzwave available inside configuration file
  3. re-include module in secured mode
  4. merge in configuration file elements missing that were available in non-secured mode

Configuration file for openzwave is available in directory /var/www/html/plugins/openzwave/data/ and is called  zwcfg_0x’something’.xml, ‘something’ being your z-wave identification network.
This file is recorded on disk when openzwave is deactivated and is read when restarted. Then take care to read or write this file after stopping openzwave, then when stopping zwave plugin in jeedom.

Please not also that rebooting openzwave takes time, be patient. If you stop it when restart is ongoing you may have bad impacts. Wait until outgoing message counter is back to 0 and state is  Topology loaded in “Zwave network” panel

I myself have done this merge using notepad++ and its compare plugin. Here is the result of this merge that I’ve reinserted into zwcfg_0x’something’.xml file.

When restarting openzwave, everything isn’t going fully perfectly (new endpoints are re-detected for certain commands if I restart a “Information of node update ), but all in all everything’s functional.


Vincent Recipon

Propriétaire de ce blog. Owner of this blog.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.