OH2 Z-Wave refactoring and testing... and SECURITY

This must be related to associations, or device configuration. Have you tried a reinitialisation of the device - is there a log of the reinitialisation?

Agreed. Only one exception, and it may be a pretty minor one. If one of these node.xml files was uploaded to the DB in order to create a new device in the database, won’t the DB entry be created with a bunch of bogus command classes? And, it’s unlikely the user would know which ones were legit and which ones were bogus. And, even if they did know, they would need to ask you to delete the bogus ones. Like I said, I think that’s a pretty minor issue in the whole scheme of things.

On the plus side, the node.xml can be cleaned up by doing a reinit.

My devices are set up to auto report every 30 minutes. If you want to PM me, I can walk you through the exact configuration I have in my devices.

I think Kyle meant the merging of the dev branch into the master branch so that al these fixed would join the daily snapshots. And i thought Kai wanted to do some smaller milestone like releases. imho this refactored z-wave binding would be big enough for such a release.

Just added a new z-wave door sensor device to Chris’ database. Outside of waiting for the next jar file, is there another way to have the new device (which is now included in the database) get recognized in my local openhab install? Thanks!

If you’re really antsy to use it…

Hey Chris, I’m not sure what was in todays updated jar (aug 3rd), but I gave it a go and all my devices were successfully initialized , I have no locked threads. Did you make a change to fix that , or did I get lucky :slight_smile: ?

1 Like

I’m a little confused about how the new UoM feature deals with temperatures that are reported by a device in a scale that’s different from the scale as defined by the OH configuration.

The specific example is a device (Fibaro FGMS001) that’s reporting temperature in Celsius, with OH configured with country/region of United States (i.e. the scale should be Fahrenheit). I’m seeing the binding updating the temperature channel with a value in degrees Celsius.

@5iver I know you are in the US. Do you have any devices that are reporting temperature in Celsius? If so, are those values being converted to Fahrenheit?

Here’s an example:

2018-08-03 18:01:47.005 [DEBUG] [wave.handler.ZWaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 0C 00 04 00 25 06 31 05 01 22 00 D0 13 
2018-08-03 18:01:47.005 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=37, callback=0, payload=00 25 06 31 05 01 22 00 D0 
2018-08-03 18:01:47.006 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - processReceiveMessage past lock Message: class=ApplicationCommandHandler[4], type=Request[0], dest=37, callback=0, payload=00 25 06 31 05 01 22 00 D0 
2018-08-03 18:01:47.006 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=37, callback=0, payload=00 25 06 31 05 01 22 00 D0 
2018-08-03 18:01:47.006 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - lastTransaction null
2018-08-03 18:01:47.006 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - NODE 37: Application Command Request (ALIVE:DONE)
2018-08-03 18:01:47.006 [DEBUG] [.openhab.binding.zwave.internal.protocol.ZWaveNode] - NODE 37: resetResendCount initComplete=true isDead=false
2018-08-03 18:01:47.006 [DEBUG] [.openhab.binding.zwave.internal.protocol.ZWaveNode] - NODE 37: Incoming command class COMMAND_CLASS_SENSOR_MULTILEVEL, endpoint 0
2018-08-03 18:01:47.006 [DEBUG] [.openhab.binding.zwave.internal.protocol.ZWaveNode] - NODE 37: SECURITY NOT required on COMMAND_CLASS_SENSOR_MULTILEVEL
2018-08-03 18:01:47.006 [DEBUG] [e.internal.protocol.commandclass.ZWaveCommandClass] - NODE 37: Received COMMAND_CLASS_SENSOR_MULTILEVEL V8 SENSOR_MULTILEVEL_REPORT
2018-08-03 18:01:47.006 [DEBUG] [col.commandclass.ZWaveMultiLevelSensorCommandClass] - NODE 37: Sensor Type = Temperature(1), Scale = 0
2018-08-03 18:01:47.006 [DEBUG] [col.commandclass.ZWaveMultiLevelSensorCommandClass] - NODE 37: Sensor Value = 20.8
2018-08-03 18:01:47.007 [DEBUG] [rg.openhab.binding.zwave.handler.ZWaveThingHandler] - NODE 37: Got an event from Z-Wave network: ZWaveMultiLevelSensorValueEvent
2018-08-03 18:01:47.007 [DEBUG] [rg.openhab.binding.zwave.handler.ZWaveThingHandler] - NODE 37: Got a value event from Z-Wave network, endpoint = 0, command class = COMMAND_CLASS_SENSOR_MULTILEVEL, value = 20.8
2018-08-03 18:01:47.007 [DEBUG] [rg.openhab.binding.zwave.handler.ZWaveThingHandler] - NODE 37: Updating channel state zwave:device:zstick:node37:sensor_temperature to 20.8 °C [QuantityType]
2018-08-03 18:01:47.007 [DEBUG] [ng.zwave.internal.protocol.ZWaveTransactionManager] - NODE 37: Commands processed 1.

I fear you got luck, but let’s see. I’ve only made a couple of small tweeks that I wouldn’t have expected to change too much…

That’s correct - if the sensor reports in degC, then the binding will send the data through with this unit. It’s then up to the framework to convert it to other units - not the binding.

Ok. I’ll try to trace it through ESH to see what’s happening.

My zwave devices appear to report in Fahrenheit (WAPIRZ)…

zwave.log.20180727110129-2018-07-25 18:24:37.392 [DEBUG] [.openhab.binding.zwave.internal.protocol.ZWaveNode] - NODE 58: SECURITY not supported
zwave.log.20180727110129-2018-07-25 18:24:37.392 [DEBUG] [e.internal.protocol.commandclass.ZWaveCommandClass] - NODE 58: Received COMMAND_CLASS_SENSOR_MULTILEVEL V4 SENSOR_MULTILEVEL_REPORT
zwave.log.20180727110129:2018-07-25 18:24:37.392 [DEBUG] [col.commandclass.ZWaveMultiLevelSensorCommandClass] - NODE 58: Sensor Type = Temperature(1), Scale = 1
zwave.log.20180727110129-2018-07-25 18:24:37.392 [DEBUG] [col.commandclass.ZWaveMultiLevelSensorCommandClass] - NODE 58: Sensor Value = 73
zwave.log.20180727110129-2018-07-25 18:24:37.392 [DEBUG] [rg.openhab.binding.zwave.handler.ZWaveThingHandler] - NODE 58: Got an event from Z-Wave network: ZWaveMultiLevelSensorValueEvent
zwave.log.20180727110129-2018-07-25 18:24:37.392 [DEBUG] [rg.openhab.binding.zwave.handler.ZWaveThingHandler] - NODE 58: Got a value event from Z-Wave network, endpoint = 0, command class = COMMAND_CLASS_SENSOR_MULTILEVEL, value = 73
zwave.log.20180727110129-2018-07-25 18:24:37.392 [DEBUG] [rg.openhab.binding.zwave.handler.ZWaveThingHandler] - NODE 58: Updating channel state zwave:device:07cb40a2:node58:sensor_temperature to 73 °F [QuantityType]

Did you setup your items to use UoM? I wasn’t aware locale played any part in UoM.

Number:Temperature    DS_RecreationRoom_Motion_Temperature    "Motion: Recreation Room [%.0f °F]"    <temperature>    (gDS_RecreationRoom,gTemperature,gTemperatureDownstairs)    {channel="zwave:device:55555:node58:sensor_temperature"}

Hmm. Maybe not. :roll_eyes: Can’t believe I missed that. :man_facepalming:

1 Like

hi @chris , because of my not updated status change from the Fibaro Doow/Window sensors, I have now also problems with a Fibaro Single switch 2. The power consumption is reported not every time.

could you please look at this debug from the reinitialise of this SingleSwitch2 (node20) from today:
debug logfile node20

here are errors this night, I found:
errors found

I hope you can see something wrong. thank you.

I’m not sure how it’s linked to the door sensor?

Please can you say exactly what the device is - preferably provide the link to the database or at least provide the model number and version.

Please can you provide a lot showing what is received.

This looks ok - the associations are configured ok, but it’s possible that they are now configured differently to how they were before, and possibly other channels may now be needed. To know this, I need to know the exact device you have.

These aren’t related in any way.

FSG213 - database link

FGS213

here is the Logfile: gardenlamp on, FGS213 showed meter_watts1 changed from 0.5 to 19W.
There is a timer in the lamp - 40 seconds after on, the lamp shuts off. But the FGS213 don´t update the meter_watts1 immedeatly. some times 1-2 minutes later, sometimes not at all.

13:11:21.077 → logfile line 1 → switched to on → Lamp goes ON !
13:11:24.822 → logfile line 149 → meter_watts1 changed to 19W (3 seconds after lamp on: for me ok)
my observation ~13:12:04 → lamp goes off (40 seconds expired)
13:12:48.316 → meter_watts1 changed to 0.5 (thats 44 seconds to late updated…)

logfile as described above: https://drive.google.com/open?id=1gXqPjqPDIspPAyLUYBg-yg5ICpHKIEo5

I don’t think this is an issue with the binding. The binding can’t change the way a device reports data, so if it’s updating at all by itself, then the binding has configured the association, and from then on, it’s up to the device.

In the log, I see a meter report being received after you turn on the lamp. This was not requested by the binding, so it must have been sent automatically by the device.

I would suggest to take a look at the various configuration options in the device for sending these reports. Most Fibaro devices have a number of settings to control this reporting.

1 Like

okay thanks … I will do a test with all the device settings. can you tell me how to convert my debug logs to this image in your post ? is there a software to show the debug like this:

debug

Yes, you can use my online log viewer.

1 Like

sorry I havent been updating for a while …
now since I upgrade to nightly 2.4 and latest zwave binding jar from this thread… I have an automatically discovered Zwave USB thingy…
Is this new and supposed to be used the auto thing?

image