<?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=Vkristof</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=Vkristof"/>
	<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=Special:Contributions/Vkristof"/>
	<updated>2026-04-29T06:15:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=MQTT-flex&amp;diff=635</id>
		<title>MQTT-flex</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=MQTT-flex&amp;diff=635"/>
		<updated>2020-02-24T10:24:29Z</updated>

		<summary type="html">&lt;p&gt;Vkristof: /* Simple MQTT-flex configuration + explanation */ - note about debugging of config on your local device to prevent remote device hang/freeze/brick&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The MQTT-flex version of the MQTT protocol can be configured in detail thanks to the “flex” extension.&lt;br /&gt;
&lt;br /&gt;
https://www.netio-products.com/en/glossary/mqtt-flex &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Why MQTT-flex&amp;lt;/b&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
There is a lot of approaches in integration of MQTT in devices and systems. One vendor prefer one topic with structured data payload, the another one prefer tree topic structure with simple value in data payload. MQTT-flex is a standard [https://en.wikipedia.org/wiki/MQTT MQTT] with specific configuration approach. The goal of MQTT-flex is to give a user opportunity to integrate NETIO device with any system with different data approach.&lt;br /&gt;
&lt;br /&gt;
Configuration of MQTT in devices supporting &amp;lt;i&amp;gt;MQTT flex&amp;lt;/i&amp;gt; is done by [https://en.wikipedia.org/wiki/JSON JSON (JavaScript Object Notation)]. With MQTT-flex you can easily define the MQTT topics, payloads and device behaviour via text configuration in JSON object format. Since there is then lot of possibilities with such freestyle flexibility allowed, you can find bellow full set of all implemented attributes.&lt;br /&gt;
&lt;br /&gt;
===Supported devices:===&lt;br /&gt;
* [https://www.netio-products.com/en/device/powercable-mqtt-101x PowerCable MQTT 101x] &amp;lt;br&amp;gt;&lt;br /&gt;
* PowerCable OEM (DevKit) &amp;lt;br&amp;gt;&lt;br /&gt;
* PowerPDU 4PS &amp;lt;br&amp;gt;&lt;br /&gt;
* PowerDIN 4PZ &amp;lt;br&amp;gt;&lt;br /&gt;
* PowerBOX 3Px &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;FW version:&amp;lt;/b&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;gt;2.2.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Simple MQTT-flex configuration + explanation =&lt;br /&gt;
&lt;br /&gt;
''We strongly recommend to create and test MQTT-flex configuration on &amp;quot;local&amp;quot; device what can be easily restarted. The validation of config before saving is not 100% and for example some specific typos can cause a freeze of a device - the solution is to restart a device (unplug/plug input power cable). If the configuration is saved and device is working then there are no known failure case so it is safe to use this configuration on the &amp;quot;remote&amp;quot; devices.''&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
      &amp;quot;config&amp;quot;:{&lt;br /&gt;
         &amp;quot;broker&amp;quot;:{&lt;br /&gt;
             &amp;quot;url&amp;quot;:&amp;quot;broker.hivemq.com&amp;quot;,&lt;br /&gt;
             &amp;quot;protocol&amp;quot;:&amp;quot;mqtt&amp;quot;,&lt;br /&gt;
             &amp;quot;port&amp;quot;:1883,&lt;br /&gt;
             &amp;quot;ssl&amp;quot;:false,&lt;br /&gt;
             &amp;quot;type&amp;quot;:&amp;quot;generic&amp;quot;,&lt;br /&gt;
             &amp;quot;username&amp;quot;:&amp;quot;freedom&amp;quot;,&lt;br /&gt;
             &amp;quot;password&amp;quot;:&amp;quot;peace|LOVE|empathy4ALL&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         &amp;quot;subscribe&amp;quot;:[{&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/action&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;target&amp;quot;:&amp;quot;OUTPUTS/1/ACTION&amp;quot;,&lt;br /&gt;
                &amp;quot;action&amp;quot;:&amp;quot;${payload}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;publish&amp;quot;:[{&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/state&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;retain&amp;quot;:true,&lt;br /&gt;
                &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/STATE}&amp;quot;,&lt;br /&gt;
                &amp;quot;events&amp;quot;:[&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;timer&amp;quot;,&lt;br /&gt;
                        &amp;quot;period&amp;quot;:&amp;quot;1000&amp;quot;&lt;br /&gt;
                    }&lt;br /&gt;
                ]&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
=== Client Configuration (broker section) ===&lt;br /&gt;
Put here MQTT client connection setup&lt;br /&gt;
&lt;br /&gt;
This configuration example set NETIO device to connect to &amp;lt;b&amp;gt;broker.hivemq.com&amp;lt;/b&amp;gt; with &amp;lt;b&amp;gt;mqtt&amp;lt;/b&amp;gt; protocol, &amp;lt;b&amp;gt;no ssl&amp;lt;/b&amp;gt; connection with credetials &amp;lt;b&amp;gt;freedom/peace|love|empathy4ALL&amp;lt;/b&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
         &amp;quot;broker&amp;quot;:{&lt;br /&gt;
             &amp;quot;url&amp;quot;:&amp;quot;broker.hivemq.com&amp;quot;,&lt;br /&gt;
             &amp;quot;protocol&amp;quot;:&amp;quot;mqtt&amp;quot;,&lt;br /&gt;
             &amp;quot;port&amp;quot;:1883,&lt;br /&gt;
             &amp;quot;ssl&amp;quot;:false,&lt;br /&gt;
             &amp;quot;type&amp;quot;:&amp;quot;generic&amp;quot;,&lt;br /&gt;
             &amp;quot;username&amp;quot;:&amp;quot;freedom&amp;quot;,&lt;br /&gt;
             &amp;quot;password&amp;quot;:&amp;quot;peace|LOVE|empathy4ALL&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
&lt;br /&gt;
=== Device Control (subscribe section) ===&lt;br /&gt;
Put here array of topics where to subscribe&lt;br /&gt;
&lt;br /&gt;
Device &amp;lt;b&amp;gt;output 1&amp;lt;/b&amp;gt; is controlled with &amp;lt;b&amp;gt;action&amp;lt;/b&amp;gt; received by subscription to &amp;lt;b&amp;gt;netio/${DEVICE_NAME}/output/1/action&amp;lt;/b&amp;gt; topic with &amp;lt;b&amp;gt;QOS 0&amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
         &amp;quot;subscribe&amp;quot;:[{&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/action&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;target&amp;quot;:&amp;quot;OUTPUTS/1/ACTION&amp;quot;,&lt;br /&gt;
                &amp;quot;action&amp;quot;:&amp;quot;${payload}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ],&lt;br /&gt;
&lt;br /&gt;
=== Output State monitoring (publish section) ===&lt;br /&gt;
Put here array of topics where to publish.&lt;br /&gt;
&lt;br /&gt;
Device send every &amp;lt;b&amp;gt;1000 ms&amp;lt;/b&amp;gt; message to topic &amp;lt;b&amp;gt;&amp;lt;/b&amp;gt; with &amp;lt;b&amp;gt;QOS 0&amp;lt;/b&amp;gt;, &amp;lt;b&amp;gt;retain true&amp;lt;/b&amp;gt; information with &amp;lt;b&amp;gt;output 1 state&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;publish&amp;quot;:[{&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/state&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;retain&amp;quot;:true,&lt;br /&gt;
                &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/STATE}&amp;quot;,&lt;br /&gt;
                &amp;quot;events&amp;quot;:[&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;timer&amp;quot;,&lt;br /&gt;
                        &amp;quot;period&amp;quot;:&amp;quot;1000&amp;quot;&lt;br /&gt;
                    }&lt;br /&gt;
                ]&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
&lt;br /&gt;
= Config sections =&lt;br /&gt;
&lt;br /&gt;
== Broker ==&lt;br /&gt;
here you have to define URL or IP address of machine hosting MQTT broker, level of security used for protocol, auth data and optionally some specific MQTT attributes, which are in the spec, but not mandatory required&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Attributes table overview ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Item&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Presence&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Possible Values&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Description&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | JSON Config Usage&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | url&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT broker URL&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;url&amp;quot;:&amp;quot;broker.hivemq.com&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | port&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | 1 - 65535&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT broker port&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;port&amp;quot;:1883&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | ssl&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | true, false&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | Use SSL crypted communication selector&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;ssl&amp;quot;:false&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | type&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | generic&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | Communication/setup type option&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;type&amp;quot;:&amp;quot;generic&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | username&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | regexp+len&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | Credentials for MQTT broker&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;username&amp;quot;:&amp;quot;freedom&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | password&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | regexp+len&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | Credentials for MQTT broker&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;password&amp;quot;:&amp;quot;peace|LOVE|empathy4ALL&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | clientid&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | optional&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | regexp+len&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT clientid. Max. 32 characters. Variables ${DEVICE_MAC} or ${DEVICE_NAME} can be used&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;clientid&amp;quot;:&amp;quot;myEcoTable01&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | keepalive&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | optional&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | 1 - 65535&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT keep alive period in seconds&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;keepalive&amp;quot;:90&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
==== Standard setup ====&lt;br /&gt;
==== SSL secured setup ====&lt;br /&gt;
==== Variables used setup ====&lt;br /&gt;
&lt;br /&gt;
== Subscribe ==&lt;br /&gt;
=== Hints to usage ===&lt;br /&gt;
When receive message in &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;topic&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt; do &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;action&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt; on &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;target&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;i&amp;gt;actiondef&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;: When message in &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;topic&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt; match &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;actiondef payload&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt; do &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;action&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt; on &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;target&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Attributes table overview ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Item&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Presence&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Possible Values&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Description&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | JSON Config Usage&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | topic&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | see table below&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | specification of the topic, which MQTT-flex device listens from broker and act accordingly&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/action&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | qos&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | 0, 1 or 2&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT's Quality of Sevice - definition {here|http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/errata01/os/mqtt-v3.1.1-errata01-os-complete.html#_Toc442180912}&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;qos&amp;quot;:0&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | target&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | internal definition of action, which can be performed above the specified output&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;target&amp;quot;:&amp;quot;OUTPUTS/1/ACTION&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | action&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | a payload or a value the action attribute needs to have passed to&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;action&amp;quot;:&amp;quot;${payload}&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | actiondef&amp;lt;sup&amp;gt;Not supported yet&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | optional&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | json&amp;lt;sup&amp;gt;Not supported yet&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | optional&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
==== Toggle output with standard payload ==== &lt;br /&gt;
==== Toggle output with custom payload ==== &lt;br /&gt;
==== Subscribe to more than one topic ====&lt;br /&gt;
&lt;br /&gt;
Subscribe topic payload values specification for control of the output:&lt;br /&gt;
&lt;br /&gt;
netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/&amp;lt;b&amp;gt;action&amp;lt;/b&amp;gt; with payload for output control : (0 – off, 1 – on, 2 – short off, 3 – short on, 4 – toggle, 5 – no change)&lt;br /&gt;
&lt;br /&gt;
== Publish ==&lt;br /&gt;
&lt;br /&gt;
when you need to send some data from device towards the broker, you have to specify it in the publish section - you can send measurement data as they are implemented, or you can use translation tables to send some pre-defined strings or even send JSON object. these attributes can be send periodicaly every time the timer reached specified value in seconds or based on value change (something like delta principle, but using only value differrence within defined period)&lt;br /&gt;
&lt;br /&gt;
=== Hints to usage ===&lt;br /&gt;
When &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;event&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt; send message with &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;payload&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt; to &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;topic&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Attributes table overview ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Item&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Presence&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Possible Values&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Description&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | JSON Config Usage&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | topic&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | see table below&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | definition of the topic, how it is registered towards MQTT broker&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/load&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | qos&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | see table below&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT's Quality of Sevice - definition {here|http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/errata01/os/mqtt-v3.1.1-errata01-os-complete.html#_Toc442180912}&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | retain&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | boolean: true or false&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT's attribute to specify to broker how to store last received information - section 3.3.1.3 of {MQTT doc|http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/errata01/os/mqtt-v3.1.1-errata01-os-complete.html#_Toc442180841}&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;retain&amp;quot;:true&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | payload&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | see table below&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | definition of the topic, how it is registered towards MQTT broker&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/load&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | events&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | see table below&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | definition of events used for triggering sending of data via mqtt (change, delta, timer)&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | type&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | source&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | delta&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | period&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | payloaddef&amp;lt;sup&amp;gt;Not supported yet&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
==== Publish energy periodically (event timer) ==== &lt;br /&gt;
==== Publish current on change (delta) ==== &lt;br /&gt;
==== Publish output state ====&lt;br /&gt;
==== Publish to more than one topic with different events ====&lt;br /&gt;
&lt;br /&gt;
= Target / Source =&lt;br /&gt;
In MQTT-flex we use targets and sources specify where to apply some change or get value. Practically it means addressing of INPUTS/OUTPUTS and adding command or variable.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;source&amp;lt;/b&amp;gt; - specifies from where the value will be read (specifies the source of data for payload, change detection, delta calculation)&lt;br /&gt;
* &amp;lt;b&amp;gt;target&amp;lt;/b&amp;gt; - specifies where the data should be sent or command applied (e.g. specifies the target for ACTION)&lt;br /&gt;
&lt;br /&gt;
=== INPUT / OUTPUT (Target) selection ===&lt;br /&gt;
&lt;br /&gt;
NETIO Devices can have inputs and outputs which can be different type. When you want to work with some variable you have to specify on which I/O. For doing that in MQTT-flex is implemented structured addressing with &amp;lt;b&amp;gt;&amp;quot;/&amp;quot;&amp;lt;/b&amp;gt; separator. See the steps below how to compose source or target.&lt;br /&gt;
&lt;br /&gt;
# At first specify if requested variable is from/for INPUT or OUTPUT using keywords &amp;lt;b&amp;gt;&amp;quot;OUTPUTS&amp;quot;&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;&amp;quot;INPUTS&amp;quot;&amp;lt;/b&amp;gt; .&lt;br /&gt;
# Add &amp;lt;b&amp;gt;&amp;quot;/&amp;quot;&amp;lt;/b&amp;gt; separator&lt;br /&gt;
# Specify the number of INPUT/OUTPUT to &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;(or TOTAL for summary statistics if available)&lt;br /&gt;
# Add &amp;lt;b&amp;gt;&amp;quot;/&amp;quot;&amp;lt;/b&amp;gt; separator&lt;br /&gt;
# Specify requested variable or command&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Not all of OUTPUTS/INPUTS support all variables. Available variables are closely connected with the device functions and I/O features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note2:&amp;lt;/b&amp;gt; INPUTS not yet implemented&lt;br /&gt;
&lt;br /&gt;
=== Examples: ===&lt;br /&gt;
&lt;br /&gt;
adressing controll of output 3&lt;br /&gt;
 OUTPUTS/3/ACTION&lt;br /&gt;
getting voltage on output 1&lt;br /&gt;
 OUTPUTS/1/VOLTAGE&lt;br /&gt;
&lt;br /&gt;
= Commands =&lt;br /&gt;
 &lt;br /&gt;
= Variables =&lt;br /&gt;
In some parameters is nescessary to use variables to get current state and measurements. &amp;lt;b&amp;gt;Variables are separated in  two categories:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Target/Source variables&lt;br /&gt;
* Payload Topic variables&lt;br /&gt;
&lt;br /&gt;
== Target Source Variables ==&lt;br /&gt;
&lt;br /&gt;
The list of available variables for each &lt;br /&gt;
&lt;br /&gt;
=== OUTPUTS variables ===&lt;br /&gt;
==== VOLTAGE ====&lt;br /&gt;
Unit: &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Type: integer &lt;br /&gt;
&lt;br /&gt;
Allowed in: &amp;lt;code&amp;gt;&amp;quot;payload&amp;quot;&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;&amp;quot;source&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 1: &amp;lt;code&amp;gt;&amp;quot;payload&amp;quot;:&amp;quot;Present RMS voltage on output 1 is ${OUTPUTS/1/VOLTAGE}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2: &amp;lt;code&amp;gt;&amp;quot;source&amp;quot;:&amp;quot;${OUTPUTS/1/VOLTAGE}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== CURRENT ====&lt;br /&gt;
Unit: &amp;lt;code&amp;gt;mA&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Type: integer &lt;br /&gt;
&lt;br /&gt;
Allowed in: &amp;lt;code&amp;gt;&amp;quot;payload&amp;quot;&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;&amp;quot;source&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 1: &amp;lt;code&amp;gt;&amp;quot;payload&amp;quot;:&amp;quot;Present RMS current on output 1 is ${OUTPUTS/1/CURRENT}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2: &amp;lt;code&amp;gt;&amp;quot;source&amp;quot;:&amp;quot;${OUTPUTS/1/CURRENT}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== POWER_FACTOR ====&lt;br /&gt;
Unit: &amp;lt;code&amp;gt;[-]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Type: float (2 decimals)&lt;br /&gt;
&lt;br /&gt;
Allowed in: &amp;lt;code&amp;gt;&amp;quot;payload&amp;quot;&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;&amp;quot;source&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 1: &amp;lt;code&amp;gt;&amp;quot;payload&amp;quot;:&amp;quot;True Power Factor on output 1 is ${OUTPUTS/1/POWER_FACTOR}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2: &amp;lt;code&amp;gt;&amp;quot;source&amp;quot;:&amp;quot;${OUTPUTS/1/POWER_FACTOR}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== LOAD ====&lt;br /&gt;
Unit: &amp;lt;code&amp;gt;W&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Type: integer &lt;br /&gt;
&lt;br /&gt;
Allowed in: &amp;lt;code&amp;gt;&amp;quot;payload&amp;quot;&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;&amp;quot;source&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 1: &amp;lt;code&amp;gt;&amp;quot;payload&amp;quot;:&amp;quot;Present load on output 1 is ${OUTPUTS/1/ENERGY}Wh&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2: &amp;lt;code&amp;gt;&amp;quot;payload&amp;quot;:&amp;quot;Device's power connected to output 1 is ${OUTPUTS/1/ENERGY}Wh&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 3: &amp;lt;code&amp;gt;&amp;quot;source&amp;quot;:&amp;quot;${OUTPUTS/1/ENERGY}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== STATE ====&lt;br /&gt;
Type: bool(integer) - &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Allowed in: &amp;lt;code&amp;gt;&amp;quot;payload&amp;quot;&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;&amp;quot;source&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 1: &amp;lt;code&amp;gt;&amp;quot;payload&amp;quot;:&amp;quot;Present output 1 state is ${OUTPUTS/1/STATE}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2: &amp;lt;code&amp;gt;&amp;quot;source&amp;quot;:&amp;quot;${OUTPUTS/1/STATE}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ACTION ====&lt;br /&gt;
Type: integer&lt;br /&gt;
&lt;br /&gt;
Possible actions:&lt;br /&gt;
* &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; - set state OFF&lt;br /&gt;
* &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; - set state ON&lt;br /&gt;
* &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; - short OFF (restart)&lt;br /&gt;
* &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; - short ON&lt;br /&gt;
* &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt; - toggle (switch)&lt;br /&gt;
* &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt; - no change&lt;br /&gt;
&lt;br /&gt;
Allowed in: &amp;lt;code&amp;gt;&amp;quot;target&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;&amp;quot;target&amp;quot;:&amp;quot;OUTPUTS/1/ACTION&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DELAY [ms] ====&lt;br /&gt;
==== NAME ====&lt;br /&gt;
==== FREQUENCY ====&lt;br /&gt;
Unit: &amp;lt;code&amp;gt;Hz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Type: integer &lt;br /&gt;
&lt;br /&gt;
Allowed in: &amp;lt;code&amp;gt;&amp;quot;payload&amp;quot;&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;&amp;quot;source&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;&amp;quot;payload&amp;quot;:&amp;quot;Frequency in power grid is ${OUTPUTS/1/ENERGY}Hz&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ENERGY ====&lt;br /&gt;
Unit: &amp;lt;code&amp;gt;Wh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Type: integer &lt;br /&gt;
&lt;br /&gt;
Allowed in: &amp;lt;code&amp;gt;&amp;quot;payload&amp;quot;&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;&amp;quot;source&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 1: &amp;lt;code&amp;gt;&amp;quot;payload&amp;quot;:&amp;quot;Consumed energy on output 1 is ${OUTPUTS/1/ENERGY}Wh&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2: &amp;lt;code&amp;gt;&amp;quot;source&amp;quot;:&amp;quot;${OUTPUTS/1/ENERGY}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ENERGY_START ====&lt;br /&gt;
Unit: &amp;lt;code&amp;gt;unix timestamp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Type: integer &lt;br /&gt;
&lt;br /&gt;
Allowed in: &amp;lt;code&amp;gt;&amp;quot;payload&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 1: &amp;lt;code&amp;gt;&amp;quot;payload&amp;quot;:&amp;quot;Energy measured since ${OUTPUTS/1/ENERGY_START} unix time&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2: &amp;lt;code&amp;gt;&amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/ENERGY_START}&amp;quot;&amp;lt;/code&amp;gt;  is output payload &amp;lt;code&amp;gt;1567654639&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ENERGY_START_FMT ====&lt;br /&gt;
Unit: &amp;lt;code&amp;gt;fmt date format&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Type: string &lt;br /&gt;
&lt;br /&gt;
Allowed in: &amp;lt;code&amp;gt;&amp;quot;payload&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 1: &amp;lt;code&amp;gt;&amp;quot;payload&amp;quot;:&amp;quot;Energy measured since ${OUTPUTS/1/ENERGY_START}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example 2: &amp;lt;code&amp;gt;&amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/ENERGY_START_FMT}&amp;quot;&amp;lt;/code&amp;gt; is output payload &amp;lt;code&amp;gt;2019-09-05T03:37:19+00:00&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== INPUT variables &amp;lt;sup&amp;gt;Not yet implemented&amp;lt;/sup&amp;gt; ===&lt;br /&gt;
Not yet implemented&lt;br /&gt;
&lt;br /&gt;
=== TOTALs - for future use with devices having more than 1 measured output ===&lt;br /&gt;
&lt;br /&gt;
* OUTPUTS/TOTAL/ENERGY&lt;br /&gt;
* OUTPUTS/TOTAL/LOAD&lt;br /&gt;
* OUTPUTS/TOTAL/CURRENT&lt;br /&gt;
* OUTPUTS/TOTAL/VOLTAGE&lt;br /&gt;
* OUTPUTS/TOTAL/POWER_FACTOR&lt;br /&gt;
* OUTPUTS/TOTAL/FREQUENCY&lt;br /&gt;
&lt;br /&gt;
== Payload/topic variables ==&lt;br /&gt;
=== List ===&lt;br /&gt;
===== DEVICE_NAME =====&lt;br /&gt;
Can be used in: &amp;quot;payload&amp;quot;, &amp;quot;topic&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== DEVICE_MAC =====&lt;br /&gt;
&lt;br /&gt;
===== UPTIME &amp;lt;sup&amp;gt;Not yet implemented&amp;lt;/sup&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
===== PAYLOAD =====&lt;br /&gt;
Can be used in: &amp;quot;action&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== OUTPUT_ID &amp;lt;sup&amp;gt;Not yet implemented&amp;lt;/sup&amp;gt;=====&lt;br /&gt;
&lt;br /&gt;
===== WIFI_SIGNAL&amp;lt;sup&amp;gt;Not yet implemented&amp;lt;/sup&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
 &amp;quot;payload&amp;quot;:&amp;quot;${DEVICE_NAME}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/action&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;action&amp;quot;:&amp;quot;${PAYLOAD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Extended MQTT flex JSON config examples =&lt;br /&gt;
&lt;br /&gt;
== Default NETIO MQTT-flex configuration ==&lt;br /&gt;
This example demonstrates setup for connection to public &amp;lt;code&amp;gt;broker.hivemq.com&amp;lt;/code&amp;gt;, measurement reporting and output control.&lt;br /&gt;
&lt;br /&gt;
The device cabe be controlled via &amp;lt;code&amp;gt;netio/${DEVICE_NAME}/output/1/action topic&amp;lt;/code&amp;gt; by sending standard NETIO action values:&lt;br /&gt;
* 0 - OFF&lt;br /&gt;
* 1 - ON&lt;br /&gt;
* 2 - SHORT OFF&lt;br /&gt;
* 3 - SHORT ON&lt;br /&gt;
* 4 - TOGGLE&lt;br /&gt;
* 5 - NO ACTION.&lt;br /&gt;
&lt;br /&gt;
The device report measurements:&lt;br /&gt;
&lt;br /&gt;
* Output state - every 15 minutes or by change&lt;br /&gt;
* Voltage [V]- every 5 minutes or by change of 1 V&lt;br /&gt;
* Current [mA]- every 5 minutes or by change of 50 mA&lt;br /&gt;
* Load(Power) [W]- every 5 minutes or by change of 10 W&lt;br /&gt;
* Energy(Consumption) [Wh]- every 15 minutes or by change of 1Wh&lt;br /&gt;
* True Power Factor (TPF) [-]- every 5 minutes or by change of 0.02&lt;br /&gt;
* Frequency [Hz]- every 1 hour or by change of 0.1 Hz&lt;br /&gt;
&lt;br /&gt;
For register all values, you can use wildcard &amp;lt;code&amp;gt;netio/${DEVICE_NAME}/output/1/#&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;config&amp;quot;:{&lt;br /&gt;
      &amp;quot;broker&amp;quot;:{&lt;br /&gt;
         &amp;quot;url&amp;quot;:&amp;quot;broker.hivemq.com&amp;quot;,&lt;br /&gt;
         &amp;quot;protocol&amp;quot;:&amp;quot;mqtt&amp;quot;,&lt;br /&gt;
         &amp;quot;port&amp;quot;:1883,&lt;br /&gt;
         &amp;quot;ssl&amp;quot;:false,&lt;br /&gt;
         &amp;quot;type&amp;quot;:&amp;quot;generic&amp;quot;,&lt;br /&gt;
         &amp;quot;username&amp;quot;:&amp;quot;&amp;quot;,&lt;br /&gt;
         &amp;quot;password&amp;quot;:&amp;quot;&amp;quot;,&lt;br /&gt;
         &amp;quot;clientid&amp;quot;:&amp;quot;moje${DEVICE_NAME}${DEVICE_MAC}&amp;quot;,&lt;br /&gt;
         &amp;quot;keepalive&amp;quot;:30&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;subscribe&amp;quot;:[&lt;br /&gt;
         {&lt;br /&gt;
            &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/action&amp;quot;,&lt;br /&gt;
            &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
            &amp;quot;target&amp;quot;:&amp;quot;OUTPUTS/1/ACTION&amp;quot;,&lt;br /&gt;
            &amp;quot;action&amp;quot;:&amp;quot;${payload}&amp;quot;&lt;br /&gt;
         },&lt;br /&gt;
         {&lt;br /&gt;
            &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/switch&amp;quot;,&lt;br /&gt;
            &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
            &amp;quot;target&amp;quot;:&amp;quot;OUTPUTS/1/ACTION&amp;quot;,&lt;br /&gt;
            &amp;quot;action&amp;quot;:4&lt;br /&gt;
         }&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;publish&amp;quot;:[&lt;br /&gt;
         {&lt;br /&gt;
            &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_MAC}/output/1/state&amp;quot;,&lt;br /&gt;
            &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
            &amp;quot;retain&amp;quot;:true,&lt;br /&gt;
            &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/STATE}&amp;quot;,&lt;br /&gt;
            &amp;quot;events&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                  &amp;quot;type&amp;quot;:&amp;quot;change&amp;quot;,&lt;br /&gt;
                  &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/STATE&amp;quot;&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                  &amp;quot;type&amp;quot;:&amp;quot;timer&amp;quot;,&lt;br /&gt;
                  &amp;quot;period&amp;quot;:900&lt;br /&gt;
               }&lt;br /&gt;
            ]&lt;br /&gt;
         },&lt;br /&gt;
         {&lt;br /&gt;
            &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/voltage&amp;quot;,&lt;br /&gt;
            &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
            &amp;quot;retain&amp;quot;:false,&lt;br /&gt;
            &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/VOLTAGE}&amp;quot;,&lt;br /&gt;
            &amp;quot;events&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                  &amp;quot;type&amp;quot;:&amp;quot;timer&amp;quot;,&lt;br /&gt;
                  &amp;quot;period&amp;quot;:300&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                  &amp;quot;type&amp;quot;:&amp;quot;delta&amp;quot;,&lt;br /&gt;
                  &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/VOLTAGE&amp;quot;,&lt;br /&gt;
                  &amp;quot;delta&amp;quot;:1&lt;br /&gt;
               }&lt;br /&gt;
            ]&lt;br /&gt;
         },&lt;br /&gt;
         {&lt;br /&gt;
            &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/current&amp;quot;,&lt;br /&gt;
            &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
            &amp;quot;retain&amp;quot;:false,&lt;br /&gt;
            &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/CURRENT}&amp;quot;,&lt;br /&gt;
            &amp;quot;events&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                  &amp;quot;type&amp;quot;:&amp;quot;timer&amp;quot;,&lt;br /&gt;
                  &amp;quot;period&amp;quot;:300&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                  &amp;quot;type&amp;quot;:&amp;quot;delta&amp;quot;,&lt;br /&gt;
                  &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/CURRENT&amp;quot;,&lt;br /&gt;
                  &amp;quot;delta&amp;quot;:50&lt;br /&gt;
               }&lt;br /&gt;
            ]&lt;br /&gt;
         },&lt;br /&gt;
         {&lt;br /&gt;
            &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/load&amp;quot;,&lt;br /&gt;
            &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
            &amp;quot;retain&amp;quot;:false,&lt;br /&gt;
            &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/LOAD}&amp;quot;,&lt;br /&gt;
            &amp;quot;events&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                  &amp;quot;type&amp;quot;:&amp;quot;timer&amp;quot;,&lt;br /&gt;
                  &amp;quot;period&amp;quot;:300&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                  &amp;quot;type&amp;quot;:&amp;quot;delta&amp;quot;,&lt;br /&gt;
                  &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/LOAD&amp;quot;,&lt;br /&gt;
                  &amp;quot;delta&amp;quot;:10&lt;br /&gt;
               }&lt;br /&gt;
            ]&lt;br /&gt;
         },&lt;br /&gt;
         {&lt;br /&gt;
            &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/energy&amp;quot;,&lt;br /&gt;
            &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
            &amp;quot;retain&amp;quot;:false,&lt;br /&gt;
            &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/ENERGY}&amp;quot;,&lt;br /&gt;
            &amp;quot;events&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                  &amp;quot;type&amp;quot;:&amp;quot;timer&amp;quot;,&lt;br /&gt;
                  &amp;quot;period&amp;quot;:900&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                  &amp;quot;type&amp;quot;:&amp;quot;delta&amp;quot;,&lt;br /&gt;
                  &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/ENERGY&amp;quot;,&lt;br /&gt;
                  &amp;quot;delta&amp;quot;:1&lt;br /&gt;
               }&lt;br /&gt;
            ]&lt;br /&gt;
         },&lt;br /&gt;
         {&lt;br /&gt;
            &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/tpf&amp;quot;,&lt;br /&gt;
            &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
            &amp;quot;retain&amp;quot;:false,&lt;br /&gt;
            &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/POWER_FACTOR}&amp;quot;,&lt;br /&gt;
            &amp;quot;events&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                  &amp;quot;type&amp;quot;:&amp;quot;timer&amp;quot;,&lt;br /&gt;
                  &amp;quot;period&amp;quot;:900&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                  &amp;quot;type&amp;quot;:&amp;quot;delta&amp;quot;,&lt;br /&gt;
                  &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/POWER_FACTOR&amp;quot;,&lt;br /&gt;
                  &amp;quot;delta&amp;quot;:0.02&lt;br /&gt;
               }&lt;br /&gt;
            ]&lt;br /&gt;
         },&lt;br /&gt;
         {&lt;br /&gt;
            &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/frequency&amp;quot;,&lt;br /&gt;
            &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
            &amp;quot;retain&amp;quot;:false,&lt;br /&gt;
            &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/FREQUENCY}&amp;quot;,&lt;br /&gt;
            &amp;quot;events&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                  &amp;quot;type&amp;quot;:&amp;quot;timer&amp;quot;,&lt;br /&gt;
                  &amp;quot;period&amp;quot;:3600&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                  &amp;quot;type&amp;quot;:&amp;quot;delta&amp;quot;,&lt;br /&gt;
                  &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/FREQUENCY&amp;quot;,&lt;br /&gt;
                  &amp;quot;delta&amp;quot;:0.1&lt;br /&gt;
               }&lt;br /&gt;
            ]&lt;br /&gt;
         }&lt;br /&gt;
      ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Vkristof</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=Welcome_to_NETIO_resources_%26_projects_%26_documentation_overview&amp;diff=630</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=630"/>
		<updated>2020-01-03T10:40:32Z</updated>

		<summary type="html">&lt;p&gt;Vkristof: &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]]&lt;br /&gt;
&lt;br /&gt;
[[MQTT-flex]]&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;
[[SIP]]&lt;br /&gt;
&lt;br /&gt;
[[HTTP(s) Push - JSON/XML]]&lt;br /&gt;
&lt;br /&gt;
[[M2M Lua Active Client]]&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: 50%; 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;
=== Tools ===&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;
[[NETIO UDP Discover]]&lt;br /&gt;
&lt;br /&gt;
[[NETIO UPnP (Universal Plug and Play)]]&lt;br /&gt;
&lt;br /&gt;
=== Community ===&lt;br /&gt;
[https://github.com/distopik/netio-4c-prometheus Prometheus integration]&lt;br /&gt;
&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/netioproducts/c-sharp-examples/tree/master/netioControllerXML-Stefano M2M XML API integration in C#]&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 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; margin: 0 1em 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;
&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>Vkristof</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=MQTT-flex&amp;diff=497</id>
		<title>MQTT-flex</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=MQTT-flex&amp;diff=497"/>
		<updated>2019-07-28T21:23:33Z</updated>

		<summary type="html">&lt;p&gt;Vkristof: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MQTT is implemented as M2M API protocol, where NETIO device is publisher providing output status and its measurements and subscriber is allowing to control NETIO power outputs via public or internal MQTT brokers. &lt;br /&gt;
&lt;br /&gt;
With MQTT-flex the user can easily define the MQTT topics and payloads by himself via text configuration in JSON object format. Since there is then lot of possibilities with such freestyle flexibility allowed, you can find bellow full set of all implemented attributes and at the end of this article are some examples and links to configurations, which can be used towards public brokers as HiveMQ, IBM Watson, Azure, which you can sometimes directly, sometimes with slight modification (as putting yours Bluemix/Azure credentials) just copy&amp;amp;paste and see data flying between the computers, draw some sexy graphs and have big party with this feature :) ENJOY! &lt;br /&gt;
&lt;br /&gt;
==== requirements: ====&lt;br /&gt;
PowerCable family – MQTT flex supported from &amp;lt;sub&amp;gt; 2.1.0&amp;lt;/sub&amp;gt; firmware release.&lt;br /&gt;
&lt;br /&gt;
=== MQTT flex JSON config philosophy ===&lt;br /&gt;
&lt;br /&gt;
Configuration of MQTT in devices supporting &amp;lt;i&amp;gt;MQTT flex&amp;lt;/i&amp;gt; is done by {{JSON (JavaScript Object Notation)|https://en.wikipedia.org/wiki/JSON}}. The file is separated into &amp;lt;b&amp;gt;3 sections according to their meaning&amp;lt;/b&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*  &amp;lt;b&amp;gt;broker&amp;lt;/b&amp;gt; (client connection setup)&lt;br /&gt;
*  &amp;lt;b&amp;gt;publish&amp;lt;/b&amp;gt; (array of topics where to publish)&lt;br /&gt;
*  &amp;lt;b&amp;gt;subscribe&amp;lt;/b&amp;gt; (array of topics where to subscribe)&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;config&amp;quot;:{&lt;br /&gt;
           &amp;quot;broker&amp;quot;:{&lt;br /&gt;
               config atribute 1 separated by comma... ,&lt;br /&gt;
               config atribute 2 separated by comma... ,&lt;br /&gt;
               config atribute 3 separated by comma... ,&lt;br /&gt;
               ... ,&lt;br /&gt;
               config atribute LAST &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; separated by comma...&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;subscribe&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                   config atribute 1 separated by comma... ,&lt;br /&gt;
                   config atribute 2 separated by comma... ,&lt;br /&gt;
                   config atribute 3 separated by comma... ,&lt;br /&gt;
                   ... ,&lt;br /&gt;
                   config atribute LAST &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; separated by comma...&lt;br /&gt;
               }&lt;br /&gt;
           ],&lt;br /&gt;
           &amp;quot;publish&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                   first publish config atribute 1 separated by comma... ,&lt;br /&gt;
                   first publish config atribute 3 separated by comma... ,&lt;br /&gt;
                   ... ,&lt;br /&gt;
                   &amp;quot;events&amp;quot;:[&lt;br /&gt;
                       {&lt;br /&gt;
                           first publish events config atribute 1 separated by comma... ,&lt;br /&gt;
                           first publish events config atribute 2 separated by comma... ,&lt;br /&gt;
                           ... ,&lt;br /&gt;
                           first publish events config atribute LAST &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; separated by comma...&lt;br /&gt;
                       }&lt;br /&gt;
                   ]&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                   second publish config atribute 1 separated by comma... ,&lt;br /&gt;
                   second publish config atribute 3 separated by comma... ,&lt;br /&gt;
                   ... ,&lt;br /&gt;
                   &amp;quot;events&amp;quot;:[&lt;br /&gt;
                       {&lt;br /&gt;
                           second publish events config atribute 1 separated by comma... ,&lt;br /&gt;
                           second publish events config atribute 2 separated by comma... ,&lt;br /&gt;
                           ... ,&lt;br /&gt;
                           second publish events config atribute LAST &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; separated by comma...&lt;br /&gt;
                       }&lt;br /&gt;
                   ]&lt;br /&gt;
               }&lt;br /&gt;
           ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Broker section ===&lt;br /&gt;
here you have to define URL or IP address of machine hosting MQTT broker, level of security used for protocol, auth data and optionally some specific MQTT attributes, which are in the spec, but not mandatory required&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Item&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Presence&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Possible Values&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Description&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | JSON Config Usage&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | url&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT broker URL&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;url&amp;quot;:&amp;quot;broker.hivemq.com&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | port&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | 1 - 65535&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT broker port&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;port&amp;quot;:1883&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | ssl&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | true, false&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | Use SSL crypted communication selector&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;ssl&amp;quot;:false&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | type&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | generic&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | Communication/setup type option&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;type&amp;quot;:&amp;quot;generic&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | username&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | regexp+len&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | Credentials for MQTT broker&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;username&amp;quot;:&amp;quot;freedom&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | password&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | regexp+len&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | Credentials for MQTT broker&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;password&amp;quot;:&amp;quot;peace|LOVE|empathy4ALL&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | clientid&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | optional&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | regexp+len&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT clientid. Max. 32 characters. Variables ${DEVICE_MAC} or ${DEVICE_NAME} can be used&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;clientid&amp;quot;:&amp;quot;myEcoTable01&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | keepalive&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | optional&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | 1 - 65535&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT keep alive period in seconds&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;keepalive&amp;quot;:90&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscriber section ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Item&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Presence&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Possible Values&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Description&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | JSON Config Usage&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | topic&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | see table below&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | specification of the topic, which MQTT-flex device listens from broker and act accordingly&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/action&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | qos&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | 0, 1 or 2&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT's Quality of Sevice - definition {here|http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/errata01/os/mqtt-v3.1.1-errata01-os-complete.html#_Toc442180912}&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;qos&amp;quot;:0&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | target&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | internal definition of action, which can be performed above the specified output&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;target&amp;quot;:&amp;quot;OUTPUTS/1/ACTION&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | action&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | a payload or a value the action attribute needs to have passed to&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;action&amp;quot;:&amp;quot;${payload}&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Subscribe topic payload values specification for control of the output:&lt;br /&gt;
&lt;br /&gt;
netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/&amp;lt;b&amp;gt;action&amp;lt;/b&amp;gt; with payload for output control : (0 – off, 1 – on, 2 – short off, 3 – short on, 4 – toggle, 5 – no change)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Publish section ===&lt;br /&gt;
&lt;br /&gt;
when you need to send some data from device towards the broker, you have to specify it in the publish section - you can send measurement data as they are implemented, or you can use translation tables to send some pre-defined strings or even send JSON object. these attributes can be send periodicaly every time the timer reached specified value in seconds or based on value change (something like delta principle, but using only value differrence within defined period)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Item&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Presence&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Possible Values&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Description&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | JSON Config Usage&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | topic&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | see table below&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | definition of the topic, how it is registered towards MQTT broker&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/load&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | qos&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | see table below&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT's Quality of Sevice - definition {here|http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/errata01/os/mqtt-v3.1.1-errata01-os-complete.html#_Toc442180912}&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | retain&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | boolean: true or false&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT's attribute to specify to broker how to store last received information - section 3.3.1.3 of {MQTT doc|http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/errata01/os/mqtt-v3.1.1-errata01-os-complete.html#_Toc442180841}&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;retain&amp;quot;:true&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | payload&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | see table below&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | definition of the topic, how it is registered towards MQTT broker&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/load&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | events&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | see table below&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | definition of events used for triggering sending of data via mqtt (change, delta, timer)&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Basic MQTT flex JSON config example ===&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;  {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;      &amp;quot;config&amp;quot;:{&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;         &amp;quot;broker&amp;quot;:{&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;             &amp;quot;url&amp;quot;:&amp;quot;broker.hivemq.com&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;             &amp;quot;protocol&amp;quot;:&amp;quot;mqtt&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;             &amp;quot;port&amp;quot;:1883,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;             &amp;quot;ssl&amp;quot;:false,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;             &amp;quot;type&amp;quot;:&amp;quot;generic&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;             &amp;quot;username&amp;quot;:&amp;quot;freedom&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;             &amp;quot;password&amp;quot;:&amp;quot;peace|LOVE|empathy4ALL&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;         },&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;         &amp;quot;subscribe&amp;quot;:[{&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/action&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;target&amp;quot;:&amp;quot;OUTPUTS/1/ACTION&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;action&amp;quot;:&amp;quot;${payload}&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;            }&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;        ],&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;        &amp;quot;publish&amp;quot;:[&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;            {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/state&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;retain&amp;quot;:true,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/STATE}&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;events&amp;quot;:[&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                    {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                        &amp;quot;type&amp;quot;:&amp;quot;change&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                        &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/STATE&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                    }&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                ]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;            },&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;            {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/load&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;retain&amp;quot;:false,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/LOAD}&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;events&amp;quot;:[&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                    {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                        &amp;quot;type&amp;quot;:&amp;quot;timer&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                        &amp;quot;period&amp;quot;:1111&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                    },&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                    {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                        &amp;quot;type&amp;quot;:&amp;quot;delta&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                        &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/LOAD&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                        &amp;quot;delta&amp;quot;:1&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                    }      &lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                ]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;            }&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;        ]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;    }&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Publish topics for monitoring of the output state and load:&lt;br /&gt;
&lt;br /&gt;
* netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/state with payload providing output 1 state value - published when the output state change&lt;br /&gt;
* netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/load with payload providing actual load of output 1 – published every 1111 seconds or when load change by 1W&lt;br /&gt;
&lt;br /&gt;
==== possible source definitions and its units: ====&lt;br /&gt;
&lt;br /&gt;
* OUTPUTS/X/VOLTAGE&amp;quot; [V]&lt;br /&gt;
* OUTPUTS/X/CURRENT&amp;quot;  [mA]&lt;br /&gt;
* OUTPUTS/X/POWER_FACTOR [1]&lt;br /&gt;
* OUTPUTS/X/LOAD mW&lt;br /&gt;
* OUTPUTS/X/STATE [1]&lt;br /&gt;
* OUTPUTS/X/ACTION &lt;br /&gt;
* OUTPUTS/X/DELAY unsigned int [ms]&lt;br /&gt;
* OUTPUTS/X/NAME [string]&lt;br /&gt;
* OUTPUTS/X/FREQUENCY [Hz] two decimals&lt;br /&gt;
* OUTPUTS/X/ENERGY [Wh]&lt;br /&gt;
* OUTPUTS/X/ENERGY_START [epoch]&lt;br /&gt;
* OUTPUTS/X/ENERGY_START_FMT [YYYY-MM-DD]&lt;br /&gt;
&lt;br /&gt;
==== TOTALs - for future use with devices having more than 1 measured output ====&lt;br /&gt;
&lt;br /&gt;
* OUTPUTS/TOTAL/ENERGY&lt;br /&gt;
* OUTPUTS/TOTAL/LOAD&lt;br /&gt;
* OUTPUTS/TOTAL/CURRENT&lt;br /&gt;
* OUTPUTS/TOTAL/VOLTAGE&lt;br /&gt;
* OUTPUTS/TOTAL/POWER_FACTOR&lt;br /&gt;
* OUTPUTS/TOTAL/FREQUENCY&lt;br /&gt;
&lt;br /&gt;
==== available variables for definitions in MQTT-flex: ====&lt;br /&gt;
&lt;br /&gt;
* DEVICE_NAME&lt;br /&gt;
* DEVICE_MAC&lt;br /&gt;
* BRAND_NAME&lt;br /&gt;
* BRAND_TYPE&lt;/div&gt;</summary>
		<author><name>Vkristof</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=MQTT-flex&amp;diff=496</id>
		<title>MQTT-flex</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=MQTT-flex&amp;diff=496"/>
		<updated>2019-07-28T20:42:06Z</updated>

		<summary type="html">&lt;p&gt;Vkristof: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MQTT is implemented as M2M API protocol, where NETIO device is publisher providing output status and its measurements and subscriber is allowing to control NETIO power outputs via public or internal MQTT brokers. &lt;br /&gt;
&lt;br /&gt;
With MQTT-flex the user can easily define the MQTT topics and payloads by himself via text configuration in JSON object format. Since there is then lot of possibilities with such freestyle flexibility allowed, you can find bellow full set of all implemented attributes and at the end of this article are some examples and links to configurations, which can be used towards public brokers as HiveMQ, IBM Watson, Azure, which you can sometimes directly, sometimes with slight modification (as putting yours Bluemix/Azure credentials) just copy&amp;amp;paste and see data flying between the computers, draw some sexy graphs and have big party with this feature :) ENJOY! &lt;br /&gt;
&lt;br /&gt;
==== requirements: ====&lt;br /&gt;
PowerCable family – MQTT flex supported from &amp;lt;sub&amp;gt; 2.1.0&amp;lt;/sub&amp;gt; firmware release.&lt;br /&gt;
&lt;br /&gt;
=== MQTT flex JSON config philosophy ===&lt;br /&gt;
&lt;br /&gt;
Configuration of MQTT in devices supporting &amp;lt;i&amp;gt;MQTT flex&amp;lt;/i&amp;gt; is done by {{JSON (JavaScript Object Notation)|https://en.wikipedia.org/wiki/JSON}}. The file is separated into &amp;lt;b&amp;gt;3 sections according to their meaning&amp;lt;/b&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*  &amp;lt;b&amp;gt;broker&amp;lt;/b&amp;gt; (client connection setup)&lt;br /&gt;
*  &amp;lt;b&amp;gt;publish&amp;lt;/b&amp;gt; (array of topics where to publish)&lt;br /&gt;
*  &amp;lt;b&amp;gt;subscribe&amp;lt;/b&amp;gt; (array of topics where to subscribe)&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;config&amp;quot;:{&lt;br /&gt;
           &amp;quot;broker&amp;quot;:{&lt;br /&gt;
               config atribute 1 separated by comma... ,&lt;br /&gt;
               config atribute 2 separated by comma... ,&lt;br /&gt;
               config atribute 3 separated by comma... ,&lt;br /&gt;
               ... ,&lt;br /&gt;
               config atribute LAST &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; separated by comma...&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;subscribe&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                   config atribute 1 separated by comma... ,&lt;br /&gt;
                   config atribute 2 separated by comma... ,&lt;br /&gt;
                   config atribute 3 separated by comma... ,&lt;br /&gt;
                   ... ,&lt;br /&gt;
                   config atribute LAST &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; separated by comma...&lt;br /&gt;
               }&lt;br /&gt;
           ],&lt;br /&gt;
           &amp;quot;publish&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                   first publish config atribute 1 separated by comma... ,&lt;br /&gt;
                   first publish config atribute 3 separated by comma... ,&lt;br /&gt;
                   ... ,&lt;br /&gt;
                   &amp;quot;events&amp;quot;:[&lt;br /&gt;
                       {&lt;br /&gt;
                           first publish events config atribute 1 separated by comma... ,&lt;br /&gt;
                           first publish events config atribute 2 separated by comma... ,&lt;br /&gt;
                           ... ,&lt;br /&gt;
                           first publish events config atribute LAST &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; separated by comma...&lt;br /&gt;
                       }&lt;br /&gt;
                   ]&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                   second publish config atribute 1 separated by comma... ,&lt;br /&gt;
                   second publish config atribute 3 separated by comma... ,&lt;br /&gt;
                   ... ,&lt;br /&gt;
                   &amp;quot;events&amp;quot;:[&lt;br /&gt;
                       {&lt;br /&gt;
                           second publish events config atribute 1 separated by comma... ,&lt;br /&gt;
                           second publish events config atribute 2 separated by comma... ,&lt;br /&gt;
                           ... ,&lt;br /&gt;
                           second publish events config atribute LAST &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; separated by comma...&lt;br /&gt;
                       }&lt;br /&gt;
                   ]&lt;br /&gt;
               }&lt;br /&gt;
           ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Broker section ===&lt;br /&gt;
here you have to define URL or IP address of machine hosting MQTT broker, level of security used for protocol, auth data and optionally some specific MQTT attributes, which are in the spec, but not mandatory required&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Item&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Presence&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Possible Values&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Description&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | JSON Config Usage&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | url&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT broker URL&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;url&amp;quot;:&amp;quot;broker.hivemq.com&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | port&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | 1 - 65535&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT broker port&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;port&amp;quot;:1883&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | ssl&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | true, false&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | Use SSL crypted communication selector&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;ssl&amp;quot;:false&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | type&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | generic&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | Communication/setup type option&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;type&amp;quot;:&amp;quot;generic&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | username&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | regexp+len&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | Credentials for MQTT broker&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;username&amp;quot;:&amp;quot;freedom&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | password&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | regexp+len&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | Credentials for MQTT broker&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;password&amp;quot;:&amp;quot;peace|LOVE|empathy4ALL&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | clientid&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | optional&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | regexp+len&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT clientid. Max. 32 characters. Variables ${DEVICE_MAC} or ${DEVICE_NAME} can be used&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;clientid&amp;quot;:&amp;quot;myEcoTable01&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | keepalive&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | optional&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | 1 - 65535?&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT keep alive period in seconds&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;keepalive&amp;quot;:90&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscriber section ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Item&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Presence&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Possible Values&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Description&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | JSON Config Usage&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | topic&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | see table below&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | specification of the topic, which MQTT-flex device listens from broker and act accordingly&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/action&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | qos&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | 0, 1 or 2&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT's Quality of Sevice - definition {here|http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/errata01/os/mqtt-v3.1.1-errata01-os-complete.html#_Toc442180912}&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;qos&amp;quot;:0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Subscribe topic for control of the output:&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/&amp;lt;b&amp;gt;action&amp;lt;/b&amp;gt; with payload for output control : (0 – off, 1 – on, 2 – short off, 3 – short on, 4 – toggle, 5 – no change)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Publish section ===&lt;br /&gt;
&lt;br /&gt;
when you need to send some data from device towards the broker, you have to specify it in the publish section - you can send measurement data as they are implemented, or you can use translation tables to send some pre-defined strings or even send JSON object. these attributes can be send periodicaly every time the timer reached specified value in seconds or based on value change (something like delta principle, but using only value differrence within defined period)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Item&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Presence&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Possible Values&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Description&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | JSON Config Usage&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | topic&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | see table below&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | definition of the topic, how it is registered towards MQTT broker&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/load&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | qos&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | see table below&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT's Quality of Sevice - definition {here|http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/errata01/os/mqtt-v3.1.1-errata01-os-complete.html#_Toc442180912}&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | retain&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | boolean: true or false&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT's attribute to specify to broker how to store last received information - section 3.3.1.3 of {MQTT doc|http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/errata01/os/mqtt-v3.1.1-errata01-os-complete.html#_Toc442180841}&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;retain&amp;quot;:true&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | payload&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | see table below&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | definition of the topic, how it is registered towards MQTT broker&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/load&amp;quot;,&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | events&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | see table below&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | definition of events used for triggering sending of data via mqtt (change, delta, timer)&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Basic MQTT flex JSON config example ===&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;  {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;      &amp;quot;config&amp;quot;:{&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;         &amp;quot;broker&amp;quot;:{&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;             &amp;quot;url&amp;quot;:&amp;quot;broker.hivemq.com&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;             &amp;quot;protocol&amp;quot;:&amp;quot;mqtt&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;             &amp;quot;port&amp;quot;:1883,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;             &amp;quot;ssl&amp;quot;:false,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;             &amp;quot;type&amp;quot;:&amp;quot;generic&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;             &amp;quot;username&amp;quot;:&amp;quot;freedom&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;             &amp;quot;password&amp;quot;:&amp;quot;peace|LOVE|empathy4ALL&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;         },&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;         &amp;quot;subscribe&amp;quot;:[{&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/action&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;target&amp;quot;:&amp;quot;OUTPUTS/1/ACTION&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;action&amp;quot;:&amp;quot;${payload}&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;            }&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;        ],&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;        &amp;quot;publish&amp;quot;:[&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;            {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/state&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;retain&amp;quot;:true,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/STATE}&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;events&amp;quot;:[&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                    {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                        &amp;quot;type&amp;quot;:&amp;quot;change&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                        &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/STATE&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                    }&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                ]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;            },&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;            {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/load&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;retain&amp;quot;:false,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/LOAD}&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;events&amp;quot;:[&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                    {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                        &amp;quot;type&amp;quot;:&amp;quot;timer&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                        &amp;quot;period&amp;quot;:1111&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                    },&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                    {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                        &amp;quot;type&amp;quot;:&amp;quot;delta&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                        &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/LOAD&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                        &amp;quot;delta&amp;quot;:1&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                    }      &lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                ]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;            }&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;        ]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;    }&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Publish topics for monitoring of the output state and load:&lt;br /&gt;
&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/state with payload providing output 1 state value - published when the output state change&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/load with payload providing actual load of output 1 – published every 1111 seconds or when load change by 1W&lt;br /&gt;
&lt;br /&gt;
possible source:&lt;br /&gt;
&lt;br /&gt;
OUTPUTS/X/VOLTAGE&amp;quot; [V]&lt;br /&gt;
OUTPUTS/X/CURRENT&amp;quot;  [mA]&lt;br /&gt;
OUTPUTS/X/POWER_FACTOR [1]&lt;br /&gt;
OUTPUTS/X/LOAD mW&lt;br /&gt;
OUTPUTS/X/STATE [1]&lt;br /&gt;
OUTPUTS/X/ACTION &lt;br /&gt;
OUTPUTS/X/DELAY unsigned int [ms]&lt;br /&gt;
OUTPUTS/X/NAME [string]&lt;br /&gt;
OUTPUTS/X/FREQUENCY [Hz] two decimals&lt;br /&gt;
OUTPUTS/X/ENERGY [Wh]&lt;br /&gt;
OUTPUTS/X/ENERGY_START [epoch]&lt;br /&gt;
OUTPUTS/X/ENERGY_START_FMT [YYYY-MM-DD]&lt;br /&gt;
&lt;br /&gt;
TOTALs - for future use with devices having more than 1 measured output&lt;br /&gt;
OUTPUTS/TOTAL/ENERGY&lt;br /&gt;
OUTPUTS/TOTAL/LOAD&lt;br /&gt;
OUTPUTS/TOTAL/CURRENT&lt;br /&gt;
OUTPUTS/TOTAL/VOLTAGE&lt;br /&gt;
OUTPUTS/TOTAL/POWER_FACTOR&lt;br /&gt;
OUTPUTS/TOTAL/FREQUENCY&lt;br /&gt;
&lt;br /&gt;
available variables for definitions in MQTT-flex:&lt;br /&gt;
&lt;br /&gt;
DEVICE_NAME&lt;br /&gt;
DEVICE_MAC&lt;br /&gt;
BRAND_NAME&lt;br /&gt;
BRAND_TYPE&lt;/div&gt;</summary>
		<author><name>Vkristof</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=MQTT-flex&amp;diff=495</id>
		<title>MQTT-flex</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=MQTT-flex&amp;diff=495"/>
		<updated>2019-07-28T19:53:18Z</updated>

		<summary type="html">&lt;p&gt;Vkristof: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MQTT is implemented as M2M API protocol, where NETIO device is publisher providing output status and its measurements and subscriber is allowing to control NETIO power outputs via public or internal MQTT brokers. &lt;br /&gt;
&lt;br /&gt;
With MQTT-flex the user can easily define the MQTT topics and payloads by himself via text configuration in JSON object format. Since there is then lot of possibilities with such freestyle flexibility allowed, you can find bellow full set of all implemented attributes and at the end of this article are some examples and links to configurations, which can be used towards public brokers as HiveMQ, IBM Watson, Azure, which you can sometimes directly, sometimes with slight modification (as putting yours Bluemix/Azure credentials) just copy&amp;amp;paste and see data flying between the computers, draw some sexy graphs and have big party with this feature :) ENJOY! &lt;br /&gt;
&lt;br /&gt;
==== requirements: ====&lt;br /&gt;
PowerCable family – MQTT flex supported from &amp;lt;sub&amp;gt; 2.1.0&amp;lt;/sub&amp;gt; firmware release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Basic MQTT flex JSON config example ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== MQTT flex JSON config philosophy ===&lt;br /&gt;
&lt;br /&gt;
Configuration of MQTT in devices supporting &amp;lt;i&amp;gt;MQTT flex&amp;lt;/i&amp;gt; is done by {{JSON (JavaScript Object Notation)|https://en.wikipedia.org/wiki/JSON}}. The file is separated into &amp;lt;b&amp;gt;3 sections according to their meaning&amp;lt;/b&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
*  &amp;lt;b&amp;gt;broker&amp;lt;/b&amp;gt; (client connection setup)&lt;br /&gt;
*  &amp;lt;b&amp;gt;publish&amp;lt;/b&amp;gt; (array of topics where to publish)&lt;br /&gt;
*  &amp;lt;b&amp;gt;subscribe&amp;lt;/b&amp;gt; (array of topics where to subscribe)&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;config&amp;quot;:{&lt;br /&gt;
           &amp;quot;broker&amp;quot;:{&lt;br /&gt;
               config atribute 1 separated by comma... ,&lt;br /&gt;
               config atribute 2 separated by comma... ,&lt;br /&gt;
               config atribute 3 separated by comma... ,&lt;br /&gt;
               ... ,&lt;br /&gt;
               config atribute LAST &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; separated by comma...&lt;br /&gt;
           },&lt;br /&gt;
           &amp;quot;subscribe&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                   config atribute 1 separated by comma... ,&lt;br /&gt;
                   config atribute 2 separated by comma... ,&lt;br /&gt;
                   config atribute 3 separated by comma... ,&lt;br /&gt;
                   ... ,&lt;br /&gt;
                   config atribute LAST &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; separated by comma...&lt;br /&gt;
               }&lt;br /&gt;
           ],&lt;br /&gt;
           &amp;quot;publish&amp;quot;:[&lt;br /&gt;
               {&lt;br /&gt;
                   first publish config atribute 1 separated by comma... ,&lt;br /&gt;
                   first publish config atribute 3 separated by comma... ,&lt;br /&gt;
                   ... ,&lt;br /&gt;
                   &amp;quot;events&amp;quot;:[&lt;br /&gt;
                       {&lt;br /&gt;
                           first publish events config atribute 1 separated by comma... ,&lt;br /&gt;
                           first publish events config atribute 2 separated by comma... ,&lt;br /&gt;
                           ... ,&lt;br /&gt;
                           first publish events config atribute LAST &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; separated by comma...&lt;br /&gt;
                       }&lt;br /&gt;
                   ]&lt;br /&gt;
               },&lt;br /&gt;
               {&lt;br /&gt;
                   second publish config atribute 1 separated by comma... ,&lt;br /&gt;
                   second publish config atribute 3 separated by comma... ,&lt;br /&gt;
                   ... ,&lt;br /&gt;
                   &amp;quot;events&amp;quot;:[&lt;br /&gt;
                       {&lt;br /&gt;
                           second publish events config atribute 1 separated by comma... ,&lt;br /&gt;
                           second publish events config atribute 2 separated by comma... ,&lt;br /&gt;
                           ... ,&lt;br /&gt;
                           second publish events config atribute LAST &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; separated by comma...&lt;br /&gt;
                       }&lt;br /&gt;
                   ]&lt;br /&gt;
               }&lt;br /&gt;
           ]&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Broker section ===&lt;br /&gt;
here you have to define URL or IP address of machine hosting MQTT broker, level of security used for protocol, auth data and optionally some specific MQTT attributes, which are in the spec, but not mandatory required&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Item&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Presence&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Possible Values&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Description&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | JSON Config Usage&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | url&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT broker URL&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;url&amp;quot;:&amp;quot;broker.hivemq.com&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | port&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | 1 - 65535&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT broker port&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;port&amp;quot;:1883&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | ssl&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | true, false&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | Use SSL crypted communication selector&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;ssl&amp;quot;:false&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | type&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | generic&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | Communication/setup type option&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;type&amp;quot;:&amp;quot;generic&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | username&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | regexp+len&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | Credentials for MQTT broker&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;username&amp;quot;:&amp;quot;freedom&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | password&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | regexp+len&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | Credentials for MQTT broker&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;password&amp;quot;:&amp;quot;peace|LOVE|empathy4ALL&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | clientid&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | optional&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | regexp+len&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT clientid. Max. 32 characters. Variables ${DEVICE_MAC} or ${DEVICE_NAME} can be used&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;clientid&amp;quot;:&amp;quot;myEcoTable01&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | keepalive&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | optional&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | 1 - 65535?&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | MQTT keep alive period in seconds&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;keepalive&amp;quot;:90&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Subscriber section ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Item&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Presence&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Possible Values&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | Description&lt;br /&gt;
! style=&amp;quot;font-weight:bold; background-color:#9b9b9b;&amp;quot; | JSON Config Usage&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | topic&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | see table below&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | specification of the topic, which MQTT-flex device listens from broker and act accordingly&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/action&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | qos&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | mandatory&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | 0, 1 or 2&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | Quality of Sevice - MQTT definition {here|http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/errata01/os/mqtt-v3.1.1-errata01-os-complete.html#_Toc442180912}&lt;br /&gt;
| style=&amp;quot;background-color:#efefef;&amp;quot; | &amp;quot;qos&amp;quot;:0&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Publish section ===&lt;br /&gt;
&lt;br /&gt;
Config example&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;  {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;      &amp;quot;config&amp;quot;:{&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;         &amp;quot;broker&amp;quot;:{&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;             &amp;quot;url&amp;quot;:&amp;quot;broker.hivemq.com&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;             &amp;quot;protocol&amp;quot;:&amp;quot;mqtt&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;             &amp;quot;port&amp;quot;:1883,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;             &amp;quot;ssl&amp;quot;:false,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;             &amp;quot;type&amp;quot;:&amp;quot;generic&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;             &amp;quot;username&amp;quot;:&amp;quot;freedom&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;             &amp;quot;password&amp;quot;:&amp;quot;peace|LOVE|empathy4ALL&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;         },&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;         &amp;quot;subscribe&amp;quot;:[{&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/action&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;target&amp;quot;:&amp;quot;OUTPUTS/1/ACTION&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;action&amp;quot;:&amp;quot;${payload}&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;            }&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;        ],&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;        &amp;quot;publish&amp;quot;:[&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;            {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/state&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;retain&amp;quot;:true,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/STATE}&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;events&amp;quot;:[&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                    {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                        &amp;quot;type&amp;quot;:&amp;quot;change&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                        &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/STATE&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                    }&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                ]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;            },&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;            {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/load&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;retain&amp;quot;:false,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/LOAD}&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                &amp;quot;events&amp;quot;:[&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                    {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                        &amp;quot;type&amp;quot;:&amp;quot;timer&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                        &amp;quot;period&amp;quot;:1111&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                    },&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                    {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                        &amp;quot;type&amp;quot;:&amp;quot;delta&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                        &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/LOAD&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                        &amp;quot;delta&amp;quot;:1&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                    }      &lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                ]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;            }&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;        ]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;    }&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Subscribe topic for control of the output:&lt;br /&gt;
&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/action with payload for output control : (0 – off, 1 – on, 2 – short off, 3 – short on, 4 – toggle, 5 – no change)&lt;br /&gt;
&lt;br /&gt;
Publish topics for monitoring of the output state and load:&lt;br /&gt;
&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/state with payload providing output 1 state value - published when the output state change&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/load with payload providing actual load of output 1 – published every 1111 seconds or when load change by 1W&lt;br /&gt;
&lt;br /&gt;
possible source:&lt;br /&gt;
&lt;br /&gt;
OUTPUTS/X/VOLTAGE&amp;quot;,&lt;br /&gt;
OUTPUTS/X/CURRENT&amp;quot; &lt;br /&gt;
OUTPUTS/X/POWER_FACTOR .exp = 100, .div = 1},&lt;br /&gt;
OUTPUTS/X/LOAD .exp = 1, .div = 1000},&lt;br /&gt;
OUTPUTS/X/STATE&lt;br /&gt;
OUTPUTS/X/ACTION &lt;br /&gt;
OUTPUTS/X/DELAY &amp;amp;uintValidator, .exp = 1, .div = 1&lt;br /&gt;
OUTPUTS/X/NAME&lt;br /&gt;
OUTPUTS/X/FREQUENCY .exp = 1, .div = 1000},&lt;br /&gt;
OUTPUTS/X/ENERGY .exp = 1, .div = 10},&lt;br /&gt;
OUTPUTS/X/ENERGY_START&lt;br /&gt;
OUTPUTS/X/ENERGY_START_FMT&lt;br /&gt;
OUTPUTS/TOTAL/ENERGY .exp = 1, .div = 10},&lt;br /&gt;
OUTPUTS/TOTAL/LOAD .exp = 1, .div = 1000},&lt;br /&gt;
OUTPUTS/TOTAL/CURRENT&lt;br /&gt;
OUTPUTS/TOTAL/VOLTAGE .exp = 1, .div = 100},&lt;br /&gt;
OUTPUTS/TOTAL/POWER_FACTOR&amp;quot;, .exp = 100, .div = 1},&lt;br /&gt;
OUTPUTS/TOTAL/FREQUENCY&amp;quot; .exp = 1, .div = 1000},&lt;br /&gt;
&lt;br /&gt;
available variables:&lt;br /&gt;
&lt;br /&gt;
DEVICE_NAME&lt;br /&gt;
DEVICE_MAC&lt;br /&gt;
BRAND_NAME&lt;br /&gt;
BRAND_TYPE&lt;/div&gt;</summary>
		<author><name>Vkristof</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=MQTT-flex&amp;diff=488</id>
		<title>MQTT-flex</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=MQTT-flex&amp;diff=488"/>
		<updated>2019-07-24T09:05:27Z</updated>

		<summary type="html">&lt;p&gt;Vkristof: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MQTT is implemented as M2M API protocol, where NETIO device is publisher providing output status and its measurements and subscriber is allowing to control NETIO power outputs via public or internal MQTT brokers. &lt;br /&gt;
&lt;br /&gt;
With MQTT-flex the users can easily define the MQTT topics and payloads by themself via text configuration in JSON object format. Since there is then lot of possibilities with such freestyle flexibility allowed, you can find bellow full set of all implemented attributes and at the end of this article are some examples and links to configurations, which can be used towards public brokers as HiveMQ, IBM Watson, Azure, which you can sometimes directly, sometimes with slight modification (as putting yours Bluemix/Azure credentials) just copy&amp;amp;paste and see data flying between the computers, draw some sexy graphs and have big party with this feature :) ENJOY! &lt;br /&gt;
&lt;br /&gt;
==== requirements: ====&lt;br /&gt;
PowerCable firmware – 2.1.0 and later&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Broker section ===&lt;br /&gt;
here you have to define URL or IP address of machine hosting MQTT broker, level of security used for protocol, auth data and optionally some specific MQTT attributes, which are in the spec, but not mandatory required&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Subscriber section ===&lt;br /&gt;
&lt;br /&gt;
=== Publish section ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Item	Description	Example/values&lt;br /&gt;
url	MQTT broker URL	broker.hivemq.com (mqtts://broker.your-lovely-domain.com - to connect to SSL capable MQTT broker)&lt;br /&gt;
Port	MQTT broker port	1883&lt;br /&gt;
Ssl	SSL security selector	[false|true]&lt;br /&gt;
Type	Communication/setup type option	[generic] (reserved for future use)&lt;br /&gt;
username	Credentials for MQTT broker - username	freedom&lt;br /&gt;
password	Credentials for MQTT broker - password	peace|LOVE|empathy4ALL&lt;br /&gt;
clientid	[optional] MQTT clientid. Max. 32 characters. Variables ${DEVICE_MAC} or ${DEVICE_NAME} can be used.	myUniqueID1234&lt;br /&gt;
keepalive	[optional] MQTT keep alive period in seconds	90&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Config example&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;  {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;      &amp;quot;config&amp;quot;:{&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;      &amp;quot;broker&amp;quot;:{&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          &amp;quot;url&amp;quot;:&amp;quot;broker.hivemq.com&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          &amp;quot;protocol&amp;quot;:&amp;quot;mqtt&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          &amp;quot;port&amp;quot;:1883,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          &amp;quot;ssl&amp;quot;:false,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          &amp;quot;type&amp;quot;:&amp;quot;generic&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          &amp;quot;username&amp;quot;:&amp;quot;freedom&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          &amp;quot;password&amp;quot;:&amp;quot;peace|LOVE|empathy4ALL&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;      },&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;      &amp;quot;subscribe&amp;quot;:[&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/action&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;target&amp;quot;:&amp;quot;OUTPUTS/1/ACTION&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;action&amp;quot;:&amp;quot;${payload}&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          }&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;      ],&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;      &amp;quot;publish&amp;quot;:[&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/state&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;retain&amp;quot;:true,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/STATE}&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;events&amp;quot;:[&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                  {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                      &amp;quot;type&amp;quot;:&amp;quot;change&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                      &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/STATE&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                  }&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              ]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          },&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/load&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;retain&amp;quot;:false,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/LOAD}&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;events&amp;quot;:[&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                  {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                      &amp;quot;type&amp;quot;:&amp;quot;timer&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                      &amp;quot;period&amp;quot;:1111&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                  },&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                  {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                      &amp;quot;type&amp;quot;:&amp;quot;delta&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                      &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/LOAD&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                      &amp;quot;delta&amp;quot;:1&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                  }      &lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              ]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          }&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;      ]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;  }&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Subscribe topic for control of the output:&lt;br /&gt;
&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/action with payload for output control : (0 – off, 1 – on, 2 – short off, 3 – short on, 4 – toggle, 5 – no change)&lt;br /&gt;
&lt;br /&gt;
Publish topics for monitoring of the output state and load:&lt;br /&gt;
&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/state with payload providing output 1 state value - published when the output state change&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/load with payload providing actual load of output 1 – published every 1111 seconds or when load change by 1W&lt;br /&gt;
&lt;br /&gt;
possible source:&lt;br /&gt;
&lt;br /&gt;
OUTPUTS/X/VOLTAGE&amp;quot;,&lt;br /&gt;
OUTPUTS/X/CURRENT&amp;quot; &lt;br /&gt;
OUTPUTS/X/POWER_FACTOR .exp = 100, .div = 1},&lt;br /&gt;
OUTPUTS/X/LOAD .exp = 1, .div = 1000},&lt;br /&gt;
OUTPUTS/X/STATE&lt;br /&gt;
OUTPUTS/X/ACTION &lt;br /&gt;
OUTPUTS/X/DELAY &amp;amp;uintValidator, .exp = 1, .div = 1&lt;br /&gt;
OUTPUTS/X/NAME&lt;br /&gt;
OUTPUTS/X/FREQUENCY .exp = 1, .div = 1000},&lt;br /&gt;
OUTPUTS/X/ENERGY .exp = 1, .div = 10},&lt;br /&gt;
OUTPUTS/X/ENERGY_START&lt;br /&gt;
OUTPUTS/X/ENERGY_START_FMT&lt;br /&gt;
OUTPUTS/TOTAL/ENERGY .exp = 1, .div = 10},&lt;br /&gt;
OUTPUTS/TOTAL/LOAD .exp = 1, .div = 1000},&lt;br /&gt;
OUTPUTS/TOTAL/CURRENT&lt;br /&gt;
OUTPUTS/TOTAL/VOLTAGE .exp = 1, .div = 100},&lt;br /&gt;
OUTPUTS/TOTAL/POWER_FACTOR&amp;quot;, .exp = 100, .div = 1},&lt;br /&gt;
OUTPUTS/TOTAL/FREQUENCY&amp;quot; .exp = 1, .div = 1000},&lt;br /&gt;
&lt;br /&gt;
available variables:&lt;br /&gt;
&lt;br /&gt;
DEVICE_NAME&lt;br /&gt;
DEVICE_MAC&lt;br /&gt;
BRAND_NAME&lt;br /&gt;
BRAND_TYPE&lt;/div&gt;</summary>
		<author><name>Vkristof</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=MQTT-flex&amp;diff=487</id>
		<title>MQTT-flex</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=MQTT-flex&amp;diff=487"/>
		<updated>2019-07-24T09:03:38Z</updated>

		<summary type="html">&lt;p&gt;Vkristof: prvni faze porodni&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MQTT is implemented as M2M API protocol, where NETIO device is publisher providing output status and its measurements and subscriber is allowing to control NETIO power outputs via public or internal MQTT brokers. &lt;br /&gt;
&lt;br /&gt;
With MQTT-flex the users can easily define the MQTT topics and payloads by themself via text configuration in JSON object format. Since there is then lot of possibilities with such freestyle flexibility allowed, you can find bellow full set of all implemented attributes and at the end of this article are some examples and links to configurations, which can be used towards public brokers as HiveMQ, IBM Watson, Azure, which you can sometimes directly, sometimes with slight modification (as putting yours Bluemix/Azure credentials) just copy&amp;amp;paste and see data flying between the computers, draw some sexy graphs and have big party with this feature :) ENJOY! &lt;br /&gt;
&lt;br /&gt;
==== requirements: ====&lt;br /&gt;
PowerCable firmware – 2.1.0 and later&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Broker section ===&lt;br /&gt;
here you have to define address, level of security used for protocol, auth data and optionally some specific MQTT attributes, which are in the spec, but not mandatory required&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Subscriber section ===&lt;br /&gt;
&lt;br /&gt;
=== Publish section ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Item	Description	Example/values&lt;br /&gt;
url	MQTT broker URL	broker.hivemq.com (mqtts://broker.your-lovely-domain.com - to connect to SSL capable MQTT broker)&lt;br /&gt;
Port	MQTT broker port	1883&lt;br /&gt;
Ssl	SSL security selector	[false|true]&lt;br /&gt;
Type	Communication/setup type option	[generic] (reserved for future use)&lt;br /&gt;
username	Credentials for MQTT broker - username	freedom&lt;br /&gt;
password	Credentials for MQTT broker - password	peace|LOVE|empathy4ALL&lt;br /&gt;
clientid	[optional] MQTT clientid. Max. 32 characters. Variables ${DEVICE_MAC} or ${DEVICE_NAME} can be used.	myUniqueID1234&lt;br /&gt;
keepalive	[optional] MQTT keep alive period in seconds	90&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Config example&lt;br /&gt;
&lt;br /&gt;
 {   &amp;quot;config&amp;quot;:{&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;      &amp;quot;broker&amp;quot;:{&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          &amp;quot;url&amp;quot;:&amp;quot;broker.hivemq.com&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          &amp;quot;protocol&amp;quot;:&amp;quot;mqtt&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          &amp;quot;port&amp;quot;:1883,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          &amp;quot;ssl&amp;quot;:false,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          &amp;quot;type&amp;quot;:&amp;quot;generic&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          &amp;quot;username&amp;quot;:&amp;quot;freedom&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          &amp;quot;password&amp;quot;:&amp;quot;peace|LOVE|empathy4ALL&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;      },&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;      &amp;quot;subscribe&amp;quot;:[&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/action&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;target&amp;quot;:&amp;quot;OUTPUTS/1/ACTION&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;action&amp;quot;:&amp;quot;${payload}&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          }&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;      ],&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;      &amp;quot;publish&amp;quot;:[&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/state&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;retain&amp;quot;:true,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/STATE}&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;events&amp;quot;:[&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                  {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                      &amp;quot;type&amp;quot;:&amp;quot;change&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                      &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/STATE&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                  }&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              ]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          },&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/load&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;retain&amp;quot;:false,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/LOAD}&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              &amp;quot;events&amp;quot;:[&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                  {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                      &amp;quot;type&amp;quot;:&amp;quot;timer&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                      &amp;quot;period&amp;quot;:1111&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                  },&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                  {&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                      &amp;quot;type&amp;quot;:&amp;quot;delta&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                      &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/LOAD&amp;quot;,&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                      &amp;quot;delta&amp;quot;:1&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;                  }      &lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;              ]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;          }&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;      ]&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;  }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Subscribe topic for control of the output:&lt;br /&gt;
&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/action with payload for output control : (0 – off, 1 – on, 2 – short off, 3 – short on, 4 – toggle, 5 – no change)&lt;br /&gt;
&lt;br /&gt;
Publish topics for monitoring of the output state and load:&lt;br /&gt;
&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/state with payload providing output 1 state value - published when the output state change&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/load with payload providing actual load of output 1 – published every 1111 seconds or when load change by 1W&lt;br /&gt;
&lt;br /&gt;
possible source:&lt;br /&gt;
&lt;br /&gt;
OUTPUTS/X/VOLTAGE&amp;quot;,&lt;br /&gt;
OUTPUTS/X/CURRENT&amp;quot; &lt;br /&gt;
OUTPUTS/X/POWER_FACTOR .exp = 100, .div = 1},&lt;br /&gt;
OUTPUTS/X/LOAD .exp = 1, .div = 1000},&lt;br /&gt;
OUTPUTS/X/STATE&lt;br /&gt;
OUTPUTS/X/ACTION &lt;br /&gt;
OUTPUTS/X/DELAY &amp;amp;uintValidator, .exp = 1, .div = 1&lt;br /&gt;
OUTPUTS/X/NAME&lt;br /&gt;
OUTPUTS/X/FREQUENCY .exp = 1, .div = 1000},&lt;br /&gt;
OUTPUTS/X/ENERGY .exp = 1, .div = 10},&lt;br /&gt;
OUTPUTS/X/ENERGY_START&lt;br /&gt;
OUTPUTS/X/ENERGY_START_FMT&lt;br /&gt;
OUTPUTS/TOTAL/ENERGY .exp = 1, .div = 10},&lt;br /&gt;
OUTPUTS/TOTAL/LOAD .exp = 1, .div = 1000},&lt;br /&gt;
OUTPUTS/TOTAL/CURRENT&lt;br /&gt;
OUTPUTS/TOTAL/VOLTAGE .exp = 1, .div = 100},&lt;br /&gt;
OUTPUTS/TOTAL/POWER_FACTOR&amp;quot;, .exp = 100, .div = 1},&lt;br /&gt;
OUTPUTS/TOTAL/FREQUENCY&amp;quot; .exp = 1, .div = 1000},&lt;br /&gt;
&lt;br /&gt;
available variables:&lt;br /&gt;
&lt;br /&gt;
DEVICE_NAME&lt;br /&gt;
DEVICE_MAC&lt;br /&gt;
BRAND_NAME&lt;br /&gt;
BRAND_TYPE&lt;/div&gt;</summary>
		<author><name>Vkristof</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=MQTT-flex&amp;diff=484</id>
		<title>MQTT-flex</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=MQTT-flex&amp;diff=484"/>
		<updated>2019-07-17T11:31:36Z</updated>

		<summary type="html">&lt;p&gt;Vkristof: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MQTT is implemented as M2M API protocol, where NETIO device is publisher providing output status and subscriber allowing control of NETIO power outputs (power sockets 230V or power outlets &lt;br /&gt;
IEC-320 110/230V). With MQTT-flex the users can easily define the MQTT topics and payloads. &lt;br /&gt;
&lt;br /&gt;
PowerCable firmware – 2.1.0 and later&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Config example&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;config&amp;quot;:{&lt;br /&gt;
        &amp;quot;broker&amp;quot;:{&lt;br /&gt;
            &amp;quot;url&amp;quot;:&amp;quot;broker.hivemq.com&amp;quot;,&lt;br /&gt;
            &amp;quot;protocol&amp;quot;:&amp;quot;mqtt&amp;quot;,&lt;br /&gt;
            &amp;quot;port&amp;quot;:1883,&lt;br /&gt;
            &amp;quot;ssl&amp;quot;:false,&lt;br /&gt;
            &amp;quot;type&amp;quot;:&amp;quot;generic&amp;quot;,&lt;br /&gt;
            &amp;quot;username&amp;quot;:&amp;quot;freedom&amp;quot;,&lt;br /&gt;
            &amp;quot;password&amp;quot;:&amp;quot;peace|LOVE|empathy4ALL&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;subscribe&amp;quot;:[&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/action&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;target&amp;quot;:&amp;quot;OUTPUTS/1/ACTION&amp;quot;,&lt;br /&gt;
                &amp;quot;action&amp;quot;:&amp;quot;${payload}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;publish&amp;quot;:[&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/state&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;retain&amp;quot;:true,&lt;br /&gt;
                &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/STATE}&amp;quot;,&lt;br /&gt;
                &amp;quot;events&amp;quot;:[&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;change&amp;quot;,&lt;br /&gt;
                        &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/STATE&amp;quot;&lt;br /&gt;
                    }&lt;br /&gt;
                ]&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/load&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;retain&amp;quot;:false,&lt;br /&gt;
                &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/LOAD}&amp;quot;,&lt;br /&gt;
                &amp;quot;events&amp;quot;:[&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;timer&amp;quot;,&lt;br /&gt;
                        &amp;quot;period&amp;quot;:1111&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;delta&amp;quot;,&lt;br /&gt;
                        &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/LOAD&amp;quot;,&lt;br /&gt;
                        &amp;quot;delta&amp;quot;:1&lt;br /&gt;
                    }      &lt;br /&gt;
                ]&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
description/details:&lt;br /&gt;
&lt;br /&gt;
Broker section&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
Item	Description	Example/values&lt;br /&gt;
url	MQTT broker URL	broker.hivemq.com (mqtts://broker.your-lovely-domain.com - to connect to SSL capable MQTT broker)&lt;br /&gt;
Port	MQTT broker port	1883&lt;br /&gt;
Ssl	SSL security selector	[false|true]&lt;br /&gt;
Type	Communication/setup type option	[generic] (reserved for future use)&lt;br /&gt;
username	Credentials for MQTT broker - username	freedom&lt;br /&gt;
password	Credentials for MQTT broker - password	peace|LOVE|empathy4ALL&lt;br /&gt;
clientid	[optional] MQTT clientid. Max. 32 characters. Variables ${DEVICE_MAC} or ${DEVICE_NAME} can be used.	myUniqueID1234&lt;br /&gt;
keepalive	[optional] MQTT keep alive period in seconds	90&lt;br /&gt;
&lt;br /&gt;
Subscribe topic for control of the output:&lt;br /&gt;
&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/action with payload for output control : (0 – off, 1 – on, 2 – short off, 3 – short on, 4 – toggle, 5 – no change)&lt;br /&gt;
&lt;br /&gt;
Publish topics for monitoring of the output state and load:&lt;br /&gt;
&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/state with payload providing output 1 state value - published when the output state change&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/load with payload providing actual load of output 1 – published every 1111 seconds or when load change by 1W&lt;br /&gt;
&lt;br /&gt;
possible source:&lt;br /&gt;
&lt;br /&gt;
OUTPUTS/X/VOLTAGE&amp;quot;,&lt;br /&gt;
OUTPUTS/X/CURRENT&amp;quot; &lt;br /&gt;
OUTPUTS/X/POWER_FACTOR .exp = 100, .div = 1},&lt;br /&gt;
OUTPUTS/X/LOAD .exp = 1, .div = 1000},&lt;br /&gt;
OUTPUTS/X/STATE&lt;br /&gt;
OUTPUTS/X/ACTION &lt;br /&gt;
OUTPUTS/X/DELAY &amp;amp;uintValidator, .exp = 1, .div = 1&lt;br /&gt;
OUTPUTS/X/NAME&lt;br /&gt;
OUTPUTS/X/FREQUENCY .exp = 1, .div = 1000},&lt;br /&gt;
OUTPUTS/X/ENERGY .exp = 1, .div = 10},&lt;br /&gt;
OUTPUTS/X/ENERGY_START&lt;br /&gt;
OUTPUTS/X/ENERGY_START_FMT&lt;br /&gt;
OUTPUTS/TOTAL/ENERGY .exp = 1, .div = 10},&lt;br /&gt;
OUTPUTS/TOTAL/LOAD .exp = 1, .div = 1000},&lt;br /&gt;
OUTPUTS/TOTAL/CURRENT&lt;br /&gt;
OUTPUTS/TOTAL/VOLTAGE .exp = 1, .div = 100},&lt;br /&gt;
OUTPUTS/TOTAL/POWER_FACTOR&amp;quot;, .exp = 100, .div = 1},&lt;br /&gt;
OUTPUTS/TOTAL/FREQUENCY&amp;quot; .exp = 1, .div = 1000},&lt;br /&gt;
&lt;br /&gt;
available variables:&lt;br /&gt;
&lt;br /&gt;
DEVICE_NAME&lt;br /&gt;
DEVICE_MAC&lt;br /&gt;
BRAND_NAME&lt;br /&gt;
BRAND_TYPE&lt;/div&gt;</summary>
		<author><name>Vkristof</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=MQTT-flex&amp;diff=483</id>
		<title>MQTT-flex</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=MQTT-flex&amp;diff=483"/>
		<updated>2019-07-17T11:26:26Z</updated>

		<summary type="html">&lt;p&gt;Vkristof: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MQTT is implemented as M2M API protocol, where NETIO device is publisher providing output status and subscriber allowing control of NETIO power outputs (power sockets 230V or power outlets &lt;br /&gt;
IEC-320 110/230V). With MQTT-flex the users can easily define the MQTT topics and payloads. &lt;br /&gt;
&lt;br /&gt;
PowerCable firmware – 2.1.0 and later&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Config example&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;config&amp;quot;:{&lt;br /&gt;
        &amp;quot;broker&amp;quot;:{&lt;br /&gt;
            &amp;quot;url&amp;quot;:&amp;quot;broker.hivemq.com&amp;quot;,&lt;br /&gt;
            &amp;quot;protocol&amp;quot;:&amp;quot;mqtt&amp;quot;,&lt;br /&gt;
            &amp;quot;port&amp;quot;:1883,&lt;br /&gt;
            &amp;quot;ssl&amp;quot;:false,&lt;br /&gt;
            &amp;quot;type&amp;quot;:&amp;quot;generic&amp;quot;,&lt;br /&gt;
            &amp;quot;username&amp;quot;:&amp;quot;freedom&amp;quot;,&lt;br /&gt;
            &amp;quot;password&amp;quot;:&amp;quot;peace|LOVE|empathy4ALL&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;subscribe&amp;quot;:[&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/action&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;target&amp;quot;:&amp;quot;OUTPUTS/1/ACTION&amp;quot;,&lt;br /&gt;
                &amp;quot;action&amp;quot;:&amp;quot;${payload}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;publish&amp;quot;:[&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/state&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;retain&amp;quot;:true,&lt;br /&gt;
                &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/STATE}&amp;quot;,&lt;br /&gt;
                &amp;quot;events&amp;quot;:[&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;change&amp;quot;,&lt;br /&gt;
                        &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/STATE&amp;quot;&lt;br /&gt;
                    }&lt;br /&gt;
                ]&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/load&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;retain&amp;quot;:false,&lt;br /&gt;
                &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/LOAD}&amp;quot;,&lt;br /&gt;
                &amp;quot;events&amp;quot;:[&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;timer&amp;quot;,&lt;br /&gt;
                        &amp;quot;period&amp;quot;:1111&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;delta&amp;quot;,&lt;br /&gt;
                        &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/LOAD&amp;quot;,&lt;br /&gt;
                        &amp;quot;delta&amp;quot;:1&lt;br /&gt;
                    }      &lt;br /&gt;
                ]&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
description/details:&lt;br /&gt;
&lt;br /&gt;
Broker section&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
Item	Description	Example/values&lt;br /&gt;
url	MQTT broker URL	broker.hivemq.com&lt;br /&gt;
Protocol	Protocol used for communication with broker	[mqtt]&lt;br /&gt;
Port	MQTT broker port	1883&lt;br /&gt;
Ssl	SSL security selector	[false|true]&lt;br /&gt;
Type	Communication/setup type option	[generic]&lt;br /&gt;
username	Credentials for MQTT broker - username	freedom&lt;br /&gt;
password	Credentials for MQTT broker - password	peace|LOVE|empathy4ALL&lt;br /&gt;
clientid	[optional] MQTT clientid. Max. 32 characters. Variables ${MAC} or ${DEVICE_NAME} can be used.	myUniqueID1234&lt;br /&gt;
keepalive	[optional] MQTT keep alive period in seconds	90&lt;br /&gt;
&lt;br /&gt;
Subscribe topic for control of the output:&lt;br /&gt;
&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/action with payload for output control : (0 – off, 1 – on, 2 – short off, 3 – short on, 4 – toggle, 5 – no change)&lt;br /&gt;
&lt;br /&gt;
Publish topics for monitoring of the output state and load:&lt;br /&gt;
&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/state with payload providing output 1 state value - published when the output state change&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/load with payload providing actual load of output 1 – published every 1111 seconds or when load change by 1W&lt;br /&gt;
&lt;br /&gt;
MQTT is implemented as M2M API protocol, where NETIO device is publisher providing output status and subscriber allowing control of NETIO power outputs (power sockets 230V or power outlets &lt;br /&gt;
IEC-320 110/230V). With MQTT-flex the users can easily define the MQTT topics and payloads. &lt;br /&gt;
&lt;br /&gt;
PowerCable firmware – 2.1.0 and later&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Config example&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;config&amp;quot;:{&lt;br /&gt;
        &amp;quot;broker&amp;quot;:{&lt;br /&gt;
            &amp;quot;url&amp;quot;:&amp;quot;broker.hivemq.com&amp;quot;,&lt;br /&gt;
            &amp;quot;protocol&amp;quot;:&amp;quot;mqtt&amp;quot;,&lt;br /&gt;
            &amp;quot;port&amp;quot;:1883,&lt;br /&gt;
            &amp;quot;ssl&amp;quot;:false,&lt;br /&gt;
            &amp;quot;type&amp;quot;:&amp;quot;generic&amp;quot;,&lt;br /&gt;
            &amp;quot;username&amp;quot;:&amp;quot;freedom&amp;quot;,&lt;br /&gt;
            &amp;quot;password&amp;quot;:&amp;quot;peace|LOVE|empathy4ALL&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;subscribe&amp;quot;:[&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/action&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;target&amp;quot;:&amp;quot;OUTPUTS/1/ACTION&amp;quot;,&lt;br /&gt;
                &amp;quot;action&amp;quot;:&amp;quot;${payload}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;publish&amp;quot;:[&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/state&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;retain&amp;quot;:true,&lt;br /&gt;
                &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/STATE}&amp;quot;,&lt;br /&gt;
                &amp;quot;events&amp;quot;:[&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;change&amp;quot;,&lt;br /&gt;
                        &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/STATE&amp;quot;&lt;br /&gt;
                    }&lt;br /&gt;
                ]&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/load&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;retain&amp;quot;:false,&lt;br /&gt;
                &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/LOAD}&amp;quot;,&lt;br /&gt;
                &amp;quot;events&amp;quot;:[&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;timer&amp;quot;,&lt;br /&gt;
                        &amp;quot;period&amp;quot;:1111&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;delta&amp;quot;,&lt;br /&gt;
                        &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/LOAD&amp;quot;,&lt;br /&gt;
                        &amp;quot;delta&amp;quot;:1&lt;br /&gt;
                    }      &lt;br /&gt;
                ]&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
description/details:&lt;br /&gt;
&lt;br /&gt;
Broker section&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
Item	Description	Example/values&lt;br /&gt;
url	MQTT broker URL	broker.hivemq.com (mqtts://broker.your-lovely-domain.com - to connect to SSL capable MQTT broker)&lt;br /&gt;
Port	MQTT broker port	1883&lt;br /&gt;
Ssl	SSL security selector	[false|true]&lt;br /&gt;
Type	Communication/setup type option	[generic] (reserved for future use)&lt;br /&gt;
username	Credentials for MQTT broker - username	freedom&lt;br /&gt;
password	Credentials for MQTT broker - password	peace|LOVE|empathy4ALL&lt;br /&gt;
clientid	[optional] MQTT clientid. Max. 32 characters. Variables ${DEVICE_MAC} or ${DEVICE_NAME} can be used.	myUniqueID1234&lt;br /&gt;
keepalive	[optional] MQTT keep alive period in seconds	90&lt;br /&gt;
&lt;br /&gt;
Subscribe topic for control of the output:&lt;br /&gt;
&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/action with payload for output control : (0 – off, 1 – on, 2 – short off, 3 – short on, 4 – toggle, 5 – no change)&lt;br /&gt;
&lt;br /&gt;
Publish topics for monitoring of the output state and load:&lt;br /&gt;
&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/state with payload providing output 1 state value - published when the output state change&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/load with payload providing actual load of output 1 – published every 1111 seconds or when load change by 1W&lt;br /&gt;
&lt;br /&gt;
possible source:&lt;br /&gt;
&lt;br /&gt;
OUTPUTS/X/VOLTAGE&amp;quot;,&lt;br /&gt;
OUTPUTS/X/CURRENT&amp;quot; &lt;br /&gt;
OUTPUTS/X/POWER_FACTOR .exp = 100, .div = 1},&lt;br /&gt;
OUTPUTS/X/LOAD .exp = 1, .div = 1000},&lt;br /&gt;
OUTPUTS/X/STATE&lt;br /&gt;
OUTPUTS/X/ACTION &lt;br /&gt;
OUTPUTS/X/DELAY &amp;amp;uintValidator, .exp = 1, .div = 1&lt;br /&gt;
OUTPUTS/X/NAME&amp;quot;, &lt;br /&gt;
OUTPUTS/X/FREQUENCY&amp;quot;, .param = nullptr, .translateFunc = nullptr, .validator = nullptr, .exp = 1, .div = 1000},&lt;br /&gt;
OUTPUTS/X/ENERGY&amp;quot;, .param = nullptr, .translateFunc = nullptr, .validator = nullptr, .exp = 1, .div = 10},&lt;br /&gt;
OUTPUTS/X/ENERGY_START&amp;quot;, &lt;br /&gt;
OUTPUTS/X/ENERGY_START_FMT&amp;quot;, &lt;br /&gt;
OUTPUTS/TOTAL/ENERGY&amp;quot;, .param = nullptr, .translateFunc = nullptr, .validator = nullptr, .exp = 1, .div = 10},&lt;br /&gt;
OUTPUTS/TOTAL/LOAD&amp;quot;, .param = nullptr, .translateFunc = nullptr, .validator = nullptr, .exp = 1, .div = 1000},&lt;br /&gt;
OUTPUTS/TOTAL/CURRENT&amp;quot;&lt;br /&gt;
OUTPUTS/TOTAL/VOLTAGE&amp;quot;, .param = nullptr, .translateFunc = nullptr, .validator = nullptr, .exp = 1, .div = 100},&lt;br /&gt;
OUTPUTS/TOTAL/POWER_FACTOR&amp;quot;, .param = nullptr, .translateFunc = nullptr, .validator = nullptr, .exp = 100, .div = 1},&lt;br /&gt;
OUTPUTS/TOTAL/FREQUENCY&amp;quot;, .param = nullptr, .translateFunc = nullptr, .validator = nullptr, .exp = 1, .div = 1000},&lt;br /&gt;
&lt;br /&gt;
available variables:&lt;br /&gt;
&lt;br /&gt;
DEVICE_NAME&lt;br /&gt;
DEVICE_MAC&lt;br /&gt;
BRAND_NAME&lt;br /&gt;
BRAND_TYPE&lt;/div&gt;</summary>
		<author><name>Vkristof</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=MQTT-flex&amp;diff=482</id>
		<title>MQTT-flex</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=MQTT-flex&amp;diff=482"/>
		<updated>2019-07-16T12:12:23Z</updated>

		<summary type="html">&lt;p&gt;Vkristof: Created page with &amp;quot;MQTT is implemented as M2M API protocol, where NETIO device is publisher providing output status and subscriber allowing control of NETIO power outputs (power sockets 230V or...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MQTT is implemented as M2M API protocol, where NETIO device is publisher providing output status and subscriber allowing control of NETIO power outputs (power sockets 230V or power outlets &lt;br /&gt;
IEC-320 110/230V). With MQTT-flex the users can easily define the MQTT topics and payloads. &lt;br /&gt;
&lt;br /&gt;
PowerCable firmware – 2.1.0 and later&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Config example&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;config&amp;quot;:{&lt;br /&gt;
        &amp;quot;broker&amp;quot;:{&lt;br /&gt;
            &amp;quot;url&amp;quot;:&amp;quot;broker.hivemq.com&amp;quot;,&lt;br /&gt;
            &amp;quot;protocol&amp;quot;:&amp;quot;mqtt&amp;quot;,&lt;br /&gt;
            &amp;quot;port&amp;quot;:1883,&lt;br /&gt;
            &amp;quot;ssl&amp;quot;:false,&lt;br /&gt;
            &amp;quot;type&amp;quot;:&amp;quot;generic&amp;quot;,&lt;br /&gt;
            &amp;quot;username&amp;quot;:&amp;quot;freedom&amp;quot;,&lt;br /&gt;
            &amp;quot;password&amp;quot;:&amp;quot;peace|LOVE|empathy4ALL&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;subscribe&amp;quot;:[&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/action&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;target&amp;quot;:&amp;quot;OUTPUTS/1/ACTION&amp;quot;,&lt;br /&gt;
                &amp;quot;action&amp;quot;:&amp;quot;${payload}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;publish&amp;quot;:[&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/state&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;retain&amp;quot;:true,&lt;br /&gt;
                &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/STATE}&amp;quot;,&lt;br /&gt;
                &amp;quot;events&amp;quot;:[&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;change&amp;quot;,&lt;br /&gt;
                        &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/STATE&amp;quot;&lt;br /&gt;
                    }&lt;br /&gt;
                ]&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/load&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;retain&amp;quot;:false,&lt;br /&gt;
                &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/LOAD}&amp;quot;,&lt;br /&gt;
                &amp;quot;events&amp;quot;:[&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;timer&amp;quot;,&lt;br /&gt;
                        &amp;quot;period&amp;quot;:1111&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;delta&amp;quot;,&lt;br /&gt;
                        &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/LOAD&amp;quot;,&lt;br /&gt;
                        &amp;quot;delta&amp;quot;:1&lt;br /&gt;
                    }      &lt;br /&gt;
                ]&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
description/details:&lt;br /&gt;
&lt;br /&gt;
Broker section&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
Item	Description	Example/values&lt;br /&gt;
url	MQTT broker URL	broker.hivemq.com&lt;br /&gt;
Protocol	Protocol used for communication with broker	[mqtt]&lt;br /&gt;
Port	MQTT broker port	1883&lt;br /&gt;
Ssl	SSL security selector	[false|true]&lt;br /&gt;
Type	Communication/setup type option	[generic]&lt;br /&gt;
username	Credentials for MQTT broker - username	freedom&lt;br /&gt;
password	Credentials for MQTT broker - password	peace|LOVE|empathy4ALL&lt;br /&gt;
clientid	[optional] MQTT clientid. Max. 32 characters. Variables ${MAC} or ${DEVICE_NAME} can be used.	myUniqueID1234&lt;br /&gt;
keepalive	[optional] MQTT keep alive period in seconds	90&lt;br /&gt;
&lt;br /&gt;
Subscribe topic for control of the output:&lt;br /&gt;
&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/action with payload for output control : (0 – off, 1 – on, 2 – short off, 3 – short on, 4 – toggle, 5 – no change)&lt;br /&gt;
&lt;br /&gt;
Publish topics for monitoring of the output state and load:&lt;br /&gt;
&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/state with payload providing output 1 state value - published when the output state change&lt;br /&gt;
•	netio/&amp;lt;DEVICE_NAME&amp;gt;/output/1/load with payload providing actual load of output 1 – published every 1111 seconds or when load change by 1W&lt;/div&gt;</summary>
		<author><name>Vkristof</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=File:Output.png&amp;diff=481</id>
		<title>File:Output.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=File:Output.png&amp;diff=481"/>
		<updated>2019-07-12T06:31:50Z</updated>

		<summary type="html">&lt;p&gt;Vkristof: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Vkristof</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=HiveMQ&amp;diff=425</id>
		<title>HiveMQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=HiveMQ&amp;diff=425"/>
		<updated>2019-07-10T14:45:57Z</updated>

		<summary type="html">&lt;p&gt;Vkristof: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;example integration with Cobra/PowerCable/PowerPDU4PS + HiveMQ public broker + MQTT Dash Android App&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cobra MQTT-flex configuration:&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;config&amp;quot;:{&lt;br /&gt;
        &amp;quot;broker&amp;quot;:{&lt;br /&gt;
            &amp;quot;url&amp;quot;:&amp;quot;broker.hivemq.com&amp;quot;,&lt;br /&gt;
            &amp;quot;protocol&amp;quot;:&amp;quot;mqtt&amp;quot;,&lt;br /&gt;
            &amp;quot;port&amp;quot;:1883,&lt;br /&gt;
            &amp;quot;ssl&amp;quot;:false,&lt;br /&gt;
            &amp;quot;type&amp;quot;:&amp;quot;generic&amp;quot;,&lt;br /&gt;
            &amp;quot;username&amp;quot;:&amp;quot;freedom&amp;quot;,&lt;br /&gt;
            &amp;quot;password&amp;quot;:&amp;quot;peace|LOVE|empathy4ALL&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;subscribe&amp;quot;:[&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/action&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;target&amp;quot;:&amp;quot;OUTPUTS/1/ACTION&amp;quot;,&lt;br /&gt;
                &amp;quot;action&amp;quot;:&amp;quot;${payload}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;publish&amp;quot;:[&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/state&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;retain&amp;quot;:true,&lt;br /&gt;
                &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/STATE}&amp;quot;,&lt;br /&gt;
                &amp;quot;events&amp;quot;:[&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;change&amp;quot;,&lt;br /&gt;
                        &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/STATE&amp;quot;&lt;br /&gt;
                    }&lt;br /&gt;
                ]&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/load&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;retain&amp;quot;:false,&lt;br /&gt;
                &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/LOAD}&amp;quot;,&lt;br /&gt;
                &amp;quot;events&amp;quot;:[&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;timer&amp;quot;,&lt;br /&gt;
                        &amp;quot;period&amp;quot;:5&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;delta&amp;quot;,&lt;br /&gt;
                        &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/LOAD&amp;quot;,&lt;br /&gt;
                        &amp;quot;delta&amp;quot;:1&lt;br /&gt;
                    }      &lt;br /&gt;
                ]&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HiveMQ connection settings (just to check, that data are being send towards internet):&lt;br /&gt;
&lt;br /&gt;
http://www.hivemq.com/demos/websocket-client/&lt;br /&gt;
&lt;br /&gt;
- put username, password and click connect&lt;br /&gt;
&lt;br /&gt;
- to check, that data are being send towards broker click 'Add Supscription' and fill in the Topic like: netio/{DEVICE_NAME}/# where replace {DEVICE_NAME} with name of your device (i.e.: if the name of your device is COBRA-8C, then put into this field: netio/COBRA-8C/# ). hash character ('#') stands for wildcard for all other subtopics (like state, voltage, energy etc.)&lt;br /&gt;
&lt;br /&gt;
- to check, that your device can listen to MQTT messages sent through broker fill in the section PUBLISH with Topic netio/{DEVICE_NAME}/output/{OUTPUT_NUM}/action (for example for second output of device named COBRA-8C put 'netio/COBRA-8C/output/2/action') here. for test, put the value number 4, which means toggle (0 - switch output off, 1 - switch output on, 2 - toggle output to the inverse state)&lt;br /&gt;
&lt;br /&gt;
Android App MQTT Dash (you can use any other, of course):&lt;br /&gt;
https://play.google.com/store/apps/details?id=net.routix.mqttdash&amp;amp;hl=en&lt;/div&gt;</summary>
		<author><name>Vkristof</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=HiveMQ&amp;diff=424</id>
		<title>HiveMQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=HiveMQ&amp;diff=424"/>
		<updated>2019-07-10T14:09:42Z</updated>

		<summary type="html">&lt;p&gt;Vkristof: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;example integration with Cobra/PowerCable/PowerPDU4PS + HiveMQ public broker + MQTT Dash Android App&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cobra MQTT-flex configuration:&lt;br /&gt;
{&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;config&amp;quot;:{&lt;br /&gt;
        &amp;quot;broker&amp;quot;:{&lt;br /&gt;
            &amp;quot;url&amp;quot;:&amp;quot;broker.hivemq.com&amp;quot;,&lt;br /&gt;
            &amp;quot;protocol&amp;quot;:&amp;quot;mqtt&amp;quot;,&lt;br /&gt;
            &amp;quot;port&amp;quot;:1883,&lt;br /&gt;
            &amp;quot;ssl&amp;quot;:false,&lt;br /&gt;
            &amp;quot;type&amp;quot;:&amp;quot;generic&amp;quot;,&lt;br /&gt;
            &amp;quot;username&amp;quot;:&amp;quot;freedom&amp;quot;,&lt;br /&gt;
            &amp;quot;password&amp;quot;:&amp;quot;peace|LOVE|empathy4ALL&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;subscribe&amp;quot;:[&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/action&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;target&amp;quot;:&amp;quot;OUTPUTS/1/ACTION&amp;quot;,&lt;br /&gt;
                &amp;quot;action&amp;quot;:&amp;quot;${payload}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;publish&amp;quot;:[&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/state&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;retain&amp;quot;:true,&lt;br /&gt;
                &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/STATE}&amp;quot;,&lt;br /&gt;
                &amp;quot;events&amp;quot;:[&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;change&amp;quot;,&lt;br /&gt;
                        &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/STATE&amp;quot;&lt;br /&gt;
                    }&lt;br /&gt;
                ]&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/load&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;retain&amp;quot;:false,&lt;br /&gt;
                &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/LOAD}&amp;quot;,&lt;br /&gt;
                &amp;quot;events&amp;quot;:[&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;timer&amp;quot;,&lt;br /&gt;
                        &amp;quot;period&amp;quot;:5&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;delta&amp;quot;,&lt;br /&gt;
                        &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/LOAD&amp;quot;,&lt;br /&gt;
                        &amp;quot;delta&amp;quot;:1&lt;br /&gt;
                    }      &lt;br /&gt;
                ]&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
HiveMQ connection settings (just to check, that data are being send towards internet):&lt;br /&gt;
&lt;br /&gt;
Android App MQTT Dash (you can use any other, of course):&lt;br /&gt;
https://play.google.com/store/apps/details?id=net.routix.mqttdash&amp;amp;hl=en&lt;/div&gt;</summary>
		<author><name>Vkristof</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=HiveMQ&amp;diff=423</id>
		<title>HiveMQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.netio-products.com/index.php?title=HiveMQ&amp;diff=423"/>
		<updated>2019-07-10T14:06:24Z</updated>

		<summary type="html">&lt;p&gt;Vkristof: init&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;example integration with Cobra/PowerCable/PowerPDU4PS + HiveMQ public broker + MQTT Dash Android App&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cobra MQTT-flex configuration:&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;config&amp;quot;:{&lt;br /&gt;
        &amp;quot;broker&amp;quot;:{&lt;br /&gt;
            &amp;quot;url&amp;quot;:&amp;quot;broker.hivemq.com&amp;quot;,&lt;br /&gt;
            &amp;quot;protocol&amp;quot;:&amp;quot;mqtt&amp;quot;,&lt;br /&gt;
            &amp;quot;port&amp;quot;:1883,&lt;br /&gt;
            &amp;quot;ssl&amp;quot;:false,&lt;br /&gt;
            &amp;quot;type&amp;quot;:&amp;quot;generic&amp;quot;,&lt;br /&gt;
            &amp;quot;username&amp;quot;:&amp;quot;freedom&amp;quot;,&lt;br /&gt;
            &amp;quot;password&amp;quot;:&amp;quot;peace|LOVE|empathy4ALL&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;subscribe&amp;quot;:[&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/action&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;target&amp;quot;:&amp;quot;OUTPUTS/1/ACTION&amp;quot;,&lt;br /&gt;
                &amp;quot;action&amp;quot;:&amp;quot;${payload}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;publish&amp;quot;:[&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/state&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;retain&amp;quot;:true,&lt;br /&gt;
                &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/STATE}&amp;quot;,&lt;br /&gt;
                &amp;quot;events&amp;quot;:[&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;change&amp;quot;,&lt;br /&gt;
                        &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/STATE&amp;quot;&lt;br /&gt;
                    }&lt;br /&gt;
                ]&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;topic&amp;quot;:&amp;quot;netio/${DEVICE_NAME}/output/1/load&amp;quot;,&lt;br /&gt;
                &amp;quot;qos&amp;quot;:0,&lt;br /&gt;
                &amp;quot;retain&amp;quot;:false,&lt;br /&gt;
                &amp;quot;payload&amp;quot;:&amp;quot;${OUTPUTS/1/LOAD}&amp;quot;,&lt;br /&gt;
                &amp;quot;events&amp;quot;:[&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;timer&amp;quot;,&lt;br /&gt;
                        &amp;quot;period&amp;quot;:5&lt;br /&gt;
                    },&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;type&amp;quot;:&amp;quot;delta&amp;quot;,&lt;br /&gt;
                        &amp;quot;source&amp;quot;:&amp;quot;OUTPUTS/1/LOAD&amp;quot;,&lt;br /&gt;
                        &amp;quot;delta&amp;quot;:1&lt;br /&gt;
                    }      &lt;br /&gt;
                ]&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
HiveMQ connection settings (just to check, that data are being send towards internet):&lt;br /&gt;
&lt;br /&gt;
Android App MQTT Dash (you can use any other, of course):&lt;br /&gt;
https://play.google.com/store/apps/details?id=net.routix.mqttdash&amp;amp;hl=en&lt;/div&gt;</summary>
		<author><name>Vkristof</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.netio-products.com/index.php?title=Welcome_to_NETIO_resources_%26_projects_%26_documentation_overview&amp;diff=422</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=422"/>
		<updated>2019-07-10T12:17:24Z</updated>

		<summary type="html">&lt;p&gt;Vkristof: &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>Vkristof</name></author>
		
	</entry>
</feed>