| Getting Help With OpenZWave

Need Help?

Since the OpenZWave library is still in early stages of development, you should not be surprised if it doesn't work as you might expect (despite our continuing efforts to stamp out bugs and add features).

In particular, given the wide variety of Z-Wave devices and the fact that the developers of OpenZWave do not have access to the full protocol, certain portions of the code have not been tested with actual devices, so some problems are (unfortunately) inevitable. However, with more users testing the library with new Z-Wave devices, we should be able to identify and eliminate any faulty assumptions or logical (or careless) errors.

Based on the questions raised in the OpenZWave forum (link), here are some pointers to getting your questions answered.

I. Generate and Review the Documentation

Although OpenZWave doesn't have user documentation as yet, the source code has been commented in a way that will allow an external program, Doxygen, to produce HTML documentation for the library. Here is a description of how to generate this documentation.

II. Isolate the Problem Using the MinOZW or OZWForm Examples

Some users' issues with OpenZWave have proven to be related to either their own (calling) code or a misunderstanding about how the library is supposed to work. The documentation (see I above) should help reduce misunderstandings. And reproducing the problem using small changes to the example code will help other developers and users try to replicate the issue. Once you can reproduce the problem, post a forum message identifying:

1. The nature of the problem (what's wrong?)
2. What changes you made to MinOZW or OZWForm to replicate the issue (if they're substantial, you may want to attach the modified source code file(s) to your post)
3. What hardware is involved (in particular, the Z-Wave controller attached to the PC and the device/node in question)--manufacturer and model number
4. Where the problem is evident in an OZWlog.txt file (and attaching the log file to your post--see below)

III. The OpenZWave Execution Log: OZWlog.txt

The OpenZWave library generates an execution log whenever it is run. (The library has been designed to allow this feature to be turned off, but at this early stage in development it should always be produced.) The log file can be very helpful in diagnosing problems with OpenZWave. It identifies the startup steps, communication between the OpenZWave library and the controller (and, through the controller, with the various nodes on the Z-Wave network). It can help identify whether there is a problem with the library, the controller or a Z-Wave node).

So, if you're having a problem, try the following:

1. Stop the OpenZWave application (if one is running)
2. Locate and delete any copies of the zwcfg*.xml file. (The actual file name will have the Z-Wave network's HomeID in place of the '*' in the file name.) This will cause the OpenZWave library to identify each node on the network as "New" and poll each device for its capabilities, settings, etc.
3. Run the application using OpenZWave until the problem occurs.
4. Exit the program and review the OZWlog.txt file that was created. Are there any unusual errors on startup? Do the Z-Wave devices report the capabilities (command classes handled) that you expect? Do the static, session and dynamic values look right? Can you identify where execution went "off track" (sent a new command? unexpected response received? no response received to a command?)?
5. Review of the log file may help you identify what went wrong with your code (or what's wrong with the OpenZWave library).
6. If you can't figure out what's going wrong from the review of the log and the other suggestions outlined on this page, consider posting a message to the discussion forum and attach a copy of the OZWlog.txt file. But keep in mind, it is often very helpful to have a "clean" log file to work with...one that shows the nodes in the network as "New," and not as "Known." (See Step 2 above.)