Given numerous requests for documentation, this update includes a few web pages with information on OpenZWave and instructions on how to generate source code comment documentation with Doxygen.

This commit is contained in:
dscottmiller3 2011-02-17 19:22:31 +00:00
parent b85c70f506
commit 311219456d
13 changed files with 613 additions and 0 deletions

109
docs/default.htm Normal file
View file

@ -0,0 +1,109 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Introduction</title>
<link href="images+css/OpenZWave.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#FFFFFF">
<div class=Section1>
<div id="Main">
<table width="700" height="100" border=0 cellpadding=0 cellspacing=0>
<tr>
<td class=Heading1 width=250 valign=top><img src="images+css/image003.gif" alt=Logo width=134 height=55> </td>
<td class=Heading1 width=445 valign=top> Introduction </td>
</tr>
</table>
<table width="700" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><p class="Heading2"><strong>Purpose</strong></p>
<p class=BodyText>OpenZWave is a library which provides an API for applications to access and control a Z-Wave controller connected to the PC via a serial or HID connection.<br />
<br />
</p></td>
</tr>
</table>
<table width="700" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><p class="Heading2">Documentation</p>
<p class="BodyText">Although the project is still in too early a stage to produce user documentation, the source code for OpenZWave and OpenZWaveDotNet contains comments that can be converted into HTML documentation.</p>
<p class="BodyText">Instructions for how to generate this documentation, as well as other links to information that may be useful to developers using OpenZWave may be found here: <a href="general/Index.htm">OpenZWave Documents</a><br />
<br />
</p>
</td>
</tr>
</table>
<table width="700" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><p class="Heading2">Project Directory Structure</p></td>
</tr>
</table>
<table width="700" border=0 cellpadding=0 cellspacing=0>
<tr>
<td valign=top class="TableText">&nbsp;</td>
<td valign=top class="TableText">&nbsp;</td>
</tr>
<tr>
<td width=151 valign=top class="TableText">config</td>
<td width=432 valign=top class="TableText">XML files that provide device- and manufacturer-specific information, as well as the Z-Wave command class codes.</td>
</tr>
<tr>
<td width=151 valign=top class="TableText">cpp</td>
<td width=432 valign=top class="TableText">The OpenZWave library project.</td>
</tr>
<tr>
<td width=151 valign=top class="TableText">&nbsp;&nbsp;cpp/build</td>
<td width=432 valign=top class="TableText">Makefiles and Visual Studio project/solution files for building the library under linux, Mac and Windows (VS2008 and VS2010).</td>
</tr>
<tr>
<td width=151 valign=top class="TableText">&nbsp;&nbsp;cpp/examples</td>
<td width=432 valign=top class="TableText">A minimal console application (MinOZW) that can be built under linux, Mac and Windows. It is a useful example of how to start up the library and can be used to generate a log file (OZWlog.txt) to diagnose startup or other problems with the library and/or Z-Wave devices.</td>
</tr>
<tr>
<td width=151 valign=top class="TableText">&nbsp;&nbsp;cpp/hidapi</td>
<td width=432 valign=top class="TableText">Files related to implementation of a &quot;Human Interface Device&quot; (HID) connection between the PC and the Z-Wave controller. While many controllers use a serial interface, others (the ThinkStick, for example) use HID via USB.</td>
</tr>
<tr>
<td width=151 valign=top class="TableText">&nbsp;&nbsp;cpp/lib</td>
<td width=432 valign=top class="TableText">Essentially empty.</td>
</tr>
<tr>
<td width=151 valign=top class="TableText">&nbsp;&nbsp;cpp/src</td>
<td width=432 valign=top class="TableText">The source code for the OpenZWave Library. The top-level code is in this directory; subdirectories contain files to implement the command classes, the value classes and platform-specific code (linux, Mac and Windows).</td>
</tr>
<tr>
<td width=151 valign=top class="TableText">&nbsp;&nbsp;cpp/tinyxml</td>
<td width=432 valign=top class="TableText">The TinyXML class code. TinyXML is used to read and write XML files for persistent storage.</td>
</tr>
<tr>
<td width=151 valign=top class="TableText">documents</td>
<td width=432 valign=top class="TableText">Draft documentation for the library and example applications.</td>
</tr>
<tr>
<td width=151 valign=top class="TableText">dotnet</td>
<td width=432 valign=top class="TableText">A .NET wrapper for the OpenZWave library.</td>
</tr>
<tr>
<td width=151 valign=top class="TableText">&nbsp;&nbsp;dotnet/build</td>
<td width=432 valign=top class="TableText">Project/Solution files for building OpenZWaveDotNet under VS2008 and VS2010.</td>
</tr>
<tr>
<td width=151 valign=top class="TableText">&nbsp;&nbsp;dotnet/examples</td>
<td width=432 valign=top class="TableText">Code for OZWForm, a .NET application that demonstrates use of OpenZWaveDotNet to connect to a controller, read information about nodes, process notifications, etc.</td>
</tr>
<tr>
<td width=151 valign=top class="TableText">&nbsp;&nbsp;dotnet/src</td>
<td width=432 valign=top class="TableText">The OpenZWaveDotNet wrapper code.</td>
</tr>
<tr>
<td width=151 valign=top class="TableText">license</td>
<td width=432 valign=top class="TableText">License documents.</td>
</tr>
</table>
</div><!--Main -->
<div id="Footer" class="FooterText"><br />
<br />
DRAFT&nbsp;&nbsp;&nbsp;Last updated 2011/02/17
</div><!--footer -->
</div>
</body>
</html>

View file

@ -0,0 +1,60 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Creating OpenZWave Documentation</title>
<link href="../images+css/OpenZWave.css" rel="stylesheet" type="text/css" /></head>
<body bgcolor="#FFFFFF">
<div class="Section1">
<div id="Main">
<table width="700" height="100" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class=Heading1 width="250" valign="top"><a href="../default.htm"><img src="../images+css/image003.gif" alt="Logo" width="134" height="55" border="0" /></a> </td>
<td class=Heading1 width="445" valign="top">Doxygen Step-by-Step </td>
</tr>
</table>
<table width="700" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="BodyText"><p class="Heading2">Introduction</p>
<p class="BodyText">To produce simple doxygen documentation for the OpenZWave libary, follow the steps below.&nbsp; Once you've successfully produced the base documentation, you may want to use doxygen's <strong>Expert</strong> mode to customize the output. </p>
<p class="Heading2">Using Doxygen to generate OpenZWave documentation: Step 1 </p>
<p class="BodyText"> Once Doxygen has been downloaded and installed, run Doxywizard.exe. Here is a screen shot of the first step of the Wizard completed. &nbsp;</p>
<p class="BodyText"><img src="../images+css/Doxywizard1.JPG" width="746" height="578" />
</p>
<ul>
<li class="BodyText">Make sure the source code directory points to the OpenZWave cpp/src directory on your system.<br />
<br />
</li>
<li class="BodyText">Select the destination directory of your choice.<br />
</li>
</ul>
<p class="Heading2">Using Doxygen to generate OpenZWave documentation: Step 2 </p>
<p class="BodyText"> The <strong>Mode</strong> selections allow you to control how much information is generated and to customize the output for a variety of programming languages.&nbsp; </p>
<p class="BodyText">You can reduce the amount of documentation generated by selecting &quot;Documented entities only&quot; and de-selecting the &quot;Include cross-referenced...&quot; check box. &nbsp;If you are using Doxygen to produce documentation for OpenZWaveDotNet, you might prefer &quot;Optimize for C++/CLI output.&quot; </p>
<p class="BodyText"><img src="../images+css/Doxywizard2.JPG" alt="a" width="746" height="578" /></p>
<p class="Heading2"><br />
Using Doxygen to generate OpenZWave documentation: Step 3 </p>
<p class="BodyText"> The <strong>Output</strong> step determines what form the generated documentation should take. I generally prefer HTML with a navigation tree, searchable, but others are available. &nbsp;</p>
<p class="BodyText"><img src="../images+css/Doxywizard3.JPG" alt="a" width="746" height="578" /></p>
<p class="Heading2"><br />
Using Doxygen to generate OpenZWave documentation: Step 4 </p>
<p class="BodyText"> The <strong>Diagrams</strong> step determines whether Doxygen will produce class diagrams. &nbsp;</p>
<p class="BodyText"><img src="../images+css/Doxywizard4.JPG" alt="a" width="746" height="578" /></p>
<p class="Heading2"><br />
Using Doxygen to generate OpenZWave documentation: Step 5 </p>
<p class="BodyText"> That's it!&nbsp; Select the <strong>Run</strong> tab, then <strong>Run doxygen</strong> to produce the documentation files. </p>
<p class="BodyText"><img src="../images+css/Doxywizard5.JPG" alt="a" width="746" height="578" /></p>
<p class="BodyText"></p>
<p class="BodyText">That's it! You should now have a version of OpenZWave documentation in your destination directory.&nbsp; Navigate into the .../html directory and load <strong>index.htm</strong> to display the top level of the documentation. </p>
</td>
</tr>
</table>
</div><!--Main -->
<div id="Footer" class="FooterText"><br />
<br />
DRAFT&nbsp;&nbsp;&nbsp;Last updated 2011/02/17
</div><!--footer -->
</div>
</body>
</html>

View file

@ -0,0 +1,55 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Getting Help with OpenZWave</title>
<link href="../images+css/OpenZWave.css" rel="stylesheet" type="text/css" /></head>
<body bgcolor="#FFFFFF">
<div class="Section1">
<div id="Main">
<table width="700" height="100" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class=Heading1 width="250" valign="top"><a href="../default.htm"><img src="../images+css/image003.gif" alt="Logo" width="134" height="55" border="0" /></a> </td>
<td class=Heading1 width="445" valign="top">Getting Help<br />
With OpenZWave </td>
</tr>
</table>
<table width="700" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="BodyText"><p class="Heading2">Need Help?</p>
<p class="BodyText">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).&nbsp; </p>
<p class="BodyText">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.&nbsp;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. </p>
<p class="BodyText">Based on the questions raised in the OpenZWave forum (link), here are some pointers to getting your questions answered.</p>
<p class="Heading2">I.&nbsp;&nbsp;Generate and Review the Documentation</p>
<p class="BodyText">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.&nbsp; <a href="MakingDocumentation.html"><strong>Here</strong></a> is a description of how to generate this documentation. </p>
<p class="Heading2">II.&nbsp;&nbsp;Isolate the Problem Using the MinOZW or OZWForm Examples</p>
<p class="BodyText">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.&nbsp; The documentation (see I above) should help reduce misunderstandings.&nbsp; And reproducing the problem using small changes to the example code will help other developers and users try to replicate the issue.&nbsp;&nbsp;Once you can reproduce the problem, post a forum message identifying:</p>
<ol>
<li>The nature of the problem (what's wrong?) </li>
<li>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) </li>
<li>What hardware is involved (in particular, the Z-Wave controller attached to the PC and the device/node in question)--manufacturer and model number</li>
<li>Where the problem is evident in an OZWlog.txt file (and attaching the log file to your post--see below) </li>
</ol>
<p class="Heading2">III.&nbsp;&nbsp;The OpenZWave Execution Log: OZWlog.txt</p>
<p class="BodyText"> 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.)&nbsp; The log file can be very helpful in diagnosing problems with OpenZWave.&nbsp; 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).&nbsp; It can help identify whether there is a problem with the library, the controller or a Z-Wave node).</p>
<p class="BodyText">So, if you're having a problem, try the following:</p>
<ol>
<li class="BodyText">Stop the OpenZWave application (if one is running)</li>
<li class="BodyText">Locate and delete any copies of the zwcfg*.xml file.&nbsp;(The actual file name will have the Z-Wave network's HomeID in place of the '*' in the file name.)&nbsp; This will cause the OpenZWave library to identify each node on the network as &quot;New&quot; and poll each device for its capabilities, settings, etc.</li>
<li class="BodyText">Run the application using OpenZWave until the problem occurs.</li>
<li class="BodyText">Exit the program and review the OZWlog.txt file that was created.&nbsp;Are there any unusual errors on startup?&nbsp; Do the Z-Wave devices report the capabilities (command classes handled) that you expect?&nbsp; Do the static, session and dynamic values look right?&nbsp; Can you identify where execution went &quot;off track&quot; (sent a new command? unexpected response received? no response received to a command?)?</li>
<li class="BodyText">Review of the log file may help you identify what went wrong with your code (or what's wrong with the OpenZWave library).</li>
<li class="BodyText">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.&nbsp; But keep in mind, it is often very helpful to have a &quot;clean&quot; log file to work with...one that shows the nodes in the network as &quot;New,&quot; and not as &quot;Known.&quot;&nbsp; (See Step 2 above.)</li>
</ol>
</td>
</tr>
</table>
</div><!--Main -->
<div id="Footer" class="FooterText"><br />
<br />
DRAFT&nbsp;&nbsp;&nbsp;Last updated 2011/02/17
</div><!--footer -->
</div>
</body>
</html>

40
docs/general/Index.htm Normal file
View file

@ -0,0 +1,40 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Other OpenZWave Documents</title>
<link href="../images+css/OpenZWave.css" rel="stylesheet" type="text/css" />
</head>
<body bgcolor="#FFFFFF">
<div class=Section1>
<div id="Main">
<table width="700" height="100" border=0 cellpadding=0 cellspacing=0>
<tr>
<td class=Heading1 width=250 valign=top><a href="../default.htm"><img src="../images+css/image003.gif" alt=Logo width=134 height=55 border="0"></a> </td>
<td class=Heading1 width=445 valign=top>OpenZWave Information </td>
</tr>
</table>
<table width="700" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><p class=BodyText>The following pages provide additional information about the ZWave protocol and the OpenZWave library.</p>
<p class=Heading2>General</p>
<p class=BodyText><a href="GettingHelp.html">Getting Help with OpenZWave</a></p>
<p class=BodyText><a href="MakingDocumentation.html">Generating OpenZWave Documentation</a></p>
<p class=Heading2>OpenZWave Architecture and Use </p>
<p class=BodyText><a href="Notifications.html">Notification Messages and Sequence</a></p>
<p class="Heading2">The Z-Wave Protocol</a></p>
<p class=BodyText>&nbsp;</p>
<p class=Heading2>Z-Wave Devices</p>
<p class=BodyText>&nbsp;</p>
<p class=Heading2>External Links to Other Z-Wave Information</p>
<p class=BodyText>&nbsp; </p></td>
</tr>
</table>
</div><!--Main -->
<div id="Footer" class="FooterText"><br />
<br />
DRAFT&nbsp;&nbsp;&nbsp;Last updated 2011/02/17
</div><!--footer -->
</div>
</body>
</html>

View file

@ -0,0 +1,42 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Creating OpenZWave Documentation</title>
<link href="../images+css/OpenZWave.css" rel="stylesheet" type="text/css" /></head>
<body bgcolor="#FFFFFF">
<div class="Section1">
<div id="Main">
<table width="700" height="100" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class=Heading1 width="250" valign="top"><a href="../default.htm"><img src="../images+css/image003.gif" alt="Logo" width="134" height="55" border="0" /></a> </td>
<td class=Heading1 width="445" valign="top">Creating OpenZWave<br />
Documentation </td>
</tr>
</table>
<table width="700" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="BodyText"><p class="Heading2">Introduction</p>
<p class="BodyText">OpenZWave is still under development, and new features, bug fixes and interface changes are being made on a frequent basis.&nbsp; So it's premature to focus too much energy on producing user documentation at this point.&nbsp; However, several users have asked whether there is documentation available. </p>
<p class="BodyText">So here is a guide to producing your own version of the documentation (such as it is).</p>
<p class="Heading2"><strong>Doxygen-style comments </strong></p>
<p class="BodyText">Much of the source code for the OpenZWave library and the OpenZWaveDotNet wrapper has been documented via comments in the .h header files associated with these projects.&nbsp; So, if you're working with OpenZWave in a development environment (which most users will be, since only source code is available at this point), you can find many functions documented in these files.</p>
<p class="BodyText">The format of the comments is designed to allow an external program, called Doxygen, to produce documentation (for example, a series of .html files) by scanning the project files, interpreting these comments and producing the .html code to organize and display the documentation in a sensible manner. So, to produce the most up-to-date copy of the documentation, a user can run Doxygen on the project folder in question (OpenZWave or OpenZWaveDotNet).</p>
<p class="Heading2"><strong>Getting and Using Doxygen</strong></p>
<p class="BodyText"> The Doxygen program can be downloaded from <a href="http://www.doxygen.org" target="_blank">http://www.doxygen.org</a>.&nbsp; Versions of Doxygen are available for Windows, linux and Mac operating systems (as well as source code).</p>
<p class="BodyText">Once Doxygen has been downloaded and installed you can produce documentation by running Doxywizard.exe.&nbsp; If you're new to Doxygen, here are some <a href="DoxygenStepByStep.html">step-by-step instructions</a> for creating OpenZWave documentation. </p>
<p class="Heading2">Other Documentation Sources </p>
<p class="BodyText">In addition to the documentation that can be generated with Doxygen, there are a variety of other sources of information on OpenZWave and on the ZWave protocol more generally.&nbsp;Some of these are linked <a href="Index.htm">here</a>. </p>
<p class="BodyText"> </p>
<p class="BodyText">&nbsp;</p></td>
</tr>
</table>
</div><!--Main -->
<div id="Footer" class="FooterText"><br />
<br />
DRAFT&nbsp;&nbsp;&nbsp;Last updated 2011/02/17
</div><!--footer -->
</div>
</body>
</html>

View file

@ -0,0 +1,279 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Notification Messages and Sequence</title>
<link href="../images+css/OpenZWave.css" rel="stylesheet" type="text/css" />
</head>
<body bgcolor="#FFFFFF">
<div class=Section1>
<div id="Main">
<table width="700" height="100" border=0 cellpadding=0 cellspacing=0>
<tr>
<td class=Heading1 width=250 valign=top><a href="../default.htm"><img src="../images+css/image003.gif" alt=Logo width=134 height=55 border="0"></a> </td>
<td class=Heading1 width=445 valign=top>Notification Messages<br>
and Sequence </td>
</tr>
</table>
<table width="700" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><p class=Heading2>Purpose</p>
<p class="BodyText">Several questions from developers using the OpenZWave library
have suggested confusion about the meaning of notifications sent by the
library.&nbsp;This document is intended to
clarify and document the notifications sent by the library and to indicate what
information is &ldquo;known&rdquo; at the time the notifications are sent.&nbsp;This will, hopefully, assist developers in
designing the actions to take upon receipt of each notification.<br>
<br>
</p></td>
</tr>
</table>
<table width="700" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><p class=Heading2>Format</p>
<p class="BodyText">The table
presented below lists notifications in the order they might typically be
received, and grouped into a few logically related categories.&nbsp; Of course, given the variety of ZWave controllers, devices and network configurations the
actual sequence will vary (somewhat).&nbsp; The descriptions below the notification name (in square brackets)
identify whether the notification is <b>always</b> sent (unless there&rsquo;s a significant error in the network or software) or <b>potentially </b>sent during the execution
sequence.<br>
<br>
<br>
</p></td>
</tr>
</table>
<table width="700" border="0" cellpadding="5px" cellspacing="0" bgcolor="#E6E6E6" >
<tr>
<td><p class=Heading2>Driver Initialization Notification </p>
<p class="BodyText">The notification below is sent when OpenZWave has successfully connected to a physical ZWave controller.<br>
<br>
</p></td>
</tr>
</table>
<table width="700" border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=151 valign=top class="TableText"><b>DriverReady</b><br>
[always sent]</td>
<td width=432 valign=top class="TableText"> Sent when the driver (representing a connection between OpenZWave and a Z-Wave controller attached to the specified serial (or HID) port) has been initialized. <br>
<br>
At the time this notification is sent, only certain information about the controller itself is known:
<ul class="TableBullet">
<li>Controller Z-Wave version </li>
<li>Network HomeID </li>
<li>Controller capabilities </li>
<li>Controller Application Version &amp; Manufacturer/Product ID </li>
<li>Nodes included in the network<br>
<br>
</li>
</ul></td>
</tr>
</table>
<table width="700" border="0" cellpadding="5px" cellspacing="0" bgcolor="#E6E6E6" >
<tr>
<td><p class=Heading2>Node Initialization Notifications </p>
<p class="BodyText">As OpenZWave starts, it identifies and reads information
about each node in the network. The
following notifications may be sent during the initialization process.<br>
<br>
</p></td>
</tr>
</table>
<table width="700" border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=151 valign=top class="TableText"><b>NodeNew</b><br>
[potentially
sent]</td>
<td width=432 valign=top class="TableText"> Sent when
a new node has been identified as part of the Z-Wave network.  It is not sent if the node was identified
in a prior execution of the OpenZWave library and
stored in the zwcfg*.xml file. <br>
<br>
At the
time this notification is sent, very little is known about the node
itself...only that it is new to OpenZWave. This message is sent once for each new node
identified.</td>
</tr>
<tr>
<td valign=top class="TableText">&nbsp;</td>
<td valign=top class="TableText">&nbsp;</td>
</tr>
<tr>
<td width=151 valign=top class="TableText"><b>NodeAdded</b><br>
[always sent (for each node associated with the controller)]</td>
<td width=432 valign=top class="TableText">Sent
when a node has been added to OpenZWaves list of
nodes.  It can be triggered either as
the zwcfg*.xml file is being read, when a new node
is found on startup (see NodeNew notification
above), or if a new node is included in the network while OpenZWave is running.<br>
<br>
As with NodeNew, very little is known about the node at the time
the notification is sent…just the fact that a new node has been identified
and its assigned NodeID. </td>
</tr>
<tr>
<td valign=top class="TableText">&nbsp;</td>
<td valign=top class="TableText">
</tr>
<tr>
<td width=151 valign=top class="TableText"><b>NodeProtocolInfo</b><br>
[potentially sent]</td>
<td width=432 valign=top class="TableText">Sent
after a nodes protocol information has been successfully read from the
controller.<br>
<br>
At the time
this notification is sent, only certain information about the node is known:<br>
<ul>
<li>Whether it is a “listening” or “sleeping” device</li>
<li>Whether the node is capable of routing messages</li>
<li>Maximum baud rate for communication</li>
<li>Version number</li>
<li>Security byte</li>
</ul>
</tr>
<tr>
<td width=151 valign=top class="TableText"><b>NodeNaming</b><br>
[potentially sent]</td>
<td width=432 valign=top class="TableText">Sent
when a nodes name has been set or changed (although it may be “set” to “” or
NULL).</td>
</tr>
<tr>
<td width=151 valign=top class="TableText"><b>ValueAdded</b><br>
[potentially sent]</td>
<td width=432 valign=top class="TableText">Sent
when a new value has been associated with the node.<br>
<br>
At the time
this notification is sent, the new value may or may not have “live” data
associated with it. It may be
populated, but it may alternatively just be a placeholder for a value that
has not been read at the time the notification is sent.
</tr>
<tr>
<td width=151 valign=top class="TableText"><b>NodeQueriesComplete</b><br>
[always
sent (for each node associated with the controller that has been successfully
queried)]</td>
<td width=432 valign=top class="TableText">Sent
when a nodes values and attributes have been fully queried.
At the
time this notification is sent, the nodes information has been fully read at
least once.  So this notification might
trigger “full” display of the nodes information, values, etc.
If this
notification is not sent, it indicates that there has been a problem
initializing the device.  The most
common issue is that the node is a “sleeping” device.  The NodeQueriesComplete notification will be sent when the node wakes up and the query process
completes.
</p>
</tr>
</table>
<table width="700" border="0" cellpadding="5px" cellspacing="0" bgcolor="#E6E6E6" >
<tr>
<td><p class=Heading2>Initialization Complete Notifications </p>
<p class="BodyText">As
indicated above, when OpenZWave starts it reads
certain information from a file, from the controller and from the
network.  The following notifications
identify when this initialization/querying process is complete.<br>
<br>
</p></td>
</tr>
</table>
<table width="700" border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=151 valign=top class="TableText"><b>AwakeNodesQueried</b><br>
[always sent]</td>
<td width=432 valign=top class="TableText">Sent
when all “listening”—always-on—devices have been queried successfully.  It also indicates, by implication, that
there are some “sleeping” nodes that will not complete their queries until
they wake up.
This
notification should be sent relatively quickly after start-up. (Of course, it depends on the number of
devices on the ZWave network and whether there are
any messages that “time out” without a proper response.)</td>
</tr>
<tr>
<td width=151 valign=top class="TableText"><b>AllNodesQueried</b><br>
[potentially
sent]</td>
<td width=432 valign=top class="TableText">Sent
when all nodes have been successfully queried.
</p>
This notification
should be sent relatively quickly if there are no “sleeping” nodes. But it might be sent quite a while after
start-up if there are sleeping nodes and at least one of these nodes has a
long “wake-up” interval.
</tr>
</table>
<table width="700" border="0" cellpadding="5px" cellspacing="0" bgcolor="#E6E6E6" >
<tr>
<td><p class=Heading2>Other Notifications</p>
<p class="BodyText">In addition
to the notifications described above, which are primarily “initialization”
notifications that are sent during program start-up, the following
notifications may be sent as a result of user actions, external program
control, etc.<br>
<br>
</p></td>
</tr>
</table>
<table width="700" border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=151 valign=top class="TableText"><b>ValueChanged</b></td>
<td width=432 valign=top class="TableText">Sent
when a value associated with a node has changed.
Receipt of
this notification indicates that it may be a good time to read the new value
and display or otherwise process it accordingly.</td>
</tr>
<tr>
<td width=151 valign=top class="TableText"><b>ValueRemoved</b></td>
<td width=432 valign=top class="TableText">Sent
when a value associated with a node has been removed.</td>
</tr>
<tr>
<td width=151 valign=top class="TableText"><b>Group</b></td>
<td width=432 valign=top class="TableText">Sent
when a nodes group association has changed.</td>
</tr>
<tr>
<td width=151 valign=top class="TableText"><b>NodeRemoved</b></td>
<td width=432 valign=top class="TableText">Sent
when a node has been removed from the ZWave network.</td>
</tr>
<tr>
<td width=151 valign=top class="TableText"><b>NodeEvent</b></td>
<td width=432 valign=top class="TableText">Sent
when a node sends a Basic_Set command to the
controller.&nbsp;&nbsp;This
notification can be generated by certain sensors, for example, motion
detectors, to indicate that an event has been sensed.</td>
</tr>
<tr>
<td width=151 valign=top class="TableText"><b>PollingEnabled</b></td>
<td width=432 valign=top class="TableText">Sent
when node/value polling has been enabled.</td>
</tr>
<tr>
<td width=151 valign=top class="TableText"><b>PollingDisabled</b></td>
<td width=432 valign=top class="TableText">Sent
when node/value polling has been disabled.</td>
</tr>
<tr>
<td width=151 valign=top class="TableText"><b>DriverReset</b></td>
<td width=432 valign=top class="TableText">Sent to
indicate when a controller has been reset.  This notification is intended to replace the potentially hundreds of
notifications representing each value and node removed from the network.</td>
</tr>
</table>
</div><!--Main -->
<div id="Footer" class="FooterText"><br />
<br />
DRAFT&nbsp;&nbsp;&nbsp;Last updated 2011/02/17
</div><!--footer -->
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

View file

@ -0,0 +1,28 @@
/* Font Definitions */
.Heading1 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 24pt;
}
.Heading2 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11pt;
font-weight: bold;
}
.BodyText {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11pt;
}
.FooterText {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 7pt;
}
.TableText {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 9pt;
padding: 5pt 5pt 5pt 5pt;
}
.TableBullet {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 9pt;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB