IoT & Connectivity Tips | ThingWorx & Kepware PTC
Recently active
First of all wishing everyone a blessed 2017So here is a little something that hopefully can be helpful for all you Thingworx developers!This is a 'Remote Monitoring Application Starter'Mainly this is created around Best Practices for Security and provides a lot of powerful Modeling and Mashup techniques.Also has some cool Dashboard techniquesEverything is documented in accompanying documents also in the zip (sorry went through a few steps to get this up properly.Install instructions:Thingworx Remote Monitoring Starter Application – Installation GuideFilesAll files needed are in a Folder called: RemoteMonitoringStarter, this is an Export to ThingworxStorageExtensionsNot included, but the application uses the GoogleWidgetsExtension (Google Map)StepsImport Google Map extension.Place RemoteMonitoringStarter folder in the ThingworxStorage exports folder.From Thingworx do an Import from ThingworxStorage – Include Data, Use Default Persistence Provider, do NOT ignore Subsystems.After the imp
This blog is about Decision tree and it is aimed at providing the Analytics user with additional information about our default algorithm; Decision tree. More specifically we will clarify what structures builds the Decision tree, understand the purpose of these structures, and last we will look at a few examples of pros and cons of applying Decision tree.Decision tree is a great tool to help us making good decisions based on a huge amount of data. The algorithm maps information provided from the dataset and constructs a tree to predict our goal.Classification and regression trees are the structures behind Decision tree – Therefore when we refer to Decision tree we collectively include classification and regression as being part of Decision tree.But what is the difference between Classification and regression?1) Classification can be used for predicting dependent categorical variables.For example if needed to predict what type of failure occurs with a machine, or what type of car
Axeda Enterprise has long provided a feature to run custom code on the server side in response to end user requests or events triggered by data sent in by remote agents. Version 6.6 introduced Axeda Artisan - an Apache Maven based tool to add modern best practices to developing Axeda-based solutions, using modern code editors such as Eclipse and IntelliJ, and allowing for the use of source code control tools like Git or Clearcase. One downside to Artisan, however, is that it has no export tool - no way to take currently existing entities in the Axeda instance, and save them.The attached Groovy script, GetCustomObjects.groovy, solves that problem for custom objects. It will iterate an Axeda instance and save any found CustomObjects to disk for backup, or to use to bootstrap an Artisan project from an existing instance.{ / } » groovy GetCustomObjects.groovyusage: getCustomObjects-acceptBadSSL Ignore any TLS val
StepsGet the IP address of the ThingWorx Analytics ServerType ip aPut that IP address into the desired web browserYour IP address may be different from the one in the picture aboveAdd the port number of the server to the end of the IP addressThe Default port number is 8080Make sure to put a colon " : " between the end of the IP address and the start of the port numberThe port number could be different in some cases, depending if it was configured differently during installationHit Enter and the main page will load.
Scoring is the process of making the prediction on the basis of the available data. Scoring is the process of assigning a predicted outcome to an individual record based on running that record’s conditions through the trained model. It allows you to request and retrieve individual record level prediction scores for a defined data set for a set of prediction topics. The accuracy of the score will likely be a direct reflection of the error rate produced by the Trained Model.Why the score value exceeds min or max value range of featureThere are a few concepts to address with regards to this:Scoring outputs: It is important to note that when training an analytics model, the method is to create a generalizable model from a relatively small training dataset. By its nature, we expect the training process to see a limited subset and not an exhaustive list of all possible values for many constraints, especially time and practicality. As such, these generalized models will be expected to handle
This has been moved to its new home in the Augmented Reality Category in the PTC Community.
ThingWorx Analytics Interactive API Guide is a great way for users to familiarize themselves with ThingWorx Analytics APIs calls. It even gives users the ability to run jobs through its interface. This blog post will cover how to access the ThingWorx Analytics Interactive API Guide installed on a Virtual Machine or Standalone Server. StepsGet the IP address of the ThingWorx Analytics ServerType ip a Put that IP address into the desired web browserYour IP address may be different from the one in the picture aboveAdd the port number of the server to the end of the IP addressThe Default port number is 8080Make sure to put a colon " : " between the end of the IP address and the start of the port numberThe port number could be different in some cases, depending if it was configured differently during installation Hit Enter and the main page will load.
In this blog we will have a look at the installation of the Thingworx Analytics Builder extension.This is used as guideline but make sure to check the Help Center for your release as steps do vary with versions.The installation has been divided in 3 parts:Introduction and import of the extension into Thingworx Platform Video Link : 1568 Configuration of the extensionNote: For release 8.1, the Settings menu differs from previous versions, seeWhat's New in ThingWorx Analytics Builder 8.1 between times 00:12 sec to 00:40 sec for up to date menu selection. Video Link : 1572 Installation of the UploadThing moduleNote: this step no longer applies as of ThingWorx Analytics 8.1 Video Link : 1573 Useful links: PTC Download page for Thingworx AnalyticsPTC Reference Document page for Thingworx AnalyticsHow to copy files from Windows to Linux ?
Metrics for Model evaluation used in ThingWorx Analytics In ThingWorx Analytics, we consider different kinds of metrics to evaluate our models. The choice of metric completely depends on the type of model and the implementation plan of the model. After you are finished building your model, these 3 metrics will help you in evaluating your model accuracy. Here are below further explanations about the 3 metrics used.1-The ROC Curve: To understand what is ROC (Receiver operating characteristic) curve, let's look at the confusion matrix below. We observe that for a probabilistic model, we get a different value for each metric.Hence, for each sensitivity, we get a different specificity. The two vary as follows:The ROC curve is the plot between sensitivity and (1- specificity). (1- specificity) is also known as false positive rate and sensitivity is also known as True Positive rate. Following is the ROC curve for the case in handLet’s take an example of threshold = 0.5 (refer to confusion mat
This is part of the continuing series of Blog posts regarding Troubleshooting the Application, this article will discuss more advance issues that some clients and customer have encountered while building or using ThingWorx Analytics.Packer Script Error – Unable to Download CentOS ImageAs the application is developed and built inside a CentOS image, the ThingWorx Analytics Packer Script tool for Virtual Machine Appliance creation utilizes the CentOS mirror repository in the creation process.When the end user is attempting to build the Virtual Machine Appliance with the Packer Script media creation tool, part of the process is to download the CentOS 7 ISO image file as the basis for the operating system that the ThingWorx Analytics Server software will be installed to.If CentOS updates or changes their mirror links for the source file ISO, you may encounter the following error:==> virtualbox-iso: Downloading or copying Guest additions virtualbox-iso: Downloading or copying: file:///C:
ThingWorx Analytics Builder - Upload Data This video walks you through how to upload data and shows the configuration settings. Please be aware that shown configuration settings page is different for version 8.1. Updated Link for access to this video: ThingWorx Analytics Builder: Upload Data
This is the Second Part of Getting Started wth ThingWorx Analytics. In this video,we would be using Postman. During this video you will learn: -Creating a Dataset -Entering the Dataset configuration -Uploading the CSV data File to TWA Server Updated Link for access to this video: Getting Started with ThingWorx Analytics Part-2
Get MQTT (like mosquitto) operating with SSL - use http://rockingdlabs.dunmire.org/exercises-experiments/ssl-client-certs-to-secure-mqtt as your primary guide to building out your self-signed CA cert and your server cert and key. Simply follow their directions with the one caveat of setting IPLIST and HOSTLIST environment variables prior to executing the generate-CA.sh script. This will be necessary for hosted environments like AWS where the actual IP address of the system cannot be used to access the server from the internet. Put the external facing IP address in IPLIST and the external facing fully qualified domain name (FQDN) into HOSTLIST. If you have multiple usable ip addresses or hostname aliases, enclose them in quotes and separate them with spaces (export IPLIST="1.2.3.4 5.6.7.8")Complete steps 1-3 in the instructions above. This is sufficient to get the MQTT traffic encrypted and use it with Thingworx. Do not proceed until you can make a mosquitto_pub and mosquitto_sub
Signals indicate the predictive strength or weakness of specific features on the goal variable. Use Signals to explore which features are important to predicting outcomes, and which are not. Note: Please be aware that the video states that a model has to be created before Signals can run, but this is no longer the case for version 8.1. Updated Link for access to this video: Create Signals In ThingWorx Analytics Builder
In this video you would see how to start to use your already created Virtual Image of ThingWorx Analytics using Oracle Virtual Box. This Video is Part-1 of the Series Getting Started with ThingWorx Analytics. Updated Link for access to this video: Getting Started with ThingWorx Analytics: Part 1 of 2
Steps to to navigate to different mashups on double click of different google map markers in ThingWorxCreate a DataShape with two fieldsLocationMashupNameCreate a DataTable using the DataShapeAdd required Location data and corresponding MashupName to be opened in the DataTableCreate a mashupAdd GoogleMap and Navigate widget to the mashupBind All Data from QueryDataTableEntries service of the DataTable in the mashup to the GoogleMap widget by dragging and dropping that item onto the GoogleMap and selecting the Data optionIn GoogleMap widget properties select LocationField as Location Bind MashupName from Selected Row(s) in QueryDataTableEntries service of the DataTable in the mashup to the Navigate widget by dragging and dropping that item onto the Mashup Link and selecting the MashupName optionBind the DoubleClick event of GoogleMap widget properties in the mashup to Navigate widget by dragging and dropping that item onto the Mashup Link and selecting the Navigate optionSave and view m
In this video we cover the process of installing ThingWorx Analytics Server 52.1. Make sure to have reviewed the part 1 video about pre requisite Updated Link for access to this video: Installing ThingWorx Analytics Server: Part 2 of 2
Thingworx actually provides some services for this, but it exports them to an XML file.I'm pretty sure that there are people who will be able to turn this into something easily legible in a mashup.There are two services in CollectionFunctionsExportUserPermissionsImportUserPermissions
The System user is pivotal in securing your application and the simplest approach is to assign the System user to ALL Collections and give it Runtime Service Execute.These Collection Permissions ONLY Export to ThingworxStorage vs. the File Export, it becomes quite painful to manage this and then roll this out to a new machine.Best and fastest solution? Script the Assignment, you can take this script which does it for the System user and extend it to include any other Collection Level permissions you might need to set, like adding Entity Create Design Time for the System user.---------------------------------------------------------//@ThingworxExtensionApiMethod(since={6,6})//public void AddCollectionRunTimePermission(java.lang.String collectionName,// java.lang.String type,// java.lang.String resource,// java.lang.String principal,// java.lang.
In this video we review the prequisite needed prior of installing ThingWorx analytics server 52.1 Updated Link for access to this video: Installing ThingWorx Analytics Server: Part 1 - Prerequisites
One of the recurring patterns on the Axeda Platform is making requests from custom objects to other services, to be called either via Scripto, or through Expression Rules that help integrate Axeda data with your custom systems or third parties such as Salesforce.com. Java developers would normally use a URLConnection to do this, but due to security requirements, access to the URLConnection API is sandboxed, and the HTTPBuilder API is provided instead.Below is a short example of GETting a payload from http://www.mocky.io/v2/57d02c05100000c201208cb5 to your custom object. One of the requirements of many services is being able to pass in API keys as part of the header request. While in this example the API key is embedded in the code, the recommended way of storing API keys on the Axeda Platform is to use the External Credential lockbox API. This allows you to change the API keys securely without needing to change code. import groovyx.net.http.HTTPBuilderimport sta
In this video we cover: a short introduction of Thingworx Analytics Builder The import of the Thingworx Analytics Builder extension This video applies to ThingWorx Analytics 52.1 till 8.1 Updated Link for access to this video: Installing Thingworx Analytics Builder: Part 1 of 3
The following is a set of custom objects that will trigger from an Expression Rule, and cause a file uploaded by a remote agent to be sent on to the Thingworx platform instance of your choice once completed. The expression rules should be configured as so:Type: FileIF: 1 == 1THEN: ExecuteCustomObject("SendUploadedFiles")SendUploadedFiles.groovy:import com.axeda.drm.sdk.data.UploadedFileimport static com.axeda.sdk.v2.dsl.Bridges.*logger.info("Executing AsyncExecutor")//Spawn async thread for each uploadcompressedFile.getFiles().each { UploadedFile upFile -> // last parameter is a timeout for the execution measured in seconds (200 minutes) customObjectBridge.initiateAsync("SendToThingWorx", [ &nbs
Integrating LDAP authentication into Thingworx is fairly simple. Since release 5.0 and later, the out-of-the-box (OOTB) Thingworx authenticators already include the necessary code to validate a user's credentials against an LDAP server. These authenticators look to see if an LDAP server is connected every time a user attempts a login, and then further check to see if this user exists in the LDAP server. If the username does exist in LDAP, then Thingworx will check if the password entered is a match to the password stored within LDAP. If the password entered does not match the password stored in LDAP, then Thingworx will next check if the password matches the one stored in Thingworx for that user. So in order for a user to login to Thingworx, they must have a user Thing created for them within Thingworx Composer (this can be done programmatically, see below), and a valid password which matches either an LDAP account password or the password as it is set for that user on the Thing in Thi
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.