I am developing an advanced BACnet ua device driver that supports BACnet/IP as well as BACnet/SC. This requires a configuration of a local device in the case of BAcnet/IP (like in the existing BACnet driver) and a configuration of the Hub/certificates in the case of BACnet/SC. I could not find any hook in the SDK documentation on how to implement this editor (global to all device connections) and were the configuration parameters would be stored. I only found the target device configurations in the SDK examples. Please advise
Are you developing for Ignition 8.1 or 8.3?
How you approach this will be very different depending on the answer.
For 8.3, this example may be the closest thing: ignition-sdk-examples/webui-webpage at ignition-8.3 · inductiveautomation/ignition-sdk-examples · GitHub
The BACnet local device editor is a fully custom react page, calling routes established by the module on the backend to save config to the resource system.
Hello Kevin,
in order to complete the task of creating a local device editor for a UA device I am missing the following information:
- How do I add a new list editor to Connections->Devices->Settings managing the creation, deletion and configuration of a new local device type?
- How do I add the editor of configuring a new local device type?
- Where is the configuration stored of the new local device type instances?
- How is this configuration accessed from the UA Device runtime?
- How can this data be accessed via the open API?
Since this problem has been solved by the Ignition BACnet driver there must be internal hooks providing these features. But I ran into these roadblocks:
- The WebUI sample you sent me uses getNavigationModel() and can only hook as far as connections and not connections->devices->settings
- The OpenAPI provides methods only specifically dedicated to BACnet:
http://localhost:8088/data/api/v1/resources/list/com.inductiveautomation.opcua.drivers.bacnet/BacnetIpLocalDeviceConfig but not for general local device types. - Being able to manipulate the new local device type instances via the OpenAPI and accessing it from the UA Device runtime would be the most urgent issue. This would allow our Application Generator to manage the configuration until we have an integrated editor
Please advice
Basically, you have to register your own custom endpoints that provide the backend functionality you need, yielding the payloads for the front end as need. Then write your own React for the front end.
I am aware of the custom editor concept but how is it integrated? Please elaborate on my detailed questions above? Especially on getNavigationModel() missing to access ->Devices->Settings and the OpenAPI hooks.
You're asking a lot here, and have wandered pretty far off the happy path for a regular driver/device implementation, so I'm going to give you an AI-generated response that was grounded in the codebase and that I have skimmed for accuracy and revised.
https://gist.github.com/kevinherron/2f7a38ac95af6059e97b73101be523a6
Hello Kevin,
thank you for going out of your way to answer this. I know I am asking a lot, but I am only doing this because the SDK documentation does not cover this.
I am going to work through your outline and come back with any questions that still might come up.
Once again thank you for your effort, I really appreciate this.
Best regards Michael