How to use scenes with Fibaro FGS223 switch?

I’m trying to get the FGS223 working with Home Assistant but so far no luck.
As stated in the manual I set the following options:

  • Parameter 20 to 0 (momentary switch)
  • Parameter 28 to 15 (send all scenes for S1)
  • Parameter 29 to 15 (send all scenes for S2)

The problem is I only seem to receive one scene id for all actions (single, click, double click, hold, release).
In the OZW_Log.txt I see:

2017-09-13 09:55:10.832 Info, Node003, Received Central Scene set from node 3: scene id=1 in 0 seconds. Sending event notification.
2017-09-13 09:55:10.834 Warning, Node003, No ValueID created for Scene 1

Anyone have an idea (or example) how to use different scenes?

2 Likes

Thanks @turbokongen that pointed me in the right direction.

This is the xml configuration to use for pressing 1, 2 or 3 times for both switches:

<CommandClass id="91" name="COMMAND_CLASS_CENTRAL_SCENE" version="1" request_flags="5" innif="true" scenecount="0">
  <Instance index="1" />
  <Instance index="2" />
  <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="3" />
  <Value type="int" genre="user" instance="1" index="1" label="Pressed 1 time" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
  <Value type="int" genre="user" instance="1" index="2" label="Pressed 2 times" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
  <Value type="int" genre="user" instance="1" index="3" label="Pressed 3 times" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
  <Value type="int" genre="system" instance="2" index="0" label="Scene Count" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="3" />
  <Value type="int" genre="user" instance="2" index="1" label="Pressed 1 time" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
  <Value type="int" genre="user" instance="2" index="2" label="Pressed 2 times" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
  <Value type="int" genre="user" instance="2" index="3" label="Pressed 3 times" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
</CommandClass>
4 Likes

Hey rchd,

I’m trying to achieve this as well, but i’m stuck unfortunately. My zwave log shows this on startup:
2017-09-24 13:34:41.843 Info, Node002, CentralScene - Created 0

Does it show the same for you?

No, I can’t find that message in the logfile.
Did you change the parameters 28 and 29 and restarted Home Assistent? And change the xml file when Home Assistant was stopped?

That worked for me to trigger events from double clicks. Thanks @rchrd

How do the triggers in your automation look like? Getting crazy with this staff in HA since I’m a beginner in this area.

You have to use scene_id and scene_data.

Scene_id:
1 - left switch
2 - right switch

Scene_data:
0 - Single click
1 - Release
2 - Hold
3 - Double click
4 - Triple click

In an automation it look likes this:

trigger:
  - platform: event
    event_type: zwave.scene_activated
    event_data:
      entity_id: zwave.switch_1
      scene_id: 1
      scene_data: 0
2 Likes

Great, was not aware of the scene_data values. Will try it asap.

@rchrd Is there a way we could provide a patch to openzwave? I think of this but I’m not sure if it’s the right place: https://github.com/OpenZWave/open-zwave/blob/master/config/fibaro/fgs223.xml

Patching the zwcfg file is kind of a botch-job. Shouldn’t there be a more profound solution?

Thanks so much, this is great!
One thing that bothers me though, is that a double click still turns on the device, instead of just sending the scene command. Is there a way to bypass this?

struggling with the same problem?
solved?

I don’t believe there’s a way to solve this, unfortunately. That’s the intended behavior.

It it possible to just send the scene data; that’s the way my Fibaro works. Did you set parameters 28 and 29?

Which module do you have? I believe the old Relay modules supported this, but the new Switch modules do not.

I’ve got the switch and set parameter 20 to 0, 28 to 3 and 29 to 3.

Actually I have some users in an Italian forum having no trouble at all to include it as a proper 223.
I resorted to ask here too as I was out of resources

One thing that is clear is that a secure add is required.
when I run open zwave control panel I see

reinan@ReinasServer:~/open-zwave-control-panel$ vi OZW_Log.txt 
reinan@ReinasServer:~/open-zwave-control-panel$ vi OZW_Log.txt 
reinan@ReinasServer:~/open-zwave-control-panel$ vi /etc/openzwave/options.xml 
reinan@ReinasServer:~/open-zwave-control-panel$ sudo ./ozwcp -p 5555
2019-07-22 18:25:05.484 Error, Cannot find a path to the configuration files at ./config/, Using /etc/openzwave/ instead...
2019-07-22 18:25:05.484 Info, Reading /etc/openzwave/options.xml for Options
2019-07-22 18:25:05.484 Warning, Failed to Parse options.xml: Failed to open file
2019-07-22 18:25:05.484 Always, OpenZwave Version 1.4.0 Starting Up
webserver starting port 5555

so somehow there is some permission problem.

and options are not read (including secure key).

Indeed whrn I try to add the node it adds as unknown device and insecure.
any help appreciated

and here are the files permissions

reinan@ReinasServer:~/open-zwave-control-panel$ ls -la /etc/openzwave/options.xml
-rw-r--r-- 1 reinan root 586 Jul 22 18:25 /etc/openzwave/options.xml
reinan@ReinasServer:~/open-zwave-control-panel$ ls -la /home/reinan/open-zwave/config/options.xml-rw-r--r-- 1 reinan reinan 703 Jul 22 17:21 /home/reinan/open-zwave/config/options.xml
reinan@ReinasServer:~/open-zwave-control-panel$ ls -la /home/homeassistant/.homeassistant/options.xml-rw-r--r-- 1 homeassistant homeassistant 703 Jul 22 18:11 /home/homeassistant/.homeassistant/options.xml
reinan@ReinasServer:~/open-zwave-control-panel$ ls -la /home/homeassistant/homeassistant/lib/python3.7/site-packages/python_openzwave/ozw_config/options.xml
-rw-r--r-- 1 root root 702 Jul 22 18:11 /home/homeassistant/homeassistant/lib/python3.7/site-packages/python_openzwave/ozw_config/options.xml
reinan@ReinasServer:~/open-zwave-control-panel$ ls -la /usr/local/etc/openzwave/options.xml-rw-r--r-- 1 root root 702 Jul 22 18:22 /usr/local/etc/openzwave/options.xml
reinan@ReinasServer:~/open-zwave-control-panel$ ls -la /usr/local/etc/openzwave/options.xml-rw-r--r-- 1 root root 702 Jul 22 18:22 /usr/local/etc/openzwave/options.xml
reinan@ReinasServer:~/open-zwave-control-panel$ 


here is  my options.xml

<?xml version="1.0" encoding="utf-8"?> 
<!-- To be effective, this file should be placed in the user data folder specified in the Options::Create method --> 
<Options xmlns='http://code.google.com/p/open-zwave/'> 
  <Option name="logging" value="true" /> 
  <Option name="Associate" value="true" /> 
  <Option name="NotifyTransactions" value="false" /> 
  <Option name="DriverMaxAttempts" value="5" /> 
  <Option name="SaveConfiguration" value="true" /> 
  <Option name="NetworkKey" value="0x11, 0x12, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0xFA, 0x0B, 0xAA, 0x0D, 0xEE, 0x0F, 0x20" /> 
  <Option name="RefreshAllUserCodes" value="false" /> 
  <Option name="ThreadTerminateTimeout" value="5000" /> 
</Options>

key edited

Finally!Success!

Seen as fgs 223.
Was a matter of security key not read!

Did you update firmware or anything? I’m using similar settings and the switch is also turned on/off together with the scene being triggered. I also got a response from the retailer that it’s the designed behavior.