Recently active
Step 3: Test Services and Save Test CasesStep 4: Utilize Code Auto-Complete FeatureStep 5: Test Code at Design Time with LintingStep 6: Next Steps Step 3: Test Services and Save Test Cases In the previous step, you created an Entity with a customized Service. You can easily test and update the Service within the same editing window. This allows you to quickly modify a Service and confirm that its new behavior is functioning as expected.Test Execution To execute a Service, you can do it while still developing and after you have created it. During Development Open the LineCheckSystem Thing.Select the Services tab.Click the ListHotLineParts link. If you scroll to the bottom of the page, you will see the Execute window. Enter a value for the TemperatureThreshold and click Execute. After Development Open the LineCheckSystem Thing.Select the Services tab.Click the&nb
GUIDE CONCEPTStep 1: Completed ExamplesStep 2: Bind Data to WidgetStep 3: Next Steps Connect IoT data from devices to Widgets that display in your application UI. GUIDE CONCEPT This project will demonstrate how to bind a data source to a Widget. Following the steps in this guide, you will be able to show state-based changes resulting from data updates. We will teach you how to essentially connect your backend data to the Widgets in your Mashup. ThingWorx facilitates this process with built-in functionality. YOU'LL LEARN HOW TO Bind data to Widgets in ThingWorx Mashup NOTE: This guide's content aligns with ThingWorx 9.3. The estimated time to complete this guide is 30 minutes. Step 1: Completed Examples Download the Complete Data Binding Example using file BindDataEntities.zip attached to this guide. Within this file you, you will find Entities referenced in this lesson, including a finished ap
Step 8: TroubleshootingStep 9: Next Steps Step 8: Troubleshooting Issue Resolution CSS does not seem to be applied to the Mashup.Verify your CSS is included in the runtime TWX CSS. Clear Browser cache if your CSS is not merged to the combined TWX CSS. (under debug mode: Hold refresh button->Clear Cache).TWX fails to import the extension.If the extension is already installed, but you made recent changes, you need to bump the Version number in the metadata.xml.Recent CSS changes are ignored.Clear browser cache if your CSS file has changed recently. Step 9: Next Steps Congratulations! You've successfully completed the Add Style to Your UI with CSS guide, and learned how to: Create custom CSS classes using the integrated CSS editorBind CSS classes to a Mashup and to individual WidgetsUse Media queries to dynami
GUIDE CONCEPTStep 1: Custom CSS BenefitsStep 2: Access Sample FilesStep 3: Create CSS Rule BlockStep 4: Apply Custom Class to MashupStep 5: Apply Custom Class to WidgetStep 6: Bind Custom ClassStep 7: Use Media Queries Modernize your Mashups with CSS to enhance the presentation of your application. GUIDE CONCEPT This project will introduce using CSS to create a customized, consistent look and feel for your IoT application. Following the steps in this guide, you will create a custom CSS class definitions and bind these classes to Mashup features. We will teach you how to present a professional-looking user interface and ensure consistency of style treatments within your application by implementing Cascading Style Sheets (CSS) in Mashups. You'll learn how to Create custom CSS classes using the integrated CSS editorBind CSS classes to a Mashup and to individual WidgetsUse Media queries to dynamically apply styling Step 1: Custom CS
GUIDE CONCEPTStep 1: Configure Google Maps WidgetStep 2: Add Google Maps Widget to MashupStep 3: Download Sample EntitiesStep 4: Add Markers to Google Maps Widgets Add a Google Map to your UI that visually presents geographical data. GUIDE CONCEPTThis project will introduce how to visually present geographical data in your application. Showing data on a map is a valuable feature for IoT application. Following the steps in this guide, you will utilize the Google Maps Widget and explore it’s ability to show multiple Things. We will teach you how to use Geological data to convey pertinent information in your UI. YOU'LL LEARN HOW TO Download and import the Google Maps Widget extensionCreate a Mashup and add a Google Maps WidgetConfigure the Google Maps Widget to display the locations of multiple Things NOTE: This guide's content aligns with ThingWorx 9.3. The estimated time to complete ALL 2 parts of this guide is 30 minutes. St
Step 5: Widget PropertiesStep 6: Next Steps Step 5: Widget Properties You can configure Properties to change the style of the map as well as specify a custom image to use for map markers. Other Properties allow two linear paths and polynomial regions to also be displayed on the map Widget with optional tooltip data. Bindable Name Type Default Direction DescriptionDataInfotableNoneInputSource for the data that is displayed as discrete markersLocationFieldMenuNameNoneInputField that contains Location type data to plot markersMarkerFieldMenuNameNoneInputField that contains data of type Image used to plot markersShowMarkerTooltipBooleanTrueInputHovering over map markers will display a tooltip when set to trueToolTipField1 thru 4MenuNameNoneInputOptional field displayed in tooltip when the user hovers over a map markerToolTipLabel1 thru 4StringNoneInputOptional label for tooltip dataRouteDataInfotableNoneInputSource for the data that is displayed as a
Step 11: UsersStep 12: TroubleshootingStep 13: Authentication TagsStep 14: Next Steps Step 11: Users Access to functions and information on the ThingWorx Foundation server is controlled by Users. The REST API can be used to create, list, and delete Users. Get Usernames of all Users The REST API exposes the ability to retrieve collections of Entities so that a UI can be dynamically updated with current data. Required Parameters AppKey created by your Foundation serverRequest Construct the URL. Include the hostname and authentication credentials for your specific ThingWorx server as described below. The Usernames of all Users can be returned by making a GET request to this endpoint: 〈Server IP:port〉/Thingworx/UsersAuthenticate Request. All API requests to the ThingWorx server must be authenticated either with a username and password or with an appKey. For this example we will authenticate by passing the appKey as a URL query string parameter. The parame
Step 8: Call Custom ServiceStep 9: Import and Export EntitiesStep 10: Authentication Tags Step 8: Call Custom Service In order to execute a Service of a specific Thing with the REST API, you can use the POST verb. Required Parameters: AppKey created by your ThingWorx server Name of the Thing that implements a custom Service Name of the custom Service Names of inputs, if any, required by the Service Request Construct the URL. To call a custom Service of an existing Thing, make an HTTP POST to this endpoint: <server_ip:port>/Thingworx/Things/<name of Thing>/Services/<name of Service> Substitute <name of Thing> with the actual name of a Thing that exists on the ThingWorx server, and <name of Service> with an existing Service. Send request parameters The names of the inputs along with their values are sent in the body of the POST as a JSON object. For example, the JSON ob
Step 5: Add Property to ThingStep 6: Set Property ValueStep 7: Get Latest Property Value Step 5: Add Property to Thing Property values are associated with a specific Thing, and are used to store data that changes over time. Required Parameters AppKey created by your ThingWorx server Name of the Thing to which the Property will be added Name for the new Property and data type of the Property's value Request Construct the URL. A new Property can be added to an existing Thing by making an HTTP POST to this endpoint. Substitute <name of Thing> with the actual name of a Thing that exists on the ThingWorx server that will have the Property added. <server_ip:port>/Thingworx/Things/<name of Thing>/Services/AddPropertyDefinition 2. Send request parameters. The name of the new Property to be added and type of the Property are sent in the body of the POST as a JSON object. For example, the JSON
GUIDE CONCEPTStep 1: REST API DesignStep 2: REST ClientStep 3: Create Application KeyStep 4: Create New Thing Leverage the REST API to create Things, modify Properties, execute Services and more. GUIDE CONCEPT This project will introduce you to the REST API utilized by the ThingWorx platform. Following the steps in this guide, you will be able to connect to the ThingWorx platform and make REST calls to call Services, update Properties, and perform a number of actions for your IoT applications. We will teach you how to use the ThingWorx REST API to create a more robust application. With the REST API you can leverage the full power of the ThingWorx Foundation server with simple HTTP requests. The REST API can easily be explored using a command line tool such as curl, a browser plugin like Postman, or any preferred programming language. YOU'LL LEARN HOW TO Create new Things on a ThingWorx Foundation Server Add Properties to Things Acc
Step 9: File Transfer ExampleStep 10: Support Other PlatformsStep 11: Next Steps Step 9: File Transfer Example To handle file transfers, a virtual directory is created in the SteamSensor1 entity and in the [C SDK HOME DIR]/examples/FileTransferExample application directory. The source code used for this example is found in [C SDK HOME DIR]/examples/FileTransferExample/src/main.c. Inside of the [C SDK HOME DIR]/examples/FileTransferExample folder, create the folder structure shown below: /transfer//transfer/incoming//transfer/outgoing/ Inside of the /transfer/outgoing/ directory, create and open a file with the name outgoing.txt.Once the outgoing.txt document is open, add the following text, save, and close the file:Hello. This is a file coming from the client application.Navigate to the [C SDK HOME DIR]/examples/FileTransferExample/src/main.c code and update the lines below with the appropriate informa
Step 6: Data ShapesStep 7: Events and ServicesStep 8: Tasks Step 6: Data Shapes Data Shapes are an important part of creating/firing Events and also invoking Services Define With Macros In order to define a Data Shape using a macro, use TW_MAKE_DATASHAPE. NOTE: The macros are all defined in the twMacros.h header file. TW_MAKE_DATASHAPE("SteamSensorReadingShape", TW_DS_ENTRY("ActivationTime", TW_NO_DESCRIPTION ,TW_DATETIME), TW_DS_ENTRY("SensorName", TW_NO_DESCRIPTION ,TW_NUMBER), TW_DS_ENTRY("Temperature", TW_NO_DESCRIPTION ,TW_NUMBER), TW_DS_ENTRY("Pressure", TW_NO_DESCRIPTION ,TW_NUMBER), TW_DS_ENTRY("FaultStatus", TW_NO_DESCRIPTION ,TW_BOOLEAN), TW_DS_ENTRY("InletValve", TW_NO_DESCRIPTION ,TW_BOOLEAN), TW_DS_ENTRY("TemperatureLimit", TW_NO_DESCRIPTION ,TW_NUMBER), TW_DS_ENTRY("TotalFlow", TW_NO_DESCRIPTION ,TW_INTEGER) ); Define Without Macros In order to define a Data Shape without using a macro, use the twDataShape_Cr
Step 5: Properties Step 5: Properties In the Delivery Truck application, there are three Delivery Truck Things. Each Thing has a number of Properties based on its location, speed, and its deliveries carried out. In this design, when a delivery is made or the truck is no longer moving, the Property values are updated. The deliveryTruck.c helper C file is based on the DeliveryTruck Entities in the Composer. After calling the construct function, there are a number of steps necessary to get going. For the SimpleThing application, there are a number of methods for creating Properties, Events, Services, and Data Shapes for ease of use. Properties can be created in the client or just registered and utilized. In the SimpleThingClient application, Properties are created. In the DeliveryTruckClient application, Properties are bound to their ThingWorx Platform counterpart. Two types of structures are used by th
GUIDE CONCEPTStep 1: Completed ExamplesStep 2: Environment SetupStep 3: Run Sample CodeStep 4: ExampleClient Connection Use the C SDK to build an app that connects to ThingWorx with persistent bi-directional communication. GUIDE CONCEPT This project will introduce more complex aspects of the ThingWorx C SDK and help you to get started with development. Following the steps in this this guide, you will be ready to develop your own IoT application with the ThingWorx C SDK. We will teach you how to use the C programming language to connect and build IoT applications to be used with the ThingWorx Platform. YOU'LL LEARN HOW TO Establish and manage a secure connection with a ThingWorx server, including SSL negotiation and connection maintenanceEnable easy programmatic interaction with the Properties, Services, and Events that are exposed by Entities running on a ThingWorx serverCreate applications that can be directly used with your device running the
I installed ThingWorx 9.1.1 (Postgres, Java 11, Windows) using installer. After the installation, I can't see ThingWorx-Foundation.exe in tomcat/bin folder.
Thingworx Version: 9.3When ever the Mashup is opened as PopUp on a button click, there is white border on the button (button on the opened Mashup).Thanks,Shashi
Build a Predictive Analytics Model - Video GuideThingWorx Analytics Server Installation with SSLThingWorx Platform Analytics Installation with SSLToolbar Widget | ThingWorx 9ThingWorx SSO: Login demonstration from Azure AD to ThingWorxMenu Bar Widget ThingWorx 9ThingWorx AD FS SSO SetupCreate Your Application UIGet Started with ThingWorx for IoTThingworx Mashup 101 - Do's and Don'tsWhat's New in ThingWorx 9.1Standardize Connectivity to Devices, Applications, & Systems for Centralized IIot DataBar Chart Widget | ThingWorx 9Button Widget | ThingWorx 9Line Chart Widget | ThingWorx 9ReImagine Your Application UI With Collection and Custom CSSTesting Your Edge ApplicationPredictive Maintenance with Thingworx 101ThingWorx Mashup Pitfalls: What to Avoid and What Not to DoIoT Security: Keeping Devices Safe in a High Risk WorldEdge Connectivity in Unreliable Networks Build a Predictive Analytics Model - Video Guide This project will introduce ThingWorx Analytics Builder via a conv
Hello, I keep getting once or twice a week this DEADLOCK error in our system. we have looked are timers, schedulers, nested loops, with no final solution. I need urgent help to figure out what is causing it.Attached is Application Screenshot and Log Files.
Hi, How can we pass intotable as a parameter to a stored procedure for inserting data in postgreSQL table. @nmilleson @VladimirRosu_116627 , Can you please help me.Thanks,Meghna
Hello, community, I would like to capture the time a subscription gets fired. Is there a way to this Regards.TB
Hi all, I have 2 Thingworx instances raising every 30 minutes a warning related to 'Thingworx System Metrics' (screenshot attached).Does anyone have an idea on what is going wrong ? Thanks for your help.Thibaut
Hello ! I have some troubles upgrading Thingworx 9.1 to 9.2.4 (both with an H2 db) My Tomcat server works when Webapps is empty, but whenever I restart it with the Thingworx.war in Webapps, it crashes, returning me this log in ErrorLog.log :2022-10-11 08:15:44.725+0000 [L: ERROR] [O: E.c.q.l.c.Logger] [I: ] [U: SuperUser] [S: ] [P: ] [T: main] Error in copying permissions: A problem occurred while trying to acquire a cached PreparedStatement in a background thread. 2022-10-11 08:15:44.727+0000 [L: ERROR] [O: E.c.q.l.c.Logger] [I: ] [U: SuperUser] [S: ] [P: ] [T: main] Error encountered while executing migrator 2022-10-11 08:15:44.727+0000 [L: ERROR] [O: E.c.q.l.c.Logger] [I: ] [U: SuperUser] [S: ] [P: ] [T: main] java.sql.SQLException: A problem occurred while trying to acquire a cached PreparedStatement in a background thread. 2022-10-11 08:15:44.727+0000 [L: ERROR] [O: E.c.q.l.c.Logger] [I: ] [U: SuperUser] [S: ] [P: ] [T: main] An error was encountered while executing task
Hi there, I am new to Thingworx, I have created a Mashup which contains a collection control, within that collection control I have added a mashup of a checkbox. My requirement is to check only checkbox within collection (Like radio button). I have tried different ways but couldn't achieve it. Like I added a checkbox on parent mashup and passed child mashup checkbox state which affects all checkbox's state within collection. Any idea would be appreciated. Thanks,
Hi all, Getting error while executing AddStreamEntries service: JavaException: java.lang.Exception: Invalid number of values provided to AddStreamEntry let newEntry = { sourceType: undefined, // STRING values: entries, // INFOTABLE location: undefined, // LOCATION source: undefined, // STRING tags: undefined, // TAGS timestamp: new Date() // DATETIME }; // CreateInfoTableFromDataShape(infoTableName:STRING("InfoTable"), dataShapeName:STRING):INFOTABLE(StreamEntryWithValues) let obj = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape({ infoTableName: "InfoTable", dataShapeName: "StreamEntryWithValues" }); obj.AddRow(newEntry); me.AddStreamEntries({ values: obj /* INFOTABLE {"dataShape":"StreamEntryWithValues"} */ }); Thanks,Sujith
Step 5: Launch the EMSStep 6: Configure Lua Script Resource (LSR)Step 7: Configure Template File (Properties) Step 5: Launch the EMS 1. Navigate to the microserver directory.cd ..2. Ensure that you have ownership to the executable wsems and executable privileges. To check ownership.Ls -la -rwxrwxr-x 1 pi pi 769058 Jun 9 17:46 wsemsNOTE: The account that owns the wsems executable should be used to log into the Raspberry Pi. 3. Confirm that you have executable privileges by run the following command:sudo chmod 775 wsems4. Run the EMS.sudo ./wsems5. Validate that your EMS successfully connected. Depending on your logger level, your wsems execution should indicate Websocket connected in the log and the following INFO message:[INFO ] 2016-10-11 14:22:54,770 Main: Succesfully connected. Saving .booted config file Troubleshoot Connectivity Issues If the websocket does not connect successfully, check the following: Issue &n
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.