9 Replies Latest reply on Jul 11, 2017 3:41 AM by pyadav RSS
    pyadav Explorer

    Invoke command from Thingworx server to Edge Device

    Hi,

    I want to make a command invocation from my application to device.

    Use case - Websocket devices are connected to ThingWorks platform and I have an application which gets device data from ThingWorx platform. Now I want to fire a mgmt command to device. How can I do on ThingWorx? If you have API reference plz send me the link.

     

    Regards,

    Pradeep

      • Re: Invoke command from Thingworx server to Edge Device
        pchung Collaborator

        This is what we have our Agent technology for (either the WSEMS or any of the SDKs)

        This will allow you to program the invoke at the Edge and then declare it as a 'Remote Service' that maps back into a Thingworx Remote Thing

        then through that you can invoke that Service on the platform to execute the service on the Edge.

        • Re: Invoke command from Thingworx server to Edge Device
          pyadav Explorer

          Hi Pai,

           

          I think I am not clear enough on raised questions. Please find the below Architecture

          Here, I am writing Thingworx-Adapter for my Application. Thingworx-Adapter is interface between Thingworx foundation server and Application.

          There are 2 scenario of data flow which I want to perform

          1. Application should receive device status notification through Thingworx-Adapter - Implemented successfully

          Implementation Steps -

                    1. Created a Local Thing(myLocalThing) into Thingworx Foundation Server and Added property

                    2. Device is connected which through Remote Thing(myRemoteThing)

                    3. Bind Local Thing property to Remote Thing

                    4. invoking HTTP API of Thingworx Thing/Properties and receving status of device

              

          2. Application can perform operation on device via Thingworx-Adapter  - How to Implement ??

          Now I want to perform operation on Thing property, how can I do?

          Please guide me because I am stuck here and not able to understand how service will help me out on doing this.

          If you have any documentation to understand services and there APIs for this scenario please share.

           

           

            • Re: Invoke command from Thingworx server to Edge Device
              pchung Collaborator

              I see MQTT protocol. Is Thingworx a subscriber? if so then you should be able to use the MQTT extension on the Thingworx marketplace.

              All it would be is a message from your application to the Server that then kicks off a Remote Service to your Device.

              All Services in the Thingworx platform are exposed as REST calls OOTB, but if you are communicating MQTT, then probably you would would use some sort of msg received event.

                • Re: Invoke command from Thingworx server to Edge Device
                  pyadav Explorer

                  Hi Pai,

                  How to bind a Service with remote service property? Can you suggest some tutorial.

                    • Re: Invoke command from Thingworx server to Edge Device
                      pchung Collaborator

                      The fundamentals of Thingworx shows you how to do Remote Property binding.

                      In a Thing / ThingTemplate of Type remote, you will have the opportunity to do Property/Service and Event Binding which can be either Local (another service/property/event within the system) or Remote (mapped to an Edge device.

                        • Re: Invoke command from Thingworx server to Edge Device
                          pyadav Explorer

                          Hello Pai,

                           

                          Really I need help because I am not finding proper documentation/tutorial  of thingworx server with example. Http api doc limited with thing creation, thing property CRUD, Notification. What about subscription, Service invocation??

                           

                           

                          I have a Thingworx client acts as a Temperature Sensor. I have created a local thing of type remote and added Temperature property and did binding. Now I am using Http API to get latest temperature value.  Its working fine.

                           

                           

                          Now I want to fire an command to operate on device. As per my understanding, for this I have to create a service.

                          I dint get any documentation or tutorial where  I can understand how to bind the property of service which interns call the remote things for device operation.

                           

                          Please suggest me below,

                          1. any video tutorial- Create service and call Http api for device operation

                          2. Subscription/Notification Http API

                           

                           

                           

                          Regards,

                          Pradeep