Skip to content

inductiveautomation/ignition-sdk-examples

Repository files navigation

Ignition SDK

Example Modules

Gradle Examples

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.

Maven Examples

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 component to the Perspective module's set of components, demonstrating use of various APIs in a build automation which represents one possible solution for 'production' toolchains. In addition, utilizes Gradle as the build tool. See the example readme for additional information.

Adds a single simple component to the Perspective component palette. This minimal example demonstrates the minimal APIs required to register a single simple component. See the larger Perspective Component example for

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.

Requirements

  • 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 can brew 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 the data/ directory, then in the wrapper.java.additional section add a line like: wrapper.java.additional.7=-Dignition.allowunsignedmodules=true (the index does not matter).

The Module Build System

These examples utilize either Maven and our Maven Plugin, or Gradle and our Gradle Plugin. Both tools are mature and capable, offering different tradeoffs in terms of performance, ease of customization, language support, etc. If you prefer XML configuration, take a look at Maven. If you prefer declarative programming-language based configuration, check out Gradle. Inductive Automation uses Gradle to build Ignition and our own modules with the same open source plugin linked above.

The ignition-maven-plugin is available through our Nexus Repository (see examples for how to add to dependency sources).

The Gradle Plugin is published to the Gradle Plugin Portal, and may be used simply by applying the plugin to your gradle project.

General Requirements

These requirements generally apply to both Gradle and Maven build tools.

  • Java Development Kit (JDK) 17 installed. You can download it on the Java SDK Downloads page. Licensed/TCK tested JDK vendors such as Adoptium, Azul Zulu, etc, are generally suitable JDKs as well.
  • A running, 8.1.33+ 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 convenience, you may want to allow unsigned modules. Open the ignition.conf file in the data/ directory, then in the wrapper.java.additional section add a line like: wrapper.java.additional.7=-Dignition.allowunsignedmodules=true (the index does not matter).

Getting Started

  • 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 pom.xml or settings.gradle.kts, file located in the root of each example. Upon importing this project into your IDE, it should download (if auto-import is on) necessary dependencies from the Inductive Automation artifact repository. Dependencies are managed through Maven and are cached to your local environment after they are downloaded.

Running Maven Examples

  • First, make sure 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 can brew install maven. Windows users can install via Chocolatey (choco install maven) or by downloading the installer at the Maven downloads page.

  • 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 the build\target\ directory of the example). The modl file is the Ignition module file you install to the Dev Mode Ignition in Config > Modules in your browser's Gateway page (generally found at http://localhost:8088/main). Alternately, if on a Unix system, you can use the buildall.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.

The Module Build System

Most 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).

Perspective examples utilize our gradle plugin, which is also open source and available in the ignition-module-tools.

Running Gradle Examples

For instructions on how to build with the Gradle plugin, take a look at the documentation on the Gradle Plugin repository.

Javadocs

Head over to our wiki page for a listing of 8.0+ javadocs.