If you have a Remote style ThingTemplate that allows binding to the Agent/System then you can predefine them manually or through browse in the ThingTemplate
If that is not an option, you can bring all the tags in with one Remote Style Thing and then use local bindings, this won't be as repeatable unfortunately because the tags would all come in with unique names.
Better to Create Remote Things that represent 'devices' and each of those devices have the same 'tags'
A Remote ThingTemplate in the properties section has the Manage bindings option which allows you to browse to a connected RemoteThing and grab the 'tags' Properties exposed either through drag/drop or add/create
Else you can just manually type in the name of the tag/property for it when you go into the edit of the binding info.
has to be a RemoteThingTemplate type.
I guess you don't get my question.
I know that's how you can connect Thing [RemoteThingTemplate] to Thing [IndustrialGateway]. What I am trying to achieve is I defined few properties in my ThingTemplate, then I have created Thing from that ThingTemplate as base and then I am trying to bind the properties of my thingtemplate but it doesn't allow to make such binding at Thing level. I can only set value of those inherited properties.
I haven't looked deeply into the template setup.
But I think ... if you define the Thing as the Device then if you've pre-named or bound the Properties, if they match with the tags of that Device it should just work.
So let's say your industrial gateway has devices 1, 2, 3 and properties Speed and Temperature for each
I would setup a Template with Speed - bound to Speed (either drag drop or manually typed in) and Temperature
then I'd create Things 1, 2, 3 and everything should work, because I believe the Devices are exposed to match by ThingName
I think the problem is that you are looking for remote properties to bind but actually what you need is local properties.
Using your naming conventions, all Things created from the template [Battery_Template] are actually getting values from inside the Thingworx platform, not from a remote device. The remote value binding has already been taken care of by Thing [Ind_Gateway]. So I think that [Battery_Template] can use GenericThing as the base template (although RemoteThing would also work, as it inherits from GenericThing). [Ind_Battery] can be created as before from [Battery_Template]. Now you can perform a local binding > In New Composer, select Manage Bindings, Local … Search Things … Ind_Gateway … drag and drop the source property to the target property.
Also please note that there are services available if you want to manage property bindings (local or remote) programmatically:
These are services defined in template GenericThing so are available on all Things.
There is some discussion of these services around the Community site, for example on these posts:
Regarding the Binding=Remote setting on each property, I don’t think you need to use those settings in this scenario, so you can just leave Binding=None.
Does that resolve the problem you were having?
It did resolve my problem. I wasn't using the "ManageBinding" option in my Ind_Battery thing. I was trying to edit the properties (Those inherited from ThingTemplate) and was trying to bind it from there, which didn't allow me to do that way. So what my setup now is :
- Battery_Template with RemoteThing as Base ThingTemplate with properties of my BatteryStorage Entity such as Battery Status, Battery Voltage, and Battery Temperature. All the properties those need to be bound with Remote Tags should have Binding set to "Remote".
- A Thing [Ind_Gateway] with IndustrialGateway thingtemplate and connected it with my Industrial Connectivity software
- A Thing [Ind_Battery] from above ThingTemplate and with IndustrialThingShape as Implemented Thingshape.
- Then in Ind_Battery I have set the value of IndustrialThing under ThingShape properties to my industrial gateway thing which is in my case Ind_Gateway.
- Click on Manage Bindings and drag n drop Tags from the Remote section on to their respective properties.
Although the Thingworx manufacturing app is set up this way. If you want to be able to do a slightly simpler approach and not program all the set binding stuff. You could do it they way I proposed it which is predefined bindings on the Template and having Remote Things that represent devices and are bound back tot he Kepserver vs. grabbing a local binding from the Main Thing within the platform.