Free as in Freedom: Create your repos!
Library to control outputs of NETIO 4 smart power sockets from NETIO products a.s.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Sebastian Huebner 7c2be0c7cf
netio_jsonapi_spec.lua: fixed tests
10 months ago
docs Found typo in docu 10 months ago
examples not useable 10 months ago
spec netio_jsonapi_spec.lua: fixed tests 10 months ago
src/netio jsonapi.lua: fixed typo in outputs methods 10 months ago
LICENSE LICENSE: added year and name 10 months ago updated README 10 months ago



lua-netio is a library to control outputs of NETIO 4x smart power sockets from NETIO products a.s.. These Ethernet- or WiFi-connected power sockets can be accessed using a varity of protocols and M2M-API methods, including HTTP(s) CGI, Telnet, XML, JSON and many more.

Currently implemented:



I’m not planing to implement the XML API, because in my opinion the JSON API is enough, but if someone want to contribute, do it :)

Example Usage

local Netio = require('netio.jsonapi')
local netio1 = Netio:new({
    url = '',
    port = 8080,
    user = 'write',
    pass= 'demo'

local resp, err = netio1:outputs_info(1)
print('Current state of Output1 is ' .. resp.State)
resp, err = netio1:outputs_toggle(1)
print('State after toggle of Output1 is ' .. resp.State)


Documentation was generated with LDoc and can be read here:



You need busted to run the tests.

busted spec/

Some tests might fail sporadically. That’s because I use the NETIO 4All demo URL, which sporadically rejects the commands silently and just return the status JSON object. If you take a look into the NETIO’s logfile, you see that the command is refected, but not why. You can change the URL to one of the another demo devices, but then the measure_info() method test will fail.