[RELEASE] Fibaro Smart Implant FGBS-222

Perhaps if I did things over, my mileage would vary.

Ditto for the previous version, don't recall the name.... Fgs maybe? I recall moving to the implant hoping it would be better than the Fgs. At the time, my limited experience said there were no other choices.

I'm happy this worked for you. Personally, wouldn't ever go back.

I tried the esphome version. For me, not the best experience.

Legacy is rock solid.

Does anyone know whether the Fibaro Smart Implant device will ever be available again for the US Z-wave frequencies? The ones on ebay are in Poland and presumably have the Euro z-wave frequencies. Amazon shows the FGBS-222 as no longer available.

Alternatively, are there any other z-wave or zigbee devices that will read and report the voltage of a 12VDC battery? This battery must also power the device itself. I can insert a voltage divider network if needed for the measured voltage range.

I'm using a Shelly Plus Uni right now, but it causes severe interference with the Liftmaster gate opener's remote control clickers, reducing their range from about 40 meters to under 5 meters.

I asked the same question, here:
https://community.hubitat.com/t/smart-implant-fgbs-222-discontinued-or-us-purchase-site/157318/3?u=oktoko

Makes me think they got discontinued (at least US version) . or maybe retooling for LR? probably not... :frowning:

Hi, I have just switched over to ZWaveJS and the Smart Implant was my only problem. This seems to fix it for me...

Replace formatCommands on line 1265 with the code below (I was using latest driver version 1.7.8):

private formatCommands(cmds, delay=null) {
    def formattedCmds = cmds.collect { cmd ->
        if (getDataValue("zwaveSecurePairingComplete") == "true") {
            if (getDataValue("S2") != null) {
            	zwaveSecureEncap(cmd)
        	}
        	else {
            	zwave.securityV1.securityMessageEncapsulation().encapsulate(cmd).format()
        	}
        } else {
            cmd.format()
        }
    }

    if (delay) {
        sendHubCommand(new hubitat.device.HubMultiAction(delayBetween(formattedCmds, delay), hubitat.device.Protocol.ZWAVE))
    } else {
        sendHubCommand(new hubitat.device.HubMultiAction(formattedCmds, hubitat.device.Protocol.ZWAVE))
    }
}

What this does: it avoid using the driver's hand rolled security encapsulation and uses the built in zwaveSecureEncap helper.

I only use the "child switch" so I have only tested that works.

Thanks for fixing this bug. For some reason I don't receive emails anymore for this thread so I am a bit late in responding. I have updated the code with your changes for the functions formatCommands and formatCommandsWithPause and it works fine on my side (I don't use ZWaveJS).

New release 1.7.9 is available:

"releaseNotes": "Fixing bug showing with ZWaveJS",