----The short story -----
-
Started with RPI3b+ with an older openhabian install.
-
Update from OH2.4 to 2.5 went well.
-
Update from OH2.5 to 3.0 went well.
-
Worked well (some cleanup of old plugins had to be done)
-
Fresh install on RPI4 with the latest release of OpenHabian
-
Backup OH3 on old box, restore on new.
-
Had to put Zwave stick on a USB 2.0 hub to make it work. (google helped!)
-
Zwave network ended up in a “read only” state - can recieve but not send data.
-
Putting the zwave stick back to the RPI3 -> working zwave!!
(strange… it’s running with the same data isn’t it?)
------The long story-----
I’ve updated my OpenHab 2.4 to 2.5, then ran the update to version 3. All well so far! (some old plugins had to be removed from conf files, but google provided a lot of help, so everything ended up working well)
I also wanted to get a new fresh start with the latest Openhabian (had an old one running on a RPI 3b+) I did a fresh install on a Raspberry PI 4b with the latest OpenHabian image (downloaded yesterday)
I then did a backup of OH3 which was updated from OH2.5 with openhab-cli backup , scp’d the backup over to the newly installed RPI4 and did openhab-cli restore .
Discovered that the Aeotec USB Zwave Stick Gen 5 will NOT work on a RPI4 unless it’s on a USB 2.0 hub, so connected a simple unpowered HUB to the RPI4 (no other devices connected to the HUB or the PI) - Now I could see my zwave network, and i get data from all the nodes, yaaay!
All seemed to work fine, until I discovered that the zwave network only sends data, it will not accept any changes sent by OH3, like turning on/off switches, or change the value of dimmers. Data is recieved, so I get updates from sensors and switches, but they will not accept any updates.
Status of THINGS says that it’s all OK, but somehow I’ve gotten to a state of a “read only” zwave network.
Lots of googling and I found the DEBUG and TRACE options to logging in OH.
When I set the zwave logging to DEBUG in karaf console and discovered these type of messages:
“NODE 5: sentData was not placed on stack.”
Then increased debugging to TRACE (these logs are hard to read, I’ve seen that Chris Jackson has some cool gui tool to make more sense of it, but I could not find it)
I moved my zwave stick back to the RPI3, (and booted it up again) - only to discover that zwave is working properly here (can turn stuff on and off, and set dimming levels)
I then checked that OH can write to the controller:
$ ll /dev/USBzwave
lrwxrwxrwx 1 root root 7 Dec 28 16:31 /dev/USBzwave -> ttyACM0
$ ll /dev/ttyACM0
crw-rw-rw- 1 root dialout 166, 0 Dec 29 2020 /dev/ttyACM0
and checked that the user “openhab” is a member of the group dialout, so I guess it has write access to the zwave stick.
My knowledge of how zwave works ends here… and google drowned me in all the stuff that did not help me much…
So this is the time to ask for help, hopefully some of you can make more sense of this trace.
------ output from openhab.log with zwave set to TRACE on the RPI4 (fresh install with backup restored) ------
2020-12-29 10:25:27.134 [TRACE] [sactionManager$ZWaveTransactionTimer] - Holdoff Timer triggered…
2020-12-29 10:25:27.134 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.
2020-12-29 10:25:27.135 [TRACE] [ng.zwave.internal.protocol.ZWaveNode] - NODE 8: listening == false, frequentlyListening == false, awake == false
2020-12-29 10:25:27.136 [TRACE] [nal.protocol.ZWaveTransactionManager] - NODE 8: Node not awake!
2020-12-29 10:25:27.136 [TRACE] [ng.zwave.internal.protocol.ZWaveNode] - NODE 11: listening == false, frequentlyListening == false, awake == false
2020-12-29 10:25:27.137 [TRACE] [nal.protocol.ZWaveTransactionManager] - NODE 11: Node not awake!
2020-12-29 10:25:27.137 [TRACE] [ng.zwave.internal.protocol.ZWaveNode] - NODE 16: listening == false, frequentlyListening == false, awake == false
2020-12-29 10:25:27.138 [TRACE] [nal.protocol.ZWaveTransactionManager] - NODE 16: Node not awake!
2020-12-29 10:25:27.139 [TRACE] [ng.zwave.internal.protocol.ZWaveNode] - NODE 6: listening == false, frequentlyListening == false, awake == false
2020-12-29 10:25:27.139 [TRACE] [nal.protocol.ZWaveTransactionManager] - NODE 6: Node not awake!
2020-12-29 10:25:27.140 [TRACE] [ng.zwave.internal.protocol.ZWaveNode] - NODE 4: listening == false, frequentlyListening == false, awake == false
2020-12-29 10:25:27.140 [TRACE] [nal.protocol.ZWaveTransactionManager] - NODE 4: Node not awake!
2020-12-29 10:25:27.141 [TRACE] [ng.zwave.internal.protocol.ZWaveNode] - NODE 19: listening == false, frequentlyListening == false, awake == false
2020-12-29 10:25:27.141 [TRACE] [nal.protocol.ZWaveTransactionManager] - NODE 19: Node not awake!
2020-12-29 10:25:27.142 [TRACE] [ng.zwave.internal.protocol.ZWaveNode] - NODE 15: listening == false, frequentlyListening == false, awake == false
2020-12-29 10:25:27.142 [TRACE] [nal.protocol.ZWaveTransactionManager] - NODE 15: Node not awake!
2020-12-29 10:25:27.143 [TRACE] [ng.zwave.internal.protocol.ZWaveNode] - NODE 5: listening == true, frequentlyListening == false, awake == false
2020-12-29 10:25:27.144 [TRACE] [nal.protocol.ZWaveTransactionManager] - Transaction from sendQueue
2020-12-29 10:25:27.144 [TRACE] [nal.protocol.ZWaveTransactionManager] - getTransactionToSend 6
2020-12-29 10:25:27.145 [TRACE] [wave.internal.protocol.SerialMessage] - Calculated checksum = -16
2020-12-29 10:25:27.146 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 0A 00 13 05 03 25 01 FF 25 EE F0
2020-12-29 10:25:27.147 [DEBUG] [ing.zwave.handler.ZWaveSerialHandler] - NODE 5: Sending REQUEST Message = 01 0A 00 13 05 03 25 01 FF 25 EE F0
2020-12-29 10:25:27.147 [DEBUG] [ing.zwave.handler.ZWaveSerialHandler] - Message SENT
2020-12-29 10:25:27.148 [TRACE] [e.internal.protocol.ZWaveTransaction] - TID 215: Transaction Start type SendData
2020-12-29 10:25:27.149 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 06
2020-12-29 10:25:27.149 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage started: TID 215: [WAIT_RESPONSE] priority=Set, requiresResponse=true, callback: 238
2020-12-29 10:25:27.150 [TRACE] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage started: expected cmd class: null
2020-12-29 10:25:27.150 [TRACE] [wave.internal.protocol.SerialMessage] - NODE 255: Creating new SerialMessage from buffer = 06
2020-12-29 10:25:27.150 [TRACE] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage started: expected cmd: 0
2020-12-29 10:25:27.151 [TRACE] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage Transactions outstanding: 1
2020-12-29 10:25:27.151 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=null[0], type=ACK[2], dest=255, callback=0, payload=
2020-12-29 10:25:27.152 [TRACE] [nal.protocol.ZWaveTransactionManager] - STOP transaction timer
2020-12-29 10:25:27.152 [TRACE] [nal.protocol.ZWaveTransactionManager] - Start transaction timer to Tue Dec 29 10:25:29 CET 2020 - 2000ms
2020-12-29 10:25:27.153 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=null[0], type=ACK[2], dest=255, callback=0, payload=
2020-12-29 10:25:27.153 [TRACE] [WaveSerialHandler$ZWaveReceiveThread] - Received SOF
2020-12-29 10:25:27.154 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null
2020-12-29 10:25:27.154 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg: ACK
2020-12-29 10:25:27.155 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty
2020-12-29 10:25:27.155 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 04 01 13 00 E9
2020-12-29 10:25:27.156 [TRACE] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage lastTransaction: TID 215: [WAIT_RESPONSE] priority=Set, requiresResponse=true, callback: 238
2020-12-29 10:25:27.157 [TRACE] [nal.protocol.ZWaveTransactionManager] - STOP transaction timer
2020-12-29 10:25:27.157 [TRACE] [wave.internal.protocol.SerialMessage] - NODE 255: Creating new SerialMessage from buffer = 01 04 01 13 00 E9
2020-12-29 10:25:27.158 [TRACE] [nal.protocol.ZWaveTransactionManager] - Start transaction timer to Tue Dec 29 10:25:29 CET 2020 - 1994ms
2020-12-29 10:25:27.158 [TRACE] [wave.internal.protocol.SerialMessage] - Calculated checksum = -23
2020-12-29 10:25:27.159 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 1 out at start. Holdoff false.
2020-12-29 10:25:27.159 [TRACE] [wave.internal.protocol.SerialMessage] - NODE 255: Checksum matched
2020-12-29 10:25:27.159 [TRACE] [nal.protocol.ZWaveTransactionManager] - Transaction lastTransaction outstanding…
2020-12-29 10:25:27.159 [TRACE] [wave.internal.protocol.SerialMessage] - NODE 255: Message payload = 00
2020-12-29 10:25:27.160 [TRACE] [nal.protocol.ZWaveTransactionManager] - STOP transaction timer
2020-12-29 10:25:27.160 [TRACE] [WaveSerialHandler$ZWaveReceiveThread] - Message is valid, sending ACK
2020-12-29 10:25:27.161 [TRACE] [nal.protocol.ZWaveTransactionManager] - Start transaction timer to Tue Dec 29 10:25:29 CET 2020 - 1992ms
2020-12-29 10:25:27.161 [TRACE] [WaveSerialHandler$ZWaveReceiveThread] - Response SENT 6
2020-12-29 10:25:27.162 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=SendData[19], type=Response[1], dest=255, callback=0, payload=00
2020-12-29 10:25:27.163 [TRACE] [WaveSerialHandler$ZWaveReceiveThread] - Received SOF
2020-12-29 10:25:27.163 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=SendData[19], type=Response[1], dest=255, callback=0, payload=00
2020-12-29 10:25:27.164 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction TID 215: [WAIT_RESPONSE] priority=Set, requiresResponse=true, callback: 238
2020-12-29 10:25:27.165 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Checking outstanding transactions: 1
2020-12-29 10:25:27.165 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Last transaction: TID 215: [WAIT_RESPONSE] priority=Set, requiresResponse=true, callback: 238
2020-12-29 10:25:27.166 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 10 00 04 00 16 0A 60 0D 02 01 31 05 01 22 00 DB 55
2020-12-29 10:25:27.166 [DEBUG] [ve.internal.protocol.ZWaveController] - Incoming Message: Message: class=SendData[19], type=Response[1], dest=255, callback=0, payload=00
2020-12-29 10:25:27.167 [TRACE] [ve.internal.protocol.ZWaveController] - Incoming Message type = RESPONSE
2020-12-29 10:25:27.167 [TRACE] [wave.internal.protocol.SerialMessage] - NODE 255: Creating new SerialMessage from buffer = 01 10 00 04 00 16 0A 60 0D 02 01 31 05 01 22 00 DB 55
2020-12-29 10:25:27.168 [TRACE] [l.serialmessage.SendDataMessageClass] - Handle Message Send Data Response
2020-12-29 10:25:27.168 [TRACE] [wave.internal.protocol.SerialMessage] - Calculated checksum = 85
2020-12-29 10:25:27.168 [DEBUG] [l.serialmessage.SendDataMessageClass] - NODE 5: sentData was not placed on stack.
2020-12-29 10:25:27.169 [TRACE] [wave.internal.protocol.SerialMessage] - NODE 255: Checksum matched
2020-12-29 10:25:27.169 [DEBUG] [e.internal.protocol.ZWaveTransaction] - TID 215: Transaction CANCELLED
2020-12-29 10:25:27.169 [TRACE] [e.internal.protocol.ZWaveTransaction] - TID 215: TransactionAdvance ST: CANCELLED
2020-12-29 10:25:27.170 [TRACE] [wave.internal.protocol.SerialMessage] - NODE 22: Message payload = 00 16 0A 60 0D 02 01 31 05 01 22 00 DB
2020-12-29 10:25:27.170 [TRACE] [e.internal.protocol.ZWaveTransaction] - TID 215: TransactionAdvance WT: null {}
2020-12-29 10:25:27.171 [TRACE] [WaveSerialHandler$ZWaveReceiveThread] - Message is valid, sending ACK
2020-12-29 10:25:27.171 [TRACE] [e.internal.protocol.ZWaveTransaction] - TID 215: TransactionAdvance RX: Message: class=SendData[19], type=Response[1], dest=255, callback=0, payload=00
2020-12-29 10:25:27.171 [TRACE] [e.internal.protocol.ZWaveTransaction] - TID 215: TransactionAdvance TO: CANCELLED
2020-12-29 10:25:27.172 [TRACE] [WaveSerialHandler$ZWaveReceiveThread] - Response SENT 6
2020-12-29 10:25:27.172 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Holdoff Timer started…
2020-12-29 10:25:27.172 [TRACE] [nal.protocol.ZWaveTransactionManager] - STOP transaction timer
2020-12-29 10:25:27.173 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=22, callback=0, payload=00 16 0A 60 0D 02 01 31 05 01 22 00 DB
2020-12-29 10:25:27.173 [TRACE] [nal.protocol.ZWaveTransactionManager] - Holdoff Timer finishing in 249ms
2020-12-29 10:25:27.174 [TRACE] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveTransactionCompletedEvent
2020-12-29 10:25:27.174 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 5: Got an event from Z-Wave network: ZWaveTransactionCompletedEvent
2020-12-29 10:25:27.175 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 5: Retry count exceeded. Discarding message: TID 215: [CANCELLED] priority=Set, requiresResponse=true, callback: 238
2020-12-29 10:25:27.176 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 5: TID 215: Transaction completed
2020-12-29 10:25:27.176 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 5: notifyTransactionResponse TID:215 CANCELLED
2020-12-29 10:25:27.177 [TRACE] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveTransactionCompletedEvent
2020-12-29 10:25:27.178 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 5: Got an event from Z-Wave network: ZWaveTransactionCompletedEvent
2020-12-29 10:25:27.179 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=22, callback=0, payload=00 16 0A 60 0D 02 01 31 05 01 22 00 DB
2020-12-29 10:25:27.180 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null
------ log end -----
Best regards
Thorbjørn Skistad