This is what I was saying that I didn't understand about the DYNAMIC and
STATIC_VALUES stages. Neither of them wait for a response to the messages
that they've sent out. Just after the loop that sends the messages the
queriesPending is checked and then decremented. If messages have been sent,
the switch statement breaks and the method has to be called again to
proceed further. I thought that was strange but I'm not sure if that is
necessary so I didn't change it.

--
Joshua Colson
On Feb 9, 2014 12:18 PM, "Ben Jones" <notifications@github.com> wrote:

> In
> bundles/binding/org.openhab.binding.zwave/src/main/java/org/openhab/binding/zwave/internal/protocol/ZWaveController.java:
>
> > -				if(data == 0xef )  {
> > -					// TODO: Implement control command classes
> > -					break;
> > +			if(node.getNodeStage() == NodeStage.DONE) {
> > +				// if we receive an Application Update Request and the node is already
> > +				// fully initialised we assume this is a request to the controller to
> > +				// re-get the current node values
> > +				logger.debug("Application update request, requesting node state.");
> > +
> > +				// reset and advance node stage to trigger the value request messages
> > +				node.setNodeStage(NodeStage.DYNAMIC);
> > +				node.advanceNodeStage(NodeStage.DONE);
> > +				
> > +				// make sure we've made it to the done stage, for some reason DYNAMIC
> > +				// has to be passed through twice.
> > +				if(node.getNodeStage() == NodeStage.DYNAMIC)
>
> Why is this necessary? Once the node is in DYNAMIC stage it should send
> out requests for each command class/end point and then wait. Once responses
> are received for all requests, the node will automatically advance to DONE.
>
> --
> Reply to this email directly or view it on GitHub<https://github.com/openhab/openhab/pull/840/files#r9570211>
> .
>