FGS-222 Dual Relays not working

I am in the process of making sure all my devices can be transferred from Smartthings to Hubitat.

All has been going well until my dual Z-Wave Relays.

I actually use TKB Home TZ74 Relays which work perfectly and are very reliable in Smartthings using Robin Winbourne's FGS-222 DH.

I am now trying to use Robin's Hubitat driver for the same device. They connect fine and seem to be OK until I try to use them, then they seem to lock up, and checking the Log files indicates something is going wrong.

I won't post the whole log file as it runs to pages of the same thing within a few minutes.

dev:662020-08-07 13:41:51.584 debugParsed SwitchBinaryReport(value:0, targetValue:0, duration:0) to [hubitat.device.HubMultiAction@986817]

dev:662020-08-07 13:41:51.581 debugParsed SwitchBinaryReport(value:0, targetValue:0, duration:0) to [hubitat.device.HubMultiAction@27d0d9]

dev:662020-08-07 13:41:51.570 debugParsed SwitchBinaryReport(value:0, targetValue:0, duration:0) to [hubitat.device.HubMultiAction@1a13318]

dev:662020-08-07 13:41:51.446 debugParsed SwitchBinaryReport(value:0, targetValue:0, duration:0) to [hubitat.device.HubMultiAction@1b0abe0]

dev:662020-08-07 13:41:51.431 debugParsed SwitchBinaryReport(value:255, targetValue:0, duration:0) to [hubitat.device.HubMultiAction@b8b0d7]

dev:662020-08-07 13:41:51.427 debugParsed SwitchBinaryReport(value:255, targetValue:0, duration:0) to [hubitat.device.HubMultiAction@229458]

dev:662020-08-07 13:41:51.286 debugParsed SwitchBinaryReport(value:255, targetValue:0, duration:0) to [hubitat.device.HubMultiAction@1dc6ec7]

As you can see, the only attached switch is already trying to communicate about 10 times a second. I have 30+ of these devices and not getting them to work in Hubitat is going to make for a very expensive migration.

I also read various forum posts that indicate problems a while back and nothing about the issue being fixed. I haven't tried adding virtual switches for individual control either yet!

Can someone please point me in the right direction as I am stuck!

Thanks

Unfortunately there are issues with Fibaro devices and the new C7 hub.
They work OK omn the old hubs but this Z-Wave stack has caused issues with these devices.
The only thing I can suggest is you leave them on ST and use HubConnect to control them through HE.

@mike.maxwell @bcopeland
Another user scratching around to get these devices to work.
While you are looking to resolve this issue can you please, please, please put out some sort of tagged post that is closed to general people so that users are aware of pairing issues with Fibaro devices.
If not you are going to have more frustrated users wasting their time trying to get these devices to work.
Thanks.

1 Like

Thanks for the quick reply.

I am not in a hurry to migrate from Smartthings so I can wait for now.

What I want to know is this a firmware/software issue which will get resolved or is it an issue with the z wave stack which we are stuck with.

Thanks.

@mike.maxwell @bcopeland
Would you care to comment on @neil.e.vass's question?

It's both actually, radio firmware and zwave stack.
We have some fixes going to beta, probably today.

I'll specifically take a look at the 222 today.

the 222 isn't on our compatible device list, meaning we don't have an inbuilt driver for it.
If you provide a link to the driver you're using, I can try to find the issue using an fgs-223, which is the dual switch.

@mike.maxwell Is it OK to just post the code here?

/**
 *  
 *	Fibaro FGS-222 Double Relay Switch Device Type - For use on Hubitat
 *  
 *	Author: Robin Winbourne
 *	Date: 2018-03-24 
 */
 
metadata {
definition (name: "Fibaro FGS-222 Double Relay Switch", namespace: "hubitat", author: "Robin Winbourne") {
capability "Switch"
capability "Relay Switch"
capability "Polling"
capability "Configuration"
capability "Refresh"
//capability "Zw Multichannel"

attribute "switch1", "string"
attribute "switch2", "string"

command "on1"
command "off1"
command "on2"
command "off2"
    
command "updateSingleParam" // This custom command can be used with Rule Machine or webCoRE, to send parameter values (paramNr & paramvalue) to the device

fingerprint deviceId: "0x1001", inClusters:"0x86, 0x72, 0x85, 0x60, 0x8E, 0x25, 0x20, 0x70, 0x27"

}
    
   preferences {
        input name: "param1", type: "enum", defaultValue: "255", required: true,
            title: "Parameter No. 1 - Activate / deactivate functions ALL ON / ALL OFF. Default value: 255.",
       		options: [
                    ["255" : "255 - ALL ON active, ALL OFF active"],
                    ["0" : "0 - ALL ON is not active ALL OFF is not active"],
                    ["1" : "1 - ALL ON is not active ALL OFF active"],
                    ["2" : "2 - ALL ON active ALL OFF is not active"]
                ]
       
        input name: "param3", type: "enum", defaultValue: "0", required: true,
            title: "Parameter No. 3 - Auto off relay after specified time, with the possibility of manual override - immediate Off after button push. Default value: 0.",
       		options: [
                    ["0" : "0 - Manual override disabled"],
                    ["1" : "1 - Manual override enabled"]
                ]

		input name: "param4", type: "number", range: "0..65535", defaultValue: "0", required: true,
            title: "Parameter No. 4 - Auto off for relay 1.  " +
                   "Available settings:\n" +
                   "[1 - 65535] (0,1 s – 6553,5 s) Time period for auto off, in miliseconds,\n" +
                   "0 - Auto off disabled.\n" +
                   "Default value: 0."

		input name: "param5", type: "number", range: "0..65535", defaultValue: "0", required: true,
            title: "Parameter No. 5 - Auto off for relay 2.  " +
                   "Available settings:\n" +
                   "[1 - 65535] (0,1 s – 6553,5 s) Time period for auto off, in miliseconds,\n" +
                   "0 - Auto off disabled.\n" +
                   "Default value: 0."

		input name: "param6", type: "enum", defaultValue: "0", required: true,
            title: "Parameter No. 6 - Sending commands to control devices assigned to 1st association group (key no. 1). " +
                   "NOTE: Parameter 15 value must be set to 1 to work properly. Default value: 0.",
       		options: [
                    ["0" : "0 - Commands are sent when device is turned on and off"],
                    ["1" : "1 - Commands are sent when device is turned off"],
                	["2" : "2 - Commands are sent when device is turned off"]
                ]

       		input name: "param7", type: "enum", defaultValue: "0", required: true,
            title: "Parameter No. 7 - Sending commands to control devices assigned to 2nd association group (key no. 2). " +
                   "NOTE: Parameter 15 value must be set to 1 to work properly. Default value: 0.",
       		options: [
                    ["0" : "0 - Commands are sent when device is turned on and off"],
                    ["1" : "1 - Commands are sent when device is turned off"],
                	["2" : "2 - Commands are sent when device is turned off"]
                ]

		input name: "param13", type: "enum", defaultValue: "0", required: true,
            title: "Parameter No. 13 - Assigns bistable key status to the device. Default value: 0.",
       		options: [
                    ["0" : "0 - Device changes status on key status change"],
                    ["1" : "1 - Device status depends on key status: ON when the key is ON"]
                ]

		input name: "param14", type: "enum", defaultValue: "1", required: true,
            title: "Parameter No. 14 - Switch type connector, you may choose between momentary and toggle switches. Default value: 1.",
       		options: [
                    ["0" : "0 - Momentary switch"],
                    ["1" : "1 - Toggle switch"]
                ]

		input name: "param15", type: "enum", defaultValue: "0", required: true,
            title: "Parameter No. 15 - Operation of the Dimmer and Roller Shutter Controller - enabling this option allows the user to dim lighting/shut roller by associating Dimmer/Roller Shutter Controller and holding or double press of double switch (only mono-stable switch). Default value: 0.",
       		options: [
                    ["0" : "0 - Dimmer/Roller Shutter Controller control is not active"],
                    ["1" : "1 - Dimmer/Roller Shutter Controller control is active"]
                ]

		input name: "param16", type: "enum", defaultValue: "1", required: true,
            title: "Parameter No. 16 - Saving the state of the device after a power failure. Default value: 1.",
       		options: [
                    ["0" : "0 - Switch returns to 'off' position"],
                    ["1" : "1 - Switch saves its state before power failure"]
                ]

        input name: "param30", type: "enum", defaultValue: "3", required: true,
            title: "Parameter No. 30 - Relay 1 - Response to General Alarm. Default value: 3.",
       		options: [
                    ["0" : "0 - Switch does not respond to alarm"],
                    ["1" : "1 - Switch turns on after detecting an alarm"],
                	["2" : "2 - Switch turns off after detecting an alarm"],
                	["3" : "3 - Switch flashes after detecting an alarm"]
                ]

     	input name: "param31", type: "enum", defaultValue: "2", required: true,
            title: "Parameter No. 31 - Relay 1 - Response to Flood Alarm. Default value: 2.",
       		options: [
                    ["0" : "0 - Switch does not respond to alarm"],
                    ["1" : "1 - Switch turns on after detecting an alarm"],
                	["2" : "2 - Switch turns off after detecting an alarm"],
                	["3" : "3 - Switch flashes after detecting an alarm"]
                ]
               
       input name: "param32", type: "enum", defaultValue: "3", required: true,
            title: "Parameter No. 32 - Relay 1 - Response to Smoke, CO, CO2 Alarm. Default value: 3.",
       		options: [
                    ["0" : "0 - Switch does not respond to alarm"],
                    ["1" : "1 - Switch turns on after detecting an alarm"],
                	["2" : "2 - Switch turns off after detecting an alarm"],
                	["3" : "3 - Switch flashes after detecting an alarm"]
                ]
       
       input name: "param33", type: "enum", defaultValue: "1", required: true,
            title: "Parameter No. 33 - Relay 1 - Response to Temperature Alarm. Default value: 1.",
       		options: [
                    ["0" : "0 - Switch does not respond to alarm"],
                    ["1" : "1 - Switch turns on after detecting an alarm"],
                	["2" : "2 - Switch turns off after detecting an alarm"],
                	["3" : "3 - Switch flashes after detecting an alarm"]
                ]

    	input name: "param40", type: "enum", defaultValue: "3", required: true,
            title: "Parameter No. 40 - Relay 2 - Response to General Alarm. Default value: 3.",
       		options: [
                    ["0" : "0 - Switch does not respond to alarm"],
                    ["1" : "1 - Switch turns on after detecting an alarm"],
                	["2" : "2 - Switch turns off after detecting an alarm"],
                	["3" : "3 - Switch flashes after detecting an alarm"]
                ]

     	input name: "param41", type: "enum", defaultValue: "2", required: true,
            title: "Parameter No. 41 - Relay 2 - Response to Flood Alarm. Default value: 2.",
       		options: [
                    ["0" : "0 - Switch does not respond to alarm"],
                    ["1" : "1 - Switch turns on after detecting an alarm"],
                	["2" : "2 - Switch turns off after detecting an alarm"],
                	["3" : "3 - Switch flashes after detecting an alarm"]
                ]
               
       input name: "param42", type: "enum", defaultValue: "3", required: true,
            title: "Parameter No. 42 - Relay 2 - Response to Smoke, CO, CO2 Alarm. Default value: 3.",
       		options: [
                    ["0" : "0 - Switch does not respond to alarm"],
                    ["1" : "1 - Switch turns on after detecting an alarm"],
                	["2" : "2 - Switch turns off after detecting an alarm"],
                	["3" : "3 - Switch flashes after detecting an alarm"]
                ]
       
       input name: "param43", type: "enum", defaultValue: "1", required: true,
            title: "Parameter No. 43 - Relay 2 - Response to Temperature Alarm. Default value: 1.",
       		options: [
                    ["0" : "0 - Switch does not respond to alarm"],
                    ["1" : "1 - Switch turns on after detecting an alarm"],
                	["2" : "2 - Switch turns off after detecting an alarm"],
                	["3" : "3 - Switch flashes after detecting an alarm"]
                ]

		input name: "param39", type: "number", range: "0..65535", defaultValue: "600", required: true,
            title: "Parameter No. 39 - Active flashing alarm time. " +
            	   "This parameter allows to set time parameter used in timed modes.\n" +
                   "Available settings:\n" +
                   "[1-65535][ms].\n" +
                   "Default value: 600."
       
    input name: "paramAssociationGroup1", type: "bool", defaultValue: true, required: true,
             title: "The Fibaro Sigle Switch provides the association of three groups.\n\n" +
                    "1st group is assigned to key no. 1.\n" +
                    "Default value: true"

        input name: "paramAssociationGroup2", type: "bool", defaultValue: true, required: true,
             title: "2nd group is assigned to key no. 2.\n" +
                    "Default value: true"

        input name: "paramAssociationGroup3", type: "bool", defaultValue: false, required: true,
             title: "3rd group reports state of devices. Only one device can be associated to this group.\n" +
                    "Default value: false"
    }
}

def parse(String description) {
    def result = []
    def cmd = zwave.parse(description)
    if (cmd) {
        result += zwaveEvent(cmd)
        log.debug "Parsed ${cmd} to ${result.inspect()}"
    } else {
        log.debug "Non-parsed event: ${description}"
    }
    return result
}


def zwaveEvent(hubitat.zwave.commands.basicv1.BasicSet cmd) {
	sendEvent(name: "switch", value: cmd.value ? "on" : "off", type: "digital")
    def result = []
    result << zwave.multiChannelV4.multiChannelCmdEncap(sourceEndPoint:1, destinationEndPoint:1, commandClass:37, command:2).format()
    result << zwave.multiChannelV4.multiChannelCmdEncap(sourceEndPoint:1, destinationEndPoint:2, commandClass:37, command:2).format()
    response(delayBetween(result, 1000)) // returns the result of reponse()
}

def zwaveEvent(hubitat.zwave.commands.switchbinaryv1.SwitchBinaryReport cmd)
{
    sendEvent(name: "switch", value: cmd.value ? "on" : "off", type: "digital")
    def result = []
    result << zwave.multiChannelV4.multiChannelCmdEncap(sourceEndPoint:1, destinationEndPoint:1, commandClass:37, command:2).format()
    result << zwave.multiChannelV4.multiChannelCmdEncap(sourceEndPoint:1, destinationEndPoint:2, commandClass:37, command:2).format()
    response(delayBetween(result, 1000)) // returns the result of reponse()
}


def zwaveEvent(hubitat.zwave.commands.multichannelv4.MultiChannelCapabilityReport cmd) 
{
    log.debug "multichannelv4.MultiChannelCapabilityReport $cmd"
    if (cmd.endPoint == 2 ) {
        def currstate = device.currentState("switch2").getValue()
        if (currstate == "on")
        	sendEvent(name: "switch2", value: "off", isStateChange: true, display: false)
        else if (currstate == "off")
        	sendEvent(name: "switch2", value: "on", isStateChange: true, display: false)
    }
    else if (cmd.endPoint == 1 ) {
        def currstate = device.currentState("switch1").getValue()
        if (currstate == "on")
        sendEvent(name: "switch1", value: "off", isStateChange: true, display: false)
        else if (currstate == "off")
        sendEvent(name: "switch1", value: "on", isStateChange: true, display: false)
    }
}

def zwaveEvent(hubitat.zwave.commands.multichannelv4.MultiChannelCmdEncap cmd) {
   def map = [ name: "switch$cmd.sourceEndPoint" ]
    
   switch(cmd.commandClass) {
      case 32:
         if (cmd.parameter == [0]) {
            map.value = "off"
         }
         if (cmd.parameter == [255]) {
            map.value = "on"
         }
         createEvent(map)
         break
      case 37:
         if (cmd.parameter == [0]) {
            map.value = "off"
         }
         if (cmd.parameter == [255]) {
            map.value = "on"
         }
         break
    }
    def events = [createEvent(map)]
    if (map.value == "on") {
            events += [createEvent([name: "switch", value: "on"])]
    } else {
         def allOff = true
         (1..2).each { n ->
             if (n != cmd.sourceEndPoint) {
                 if (device.currentState("switch${n}").value != "off") allOff = false
             }
         }
         if (allOff) {
             events += [createEvent([name: "switch", value: "off"])]
         }
    }
    events
}

def zwaveEvent(hubitat.zwave.Command cmd) {
    // This will capture any commands not handled by other instances of zwaveEvent
    // and is recommended for development so you can see every command the device sends
    return createEvent(descriptionText: "${device.displayName}: ${cmd}")
}

def zwaveEvent(hubitat.zwave.commands.switchallv1.SwitchAllReport cmd) {
   log.debug "SwitchAllReport $cmd"
}

def refresh() {
	def cmds = []
    cmds << zwave.manufacturerSpecificV2.manufacturerSpecificGet().format()
	cmds << zwave.multiChannelV4.multiChannelCmdEncap(sourceEndPoint:1, destinationEndPoint:1, commandClass:37, command:2).format()
    cmds << zwave.multiChannelV4.multiChannelCmdEncap(sourceEndPoint:1, destinationEndPoint:2, commandClass:37, command:2).format()
	delayBetween(cmds, 1000)
}

def zwaveEvent(hubitat.zwave.commands.manufacturerspecificv2.ManufacturerSpecificReport cmd) {
	def msr = String.format("%04X-%04X-%04X", cmd.manufacturerId, cmd.productTypeId, cmd.productId)
	log.debug "msr: $msr"
    updateDataValue("MSR", msr)
}

def poll() {
	def cmds = []
	cmds << zwave.multiChannelV4.multiChannelCmdEncap(sourceEndPoint:1, destinationEndPoint:1, commandClass:37, command:2).format()
    cmds << zwave.multiChannelV4.multiChannelCmdEncap(sourceEndPoint:1, destinationEndPoint:2, commandClass:37, command:2).format()
	delayBetween(cmds, 1000)
}

def configure() {
	log.debug "Executing 'configure'"
    delayBetween([
          zwave.configurationV1.configurationSet(parameterNumber:1, configurationValue:[param1.value]).format(),
          zwave.configurationV1.configurationSet(parameterNumber:3, configurationValue:[param3.value]).format(),
          zwave.configurationV1.configurationSet(parameterNumber:4, configurationValue:[param4.value]).format(),
          zwave.configurationV1.configurationSet(parameterNumber:5, configurationValue:[param5.value]).format(),
          zwave.configurationV1.configurationSet(parameterNumber:6, configurationValue:[param6.value]).format(),
          zwave.configurationV1.configurationSet(parameterNumber:7, configurationValue:[param7.value]).format(),
          zwave.configurationV1.configurationSet(parameterNumber:13, configurationValue:[param13.value]).format(),
          zwave.configurationV1.configurationSet(parameterNumber:14, configurationValue:[param14.value]).format(),
          zwave.configurationV1.configurationSet(parameterNumber:15, configurationValue:[param15.value]).format(),
          zwave.configurationV1.configurationSet(parameterNumber:16, configurationValue:[param16.value]).format(),
          zwave.configurationV1.configurationSet(parameterNumber:30, configurationValue:[param30.value]).format(),
          zwave.configurationV1.configurationSet(parameterNumber:31, configurationValue:[param31.value]).format(),
          zwave.configurationV1.configurationSet(parameterNumber:32, configurationValue:[param32.value]).format(),
          zwave.configurationV1.configurationSet(parameterNumber:33, configurationValue:[param33.value]).format(),
          zwave.configurationV1.configurationSet(parameterNumber:39, configurationValue:[param39.value]).format(),
          zwave.configurationV1.configurationSet(parameterNumber:40, configurationValue:[param40.value]).format(),
          zwave.configurationV1.configurationSet(parameterNumber:41, configurationValue:[param41.value]).format(),
          zwave.configurationV1.configurationSet(parameterNumber:42, configurationValue:[param42.value]).format(),
          zwave.configurationV1.configurationSet(parameterNumber:43, configurationValue:[param43.value]).format(),
          zwave.associationV2.associationSet(groupingIdentifier:1, nodeId:[zwaveHubNodeId]).format(),
          zwave.associationV2.associationSet(groupingIdentifier:2, nodeId:[zwaveHubNodeId]).format(),
          zwave.associationV2.associationSet(groupingIdentifier:3, nodeId:[zwaveHubNodeId]).format(),
    ])  
}

def updateSingleparam(paramNum, paramValue) {
	log.debug "Updating single Parameter (paramNum: $paramNum, paramValue: $paramValue)"
    	zwave.configurationV1.configurationSet(parameterNumber: paramNum, ConfigurationValue: paramValue)
}

/**
* Triggered when Save button is pushed on Preference UI
*/
def updated()
{
	log.debug "Preferences have been changed. Attempting configure()"
    def cmds = configure()
    response(cmds)
}
def on() { 
   delayBetween([
        zwave.switchAllV1.switchAllOn().format(),
        zwave.multiChannelV4.multiChannelCmdEncap(sourceEndPoint:1, destinationEndPoint:1, commandClass:37, command:2).format(),
        zwave.multiChannelV4.multiChannelCmdEncap(sourceEndPoint:1, destinationEndPoint:2, commandClass:37, command:2).format()
    ], 500)
}
def off() {
   delayBetween([
        zwave.switchAllV1.switchAllOff().format(),
        zwave.multiChannelV4.multiChannelCmdEncap(sourceEndPoint:1, destinationEndPoint:1, commandClass:37, command:2).format(),
        zwave.multiChannelV4.multiChannelCmdEncap(sourceEndPoint:1, destinationEndPoint:2, commandClass:37, command:2).format()
    ], 500)
}

def on1() {
    delayBetween([
        zwave.multiChannelV4.multiChannelCmdEncap(sourceEndPoint:1, destinationEndPoint:1, commandClass:37, command:1, parameter:[255]).format(),
        zwave.multiChannelV4.multiChannelCmdEncap(sourceEndPoint:1, destinationEndPoint:1, commandClass:37, command:2).format()
    ], 500)
}

def off1() {
    delayBetween([
        zwave.multiChannelV4.multiChannelCmdEncap(sourceEndPoint:1, destinationEndPoint:1, commandClass:37, command:1, parameter:[0]).format(),
        zwave.multiChannelV4.multiChannelCmdEncap(sourceEndPoint:1, destinationEndPoint:1, commandClass:37, command:2).format()
    ], 500)
}

def on2() {
    delayBetween([
        zwave.multiChannelV4.multiChannelCmdEncap(sourceEndPoint:2, destinationEndPoint:2, commandClass:37, command:1, parameter:[255]).format(),
        zwave.multiChannelV4.multiChannelCmdEncap(sourceEndPoint:2, destinationEndPoint:2, commandClass:37, command:2).format()
    ], 500)
}

def off2() {
    delayBetween([
        zwave.multiChannelV4.multiChannelCmdEncap(sourceEndPoint:2, destinationEndPoint:2, commandClass:37, command:1, parameter:[0]).format(),
        zwave.multiChannelV4.multiChannelCmdEncap(sourceEndPoint:2, destinationEndPoint:2, commandClass:37, command:2).format()
    ], 500)
}

its ok with Hubitat...

2 Likes

couple of comments, the 222 parameters are completely different from the 223 params, so i can't really check those.
my 222 included with S0 security, the driver posted above is not secure enabled, so it would be able to receive reports from the device on a C7, but not send them.

We will look into the possibility of adding an option for S0 only devices on the C7 like we have on the C5's, however this may not be possible.

Platform 2.2.3 will include a simplified universal security method that developers can include in their drivers going forward.

Thanks for the response Mike.

If this is added to the code for the FGS-222 do you think this driver will work OK on the new build when released?
Big question I know but just trying to work out my options. The last thing I want to do is buy different devices to replace my Fibaro stuff. I've already bought a different z-wave lux/motion/temp sensor that I need for external light measurement.
I'm trying to keep devices on one hub and rules etc. on a second hub.
thanks again.

Fibaro devices will and do work, custom drivers will need to be updated to support security for any zwave+ or later devices if they don't have it already...

I don't see any reason the 222 device will not work on a C7 once that driver is updated to support security.

I beg to differ here Mike. Sorry.
I have 5 Fibaro motion sensors using the 'in built' Fibaro Motion Sensor ZW5 driver and none of them now report lux since they were moved to my C7 hub. One joined securely the others did not. I've no idea whyas the option to pick S0 through to S2 never appeared.

OK. Thanks.
I'll have to open a new thread to see if there is anybody out there who can help with this.

that's a driver issue, nothing wrong with the device, this is the first I'm aware of lack of lux reporting, i'll look into that.

1 Like

@mike.maxwell

Actually ths is incorrect sorry.
4 report, one doesn't.
The four that report do so every 1 to 3 hours no matter how I set the parameters.
I have pressed the button three times to get in config mode, press config button, and in the logs can see the parameters being put through.
Nothing changes though.

can you send me the device data section for the one that's not reporting...

Here you go.
Data * deviceType: 2049

  • inClusters: 0x5E,0x20,0x86,0x72,0x5A,0x59,0x85,0x73,0x84,0x80,0x71,0x56,0x70,0x31,0x8E,0x22,0x30,0x9C,0x98,0x7A
  • zwNodeInfo: 53 9C 00 04 20 01 30 84 85 5C 80 8F 56 72 86 70 8E 31 9C 68 23
  • deviceId: 4097
  • MSR: 010F-0801-1001
  • manufacturer: 271

Here are the events not showing any lux changes.

that's the newer firmware, i'll have to fetch one

1 Like

F-ing Fibaro and their firmware, I had to buy their mini hub just to get the updates, it's crap and they charge a fortune for it! It might have to become a community loner to get peoples device's updated :+1:.

included the latest z-wave plus version of this device available in the us, it included securely as expected and functioned as expected.
can you enable debug logging, then pm me the live logs when you wake the device and save the preferences?

@mike.maxwell
Hi Mike.
Was this directed to me about the Motion Sensor not reporting lux or about the FGS-222 device?
Thanks.