Fibaro Smart Implant - Monostable INs - How to use Scenes?

Hello everybody,

im very new to HA and read a lot lately about but could not really find what I need. I appreciate your help :slight_smile:

We got a new fence and years ago I forgot to lay cables for the doorbell to the outside of the house.

Thats why I bought 2 Fibaro Smart Implants, one for the door and one for the gate. With some reed relais and rectifier (doorbell needs 18V AC) everything works fine.

I configured Param 20 (IN1) with Normal open Alarm input. And connected the relais to OUT2 because in this configuration OUT1 switches everytime when IN1 is closed. This seems to be hard coded in this configuration. No problem so far, but I need two OUTs independently from the INs at the (fence)gate, because I would like to switch the lights from the side walk and the mailbox.

So I tried IN1 as Monostable and Paramt 40 with 1, 2, 4 and 8. But the OZW log only shows received scenes with 2,4 or 8 configured. (2 = double tap, 4 = tripple tab, 8 = hold and release) Those are not suitable for a doorbell I think (hold and release fires only when you hold at least 1-2 seconds)

Has anybody a suggestion why param 40 with 1 = single tab configured does not sent a scene?
And how do I use those scenes in HA? I read this: about Central_Scene configuration but the smart Implant ist not listed and I dont really get what to do here.

I tried to add the following into zwcfg_*.xml:

<CommandClass id="91" name="COMMAND_CLASS_CENTRAL_SCENE" version="1" request_flags="1" innif="true" scenecount="0">
  <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="system" instance="1" index="1" label="Button One" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
</CommandClass>

But how do I use it in automations? Any help would be great.

Thanks in advance

Hey Marcus,
I do not know if you ever found out about the scenes, but I did, and I will show you the wordaround-style solution to it. I actually used the info you provided which was a helpful piece in the puzzle that I was caught up in for days.
Mind you, this only applies to the OpenZWave integration. Z-Wave JS does not suffer from the Z-Wave scene problem with the Smart Implant.

Here are the steps to get the Z-Wave scenes working on the Fibaro Smart Implant:

0 - Some remarks and considerations: I still use the Z-Wave (deprecated) integration and these steps are for everyone including the ones with just basic knowledge of this matter.

1 - In Home Assistant go to Configuration > Z-Wave integration > Configure and click Stop Network. This step is necessary to prevent the modification that are about to be made in the zwcfg_*.xml file from being overwritten, which would render modifying the file meaningless.

2 - Stop Home Assistant.

3 - Locate the zwcfg_*.xml file, where * equals an unique hex number that is probably derived from the Z-Wave integration, and make a copy somewhere else as a backup just in case you want to go back.

4 - Open it, search for Smart Implant and locate the part <CommandClass id="91" a little further down.

5 - Replace that part with this:

			<CommandClass id="91" name="COMMAND_CLASS_CENTRAL_SCENE" version="1" request_flags="5" innif="true" scenecount="0">
				<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="system" instance="1" index="1" label="Button One" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
				<Value type="int" genre="system" instance="1" index="2" label="Button Two" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
			</CommandClass>

Make sure everything is lined up accordingly to the rest, copy/paste the spacings in the new lines from other existing lines if necessary. Best is to repeat these steps 4 and 5 for every Smart Implant that is part of the network.

6 - Restart Home Assistant. Mind that restarting the Z-Wave network may take a few minutes now, which can be checked at the integration itself.

7 - Identify which Node ID corresponds with the Smart Implant(s) you want to address at Configuration > Z-Wave integration > Configure, click Nodes and make note of the Node numbers that correspond with these.

8 - Check in the Smart Implant Operating Manual and consider what is possible with Parameter 40 and 41 and the necessary settings for Parameter 20 and/or 21, matching with what you want.

9 - The settings can be made e.g. at Developer Tools > Services > choose Z-Wave (deprecated): Set config parameter as service but there are various ways in doing so, even using a perhaps unconventional way like a totally other application (which might offer a better overview of the settings). The parameters settings are stored in the Z-Wave modules, as you may be aware of. Choose YAML mode and make the proper settings. In this example at Node ID 13 I am first setting Input 2 to be a monostable button. Click Call Service after:

service: zwave.set_config_parameter
data:
  node_id: 13
  parameter: 21
  value: '2'

Then in the example I am setting Input 2 to respond to a double tap:

service: zwave.set_config_parameter
data:
  node_id: 13
  parameter: 41
  value: '2'

10 - To check what is happening on the event bus go to Developer Tools > Events and at Listen to events enter zwave.scene_activated and click Start Listening. If the button now is double tapped a JSON response will be received here, showing the involved details that we need later in Automations.

11 - The YAML of the Automation’s trigger for his Smart Implant would then be:

platform: event
event_type: zwave.scene_activated
event_data:
  entity_id: zwave.fibaro_system_fgbs222_smart_implant
  scene_id: 2
  scene_data: 3

The correct entity ID can be found at Configuration > Z-Wave integration > Configure > select the node > click Node Information > the gear sign > in Settings you will find the Entity ID which you can copy.

12 - Overview of parameter 40/41 values that can be set at e.g. monostable buttons, the corresponding action to invoke the scene and the returning value of scene_data to check on as trigger in Automations.
Value 8 is quite interesting as it results in 2 scenes, corresponding with the 2 states of the input: button pressed/contact closed and released/contact open.

1 = button tapped 1 time > scene_data: 0 (actually the use of this scene does not make sense to me)
2 = button tapped 2 times > scene_data: 3
3 = button tapped 3 times > scene_data: 4
8 = button hold down/closed > scene_data: 1 ... button released/open > scene_data: 2

Hope this all helps and please let me know if any questions arise, although I have to admit that my knowledge on the matter does not go that much deeper than mentioned here in the above. I had just put all the pieces of the puzzle together.
Mind that if you change something on the Z-Wave network the zwcfg_*.xml could become overwritten, I have not tested this. This is due to the fact that the procedure above is based on a workaround.

1 Like