WebThingsIO / zwave-adapter

Z-Wave adapter add-on for WebThings Gateway
Mozilla Public License 2.0
15 stars 20 forks source link

TypeError: Cannot read property 'class_id' of undefined #42

Closed cmatheson closed 5 years ago

cmatheson commented 5 years ago

My gateway stopped being able to control my z-wave devices a few days ago (not sure if it coincided with an update or anything). I can see all the devices (and their status seems to be correct), but I can't turn my lights on/off from mozilla-iot.

This is the stack-trace I'm getting (sorry if the line numbers are slightly off, I've added a couple console.logs here and there).

Nov 14 16:37:49 gateway run-app.sh[6568]: 2018-11-14 16:37:49.512 zwave: Controller: zwave-f0a66bc0 Path: /dev/ttyACM0
Nov 14 16:37:49 gateway run-app.sh[6568]: 2018-11-14 16:37:49.513 zwave: Node LastStat Basic Type       Type                     Product Name                                       Name                           Location
Nov 14 16:37:49 gateway run-app.sh[6568]: 2018-11-14 16:37:49.513 zwave: ---- -------- ---------------- ------------------------ -------------------------------------------------- ------------------------------ ------------------------------
Nov 14 16:37:49 gateway run-app.sh[6568]: 2018-11-14 16:37:49.514 zwave:   1: ready    StaticController                          Unknown: id=0086 Unknown: type=0101, id=005a
Nov 14 16:37:49 gateway run-app.sh[6568]: 2018-11-14 16:37:49.515 zwave:   2: ready    RoutingSlave                              Unknown: id=0063 Unknown: type=4952, id=3032       zwave-f0a66bc0-2-Switch
Nov 14 16:37:49 gateway run-app.sh[6568]: 2018-11-14 16:37:49.516 zwave:   3: ready    RoutingSlave                              Unknown: id=0063 Unknown: type=4952, id=3036       zwave-f0a66bc0-3-Switch
Nov 14 16:37:49 gateway run-app.sh[6568]: 2018-11-14 16:37:49.517 zwave:   4: dead     RoutingSlave
Nov 14 16:37:49 gateway run-app.sh[6568]: 2018-11-14 16:37:49.517 zwave:   5: ready    RoutingSlave                              Unknown: id=0063 Unknown: type=4944, id=3038       zwave-f0a66bc0-5-Level
Nov 14 16:37:49 gateway run-app.sh[6568]: 2018-11-14 16:37:49.518 zwave: ----
Nov 14 16:37:49 gateway run-app.sh[6568]: 2018-11-14 16:37:49.521 zwave: /home/pi/.mozilla-iot/addons/zwave-adapter/zwave-adapter.js:288
Nov 14 16:37:49 gateway run-app.sh[6568]: 2018-11-14 16:37:49.521 zwave:         switch (node.zwValues[prop.valueId].class_id) {
Nov 14 16:37:49 gateway run-app.sh[6568]: 2018-11-14 16:37:49.522 zwave:                                             ^
Nov 14 16:37:49 gateway run-app.sh[6568]: 2018-11-14 16:37:49.522 zwave:
Nov 14 16:37:49 gateway run-app.sh[6568]: 2018-11-14 16:37:49.522 zwave: TypeError: Cannot read property 'class_id' of undefined
Nov 14 16:37:49 gateway run-app.sh[6568]: 2018-11-14 16:37:49.522 zwave:     at ZWaveAdapter.nodeReady (/home/pi/.mozilla-iot/addons/zwave-adapter/zwave-adapter.js:288:45)
Nov 14 16:37:49 gateway run-app.sh[6568]: 2018-11-14 16:37:49.522 zwave:     at emitTwo (events.js:126:13)
Nov 14 16:37:49 gateway run-app.sh[6568]: 2018-11-14 16:37:49.522 zwave:     at OZW.emit (events.js:214:7)
Nov 14 16:37:49 gateway run-app.sh[6568]: 2018-11-14 16:37:49.533 Plugin: zwave-adapter died, code = 1 restarting...
Nov 14 16:37:49 gateway run-app.sh[6568]: 2018-11-14 16:37:49.580 date-time: util.py:74 DEBUG sunset will happen in 7:33:18.692051 at 2018-11-14 17:11:08.251066-07:00
Nov 14 16:37:50 gateway run-app.sh[6568]: 2018-11-14 16:37:50.487 zwave: Opening database: /home/pi/.mozilla-iot/config/db.sqlite3
Nov 14 16:37:50 gateway run-app.sh[6568]: 2018-11-14 16:37:50.537 zwave: Loading add-on for zwave-adapter from /home/pi/.mozilla-iot/addons/zwave-adapter
Nov 14 16:37:51 gateway run-app.sh[6568]: 2018-11-14 16:37:51.544 zwave: Found ZWave port @ /dev/ttyACM0
Nov 14 16:37:51 gateway run-app.sh[6568]: 2018-11-14 16:37:51.547 zwave: Initialising OpenZWave 1.4.0 binary addon for Node.JS.
Nov 14 16:37:51 gateway run-app.sh[6568]: 2018-11-14 16:37:51.548 zwave:         OpenZWave Security API is ENABLED
Nov 14 16:37:51 gateway run-app.sh[6568]: 2018-11-14 16:37:51.548 zwave:         ZWave device db    : /usr/etc/openzwave
Nov 14 16:37:51 gateway run-app.sh[6568]: 2018-11-14 16:37:51.548 zwave:         User settings path : /home/pi/.mozilla-iot/log
Nov 14 16:37:51 gateway run-app.sh[6568]: 2018-11-14 16:37:51.548 zwave:         Option Overrides : --SaveConfiguration true --ConsoleOutput false
Nov 14 16:37:51 gateway run-app.sh[6568]: 2018-11-14 16:37:51.553 zwave: 2018-11-14 16:37:51.548 Error, Cannot find a path to the configuration files at /usr/etc/openzwave/, Using config/ instead...
Nov 14 16:37:51 gateway run-app.sh[6568]: 2018-11-14 16:37:51.554 zwave: 2018-11-14 16:37:51.549 Warning, Failed to Parse config/options.xml: Failed to open file
Nov 14 16:37:51 gateway run-app.sh[6568]: 2018-11-14 16:37:51.554 zwave: 2018-11-14 16:37:51.549 Warning, Failed to Parse /home/pi/.mozilla-iot/log/options.xml: Failed to open file
Nov 14 16:37:51 gateway run-app.sh[6568]: 2018-11-14 16:37:51.742 zwave: Driver Ready: HomeId: f0a66bc0
Nov 14 16:37:51 gateway run-app.sh[6568]: 2018-11-14 16:37:51.748 zwave: node1: Named Unknown: id=0086 Unknown: id=0086 Unknown: type=0101, id=005a
Nov 14 16:37:51 gateway run-app.sh[6568]: 2018-11-14 16:37:51.751 zwave: node1: name="", type="", location=""
Nov 14 16:37:51 gateway run-app.sh[6568]: 2018-11-14 16:37:51.753 zwave: node2 valueAdded: 2-37-1-0:Switch = false
Nov 14 16:37:51 gateway run-app.sh[6568]: 2018-11-14 16:37:51.757 zwave: node2: Named Unknown: id=0063 Unknown: id=0063 Unknown: type=4952, id=3032
Nov 14 16:37:51 gateway run-app.sh[6568]: 2018-11-14 16:37:51.759 zwave: node2: name="zwave-f0a66bc0-2-Switch", type="", location=""
Nov 14 16:37:51 gateway run-app.sh[6568]: 2018-11-14 16:37:51.761 zwave: node3 valueAdded: 3-37-1-0:Switch = false
Nov 14 16:37:51 gateway run-app.sh[6568]: 2018-11-14 16:37:51.766 zwave: node3: Named Unknown: id=0063 Unknown: id=0063 Unknown: type=4952, id=3036
Nov 14 16:37:51 gateway run-app.sh[6568]: 2018-11-14 16:37:51.768 zwave: node3: name="zwave-f0a66bc0-3-Switch", type="", location=""
Nov 14 16:37:59 gateway run-app.sh[6568]: 2018-11-14 16:37:59.873 zwave: Controller Command feedback: ControllerCommand - Starting node0 retVal:1 state:0
Nov 14 16:37:59 gateway run-app.sh[6568]: 2018-11-14 16:37:59.879 zwave: Controller Command feedback: ControllerCommand - InProgress node0 retVal:6 state:0
Nov 14 16:38:00 gateway run-app.sh[6568]: 2018-11-14 16:38:00.012 zwave: Controller Command feedback: ControllerCommand - Completed node0 retVal:7 state:0
Nov 14 16:38:00 gateway run-app.sh[6568]: 2018-11-14 16:38:00.012 zwave: Controller Command feedback: ControllerCommand - Starting node0 retVal:1 state:0
Nov 14 16:38:00 gateway run-app.sh[6568]: 2018-11-14 16:38:00.025 zwave: Controller Command feedback: ControllerCommand - InProgress node0 retVal:6 state:0
Nov 14 16:38:00 gateway run-app.sh[6568]: 2018-11-14 16:38:00.727 zwave: Controller Command feedback: ControllerCommand - Completed node0 retVal:7 state:0

(I see that repeated every few seconds).

I looked at the values of node.zwValues (it's an object where the keys are some sort of device identifier it looks like), and prop. From the code, it looks like prop should be an object, but mine is returning an array (['on', {...property stuff}]).

Looks like I'm on gateway version 0.6.1 and zwave adapater v0.5.2.

Any ideas?

dhylands commented 5 years ago

I found the problem and have a fix for it. The fix should be ready by the end of the day.

dhylands commented 5 years ago

The fix is in #43

dhylands commented 5 years ago

This should be fixed in the 0.5.3 version of the adapter, which should be available to update to now.

cmatheson commented 5 years ago

Thanks @dhylands, works great now!