Fibaro Smart Implant FGBS222

Fibaro Smart Implant offers lots of possibilities, but is not easiest one to understand and configure… I have in my setup 6 implants now and spend quite some time playing with them to understand how these works. From Fibaro documentation not everything is clear, so let me share some of my learnings:

  • Module has 2 inputs and 2 outpust, that can be configured (but not fully independently)
  • IN1/2 are linked to OUT1/2 (though these can be switched by changing appropriate parameters). Clue is that if INs are configured as binary inputs or alarms, change of their status always triggers correcponding OUT. It is not possible to have fully independent binary inputs and outputs.
  • In binary input mode module is triggering zwave scenes, that are not handled by hassio yet. There is no entity on implant that would show their status directly… unles you read the status of corresponding OUT. But the trick is that OUT can be changed programatically (it is switch, from hassio perspective), so not always change in OUT status is reflecting change in IN status (e.g. some automation or script might trigger such change).
  • Best way of reading inputs is to configure these as burglar alarms. These are visible to hassio as entities and their status can be read or trigger some actions. Buit again, to make things more complex; inactive alarm has 0 value, active alarm has value of 2… but both can change to 254 as module is going to sleep. So this needs to be considered in automations!
  • The only way to separate INs from OUTs is to configure INs as input voltage sensors. It is possible to measure input voltage (with or without internal pullup) idependently from setting states of OUTs. Again this is directly measurable in hassio as value of corresponding sensor. So in theory you can configure analog input as input switch by changing its voltage and have it fully separated from OUTs.
  • It is not possible to have one IN configured as binary input or or alarm and second as analog input! If one of iputs is configured as analog it iinstantly triggers that second one is also changing to analog.
  • As described above type of INs and OUTs can be configured separately, which means that lots of parameters is only applicable when module is properly configured and some can/should be disregarded if configuration is not applicable.

So coming to your question:

  • alarm_level, alarm_type, sourcenodeid - I’d disregard, unless you are linking smart implant directly to other zwave devices using scenes (native zwave config)
  • burglar can be used to figure out status of inputs
  • temperature might be of some use, though since module is constantly powered on it is showing its own temperature, not surrounding…
  • input_voltage - voltage on IN1/2 if configured as such (BTW, I’m a bit surprised to see it showing ~20V in your listing. Normally module is capble of measuringh up to 10V (oficially) and it shows ~10.5V if not connected. It can be also used to determine temperature of external sensors (do not know details, not using this functionality)
  • switch - status of OUT1/2 can be changed from hassio or reflect changes in IN1/2

And your issues with burglar alarms; not really sure about it, in all of my configs I had to have fully separated INs and OUTs, so can use only one sensor and one output per module. I believe when I tested it it worked independently, so could be faulty module. What I’d do is to remove the module from configuration, do the factory reset and add it again. I’d also recommend using OZWCP add-on rather than build in Z-Wave Control Panel… for some reason it is more reliable for me (even if using the same undrlying libraries). I recall having some issues with fibaro modules configuration that were resolved this way.


WOW, great information. It looks like the small unit is a great idea in principle with lots of nice features, but in reality, its implementation is not that great.

Thanks a lot for this, it helps.

I don’t quite understand why I would have 3 burglar alarms and 3 switches when there are only 2 INs and 2 OUTs. I will continue my testing…


The “burglar” in most Z-Wave sensors means is someone disturbing the unit, IR detectors, tamper detectors, etc. For example, zw100 Multisensor 6 has a “burglar” when you shake it. Or when the IR sensor is triggered.

My problem with the implant is one of voltage and temperature. I designed my Implant with a 3 meter external temp probe. The Implant lets us put a number of these in parallel, as these probes are addressable by the Implant with no other work by us.

I use the probe for my outside 400-gal pond over the winter. I want the temp to be at least 52 degrees F. I installed the Implant, a terminal board, the incoming lead from power and the sensor into an IP66 case, for outside use. The power is delivered by a waterproof 15VDC power supply.

I calibrated it inside with a known thermometer, and realized the temp needs a resistor across the contacts.

But my problem is there are 2 added voltage and 2 added temperature measurements. The temp measurements seem about 20 degrees above a “true” reading. I can’t find any way to get this better, unless there’s some magic way to put another resistor somewhere. The 2 “internal” temps are about 20 degrees over their real temps, and they don’t agree…they are maybe 1/2-2 degrees different.

It took me time to figure out which of the 3 (1 for pond, and 2 internal) temps was real, when I was checking the calibration, because the temps were the same. Became better when I put the 4.7k 1/2 W resistor in, as the “real” temp sensor can see the real temp.

The little manual with the sensor shows the various ways to use different sensors. It would be nice if they included colors of the wires, vs trying to figure out in the little drawing. Remember, the little black wire in the Z-Wave antenna, so don’t trim that one!

The voltage is also odd, it’s not 15V on both. One has 14.35V and there other is 14.75V.

So I suppose for Hass, is there a simple way for me to say “temp for sensor x = temp for sensor x - 20”? I could calculate a template, but I wonder if it’s easy to override the default behavior.

Like, with the standard “kW” that some sensors in GE lamp modules use may have a “Watt” entity somehow, but I’m not seeing one.



1 Like

The other thing is there is a way in HA to get the Z-Wave parameters set. But it seems for the Implant, HA hasn’t caught up to the parameters of this device.

So I needed to use the data in Section 10, page 21 in the Implant Manual: to set the parameters.

I did mine a while ago, but I think if HA can’t set the proper configuration item, you can use tools from Open Z-Wave to manipulate the config. I still think I was able to set the options with HA. I set Option 20 to a value of “5”, meaning: “Analog input with internal pullup (Sensor Multilevel)”. I may have set parameters 63 and/or 65 as well. But for now, it’s reporting the pond temp, and that’s OK until I get time to play with the parameters again.



P.S. As I said, I use the Implant temp for pond monitoring. But because this is a new setup, and the control element (my RPi with Hassio) is in the house is loosely coupled, I still use the existing pond thermostat, with a separate temp probe, that is rated at 20 Amps. I set a temp and a +/- value, and it does the rest locally.

The only other thing I may ask HA to do is report the kW used by the pond heaters. But that seems like I’d use IotaWatt for that while monitoring the whole house utilization…but that will be a project for after the Holidays.

I think you can decouple the inputs from the outputs by using the protection command class and setting local protection to “2” while leaving RF protection to “0”. Seems to work on my setup. From the manual:


Seems to work on my setup… hmm

I somehow miss Protection CC… good find!
For reconfiguration of inputs… I tried it few times with no success… perhaps question of firmware version or some combination of other parameters… Still have one implant to be installed, so I’ll retest!

How do I set local protection to “2”?

I couldn’t get this device working properly with HA 0.106.6.

I was replacing my Fibaro Universal Binary Sensor with this (which I use in my doorbell) using input 2, but for some reason when ever I pushed my doorbell button, nothing ever happened.

I tried adding it as both secure and non-secure, made no difference.

I ended up going back to my Universal Binary Sensor, at least it worked. Anyone else have this working in a similar situation?

It only ever showed 1 binary sensor, but multiple of all the other devices. Are there maybe some parameters I need to change or something?

Yeap, Smart Implant most likely will not work for you out of the box. There is plenty of configuration parameters available for node configuration in z-wave configuration panel (Configuration->Z-Wave->node->node configuration options->set value). In particular you need to setup type of inputs and outputs you want to have for start…

Great thread about the smart implant, I’m just missing some info around the 1-wire implementation. I would appreciate if someone could point me in the right direction on that topic. :slight_smile:
I’m planning to use 6pcs DS18B20 temp sensors on each of 2 implants but so far I haven’t been able to see anything else than some internal temp sensors…

Hi @muchu999,

can you please advise how to change protection level to Local 2? I have only these 3 options (Unprotected, Protection by sequence, No operation possible) in node configuration but none of them changes the behavior and IN1 (in normally open alarm mode) always triggers also OUT1.

Thank you


I can confirm that setting Protection CC Type Local to state 2 - “No operation possible” do disconnect the outputs from the inputs.

BUT, I didn’t manage to set this through the Home Assistant Z-wave config UI. I had to use the rather complex software Z-wave PC Controller from Silabs.

Haven’t had the time to investigate what the problems is but it could maybe be that the Smart Implant is using Protection Command Class version 2 and this isn’t supported in OZW yet?

I’m running Home Assistant 0.110.6.

Hi @poffe could you please send a link to that software? I have found a lot of stuff on Silabs webpage so I am not sure which one software is that one I can use to change protection level…

Thank you

Yeah, that’s not an easy one. Let me try to guide you. Can’t really understand why Silabs have made it so complicated to get the software.

  1. Register or login at (not 100% sure this is required but I think so)
  2. Download some other Z-wave software like the Z-wave PC Programmer at
  3. Then return by clicking the “Return” button.
  4. Then you should land at a page with a large blue button/link with the text “PC Controller >” in the center of the page.
  5. Click that button/link and that should download the “” file.

Good luck!

That was really a tricky one! :slight_smile: Thank you @poffe!

@poffe, doe sit mean that existing Smart Implants need to be removed from HA to be used with Silab software to change these settings? Then is separate controller (USB stick) required? Or can this be somehow made easier way, like reconnecting existing stick to PC running controller, changing the setting and returning to previous setup? Please advise!

@mirekmal Not sure how this works for every USB stick. I’ve got an Aeotec Z-Stick Gen 5 and it holds the complete Z-wave node network in itself so all I do is shutdown HA then move the stick to my Windows computer and run the Silabs PC Controller software. So yes, that part isn’t so hard.

Hmm, I run most Z-wave nodes without security (except my ID-locks), not sure if that complicates things or not. The Silabs PC Controller is a very capable software but not the easiest to use. :slight_smile:

@poffe, thanks for confirmation! I also have Aeotec Z-Stick 5, so I should be fine!
Now, knowing that I can decouple inputs from outputs means that I can potentially relese 2 smart implants from my exiting setup by combining functionality onto single device… this is the challenge what to do with them :slight_smile:

This is how to set protection level in that software, it looks quite complicated, took me a while until I found it :slight_smile:

I have also Aeotec Z-Stick 5 - disconnected from Raspberry, connected to Windows computer, configured protection level, connected back to Raspberry. In Zwave2MQTT refreshed node info and I see also protection status in console.