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:
- URL API (Offical doc)
- JSON API (Offical doc)
- implement Telnet (Offical doc)
- implement Telnet support for NETIO 230B (older model) (Offical doc)
- add rockspec
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 :)
local Netio = require('netio')
local netio1 = Netio.new({
url = 'http://netio-4.netio-products.com',
port = 8080,
user = 'write',
pass= 'demo',
api = 'json'
})
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[1].State)
Documentation was generated with LDoc and can be read here: https://imolein.github.io/lua-netio/
You need busted to run the tests.
busted spec/
Some tests might fail sporadically. That's because the demo instaces 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 rejected, but not why.