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
- The 2 outputs states are changing in regards to inputs
- Module isn’t sending value updates automatically being inputs/outputs or sensors
- 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.
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 :
- The one I’ve tested : configure inputs as analog one
- 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
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 :
- 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.
- 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)
- 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)
- 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.
- 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.
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 :
- Do a a non-secured inclusion of module
- copy setup of module detected by openzwave available inside configuration file
- re-include module in secured mode
- 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
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.