Changes

4,391 bytes added ,  08:14, 13 September 2023
no edit summary
Line 1: Line 1: −
This page contains information on the power options supported on Teltonika Networks devices. To find more information about the specific device powering options, click on the device name.
+
<p style="color:red">The information on this page is updated in accordance with the [https://wiki.teltonika-networks.com/view/FW_%26_SDK_Downloads'''00.07.4'''] firmware version .</p>
 +
__TOC__
 +
==Summary==
 +
In this guide, the MQTT Serial Gateway function will be configured using third-party MQTT Broker services (in this example, ''Flespi.io'').
   −
<table cellspacing="0" cellpadding="0" width=95%>
+
==Configuration overview & prerequisites==
    <tr>
+
*Two devices with serials ports - one acts as Modbus RTU Master, another as Modbus RTU Slave;
        <td style="vertical-align: top;"><b>RUT Routers</b>
+
*Flespi.io account to act as an MQTT Broker/Publisher/Subscriber (for first configuration example);
            <ul>
  −
<li>[[RUT200_Powering_Options|RUT200]]</li>
  −
<li>[[RUT230_Powering_Options|RUT230]]</li>
  −
<li>[[RUT240_Powering_Options|RUT240]]</li>
  −
<li>[[RUT241_Powering_Options|RUT241]]</li>
  −
<li>[[RUT300_Powering_Options|RUT300]]</li>
  −
<li>[[RUT360_Powering_Options|RUT360]]</li>
  −
<li>[[RUT850_Powering_Options|RUT850]]</li>
  −
<li>[[RUT950_Powering_Options|RUT950]]</li>
  −
<li>[[RUT951_Powering_Options|RUT951]]</li>
  −
<li>[[RUT955_Powering_Options|RUT955]]</li>
  −
<li>[[RUT956_Powering_Options|RUT956]]</li>
  −
            </ul>
  −
        </td>
     −
        <td style="vertical-align: top;"><b>RUTX Routers</b>
+
[[File:MQTT Serial gateway topology v2.png|border|center|class=tlt-border|847x279px]]
            <ul>
  −
<li>[[RUTX08_Powering_Options|RUTX08]]</li>
  −
<li>[[RUTX09_Powering_Options|RUTX09]]</li>
  −
<li>[[RUTX10_Powering_Options|RUTX10]]</li>
  −
<li>[[RUTX11_Powering_Options|RUTX11]]</li>
  −
<li>[[RUTX12_Powering_Options|RUTX12]]</li>
  −
<li>[[RUTXR1_Powering_Options|RUTXR1]]</li>
  −
<li>[[RUTX14_Powering_Options|RUTX14]]</li>
  −
<li>[[RUTX50_Powering_Options|RUTX50]]</li>
  −
            </ul>
  −
        </td>
  −
        <td style="vertical-align: top;"><b>TRB Gateways</b>
  −
            <ul>
  −
<li>[[TRB140_Powering_Options|TRB140]]</li>
  −
<li>[[TRB141_Powering_Options|TRB141]]</li>
  −
<li>[[TRB142_Powering_Options|TRB142]]</li>
  −
<li>[[TRB143_Powering_Options|TRB143]]</li>
  −
<li>[[TRB145_Powering_Options|TRB145]]</li>
  −
<li>[[TRB245_Powering_Options|TRB245]]</li>
  −
<li>[[TRB255_Powering_Options|TRB255]]</li>
  −
<li>[[TRB500_Powering_Options|TRB500]]</li>
  −
            </ul>
  −
        </td>
     −
        <td style="vertical-align: top;"><b>TRM Modems</b>
+
RUT2 will act as a Modbus RTU slave and RUT1 as a Modbus RTU Master. On RUT1, MQTT Serial Gateway will be configured to transfer Modbus data over MQTT. Flespi.io platform will serve as an MQTT Broker
            <ul>
  −
                <li>[[TRM240_Powering_Options|TRM240]]</li>
  −
                <li>[[TRM250_Powering_Options|TRM250]]</li>
  −
            </ul>
  −
        </td>
  −
        <td style="vertical-align: top;"><b>TSW Switches</b>
  −
            <ul>
  −
<li>[[TSW010_Powering_Options|TSW010]]</li>
  −
<li>[[TSW100_Powering_Options|TSW100]]</li>
  −
<li>[[TSW101_Powering_Options|TSW101]]</li>
  −
<li>[[TSW110_Powering_Options|TSW110]]</li>
  −
<li>[[TSW200_Powering_Options|TSW200]]</li>
  −
<li>[[TSW210_Powering_Options|TSW210]]</li>
  −
<li>[[TSW304_Powering_Options|TSW304]]</li>
  −
            </ul>
  −
        </td>
     −
        <td style="vertical-align: top;"><b>Consumer Routers</b>
+
==RUT2 configuration==
            <ul>
+
===Configuring Modbus RTU Slave===
                <li>[[TCR100_Powering_Options|TCR100]]</li>
+
----
            </ul>
+
Go to Services → Modbus → Modbus RTU Slave and create a new instance.
        </td>
+
# Enter the '''desired instance name''';
 +
# Select the '''desired serial interface'''.
   −
<td style="vertical-align: top;"><b>Uninterruptable Power Supplies</b>
+
[[File:Modbus RTU Slave.png|border|center|class=tlt-border|855 × 308px]]
             <ul>
+
 
                <li>[[BAT120_Powering_Options|BAT120]]</li>
+
==RUT1 configuration==
             </ul>
+
===Configuring MQTT Gateway===
        </td>
+
----
    </tr>
+
Go to '''Services → Modbus → MQTT Gateway''' and there:
</table>
+
 
 +
# '''Enable''' the '''instance''';
 +
# '''Enter Host''' (copied from flespi connection settings without 'wss://' and port);
 +
# '''Enter Username''' (Copied from flespi Connection settings generated '''token''');
 +
# '''Enter Password'''.
 +
 
 +
[[File:MQTT Gateway config.png|border|center|class=tlt-border|862 × 412px]]
 +
 
 +
'''Note''': ''Everything else can be left as default or changed according to your needs.''
 +
 
 +
===Configuring Serial Gateway===
 +
----
 +
Under the MQTT Gateway configuration, create the Serial Gateway:
 +
# Enter the '''desired device ID''';
 +
# Select the '''desired serial interface'''.
 +
 
 +
[[File:Serial gateway config.png|border|center|class=tlt-border|868×308px]]
 +
 
 +
===Configuring Flespi.io MQTT Broker===
 +
----
 +
'''Log in''' or '''create an account''' on '''https://flespi.io''';
 +
 
 +
#Navigate to '''MQTT Board''' on the '''left side''' menu;                                       
 +
#On the right-hand panel, top right corner, next to the name of the MQTT board, '''press the cogwheel-looking icon''' to open ''Connection Settings'';
 +
#In the opened window, press '''"Get flespi token"''' to generate a username;
 +
#Enter the '''Client name''';
 +
#Copy the Host address;
 +
#Copy '''Username''';
 +
#Create a '''password'''.
 +
 
 +
Once done, save all the changes.
 +
[[File:Flespi board.png|border|center|class=tlt-border|1102x729px]]
 +
 
 +
===Message format for MQTT publisher===
 +
----
 +
Modbus request data sent in the MQTT payload should be generated in accordance with the following format:
 +
 
 +
<pre>1 <COOKIE> <SERIAL_DEVICE_ID> <TIMEOUT> <SLAVE_ID> <MODBUS_FUNCTION> <FIRST_REGISTER> <REGISTER_COUNT> </pre>
 +
 
 +
The table below explains what each option means:
 +
 
 +
{| class="wikitable"
 +
|1.  Format version
 +
|'''1'''
 +
|-
 +
|2. Cookie
 +
|from '''0''' to '''2<sup>64</sup> -1'''
 +
|-
 +
|3. Serial device ID
 +
|a string used to identify a serial device. Must match with <u>Device ID</u> field in MQTT Gateway page Serial gateway configuration section
 +
|-
 +
|4. Timeout
 +
|timeout for Modbus connection, in seconds. Range [1..999].
 +
|-
 +
|5. Slave ID
 +
|Indicates to which slave request is sent
 +
|-
 +
|6. Modbus function
 +
|Modbus task type that will be executed. Possible values are:
 +
        <ul>
 +
            <li><b>1</b> - read coils;</li>
 +
            <li><b>2</b> - read input coils;</li>
 +
            <li><b>3</b> - read holding registers;</li>
 +
            <li><b>4</b> - read input registers;</li>
 +
            <li><b>5</b> - set single coil;</li>
 +
            <li><b>6</b> - write to a single holding register;</li>
 +
            <li><b>15</b> - set multiple coils;</li>
 +
             <li><b>16</b> - write to multiple holding registers.</li>
 +
        </ul>
 +
|-
 +
|7. First register
 +
|number (not address) of the first register/coil/input (in range [1..65536]) from which the registers/coils/inputs will be read/written to.
 +
|-
 +
|8. Registry count
 +
| <li><b>1</b> - <u>coil count</u> (in range [1..2000]); must not exceed the boundary (first coil number + coil count <= 65537);</li>
 +
            <li><b>2</b> - <u>input count</u> (in range [1..2000]); must not exceed the boundary (first input number + input count <= 65537);</li>
 +
            <li><b>3</b> - <u>holding register count</u> (in range [0..125]); must not exceed the boundary (first register number + holding register count <= 65537);</li>
 +
            <li><b>4</b> - <u>input register count</u> (in range [0..125]); must not exceed the boundary (first register number + input register count <= 65537);</li>
 +
            <li><b>5</b> - <u>coil value</u> (in range [0..1]);</li>
 +
            <li><b>6</b> - <u>holding register value</u> (in range [0..65535]);</li>
 +
             <li><b>15</b> - <u>coil count</u> (in range [1..1968]); must not exceed the boundary (first coil number + coil count <= 65537); and <u>coil values</u> separated with commas, without spaces (e.g., <i>1,2,3,654,21,789</i>); there must be exactly as many values as specified (with coil count); each value must be in the range of [0..1].
 +
|}
 +
====Examples====
 +
----
 +
{| class="wikitable"
 +
|Setting relay (on) (Relay address is 202, which means 'Number of first register will be 203)
 +
|'''1 1 1 1 1 6 203 1'''
 +
|-
 +
|Getting temperature
 +
|'''1 1 1 1 1 3 6 2'''
 +
|}
 +
Modbus parameters are held within registers. The register numbers and corresponding system values can be found [[RUT955_Monitoring_via_Modbus#Get_Parameters|'''in this article''']].
 +
 
 +
==Testing MQTT Publisher and Subscriber on flespi.io==
 +
====Adding Flespi Subscriber====
 +
----
 +
To test the Modbus Serial Gateway functionality, '''log into''' your '''Flespi account''' → '''MQTT Board''' and '''add a Subscriber''':
 +
 
 +
#Press '''''<nowiki/>'+'''''' button on the top right corner
 +
#Select '''''<nowiki/>'Subscriber''''''
 +
# In the topic field enter '''''<nowiki/>'response''''''
 +
#Press '''''<nowiki/>'Subscribe'''''' button
 +
 
 +
[[File:Flespi subscriber.png|border|class=tlt-border|496x204px]]          [[File:Flespi subscriber setup.png|border|class=tlt-border|496x205px]]
 +
====Adding Flespi Subscriber====
 +
----
 +
 
 +
Also, you will need to '''add a Publisher''':
 +
 
 +
#Press '''''<nowiki/>'+'''''' button on the top right corner
 +
#Select '''''<nowiki/>'Publisher''''''
 +
#In the topic field enter '''''<nowiki/>'request''''''
 +
#In the message field enter message, for this example '''''<nowiki/>'Getting temperature'''''' is used
 +
#Press '''''<nowiki/>'Publish'''''' button
 +
 
 +
[[File:Flespi publisher.png|border|class=tlt-border|495x238px]]  [[File:Flespi publisher setup.png|border|class=tlt-border|494x239px]]
 +
====Flespi Subscriber output====
 +
----
 +
Check the response in the '''''<nowiki/>'Subscriber'''''' tab, you should receive a message similar to the one below.
 +
 
 +
 
 +
[[File:Flespi response.png|border|center|class=tlt-border|500x305px]]
 +
 
 +
 
 +
In the output, we can see that router's '''temperature''' is '''44 degrees Celsius'''.
 +
 
 +
==See Also==
 +
*[[RUT955 Monitoring via Modbus#Get Parameters]]
 +
*[[RUT955_Modbus#MQTT_Gateway|MQTT Gateway and Modbus]]
 +
==External links==
 +
[https://flespi.io/#/ Flespi.io]

Navigation menu