Creates an exampleMultiply expression that can be used by other components, such as expression tags. The example expression is located under the Extended expression category.
Requires two Gateways connected via the gateway network. The module must also be installed on both Gateways. This module adds a system.example.getRemoteLogEntries script function that can retrieve console log entries from a remote Gateway over the gateway network. Also adds a Gateway Task type that can retrieve a remote gateway’s wrapper log and save as a local file.
Demonstrates how to implement Gateway Status and Config pages. HomeConnect pages are added to the Gateway that configure an imaginary HomeConnect device.
Shows how to implement a Managed Tag Provider, to allow easy control of Ignition tags from an external program or data.
Creates an example device in the Gateway. The device will create tags that are visible under the local OPC-UA server.
Adds a simple image component to the Perspective module's set of components. In addition, utilizes Gradle as the build tool. See the example readme for additional information.
Adds a Smiley shaped component to the Report Designer.
Adds a datasource to the report designer that can retrieve JSON data via a REST call to a website.
Adds a system.example.multiply script that can be executed from both a client and a Gateway. Also demonstrates how the client can call a method in the Gateway via RPC.
Adds a Slack Alarm Notification type that handles alarm notifications through Slack's outgoing webhooks.
Creates a Hello World component that can be dragged onto a window in the Designer.
- Java Development Kit (JDK) 11 installed. You can download it on the Java SDK Downloads page.
- Maven 3.+ installed. Linux users can use their package manager to install at the command line (ex:
sudo apt-get install maven
), and similarly OSX users using brew canbrew install maven
. Windows users can install via Chocolatey (choco install maven
) or by downloading the installer at the Maven downloads page. - A running, 8.0+ version of Ignition to test your module in. If you don't already have Ignition installed head to the Inductive Automation downloads page, download the correct package for your system and follow the installation instructions to get a gateway up and running.
- For development, you will want to allow unsigned modules. Open the
ignition.conf
file in thedata/
directory, then in thewrapper.java.additional
section add a line like:wrapper.java.additional.7=-Dignition.allowunsignedmodules=true
(the index does not matter).
-
Once you have configured your developer gateway, make sure git is installed and clone this repo to a directory of your choice:
git clone https://github.com/inductiveautomation/ignition-sdk-examples.git
-
Using your IDE of choice, you should be able to create or open any of these included Example Modules through the parent pom.xml file located in the root of each example. Upon importing this project into your IDE, it should download (if auto-import is on) Maven dependencies from the Inductive Automation artifact repository. Dependencies are managed through Maven and are cached to your local environment after they are downloaded.
-
Once all dependencies are cached, you should be able to run
mvn package
in any of the examples to generate the .modl file (which will be created in thebuild\target\
directory of the example). The modl file is the Ignition module file you install to the Dev Mode Ignition inConfig > Modules
in your browser's Gateway page (generally found athttp://localhost:8088/main
). Alternately, if on a Unix system, you can use thebuildall.sh
file in the base directory to build all modules. -
Then, from the Ignition gateway web interface, head to Configure -> Modules, and scroll down to install any of your built modules from the
/module/module-build/
directory.
These examples utilize Maven and our Maven Plugin. The ignition-maven-plugin is available through our Nexus Repository (see examples for how to add to depenency sources).
The pom files in these examples should prove useful tools to understanding how the new SDK works while we update the documentation in preparation for the full release of this new SDK.