# Musson Industrial's Embr-SNMP Module (BETA)

**URL:** <https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185>\
**Category:** 3rd Party Modules\
**Created:** [October 3, 2025, 11:27pm UTC](https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185 "2025-10-03T23:27:53Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![bmusson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmusson/32/87530_2.png) [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Post date:** [October 3, 2025, 11:27pm UTC](https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185/1 "2025-10-03T23:27:53Z")

</div>

# Embr-SNMP (BETA)

> # Stability Warning
> 
> This module is still in beta, and therefore breaking configuration changes may occur between now and the final release. Use at your own risk.

This thread is for discussion related to Musson Industrial's Embr-SNMP module.

Embr-SNMP provides a set of OPC UA device drivers for SNMPv1, SNMPv2c, and SNMPv3.

## Usage

- Install the module.
- Add your devices under `OPC UA/Device Connections`.
- Point your tags at the OPC UA device using the OID as the Node ID.

## Example (reading `sysName`)

`ns=1;s=[MyDevice]1.3.6.1.2.1.1.5.0 `

## Known Issues

### Write Support

Write support is extremely basic; all writes occur as strings 🤷‍♂️.

* * *

## Downloads

~~[Embr-SNMP-Ignition81-0.1.0.modl](https://forum.inductiveautomation.com/uploads/short-url/4IvpO2A70wndGkilfj8o9SbFFWr.modl) (2.3 MB)~~  
~~[Embr-SNMP-Ignition81-0.2.0.modl](https://forum.inductiveautomation.com/uploads/short-url/xDrUCeGebuX7xBheNVT0TCxyYnh.modl) (2.3 MB)~~

[Embr-SNMP-Ignition81-0.2.1.modl](https://forum.inductiveautomation.com/uploads/short-url/ntGFUgqcoHcyq9eQSNegTJHcWNs.modl) (2.3 MB)  
[Embr-SNMP-Ignition83-0.2.0.modl](https://forum.inductiveautomation.com/uploads/short-url/94LbTeD9s0tJNrPsL7RGjk1b4QY.modl) (2.3 MB)

Any feedback related to SNMPv3 usage would be greatly appreciated.

---

<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:** [October 4, 2025, 12:44am UTC](https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185/2 "2025-10-04T00:44:39Z")

</div>

Just installed this one, went straight to the V3 and configured a Mikrotik router as the SNMP host.  
System immediately connected and tags came up. This was with SHA-1 and AES-128 on a private community.  
Nice work.  
When is the code going on GitHub? 😃

---

<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:** [October 4, 2025, 12:57am UTC](https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185/3 "2025-10-04T00:57:22Z")

</div>

So, just tested this one with an IPv6 host:

```python
org.snmp4j.MessageException: Network is unreachable
at org.snmp4j.MessageDispatcherImpl.sendPdu(MessageDispatcherImpl.java:680)
at org.snmp4j.Snmp.sendMessage(Snmp.java:1075)
at org.snmp4j.Snmp.send(Snmp.java:975)
at org.snmp4j.Snmp.send(Snmp.java:957)
at org.snmp4j.Snmp.send(Snmp.java:925)
at com.mussonindustrial.embr.snmp.devices.SnmpDeviceImpl.read(SnmpDeviceImpl.kt:100)
at com.mussonindustrial.embr.snmp.opc.OidAddressSpace.read(OidAddressSpace.kt:72)
at com.mussonindustrial.embr.snmp.opc.OidAddressSpace.read(OidAddressSpace.kt:42)
at org.eclipse.milo.opcua.sdk.server.util.SubscriptionModel$ScheduledUpdate.lambda$null$1(SubscriptionModel.java:170)
at org.eclipse.milo.opcua.sdk.core.util.GroupMapCollate.lambda$groupMapCollate$3(GroupMapCollate.java:47)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
at java.base/java.util.HashMap$EntrySpliterator.forEachRemaining(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(Unknown Source)
at java.base/java.util.stream.ReferencePipeline.toArray(Unknown Source)
at org.eclipse.milo.opcua.sdk.core.util.GroupMapCollate.allOf(GroupMapCollate.java:77)
at org.eclipse.milo.opcua.sdk.core.util.GroupMapCollate.groupMapCollate(GroupMapCollate.java:68)
at org.eclipse.milo.opcua.sdk.server.util.SubscriptionModel$ScheduledUpdate.run(SubscriptionModel.java:156)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.net.SocketException: Network is unreachable
at java.base/sun.nio.ch.DatagramChannelImpl.send0(Native Method)
at java.base/sun.nio.ch.DatagramChannelImpl.sendFromNativeBuffer(Unknown Source)
at java.base/sun.nio.ch.DatagramChannelImpl.send(Unknown Source)
at java.base/sun.nio.ch.DatagramChannelImpl.send(Unknown Source)
at java.base/sun.nio.ch.DatagramChannelImpl.blockingSend(Unknown Source)
at java.base/sun.nio.ch.DatagramSocketAdaptor.send(Unknown Source)
at java.base/java.net.DatagramSocket.send(Unknown Source)
at org.snmp4j.transport.DefaultUdpTransportMapping.sendMessage(DefaultUdpTransportMapping.java:128)
at org.snmp4j.transport.DefaultUdpTransportMapping.sendMessage(DefaultUdpTransportMapping.java:46)
at org.snmp4j.MessageDispatcherImpl.sendMessage(MessageDispatcherImpl.java:270)
at org.snmp4j.MessageDispatcherImpl.sendPdu(MessageDispatcherImpl.java:657)
... 25 common frames omitted

```

---

<div class="post-metadata">

**Author:** ![bmusson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmusson/32/87530_2.png) [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Post date:** [October 4, 2025, 12:57am UTC](https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185/4 "2025-10-04T00:57:23Z")

</div>

> [@David\_Stone](#):
>
> System immediately connected and tags came up.

🎉

Do you have multiple SNMPv3 devices to test with? I haven’t been able to test that the authentication works for multiple SNMPv3 devices connected at the same time. SNMPv3 authoritative engine stuff is… interesting.

> [@David\_Stone](#):
>
> When is the code going on GitHub? 😃

It’s currently under the `feat/snmp-module` branch.

---

<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:** [October 4, 2025, 12:58am UTC](https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185/5 "2025-10-04T00:58:28Z")

</div>

> [@bmusson](#):
>
> Do you have multiple SNMPv3 devices to test with? I haven’t been able to test that the authentication works for multiple SNMPv3 devices connected at the same time. SNMPv3 authoritative engine stuff is… interesting.

I have a few devices here, yes I will get another one connected.

---

<div class="post-metadata">

**Author:** ![bmusson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmusson/32/87530_2.png) [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Post date:** [October 4, 2025, 1:04am UTC](https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185/6 "2025-10-04T01:04:47Z")

</div>

> [@David\_Stone](#):
>
> IPv6 host

How are you specifying the IPv6 address? In theory this should “just work”.

---

<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:** [October 4, 2025, 1:11am UTC](https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185/7 "2025-10-04T01:11:56Z")

</div>

Just the string containing the address including the colons, I have a feeling there could be a typical parsing error where the colon gets assumed to denote a port mumber.

---

<div class="post-metadata">

**Author:** ![bmusson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmusson/32/87530_2.png) [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Post date:** [October 4, 2025, 1:17am UTC](https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185/8 "2025-10-04T01:17:43Z")

</div>

What’s the host OS of the gateway?

---

<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:** [October 4, 2025, 1:21am UTC](https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185/9 "2025-10-04T01:21:40Z")

</div>

> [@bmusson](#):
>
> I haven’t been able to test that the authentication works for multiple SNMPv3 devices connected at the same time

So you are correct, there are some issues here, I cannot get two V3 connections to occur simultaneously.

---

<div class="post-metadata">

**Author:** ![bmusson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmusson/32/87530_2.png) [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Post date:** [October 4, 2025, 1:25am UTC](https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185/10 "2025-10-04T01:25:12Z")

</div>

> [@David\_Stone](#):
>
> I cannot get two V3 connections to occur simultaneously.

By any chance, do the connections share the same username?

---

<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:** [October 4, 2025, 1:26am UTC](https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185/11 "2025-10-04T01:26:55Z")

</div>

I tried with both the same username and different usernames, also the same auth and priv encryption as well as different. It also seems to not reset something, so if I delete the second connection, the first still stays disconnected. All I get is no response logs, even with TRACE level.

---

<div class="post-metadata">

**Author:** ![bmusson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmusson/32/87530_2.png) [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Post date:** [October 4, 2025, 1:44am UTC](https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185/12 "2025-10-04T01:44:29Z")

</div>

Funky, the USM is probably all kinds of messed up.

This seems relevant, saving for later:

> **[Multiple SNMP agents (v1.7.6a)](https://forum.snmp.app/t/multiple-snmp-agents-v1-7-6a/1287)**
>
> Hello, First I have to mention I have to use SNMP4J version 1.7.6a for specific reasons. In our application, we have to deal with 2 different SNMP v3 agents, each with a specific security name / auth/priv. When setting up only one or the other,...

Looks like we should be using a shared global `Snmp` object instead of creating one for each device.

---

<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:** [October 4, 2025, 2:29am UTC](https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185/13 "2025-10-04T02:29:48Z")

</div>

OSX on docker.

---

<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:** [October 4, 2025, 2:33am UTC](https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185/14 "2025-10-04T02:33:24Z")

</div>

I have a feeling this is actually an issue because docker doesn't have IPv6 support enabled by default. Also IPv6 addresses should work if added in the host field as:

`[xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]`

---

<div class="post-metadata">

**Author:** ![bmusson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmusson/32/87530_2.png) [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Post date:** [October 4, 2025, 3:36am UTC](https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185/15 "2025-10-04T03:36:52Z")

</div>

> [@David\_Stone](#):
>
> OSX on docker.

Yeah that’ll do it, you’re getting a legitimate network error.

> [@David\_Stone](#):
>
> Also IPv6 addresses should work if added in the host field as:
> 
> `[xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]`

Do they not currently?

---

<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:** [October 4, 2025, 3:49am UTC](https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185/16 "2025-10-04T03:49:39Z")

</div>

I will have to test with an IPv6 native install, there is chat on Stack Overflow suggesting the square brackets notation is necessary.

---

<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:** [October 4, 2025, 3:54am UTC](https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185/17 "2025-10-04T03:54:46Z")

</div>

# Feature Requests:

Add tag address notation that changes the snmp method called:

`ns=1;s=[MyDevice]get:1.3.6.1.2.1.1.5.0 ` snmpGet(1.3.6.1.2.1.1.5.0)  
`ns=1;s=[MyDevice]walk:1.3.6.1.2.1.1.5.0 ` snmpWalk(1.3.6.1.2.1.1.5.0) as a Json Document  
`ns=1;s=[MyDevice]table:1.3.6.1.2.1.1.5.0 ` tableUtils.getTable(1.3.6.1.2.1.1.5.0) as a Dataset Tag

On device creation or changed settings, perform a snmpWalk of the root node, and populate the browsable OIDs in the tag browser.

Upload MIB files to the gateway, and then you can use either symbolic names or OIDs. On tag creation or update, a symbolic name can be converted to the corresponding OID in the tag provider backend. Adding to this, the MIBs could be used to translate the browsable OIDs that match from the initial browse.

Add scripting functions into the module for manual event triggers.

---

<div class="post-metadata">

**Author:** ![bmusson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmusson/32/87530_2.png) [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Post date:** [October 4, 2025, 4:11am UTC](https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185/18 "2025-10-04T04:11:47Z")

</div>

I’m definitely open to some table/tree helpers.

It would require some much smarter subscription management to be efficient, but it’s doable.

---

<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:** [October 4, 2025, 4:27pm UTC](https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185/19 "2025-10-04T16:27:38Z")

</div>

> [@David\_Stone](#):
>
> as a Dataset Tag

OPC drivers cannot deliver a dataset.

---

<div class="post-metadata">

**Author:** ![bmusson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmusson/32/87530_2.png) [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Post date:** [October 4, 2025, 7:16pm UTC](https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185/20 "2025-10-04T19:16:01Z")

</div>

![20251004_151440](https://us1.discourse-cdn.com/inductiveautomation/original/3X/a/b/abc405444332449b2c877985334beb7f3c06a01d.png)

![20251004_151448](https://us1.discourse-cdn.com/inductiveautomation/original/3X/3/b/3b77313beca2f1da8dda72a162587211207a8acc.png)

I got a second to test this afternoon, and I am able to connect to multiple SNMPv3 agents using `0.1.0`.

[Next page](https://forum.inductiveautomation.com/t/musson-industrials-embr-snmp-module-beta/111185.md?page=2)
