<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.netio-products.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin</id>
	<title>wiki.netio-products.com - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.netio-products.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin"/>
	<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=Special:Contributions/Admin"/>
	<updated>2026-05-03T21:40:16Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=Welcome_to_NETIO_resources_%26_projects_%26_documentation_overview&amp;diff=479</id>
		<title>Welcome to NETIO resources &amp; projects &amp; documentation overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=Welcome_to_NETIO_resources_%26_projects_%26_documentation_overview&amp;diff=479"/>
		<updated>2019-07-11T18:59:24Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;text-align: center; white-space: nowrap;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: inline-block; padding: 0 0 0 0; border-left: 0px solid gray; width: 40%; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center; white-space: nowrap;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #eaf6f2; display: inline-block; margin: 0 1em 0 1em; border-left: 0px solid gray; width: 45%; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;background: #005f41; color: #FFF; margin: 0 0 0 0; padding: 0 1em 0 1em;&amp;quot;&amp;gt;Interoperability&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot; display: inline-block; padding: 0 1em 0 1em;text-align: left; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
=== M2M API doc ===&lt;br /&gt;
[[MQTT-flex]]&lt;br /&gt;
&lt;br /&gt;
[[MQTT]]&lt;br /&gt;
&lt;br /&gt;
[[JSON API]]&lt;br /&gt;
&lt;br /&gt;
[[XML API]]&lt;br /&gt;
&lt;br /&gt;
[[URL API]]&lt;br /&gt;
&lt;br /&gt;
[[SNMP]]&lt;br /&gt;
&lt;br /&gt;
[[Telnet/Kshell]]&lt;br /&gt;
&lt;br /&gt;
[[Modbus TCP]]&lt;br /&gt;
&lt;br /&gt;
=== Integrations ===&lt;br /&gt;
[https://www.home-assistant.io/components/netio/ Home Assistant]&lt;br /&gt;
&lt;br /&gt;
[[IBM Cloud]] -  MQTT-flex&lt;br /&gt;
&lt;br /&gt;
[[IBM Cloud]] -  NETIO 4x MQTT-LUA&lt;br /&gt;
&lt;br /&gt;
[[Azure IoT Hub]] - MQTT&lt;br /&gt;
&lt;br /&gt;
[[HiveMQ]] -  MQTT-flex&lt;br /&gt;
&lt;br /&gt;
[[NodeRED]] - JSON API&lt;br /&gt;
&lt;br /&gt;
[https://www.jam-software.com/serversentinel/online_manual/EN/index.html?actions_netio230bnetworkpowersocket.html Jam-software - ServerSentinel]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #eaf6f2; display: inline-block; padding: 0 0 0 0; border-left: 0px solid gray; width: 52%; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;background: #005f41; color: #FFF; margin: 0 0 0 0; padding: 0 1em 0 1em;&amp;quot;&amp;gt; Community &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot; display: inline-block; padding: 0 1em 0 1em;text-align: left; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
=== Official ===&lt;br /&gt;
[https://github.com/netioproducts GitHub - official]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Koukaam/netio-utils/tree/master/actions GitHub - obsolete (Koukaam)]&lt;br /&gt;
&lt;br /&gt;
=== Community ===&lt;br /&gt;
[https://github.com/stdevel/check_netio Nagios plugin]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/elmicro/fhem_netio_4x_pm FHEM module by Elmicro]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/imolein/lua-netio LUA control Library]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/rynr/netio Java Control Library]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/st3veV/Netio-OpenHAB OpenHAB using MQTT]&lt;br /&gt;
&lt;br /&gt;
[https://jirikuba.github.io/NETIO.SpinaniHDO/ NETIO controlled by HDO]&lt;br /&gt;
&lt;br /&gt;
[https://groups.google.com/forum/#!topic/openhab/O6psocjU70s Read consumption in OpenHAB - HTTP]&lt;br /&gt;
&lt;br /&gt;
[https://www.instructables.com/id/How-to-Work-With-JSON-in-Node-RED/ NETIO 4All from NodeRED]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/theone1984/netio-jenkins Jenkins plugin]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: inline-block; padding: 0 2em 0 0; border-right: 0px solid gray; width: 60%; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #eaf6f2; display: inline-block; padding: 0 0 0 1em; border-left: 0px solid gray; width: 98%; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;background: #005f41; color: #FFF; margin: 0 0 0 0; padding: 0 1em 0 1em;&amp;quot;&amp;gt; NETIO Lua Programming &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot; display: inline-block; padding: 0 1em 0 1em;text-align: justify; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
=== Don't know LUA? ===&lt;br /&gt;
==== [https://www.lua.org/pil/contents.html Official Lua tutorial] ====&lt;br /&gt;
If you are new to Lua and programming as such and if you are eager to learn, this is your starting point. Before you proceed to NETIO Sockets, this [https://www.lua.org/demo.html online environment] will be a good place to test your first scripts.&lt;br /&gt;
==== [https://www.lua.org/manual/5.3/ Official Lua manual] ====&lt;br /&gt;
Although you won't need everything mentioned here, it is worth to peek here from time to time to grasp the concepts of effective Lua programming.&lt;br /&gt;
&lt;br /&gt;
=== Lua in NETIO ===&lt;br /&gt;
If you already know Lua, just keep in mind that &amp;lt;b&amp;gt;NETIO Lua loops are limited to 32k cycles&amp;lt;/b&amp;gt; and all &amp;lt;b&amp;gt;numbers are integers, not decimals&amp;lt;/b&amp;gt; like in standard Lua.&lt;br /&gt;
==== [[Lua basics for other language programmers]] ====&lt;br /&gt;
A quick jump into NETIO Lua programming if you mastered another programming language. It's simple...&lt;br /&gt;
==== [[NETIO Lua Tips &amp;amp; Philosophy]] ====&lt;br /&gt;
Explanation of starting LUA scripts in NETIO devices and some tips how to hack NETIO to doing what you want.&lt;br /&gt;
&lt;br /&gt;
==== [[NETIO Specific Reference manual]] ====&lt;br /&gt;
If you can already code in Lua, NETIO-specific Lua functions is your main guide to programing NETIO Sockets.&lt;br /&gt;
&lt;br /&gt;
==== [[Examples &amp;amp; Aplication notes]] ====&lt;br /&gt;
Aplication notes for devices supporting LUA programming. Example configurations downloads and Script programming explanation with direct links to reference&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=Welcome_to_NETIO_resources_%26_projects_%26_documentation_overview&amp;diff=478</id>
		<title>Welcome to NETIO resources &amp; projects &amp; documentation overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=Welcome_to_NETIO_resources_%26_projects_%26_documentation_overview&amp;diff=478"/>
		<updated>2019-07-11T18:57:28Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;text-align: center; white-space: nowrap;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: inline-block; padding: 0 0 0 0; border-left: 0px solid gray; width: 40%; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center; white-space: nowrap;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #eaf6f2; display: inline-block; margin: 0 1em 0 1em; border-left: 0px solid gray; width: 45%; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;background: #005f41; color: #FFF; margin: 0 0 0 0; padding: 0 1em 0 1em;&amp;quot;&amp;gt; Integration &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot; display: inline-block; padding: 0 1em 0 1em;text-align: left; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
=== M2M API doc ===&lt;br /&gt;
[[MQTT-flex]]&lt;br /&gt;
&lt;br /&gt;
[[MQTT]]&lt;br /&gt;
&lt;br /&gt;
[[JSON API]]&lt;br /&gt;
&lt;br /&gt;
[[XML API]]&lt;br /&gt;
&lt;br /&gt;
[[URL API]]&lt;br /&gt;
&lt;br /&gt;
[[SNMP]]&lt;br /&gt;
&lt;br /&gt;
[[Telnet/Kshell]]&lt;br /&gt;
&lt;br /&gt;
[[Modbus TCP]]&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
[https://www.home-assistant.io/components/netio/ Home Assistant]&lt;br /&gt;
&lt;br /&gt;
[[IBM Cloud]] -  MQTT-flex&lt;br /&gt;
&lt;br /&gt;
[[IBM Cloud]] -  NETIO 4x MQTT-LUA&lt;br /&gt;
&lt;br /&gt;
[[Azure IoT Hub]] - MQTT&lt;br /&gt;
&lt;br /&gt;
[[HiveMQ]] -  MQTT-flex&lt;br /&gt;
&lt;br /&gt;
[[NodeRED]] - JSON API&lt;br /&gt;
&lt;br /&gt;
[https://www.jam-software.com/serversentinel/online_manual/EN/index.html?actions_netio230bnetworkpowersocket.html Jam-software - ServerSentinel]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #eaf6f2; display: inline-block; padding: 0 0 0 0; border-left: 0px solid gray; width: 52%; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;background: #005f41; color: #FFF; margin: 0 0 0 0; padding: 0 1em 0 1em;&amp;quot;&amp;gt; Community &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot; display: inline-block; padding: 0 1em 0 1em;text-align: left; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
=== Official ===&lt;br /&gt;
[https://github.com/netioproducts GitHub - official]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Koukaam/netio-utils/tree/master/actions GitHub - obsolete (Koukaam)]&lt;br /&gt;
&lt;br /&gt;
=== Community ===&lt;br /&gt;
[https://github.com/stdevel/check_netio Nagios plugin]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/elmicro/fhem_netio_4x_pm FHEM module by Elmicro]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/imolein/lua-netio LUA control Library]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/rynr/netio Java Control Library]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/st3veV/Netio-OpenHAB OpenHAB using MQTT]&lt;br /&gt;
&lt;br /&gt;
[https://jirikuba.github.io/NETIO.SpinaniHDO/ NETIO controlled by HDO]&lt;br /&gt;
&lt;br /&gt;
[https://groups.google.com/forum/#!topic/openhab/O6psocjU70s Read consumption in OpenHAB - HTTP]&lt;br /&gt;
&lt;br /&gt;
[https://www.instructables.com/id/How-to-Work-With-JSON-in-Node-RED/ NETIO 4All from NodeRED]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/theone1984/netio-jenkins Jenkins plugin]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: inline-block; padding: 0 2em 0 0; border-right: 0px solid gray; width: 60%; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #eaf6f2; display: inline-block; padding: 0 0 0 1em; border-left: 0px solid gray; width: 98%; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;background: #005f41; color: #FFF; margin: 0 0 0 0; padding: 0 1em 0 1em;&amp;quot;&amp;gt; NETIO Lua Programming &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot; display: inline-block; padding: 0 1em 0 1em;text-align: justify; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
=== Don't know LUA? ===&lt;br /&gt;
==== [https://www.lua.org/pil/contents.html Official Lua tutorial] ====&lt;br /&gt;
If you are new to Lua and programming as such and if you are eager to learn, this is your starting point. Before you proceed to NETIO Sockets, this [https://www.lua.org/demo.html online environment] will be a good place to test your first scripts.&lt;br /&gt;
==== [https://www.lua.org/manual/5.3/ Official Lua manual] ====&lt;br /&gt;
Although you won't need everything mentioned here, it is worth to peek here from time to time to grasp the concepts of effective Lua programming.&lt;br /&gt;
&lt;br /&gt;
=== Lua in NETIO ===&lt;br /&gt;
If you already know Lua, just keep in mind that &amp;lt;b&amp;gt;NETIO Lua loops are limited to 32k cycles&amp;lt;/b&amp;gt; and all &amp;lt;b&amp;gt;numbers are integers, not decimals&amp;lt;/b&amp;gt; like in standard Lua.&lt;br /&gt;
==== [[Lua basics for other language programmers]] ====&lt;br /&gt;
A quick jump into NETIO Lua programming if you mastered another programming language. It's simple...&lt;br /&gt;
==== [[NETIO Lua Tips &amp;amp; Philosophy]] ====&lt;br /&gt;
Explanation of starting LUA scripts in NETIO devices and some tips how to hack NETIO to doing what you want.&lt;br /&gt;
&lt;br /&gt;
==== [[NETIO Specific Reference manual]] ====&lt;br /&gt;
If you can already code in Lua, NETIO-specific Lua functions is your main guide to programing NETIO Sockets.&lt;br /&gt;
&lt;br /&gt;
==== [[Examples &amp;amp; Aplication notes]] ====&lt;br /&gt;
Aplication notes for devices supporting LUA programming. Example configurations downloads and Script programming explanation with direct links to reference&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=NETIO_Specific_Reference_manual&amp;diff=477</id>
		<title>NETIO Specific Reference manual</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=NETIO_Specific_Reference_manual&amp;diff=477"/>
		<updated>2019-07-11T18:45:33Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Socket System Management */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Script triggers == &lt;br /&gt;
* [[Power measurements changed|Power measurements changed]]&amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.3.1&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* [[Global power characteristics changed|Global power characteristics changed]]&amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.3.1&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* [[Schedule has started or stopped|Schedule has started or stopped]]&lt;br /&gt;
* [[Incoming URL API request|Incoming URL API request]]&lt;br /&gt;
* [[System started up|System started up]]&lt;br /&gt;
* [[Mqtt was disconnected from the broker|Mqtt was disconnected from the broker]]&amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.3.1&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* [[Mqtt received message on subscribed topic|Mqtt received message on subscribed topic]]&amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.3.1&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* [[System variables updated|System variables updated]]&lt;br /&gt;
* [[Mqtt has connected to the broker|Mqtt has connected to the broker]]&amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.3.1&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* [[DO state changed|DO state changed]]&lt;br /&gt;
&lt;br /&gt;
== Outlet Management ==&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;b&amp;gt; devices.system &amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
* function [[Function devices.system.SetOut()|.SetOut()]] - turns the outlet on or off&lt;br /&gt;
* function [[Function devices.system.ResetOut()|.ResetOut()]] - turns the outlet off and then resets its previous state&lt;br /&gt;
* string [[String devices.system.output1_state|.output1_state]] - outlet's state&lt;br /&gt;
* number [[Number devices.system.output1_consumption|.output1_consumption]] - outlet's consumption (in Watts)&lt;br /&gt;
* number [[Number devices.system.output1_cumulatedConsumption|.output1_cumulatedConsumption]] - outlet's consumed energy (in Watthours)&lt;br /&gt;
* function [[Function devices.system.resetCumulativeConsumption()|.resetCumulativeConsumption()]] - resets outlet's energy counter&lt;br /&gt;
* string [[String devices.system.output1_consumptionStart|.output1_consumptionStart]] - date and time since the last energy counter reset&lt;br /&gt;
&lt;br /&gt;
== Socket System Management ==&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;b&amp;gt; devices.system&amp;lt;/b&amp;gt; &amp;lt;/big&amp;gt;&lt;br /&gt;
* number [[number devices.system.averageLoad|.averageLoad]] - socket's CPU load&lt;br /&gt;
* function [[Function devices.system.Reboot()|.Reboot()]] - reboot socket's system&lt;br /&gt;
* number [[Number devices.system.sessionCount|.sessionCount]] - number of connected users&lt;br /&gt;
* number [[Number devices.system.freeSpace|.freeSpace]] - free disk space&lt;br /&gt;
* number [[Number devices.system.totalSpace|.totalSpace]] - total disk space&lt;br /&gt;
* string [[String devices.system.serialNumber|.serialNumber]] &amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.3.1&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt; - returns serial number of the device (Eth Interface MAC address)&lt;br /&gt;
* number [[Number devices.system.voltage|.voltage]] &amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.0.0&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt; - socket's voltage&lt;br /&gt;
* number [[Number devices.system.overallPowerFactor|.overallPowerFactor]] &amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.0.0&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt; - overall power factor&lt;br /&gt;
* number [[Number devices.system.frequency|.frequency]] &amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.0.0&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt; - socket's frequency&lt;br /&gt;
* number [[Number devices.system.totalCurrent|.totalCurrent]] &amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.0.0&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt; - total current through socket&lt;br /&gt;
* number [[Number devices.system.totalLoad|.totalLoad]] &amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.0.0&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt; - total load on socket&lt;br /&gt;
* number [[Number devices.system.totalEnergy|.totalEnergy]] &amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.0.0&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt; - total energy consumed by socket&lt;br /&gt;
* string [[Number devices.system.energyStart|.energyStart]] &amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.0.0&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt; - time of last consumption reset&lt;br /&gt;
&lt;br /&gt;
== Socket Communication ==&lt;br /&gt;
* function [[Function ping()|ping()]] - tests socket's network responsivity&lt;br /&gt;
* function [[Function mail()|mail()]] - sends e-mail&lt;br /&gt;
* function [[Function devices.system.CustomCGI()|devices.system.CustomCGI()]] - send HTTP request&lt;br /&gt;
* function [[Function cgiGet()|cgiGet()]] &amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;2.3.5&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt; - send HTTP request and receive response&lt;br /&gt;
* table [[Table event.args|event.args]] - HTTP GET /event variables table&lt;br /&gt;
* function [[Function snmpGet()|snmpGet()]] &amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.3.1&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt; - send SNMP request&lt;br /&gt;
&lt;br /&gt;
== XML Processing &amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;2.3.6&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt; ==&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;b&amp;gt;xml&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
* function [[Function xml.escape()|.escape()]] - escapes XML string to fit xml node contents&lt;br /&gt;
* function [[Function xml.check()|.check()]] - tests if string is well-formed XML&lt;br /&gt;
* function [[Function xml.parse()|.parse()]] - parses XML string into [[Function xml.parse()#XmlElement|XmlElement]] object&lt;br /&gt;
&lt;br /&gt;
== JSON Processing &amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.3.1&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt; ==&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;b&amp;gt;json&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt; &lt;br /&gt;
* function [[Function json.decode()|.decode()]] - parse json string into obj table&lt;br /&gt;
* function [[Function json.encode()|.encode()]] - generate JSON string from table&lt;br /&gt;
&lt;br /&gt;
(based on [http://dkolf.de/src/dkjson-lua.fsl/home dkjson])&lt;br /&gt;
&lt;br /&gt;
== Modbus &amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.3.1&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt;==&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;b&amp;gt;Read functions&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt; &lt;br /&gt;
* function [[Function modbusReadCoil()|modbusReadCoil()]] - read value from coil&lt;br /&gt;
* function [[Function modbusReadDiscreteInput()|modbusReadDiscreteInput()]] - read value from discrete input&lt;br /&gt;
* function [[Function modbusReadHoldingRegister()|modbusReadHoldingRegister()]] - read value from holding register&lt;br /&gt;
* function [[Function modbusReadInputRegister()|modbusReadInputRegister()]] - read value from input register&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;b&amp;gt;Write functions&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt; &lt;br /&gt;
* function [[Function modbusWriteSingleCoil()|modbusWriteSingleCoil()]] - write value to single coil&lt;br /&gt;
* function [[Function modbusWriteSingleRegister()|modbusWriteSingleRegister()]] - write value to single register&lt;br /&gt;
&lt;br /&gt;
== MQTT &amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.3.1&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt;==&lt;br /&gt;
* function [[Function devices.system.MqttLuaSubscribe()|.MqttLuaSubscribe()]] - subscribe to MQTT topic&lt;br /&gt;
* function [[Function devices.system.MqttPublish()|.MqttPublish()]] - send message to MQTT topic&lt;br /&gt;
&lt;br /&gt;
== Standard Lua Functions ==&lt;br /&gt;
* function [https://www.lua.org/pil/8.3.html assert(), error()] issues an error&lt;br /&gt;
* function [https://www.lua.org/pil/7.3.html ipairs(), pairs(), next()] traverse tables&lt;br /&gt;
* function [https://www.lua.org/pil/2.4.html tonumber(), tostring()] data type conversion&lt;br /&gt;
* function [https://www.lua.org/pil/8.4.html pcall()] protected call function (handles error inside the function)&lt;br /&gt;
* function [https://www.lua.org/pil/5.2.html select()] selects from multiple return value&lt;br /&gt;
* function [https://www.lua.org/pil/2.html unpack] converts table into multiple values&lt;br /&gt;
* function [https://www.lua.org/pil/2.html type()] returns variable type&lt;br /&gt;
* function [https://www.lua.org/pil/22.1.html os.date(), os.time()] system date and time&lt;br /&gt;
* function os.difftime() returns time span between two times&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
* function [[Function log()|log()]] - insert a record to the socket's event log&lt;br /&gt;
* function [[Function logf()|logf()]] - insert a formated record (incl. numbers) to the socket's event log&lt;br /&gt;
* function [[Function delay()|delay()]] - execute function with delay (seconds)&lt;br /&gt;
* function [[Function milliDelay()|milliDelay()]] - execute function with delay (milliseconds)&lt;br /&gt;
* function [[Function toboolean()|toboolean()]] - converts any variable to boolean type&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=NETIO_Specific_Reference_manual&amp;diff=476</id>
		<title>NETIO Specific Reference manual</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=NETIO_Specific_Reference_manual&amp;diff=476"/>
		<updated>2019-07-11T18:44:27Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Script triggers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Script triggers == &lt;br /&gt;
* [[Power measurements changed|Power measurements changed]]&amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.3.1&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* [[Global power characteristics changed|Global power characteristics changed]]&amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.3.1&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* [[Schedule has started or stopped|Schedule has started or stopped]]&lt;br /&gt;
* [[Incoming URL API request|Incoming URL API request]]&lt;br /&gt;
* [[System started up|System started up]]&lt;br /&gt;
* [[Mqtt was disconnected from the broker|Mqtt was disconnected from the broker]]&amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.3.1&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* [[Mqtt received message on subscribed topic|Mqtt received message on subscribed topic]]&amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.3.1&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* [[System variables updated|System variables updated]]&lt;br /&gt;
* [[Mqtt has connected to the broker|Mqtt has connected to the broker]]&amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.3.1&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* [[DO state changed|DO state changed]]&lt;br /&gt;
&lt;br /&gt;
== Outlet Management ==&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;b&amp;gt; devices.system &amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
* function [[Function devices.system.SetOut()|.SetOut()]] - turns the outlet on or off&lt;br /&gt;
* function [[Function devices.system.ResetOut()|.ResetOut()]] - turns the outlet off and then resets its previous state&lt;br /&gt;
* string [[String devices.system.output1_state|.output1_state]] - outlet's state&lt;br /&gt;
* number [[Number devices.system.output1_consumption|.output1_consumption]] - outlet's consumption (in Watts)&lt;br /&gt;
* number [[Number devices.system.output1_cumulatedConsumption|.output1_cumulatedConsumption]] - outlet's consumed energy (in Watthours)&lt;br /&gt;
* function [[Function devices.system.resetCumulativeConsumption()|.resetCumulativeConsumption()]] - resets outlet's energy counter&lt;br /&gt;
* string [[String devices.system.output1_consumptionStart|.output1_consumptionStart]] - date and time since the last energy counter reset&lt;br /&gt;
&lt;br /&gt;
== Socket System Management ==&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;b&amp;gt; devices.system&amp;lt;/b&amp;gt; &amp;lt;/big&amp;gt;&lt;br /&gt;
* number [[number devices.system.averageLoad|.averageLoad]] - socket's CPU load&lt;br /&gt;
* function [[Function devices.system.Reboot()|.Reboot()]] - reboot socket's system&lt;br /&gt;
* number [[Number devices.system.sessionCount|.sessionCount]] - number of connected users&lt;br /&gt;
* number [[Number devices.system.freeSpace|.freeSpace]] - free disk space&lt;br /&gt;
* number [[Number devices.system.totalSpace|.totalSpace]] - total disk space&lt;br /&gt;
* string [[String devices.system.serialNumber|.serialNumber]] &amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.3.1&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt; - returns serial number of the device (Eth Interface MAC address)&lt;br /&gt;
* number [[Number devices.system.voltage|.voltage]] - socket's voltage&lt;br /&gt;
* number [[Number devices.system.overallPowerFactor|.overallPowerFactor]] - overall power factor&lt;br /&gt;
* number [[Number devices.system.frequency|.frequency]] - socket's frequency&lt;br /&gt;
* number [[Number devices.system.totalCurrent|.totalCurrent]] - total current through socket&lt;br /&gt;
* number [[Number devices.system.totalLoad|.totalLoad]] - total load on socket&lt;br /&gt;
* number [[Number devices.system.totalEnergy|.totalEnergy]] - total energy consumed by socket&lt;br /&gt;
* string [[Number devices.system.energyStart|.energyStart]] - time of last consumption reset&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Socket Communication ==&lt;br /&gt;
* function [[Function ping()|ping()]] - tests socket's network responsivity&lt;br /&gt;
* function [[Function mail()|mail()]] - sends e-mail&lt;br /&gt;
* function [[Function devices.system.CustomCGI()|devices.system.CustomCGI()]] - send HTTP request&lt;br /&gt;
* function [[Function cgiGet()|cgiGet()]] &amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;2.3.5&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt; - send HTTP request and receive response&lt;br /&gt;
* table [[Table event.args|event.args]] - HTTP GET /event variables table&lt;br /&gt;
* function [[Function snmpGet()|snmpGet()]] &amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.3.1&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt; - send SNMP request&lt;br /&gt;
&lt;br /&gt;
== XML Processing &amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;2.3.6&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt; ==&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;b&amp;gt;xml&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
* function [[Function xml.escape()|.escape()]] - escapes XML string to fit xml node contents&lt;br /&gt;
* function [[Function xml.check()|.check()]] - tests if string is well-formed XML&lt;br /&gt;
* function [[Function xml.parse()|.parse()]] - parses XML string into [[Function xml.parse()#XmlElement|XmlElement]] object&lt;br /&gt;
&lt;br /&gt;
== JSON Processing &amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.3.1&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt; ==&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;b&amp;gt;json&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt; &lt;br /&gt;
* function [[Function json.decode()|.decode()]] - parse json string into obj table&lt;br /&gt;
* function [[Function json.encode()|.encode()]] - generate JSON string from table&lt;br /&gt;
&lt;br /&gt;
(based on [http://dkolf.de/src/dkjson-lua.fsl/home dkjson])&lt;br /&gt;
&lt;br /&gt;
== Modbus &amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.3.1&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt;==&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;b&amp;gt;Read functions&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt; &lt;br /&gt;
* function [[Function modbusReadCoil()|modbusReadCoil()]] - read value from coil&lt;br /&gt;
* function [[Function modbusReadDiscreteInput()|modbusReadDiscreteInput()]] - read value from discrete input&lt;br /&gt;
* function [[Function modbusReadHoldingRegister()|modbusReadHoldingRegister()]] - read value from holding register&lt;br /&gt;
* function [[Function modbusReadInputRegister()|modbusReadInputRegister()]] - read value from input register&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;b&amp;gt;Write functions&amp;lt;/b&amp;gt;&amp;lt;/big&amp;gt; &lt;br /&gt;
* function [[Function modbusWriteSingleCoil()|modbusWriteSingleCoil()]] - write value to single coil&lt;br /&gt;
* function [[Function modbusWriteSingleRegister()|modbusWriteSingleRegister()]] - write value to single register&lt;br /&gt;
&lt;br /&gt;
== MQTT &amp;lt;sup&amp;gt;&amp;lt;code&amp;gt;3.3.1&amp;lt;/code&amp;gt;&amp;lt;/sup&amp;gt;==&lt;br /&gt;
* function [[Function devices.system.MqttLuaSubscribe()|.MqttLuaSubscribe()]] - subscribe to MQTT topic&lt;br /&gt;
* function [[Function devices.system.MqttPublish()|.MqttPublish()]] - send message to MQTT topic&lt;br /&gt;
&lt;br /&gt;
== Standard Lua Functions ==&lt;br /&gt;
* function [https://www.lua.org/pil/8.3.html assert(), error()] issues an error&lt;br /&gt;
* function [https://www.lua.org/pil/7.3.html ipairs(), pairs(), next()] traverse tables&lt;br /&gt;
* function [https://www.lua.org/pil/2.4.html tonumber(), tostring()] data type conversion&lt;br /&gt;
* function [https://www.lua.org/pil/8.4.html pcall()] protected call function (handles error inside the function)&lt;br /&gt;
* function [https://www.lua.org/pil/5.2.html select()] selects from multiple return value&lt;br /&gt;
* function [https://www.lua.org/pil/2.html unpack] converts table into multiple values&lt;br /&gt;
* function [https://www.lua.org/pil/2.html type()] returns variable type&lt;br /&gt;
* function [https://www.lua.org/pil/22.1.html os.date(), os.time()] system date and time&lt;br /&gt;
* function os.difftime() returns time span between two times&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
* function [[Function log()|log()]] - insert a record to the socket's event log&lt;br /&gt;
* function [[Function logf()|logf()]] - insert a formated record (incl. numbers) to the socket's event log&lt;br /&gt;
* function [[Function delay()|delay()]] - execute function with delay (seconds)&lt;br /&gt;
* function [[Function milliDelay()|milliDelay()]] - execute function with delay (milliseconds)&lt;br /&gt;
* function [[Function toboolean()|toboolean()]] - converts any variable to boolean type&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=Welcome_to_NETIO_resources_%26_projects_%26_documentation_overview&amp;diff=475</id>
		<title>Welcome to NETIO resources &amp; projects &amp; documentation overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=Welcome_to_NETIO_resources_%26_projects_%26_documentation_overview&amp;diff=475"/>
		<updated>2019-07-11T18:41:23Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Lua in NETIO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;text-align: center; white-space: nowrap;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: inline-block; padding: 0 0 0 0; border-left: 0px solid gray; width: 40%; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center; white-space: nowrap;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #eaf6f2; display: inline-block; margin: 0 1em 0 1em; border-left: 0px solid gray; width: 45%; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;background: #005f41; color: #FFF; margin: 0 0 0 0; padding: 0 1em 0 1em;&amp;quot;&amp;gt; Integration &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot; display: inline-block; padding: 0 1em 0 1em;text-align: left; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
=== M2M API doc ===&lt;br /&gt;
[[MQTT-flex]]&lt;br /&gt;
&lt;br /&gt;
[[MQTT]]&lt;br /&gt;
&lt;br /&gt;
[[JSON API]]&lt;br /&gt;
&lt;br /&gt;
[[XML API]]&lt;br /&gt;
&lt;br /&gt;
[[URL API]]&lt;br /&gt;
&lt;br /&gt;
[[SNMP]]&lt;br /&gt;
&lt;br /&gt;
[[Telnet/Kshell]]&lt;br /&gt;
&lt;br /&gt;
[[Modbus TCP]]&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
[https://www.home-assistant.io/components/netio/ Home Assistant]&lt;br /&gt;
&lt;br /&gt;
[[IBM Cloud]] -  MQTT-flex&lt;br /&gt;
&lt;br /&gt;
[[IBM Cloud]] -  NETIO 4x MQTT-LUA&lt;br /&gt;
&lt;br /&gt;
[[Azure IoT Hub]] - MQTT&lt;br /&gt;
&lt;br /&gt;
[[HiveMQ]] -  MQTT-flex&lt;br /&gt;
&lt;br /&gt;
[[NodeRED]] - JSON API&lt;br /&gt;
&lt;br /&gt;
[https://www.jam-software.com/serversentinel/online_manual/EN/index.html?actions_netio230bnetworkpowersocket.html Jam-software - ServerSentinel]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #eaf6f2; display: inline-block; padding: 0 0 0 0; border-left: 0px solid gray; width: 52%; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;background: #005f41; color: #FFF; margin: 0 0 0 0; padding: 0 1em 0 1em;&amp;quot;&amp;gt; Community &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot; display: inline-block; padding: 0 1em 0 1em;text-align: left; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
=== Official ===&lt;br /&gt;
[https://github.com/netioproducts GitHub - official]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Koukaam/netio-utils/tree/master/actions GitHub - obsolete (Koukaam)]&lt;br /&gt;
&lt;br /&gt;
=== Community ===&lt;br /&gt;
[https://github.com/stdevel/check_netio Nagios plugin]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/elmicro/fhem_netio_4x_pm FHEM module by Elmicro]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/imolein/lua-netio LUA control Library]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/rynr/netio Java Control Library]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/st3veV/Netio-OpenHAB OpenHAB using MQTT]&lt;br /&gt;
&lt;br /&gt;
[https://jirikuba.github.io/NETIO.SpinaniHDO/ NETIO controlled by HDO]&lt;br /&gt;
&lt;br /&gt;
[https://groups.google.com/forum/#!topic/openhab/O6psocjU70s Read consumption in OpenHAB - HTTP]&lt;br /&gt;
&lt;br /&gt;
[https://www.instructables.com/id/How-to-Work-With-JSON-in-Node-RED/ NETIO 4All from NodeRED]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/theone1984/netio-jenkins Jenkins plugin]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: inline-block; padding: 0 1em 0 1em; border-right: 0px solid gray; width: 60%; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background: #eaf6f2; display: inline-block; padding: 0 0 0 0; border-left: 0px solid gray; width: 98%; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;background: #005f41; color: #FFF; margin: 0 0 0 0; padding: 0 1em 0 1em;&amp;quot;&amp;gt; NETIO Lua Programming &amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot; display: inline-block; padding: 0 1em 0 1em;text-align: justify; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
=== Don't know LUA? ===&lt;br /&gt;
==== [https://www.lua.org/pil/contents.html Official Lua tutorial] ====&lt;br /&gt;
If you are new to Lua and programming as such and if you are eager to learn, this is your starting point. Before you proceed to NETIO Sockets, this [https://www.lua.org/demo.html online environment] will be a good place to test your first scripts.&lt;br /&gt;
==== [https://www.lua.org/manual/5.3/ Official Lua manual] ====&lt;br /&gt;
Although you won't need everything mentioned here, it is worth to peek here from time to time to grasp the concepts of effective Lua programming.&lt;br /&gt;
&lt;br /&gt;
=== Lua in NETIO ===&lt;br /&gt;
If you already know Lua, just keep in mind that &amp;lt;b&amp;gt;NETIO Lua loops are limited to 32k cycles&amp;lt;/b&amp;gt; and all &amp;lt;b&amp;gt;numbers are integers, not decimals&amp;lt;/b&amp;gt; like in standard Lua.&lt;br /&gt;
==== [[Lua basics for other language programmers]] ====&lt;br /&gt;
A quick jump into NETIO Lua programming if you mastered another programming language. It's simple...&lt;br /&gt;
==== [[NETIO Lua Tips &amp;amp; Philosophy]] ====&lt;br /&gt;
Explanation of starting LUA scripts in NETIO devices and some tips how to hack NETIO to doing what you want.&lt;br /&gt;
&lt;br /&gt;
==== [[NETIO Specific Reference manual]] ====&lt;br /&gt;
If you can already code in Lua, NETIO-specific Lua functions is your main guide to programing NETIO Sockets.&lt;br /&gt;
&lt;br /&gt;
==== [[Examples &amp;amp; Aplication notes]] ====&lt;br /&gt;
Aplication notes for devices supporting LUA programming. Example configurations downloads and Script programming explanation with direct links to reference&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=Lua_basics_for_other_language_programmers&amp;diff=473</id>
		<title>Lua basics for other language programmers</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=Lua_basics_for_other_language_programmers&amp;diff=473"/>
		<updated>2019-07-11T18:39:04Z</updated>

		<summary type="html">&lt;p&gt;Admin: Admin moved page Lua basics &amp;amp; NETIO Lua from original Lua difference to Lua basics for other language programmers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Data types and variables ==&lt;br /&gt;
Lua supports these data types:&lt;br /&gt;
* &amp;lt;i&amp;gt;nil&amp;lt;/i&amp;gt; (to assign &amp;lt;i&amp;gt;nil&amp;lt;/i&amp;gt; value effectively deletes the variable)&lt;br /&gt;
* &amp;lt;i&amp;gt;boolean&amp;lt;/i&amp;gt; (falsy values are &amp;lt;i&amp;gt;nil&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;false&amp;lt;/i&amp;gt; only; &amp;quot;&amp;quot; and 0 evaluates as &amp;lt;i&amp;gt;true&amp;lt;/i&amp;gt;)&lt;br /&gt;
* &amp;lt;i&amp;gt;number&amp;lt;/i&amp;gt; (decimals only in standard Lua, integers only in Netio Lua)&lt;br /&gt;
* &amp;lt;i&amp;gt;string&amp;lt;/i&amp;gt; (same strings share same address, so equality operator measures both address and value)&lt;br /&gt;
* &amp;lt;i&amp;gt;tables&amp;lt;/i&amp;gt; are associative arrays. (Tables with numeric indices are, well, just arrays.)&lt;br /&gt;
&lt;br /&gt;
 local numbers = {2,3,7,5} -- array (first index = 1)&lt;br /&gt;
 local dictionary = {one=1, two=2, three=3} -- table&lt;br /&gt;
 local numbersZeroBased = {[0]=2,3,7,5} -- array (first index = 0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;local&amp;lt;/i&amp;gt; keyword limits the variable scope to the block (ended by &amp;lt;i&amp;gt;end&amp;lt;/i&amp;gt;) where it is declared. To access an &amp;lt;i&amp;gt;upvalue&amp;lt;/i&amp;gt; (variable defined outside of the scope), just omit the &amp;lt;i&amp;gt;local&amp;lt;/i&amp;gt; keyword.&lt;br /&gt;
&lt;br /&gt;
== Operators ==&lt;br /&gt;
Lua has its own manners:&lt;br /&gt;
* &amp;lt;code&amp;gt;~=&amp;lt;/code&amp;gt; is inequality operator&lt;br /&gt;
* &amp;lt;code&amp;gt;..&amp;lt;/code&amp;gt; is string concatenation (don't use plus)&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;s&amp;gt;i++&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt; no increment/decrement operator &amp;lt;code&amp;gt;i = i + 1&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;s&amp;gt;max = a&amp;lt;b ? b : a&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt; no ternary operator. Use (and get used to) &amp;lt;i&amp;gt;and idiom&amp;lt;/i&amp;gt; instead: &amp;lt;code&amp;gt;max = (a&amp;lt;b) and b or a&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;i&amp;gt;or idiom&amp;lt;/i&amp;gt; works: &amp;lt;code&amp;gt;x = x or 42&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;if not x then x = 42 end&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conditions ==&lt;br /&gt;
Lua conditions has casual syntax, see [https://www.lua.org/pil/4.3.1.html here]. Just keep in mind to merge &amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;elseif&amp;lt;/code&amp;gt; or multiple &amp;lt;code&amp;gt;end&amp;lt;/code&amp;gt;s are required.&lt;br /&gt;
&lt;br /&gt;
Note that falsy values are &amp;lt;i&amp;gt;nil&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;false&amp;lt;/i&amp;gt; only. Empty string and 0 evaluates as true. If you come from C, you might be surprised by following snippet:&lt;br /&gt;
&lt;br /&gt;
 if devices.system.output1_consumption then&lt;br /&gt;
   -- always happens, even if the consumption is 0&lt;br /&gt;
   log(&amp;quot;Outlet 1 supplies power&amp;quot;)&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
 if not devices.system.output1_consumption then&lt;br /&gt;
   -- never happens, even if the consumption is 0&lt;br /&gt;
   log(&amp;quot;Outlet 1 is idle&amp;quot;)&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
== Loops ==&lt;br /&gt;
Lua has &amp;lt;code&amp;gt;break&amp;lt;/code&amp;gt; statement, but no &amp;lt;code&amp;gt;continue&amp;lt;/code&amp;gt; (use condition inside loop instead). Additionally, Netio Lua implementation limits the loop iterations to 32k.&lt;br /&gt;
&lt;br /&gt;
=== While ===&lt;br /&gt;
While syntax is not different to other languages:&lt;br /&gt;
 local i = 0&lt;br /&gt;
 while i~=3 do&lt;br /&gt;
   i = i + 1&lt;br /&gt;
   logf(&amp;quot;%d&amp;quot;,i)&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
=== Repeat until ===&lt;br /&gt;
Repeat until syntax is the same as Pascal's, other languages have similar do-while loops:&lt;br /&gt;
 local i = 0&lt;br /&gt;
 repeat&lt;br /&gt;
   i = i + 1&lt;br /&gt;
   logf(&amp;quot;%d&amp;quot;,i)&lt;br /&gt;
 until i==3&lt;br /&gt;
&lt;br /&gt;
=== Numeric for ===&lt;br /&gt;
Arrays in Lua are one-based (in indices are not specified, the first one is 1, not 0).&lt;br /&gt;
 local arr = {2,3,7,5}&lt;br /&gt;
 for i=1,#arr do logf(&amp;quot;%d&amp;quot;,arr[i]) end&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;b&amp;gt;for&amp;lt;/b&amp;gt; initVar,limit,increment &amp;lt;b&amp;gt;do&amp;lt;/b&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;i&amp;gt;number assignment&amp;lt;/i&amp;gt; &amp;lt;code&amp;gt;initVar&amp;lt;/code&amp;gt; inits loop-local variable&lt;br /&gt;
* &amp;lt;i&amp;gt;number&amp;lt;/i&amp;gt; &amp;lt;code&amp;gt;limit&amp;lt;/code&amp;gt; loops until initVar reaches this value&lt;br /&gt;
* &amp;lt;i&amp;gt;optional number&amp;lt;/i&amp;gt; &amp;lt;code&amp;gt;increment&amp;lt;/code&amp;gt; after each loop initVar increment by this value (default 1)&lt;br /&gt;
&lt;br /&gt;
=== Generic for ===&lt;br /&gt;
Is rather sophisticated. Most common example (the order of elements in &amp;lt;code&amp;gt;pairs()&amp;lt;/code&amp;gt; is not guaranteed):&lt;br /&gt;
 local tab = {one=1, two=2, three=3}&lt;br /&gt;
 for key,val in pairs(tab) do logf(&amp;quot;%s:%d&amp;quot;,key,val) end&lt;br /&gt;
Generic for syntax&lt;br /&gt;
 &amp;lt;b&amp;gt;for&amp;lt;/b&amp;gt; var_1, ..., var_n &amp;lt;b&amp;gt;in&amp;lt;/b&amp;gt; explist &amp;lt;b&amp;gt;do&amp;lt;/b&amp;gt; block end&lt;br /&gt;
is equivalent to (Full explanation [https://www.lua.org/pil/7.2.html here].)&lt;br /&gt;
 do&lt;br /&gt;
   local _f, _s, _var = explist&lt;br /&gt;
   while true do&lt;br /&gt;
     local var_1, ... , var_n = _f(_s, _var)&lt;br /&gt;
     _var = var_1&lt;br /&gt;
     if _var == nil then break end&lt;br /&gt;
     block&lt;br /&gt;
   end&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
Iterator closure that holds its state&lt;br /&gt;
 function iter(a)&lt;br /&gt;
   local i = 0&lt;br /&gt;
   return function()&lt;br /&gt;
     i = i+1&lt;br /&gt;
     return a[i]&lt;br /&gt;
   end&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 local arr = {2,3,7,5}&lt;br /&gt;
 for value in iter(arr) do&lt;br /&gt;
   logf(&amp;quot;%d&amp;quot;,value)&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
Stateless iterator (in this case returns variable list: key and value)&lt;br /&gt;
 function iter(a,i)&lt;br /&gt;
   i = i+1&lt;br /&gt;
   if a[i] then return i,a[i] end&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 local arr = {2,3,7,5}&lt;br /&gt;
 for k,v in iter,arr,0 do&lt;br /&gt;
   logf(&amp;quot;%d:%d&amp;quot;,k,v)&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
Same effect using &amp;lt;code&amp;gt;ipairs()&amp;lt;/code&amp;gt; Lua function (without initial state)&lt;br /&gt;
 for k,v in ipairs(arr) do&lt;br /&gt;
   logf(&amp;quot;%d:%d&amp;quot;,k,v)&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
Now return to the most common example above using &amp;lt;code&amp;gt;pairs()&amp;lt;/code&amp;gt; Lua function and read about &amp;lt;code&amp;gt;pairs()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ipairs()&amp;lt;/code&amp;gt; implementation [https://www.lua.org/pil/7.3.html here].&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
&lt;br /&gt;
Lua allows multiple results (comma separated):&lt;br /&gt;
&lt;br /&gt;
 function diskSpace()&lt;br /&gt;
   return devices.system.freeSpace, devices.system.totalSpace&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 logf(&amp;quot;Free space: %d MB&amp;quot;, diskSpace()) -- only first return value is used&lt;br /&gt;
 local free,total = diskSpace() -- values are stored into LHS var-list&lt;br /&gt;
 logf(&amp;quot;Free space: %d %%&amp;quot;, 100*free/total)&lt;br /&gt;
&lt;br /&gt;
Variable-length arguments are also available:&lt;br /&gt;
&lt;br /&gt;
 function sum(...)&lt;br /&gt;
   local result = 0&lt;br /&gt;
   for _,v in ipairs(arg) do&lt;br /&gt;
     result = result + v&lt;br /&gt;
   end&lt;br /&gt;
   return result&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 logf(&amp;quot;Sum: %d&amp;quot;, sum(2,3,5))&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=Lua_basics_%26_NETIO_Lua_from_original_Lua_difference&amp;diff=474</id>
		<title>Lua basics &amp; NETIO Lua from original Lua difference</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=Lua_basics_%26_NETIO_Lua_from_original_Lua_difference&amp;diff=474"/>
		<updated>2019-07-11T18:39:04Z</updated>

		<summary type="html">&lt;p&gt;Admin: Admin moved page Lua basics &amp;amp; NETIO Lua from original Lua difference to Lua basics for other language programmers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Lua basics for other language programmers]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=Main_Page&amp;diff=420</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=Main_Page&amp;diff=420"/>
		<updated>2019-07-10T00:12:03Z</updated>

		<summary type="html">&lt;p&gt;Admin: Changed redirect target from Welcome to NETIO resources, projects and documentation overview to Welcome to NETIO resources &amp;amp; projects &amp;amp; documentation overview&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Welcome to NETIO resources &amp;amp; projects &amp;amp; documentation overview]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=Main_Page&amp;diff=419</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=Main_Page&amp;diff=419"/>
		<updated>2019-07-10T00:10:50Z</updated>

		<summary type="html">&lt;p&gt;Admin: Changed redirect target from NETIO to Welcome to NETIO resources, projects and documentation overview&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Welcome to NETIO resources, projects and documentation overview]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=Welcome_to_NETIO_resources_%26_projects_%26_documentation_overview&amp;diff=418</id>
		<title>Welcome to NETIO resources &amp; projects &amp; documentation overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=Welcome_to_NETIO_resources_%26_projects_%26_documentation_overview&amp;diff=418"/>
		<updated>2019-07-10T00:10:32Z</updated>

		<summary type="html">&lt;p&gt;Admin: Admin moved page NETIO to Welcome to NETIO resources &amp;amp; projects &amp;amp; documentation overview without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;text-align: center; white-space: nowrap;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: inline-block; padding: 0 2em 2em 2em; margin-bottom: 2em; width: 46%; min-width: 15em; border-right: 1px solid gray; text-align: justify; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;background: #005f41; color: #FFF; margin: 0 -1em; padding: 0 1em;&amp;quot;&amp;gt; NETIO Resources&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center; white-space: nowrap;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: inline-block; padding: 0 0 0 0; width: 50%; margin-bottom: 1em; margin-top: 1em; min-width: 10em; text-align: justify; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== M2M API Reference ===&lt;br /&gt;
[[MQTT Flex]]&lt;br /&gt;
&lt;br /&gt;
[[MQTT]]&lt;br /&gt;
&lt;br /&gt;
[[JSON API]]&lt;br /&gt;
&lt;br /&gt;
[[XML API]]&lt;br /&gt;
&lt;br /&gt;
[[URL API]]&lt;br /&gt;
&lt;br /&gt;
[[SNMP]]&lt;br /&gt;
&lt;br /&gt;
[[Telnet/Kshell]]&lt;br /&gt;
&lt;br /&gt;
[[Modbus TCP]]&lt;br /&gt;
&lt;br /&gt;
=== Integrations ===&lt;br /&gt;
[https://www.home-assistant.io/components/netio/ Home Assistant]&lt;br /&gt;
&lt;br /&gt;
[[IBM Cloud]] -  MQTT Flex&lt;br /&gt;
&lt;br /&gt;
[[Azure IoT Hub]] - MQTT&lt;br /&gt;
&lt;br /&gt;
[[HiveMQ]] -  MQTT Flex&lt;br /&gt;
&lt;br /&gt;
[[NodeRED]] - JSON API&lt;br /&gt;
&lt;br /&gt;
[https://www.jam-software.com/serversentinel/online_manual/EN/index.html?actions_netio230bnetworkpowersocket.html Jam-software - ServerSentinel]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: inline-block; padding: 0 0 2em 2em; margin-bottom: 1em; margin-top: 1em; border-left: 1px solid gray; width: 50%; min-width: 10em; text-align: justify; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Public projects &amp;amp; examples ===&lt;br /&gt;
==== Official ====&lt;br /&gt;
[https://github.com/netioproducts GitHub - official]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Koukaam/netio-utils/tree/master/actions GitHub - obsolete (Koukaam)]&lt;br /&gt;
&lt;br /&gt;
==== Community ====&lt;br /&gt;
[https://github.com/stdevel/check_netio Nagios plugin]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/elmicro/fhem_netio_4x_pm FHEM module by Elmicro]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/imolein/lua-netio LUA control Library]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/rynr/netio Java Control Library]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/st3veV/Netio-OpenHAB OpenHAB using MQTT]&lt;br /&gt;
&lt;br /&gt;
[https://jirikuba.github.io/NETIO.SpinaniHDO/ NETIO controlled by HDO]&lt;br /&gt;
&lt;br /&gt;
[https://groups.google.com/forum/#!topic/openhab/O6psocjU70s Read consumption in OpenHAB - HTTP]&lt;br /&gt;
&lt;br /&gt;
[https://www.instructables.com/id/How-to-Work-With-JSON-in-Node-RED/ Controll NETIO 4All from NodeRED]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: inline-block; padding: 0 2em; border-left: 1px solid gray; width: 46%; min-width: 15em; text-align: justify; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;background: #005f41; color: #FFF; margin: 0 -1em; padding: 0 1em;&amp;quot;&amp;gt; NETIO Lua Programming &amp;lt;/h2&amp;gt;&lt;br /&gt;
NETIO uses Lua as its scripting language. To master it, follow these references:&lt;br /&gt;
&lt;br /&gt;
=== [https://www.lua.org/pil/contents.html Lua tutorial] ===&lt;br /&gt;
If you are new to Lua and programming as such and if you are eager to learn, this is your starting point. Before you proceed to NETIO Sockets, this [https://www.lua.org/demo.html online environment] will be a good place to test your first scripts.&lt;br /&gt;
&lt;br /&gt;
=== [https://www.lua.org/manual/5.3/ Lua manual] ===&lt;br /&gt;
Although you won't need everything mentioned here, it is worth to peek here from time to time to grasp the concepts of effective Lua programming.&lt;br /&gt;
&lt;br /&gt;
=== [[NETIO Lua Manual]] ===&lt;br /&gt;
A quick jump into NETIO Lua programming if you mastered another programming language. If you already know Lua, just keep in mind that NETIO Lua loops are limited to 32k cycles and all numbers are integers, not decimals like in standard Lua.&lt;br /&gt;
&lt;br /&gt;
=== [[NETIO Lua Reference]] ===&lt;br /&gt;
If you can already code in Lua, NETIO-specific Lua functions is your main guide to programm NETIO Sockets.&lt;br /&gt;
&lt;br /&gt;
=== [[LUA Aplication notes]] ===&lt;br /&gt;
Aplication notes for devices supporting LUA programming. Example configurations downloads and Script programming explanation with direct links to reference&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=Main_Page&amp;diff=417</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=Main_Page&amp;diff=417"/>
		<updated>2019-07-10T00:09:30Z</updated>

		<summary type="html">&lt;p&gt;Admin: Changed redirect target from Welcome to NETIO resources, projects and documentation overview to NETIO&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[NETIO]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=Welcome_to_NETIO_resources_%26_projects_%26_documentation_overview&amp;diff=368</id>
		<title>Welcome to NETIO resources &amp; projects &amp; documentation overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=Welcome_to_NETIO_resources_%26_projects_%26_documentation_overview&amp;diff=368"/>
		<updated>2017-06-26T12:33:22Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;text-align: center; white-space: nowrap;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: inline-block; padding: 0 2em; margin-bottom: 2em; width: 40%; min-width: 15em; text-align: justify; vertical-align: top; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-bottom: 0.5em; margin-top: 50px; height: 50px;&amp;quot;&amp;gt;[[File:Netio-mainlogo.png|200px]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;background: #005f41; color: #FFF; margin: 0 -1em; padding: 0 1em;&amp;quot;&amp;gt; Introducing NETIO &amp;lt;/h2&amp;gt;&lt;br /&gt;
NETIO sockets can operate just like any socket, but it can be connected as a network node and communicate in many protocols with various devices.&lt;br /&gt;
&lt;br /&gt;
=== NETIO Features ===&lt;br /&gt;
Coming soon.&lt;br /&gt;
&lt;br /&gt;
=== Connect NETIO to your network ===&lt;br /&gt;
Coming soon.&lt;br /&gt;
&lt;br /&gt;
=== NETIO web interface ===&lt;br /&gt;
Coming soon.&lt;br /&gt;
&lt;br /&gt;
=== A simple NETIO application ===&lt;br /&gt;
Coming soon.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;display: inline-block; padding: 0 2em; border-left: 1px solid gray; width: 40%; min-width: 15em; text-align: justify; white-space: normal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-bottom: 0.5em; height: 100px&amp;quot;&amp;gt;[[File:Netio-lua.png]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;background: #005f41; color: #FFF; margin: 0 -1em; padding: 0 1em;&amp;quot;&amp;gt; NETIO Programming &amp;lt;/h2&amp;gt;&lt;br /&gt;
NETIO uses Lua as its scripting language. To master it, follow these references:&lt;br /&gt;
&lt;br /&gt;
=== [https://www.lua.org/pil/contents.html Lua tutorial] ===&lt;br /&gt;
If you are new to Lua and programming as such and if you are eager to learn, this is your starting point. Before you proceed to NETIO Sockets, this [https://www.lua.org/demo.html online environment] will be a good place to test your first scripts.&lt;br /&gt;
&lt;br /&gt;
=== [[NETIO Lua Manual]] ===&lt;br /&gt;
A quick jump into NETIO Lua programming if you mastered another programming language. If you already know Lua, just keep in mind that NETIO Lua loops are limited to 32k cycles and all numbers are integers, not decimals like in standard Lua.&lt;br /&gt;
&lt;br /&gt;
=== [[NETIO Lua Reference]] ===&lt;br /&gt;
If you can already code in Lua, NETIO-specific Lua functions is your main guide to programm NETIO Sockets.&lt;br /&gt;
&lt;br /&gt;
=== [https://www.lua.org/manual/5.3/ Lua manual] ===&lt;br /&gt;
Although you won't need everything mentioned here, it is worth to peek here from time to time to grasp the concepts of effective Lua programming.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=Welcome_to_NETIO_resources_%26_projects_%26_documentation_overview&amp;diff=352</id>
		<title>Welcome to NETIO resources &amp; projects &amp; documentation overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=Welcome_to_NETIO_resources_%26_projects_%26_documentation_overview&amp;diff=352"/>
		<updated>2017-05-05T21:02:30Z</updated>

		<summary type="html">&lt;p&gt;Admin: __NOTITLE__ extension test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTITLE__&lt;br /&gt;
&amp;lt;center&amp;gt;[[Soubor:Netio-logo.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;inline-block; float: left; padding: 0 2em; width: 40%; min-width: 15em; text-align: justify;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;background: #005f41; color: #FFF; margin: 0 -1em; padding: 0 1em;&amp;quot;&amp;gt; Introducing NETIO &amp;lt;/h2&amp;gt;&lt;br /&gt;
NETIO sockets can operate just like any socket, but it can be connected as a network node and communicate in many protocols with various devices.&lt;br /&gt;
&lt;br /&gt;
=== NETIO Features ===&lt;br /&gt;
Coming soon.&lt;br /&gt;
&lt;br /&gt;
=== Connect NETIO to your network ===&lt;br /&gt;
Coming soon.&lt;br /&gt;
&lt;br /&gt;
=== NETIO web interface ===&lt;br /&gt;
Coming soon.&lt;br /&gt;
&lt;br /&gt;
=== A simple NETIO application ===&lt;br /&gt;
Coming soon.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;inline-block; float: left; padding: 0 2em; border-left: 1px solid gray; width: 40%; min-width: 15em; text-align: justify;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;background: #005f41; color: #FFF; margin: 0 -1em; padding: 0 1em;&amp;quot;&amp;gt; NETIO Programming &amp;lt;/h2&amp;gt;&lt;br /&gt;
NETIO uses Lua as its scripting language. To master it, follow these references:&lt;br /&gt;
&lt;br /&gt;
=== [https://www.lua.org/pil/contents.html Lua tutorial] ===&lt;br /&gt;
If you are new to Lua and programming as such and if you are eager to learn, this is your starting point. Before you proceed to NETIO Sockets, this [https://www.lua.org/demo.html online environment] will be a good place to test your first scripts.&lt;br /&gt;
&lt;br /&gt;
=== [[NETIO Lua Manual]] ===&lt;br /&gt;
A quick jump into NETIO Lua programming if you mastered another programming language. If you already know Lua, just keep in mind that NETIO Lua loops are limited to 32k cycles and all numbers are integers, not decimals like in standard Lua.&lt;br /&gt;
&lt;br /&gt;
=== [[NETIO Lua Reference]] ===&lt;br /&gt;
If you can already code in Lua, NETIO-specific Lua functions is your main guide to programm NETIO Sockets.&lt;br /&gt;
&lt;br /&gt;
=== [https://www.lua.org/manual/5.3/ Lua manual] ===&lt;br /&gt;
Although you won't need everything mentioned here, it is worth to peek here from time to time to grasp the concepts of effective Lua programming.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=Testovac%C3%AD_str%C3%A1nka&amp;diff=6</id>
		<title>Testovací stránka</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=Testovac%C3%AD_str%C3%A1nka&amp;diff=6"/>
		<updated>2016-08-31T16:00:44Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Toto je testovací stránka ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function foo (a)&lt;br /&gt;
       print(&amp;quot;foo&amp;quot;, a)&lt;br /&gt;
       return coroutine.yield(2*a)&lt;br /&gt;
     end&lt;br /&gt;
     &lt;br /&gt;
     co = coroutine.create(function (a,b)&lt;br /&gt;
           print(&amp;quot;co-body&amp;quot;, a, b)&lt;br /&gt;
           local r = foo(a+1)&lt;br /&gt;
           print(&amp;quot;co-body&amp;quot;, r)&lt;br /&gt;
           local r, s = coroutine.yield(a+b, a-b)&lt;br /&gt;
           print(&amp;quot;co-body&amp;quot;, r, s)&lt;br /&gt;
           return b, &amp;quot;end&amp;quot;&lt;br /&gt;
     end)&lt;br /&gt;
     &lt;br /&gt;
     print(&amp;quot;main&amp;quot;, coroutine.resume(co, 1, 10))&lt;br /&gt;
     print(&amp;quot;main&amp;quot;, coroutine.resume(co, &amp;quot;r&amp;quot;))&lt;br /&gt;
     print(&amp;quot;main&amp;quot;, coroutine.resume(co, &amp;quot;x&amp;quot;, &amp;quot;y&amp;quot;))&lt;br /&gt;
     print(&amp;quot;main&amp;quot;, coroutine.resume(co, &amp;quot;x&amp;quot;, &amp;quot;y&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=Testovac%C3%AD_str%C3%A1nka&amp;diff=5</id>
		<title>Testovací stránka</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=Testovac%C3%AD_str%C3%A1nka&amp;diff=5"/>
		<updated>2016-08-31T15:55:14Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Toto je testovací stránka ====&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
function foo (a)&lt;br /&gt;
       print(&amp;quot;foo&amp;quot;, a)&lt;br /&gt;
       return coroutine.yield(2*a)&lt;br /&gt;
     end&lt;br /&gt;
     &lt;br /&gt;
     co = coroutine.create(function (a,b)&lt;br /&gt;
           print(&amp;quot;co-body&amp;quot;, a, b)&lt;br /&gt;
           local r = foo(a+1)&lt;br /&gt;
           print(&amp;quot;co-body&amp;quot;, r)&lt;br /&gt;
           local r, s = coroutine.yield(a+b, a-b)&lt;br /&gt;
           print(&amp;quot;co-body&amp;quot;, r, s)&lt;br /&gt;
           return b, &amp;quot;end&amp;quot;&lt;br /&gt;
     end)&lt;br /&gt;
     &lt;br /&gt;
     print(&amp;quot;main&amp;quot;, coroutine.resume(co, 1, 10))&lt;br /&gt;
     print(&amp;quot;main&amp;quot;, coroutine.resume(co, &amp;quot;r&amp;quot;))&lt;br /&gt;
     print(&amp;quot;main&amp;quot;, coroutine.resume(co, &amp;quot;x&amp;quot;, &amp;quot;y&amp;quot;))&lt;br /&gt;
     print(&amp;quot;main&amp;quot;, coroutine.resume(co, &amp;quot;x&amp;quot;, &amp;quot;y&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=Testovac%C3%AD_str%C3%A1nka&amp;diff=4</id>
		<title>Testovací stránka</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=Testovac%C3%AD_str%C3%A1nka&amp;diff=4"/>
		<updated>2016-08-30T17:42:07Z</updated>

		<summary type="html">&lt;p&gt;Admin: Založena nová stránka s textem „==== Toto je testovací stránka ====“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Toto je testovací stránka ====&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=NETIO_Reference&amp;diff=3</id>
		<title>NETIO Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=NETIO_Reference&amp;diff=3"/>
		<updated>2016-08-30T17:41:33Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''MediaWiki byla úspěšně nainstalována.'''&lt;br /&gt;
&lt;br /&gt;
[//meta.wikimedia.org/wiki/Help:Contents Uživatelská příručka] vám napoví, jak MediaWiki používat.&lt;br /&gt;
[[Testovací stránka]]&lt;br /&gt;
&lt;br /&gt;
== Začínáme ==&lt;br /&gt;
&lt;br /&gt;
* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Nastavení konfigurace]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Často kladené otázky o MediaWiki]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-mailová konference oznámení MediaWiki]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Překlad MediaWiki do vašeho jazyka]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=NETIO_Reference&amp;diff=2</id>
		<title>NETIO Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=NETIO_Reference&amp;diff=2"/>
		<updated>2016-08-30T17:40:29Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''MediaWiki byla úspěšně nainstalována.'''&lt;br /&gt;
&lt;br /&gt;
[//meta.wikimedia.org/wiki/Help:Contents Uživatelská příručka] vám napoví, jak MediaWiki používat.&lt;br /&gt;
[Testovací stránka]&lt;br /&gt;
&lt;br /&gt;
== Začínáme ==&lt;br /&gt;
&lt;br /&gt;
* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Nastavení konfigurace]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Často kladené otázky o MediaWiki]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-mailová konference oznámení MediaWiki]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Překlad MediaWiki do vašeho jazyka]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
</feed>