Fibaro Double On/Off Relay Switch 2x1.5kW FGS221 show up as 2 switches

FGS-221 Double Relay Switch is a multichannel device. It means that it has two independent executive circuits - each circuit is recognized by the FIBARO Home Center controller as a separate device.

Accordingly, each channel is represented by an independent icon. The first channel is operated by a push-button connected to S1 terminal and it is the main (default) channel.

The association of the second channel of the double relay switch may be operated only by devices supporting multi-channel association .

Question:
Does Samrtthings support multi-channel association .? if so how?

Just starting out with the Fibaro FGS-221 Double Relay Switch and a Smartthings hub; unable to get it recongized as a device. My assumption was that all/any zwave enabled device would work with the Smartthings hub; can anyone help in setting this up ?

Thanks

Your assumption is wrong : the SmartThings Hub supports only Z-wave devices for which a SmartThings specific device handler has been developed.
According to this list of ST compatible devices, FGS-221 is definitely NOT officially supported at this time.
Furthermore, you would need a US version of the FGS-221 (908,4 MHz).
Look at this Fibaro Things - General thread for advanced Fibaro Devices Custom Handlers… and all the caveats which come with them.

The SmartThings hub is certified as a static controller on the U.S. Zwave frequency for the Basic command set.

That means it should be able to pair with a U.S. frequency certified zwave device and send it basic commands, typically on/off.

Above that, it just depends. Some devices will be fully supported, some features will work with a custom device handler, and some will use command sets not supported by the SmartThings hub.

The official “works with SmartThings list” lists specific models. That have been tested for compatibility. But if there’s a tiny I on the far right, read the notes carefully. It still may not mean all features are supported. And if the notes say “smartthings labs,” it’s a beta integration.

For anything else, check the forums.

Thanks @JDRoberts @geeji

Smartthings hub was’nt yet available in europe so got it from US; Fibaro devices are european, was’nt aware that there would be different frequencies in use. Is it at all possible, with a custom device type to get these to connect or am I wasting my time?

If they are different zwave frequencies, they can’t hear each other, the device handler doesn’t matter.

Fibaro, like many zwave manufacturers, makes different versions of many of their devices, some with the U.S. Frequency, some with the EU. Each device will be labeled with its frequency. U.S. Starts with 9, EU with 8. See the international FAQ for more discussion.

My FGS222 was realized as Z-Wave Device Multichannel.
I need to set the Parameter 14 to 0, i want to switch from Toggle Switch to Momentary Switch.

Is it possible with ST?

Hi @MichaelC

Have a look at Philio PAN04 Dual Relay Device Type

if you need any more help give me a shout

Paul

Hi @pukka
Thanks for your efforts on this - I’ve installed a Fibaro FGS222 using your modified version of @erocm1231’s device handler. I’m getting a recurring problem however,and I’m not sure if it’s an issue with parameters or something else (could be wiring but I’m pretty sure I did that right…
Switch 1 works fine, from both wall switch and mobile app (via a simulated switch)
Switch 2 misbehaves when using the wall switch only. From the off state, when switched on, the light rapidly turns on/off/on and sometimes then off again.

I’ve captured the logs below, of first switch 1 being turned on and off, and then switch 2 - any pointers much appreciated!
Cheers
Matt

9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:35 GMT: debug Parsed MultiChannelCmdEncap(bitAddress: false, command: 3, commandClass: 37, destinationEndPoint: 1, parameter: [255], sourceEndPoint: 2) to [['name':switch2, 'value':'on', 'isStateChange':true, 'displayed':true, 'linkText':'WC relay', 'descriptionText':WC relay switch2 is on]]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:35 GMT: debug Parsed MultiChannelCmdEncap(bitAddress: false, command: 3, commandClass: 37, destinationEndPoint: 1, parameter: [0], sourceEndPoint: 1) to [['name':switch1, 'value':'off', 'isStateChange':false, 'displayed':false, 'linkText':'WC relay', 'descriptionText':WC relay switch1 is off]]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:34 GMT: debug Parsed MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1) to [null]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:34 GMT: debug multichannelv3.MultiChannelCapabilityReport MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1)
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:34 GMT: debug Parsed MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1) to [null]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:34 GMT: debug multichannelv3.MultiChannelCapabilityReport MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1)
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:33 GMT: debug Parsed MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1) to [null]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:33 GMT: debug multichannelv3.MultiChannelCapabilityReport MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1)
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:33 GMT: debug Parsed BasicSet(value: 0) to [physicalgraph.device.HubMultiAction@1239e651]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:32 GMT: debug Parsed MultiChannelCmdEncap(bitAddress: false, command: 3, commandClass: 37, destinationEndPoint: 1, parameter: [255], sourceEndPoint: 2) to [['name':switch2, 'value':'on', 'isStateChange':true, 'displayed':true, 'linkText':'WC relay', 'descriptionText':WC relay switch2 is on]]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:32 GMT: debug Parsed MultiChannelCmdEncap(bitAddress: false, command: 3, commandClass: 37, destinationEndPoint: 1, parameter: [0], sourceEndPoint: 1) to [['name':switch1, 'value':'off', 'isStateChange':false, 'displayed':false, 'linkText':'WC relay', 'descriptionText':WC relay switch1 is off]]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:31 GMT: debug Parsed MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1) to [null]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:31 GMT: debug multichannelv3.MultiChannelCapabilityReport MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1)
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:31 GMT: debug Parsed MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1) to [null]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:31 GMT: debug multichannelv3.MultiChannelCapabilityReport MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1)
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:30 GMT: debug Parsed MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1) to [null]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:30 GMT: debug multichannelv3.MultiChannelCapabilityReport MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1)
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:30 GMT: debug Parsed BasicSet(value: 0) to [physicalgraph.device.HubMultiAction@50811de]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:26 GMT: debug Parsed MultiChannelCmdEncap(bitAddress: false, command: 3, commandClass: 37, destinationEndPoint: 1, parameter: [255], sourceEndPoint: 2) to [['name':switch2, 'value':'on', 'isStateChange':true, 'displayed':true, 'linkText':'WC relay', 'descriptionText':WC relay switch2 is on]]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:26 GMT: debug Parsed MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1) to [null]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:26 GMT: debug multichannelv3.MultiChannelCapabilityReport MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1)
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:25 GMT: debug Parsed MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1) to [null]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:25 GMT: debug multichannelv3.MultiChannelCapabilityReport MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1)
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:25 GMT: debug Parsed MultiChannelCmdEncap(bitAddress: false, command: 3, commandClass: 37, destinationEndPoint: 1, parameter: [0], sourceEndPoint: 1) to [['name':switch1, 'value':'off', 'isStateChange':false, 'displayed':false, 'linkText':'WC relay', 'descriptionText':WC relay switch1 is off]]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:24 GMT: debug Parsed BasicSet(value: 0) to [physicalgraph.device.HubMultiAction@3757d2c2]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:24 GMT: debug Parsed MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1) to [null]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:24 GMT: debug multichannelv3.MultiChannelCapabilityReport MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1)
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:12 GMT: debug Parsed MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1) to [null]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:12 GMT: debug multichannelv3.MultiChannelCapabilityReport MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1)
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:12 GMT: debug Parsed MultiChannelCmdEncap(bitAddress: false, command: 3, commandClass: 37, destinationEndPoint: 1, parameter: [0], sourceEndPoint: 2) to [['name':switch2, 'value':'off', 'isStateChange':false, 'displayed':false, 'linkText':'WC relay', 'descriptionText':WC relay switch2 is off]]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:11 GMT: debug Parsed MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1) to [null]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:11 GMT: debug multichannelv3.MultiChannelCapabilityReport MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1)
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:11 GMT: debug Parsed MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1) to [null]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:11 GMT: debug multichannelv3.MultiChannelCapabilityReport MultiChannelCapabilityReport(commandClass: [37], dynamic: false, endPoint: 2, genericDeviceClass: 16, specificDeviceClass: 1)
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:11 GMT: debug Parsed MultiChannelCmdEncap(bitAddress: false, command: 3, commandClass: 37, destinationEndPoint: 1, parameter: [0], sourceEndPoint: 1) to [['name':switch1, 'value':'off', 'isStateChange':false, 'displayed':false, 'linkText':'WC relay', 'descriptionText':WC relay switch1 is off]]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:11 GMT: debug Parsed BasicSet(value: 255) to [physicalgraph.device.HubMultiAction@3a20acda]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:01 GMT: debug Parsed MultiChannelCmdEncap(bitAddress: false, command: 3, commandClass: 37, destinationEndPoint: 1, parameter: [0], sourceEndPoint: 2) to [['name':switch2, 'value':'off', 'isStateChange':false, 'displayed':false, 'linkText':'WC relay', 'descriptionText':WC relay switch2 is off]]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:00 GMT: debug Parsed MultiChannelCmdEncap(bitAddress: false, command: 3, commandClass: 37, destinationEndPoint: 1, parameter: [0], sourceEndPoint: 1) to [['name':switch1, 'value':'off', 'isStateChange':true, 'displayed':true, 'linkText':'WC relay', 'descriptionText':WC relay switch1 is off]]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:20:00 GMT: debug Parsed BasicSet(value: 0) to [physicalgraph.device.HubMultiAction@2ba538ef]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:19:56 GMT: debug Parsed MultiChannelCmdEncap(bitAddress: false, command: 3, commandClass: 37, destinationEndPoint: 1, parameter: [0], sourceEndPoint: 2) to [['name':switch2, 'value':'off', 'isStateChange':false, 'displayed':false, 'linkText':'WC relay', 'descriptionText':WC relay switch2 is off]]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:19:55 GMT: debug Parsed MultiChannelCmdEncap(bitAddress: false, command: 3, commandClass: 37, destinationEndPoint: 1, parameter: [255], sourceEndPoint: 1) to [['name':switch1, 'value':'on', 'isStateChange':true, 'displayed':true, 'linkText':'WC relay', 'descriptionText':WC relay switch1 is on]]
9523dc52-74fe-44c9-bef9-19d6a8dfe861  08:19:55 GMT: debug Parsed BasicSet(value: 255) to [physicalgraph.device.HubMultiAction@66545331]

The Philio Device type isn’t suitable for the Fibaro or Monoprice anymore, so hopefully you are using my generic device handler:

Make sure your virtual devices are using the “Simulated Switch” device handler and use this app to keep them in sync:

Let me know if that works for you.

1 Like

Thanks @erocm1231,
Have been using the
For some reason I’m getting an IDE error when trying to change the device to your generic DH.

Oh No! Something Went Wrong!
Error
500: Internal Server Error
URI
/device/update
Reference Id
6a99e8fb-24b7-497b-b3d0-3acaf68d20fb
Date
Wed Mar 02 22:55:22 UTC 2016

@aubers

Sorry about that, I fixed a bug. Can you try again?

@erocm1231
it’s working perfectly now - many thanks for your help :+1:
Matt

1 Like

Your code is working for me. But i have a problem. I receive z-wave events only for the 1st switch. So when i toggle the 2nd switch, it’s not updated in the app. Also when i log the ‘parse’ method, i see only logs for the 1st switch. Do you guys have that same problem?

Sorry, my bad. The solution is in this topic:

-Go to my devices
-Click your device
-Next to preferences, click edit
-For “Associate SmartThings with this group” enter value “2” (without the quotes of course).

Cheers

This code has been working really well for me with my first multi-channel device. However, I now have two FGS221’s and when I set up the second with the Smart App, the first stops working. Is it possible to use this code to deal with mutiple devices and if so, how would I do this?

Many thanks,

Simon

Make a copy of the app for each relay. Make sure you name them differently and don’t forget to assign a Device Handler accordingly.

Thanks Saleh - that’s exactly what I did and it works fine.

Simon

If I buy this Fibaro double relay, will I be able to stick it behind a wall socket and connect it to two electrical plugs, thereby controlling both of them separately?

Should be possible with a fused spur. Some details can be found here:

http://www.vesternet.com/resources/application-notes/apnt-70#.V-oj0_B4WaM

I’m currently having a bit of bother with mine not responding after a week. Removing and re-pairing seems to get it going again. Going to try some of the custom handlers mentioned here, at the moment it paired with ST right out the box.

1 Like