I created an application to communicate with the TW server. I used the example project in the dotNetSDK documentation.
This is part of the example code of the documentation:
// Set the required configuration information
var config = new ClientConfigurator();
// The uri for connecting to Thingworx
config.Uri = @"ws://127.0.0.1:85/Thingworx/WS";
// Reconnect every 15 seconds if a disconnect occurs or if initial connection cannot be made
config.ReconnectInterval = 15;
// Set the security using an Application Key
var appKey = "6142ffc8-cd11-4977-9e23-253cf770ac9f";
var claims = SecurityClaims.fromAppKey(appKey);
config.Claims = claims;
// Set the name of the client
config.Name = "SteamSensorGateway";
After starting the application the SteamSensorGateway can be shown on the Monitoring -> Remote Things -> Unbound tab with all the VirtualThings, but with is identifier = false in this case.
My question is:
What kind of remote thing is this, and what is it good for?
Is it required to see it as an unbound thing, or something went wrong with my code?
Hi Rajmund, from the description it appears to be your demo edge device represented via a VirtualThing on the platform. It is shown as an unbound thing because i am assuming that you have not yet created a Thing of RemoteThing Template (name of this thing should match exactly with the name of unbound thing) on ThingWorx Core.
The purpose of this is to correspond to a particular thing which in this case would be SteamSensor and then bind to it. So for e.g. if you have more than one SteamSensor e.g. SteamSensor1, SteamSensor2, etc. as virtual thing, they will bind to corresponding RemoteThings like SteamSensor1, SteamSensor2, etc on your ThingWorx platform. Once you have the bind between your VirtualThing and the RemoteThing on the ThingWorx platform you are ready to collect data and store them within ThingWorx.
You can bind either with the name i.e. e.g. SteamSensor1 or with the Identifier, both can't be used at once. You can use Identifier if your machine has access to its serial number via the firmware, see RemoteThing on ThingWorx core
If you can see your VirtualThing(s) in the Unbound tab then likely its not your code, you just haven't finished all the steps of binding. Just create a Thing with exact name as VirtualThing of type RemoteThing Template, and it will bind.
Hope this helps
I don't have problems with VirtualThing-s. They are working properly. The one i mentioned is not an instance of a VirtualThing i created from code.
The SteamSensor1 and SteamSensor2 are ok and can be bound via name or identifier.
There is a third thing, which's name comes from ClientConfigurator.Name property and can be bound via name only. This one is not mentioned in the documentation.
According to the online documentation ClientConfigurator.Name property is used as the Name of the client.
In code we have only 2 VirtualThings, but on TW server we can see the 2 things and the SteamSensorGateway. So SteamSensorGateway must be the client, but why is it shown as an unbound thing on TW side?
This appears to be only the name of the client, under which you have 2 sensors bound to the ThingWorx Core. I think as you go about creating more clients it'll also come up similarly in the Unbound thing.
You are right. When a new client (in different application) is added it will be shown as an unbound remote thing as well.
But i would like to understand why i can see the client as an unbound thing and what should i do with it. If i bind it by name it has nothing special, only the main services of the remote thing template. Or what can i do to hide this thing from the list of unbound things.
I'm not aware if there's any other specific use of that, may be someone else here have different idea on this. For moving it out of the Unbound you could test by creating a Thing of type RemoteThing with same name as the client's name coming up in the Unbound list and it should move the the bind list.