Skip to Content
Integrations / How to integrate

How to Integrate a NETIO Intelligent PDU

Every NETIO PDU is built to be controlled and monitored by other systems. Use a ready-made driver for your control system, talk to the PDU directly through its Open API, connect it to your cloud with MQTT-flex, or manage everything in NETIO Cloud. This guide helps you choose and get started.

Start in 10 minutesCode on GitHubHaven’t found your system?

Four ways to integrate

All four can run at the same time. For example, a control system can switch outlets over JSON while NETIO Cloud serves as a remote backup channel.

Option 1

Ready-made AV drivers

No programming. Install the NETIO driver or plugin in your control system and the PDU appears with its outlets and power data.

Best for: AV integrators using Crestron, Q-SYS, Control4, Utelogy, BrightSign, Domotz, RTI, Savant, ELAN and more
See supported platforms
Option 2

Open API on your local network

Your software talks to the PDU directly. JSON over HTTP(s) is enabled by default on every NETIO device and uses one JSON structure for all models.

Best for: Custom software, scripts, home and building automation, IT tools
Start in 10 minutes
Option 3

MQTT-flex for cloud apps

The PDU connects out to your MQTT broker, so it works behind NAT and firewalls. You define the topics, payload and publishing rules.

Best for: IoT platforms and your own cloud or portal
AN40: MQTT-flex getting started
Option 4

NETIO Cloud

One account for all your NETIO devices: control outlets from the web or the NETIO Mobile 2 app, with secure, encrypted communication. Optional, and usable alongside local integrations.

Best for: Remote sites and teams who want one screen without programming
Open NETIO Cloud

Which option is right for you?

Your control system already has a NETIO driver or pluginAV driver
Your software runs on the same network as the PDUJSON over HTTP(s)
Your application runs in the cloud and the PDU is behind NAT or a firewallMQTT-flex
You manage IT infrastructure with a network monitoring systemSNMP v1/v3
You integrate with a PLC or building automation systemModbus/TCP
You need a simple command from a script or another deviceURL API (HTTP GET)
You want one screen for many devices, without programmingNETIO Cloud

How it fits together

Automation built into the PDU (PowerUp sequence, scheduler, Ping and Power WatchDog, Conditions & Rules) keeps working even when your system is offline.

Open API protocols

NETIO PDUs support multiple open protocols. We recommend the highlighted ones for new integrations. JSON over HTTP(s) for local networks and MQTT-flex for cloud communication are the most future-proof choices.

JSONJSONHTTP(s), recommended
MQTT-flexMQTT-flexCloud, recommended
SNMPSNMPv1 / v3
URL APIURL APIHTTP(s) GET
NETIO CloudNETIO CloudOptional service
Modbus/TCPModbus/TCPPLC, BMS
TelnetTelnetLegacy compatible
Web interfaceWeb interfaceHTTP(s)

Start in 10 minutes with JSON

No device on your desk yet? Use NETIO’s public PowerPDU 4KB online demo (login demo / demo) to see the JSON structure.

1. Find the device

Connect the PDU to your network. Find its IP address in your DHCP server or with NETIO UDP Discover. The MAC address is printed on every device.

2. Read the status

Open http://192.168.1.100/netio.json (use your device’s IP address) in a browser, or use curl. You get the device model, MAC address, number of outputs, and the state and power data for each outlet.

# read device and outlet status
curl -u netio:netio http://192.168.1.100/netio.json

3. Switch an outlet

Send a POST to the same address with the output ID and an Action code.

# restart outlet 1 (Short Off)
curl -u netio:netio -X POST -d '{"Outputs":[{"ID":1,"Action":2}]}' http://192.168.1.100/netio.json

Enable JSON with read-write access under M2M API protocols in the web interface and change the default credentials for production use. Full details are in AN21 and the Open API documentation.

JSON Action codes

0Off
1On
2Short Off (restart: off, then on after the set delay)
3Short On (pulse: on, then off after the set delay)
4Toggle
5No change
6Ignored

Open source code on GitHub

NETIO publishes libraries, tools and examples on github.com/netioproducts. Use them as they are, or as a starting point for your own integration.

PyNetioConfBeta

A Python module for configuring, controlling and monitoring NETIO devices with one unified API, no matter which device or firmware version you use.

  • Works with devices running firmware 2.x through 5.x
  • Manages many devices and their sessions from one NetioManager
  • Ready-made scripts: firmware update for one or multiple devices, MQTT connection to AWS with certificates
  • Tells you clearly when a feature needs a newer firmware version
PyNetioConf on GitHubPyPI package
# install
pip install PyNetioConf
# connect and switch outlet 1 off
from PyNetioConf import NetioManager

nm = NetioManager()
device = nm.init_device("192.168.1.100", "admin", "password")
device.set_output(1, False)

PyNetioConf is under active development and may change before its official release. See the README for details.

PyNetio

Python · pip install Netio

Python bindings and a command-line tool for the JSON API: switch outputs, read power data and inputs, with HTTPS support.

View on GitHub

Netio Local Management

TypeScript · desktop app

Cross-platform app for local networks: device discovery, bulk control, device groups and firmware updates, with no cloud.

View on GitHub

python-netio-discover

Python

Detects all network interfaces and finds NETIO devices on the connected networks.

View on GitHub

C# and PHP examples

C# · PHP

Code snippets for controlling NETIO devices from C# and PHP applications.

View on GitHub

Building your own driver? Use this checklist

  1. Let users find the device on the LAN (NETIO UDP Discover) or enter its IP address and port manually.
  2. Let users set the username and password. The JSON default for read-write access is “netio” / “netio”.
  3. Identify each device by its MAC address (SerialNumber in the JSON) and show its editable device name.
  4. Read NumOutputs from the JSON. NETIO devices have 1 to 8 outputs, so never assume four.
  5. Not every output is metered on every model. Show power data only where the JSON provides it.
  6. Read the State of each output, but write commands to Action, so you can use toggle and short pulses (restart).
  7. Show output numbers and names, and let users rename outputs.
  8. Support HTTPS for secure communication.

Haven’t found your favorite system? Let us know.

Tell us which control system, software or platform you use. Our engineers will check the options, point you to an existing driver or example, or help you build the integration.

Let Us KnowSee Supported Platforms

Start with one PDU. Scale when you’re ready.

Test NETIO in your next installation. Start with one intelligent PDU and expand your remote power management as your projects grow.