'Fibaro Z-Wave FGK-101 Temperature & Door/Window Sensor' Full Support Handler

Thanks for the response!

So in general for a working FGK-x01 device with a working battery and successfully joined to a network, with the little anti-tampering button pressed, the blue LED should not be blinking?

No.
It should blink only (once) on open/close, and a few times when pressing/releasing the anti-tampering button.

Need a little more help for the kid in the corner here. I have two FGK-101s that both stopped working due to the issues stated above…the new code fixed them i think. The problem i am having is that I was using a DS RTD sensor with these units… now i don think they are working anymore. I am kinda new to this so in crayon would be most helpful. Where should i be looking?

Hi Joe, I am not sure I understand your problem.
AFAIK, a DS RTD sensor is completely different form the DS18B20 natively supported by the FGK-101, and I don’t understand how such sensors could ever have been working “before”.
What is your exact configuration, and your exact problem ?

image You are 100% correct. I misspoke. It’s been working fine with your original code for so long I forgot most of the stuff we did to get it working including what we used for this system. Also thanks for all you have done for the ST community. Like I said it worked so well I have forgotten everything from when we first built this monitoring system.

On to the good stuff…

The setup - I have a ST hub v2, US customer Rev E. Running FW:000.027.00006. I a ton of sensors measuring flow from a chilled water loop for cooling, room temps, presences and motion sensors for lights and notifications. I am also using two FGK-101s using the DS18B20 in the water cooling blocks to give me the temps of the supply and the return to measure temp rise after DUT.

• I will say I did not notice the temp data was not refreshing so the alerts were not being triggered… It seems that if it never gets another update then it just holds what it got last in. When I noticed the issues I started reading this thread. The current situation I need help with is I have two FGK-101s, both running your handler (JJG2014 : JJ’s Fibaro FGK-101 Handler) Post your update included in this thread. The only problem is them seem to each be responding with different states. One is working the way I expect (temperature, Battery, contact, alarm, reportASAP), the other is not. The second unit is only responding with (batt, contact, alarm, reportASAP). I also notice they both list some differences, the working unit list his in the Data section (MSR: 010F-0700-2000, version: 2.5) While the “bad” unit lists (MSR: 010F-0700-2000, networkSecurityLevel: ZWAVE_LEGACY_NON_SECURE).

Any help would be great. I seem to be stuck.

PS I really like the ZW5 handler idea of a mandatory wake up. If we could get that one working I would be super jazzed!!!

Let start from the beginning : go into IDE/My Devices/FGK-good and IDE/My Devices/FGK-bad.
Post a screen copy of both.
It looks like the “bad” unit is a pre-ZW5 FGK-101, while the “good” one may be a ZW5 one.
You probably should start by completely resetting the pre-ZW5 unit (see FGK-101 notice), then again include it in your Z-wave network and connect it to the ZW5 version of the hander (latest link posted in a previous post).
And let me know what happened.

Good Working unit -

Bad working unit -

Thanks for the info Joe.

Contrary to what I thought, both of your units are pre-ZW5 FGK-101 with the same firmware, but curiously they have different behaviors, may be because you reinstalled 2 days ago the bad unit.
The “good” unit has an abnormal battery level at 1%, which most probably means you should replace the battery (or that Battery Level events do not arrive at the Hub).
At that point, I would suggest a complete reset of the “bad” unit :

  • remove unit from Z-wave network
  • reset hardware to factory defaults
  • reattach unit to Z-wave network
  • install ++ZW5++ Handler version 0.9.7.4 and wait for 5mn (you may have to wake up at least once the FGK-101 using the tampering button, possibly twice 5mn later)

I would also suggest you activate from the IDE the “Live Logging” option, just before you install the ZW5 Handler. It can be used to diagnose some faults if the initialization does not work properly.

At the end, you should show something like that in the “Show Device” properties window of the IDE :
Current States

  • temperature : 26.2 C
  • battery: 100 %
  • contact: open
  • alarm:
  • tamper: active
  • reportASAP: 0
  • forcedWakeUp: 0
  • ZW5set: 1
  • ZW5: 0
  • Configured: 1

The ZW5 Handler is supposed (!) to be upward compatible with the pre-ZW5 FGK-101s, but the Handler has been largely rewritten and may (or may not) behave better.

Note that I only have a V1 Hub, so it is always possible that what you experience is related to some different V2 Hub behavior on SmartThings side.

adding some edits

“the bad after a reset and using the new handler from your post”

I also captured the logs.


Logs
  9:52:04 AM: debug Parsed BatteryReport(batteryLevel: 90) to null
  9:52:04 AM: debug device.forcedWakeUp : 0
  9:52:04 AM: debug state.batteryInterval : 83700000
  9:52:04 AM: debug state.lastReportBattery : 1567086717825
  9:52:04 AM: debug nowTime : 1567086724368
  9:52:04 AM: debug batteryv1.BatteryReport 90
  9:52:04 AM: debug Parsing... 'zw device: 14, command: 8003, payload: 5A '
  9:52:04 AM: debug --------------------------Parsing... ; state.parseCount: 13--------------------------
  9:52:04 AM: debug device.forcedWakeUp : 0
  9:52:04 AM: debug state.batteryInterval : 83700000
  9:52:04 AM: debug state.lastReportBattery : 1567086717825
  9:52:04 AM: debug nowTime : 1567086724368
  9:52:04 AM: debug batteryv1.BatteryReport 90
  9:52:04 AM: debug Parsing... 'zw device: 14, command: 8003, payload: 5A '
  9:52:04 AM: debug --------------------------Parsing... ; state.parseCount: 13--------------------------
  9:52:03 AM: debug Parsed BatteryReport(batteryLevel: 90) to null
  9:52:03 AM: debug device.forcedWakeUp : 0
  9:52:03 AM: debug state.batteryInterval : 83700000
  9:52:03 AM: debug state.lastReportBattery : 1567086717825
  9:52:03 AM: debug nowTime : 1567086723355
  9:52:03 AM: debug batteryv1.BatteryReport 90
  9:52:03 AM: debug Parsing... 'zw device: 14, command: 8003, payload: 5A '
  9:52:03 AM: debug --------------------------Parsing... ; state.parseCount: 12--------------------------
  9:52:02 AM: debug Parsed BatteryReport(batteryLevel: 90) to null
  9:52:02 AM: debug device.forcedWakeUp : 0
  9:52:02 AM: debug state.batteryInterval : 83700000
  9:52:02 AM: debug state.lastReportBattery : 1567086717825
  9:52:02 AM: debug nowTime : 1567086722869
  9:52:02 AM: debug batteryv1.BatteryReport 90
  9:52:02 AM: debug Parsing... 'zw device: 14, command: 8003, payload: 5A '
  9:52:02 AM: debug --------------------------Parsing... ; state.parseCount: 11--------------------------
  9:51:59 AM: debug Parsed BatteryReport(batteryLevel: 90) to null
  9:51:59 AM: debug device.forcedWakeUp : 0
  9:51:59 AM: debug state.batteryInterval : 83700000
  9:51:59 AM: debug state.lastReportBattery : 1567086717825
  9:51:59 AM: debug nowTime : 1567086719988
  9:51:59 AM: debug batteryv1.BatteryReport 90
  9:51:59 AM: debug Parsing... 'zw device: 14, command: 8003, payload: 5A '
  9:51:59 AM: debug --------------------------Parsing... ; state.parseCount: 10--------------------------
  9:51:59 AM: debug Parsed BatteryReport(batteryLevel: 90) to null
  9:51:59 AM: debug device.forcedWakeUp : 0
  9:51:59 AM: debug state.batteryInterval : 83700000
  9:51:59 AM: debug state.lastReportBattery : 1567086717825
  9:51:59 AM: debug nowTime : 1567086719851
  9:51:59 AM: debug batteryv1.BatteryReport 90
  9:51:59 AM: debug Parsing... 'zw device: 14, command: 8003, payload: 5A '
  9:51:59 AM: debug --------------------------Parsing... ; state.parseCount: 9--------------------------
  9:51:59 AM: debug Parsed BatteryReport(batteryLevel: 90) to null
  9:51:59 AM: debug device.forcedWakeUp : 0
  9:51:59 AM: debug state.batteryInterval : 83700000
  9:51:59 AM: debug state.lastReportBattery : 1567086717825
  9:51:59 AM: debug nowTime : 1567086719747
  9:51:59 AM: debug batteryv1.BatteryReport 90
  9:51:59 AM: debug Parsing... 'zw device: 14, command: 8003, payload: 5A '
  9:51:59 AM: debug --------------------------Parsing... ; state.parseCount: 8--------------------------
  9:51:59 AM: debug Parsed BatteryReport(batteryLevel: 90) to null
  9:51:59 AM: debug device.forcedWakeUp : 0
  9:51:59 AM: debug state.batteryInterval : 83700000
  9:51:59 AM: debug state.lastReportBattery : 1567086717825
  9:51:59 AM: debug nowTime : 1567086719090
  9:51:59 AM: debug batteryv1.BatteryReport 90
  9:51:59 AM: debug Parsing... 'zw device: 14, command: 8003, payload: 5A '
  9:51:59 AM: debug --------------------------Parsing... ; state.parseCount: 7--------------------------
  9:51:58 AM: debug Parsed BatteryReport(batteryLevel: 90) to null
  9:51:58 AM: debug device.forcedWakeUp : 0
  9:51:58 AM: debug state.batteryInterval : 83700000
  9:51:58 AM: debug state.lastReportBattery : 1567086717825
  9:51:58 AM: debug nowTime : 1567086718810
  9:51:58 AM: debug batteryv1.BatteryReport 90
  9:51:58 AM: debug Parsing... 'zw device: 14, command: 8003, payload: 5A '
  9:51:58 AM: debug --------------------------Parsing... ; state.parseCount: 6--------------------------
  9:51:58 AM: debug Parsed BatteryReport(batteryLevel: 90) to null
  9:51:58 AM: debug device.forcedWakeUp : 0
  9:51:58 AM: debug state.batteryInterval : 83700000
  9:51:58 AM: debug state.lastReportBattery : 1567086717825
  9:51:58 AM: debug nowTime : 1567086718363
  9:51:58 AM: debug batteryv1.BatteryReport 90
  9:51:58 AM: debug Parsing... 'zw device: 14, command: 8003, payload: 5A '
  9:51:58 AM: debug --------------------------Parsing... ; state.parseCount: 5--------------------------
  9:51:57 AM: debug Parsed BatteryReport(batteryLevel: 90) to [['name':'battery', 'displayed':true, 'isStateChange':true, 'unit':'%', 'value':90, 'linkText':'Return Temp', 'descriptionText':Return Temp battery is 90%]]
  9:51:57 AM: debug battery map : [name:battery, displayed:true, isStateChange:true, unit:%, value:90]
  9:51:57 AM: debug device.forcedWakeUp : 1
  9:51:57 AM: debug state.batteryInterval : 83700000
  9:51:57 AM: debug state.lastReportBattery : 0
  9:51:57 AM: debug nowTime : 1567086717825
  9:51:57 AM: debug batteryv1.BatteryReport 90
  9:51:57 AM: debug Parsing... 'zw device: 14, command: 8003, payload: 5A '
  9:51:57 AM: debug --------------------------Parsing... ; state.parseCount: 4--------------------------
  9:51:57 AM: debug Parsing... 'zw device: 14, command: 8003, payload: 5A '
  9:51:57 AM: debug --------------------------Parsing... ; state.parseCount: 4--------------------------
  9:51:54 AM: debug deviceFirmwareVersion: 2005
  9:51:54 AM: debug ++++++Last non-ZW5 Configuration Command SENT++++++
  9:51:54 AM: debug --------------------------Parsing... ; state.parseCount: 3--------------------------
  9:51:54 AM: debug Parsing... 'zw device: 14, command: 8612, payload: 03 03 43 02 05 '
  9:51:54 AM: debug --------------------------Parsing... ; state.parseCount: 3--------------------------
  9:51:54 AM: debug cmdBlock: [8611, delay 1200, 8002, delay 1200, 8408]
  9:51:54 AM: debug Parsed SensorAlarmReport(seconds: 0, sensorType: 0, sourceNodeId: 20, sensorState: 255) to [['name':'alarm', 'descriptionText':Return Temp is tampered with !, 'isStateChange':true, 'displayed':true, 'linkText':Return Temp], physicalgraph.device.HubMultiAction@36425a05]
  9:51:54 AM: debug state.lastReportBattery : 0
  9:51:54 AM: debug cmdBlock : [8611, delay 1200, 8002, delay 1200, 8408, 8002, delay 1200, 8408]
  9:51:54 AM: debug ++++++++returned cmdBlock : [8611, delay 1200, 8002, delay 1200, 8408]
  9:51:54 AM: debug device.Configured : 0
  9:51:54 AM: debug device.ZW5set: 0
  9:51:54 AM: debug device.ZW5: 0
  9:51:54 AM: debug Configuring - Common Part.............................................
  9:51:54 AM: debug --------------------------Parsing... ; state.parseCount: 2--------------------------
  9:51:53 AM: debug wakeUpNoMoreInformation()
  9:51:53 AM: debug ++++++++returned cmdBlock : [8611, delay 1200, 8002, delay 1200, 8408]
  9:51:53 AM: debug cmdBlock: []
  9:51:53 AM: debug state.lastReportBattery : 0
  9:51:53 AM: debug device.ZW5: 0
  9:51:53 AM: debug Parsed SensorAlarmReport(seconds: 0, sensorType: 0, sourceNodeId: 20, sensorState: 0) to [['name':'alarm', 'descriptionText':Return Temp is tampered with !, 'isStateChange':true, 'displayed':true, 'linkText':Return Temp], physicalgraph.device.HubMultiAction@359d8499]
  9:51:53 AM: debug cmdBlock: [8611, delay 1200, 8002, delay 1200, 8408]
  9:51:53 AM: debug sensoralarmv1.SensorAlarmReport 0
  9:51:53 AM: debug --------------------------Parsing... ; state.parseCount: 1--------------------------
  9:51:53 AM: debug Parsing... 'zw device: 14, command: 9C02, payload: 14 00 00 00 00 '
  9:51:53 AM: debug --------------------------Parsing... ; state.parseCount: 1--------------------------
  9:50:03 AM: debug device.rawDescription: zw:S type:2001 mfr:010F prod:0700 model:2000 ver:2.05 zwv:3.67 lib:03 cc:30,9C,85,72,70,86,80,56,84,7A ccOut:2B
  9:50:03 AM: debug device.data: [:]
  9:50:03 AM: debug device.label: Return Temp
  9:50:03 AM: debug device.name: Return Temp
  9:50:03 AM: debug location.id: 5f604d58-6a41-415b-ae2a-44cc07ca3679
  9:50:03 AM: debug device.id: 
  9:50:03 AM: debug device.displayName: Return Temp
  9:50:03 AM: debug zwaveHubNodeId: 1
  9:50:03 AM: debug device.currentValue('reportASAP') : 1
  9:50:03 AM: debug state.maxEventInterval : 13200000
  9:50:03 AM: debug state.batteryInterval : 83700000
  9:50:03 AM: debug state.deviceID: Z-Wave Door/Window Sensor
  9:50:03 AM: debug Updated !
  9:50:03 AM: debug ++++++Last Common Configuration Command SENT++++++
  9:50:03 AM: debug cmdBlock: [8611, delay 1200, 8002, delay 1200, 8408]
  9:50:03 AM: debug cmdBlock: []
  9:50:03 AM: debug Configuring - Common Part.............................................
  9:50:03 AM: debug device.Configured: 0
  9:50:03 AM: debug device.ZW5: 0
  9:50:03 AM: debug device.ZW5set: 0
  9:48:04 AM: debug Parsed SensorAlarmReport(seconds: 0, sensorType: 0, sourceNodeId: 20, sensorState: 255) to [['name':'alarm', 'descriptionText':Return Temp is tampered with !, 'isStateChange':true, 'displayed':true, 'linkText':Return Temp], physicalgraph.device.HubMultiAction@9c59af5]
  9:48:04 AM: debug wakeUpNoMoreInformation()
  9:48:04 AM: debug cmdBlock : [8611, delay 1200, 8002, delay 1200, 8408, 8002, delay 1200, 8408]
  9:48:04 AM: debug ++++++++returned cmdBlock : [8611, delay 1200, 8002, delay 1200, 8408]
  9:48:04 AM: debug state.lastReportBattery : 0
  9:48:04 AM: debug cmdBlock: [8611, delay 1200, 8002, delay 1200, 8408]
  9:48:04 AM: debug Configuring - Common Part.............................................
  9:48:04 AM: debug ++++++Last Common Configuration Command SENT++++++
  9:48:04 AM: debug device.Configured : 0
  9:48:04 AM: debug Parsing... 'zw device: 14, command: 9C02, payload: 14 00 FF 00 00 '
  9:48:04 AM: debug --------------------------Parsing... ; state.parseCount: 2--------------------------
  9:48:03 AM: debug sensoralarmv1.SensorAlarmReport 0
  9:48:03 AM: debug device.ZW5: 0
  9:48:03 AM: debug Parsing... 'zw device: 14, command: 9C02, payload: 14 00 00 00 00 '
  9:48:03 AM: debug --------------------------Parsing... ; state.parseCount: 1--------------------------
  9:47:49 AM: debug device.rawDescription: zw:S type:2001 mfr:010F prod:0700 model:2000 ver:2.05 zwv:3.67 lib:03 cc:30,9C,85,72,70,86,80,56,84,7A ccOut:2B
  9:47:49 AM: debug device.data: [:]
  9:47:49 AM: debug device.label: Return Temp
  9:47:49 AM: debug device.name: Z-Wave Door/Window Sensor
  9:47:49 AM: debug location.id: 5f604d58-6a41-415b-ae2a-44cc07ca3679
  9:47:49 AM: debug device.id: 
  9:47:49 AM: debug device.displayName: Return Temp
  9:47:49 AM: debug zwaveHubNodeId: 1
  9:47:49 AM: debug device.currentValue('reportASAP') : 1
  9:47:49 AM: debug state.maxEventInterval : 13200000
  9:47:49 AM: debug state.batteryInterval : 83700000
  9:47:49 AM: debug state.deviceID: Z-Wave Door/Window Sensor
  9:47:49 AM: debug Updated !
  9:47:49 AM: debug ++++++Last Common Configuration Command SENT++++++
  9:47:49 AM: debug cmdBlock: [8611, delay null, 8002, delay null, 8408]
  9:47:49 AM: debug cmdBlock: []
  9:47:49 AM: debug Configuring - Common Part.............................................
  9:47:49 AM: debug device.Configured: null
  9:47:49 AM: debug device.ZW5: null
  9:47:49 AM: debug device.ZW5set: null
  9:46:16 AM: debug parsed 'zw device: 14, command: 7205, payload: 01 0F 07 00 20 00 ' to [[descriptionText:Z-Wave Door/Window Sensor MSR: 010F-0700-2000, isStateChange:false, displayed:false, linkText:Z-Wave Door/Window Sensor]]
  9:46:16 AM: debug msr: 010F-0700-2000
  9:46:16 AM: debug parsed 'zw device: 14, command: 8003, payload: 5A ' to [[name:battery, unit:%, value:90, isStateChange:true, displayed:true, linkText:Z-Wave Door/Window Sensor, descriptionText:Z-Wave Door/Window Sensor battery is 90%]]

The good also using the same handler you suggested (also replaced batt

The logs -

9:56:08 AM: debug Parsed MultiChannelCmdEncap(destinationEndPoint: 2, parameter: [1, 68, 0, 0, 7, 14], sourceEndPoint: 2, command: 5, commandClass: 49, bitAddress: false) to ['displayed':true, 'value':'64.5', 'isStateChange':true, 'linkText':Supply Temp, 'name':'temperature', 'unit':'F', 'descriptionText':Supply Temp temperature is 64.5°F]
  9:56:08 AM: debug state.lastReportedTemp: 63.4
  9:56:08 AM: debug cmd.scaledSensorValue : 18.06
  9:56:08 AM: debug ftempSign : 1.0
  9:56:08 AM: debug device.forcedWakeUp : 0
  9:56:08 AM: debug nowTime : 1567086968010
  9:56:08 AM: debug 'Date().getTime()' : 1567086968010
  9:56:08 AM: debug state.lastReportTime : 1567086338514
  9:56:08 AM: debug SensorMultilevelReport.scaledSensorValue : 18.06
  9:56:07 AM: debug Parsing... 'zw device: 06, command: 600D, payload: 02 02 31 05 01 44 00 00 07 0E '
  9:56:07 AM: debug --------------------------Parsing... ; state.parseCount: 12--------------------------
  9:52:06 AM: debug Parsed BatteryReport(batteryLevel: 96) to null
  9:52:06 AM: debug device.forcedWakeUp : 0
  9:52:06 AM: debug state.batteryInterval : 83700000
  9:52:06 AM: debug state.lastReportBattery : 1567086722328
  9:52:06 AM: debug nowTime : 1567086726538
  9:52:06 AM: debug batteryv1.BatteryReport 96
  9:52:06 AM: debug Parsing... 'zw device: 06, command: 8003, payload: 60 '
  9:52:06 AM: debug --------------------------Parsing... ; state.parseCount: 11--------------------------
  9:52:02 AM: debug Parsed BatteryReport(batteryLevel: 96) to [['name':'battery', 'displayed':true, 'isStateChange':true, 'unit':'%', 'value':96, 'linkText':'Supply Temp', 'descriptionText':Supply Temp battery is 96%]]
  9:52:02 AM: debug battery map : [name:battery, displayed:true, isStateChange:true, unit:%, value:96]
  9:52:02 AM: debug device.forcedWakeUp : 1
  9:52:02 AM: debug state.batteryInterval : 83700000
  9:52:02 AM: debug state.lastReportBattery : 1567085480755
  9:52:02 AM: debug nowTime : 1567086722328
  9:52:02 AM: debug batteryv1.BatteryReport 96
  9:52:02 AM: debug Parsing... 'zw device: 06, command: 8003, payload: 60 '
  9:52:02 AM: debug --------------------------Parsing... ; state.parseCount: 10--------------------------
  9:52:00 AM: debug ++++++Last non-ZW5 Configuration Command SENT++++++
  9:52:00 AM: debug state.lastReportBattery : 1567085480755
  9:52:00 AM: debug wakeUpNoMoreInformation()
  9:52:00 AM: debug Parsing... 'zw device: 06, command: 9C02, payload: 06 00 FF 00 00 '
  9:52:00 AM: debug --------------------------Parsing... ; state.parseCount: 9--------------------------
  9:51:55 AM: debug wakeUpNoMoreInformation()
  9:51:55 AM: debug cmdBlock : [8404000E1001, delay 1200, 70040C0105, delay 1200, 85010301, delay 1200, 85010201, delay 1200, 600D02023104, delay 1200, 70050C, delay 1200, 600D02023104, delay 1200, 8408]
  9:51:55 AM: debug Parsed VersionReport(applicationVersion: 2, zWaveLibraryType: 3, applicationSubVersion: 5, zWaveProtocolSubVersion: 67, zWaveProtocolVersion: 3) to [physicalgraph.device.HubMultiAction@7050bbdb]
  9:51:55 AM: debug device.ZW5: 0
  9:51:55 AM: debug ++++++++returned cmdBlock : [8404000E1001, delay 1200, 70040C0105, delay 1200, 85010301, delay 1200, 85010201, delay 1200, 600D02023104, delay 1200, 70050C, delay 1200]
  9:51:55 AM: debug ++++++Last non-ZW5 Configuration Command SENT++++++
  9:51:55 AM: debug Configuring - NON ZW5.............................................
  9:51:55 AM: debug device.Configured: 0
  9:51:55 AM: debug device.ZW5: 0
  9:51:55 AM: debug device.Configured : 0
  9:51:55 AM: debug device.ZW5set: 1
  9:51:55 AM: debug applicationSubVersion: 5
  9:51:55 AM: debug deviceFirmwareVersion: 2005
  9:51:55 AM: debug applicationVersion: 2
  9:51:55 AM: debug Parsing... 'zw device: 06, command: 8612, payload: 03 03 43 02 05 '
  9:51:55 AM: debug versionv1.VersionReport: VersionReport(applicationVersion: 2, zWaveLibraryType: 3, applicationSubVersion: 5, zWaveProtocolSubVersion: 67, zWaveProtocolVersion: 3)
  9:51:55 AM: debug --------------------------Parsing... ; state.parseCount: 8--------------------------
  9:51:55 AM: debug device.Configured : 0
  9:51:55 AM: debug device.Configured: 0
  9:51:55 AM: debug ++++++++returned cmdBlock : [8611, delay 1200, 8002, delay 1200, 8408]
  9:51:55 AM: debug wakeUpNoMoreInformation()
  9:51:55 AM: debug cmdBlock : [8611, delay 1200, 8002, delay 1200, 8408, 8408]
  9:51:55 AM: debug device.ZW5: 0
  9:51:55 AM: debug Configuring - Common Part.............................................
  9:51:55 AM: debug cmdBlock: []
  9:51:55 AM: debug device.ZW5set: 0
  9:51:55 AM: debug sensoralarmv1.SensorAlarmReport 255
  9:51:55 AM: debug Parsing... 'zw device: 06, command: 8612, payload: 03 03 43 02 05 '
  9:51:55 AM: debug --------------------------Parsing... ; state.parseCount: 8--------------------------
  9:51:55 AM: debug cmdBlock : [8611, delay 1200, 8002, delay 1200, 8408, 8408]
  9:51:55 AM: debug ++++++Last Common Configuration Command SENT++++++
  9:51:55 AM: debug wakeUpNoMoreInformation()
  9:51:55 AM: debug Parsed SensorAlarmReport(seconds: 0, sensorType: 0, sourceNodeId: 6, sensorState: 0) to [['name':'alarm', 'descriptionText':Supply Temp is tampered with !, 'isStateChange':true, 'displayed':true, 'linkText':Supply Temp], physicalgraph.device.HubMultiAction@6f5eb022]
  9:51:55 AM: debug state.lastReportBattery : 1567085480755
  9:51:55 AM: debug cmdBlock: [8611, delay 1200, 8002, delay 1200, 8408]
  9:51:55 AM: debug Configuring - Common Part.............................................
  9:51:55 AM: debug device.ZW5set: 0
  9:51:55 AM: debug Parsing... 'zw device: 06, command: 9C02, payload: 06 00 00 00 00 '
  9:51:55 AM: debug device.Configured : 0
  9:51:55 AM: debug sensoralarmv1.SensorAlarmReport 0
  9:51:55 AM: debug --------------------------Parsing... ; state.parseCount: 7--------------------------
  9:51:55 AM: debug sensoralarmv1.SensorAlarmReport 0
  9:51:55 AM: debug Parsing... 'zw device: 06, command: 9C02, payload: 06 00 00 00 00 '
  9:51:55 AM: debug --------------------------Parsing... ; state.parseCount: 7--------------------------
  9:45:38 AM: debug Parsed ConfigurationReport(parameterNumber: 15, scaledConfigurationValue: 0, reserved11: 0, size: 1, configurationValue: [0]) to null
  9:45:38 AM: debug ConfigurationReport - Parameter#15: [0]
  9:45:38 AM: debug Parsing... 'zw device: 06, command: 7006, payload: 0F 01 00 '
  9:45:38 AM: debug --------------------------Parsing... ; state.parseCount: 6--------------------------
  9:45:38 AM: debug Parsed ConfigurationReport(parameterNumber: 15, scaledConfigurationValue: 0, reserved11: 0, size: 1, configurationValue: [0]) to null
  9:45:38 AM: debug ConfigurationReport - Parameter#15: [0]
  9:45:38 AM: debug Parsing... 'zw device: 06, command: 7006, payload: 0F 01 00 '
  9:45:38 AM: debug --------------------------Parsing... ; state.parseCount: 6--------------------------
  9:45:38 AM: debug map.unit : F
  9:45:38 AM: debug (nowTime-state.lastReportTime > state.maxEventInterval) : false
  9:45:38 AM: debug ftemp : 63.4
  9:45:38 AM: debug device.forcedWakeUp : 1
  9:45:38 AM: debug Parsed MultiChannelCmdEncap(destinationEndPoint: 2, parameter: [1, 68, 0, 0, 6, 207], sourceEndPoint: 2, command: 5, commandClass: 49, bitAddress: false) to ['displayed':true, 'value':'63.4', 'isStateChange':true, 'linkText':Supply Temp, 'name':'temperature', 'unit':'F', 'descriptionText':Supply Temp temperature is 63.4°F]
  9:45:38 AM: debug ftemp : 63.4
  9:45:38 AM: debug ((ftemp-state.lastReportedTemp).abs()>0.5398216): true
  9:45:38 AM: debug map.value : 63.4
  9:45:38 AM: debug temperature Command : ['displayed':true, 'value':'63.4', 'isStateChange':true, 'linkText':Supply Temp, 'name':'temperature', 'unit':'F']
  9:45:38 AM: debug state.lastReportTime : 1567085989235
  9:45:38 AM: debug map.unit : F
  9:45:38 AM: debug device.forcedWakeUp : 1
  9:45:38 AM: debug device.forcedWakeUp : 1
  9:45:38 AM: debug Parsed MultiChannelCmdEncap(destinationEndPoint: 2, parameter: [1, 68, 0, 0, 6, 207], sourceEndPoint: 2, command: 5, commandClass: 49, bitAddress: false) to ['displayed':true, 'value':'63.4', 'isStateChange':true, 'linkText':Supply Temp, 'name':'temperature', 'unit':'F', 'descriptionText':Supply Temp temperature is 63.4°F]
  9:45:38 AM: debug ((ftemp-state.lastReportedTemp).abs()>0.5398216): true
  9:45:38 AM: debug device.displayName : Supply Temp
  9:45:38 AM: debug device.forcedWakeUp : 1
  9:45:38 AM: debug nowTime : 1567086338514
  9:45:38 AM: debug ftemp : 63.4
  9:45:38 AM: debug state.maxEventInterval : 13200000
  9:45:38 AM: debug SensorMultilevelReport.scaledSensorValue : 17.43
  9:45:38 AM: debug correction : 3.051757815342171E-7
  9:45:38 AM: debug ftempSign : 1.0
  9:45:38 AM: debug 'Date().getTime()' : 1567086338514
  9:45:38 AM: debug Parsing... 'zw device: 06, command: 600D, payload: 02 02 31 05 01 44 00 00 06 CF '
  9:45:38 AM: debug SensorMultilevelReport.size : 4
  9:45:38 AM: debug SensorMultilevelReport.sensorValue : [0, 0, 6, 207]
  9:45:38 AM: debug SensorMultilevelReport.scaledSensorValue : 17.43
  9:45:38 AM: debug SensorMultilevelReport.scale : 0
  9:45:38 AM: debug SensorMultilevelReport.precision : 2
  9:45:38 AM: debug --------------------------Parsing... ; state.parseCount: 5--------------------------
  9:41:43 AM: debug Parsed SensorAlarmReport(seconds: 0, sensorType: 0, sourceNodeId: 6, sensorState: 255) to [['name':'alarm', 'descriptionText':Supply Temp is tampered with !, 'isStateChange':true, 'displayed':true, 'linkText':Supply Temp], physicalgraph.device.HubMultiAction@1f229126]
  9:41:43 AM: debug device.ZW5: 0
  9:41:43 AM: debug cmdBlock: [8611, delay 1200, 8002, delay 1200, 8408]
  9:41:43 AM: debug ++++++Last Common Configuration Command SENT++++++
  9:41:43 AM: debug Configuring - Common Part.............................................
  9:41:43 AM: debug ++++++++returned cmdBlock : [8611, delay 1200, 8002, delay 1200, 8408]
  9:41:43 AM: debug device.Configured : 0
  9:41:43 AM: debug cmdBlock: []
  9:41:43 AM: debug cmdBlock : [8611, delay 1200, 8002, delay 1200, 8408, 8408]
  9:41:43 AM: debug Parsing... 'zw device: 06, command: 9C02, payload: 06 00 FF 00 00 '
  9:41:43 AM: debug sensoralarmv1.SensorAlarmReport 255
  9:41:43 AM: debug state.lastReportBattery : 1567085480755
  9:41:43 AM: debug cmdBlock : [8611, delay 1200, 8002, delay 1200, 8408, 8408]
  9:41:43 AM: debug ++++++Last Common Configuration Command SENT++++++
  9:41:43 AM: debug device.Configured: 0
  9:41:43 AM: debug wakeUpNoMoreInformation()
  9:41:43 AM: debug Configuring - Common Part.............................................
  9:41:43 AM: debug cmdBlock: []
  9:41:42 AM: debug --------------------------Parsing... ; state.parseCount: 4--------------------------
  9:41:43 AM: debug device.ZW5set: 0
  9:41:43 AM: debug sensoralarmv1.SensorAlarmReport 255
  9:41:43 AM: debug Parsing... 'zw device: 06, command: 9C02, payload: 06 00 FF 00 00 '
  9:41:43 AM: debug --------------------------Parsing... ; state.parseCount: 4--------------------------
  9:41:42 AM: debug Parsing... 'zw device: 06, command: 9C02, payload: 06 00 00 00 00 '
  9:41:42 AM: debug --------------------------Parsing... ; state.parseCount: 4--------------------------

Hi Joe, thanks for the detailed traces.

I have very little time now to study those and will have to come back to you later.
However, both devices show “Configured: 0” which is NOT normal, should be 1 after 5mn. You may try to awake both devices manually using the tamper button.
The event which sets the final configuration is “ConfigurationReport”. Apparently it was never sent or received.
Also extremely curious : although both your FGK-101 have firmware version 2.5, “show devices” entries are different.

I will come back to you after I have had some more time to study the traces.

Hello again Joe.

I spent some more time looking at your traces.
As you may have discovered already, SmartThings traces are extremely unreliable, and the fact that you do not see in the trace the log.debug entry I put in the Handler’s code proves…
…absolutely nothing, because when too many trace events collide, some disappear from the trace, and not always the same.

Anyway, I have a few conclusions for you :

  1. by 9:56:08 AM, NONE of both initialization phases completed, since the “Current States” would otherwise show for both :
  • ZW5set: 1
  • ZW5: 0
  • Configured: 1
  1. there are some very funny things in the traces, like multiple executions of the same events (but some of it may, or may not be related to the random behavior of the trace). And unfortunately I cannot exclude different behaviors for Hubs v1 and v2 :frowning:
  2. since both your FGK-101 have the exact same FIBARO firmware (2.5) and the exact same Handler (JJ’s Fibaro FGK-10x ZW5 Handler), both should show the same infos in “Show Device”, but they don’t. Again, it could simply be related to different stages of incomplete initialization.

At that point, the only thing I can suggest is that your check this morning (your side) if anything changed in “Show Device” for both. If they are not identical yet, you may try re-awakening manually once or twice (separated by 10mn) your FGK-101s, using the tampering button.

Beyond that, it would be extremely cumbersome to debug your issues across the Atlantic, especially since I am not presently at home and thus unable to make my own tests with my own FGK-101s and my own Hub (v1, not v2).

Let’s hope for the best, and an “easy” solution :wink:.

So, I went to re-add my Fibaro temperature sensor today. When I tried to switch to the JJ driver, I got an error message. I then deleted the driver and tried to re-add it, but am getting the following error when I attempt to publish. Any thoughts?

No signature of method: static java.lang.Long.toHexString() is applicable for argument types: (java.math.BigDecimal) values: [3.90625]
Possible solutions: toHexString(long), toString(), toString(), toString(), toString(long), toString(long, int)

Hi Brad, sorry about your difficulties.
I have a few questions before I can help you :

  1. What kind of FGK-10x do you have ? pre-SWZ5 or ZW5 ??
  2. What kind of Hub do you have : V1, V2, V3 ?
  3. What version of my Handler did you try to upload : ZW5 version : JJ’s Fibaro FGK-10x ZW5 Handler v0.9.7.4 or pre-ZW5 version : JJ’s Fibaro FGK-101 Handler v0.9.5.4

Just FYI, both Handlers are currently running fine with both pre-ZW5 and ZW5 FGK-10x, on a v1 Hub.
The ZW5 version of the Handler is mandatory for any ZW5 FGK-10x.
If you have a pre-ZW5 FGK-10x, I recommend the pre-ZW5 version of the Handler, which has been more thoroughly tested.

@gijoey1982
Hi Joe,

I am back home, so if you still have the same difficulties, I am now in a better possition to help.
Just let me know.

Thanks for your response. I got it working finally with your latest driver and rewiring the temp sensor (one of the wires came loose).

I can’t believe that in the year 2020 there is still no easy commercial solution “that just works”. I’m getting old and don’t feel like spending the time continually tinkering with this intermittently sometimes almost-kinda-sorta-working-but-not-really solution.

This is in no way any flame against the awesome folks here that have chimed in over the years to help us all out. Hats off to everyone with the persistence since 2014 to make this work, it just hasn’t been the case with me.

I’m just going to jump in the pool and hope for the best.

Hi Dan,

I can understand your frustration only too well. Back in 2014, when I started the deployment of those simple (?!) “Internet temperature sensors” across a dozen flats of my community, I certainly did not imagine it would require so much maintenance to keep it working (BTW it still works :smile:) . And just like you, at that time I was just looking for a cheap “plug and play” solution, and was surprised not to find it and to have to build it myself.

Looking back at those 6 years of arduous maintenance, one can sort the broad causes of problems, by decreasing burden :

  1. An “open” solution, built on top of unstable standards
    On paper, the Z-wave “open” protocol looked fine, and the capability to develop your own Handler to connect non-SmartThings Devices, with a vast choice of other sensors out there, was great.
    Except that the Z-wave protocol was an evolving target, with some commitment to “loose upward compatibility”, which is about as straight a concept as been 90% pregnant…
    Even the programming language of Handlers and SmartApps, the Java/Groovy/SmartThings dialect, had several versions of interpreters which almost each time broke something within my code.

  2. A cloud based solution, highly unstable and very poorly administered
    I just needed a bunch of sensors able to report temperatures to a central collecting point 300 meters away.
    I ended with a solution which would cross twice the Atlantic and 2 dozens Internet links, and go into a cloud blackhole.
    Back in 2014, the SmartThings startup had developed a nice proof of concept, but had no idea how or not enough money to administer in a professional way a somewhat complex cloud.
    The fact that any message sent or received from the handled Device may be lost or corrupted along the way makes “defensive programming” within the Handler and SmartApps incredibly tricky.
    Things have been better the last 2 years, after Samsung took control of SmartThings, but that was small comfort to people like me who came on board at the beginning and sweated buckets of blood along the way…

  3. Different vendors with different agendas
    This should not have been an issue if issue (1) did not happen. But with instabilities both on SmartThings side, on Fibaro side and on Z-wave organization side, somebody had to repetitively fasten new glue every time something changed. That somebody was me, but I did not really sign for it, although I tried to do my best with my limited means.

Lessons learnt (again)

Nothing new there, any computer engineer has painfully learned that again and again over the last 40 years, once the initial single vendor mainframe model became obsolete.

  • If you require stability, buy from a SINGLE reputable vendor which will assume full responsibility for integration of all parts. Baring that, buy from a community of vendors with a true certification process in place which guarantees inter-operability (like WiFi branded or Apple HomeKit branded). Note that the Z-wave Alliance does NOT guarantee full interoperability, since only the lower “physical link” layer is normalized, not the Handlers above.

  • If you require stability, do not aim for “state-of-the-art”, or be prepared to pay the price. True stability is achieved 10-20 years after the initial proof of concept. We will still be discussing reliability of self-driven cars 15 years from now…

  • If you require stability, forget solutions which cross too many bridges, not under your direct control. Yes, I mean forget most Cloud-based solutions : they are good for non-critical information sharing, much less when you require 99.99% operational reliability. I am still amazed by the people who developed “mission critical” solutions (alarms, access control, …) on top of something as fundamentally unstable as SmartThings; I would bet that by now most of them have had to migrate to something else.

Looking back to my initial need of 2014, I would now choose a LoRa private network, with a private LoRaWan gateway, which would completely take out of the solution the Internet and SmartThings cloud. For a price lower that multiple SmartThings Hubs+Devices, one can now find LoRaWan gateways and Lora sensors.
Once such a solution works, it will continue to work, without somebody breaking it every year (or 6 months… :frowning_face:). You would only have to worry about hardware failures, when continuity of components supply is not guaranteed.
And you can always add later an Internet publishing link.

@djarvis8 : After this long rant, I am still there in case you change your mind and need some help to (again) fix your FGK-10x :slight_smile:

@geeji That’s a great write-up and summary!

Having exercised the profession of software engineer for the past 25 years I can, with passion, relate directly to many points you made.

I last left off discussing with you the newest problems I was seeing and I remember us concluding that I had faulty hardware, as the LED in the FGK-x01 continually and rapidly blinks, all the time, even after joined to the network and reporting temperature readings. The battery then drains in no time.

Should I choose to buy another one, are there preferred/non-preferred flavors/versions/firmware revisions I should either seek out or stay away from?

Thanks!

@djarvis8 When we stopped iterating, a faulty FGK-10x hardware was the likely culprit.
The problem is that Fibaro does not sell anymore the FGK-10x, neither the ZW5 version nor the previous one, and AFAIK the little fossil stock remaining out there (Australia) is sold on eBay for ridiculous prices (like $120) and furthermore, the Z-wave radio frequency used in Australia (921,4 MHz) is incompatible with the one used in the US (908,4 MHz).
Its replacement, the Fibaro FGDW-002 will not work with my Handler, and will not support a remote DS18B20.

Before going that (expensive) path, you could try to unpair your faulty FGK-101 from your Hub, perform a full hardware reset (see FGK-101 notice), change the battery for a fresh one and then pair it again. Likely not more than a 10% chance to succeed, but better than the alternative…

I suppose waiting a long enough time on eBay, some second hand FGK-10x with the proper US Z-wave frequency will finally appear, but who knows what subtle hardware fault it may have inside ? :frowning:.

Sorry I cannot be more optimistic, but the discontinuance of the FGK-10x by Fibaro was a low blow.

@djarvis8 : if you know how to use a solder iron, this eBay item can likely be converted back to a standard FGK-101; or you may even keep the +12V/0V supply modification with an external 110Vac power supply.
Since sold by a US vendor, likely using the US Z-wave frequency (908,4MHz), but worthwhile to check before buying.
There are presently other FGK-10x to buy on eBay, but either Australians (921,4 MHz) or Europeans (868,4 MHz).