The ETS5 SDK provides access to various schema changes that have been made since schema 1.1. ETS4 Apps cannot support ETS5 devices based on these changes. The changes that should be made to make ETS4 apps more modern are described below.
- Modular Application Programs
- Security
- Support of Building functions
- GroupObjectTree
- Drag & Drop
- Deprecated
Modular Application Programs
Using Modular Application Programs, it is possible to make the complex logic clear and smart. Using the ETS5 SDK it is possible to access the module definition (defined in the Application Program), as well as the instantiated module instances (using the device). ComObjectInstances, ParameterInstances and ChannelInstances (as well as their active collections) on the device instance do not contain the aggregated objects from device and active module instances, but only instances defined outside of modules. The reason for this is that only the active modules are instantiated. The same applies to the corresponding ComObjectInstances, ParameterInstances and ChannelInstances of the module instance. Apps, that do not implement these changes, will not have access to ComObjectInstances, ParameterInstances and ChannelInstances instantiated using modules. In case of non-Modular Application Programs, all objects (ComObjectInstance, ParameterInstance and ChannelInstances) are always created. When parameters are changed, they are set to active or inactive. Whereas, this is different with modules: A module instance can be activated and deactivated by changing parameters. ComObjectInstances, etc. (accordingly to the module definition) are instantiated or disposed. Therefore the App has to deal with dynamically instantiated and disposed objects.
In many cases the GroupObjectTree is helpful, because it simplifies the use in many cases.
Used SDK namespaces
Class | Namespace | Description |
---|---|---|
Allocator | Knx.Ets.Sdk.Product | This class defines the allocators used to provide dynamically allocated values to arguments of instantiated modules. |
Argument | Knx.Ets.Sdk.Product | This class defines the possible module definition arguments. |
ModuleArgument | Knx.Ets.Sdk.Project |
The class is representing a module argument of a module instance. |
ModuleDef | Knx.Ets.Sdk.Product | This class contains the implementation of the module definition. |
ModuleInstance | Knx.Ets.Sdk.Project | The class contains the implementation of the instantiated module. |
Security
ETS5 SDK provides functions so that an app can access security-related information from devices or the project.
- Device properties such as the Tool Key or Device Authentication Code can be queried, as the values loaded from the last device download.
- The security configuration on a KNX Secure device can be set.
- Create or delete device certificates from a project.
- Set and read out the security mode at the Group Address.
- Etc.
Please handle the ETS security mechanisms carefully to avoid data leak and misuse of ETS secrets, e.g. do not log keys or store them unencrypted.
Used SDK namespaces
Class | Namespace | Description |
---|---|---|
Device | Knx.Ets.Sdk.Project | This class contains now security properties like Toolkey or DeviceAuthenticationCode. It is also possible to get and change the DeviceSecurityMode. |
Certificate | Knx.Ets.Sdk.Project | This class represents a device certificate. Using the CertificateCollection in the same namespace it is possible to add or delete a device certificate. |
GroupAddress | Knx.Ets.Sdk.Project |
This class contains now security properties like Key. It is also possible to get and change the SecurityMode. |
Support of Building functions
ETS5 supports the possibility to collect group addresses in the building structure using building functions. The advantage is that Group Addresses are displayed directly in the building structure at the place where they operate and can be used.
Used SDK namespaces
Class | Namespace | Description |
---|---|---|
BuildingFunction | Knx.Ets.Sdk.Project | The primary purpose of this object is to collect Group Addresses for building structure. Using the BuildingFunctionCollection it is possible to add or delete a building function. |
GroupObjectTree
Within the device property GroupObjectTree it is easy to build up the device tree view like the ETS5 does. ChannelInstances, ComObjectInstances and Folders are supported.
Used SDK namespaces
Class | Namespace | Description |
---|---|---|
Device | Knx.Ets.Sdk.Project | This class contains now the property GroupObjectTree. |
GroupObjectTree | Knx.Ets.Sdk.Project | This class contains the channels and folders, along with the active group objects. |
Folder | Knx.Ets.Sdk.Project |
This class represents a folder. A folder is displayed when the corresponding ParameterBlock is active and the property ShowInComObjectTree is set. |
Drag & Drop
It is possible to to let users drag and drop items out of ETS panels onto the ETS App.
Used SDK namespaces
Class | Namespace | Description |
---|---|---|
IDragDataBase | Knx.Ets.Sdk.DragDrop | This interface adds drag and drop support from ETS panels, e.g. the topology tree view, to Add-In/DCA controls. |
Deprecated
Please do not use anymore the deprecated Device.PersistedUniqueIdentifier property. Instead, use the Puid (project-wide unique identifier), which in addition to the device is also available for all other (relevant) objects from the project area.