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.
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.
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.
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.
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.
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.
Which option is right for you?
| Your control system already has a NETIO driver or plugin | AV driver |
| Your software runs on the same network as the PDU | JSON over HTTP(s) |
| Your application runs in the cloud and the PDU is behind NAT or a firewall | MQTT-flex |
| You manage IT infrastructure with a network monitoring system | SNMP v1/v3 |
| You integrate with a PLC or building automation system | Modbus/TCP |
| You need a simple command from a script or another device | URL API (HTTP GET) |
| You want one screen for many devices, without programming | NETIO 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.
JSONHTTP(s), recommended
MQTT-flexCloud, recommended
SNMPv1 / v3
URL APIHTTP(s) GET
NETIO CloudOptional service
Modbus/TCPPLC, BMS
TelnetLegacy compatible
Web 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
| 0 | Off |
| 1 | On |
| 2 | Short Off (restart: off, then on after the set delay) |
| 3 | Short On (pulse: on, then off after the set delay) |
| 4 | Toggle |
| 5 | No change |
| 6 | Ignored |
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
# 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 bindings and a command-line tool for the JSON API: switch outputs, read power data and inputs, with HTTPS support.
View on GitHubNetio Local Management
Cross-platform app for local networks: device discovery, bulk control, device groups and firmware updates, with no cloud.
View on GitHubpython-netio-discover
Detects all network interfaces and finds NETIO devices on the connected networks.
View on GitHubC# and PHP examples
Code snippets for controlling NETIO devices from C# and PHP applications.
View on GitHubBuilding your own driver? Use this checklist
- Let users find the device on the LAN (NETIO UDP Discover) or enter its IP address and port manually.
- Let users set the username and password. The JSON default for read-write access is “netio” / “netio”.
- Identify each device by its MAC address (SerialNumber in the JSON) and show its editable device name.
- Read NumOutputs from the JSON. NETIO devices have 1 to 8 outputs, so never assume four.
- Not every output is metered on every model. Show power data only where the JSON provides it.
- Read the State of each output, but write commands to Action, so you can use toggle and short pulses (restart).
- Show output numbers and names, and let users rename outputs.
- Support HTTPS for secure communication.
Documentation and tools
- AN21: JSON over HTTP(s) (REST API)
- AN20: XML over HTTP(s)
- AN19: URL API (HTTP GET)
- AN40: MQTT-flex getting started
- AN11: SNMP management from the command line
- AN60: Modbus/TCP with a PLC (Siemens LOGO!)
- NETIO Open API documentation (download)
- NETIO UDP Discover (find devices on the LAN)
- NETIO Wiki for programmers
- NETIO GitHub: libraries and code examples
- PyNetioConf: Python configuration and control module
- All NETIO application notes
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 PlatformsStart 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.