ioBroker / ioBroker.zwave

Legacy Z-Wave integration using OpenZWave
Other
24 stars 7 forks source link

Restart of adapter after calling RefreshNode #72

Closed OleksiyAntonov closed 4 years ago

OleksiyAntonov commented 4 years ago
  1. Environment: 1.1. ioBroker in Docker (buanet v3) on Synology 1.2. node: v8.15.0 1.3. npm: v6.4.1 1.4. ioBroker.zwave: v1.5.1 1.5. openzwave-shared: v1.5.6 1.5. openzwave: v1.6 1.6. Actuator: 1.6.1. Manufacturer: "FIBARO System" 1.6.2. Product: "FGWPE/F Wall Plug Gen5" 1.6.3. Type: "On/Off Power Switch"
  2. Steps to reproduce: 2.1. Open z-wave instance settings dialog ->Devices 2.2. Find device in list 2.3. Open commands list ("Select operation") 2.4. Select "Refresh info"
  3. Actual results 3.1. Adapter restarted:

    2019-08-28 23:01:33.248 - [32minfo[39m: zwave.0 Execute refreshNodeInfo for 23 2019-08-28 23:01:35.260 - [33mwarn[39m: host.iob instance system.adapter.zwave.0 terminated due to SIGSEGV 2019-08-28 23:01:35.260 - [31merror[39m: host.iob instance system.adapter.zwave.0 terminated with code null () 2019-08-28 23:01:35.260 - [32minfo[39m: host.iob Restart adapter system.adapter.zwave.0 because enabled 2019-08-28 23:02:05.300 - [32minfo[39m: host.iob instance system.adapter.zwave.0 started with pid 6415 2019-08-28 23:02:05.989 - [32minfo[39m: zwave.0 starting. Version 1.5.1 in /opt/iobroker/node_modules/iobroker.zwave, node: v8.16.1

AlCalzone commented 4 years ago

Yeah, that's not a restart - that's a crash. @cburghardt any idea?

cburghardt commented 4 years ago

@OleksiyAntonov can you please run the adapter with loglevel debug and retry? I can't reproduce a crash so will need more information

OleksiyAntonov commented 4 years ago

Ok, I enabled debug mode and wait for restart. I will return when new info available

cburghardt commented 4 years ago

In the list of adapter instances there is a button expert mode. If you enable this you can set the z-wave Adapter to debug loglevel.

cburghardt commented 4 years ago

@OleksiyAntonov any updates?

OleksiyAntonov commented 4 years ago

Hi, unfortunately, no updates. I enabled detailed log (both on iobroker side and open-zwave side) but there are now new info in logs. Driver still restarted after call Refresh Info. Now I updated driver to latest (1.6) version and test it

cburghardt commented 4 years ago

So you call refresh for a specific node and then nothing appears in the iobroker logfile, even if you set it to debug level? Just out of curiosity: you mentioned node 8.15.0 in your bug report but the log file says 8.16.1. Which one is it? You have not included the device as a secure device, correct?

OleksiyAntonov commented 4 years ago

@cburghardt

  1. It is failed for the random node, not for specific
  2. It seems like mistake by me, 8.16.1 is used
  3. I am always include devices as secure devices. Is it not supported configuration?
cburghardt commented 4 years ago

That at least gives a hint because for normal devices it definitely works. For secure devices the process of removing and adding is more complex and only works when the device can be directly reached by the controller. Why do you actually refresh? This is only needed for very rare cases for example when the node properties are not detected correctly. I am pretty sure the crash results from openzwave and not the adapter but without further log we can't help.

OleksiyAntonov commented 4 years ago

O, I think it is exactly a case by me. I have some devices which is periodically unreachable (signal temporary blocked by physical conditions). It is very interested behaviour of such devices - some commands is works, some statuses dont reported etc. Usually after refresh it works fine (until next lost of signal?). As I remember all of my refresh actions performed on temporary unavailable devices. If you sure that it is a reason of failures I propose to close a ticket

cburghardt commented 4 years ago

If they are not reachable you need to fix your mesh network so make sure that enough devices can be reached which can relay messages. Refresh node has nothing to do with that but only queries the node information without caching. Secure nodes need to be directly reachable by the controller for inclusion/exclusion and probably also for the refresh but not for normal operation. Usually only barrier devices use secure mode, ie: Door Locks, Garage Door Openers, and some Meters.

OleksiyAntonov commented 4 years ago

@cburghardt thank you for the help and detailed explanation!