# Opto22 Integration Module - by Avadine

**URL:** <https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086>\
**Category:** 3rd Party Modules\
**Tags:** ignition81, scripting, perspective\
**Created:** [May 9, 2025, 3:45am UTC](https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086 "2025-05-09T03:45:21Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![patrixmith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/patrixmith/32/75926_2.png) [@patrixmith](https://forum.inductiveautomation.com/u/patrixmith)\
**Post date:** [May 9, 2025, 3:45am UTC](https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086/1 "2025-05-09T03:45:21Z")

</div>

## **Opto22 Integration Module**

**[Avadine](https://avadine.com)** is excited to partner with Opto22 and release `Opto22 Integration`, an advanced module that provides the ability to remotely configure and integrate with Opto22 groov products directly from Ignition, from Port Redirect configuration to the full suite of groov APIs.

* * *

## **Why?**

Because we wanted to configure temporary Port Redirect rules from Ignition to remotely allow developers to access unsecured PLCs that are being protected by Opto22 groov EPIC. And, why while we were at it, why not expose ALL of the Opto22 groov API's as `system` functions in Ignition so that numerous groov devices can be managed and orchestrated centrally from Ignition.

## **Wait. What are you talking about?**

One of the best ways to secure legacy PLCs, controllers, and other devices is to block all incoming traffic and obscure the device from the network. With Opto22's groov products, you can do just that! By putting an Opto22 EPIC (or RIO, in the near future) physically in front of legacy unprotected devices, they can be protected from bad actors. With Opto22 groov EPIC's dual NIC design and built-in firewall, the legacy PLCs can be connected to eth1 in a LAN/trusted network configuration, with the EPIC's eth0 connected publicly to an untrusted network. Because eth0 and eth1 are separated by a firewall, the legacy PLC is obscured from the outside world.

But how how do trusted/SCADA systems connect to the legacy device if it's being blocked by the Opto22 firewall? I'm glad you asked!

## **Port Redirect**

Port redirection, also known as port forwarding, allows remote computers or mobile devices on one network segment to connect to a specific computer or service within a private LAN through a specific port. Usually, it pokes a “pinhole” in your firewall that packets of information can pass through. This kind of port forwarding is unsecure and not recommended, especially when the remote computer is on a public LAN like the Internet.

However, using port redirects over a VPN is secure and provides a conduit between the two network segments that can be very useful. For example, if you anticipate having to update a PLC’s program on a private network from your PC at remote site, you can place a _groov_ EPIC on the PLC’s network and use a VPN and port redirect to establish a conduit, securely accessing your PLC to make the change.

 ![Opto22 groov EPIC Port Redirect Architecture](https://us1.discourse-cdn.com/inductiveautomation/original/3X/5/5/5591824211219a313bf22a2851b58e12f3da274c.png)

## **That sounds awesome! But what does it have to do with Ignition?**

True... you can configure these Port Redirect rules directly in Opto22 groovManage. The rules configured directly in groovManage are persistent, allowing specific traffic over specific ports to traverse the internal firewall separating the 2 network interfaces on the EPIC until changed or deleted.

 ![Opto22 groovManage Port Redirect Status](https://us1.discourse-cdn.com/inductiveautomation/original/3X/8/2/82b6bf94da26773b2ffc6eabd8960139a70755c9.png) ![Opto22 groovManage Port Redirect Status Rule](https://us1.discourse-cdn.com/inductiveautomation/original/3X/2/1/21fde9966e0d0f28c4f69ecf580b1d6ea578ebbc.png)

But what if you want to dynamically add new Port Redirect rules from a central location, like some kind of application that can monitor and control devices... something like... IGNITION!?! And what if the Port Redirect rules that were issued from Ignition could be configured with an interval so they would automatically turn off after the time expired? And what if you could monitor and orchestrate configuration changes to all of your Opto22 groov devices centrally from Ignition?

With the `Opto22 Integration` module, now you can!

**Use Case:** A legacy/unsecurable PLC is protected by an Opto22 EPIC and, therefore, not able to be remotely connected from engineering workstations for development or logic changes. An admin logs into Ignition Perspective application and temporarily creates a Port Redirect rule for an engineering laptop's IP address to connect to the legacy PLC over a specific Allen-Bradley TCP Port, and configures the rule to only stay open for 1 hour. After 1 hour expires, the rule disables and the engineer is no longer able to access the legacy PLC.

## **Woah! But, even groov REST API calls are available as well?**

You heard right. All of the Opto22 groovManage REST API calls are available in this module as `system.opto22.*` functions. Documentation to Opto22's swagger can be found [HERE](https://developer.opto22.com/static/generated/manage-rest-api/swagger-ui/index.html).

 ![system.groov](https://us1.discourse-cdn.com/inductiveautomation/original/3X/a/9/a955d604f3c3aaafc519e5c1719f63e0de5227ff.png)

* * *

## **Module Information**

**Effective Date:** 2025-05-12  
**Author:** Avadine  
**Audience:** System Integrators and Developers  
**Application:** Ignition by Inductive Automation (v8.1+)  
**Module:** Opto22 Integration Module ([Download Here!](https://avadine.com/ignition))  
**Version:** 1.1.0 (b2025051214)

## **1. Prerequisites**

- Ignition Gateway version **8.1 or later**
- Access to the Ignition Gateway Web Interface
- Opto22 Integration Module `.modl` file
- API Key from a groov EPIC device with API access
- IP address or hostname of the target groov EPIC device

## **2. Installation Procedure**

1. Log in to the **Ignition Gateway Web Interface**.
2. Navigate to the **Config** tab.
3. Under the **System** category, click on **Modules**.
4. Select **Install or Upgrade a Module**.
5. Upload the `.modl` file from your local system.
6. Accept the **self-signed certificate** and **End User License Agreement (EULA)**.

 ![Module Installation](https://us1.discourse-cdn.com/inductiveautomation/original/3X/2/7/27f1c7e254f6eb3b5e0f50f04c7b7a9bd9d491d1.png)

 ![Config Navigation](https://us1.discourse-cdn.com/inductiveautomation/original/3X/5/1/51bda965c5ebe502d1be856f5ad3bbf8e9a4db4c.png)

## **3. Basic Module Configuration**

1. On the **Config** tab, navigate to **Opto 22 Groov → General**.
2. Enable the **API Configuration** toggle.
3. Enter the **Hostname or IP address** of the groov EPIC device (e.g., `10.10.10.100` or `test.groov.epic`).
4. Enter the **API Key** associated with an API-enabled user on the EPIC device.

 ![Basic Module Configuration](https://us1.discourse-cdn.com/inductiveautomation/original/3X/1/b/1bcf5c1d3a3d656dd4a863e0d49a7554e366f6f5.png)

## **4. VPN Configuration (Optional)**

1. On the **Config** tab, navigate to **Opto 22 Groov → Network**.
2. Configure the **VPN settings** :

- Toggle the VPN on or off.
- Modify advanced timeout and network settings as required.

 ![VPN Configuration](https://us1.discourse-cdn.com/inductiveautomation/original/3X/2/c/2cc561f5f89b2f845dccfb45566adf7722d1e2b5.png)

## **5. Port Redirect Rules - Directly from the Gateway Homepage!**

1. Navigate to **Opto 22 Groov → Port Redirect Rules** under the **Config** tab.
2. Use the table to:

- **Modify existing rules** , or
- **Create new Port Redirect Rules** by selecting **"Create new Port Redirect Rule"**.

1. Configure the required parameters for the new rule.
2. To **defer syncing** the rule to the EPIC device:

- Disable the rule during creation.
- The rule will remain configured and can be activated later by enabling it.

 ![Port Redirect Rule Configuration](https://us1.discourse-cdn.com/inductiveautomation/original/3X/1/9/193366932abc1e732d86e2bdbd9da2746f3985ed.png)

 ![Port Redirect Rule](https://us1.discourse-cdn.com/inductiveautomation/original/3X/3/d/3dd1c92583e0d53a6d2d78467a715eacd4397150.png)

* * *

## **Additional Info**

Download the `Opto22 Integration` module [HERE](https://avadine.com/ignition) (in case you missed the download above)

More documentation coming soon!

Check out our [website](https://avadine.com) for more information about services offered!

More Ignition Exchange resources and modules are coming soon!

[3rd Party Module Showcase](https://inductiveautomation.com/moduleshowcase/module/avadine-opto22-integration)

---

<div class="post-metadata">

**Author:** ![David\_Stone](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/david_stone/32/79749_2.png) [@David\_Stone](https://forum.inductiveautomation.com/u/David_Stone)\
**Post date:** [May 9, 2025, 3:50am UTC](https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086/2 "2025-05-09T03:50:50Z")

</div>

This is very cool, its a shame nobody sells Opto22 in Australia.

---

<div class="post-metadata">

**Author:** ![patrixmith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/patrixmith/32/75926_2.png) [@patrixmith](https://forum.inductiveautomation.com/u/patrixmith)\
**Post date:** [May 9, 2025, 3:56am UTC](https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086/3 "2025-05-09T03:56:17Z")

</div>

You should talk to Ben Orchard, my Aussie friend, at Opto22! He was a user of Opto22 in Australia before joining the Opto22 team here in California. I believe there are several distributors in Australia.

---

<div class="post-metadata">

**Author:** ![David\_Stone](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/david_stone/32/79749_2.png) [@David\_Stone](https://forum.inductiveautomation.com/u/David_Stone)\
**Post date:** [May 9, 2025, 4:01am UTC](https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086/4 "2025-05-09T04:01:03Z")

</div>

[https://www.opto22.com/about-us/distributors/international-optodistributors/australia-optodistributors](https://www.opto22.com/about-us/distributors/international-optodistributors/australia-optodistributors)

Only one, and they have a dead website, so basically don't exist.

---

<div class="post-metadata">

**Author:** ![patrixmith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/patrixmith/32/75926_2.png) [@patrixmith](https://forum.inductiveautomation.com/u/patrixmith)\
**Post date:** [May 9, 2025, 4:04am UTC](https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086/5 "2025-05-09T04:04:29Z")

</div>

Crazy. Hit up Ben Orchard. He can help you out! He also says "HAYCH" when saying the letter "H", so you know he is a real Australian.

---

<div class="post-metadata">

**Author:** ![gnguyen](https://avatars.discourse-cdn.com/v4/letter/g/41988e/32.png) [@gnguyen](https://forum.inductiveautomation.com/u/gnguyen)\
**Post date:** [May 9, 2025, 7:31am UTC](https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086/6 "2025-05-09T07:31:47Z")

</div>

Hi,  
It's working for me.

---

<div class="post-metadata">

**Author:** ![gnguyen](https://avatars.discourse-cdn.com/v4/letter/g/41988e/32.png) [@gnguyen](https://forum.inductiveautomation.com/u/gnguyen)\
**Post date:** [May 9, 2025, 7:33am UTC](https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086/7 "2025-05-09T07:33:04Z")

</div>

Hi @patrixmith,

No trial...?

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/0/2/021a4c32addffc6bfe088ecd862a2f069fe8835a.png)

---

<div class="post-metadata">

**Author:** ![Arnaud\_Declerck](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/arnaud_declerck/32/44872_2.png) [@Arnaud\_Declerck](https://forum.inductiveautomation.com/u/Arnaud_Declerck)\
**Post date:** [May 9, 2025, 9:38am UTC](https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086/8 "2025-05-09T09:38:26Z")

</div>

Hi @gnguyen,

have you tried in a full version of Ignition and not in a edge?

---

<div class="post-metadata">

**Author:** ![gnguyen](https://avatars.discourse-cdn.com/v4/letter/g/41988e/32.png) [@gnguyen](https://forum.inductiveautomation.com/u/gnguyen)\
**Post date:** [May 9, 2025, 10:25am UTC](https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086/9 "2025-05-09T10:25:12Z")

</div>

Hi @Arnaud_Declerck,  
In Edge, Epic onboard.  
Like here [https://youtu.be/0pvzaXA3mGA?si=cD5tlujro0ODO-cH&t=2959](https://youtu.be/0pvzaXA3mGA?si=cD5tlujro0ODO-cH&t=2959)

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [May 9, 2025, 11:05am UTC](https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086/10 "2025-05-09T11:05:46Z")

</div>

Well done!

---

<div class="post-metadata">

**Author:** ![patrixmith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/patrixmith/32/75926_2.png) [@patrixmith](https://forum.inductiveautomation.com/u/patrixmith)\
**Post date:** [May 9, 2025, 1:43pm UTC](https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086/11 "2025-05-09T13:43:42Z")

</div>

In honoring the spirit of Inductive Automation and Opto22, it's free. Enjoy not having to hit reset! 😉

It's also not currently supported on Ignition Edge but will be soon.

---

<div class="post-metadata">

**Author:** ![thebaldgeek](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/thebaldgeek/32/17760_2.png) [@thebaldgeek](https://forum.inductiveautomation.com/u/thebaldgeek)\
**Post date:** [May 9, 2025, 5:57pm UTC](https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086/12 "2025-05-09T17:57:21Z")

</div>

Did you get to see their website?

> **[Binford Tech | The Next Step in Industrial Automation](https://www.binfordtech.com.au/)**
>
> Discover Binford Tech’s innovative industrial automation solutions in Australia. Enhance your operations with our cutting-edge technology.

The binford guys are crazy sharp and really making great inroads on all things Opto22 downunder.  
They came through for factory training and it was a delight to hang out a bit after class with them and chat about life, the universe and Australia.

@patrixmith Thanks so much for lifting this module over the finish line.  
Its been so awsome using it and talking about it in our factory training for the past little while.  
It really shows the power of coupling applications tightly with the groov Mange API.  
Highlights the power of having two segmented network interfaces, a Firewall and and one API to rule them all.

---

<div class="post-metadata">

**Author:** ![patrixmith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/patrixmith/32/75926_2.png) [@patrixmith](https://forum.inductiveautomation.com/u/patrixmith)\
**Post date:** [May 9, 2025, 6:25pm UTC](https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086/13 "2025-05-09T18:25:47Z")

</div>

Awesome @thebaldgeek ! Thanks for posting their new website. I'm glad Binford Tech is still around for @David_Stone !

Thanks for the kind words. @KMuldoon and Avadine crushed it. We think this module is going to be powerful for so many people. I'm excited to use it to orchestrate the 35 Opto22 EPIC's we deployed for our last customer. Keep doing awesome stuff, Ben!

---

<div class="post-metadata">

**Author:** ![patrixmith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/patrixmith/32/75926_2.png) [@patrixmith](https://forum.inductiveautomation.com/u/patrixmith)\
**Post date:** [May 12, 2025, 4:27pm UTC](https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086/14 "2025-05-12T16:27:49Z")

</div>

Module version 1.1.0 deployed and OP updated to reflect the current version. This version has a few small fixes and we are branching away from 1.0 (beta) now that the module is public.

---

<div class="post-metadata">

**Author:** ![patrixmith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/patrixmith/32/75926_2.png) [@patrixmith](https://forum.inductiveautomation.com/u/patrixmith)\
**Post date:** [May 12, 2025, 9:47pm UTC](https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086/15 "2025-05-12T21:47:52Z")

</div>

Now officially approved by Inductive Automation and available on the [3rd Party Module Showcase](https://inductiveautomation.com/moduleshowcase/module/avadine-opto22-integration)!

---

<div class="post-metadata">

**Author:** ![gnguyen](https://avatars.discourse-cdn.com/v4/letter/g/41988e/32.png) [@gnguyen](https://forum.inductiveautomation.com/u/gnguyen)\
**Post date:** [May 15, 2025, 3:52pm UTC](https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086/16 "2025-05-15T15:52:02Z")

</div>

Hi,  
No because we want it in the epic which runs edge.  
But edge licensing is a little bit different than standard talking about handling trial…  
If my edge is not licensed, then unlicensed module will work. Otherwise no.

---

<div class="post-metadata">

**Author:** ![patrixmith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/patrixmith/32/75926_2.png) [@patrixmith](https://forum.inductiveautomation.com/u/patrixmith)\
**Post date:** [May 15, 2025, 3:53pm UTC](https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086/17 "2025-05-15T15:53:27Z")

</div>

We will be getting it approved for Edge soon. Now that I know you need it, we'll work on expediting that. I'll be in touch.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [May 15, 2025, 4:09pm UTC](https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086/18 "2025-05-15T16:09:26Z")

</div>

Even after approval, it still won't work in Edge _ **trial mode** _.

---

<div class="post-metadata">

**Author:** ![patrixmith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/patrixmith/32/75926_2.png) [@patrixmith](https://forum.inductiveautomation.com/u/patrixmith)\
**Post date:** [May 15, 2025, 7:53pm UTC](https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086/19 "2025-05-15T19:53:27Z")

</div>

Yes, Phil is correct @gnguyen.

---

<div class="post-metadata">

**Author:** ![patrixmith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/patrixmith/32/75926_2.png) [@patrixmith](https://forum.inductiveautomation.com/u/patrixmith)\
**Post date:** [May 28, 2025, 4:42pm UTC](https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086/20 "2025-05-28T16:42:22Z")

</div>

Inductive Automation has whitelisted and approved the module for Ignition Edge!

In case there is any confusion, when Inductive Automation created Ignition Edge, they made a decision to **not** allow free 3rd party modules. So, when you install a free 3rd party module on Ignition Edge, it will "fault" immediately.

In order to use 3rd party modules on Ignition Edge, you must have a licensed version of Ignition Edge (not trial), and you must contact Inductive Automation to get the `Opto22 Integration` Module Id added to your license key.

Please reach out to me if you need any help!

[Next page](https://forum.inductiveautomation.com/t/opto22-integration-module-by-avadine/106086.md?page=2)
