So, while trying to figure out thermostat unreliability, I finally put together an inexpensive (about $15) zwave sniffer. Also, tapping into the serial connection between elk zwave board and vrc0p.
I found out that my zwave uses two data rates: 9.6K with older wallplates and 40K with the newer thermostats and the coffee machine 20A wallplate. Lock communication is in fact encrypted and the locks react pretty quickly to beaming packets.
I also confirmed general Zwave implementation awfulness.
E.g. almost immediately upon using the sniffer, I discovered that my two thermostats tried to communicate through a non-existent node ID which I moved to a new location in December of the last year thus getting a new node id. Of course, I "rebuilt" routes using the Leviton stick in Dec, but apparently the "healing" did not cure anything. Now, that I knew about a wrongheaded routing attempts, I could remove the routes to a non-existent id from both thermostats (using the Leviton poor excuse for software).
Typical trace:
1458526080039 Preamble found Device ID : 13 Dest ID : 17
1458526080099 Preamble found Device ID : 13 Dest ID : 17
1458526080161 Preamble found Device ID : 17 Dest ID : 13
1458526080226 Preamble found Device ID : 13 Dest ID : 4
1458526080295 Preamble found Device ID : 4 Dest ID : 17
1458526080301 Preamble found Device ID : 13 Dest ID : 4
VRC0P (id 13) sends two identical packets to node 17 (a wallplate) 60ms apart, maybe due to a timeout. Node 17 replies directly, but then node 13 send a packet via node 4 (a thermostat) which is located farther from node 17) than the controller itself.
Interestingly, despite the incorrect routing tables on two thermostats, the only message loss caught was between elk's zwave serial board and vrc0p so far. No messages were lost over the air as yet.
It is amazing that zensys does not offer a tool like that to diagnose various zwave related issues considering how cheap it is to build.
I found out that my zwave uses two data rates: 9.6K with older wallplates and 40K with the newer thermostats and the coffee machine 20A wallplate. Lock communication is in fact encrypted and the locks react pretty quickly to beaming packets.
I also confirmed general Zwave implementation awfulness.
E.g. almost immediately upon using the sniffer, I discovered that my two thermostats tried to communicate through a non-existent node ID which I moved to a new location in December of the last year thus getting a new node id. Of course, I "rebuilt" routes using the Leviton stick in Dec, but apparently the "healing" did not cure anything. Now, that I knew about a wrongheaded routing attempts, I could remove the routes to a non-existent id from both thermostats (using the Leviton poor excuse for software).
Typical trace:
1458526080039 Preamble found Device ID : 13 Dest ID : 17
1458526080099 Preamble found Device ID : 13 Dest ID : 17
1458526080161 Preamble found Device ID : 17 Dest ID : 13
1458526080226 Preamble found Device ID : 13 Dest ID : 4
1458526080295 Preamble found Device ID : 4 Dest ID : 17
1458526080301 Preamble found Device ID : 13 Dest ID : 4
VRC0P (id 13) sends two identical packets to node 17 (a wallplate) 60ms apart, maybe due to a timeout. Node 17 replies directly, but then node 13 send a packet via node 4 (a thermostat) which is located farther from node 17) than the controller itself.
Interestingly, despite the incorrect routing tables on two thermostats, the only message loss caught was between elk's zwave serial board and vrc0p so far. No messages were lost over the air as yet.
It is amazing that zensys does not offer a tool like that to diagnose various zwave related issues considering how cheap it is to build.