Skip to main content
1-Visitor
April 30, 2018
Question

Anomaly detection stuck in calibration status

  • April 30, 2018
  • 6 replies
  • 3023 views

Hello Everyone,

 

i have a situation where the temperature sensor of a remote thing is tracked via thingworx. So i have a remote thing deployed via the Java SDK and a corresponding thing in my Composer.

 

The thing has the property "Temperature", it is logged and the thing also has a value Stream assigned. Now when adding a anomaly alert to this property and leave everything at default, the status of the alert remains at "Calibrating". I am following this guide btw.

 

Any ideas what prevents the status from going from "Calibrating" to "Training"? 

 

The Temperature doesn't change much, it stays at room temperature. Does the value need to change in a specific intervall in order to be recognized during the calibration phase?

 

Thank you for your help.

 

Best Regards,

Dominik

6 replies

19-Tanzanite
April 30, 2018

Hi Dominik

 

The calibrating phase will change to training  if ThingWatcher has received a sufficient number of data points (580) and if Min. Data Collection Time  (set on the alert) is over.

So if the sensor value is collected every minute, it will stay in calibrating for at least 580 minutes in order to get 580 data points.

This can be one reason for the calibrating phase to take a long time.

You can also check the ApplicationLog.log, Tomcat log and training and result log file to see if any messages are issued.

 

Hope this helps

Kind regards

Christophe

 

drieder1-VisitorAuthor
1-Visitor
April 30, 2018

Hi Christophe, thank you.

 

Its strange because my values update every second so it should be done after 600 seconds but i already have it running for an hour. Eventhough the value does not change, i have the dataChange properties set to "Always" so it should be recognized as an update shouldn't it?

 

Also the Min. Data Collection Time is set to 1 minute.

 

I will let it run for another few hours, but just in case i'll leave the log files attached.

 

Kind Regards,

Dominik

19-Tanzanite
April 30, 2018

Hi Dominik

 

I looked at the log files and though there are no errors, there is something that is odd.

You seem to have used the default yml files for both training and result microservice. This means that they are both trying to start on port 8080 (application) and 8081 (administration).
Usually they will both run on the same machine so obviously at least one of them will fail.

I would expect some bind exception that I do not see but we do see some stop sequence.
In addition if you run them on the ThingWorx server and if it uses port 8080, you will want to change both yml fiel to use different unused port on the machine.

See Configure Service Ports under Set Up and Run ThingWatcher Microservices at https://developer.thingworx.com/resources/guides/anomaly-detection-how-guide/set-and-run-thingwatcher-micro-services 

 

The videos at https://www.ptc.com/en/support/article?n=CS265488 can be useful, especially the one on deploying microservices as jar files .

 

Kind regards

Christophe