Thanks for that: I now know what's causing the error is about during burn in!
Just comment out these three lines and commit the code for sys://Schema/Modules/Leviton/Classes/JobQueue/RetryJob:
After you do that, rerun burn in and watch port spy. Try to see which device is having the job failures and start there.
Definitely, you should see no job failures (receipt of X002) with z-wave normally.
The problem is that you have job failures, and this can be hard to debug. It could be anything from RF interference, device placement, a device going bad, a neighbor has lost power, etc...
These job failures are a problem and must be corrected, especially if you are going to poll the device giving the failures. If you have three consecutive job failures (defined by sys://Schema/Modules/Leviton/Classes/JobQueue/MaxConsecutiveFailedJobs), the VRC0P port will be reset. However, once you reach a maximum number of port resets (defined by sys://Schema/Modules/Leviton/Classes/ViziaRF/MaxInterfaceFailures), the port will be set to nothing and you'll have to manually reset the com port. This sounds like it may be your issue.
'if this.Parent.StopOnFirstJobTimeout = true and this.Parent.TestingInProgress = true then
'this.Parent.Stop = true
'end if
Code:
'
' Either no response was received and the JobTimer expired or
' the received response indicated a failure, so retry the Job
' provided that it has not been executed more times than MaxRuns.
dim oJob
'debugout "<RetryJob>"
this.DeleteJobTimer
if this.CurrentJob <> "" then
set oJob = this.GetObject(this.CurrentJob)
if not oJob is nothing then
' if running burn in test, stop on first job failure
'if this.Parent.StopOnFirstJobTimeout = true and this.Parent.TestingInProgress = true then
' this.Parent.Stop = true
'end if
if oJob.Runs < this.MaxRuns then ' Run the same Job again
if gViziaIsDebugOn(1) then debugout "RetryJob(): <" & now & "> RETRY JOB, command=" & oJob.Description
this.ProcessCurrentJob
else ' Job failed to execute even after repeated attempts
' Get the node ID for object that had the failed job
iNodeID = oJob.NodeID
' Record the failed job to the specific device
this.Parent.Devices.SetFailedJob iNodeID
this.TotalFailedJobs = this.TotalFailedJobs + 1
if this.ConsecutiveFailedJobs < this.MaxConsecutiveFailedJobs then
this.ConsecutiveFailedJobs = this.ConsecutiveFailedJobs + 1
end if
this.GetNextJob
end if
else
' CurrentJob not found.
' Something has gone terribly wrong.
' Flush the Job Queue.
this.PurgeAllJobs
end if
end if
set oJob = nothing