Closed petrklus closed 10 years ago
Full logs:
http://cnktmp.s3.amazonaws.com/logs.zip
I would also like to add that my setup could not be simpler - it's just a controller + one node (double relay switch)
The ping is generated internally within the binding - the switch message comes externally. Either the problem is in the REST interface, or very early in the ZWave binding (or something to do with the comms between them. Basically, we’re only seeing the log entries from the REST side - not the zwave side. If you can add TRACE logging to zwave, then there is a log entry when the zwave binding receives the command from the message bus so this will help.
Chris
This is actually very useful - thanks. Does this happen every time you start? If so, can you enable TRACE logging please.
Yes, it happens every time - fine for a few minutes then stops responding.
Where do I enable TRACE logging? Is it in the .xml logging setup file?
On Sun, May 4, 2014 at 1:44 PM, Chris Jackson notifications@github.comwrote:
This is actually very useful - thanks. Does this happen every time you start? If so, can you enable TRACE logging please.
— Reply to this email directly or view it on GitHubhttps://github.com/openhab/openhab/issues/1044#issuecomment-42131030 .
Yes - in the logback.xml file. If you add <logger name="org.openhab.binding.zwave" level=“TRACE" /> to the file it should sort it. Note though that if you’re running in debug mode anyway, then the file is logback_debug.xml.
Cheers Chris
Done! Seeing TRACE messages now.. Will post the new one once the issue manifests itself again..
On Sun, May 4, 2014 at 2:11 PM, Chris Jackson notifications@github.comwrote:
Yes - in the logback.xml file. If you add <logger name="org.openhab.binding.zwave" level=“TRACE" /> to the file it should sort it. Note though that if you’re running in debug mode anyway, then the file is logback_debug.xml.
Cheers Chris
— Reply to this email directly or view it on GitHubhttps://github.com/openhab/openhab/issues/1044#issuecomment-42131485 .
Thanks.
Update - took a bit longer to happen but happened in the end I got there. Here are the logs:
http://cnktmp.s3.amazonaws.com/logs_trace.zip
Was working for the most part, the problem was in last 5-10m. Tried flipping a switch a few times but no action, only relevant stuff I could see in the log was:
22:02:08.347 TRACE o.o.b.z.i.ZWaveActiveBinding[:145]- internalReceiveCommand(itemname = ZWave_Light_IND_Hallway, Command = ON)
Thank you very much!
Also, to clarify, here are my details:
Aeon Z-stick Fibaro Dual relay switch Odroid U3 board
Items:
Switch ZWave_Light_IND_Hallway "Hallway main" (IND_Hallway, Lights) {zwave="2:2:command=switch_binary"}
Switch ZWave_Light_IND_Kitchen "Kitchen main" (IND_Kitchen, Lights) {zwave="2:1:command=switch_binary"}
Config (was default when problems started, tried playing with the numbers to see if it helps:
################################ Z-Wave Binding ######################################
#
# The Z-Wave controller port. Valid values are e.g. COM1 for Windows and /dev/ttyS0 or
# /dev/ttyUSB0 for Linux
zwave:port=/dev/zwave
# Z-Wave binding refresh value (optional, defaults to 10000)
zwave:refresh=5000
# Z-Wave binding refresh interval threshold (optional, defaults to every 6 times)
zwave:refreshThreshold=3
I am running 1.5 SNAPSHOT from CloudBees build (also had same issue with what I've build locally from latest sources).
My addons:
root@odroid:~/openhab-test/addons# ls -lha *.jar
-rw-r--r-- 1 root root 63K May 3 23:42 org.openhab.binding.exec-1.5.0-SNAPSHOT.jar
-rw-r--r-- 1 root root 19K May 3 23:42 org.openhab.binding.http-1.5.0-SNAPSHOT.jar
-rw-r--r-- 1 root root 97K May 3 23:42 org.openhab.binding.mpd-1.5.0-SNAPSHOT.jar
-rw-r--r-- 1 root root 10K May 3 23:42 org.openhab.binding.ntp-1.5.0-SNAPSHOT.jar
-rw-r--r-- 1 root root 408K May 3 23:42 org.openhab.binding.systeminfo-1.5.0-SNAPSHOT.jar
-rw-r--r-- 1 root root 75K May 3 23:42 org.openhab.binding.tcp-1.5.0-SNAPSHOT.jar
-rw-r--r-- 1 root root 825K May 4 10:47 org.openhab.binding.zwave-1.5.0-SNAPSHOT.jar
-rw-r--r-- 1 root root 2.5M May 3 15:53 org.openhab.io.myopenhab-1.4.0-SNAPSHOT.jar
-rw-r--r-- 1 root root 2.3M May 3 23:43 org.openhab.persistence.db4o-1.5.0-SNAPSHOT.jar
-rw-r--r-- 1 root root 6.1K May 3 23:43 org.openhab.persistence.exec-1.5.0-SNAPSHOT.jar
-rw-r--r-- 1 root root 7.3K May 3 23:43 org.openhab.persistence.logging-1.5.0-SNAPSHOT.jar
-rw-r--r-- 1 root root 604K May 3 23:43 org.openhab.persistence.rrd4j-1.5.0-SNAPSHOT.jar
I get an access denied error with this link…
Chris
On 4 May 2014, at 21:18, petrklus notifications@github.com wrote:
My bad - added EVERYONE ACL, should work now!
Yep - got it - thanks.
Btw. I've now dropped your latest copy from habmin to see if anything changes. Also, is there any more comprehensive guide on how to configure habmin? For example, I cannto see any logs in system->log viewer etc.
Also, is there any more comprehensive guide on how to configure habmin? For example, I cannto see any logs in system->log viewer etc.
There’s just the wiki. The log viewer isn’t implemented yet - it’s not something I’ve been able to work out how to intercept the logs and forward them to an HTTP interface...
Thanks! Maybe I will be able to contribute once my initial setup is done and my family is not afraid to push a switch in order not to break anything :D. (just a hyperbole, that's what I like about most z-wave switches - they still work even if the central hub is somehow incapacitated).
On Mon, May 5, 2014 at 10:33 AM, Chris Jackson notifications@github.comwrote:
Also, is there any more comprehensive guide on how to configure habmin? For example, I cannto see any logs in system->log viewer etc.
There’s just the wiki. The log viewer isn’t implemented yet - it’s not something I’ve been able to work out how to intercept the logs and forward them to an HTTP interface...
— Reply to this email directly or view it on GitHubhttps://github.com/openhab/openhab/issues/1044#issuecomment-42168109 .
Update:
Same issue with the latest ZWAVE extension (from habmin repo):
This time it happened sooner, so the logs are a bit lighter:
http://cnktmp.s3.amazonaws.com/logs_habminzwave.zip
We can see me issuing commands and nothing happening, yet PING goes through just fine:
11:01:20.777 DEBUG o.o.i.r.i.r.ItemResource[:196]- Received HTTP POST request at 'items/ZWave_Light_IND_Kitchen/' with value 'OFF'.
11:01:20.779 TRACE o.o.b.z.i.ZWaveActiveBinding[:199]- internalReceiveCommand(itemname = ZWave_Light_IND_Kitchen, Command = OFF)
11:01:22.237 DEBUG o.o.i.r.i.r.ItemResource[:196]- Received HTTP POST request at 'items/ZWave_Light_IND_Kitchen/' with value 'ON'.
11:01:22.240 TRACE o.o.b.z.i.ZWaveActiveBinding[:199]- internalReceiveCommand(itemname = ZWave_Light_IND_Kitchen, Command = ON)
11:01:23.804 DEBUG o.o.i.r.i.r.ItemResource[:196]- Received HTTP POST request at 'items/ZWave_Light_IND_Kitchen/' with value 'OFF'.
11:01:23.806 TRACE o.o.b.z.i.ZWaveActiveBinding[:199]- internalReceiveCommand(itemname = ZWave_Light_IND_Kitchen, Command = OFF)
11:01:24.421 DEBUG o.o.i.r.i.r.ItemResource[:196]- Received HTTP POST request at 'items/ZWave_Light_IND_Hallway/' with value 'ON'.
11:01:24.423 TRACE o.o.b.z.i.ZWaveActiveBinding[:199]- internalReceiveCommand(itemname = ZWave_Light_IND_Hallway, Command = ON)
11:01:27.221 DEBUG o.o.i.r.i.r.ItemResource[:196]- Received HTTP POST request at 'items/ZWave_Light_IND_Hallway/' with value 'OFF'.
11:01:27.224 TRACE o.o.b.z.i.ZWaveActiveBinding[:199]- internalReceiveCommand(itemname = ZWave_Light_IND_Hallway, Command = OFF)
11:01:29.592 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads
11:01:33.516 TRACE o.o.b.z.i.ZWaveActiveBinding[:199]- internalReceiveCommand(itemname = ZWave_Light_IND_Hallway, Command = ON)
11:01:35.607 TRACE o.o.b.z.i.ZWaveActiveBinding[:199]- internalReceiveCommand(itemname = ZWave_Light_IND_Hallway, Command = OFF)
11:01:36.585 TRACE o.o.b.z.i.ZWaveActiveBinding[:199]- internalReceiveCommand(itemname = ZWave_Light_IND_Kitchen, Command = ON)
11:01:39.592 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads
11:01:41.073 TRACE o.o.b.z.i.ZWaveActiveBinding[:199]- internalReceiveCommand(itemname = ZWave_Light_IND_Kitchen, Command = OFF)
11:01:49.592 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads
11:01:59.592 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads
11:02:09.592 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads
scr11:02:19.592 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads
11:02:29.592 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads
11:02:39.592 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads
11:02:49.592 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads
11:02:59.592 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads
11:03:09.592 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads
11:03:14.853 DEBUG o.o.b.z.i.ZWaveNetworkMonitor[:277]- NODE 2: Sending periodic PING.
11:03:14.853 DEBUG o.o.b.z.i.p.c.ZWaveNoOperationCommandClass[:75]- NODE 2: Creating new message for application command No Operation
11:03:14.854 DEBUG o.o.b.z.i.p.ZWaveController[:653]- Callback ID = 32
11:03:14.854 DEBUG o.o.b.z.i.p.ZWaveController[:364]- Enqueueing message. Queue length = 1
11:03:14.854 DEBUG o.o.b.z.i.p.ZWaveController$ZWaveSendThread[:826]- Took message from queue for sending. Queue length = 0
11:03:14.855 DEBUG o.o.b.z.i.p.ZWaveController$ZWaveSendThread[:855]- Sending Message = 01 08 00 13 02 01 00 25 20 E2
11:03:14.857 TRACE o.o.b.z.i.p.ZWaveController$ZWaveReceiveThread[:1031]- Received ACK
11:03:14.860 TRACE o.o.b.z.i.p.ZWaveController$ZWaveReceiveThread[:1025]- Reading message finished
11:03:14.860 DEBUG o.o.b.z.i.p.ZWaveController$ZWaveReceiveThread[:1026]- Receive Message = 01 04 01 13 01 E8
11:03:14.861 TRACE o.o.b.z.i.p.ZWaveController$ZWaveReceiveThread[:949]- Message is valid, sending ACK
11:03:14.862 TRACE o.o.b.z.i.p.ZWaveController[:152]- Incoming message to process
11:03:14.862 DEBUG o.o.b.z.i.p.ZWaveController[:153]- Message: class = SendData (0x13), type = Response (0x01), payload = 01
11:03:14.862 TRACE o.o.b.z.i.p.ZWaveController[:207]- Message type = RESPONSE
11:03:14.872 TRACE o.o.b.z.i.p.ZWaveController$ZWaveReceiveThread[:1025]- Reading message finished
11:03:14.872 DEBUG o.o.b.z.i.p.ZWaveController$ZWaveReceiveThread[:1026]- Receive Message = 01 05 00 13 20 00 C9
11:03:14.873 TRACE o.o.b.z.i.p.ZWaveController$ZWaveReceiveThread[:949]- Message is valid, sending ACK
11:03:14.874 TRACE o.o.b.z.i.p.ZWaveController[:152]- Incoming message to process
11:03:14.874 DEBUG o.o.b.z.i.p.ZWaveController[:153]- Message: class = SendData (0x13), type = Request (0x00), payload = 20 00
11:03:14.874 TRACE o.o.b.z.i.p.ZWaveController[:173]- Message type = REQUEST
11:03:14.875 DEBUG o.o.b.z.i.p.ZWaveController[:379]- Notifying event listeners
11:03:14.875 TRACE o.o.b.z.i.p.ZWaveController[:381]- Notifying org.openhab.binding.zwave.internal.ZWaveActiveBinding@174a09b
11:03:14.875 DEBUG o.o.b.z.i.ZWaveActiveBinding[:362]- ZwaveIncomingEvent
11:03:14.876 TRACE o.o.b.z.i.p.ZWaveController[:381]- Notifying org.openhab.binding.zwave.internal.ZWaveNetworkMonitor@1dc48dd
11:03:14.876 TRACE o.o.b.z.i.p.ZWaveController[:381]- Notifying org.openhab.binding.zwave.internal.config.ZWaveConfiguration@82d97
I got sidetracked with something else I’ve found in your log and forgot to look at the original problem (you have some interesting ‘dead node’ stuff which I’ll probably post back into a separate thread shortly.
I’ll take a look at this, but clearly the logs show that the data is getting to the binding, but for some reason it stops. I’ll add some more debug and send out a new version at some stage today.
On 5 May 2014, at 10:06, petrklus notifications@github.com wrote:
Update:
Same issue with the latest ZWAVE extension (from habmin repo):
This time it happened sooner, so the logs are a bit lighter:
http://cnktmp.s3.amazonaws.com/logs_habminzwave.zip
We can see me issuing commands and nothing happening, yet PING goes through just fine:
11:01:20.777 DEBUG o.o.i.r.i.r.ItemResource[:196]- Received HTTP POST request at 'items/ZWave_Light_IND_Kitchen/' with value 'OFF'. 11:01:20.779 TRACE o.o.b.z.i.ZWaveActiveBinding[:199]- internalReceiveCommand(itemname = ZWave_Light_IND_Kitchen, Command = OFF) 11:01:22.237 DEBUG o.o.i.r.i.r.ItemResource[:196]- Received HTTP POST request at 'items/ZWave_Light_IND_Kitchen/' with value 'ON'. 11:01:22.240 TRACE o.o.b.z.i.ZWaveActiveBinding[:199]- internalReceiveCommand(itemname = ZWave_Light_IND_Kitchen, Command = ON) 11:01:23.804 DEBUG o.o.i.r.i.r.ItemResource[:196]- Received HTTP POST request at 'items/ZWave_Light_IND_Kitchen/' with value 'OFF'. 11:01:23.806 TRACE o.o.b.z.i.ZWaveActiveBinding[:199]- internalReceiveCommand(itemname = ZWave_Light_IND_Kitchen, Command = OFF) 11:01:24.421 DEBUG o.o.i.r.i.r.ItemResource[:196]- Received HTTP POST request at 'items/ZWave_Light_IND_Hallway/' with value 'ON'. 11:01:24.423 TRACE o.o.b.z.i.ZWaveActiveBinding[:199]- internalReceiveCommand(itemname = ZWave_Light_IND_Hallway, Command = ON) 11:01:27.221 DEBUG o.o.i.r.i.r.ItemResource[:196]- Received HTTP POST request at 'items/ZWave_Light_IND_Hallway/' with value 'OFF'. 11:01:27.224 TRACE o.o.b.z.i.ZWaveActiveBinding[:199]- internalReceiveCommand(itemname = ZWave_Light_IND_Hallway, Command = OFF) 11:01:29.592 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads 11:01:33.516 TRACE o.o.b.z.i.ZWaveActiveBinding[:199]- internalReceiveCommand(itemname = ZWave_Light_IND_Hallway, Command = ON) 11:01:35.607 TRACE o.o.b.z.i.ZWaveActiveBinding[:199]- internalReceiveCommand(itemname = ZWave_Light_IND_Hallway, Command = OFF) 11:01:36.585 TRACE o.o.b.z.i.ZWaveActiveBinding[:199]- internalReceiveCommand(itemname = ZWave_Light_IND_Kitchen, Command = ON) 11:01:39.592 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads 11:01:41.073 TRACE o.o.b.z.i.ZWaveActiveBinding[:199]- internalReceiveCommand(itemname = ZWave_Light_IND_Kitchen, Command = OFF) 11:01:49.592 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads 11:01:59.592 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads 11:02:09.592 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads scr11:02:19.592 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads 11:02:29.592 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads 11:02:39.592 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads 11:02:49.592 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads 11:02:59.592 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads 11:03:09.592 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads 11:03:14.853 DEBUG o.o.b.z.i.ZWaveNetworkMonitor[:277]- NODE 2: Sending periodic PING. 11:03:14.853 DEBUG o.o.b.z.i.p.c.ZWaveNoOperationCommandClass[:75]- NODE 2: Creating new message for application command No Operation 11:03:14.854 DEBUG o.o.b.z.i.p.ZWaveController[:653]- Callback ID = 32 11:03:14.854 DEBUG o.o.b.z.i.p.ZWaveController[:364]- Enqueueing message. Queue length = 1 11:03:14.854 DEBUG o.o.b.z.i.p.ZWaveController$ZWaveSendThread[:826]- Took message from queue for sending. Queue length = 0 11:03:14.855 DEBUG o.o.b.z.i.p.ZWaveController$ZWaveSendThread[:855]- Sending Message = 01 08 00 13 02 01 00 25 20 E2 11:03:14.857 TRACE o.o.b.z.i.p.ZWaveController$ZWaveReceiveThread[:1031]- Received ACK 11:03:14.860 TRACE o.o.b.z.i.p.ZWaveController$ZWaveReceiveThread[:1025]- Reading message finished 11:03:14.860 DEBUG o.o.b.z.i.p.ZWaveController$ZWaveReceiveThread[:1026]- Receive Message = 01 04 01 13 01 E8 11:03:14.861 TRACE o.o.b.z.i.p.ZWaveController$ZWaveReceiveThread[:949]- Message is valid, sending ACK 11:03:14.862 TRACE o.o.b.z.i.p.ZWaveController[:152]- Incoming message to process 11:03:14.862 DEBUG o.o.b.z.i.p.ZWaveController[:153]- Message: class = SendData (0x13), type = Response (0x01), payload = 01 11:03:14.862 TRACE o.o.b.z.i.p.ZWaveController[:207]- Message type = RESPONSE 11:03:14.872 TRACE o.o.b.z.i.p.ZWaveController$ZWaveReceiveThread[:1025]- Reading message finished 11:03:14.872 DEBUG o.o.b.z.i.p.ZWaveController$ZWaveReceiveThread[:1026]- Receive Message = 01 05 00 13 20 00 C9 11:03:14.873 TRACE o.o.b.z.i.p.ZWaveController$ZWaveReceiveThread[:949]- Message is valid, sending ACK 11:03:14.874 TRACE o.o.b.z.i.p.ZWaveController[:152]- Incoming message to process 11:03:14.874 DEBUG o.o.b.z.i.p.ZWaveController[:153]- Message: class = SendData (0x13), type = Request (0x00), payload = 20 00 11:03:14.874 TRACE o.o.b.z.i.p.ZWaveController[:173]- Message type = REQUEST 11:03:14.875 DEBUG o.o.b.z.i.p.ZWaveController[:379]- Notifying event listeners 11:03:14.875 TRACE o.o.b.z.i.p.ZWaveController[:381]- Notifying org.openhab.binding.zwave.internal.ZWaveActiveBinding@174a09b 11:03:14.875 DEBUG o.o.b.z.i.ZWaveActiveBinding[:362]- ZwaveIncomingEvent 11:03:14.876 TRACE o.o.b.z.i.p.ZWaveController[:381]- Notifying org.openhab.binding.zwave.internal.ZWaveNetworkMonitor@1dc48dd 11:03:14.876 TRACE o.o.b.z.i.p.ZWaveController[:381]- Notifying org.openhab.binding.zwave.internal.config.ZWaveConfiguration@82d97 — Reply to this email directly or view it on GitHub.
Great, looking forward to your reply!
By the way - what timezone are you in?
I’m in the UK - it’s a holiday here today :)
One thing I’ve found is that the command will silently ‘fail’ (as you see) if the node stage is not = DONE (e.g. if it goes DEAD or reinitialises for some reason). While this doesn’t appear to be the case here it seems that every other path should result in another log entry after the one we see. I’ll add debug into this area and see what it shows.
OK, let me know when I can update the extension and see.. On 5 May 2014 12:07, "Chris Jackson" notifications@github.com wrote:
One thing I’ve found is that the command will silently ‘fail’ (as you see) if the node stage is not = DONE (e.g. if it goes DEAD or reinitialises for some reason). While this doesn’t appear to be the case here it seems that every other path should result in another log entry after the one we see. I’ll add debug into this area and see what it shows.
— Reply to this email directly or view it on GitHubhttps://github.com/openhab/openhab/issues/1044#issuecomment-42174213 .
I’m just compiling, will give it a quick try here to make sure there’s no silly errors then will post it to the openhab list under the "Re: Z-Wave Philio Multi-Sensor PSM02” thread since it will also have a fix (hopefully) for the binary sensor enhancements (and Git won’t allow posting of binaries here I think).
Just downloaded it, let the testing start :)
.. and here we go:
13:34:34.765 TRACE o.o.b.z.i.ZWaveActiveBinding[:211]- internalReceiveCommand(itemname = ZWave_Light_IND_Hallway, Command = OFF)
13:34:34.766 TRACE o.o.b.z.i.c.ZWaveConverterHandler[:340]- 2 stage is node DONE: DEAD
13:34:38.124 TRACE o.o.b.z.i.p.ZWaveController$WatchDogTimerTask[:1089]- Watchdog: Checking Serial threads
13:34:38.376 DEBUG o.o.i.r.i.r.ItemResource[:196]- Received HTTP POST request at 'items/ZWave_Light_IND_Hallway/' with value 'ON'.
13:34:38.377 TRACE o.o.b.z.i.ZWaveActiveBinding[:211]- internalReceiveCommand(itemname = ZWave_Light_IND_Hallway, Command = ON)
13:34:38.378 TRACE o.o.b.z.i.c.ZWaveConverterHandler[:340]- 2 stage is node DONE: DEAD
13:34:40.266 DEBUG o.o.i.r.i.r.ItemResource[:196]- Received HTTP POST request at 'items/ZWave_Light_IND_Hallway/' with value 'OFF'.
13:34:40.268 TRACE o.o.b.z.i.ZWaveActiveBinding[:211]- internalReceiveCommand(itemname = ZWave_Light_IND_Hallway, Command = OFF)
13:34:40.268 TRACE o.o.b.z.i.c.ZWaveConverterHandler[:340]- 2 stage is node DONE: DEAD
13:34:43.888 DEBUG o.o.i.r.i.r.ItemResource[:196]- Received HTTP POST request at 'items/ZWave_Light_IND_Kitchen/' with value 'ON'.
13:34:43.890 TRACE o.o.b.z.i.ZWaveActiveBinding[:211]- internalReceiveCommand(itemname = ZWave_Light_IND_Kitchen, Command = ON)
13:34:43.890 TRACE o.o.b.z.i.c.ZWaveConverterHandler[:340]- 2 stage is node DONE: DEAD
13:34:45.193 DEBUG o.o.i.r.i.r.ItemResource[:196]- Received HTTP POST request at 'items/ZWave_Light_IND_Kitchen/' with value 'OFF'.
13:34:45.195 TRACE o.o.b.z.i.ZWaveActiveBinding[:211]- internalReceiveCommand(itemname = ZWave_Light_IND_Kitchen, Command = OFF)
13:34:45.195 TRACE o.o.b.z.i.c.ZWaveConverterHandler[:340]- 2 stage is node DONE: DEAD
13:34:46.352 DEBUG o.o.i.r.i.r.ItemResource[:196]- Received HTTP POST request at 'items/ZWave_Light_IND_Kitchen/' with value 'ON'.
13:34:46.353 TRACE o.o.b.z.i.ZWaveActiveBinding[:211]- internalReceiveCommand(itemname = ZWave_Light_IND_Kitchen, Command = ON)
13:34:46.354 TRACE o.o.b.z.i.c.ZWaveConverterHandler[:340]- 2 stage is node DONE: DEAD
13:34:47.489 DEBUG o.o.i.r.i.r.ItemResource[:196]- Received HTTP POST request at 'items/ZWave_Light_IND_Kitchen/' with value 'OFF'.
13:34:47.491 TRACE o.o.b.z.i.ZWaveActiveBinding[:211]- internalReceiveCommand(itemname = ZWave_Light_IND_Kitchen, Command = OFF)
13:34:47.491 TRACE o.o.b.z.i.c.ZWaveConverterHandler[:340]- 2 stage is node DONE: DEAD
Full logs: http://cnktmp.s3.amazonaws.com/logs_4.zip
Ok - that’s what I thought. The problem is the node is going dead, and then the binding doesn’t talk to it :(
I’m going to remove this check - my concept for handling dead nodes is still to send a frame to them, but only 1 (i.e. no retries). I don’t know if you saw my other post about the stuff I’ve seen in your log with node 2 going dead? It’s strange...
I’ll attach an update here - if Git removes the file I’ll post it to the openhab list.
Thanks!
I suppose that is going to work in the interim, what can I do to help debug the healing behaviour? On 5 May 2014 14:10, "Chris Jackson" notifications@github.com wrote:
I’ll attach an update here - if Git removes the file I’ll post it to the openhab list.
— Reply to this email directly or view it on GitHubhttps://github.com/openhab/openhab/issues/1044#issuecomment-42181170 .
I suppose that is going to work in the interim, what can I do to help debug the healing behaviour? Well, that’s the big question…. Take a look at my post in the forum about what I’ve seen in your logs. Unfortunately I don’t understand what’s happening, so it’s difficult to combat it, and it also seems that OZW has the same, or similar, problem (I think the OH binding used OZW as a reference, so it’s probably not a surprise).
ZWave information is scarce - I have quite a bit that I’ve dredged up off the net, but it’s all quite old.
Any thoughts are welcome. I might dig my Vera out and see if I can get it talking to the net to see what they send and see if it’s different to the binding, but this isn’t a 5 minute task unfortunately…
The other option is to ‘have a play’ with options etc and see what helps. It’s a bit ‘trial and error’ which isn’t nice, but in the absence of documentation there’s probably limited alternative.
I am slowly getting my grips from various sources too.. (this one was especially helpful - https://groups.google.com/forum/#!topic/openhab/h3beXlo5iKU).
My question is - what initially triggers node to be dead? Is it when it is not responding to PING?
Also, where does the 15s lockup come from?
Lastly, what was your motivation to using zwave api VS interfacing with Vera? As a person at the beginning of the integration, is there any advantage to having it directly in OH, compared to interfacing with fibaro or vera? I understand the underlying concepts but if the protocol continues to be a mystery (and on top of that can be update without our knowledge), how can we "guarantee" a reliable system?
My question is - what initially triggers node to be dead? Is it when it is not responding to PING?
Not responding to 3 consecutive requests will cause it to be marked DEAD - these might be a ping, or anything else (commands or whatever).
Also, where does the 15s lockup come from?
This is the 3 consecutive requests mentioned above - each request (currently) uses a 5 second timeout. I have some information that indicates that a shorter time might be ok (2.5 seconds is mentioned) so I have made this a configurable parameter.
Lastly, what was your motivation to using zwave api VS interfacing with Vera?
The zwave binding was already written before I started with OH. I’ve added to it over the past 6 months or so and added all the configuration type stuff, but the underlying binding and fundamental communications was already there and I’ve not changed that much at all. Previously when nodes went DEAD (which happened quite often) they stayed DEAD until you restarted the binding. The recovery stuff that I’ve added is trying to cope with this to make things more robust, but at the end of the day, DEAD nodes should be a ‘once in a blue moon’ event and not something that’s happening often...
As a person at the beginning of the integration, is there any advantage to having it directly in OH, compared to interfacing with fibaro or vera?
Personally, I wouldn’t go for a Vera. While its zwave integration is ok, you will potentially still find similar issues with it. Additionally, MCV are very unresponsive to fixing problems. When I first got my Vera 3 years ago I raised a request to add decimal places to temperatures - people are still complaining about that issue now and it’s soooo easy to fix. If you integrate to a Vera, you will still have these issues and there will be nothing you can do about it.
I understand the underlying concepts but if the protocol continues to be a mystery (and on top of that can be update without our knowledge), how can we "guarantee" a reliable system?
I don’t think it will be updated. One nice thing about zwave is that Sigma are the only chip manufacturer, so it’s basically guaranteed compatible and it won’t change. They have a standard API, and any changes they make they always retain backward compatibility. At the end of the day, they can’t just got and change this or everyones devices will stop working.
I agree that there are issues here, however if you read the other forums (MCV Vera for example) you will still find people complaining about nodes that they can’t communicate with etc. A lot of this might be underlying communications issues. Even Vera, Fibaro etc all use the same stick as we are all using - it’s just embedded into their units, but the API is still the same.
I don’t know much about the Fibaro unit, but I do like Fibaro stuff, so if I were going to go for another unit, I’d probably look there (just my opinions of course!).
I think it makes sense - I would definitely go with Fibaro if faced the choice.. but in the meantime I will see if I can help make the binding stable and working for me.
One more side note - in the previous case, when the node is declared DEAD, it is marked RED in HABmin. When I go and flip the switch, I saw the colour in Habmin to change to yellow - what at the conditions to be fulfilled for the node to be green?
Will try the latest binding now..
Thank you very much for your replies!
On Mon, May 5, 2014 at 3:14 PM, Chris Jackson notifications@github.comwrote:
Lastly, what was your motivation to using zwave api VS interfacing with Vera?
The zwave binding was already written before I started with OH. I’ve added to it over the past 6 months or so and added all the configuration type stuff, but the underlying binding and fundamental communications was already there and I’ve not changed that much at all. Previously when nodes went DEAD (which happened quite often) they stayed DEAD until you restarted the binding. The recovery stuff that I’ve added is trying to cope with this to make things more robust, but at the end of the day, DEAD nodes should be a ‘once in a blue moon’ event and not something that’s happening often...
As a person at the beginning of the integration, is there any advantage to having it directly in OH, compared to interfacing with fibaro or vera?
Personally, I wouldn’t go for a Vera. While its zwave integration is ok, you will potentially still find similar issues with it. Additionally, MCV are very unresponsive to fixing problems. When I first got my Vera 3 years ago I raised a request to add decimal places to temperatures - people are still complaining about that issue now and it’s soooo easy to fix. If you integrate to a Vera, you will still have these issues and there will be nothing you can do about it.
I understand the underlying concepts but if the protocol continues to be a mystery (and on top of that can be update without our knowledge), how can we "guarantee" a reliable system?
I don’t think it will be updated. One nice thing about zwave is that Sigma are the only chip manufacturer, so it’s basically guaranteed compatible and it won’t change. They have a standard API, and any changes they make they always retain backward compatibility. At the end of the day, they can’t just got and change this or everyones devices will stop working.
I agree that there are issues here, however if you read the other forums (MCV Vera for example) you will still find people complaining about nodes that they can’t communicate with etc. A lot of this might be underlying communications issues. Even Vera, Fibaro etc all use the same stick as we are all using - it’s just embedded into their units, but the API is still the same.
I don’t know much about the Fibaro unit, but I do like Fibaro stuff, so if I were going to go for another unit, I’d probably look there (just my opinions of course!).
— Reply to this email directly or view it on GitHubhttps://github.com/openhab/openhab/issues/1044#issuecomment-42185976 .
One more side note - in the previous case, when the node is declared DEAD, it is marked RED in HABmin. When I go and flip the switch, I saw the colour in Habmin to change to yellow - what at the conditions to be fulfilled for the node to be green?
Red = dead, Green = ok, grey = uninitialised…
Yellow means one of two things -: Either, it was dead in the past 24 hours, OR, the number of retries on this node is >5% (I think it’s 5%). Basically, it indicates that this node might be dodgy.
Ok, looks like the latest binding allows me to send commands to "DEAD" nodes - however, even after happily communicating with the nodes, the habmin still states:
Interesting. This (might) mean that even though the command got through to the node, the response didn’t come back. If the response had come back, then the binding should mark it alive again. Do you have a log?
16:04:19.007 TRACE o.o.b.z.i.ZWaveActiveBinding[:211]- internalReceiveCommand(itemname = ZWave_Light_IND_Hallway, Command = OFF)
16:04:19.008 DEBUG o.o.b.z.i.p.c.ZWaveBinarySwitchCommandClass[:135]- Creating new message for application command SWITCH_BINARY_SET for node 2
16:04:19.009 DEBUG o.o.b.z.i.protocol.ZWaveNode[:551]- NODE 2: Encapsulating message, instance / endpoint 2
16:04:19.010 DEBUG o.o.b.z.i.p.c.ZWaveMultiInstanceCommandClass[:499]- NODE 2: Creating new message for application command MULTI_CHANNEL_ENCAP endpoint 2
16:04:19.010 DEBUG o.o.b.z.i.p.ZWaveController[:653]- Callback ID = 24
16:04:19.011 DEBUG o.o.b.z.i.p.ZWaveController[:364]- Enqueueing message. Queue length = 1
16:04:19.011 DEBUG o.o.b.z.i.p.ZWaveController$ZWaveSendThread[:826]- Took message from queue for sending. Queue length = 0
16:04:19.014 DEBUG o.o.b.z.i.p.ZWaveController$ZWaveSendThread[:855]- Sending Message = 01 0E 00 13 02 07 60 0D 01 02 25 01 00 25 18 90
16:04:19.016 TRACE o.o.b.z.i.p.ZWaveController$ZWaveReceiveThread[:1031]- Received ACK
16:04:19.019 TRACE o.o.b.z.i.p.ZWaveController$ZWaveReceiveThread[:1025]- Reading message finished
16:04:19.020 DEBUG o.o.b.z.i.p.ZWaveController$ZWaveReceiveThread[:1026]- Receive Message = 01 04 01 13 01 E8
16:04:19.021 TRACE o.o.b.z.i.p.ZWaveController$ZWaveReceiveThread[:949]- Message is valid, sending ACK
16:04:19.022 TRACE o.o.b.z.i.p.ZWaveController[:152]- Incoming message to process
16:04:19.022 DEBUG o.o.b.z.i.p.ZWaveController[:153]- Message: class = SendData (0x13), type = Response (0x01), payload = 01
16:04:19.022 TRACE o.o.b.z.i.p.ZWaveController[:207]- Message type = RESPONSE
16:04:19.032 TRACE o.o.b.z.i.p.ZWaveController$ZWaveReceiveThread[:1025]- Reading message finished
16:04:19.033 DEBUG o.o.b.z.i.p.ZWaveController$ZWaveReceiveThread[:1026]- Receive Message = 01 05 00 13 18 00 F1
16:04:19.035 TRACE o.o.b.z.i.p.ZWaveController$ZWaveReceiveThread[:949]- Message is valid, sending ACK
16:04:19.035 TRACE o.o.b.z.i.p.ZWaveController[:152]- Incoming message to process
16:04:19.035 DEBUG o.o.b.z.i.p.ZWaveController[:153]- Message: class = SendData (0x13), type = Request (0x00), payload = 18 00
16:04:19.035 TRACE o.o.b.z.i.p.ZWaveController[:173]- Message type = REQUEST
16:04:19.037 DEBUG o.o.b.z.i.p.ZWaveController[:379]- Notifying event listeners
16:04:19.037 TRACE o.o.b.z.i.p.ZWaveController[:381]- Notifying org.openhab.binding.zwave.internal.ZWaveActiveBinding@1df177b
16:04:19.037 DEBUG o.o.b.z.i.ZWaveActiveBinding[:374]- ZwaveIncomingEvent
16:04:19.037 TRACE o.o.b.z.i.p.ZWaveController[:381]- Notifying org.openhab.binding.zwave.internal.ZWaveNetworkMonitor@17eaaf2
16:04:19.037 TRACE o.o.b.z.i.p.ZWaveController[:381]- Notifying org.openhab.binding.zwave.internal.config.ZWaveConfiguration@d8a49d
16:04:19.038 DEBUG o.o.b.z.i.p.ZWaveController$ZWaveSendThread[:901]- Response processed after 24ms/218ms.
16:04:19.038 TRACE o.o.b.z.i.p.ZWaveController$ZWaveSendThread[:902]- Acquired. Transaction completed permit count -> 0
16:04:19.038 TRACE o.o.b.z.i.p.ZWaveController[:182]- Released. Transaction completed permit count -> 0
Looks like it's getting the reply, am I right?
Habmin still the same:
Thanks. Have you removed anything out of this log? I don’t see a bunch of stuff from the SendDataMessage class?
Yes, I filter for ZWAVE string (case-insensitive). Here are full logs: https://dl.dropboxusercontent.com/u/7395199/logs_5.zip
Thanks. The filter I use for this is o.o.b.z - this gets all the zwave binding stuff…
cool! Also, I've got zwave:healtime unset - what should I set it to?
I have mine set to 2 (or 3?). This is the hour at which the binding will do a heal on the network. It reads all the neighbours and sets up any routes for associations that have changed…
Hmmm - so in the case that you send a command like this to a DEAD node, the response won’t make it come alive. It will only come alive when it receives a command class update which we don’t get in your case. I guess the devices don’t send out an update unless (maybe) associations are set of something like that…
I’ll change this so that at least it comes alive again, but as a question, do you have associations set on node 2?
No, I've really not done anything to the configuration apart from following steps:
So unless any of the above steps create associations, nothing like that has been done.
Lastly, why is the node marked as DEAD during the UPDATENEIGHBORS function (that is what I see in the heal status).
On Mon, May 5, 2014 at 4:32 PM, Chris Jackson notifications@github.comwrote:
Hmmm - so in the case that you send a command like this to a DEAD node, the response won’t make it come alive. It will only come alive when it receives a command class update which we don’t get in your case. I guess the devices don’t send out an update unless (maybe) associations are set of something like that…
I’ll change this so that at least it comes alive again, but as a question, do you have associations set on node 2?
— Reply to this email directly or view it on GitHubhttps://github.com/openhab/openhab/issues/1044#issuecomment-42193822 .
So unless any of the above steps create associations, nothing like that has been done. Nope - ok, that explains it… You might want to think about that at some stage.
Lastly, why is the node marked as DEAD during the UPDATENEIGHBORS function (that is what I see in the heal status). I’m not sure - is it in one of your logs?
What is the purpose of the association groups?
Re. the message - this is the text I see in Habmin:
Is it now in the assoc. group? Should I add every new node there when I get them?
(after I did that, the node colour changed to YELLOW, heal status still the same though). Also, the controller update settings do not stick for node 2 - only for node 1 - does it make sense as only node 1 is controller?
What is the purpose of the association groups?
They allow a device to tell another device (or the controller) that something has happened. Eg, you can link two light switches so that pressing one will turn on another, or link a motion sensor to turn on the lights (associations can be set so the devices talk directly to each other - i.e. they don’t need the controller in the middle). They are also useful so that the device can tell OH that something has happened - e.g. when you turn on the lights, OH knows about it, and your GUI says the lights are on. Fibaro devices have a separate association group for this, but whatever group is used, you need to set an association to your controller (Node 1).
Re. the message - this is the text I see in Habmin:
Ok, this doesn’t mean the device went DEAD during the node neighbour update - it means the heal failed though. Neighbor updates seem a bit dodgy - especially if this is your controller. This (probably) isn’t an issue with the binding since I’ve been told the same happens with OZW. I don’t know why it fails - it seems to fail on the controller after about a minute, but I don’t really know what’s happening at the protocol level - it should do a search for all nodes it can hear, but I don’t know what happens at RF…
I’m looking at getting a packet sniffer - if I’m successful I might learn some more about this sort of thing...
Ok, sounds interesting when I get more zwave devices, that I will link them together internally. Also, how come that my light switches on OH user interface got updated even without the association groups?
On Mon, May 5, 2014 at 5:00 PM, Chris Jackson notifications@github.comwrote:
What is the purpose of the association groups?
They allow a device to tell another device (or the controller) that something has happened. Eg, you can link two light switches so that pressing one will turn on another, or link a motion sensor to turn on the lights (associations can be set so the devices talk directly to each other
- i.e. they don’t need the controller in the middle). They are also useful so that the device can tell OH that something has happened - e.g. when you turn on the lights, OH knows about it, and your GUI says the lights are on. Fibaro devices have a separate association group for this, but whatever group is used, you need to set an association to your controller (Node 1).
Re. the message - this is the text I see in Habmin:
Ok, this doesn’t mean the device went DEAD during the node neighbour update - it means the heal failed though. Neighbor updates seem a bit dodgy
- especially if this is your controller. This (probably) isn’t an issue with the binding since I’ve been told the same happens with OZW. I don’t know why it fails - it seems to fail on the controller after about a minute, but I don’t really know what’s happening at the protocol level - it should do a search for all nodes it can hear, but I don’t know what happens at RF…
I’m looking at getting a packet sniffer - if I’m successful I might learn some more about this sort of thing...
— Reply to this email directly or view it on GitHubhttps://github.com/openhab/openhab/issues/1044#issuecomment-42196797 .
On 5 May 2014, at 16:07, petrklus notifications@github.com wrote:
Ok, sounds interesting when I get more zwave devices, that I will link them together internally. Also, how come that my light switches on OH user interface got updated even without the association groups?
Maybe you have polling enabled? Or some switches will send a message even without associations - these mostly seem to be used in the USA from what I’ve seen (I’m guessing you’re in Europe somewhere?).
If I have, it needs to be the default setting :). Yes, Europe - Spain to be specific (bought from zwave.es).
On Mon, May 5, 2014 at 5:11 PM, Chris Jackson notifications@github.comwrote:
On 5 May 2014, at 16:07, petrklus notifications@github.com wrote:
Ok, sounds interesting when I get more zwave devices, that I will link them together internally. Also, how come that my light switches on OH user interface got updated even without the association groups?
Maybe you have polling enabled? Or some switches will send a message even without associations - these mostly seem to be used in the USA from what I’ve seen (I’m guessing you’re in Europe somewhere?).
— Reply to this email directly or view it on GitHubhttps://github.com/openhab/openhab/issues/1044#issuecomment-42198071 .
State right after OH restart, log when flipping a switch (and the light goes on and off):
However, later it stops working (same command issued, however, no corresponding zwave binding activity):
What is going on? Why does the binding not create and enqueue the new commands?
The PING goes through just fine:
Why is the ping still working but normal commands are not sent out?