IoT & Connectivity Tips | ThingWorx & Kepware PTC
Recently active
Based on real use cases and industry-leading solutions, this webinar looks at how developers can deliver valuable analytical outputs through experiences that ensure easy consumption of trusted analyses. By taking a deep dive into a range of the analytics capabilities within ThingWorx, we will demonstrate how you can visualize complex analytic outputs to help your users understand what really matters in your data - and ultimately make quick, insightful business decisions. Q&A We didn’t have time to get to all of the questions during the live webcast, but we’ve answered them here on our blog. Have any additional questions? Please leave us a comment. THIS SESSION TALKED ABOUT CONNECTIVITY WITH OTHER ANALYTICS PROGRAMS, SUCH AS R. HOW WOULD THINGWORX INTERACT WITH THE R PLATFORM? There are multiple reasons for using R and other analytics tools. Say you’re using R to build a predictive model, for instance—you can interact with data and load that infor
Create compelling, modern application user interfaces in ThingWorx with the latest enhancements to our Mashup visualization platform - Collection and Custom CSS. In this webinar with IoT application designer Gabriel Bucur, we'll show how the new Collection widget makes it easy to replicate visual content in your UI for menu systems, dashboards, tables, and more. You'll learn about several of the 60+ configuration properties available for collections, many of which offer input/output bindings for dynamic flexibility. Gabriel will also demonstrate the styling and UX power of the latest feature in the Next Gen Composer, which allows you to write classes and CSS for your Mashups, masters, and widgets. Watch the recording above, and download this sample Mashup containing all the data and entities shared in the video. Q&A We didn’t have time to get to all of the questions during the live webcast, but we’ve answered them here on our blo
The data in your industrial IoT application is only valuable if it tells a story. As a developer, you need to consider the logical connections between graphical elements and business data and determine how users want to consume the information. With the Mashup Builder in ThingWorx, you can rapidly create a custom visualization that displays data from your connected devices. These easy-to-configure widgets deliver real-time data functionality at your fingertips - streamlining, processing, and displaying valuable information for your application users. In this video, you'll learn how to create immersive, interactive visualizations by utilizing dynamic charts and graphs in your GUI. ThingWorx technical engineer Jason Wyatt demonstrates how to: Create a UI with ThingWorx Composer and Mashup Builder Incorporate visual displays that highlight business data requirements Supply data to components in your Mashup leveraging pre-built widgets and services Implement the Time Series
There are many choices in life and ThingWorx offers some persistence provider options as well. As of ThingWorx release 8.2, five Database options are provided. 1 PostgreSQL 9.4.5 minimum 2 DataStax Enterprise Edition 4.6.3,5 3 SAP HANA SPS 11, 12 4 Microsoft SQL Server 2014 and later 5 H2 (version info is not available, maybe because it's an embedded?) H2 is for small scale, mainly for testing purpose, PostgreSQL and Microsoft SQL Server are for middle scale and finally DataStax Enterprise Edition is for big scale. I don't have enough information about SAP HANA so would like to leave it untouched in my comment... I don't have a number as to how many customers are using which database but my gut feeling tells me that PostgreSQL is a popular option, especially cost-wise. PostgreSQL offers powerful tools, such as logging and utilities, to troubleshoot issues. In this post I would like to cover some useful information you can retrie
ThingWorx® Service Apps are easy-to-deploy, pre-configured role-based apps that enhance visibility, productivity, and performance across your serviceable assets. The apps provide seamless connectivity and real-time data visualizations in addition to providing remote access to service your assets remotely. Use our guides to learn how to remotely monitor and troubleshoot machine connectivity, detect exception conditions across all assets, and improve the overall efficiency of your service organization. To learn more and to download our free, fully functioning 30-day trial, login to the ThingWorx Developer portal.
Ran into this recently thought I share an approach to getting a table with multi-column distinct yet retaining all the columns of the row.If you use Distinct, you get only the Columns you do Distinct on.This isn't very helpful if you want the 'latest' or the 'first occurrences' of records in your table with a combination of fields being unique.For example I had Process, Part, Dimension and Point for which I had multiple value and date time entries, but I only wanted the latest entries.Following is how I solved it, if you have a better way please leave a comment!P.S.: for the query I used the awesome query builder available in the snippet section!---------------------------------------var q1Result = Things["MyThing"].QueryStreamEntriesWithData({maxItems:99999, query:query1});//Below creates a temporary measurement table to store the latest meaurement valuesvar params = { infoTableName : "Info
Predictive models: Predictive model is one of the best technique to perform predictive analytics. This is the development of models that are trained on historical data and make predictions on new data. These models are built in order to analyse the current data records in combination with some historical data. Use of Predictive Analytics in Thingworx Analytics and How to Access Predictive Analysis Functionality via Thingworx Analytics Bias and variance are the two components of imprecision in predictive models. Bias in predictive models is a measure of model rigidity and inflexibility, and means that your model is not capturing all the signal it could from the data. Bias is also known as under-fitting. Variance on the other hand is a measure of model inconsistency, high variance models tend to perform very well on some data points and really bad on others. This is also known as over-fitting and means that your
This blog post has been written in collaboration with nexiles GmbH, a PTC Software Partner The Edge Micro Server (EMS) and the LUA Scripting Resource (LSR) allow for an easy connection of sensors and / or data to the ThingWorx Platform. Connections are usually established through the HTTP protocol and a REST API which sends unencrypted data and user specific credentials or ThingWorx application keys. This could be fine for a non-production environment. However in a more secure environment or in production, encryption and authentication should be used wherever and whenever possible to ensure the safety and integrity of the data. In this scenario a user, client machine or remote device can utilize the LUA endpoints via the REST APIs endpoints. For this an authentication mechanism with credentials is required to only allow authenticated sessions. Invokation of services etc. are all protected and encrypted via HTTPS. A default HTTP connection would trans
Below is where I will discuss the simple implementation of constructing a POST request in Java. I have embedded the entire source at the bottom of this post for easy copy and paste.To start you will want to define the URL you are trying to POST to:String url = "http://127.0.0.1:80/Thingworx/Things/Thing_Name/Services/Service_to_Post_to";Breaking down this url String:http:// - a non-SSL connection is being used in this example127.0.0.1:80 -- the address and port that ThingWorx is hosted on/Thingworx -- this bit is necessary because we are talking to ThingWorx/Things -- Things is used as an example here because the service I am posting to is on a ThingSome alternatives to substitute in are ThingTemplates, ThingShapes, Resources, and Subsystems/Thing_Name -- Substitute in the name of your Thing where the service is located/Services -- We are calling a service on the Thing, so this is how you drill down to it/Service_to_Post_to -- Substitute in the name of the service you are tryin
Hello everyone,This post is meant to fill the gap that Basic Rules of ThingWorx Development is having.You can follow these rules even before starting the development process and keep them in mind to have an organized and easy to maintain application.I will update this post in the future with more best practices and advice.Best Practices and suggestions:In order to have a clean and quick progress in any project the approach should be modular. If the modular approach is implemented also the development process should be thought of in a modular way.This will give much needed independence to each individual developer especially if the team concurrently works on the same instance.Some rules need to be in place in order for the project to be as smooth as possible:Every developer must have its own user. This is more important when developing on the same Thingworx instance but it’s a good practice when developing on individual instances as well.Every developer will be responsible for complete
Pgweb is a light weight cross platform client for PostgreSQL DBs written in Go. It can connect to both local & remote PostgreSQL instances behind firewall using native SSH tunneling both with password or ssk keys Due to no dependency on any other external library/utility all that is needed to run pgweb is to download it and run to connect to a working PostgreSQL server. Also works on RaspberryPi. Note: It can also be used to connect to the CockroachDB instances, detailed in post Cockroach DB : An open source distributed SQL Database as external data store for ThingWorx Getting Access Download pre-compiled binaries here for different platforms. Building pgweb from source Use https://github.com/sosedoff/pgweb.git to clone the source and build it. Additional Reads Pgweb Wiki Features List Usage Installing & Testing it After downloading the pgweb_windows_amd64.exe for windows platform (used for testing in this blog), start the pgweb utility using:
The Squeal functionality has been discontinued with ThingWorx 8.1, see ThingWorx 8.1.0 Release Notes There might be scenarios where it should be disabled in earlier versions as well. This can be achieved e.g. with Tomcat Security Constraints. To add such a constraint, open <Tomcat>\webapps\Thingworx\WEB-INF\web.xml At the end of the file add a new constraint just before closing the </web-app> tag: <security-constraint> <web-resource-collection> <web-resource-name>Forbidden</web-resource-name> <url-pattern>/Squeal/*</url-pattern> </web-resource-collection> <auth-constraint/> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint> Save the file and restart Tomcat. Accessing the /Thingworx/Squeal resource now will result in an error message: HTTP Status 403 - Access to the requested resource has be
Alerts via Anomaly Detection This documents objective is to provide information and links about alerts used for anomaly detection. This document covers following topics: What Is Anomaly Detection Implementing Anomaly Detection Creating an Anomaly Alert and Prerequisites Anomaly Stats Certainty Parameter Video Example On How To Create An Alert for Anomaly Detection Tips and troubleshooting What Is Anomaly Detection Anomaly Detection in ThingWorx is implemented via built-in ThingWatcher functionality. ThingWatcher detects anomalies by monitoring a data stream from a device, calculating an expected distribution of data, and validating that the current data point is a member of the expected distribution. Implementing Anomaly Detection Anomaly Detection is enabled by default in ThingWorx. However, several steps are required to configure the functionality for your specific environment, including the prerequisite activities below. Creating an
I’m excited to introduce you to a brand new training pathway called the ThingWorx IoT Developer Specialization. This specialization leverages over 40+ hours of training from our online learning platform, IoT University. Through a series of four online courses and an interactive capstone project, you’ll learn how to: Use the ThingWorx development process to build IoT applications from the ground up Build complex models and implement them in ThingWorx Design user-centric application interfaces in ThingWorx that leverage UI/UX and data visualization best practices Connect edge devices to ThingWorx and acquire the data you need for your application Once you complete all the courses, you’ll advance to the capstone project where you’ll put your knowledge into action by building an IoT solution. And to set you up for success, you’ll receive 1-on-1 feedback on your project from a dedicated industry mentor. Learn more about the specialization by clicking here. To request access to the
With the release of ThingWorx 8.2.1 , we now have the possibility to auto provision the user attributes along with the user on its first login in ThingWorx via Active Directory Authentication. In the previous releases this was not available and after the initial user provisioning, users had to fill in rest of the user attribute details e.g. zipCode, City, Title, MobilePhone , etc. However with ThingWorx 8.2.1 and later we have following new attributes for configuration when the Active Directory entity is created in ThingWorx, namely activeDirectoryAttributeName userExtensionPropertyName userExtensionDefaultValue activeDirectoryAttributeName : Represents the attribute within AD for an user userExtensionPropertyName : This represents the attribute available for the user, as defined in the UserExtensions ThingShape userExtensionDefaultValue : Default value that will be assigned in case the attribute value in AD for a particular user is empty/null XML represen
Presentation by Michael Anderson highlighting new capabilities and features in the ThingWorx Manufacturing and Service Apps 8.2
DataShape Simply put, it represents the data in your model giving your application an in-built sense on how to represent the data in different scenarios. DataShape is defined with set of field definitions and related metadata e.g. DataType. DataShapes are must have (except for ValueStream) when creating entities that deal with data storage i.e. DataTable & Stream. For more detail on DataShapes and the DataTypes see DataShapes in ThingWorx Help Center Note: See ThingShape : Nuances, Tips & Tricks for ThingShape vs DataShape Ways to create DataShape Via the ThingWorx Composer Navigate to ThingWorx Composer click on New > DataShape Provide a unique name to the DataShape entity DataShape creation in ThingWorx Composer Navigate to the Field Definition and add required Field Definition Defining Field for the DataShape Via a custom service in ThingWorx Navigate to an entity under which the service is to be created, e.g. Thing Switch to
ThingShape Much like the ThingTemplate, ThingShapes are one of the basic entities for modeling the business logic within the ThingWorx composer. They are best used for describing the relationships between the objects within your IoT model being designed in ThingWorx platform. See ThingShape in Help Center for more Note: Additional helpful read ThingTemplate : Nuances, Tips & Tricks ThingShape vs ThingTemplate While both ThingShape and ThingTemplate are basic building blocks for IoT model in ThingWorx platform; they differ to an extent in terms of the usage and logic ThingShapes could be seen as bit more basic building block compared to the ThingTemplate ThingTemplates can implement one or more ThingShapes, this is not possible vice versa ThingShapes are ought to be used for implementing more generalised business logic as opposed to ThingTemplate There's no requirement to select ThingTemplate while creating a ThingShape A Thing inherits a Th
ThingTemplate A ThingTemplate, at it's root is nothing but a class definition. Things are instances of a ThingTemplate which encapsulates business logic for a specific asset class. This could be equated to that of a Class in an object-oriented programming concept. ThingTemplates provides initial state & implementation of behaviour for the Things implementing it. See ThingTemplates in Help Center & Similarities to Object-Oriented Programming for more. ThingTemplate Use Cases It's among the many building blocks for an IoT Solution which belong to the highest level objects created and maintained, i.e. Entities. There are several Entity Types in ThingWorx allowing users to model the physical world within the virtual realm of ThingWorx platform. There are following type of entities available within ThingWorx for modeling: Things Thing Shapes Thing Templates Additional useful read Programming for the IoT Thing-Centric vs
This Best Practices document should offer some guidelines and tips & tricks on how to work with Timers and Schedulers in ThingWorx. After exploring the configuration and creation of Timers and Schedulers via the UI or JavaScript Services, this document will also highlight some of the most common performance issues and troubleshooting techniques. Timers and Schedulers can be used to run jobs or fire events on a regular basis. Both are implemented as Thing Templates in ThingWorx. New Timer and Scheduler Things can be created based on these Templates to introduce time based actions. Timers can be used to fire events in a certain interval, defined in the Timer's Update Rate (default is 60000 milliseconds = 1 minute). Schedulers can be used to run jobs based on a cron pattern (such as once a day or once an hour). Schedulers will also allow for a more detailed time based setup, e.g. based on seconds, hours, days of week or days months etc. Events fired by both Timers and Schedule
Create a new Thing using the Timer Thing Template. The Timer Thing will fire a Timer Event when the Timer's Update Rate has expired. The event is automatically present and does not need to be added manually. Configuration The Timer Configuration is quite straightforward. It can be accessed via the Thing's Entity Configuration. Configuration allows for Enabling the Timer on Thing-Startup - whenever the Thing is started, e.g. when restarting ThingWorx or via the RestartThing Generic Service, also the Timer is enabled and will fire Events. Changing the Update Rate - in which intervall the Events will be fired (by default every minute [60000 milliseconds]). Changing the User Context - in which the Events will be handled. The user will need visibility and permission on e.g. executing Services or depending Things, which are required to run the Service triggered by the Event. Services Timer Things inherit two Services by default from t
The following power point contains some reference slides to start up with DSE/ThingWorx integration. Start with understanding DSE architecture and specifically, the differences compared to regular Relational Databases. Free online courses offered by DataStaxAcademy: –https://academy.datastax.com/courses/understanding-cassandra-architecture –https://academy.datastax.com/courses/installing-and-configuring-cassandra The following section will guide you through some of the specifics: http://datastax.com/documentation/cassandra/2.0/cassandra/architecture/architecturePlanningAbout_c.html
Starting with the 8.1 release, the architecture of ThingWorx Analytics has changed from being a single sever to being split into several independent microservices. This has been done to allow services to run concurrently. It also prevents issues with one microservice from affecting the others.OverviewThe new Analytics Server Architecture consists of a suite of 9 microservices:Data Clustering ProfilingSignalsTrainingPredictionValidationPresciptiveResultsAll of the microservices work together to create a similar experience for users as it was in the past. The data that is uploaded and generated by the Analytics Server is stored directly in a file system, instead of a Postgres Database like it was in the past.Closer Integration with ThingWorxPlease note that ThingWorx Foundation is required to be installed and operating before Installing Analytics. During the install you will be asked to supply IP Address of the ThingWorx Instance that will be used for Analytics. At this
ThingWorx Service Apps Setup and Configuration Guide 8.2 ThingWorx Manufacturing and Service Apps Customization Guide 8.2
ThingWorx Manufacturing Apps Setup and Configuration Guide 8.2 ThingWorx Manufacturing and Service Apps Customization Guide 8.2
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.