Domnev: Difference between revisions

From Teltonika Networks Wiki
No edit summary
No edit summary
 
(86 intermediate revisions by the same user not shown)
Line 1: Line 1:
<p style="color:red">The information in this page is updated in accordance with [https://wiki.teltonika-networks.com/view/FW_%26_SDK_Downloads'''00.07.03.1'''] firmware version .</p>
<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.08'''] firmware version .</p>
==Introduction==
__TOC__
==Summary==
This article contains instructions on how to send M-Bus data to the server using various protocols.
This article contains instructions on how to send M-Bus data to the server using various protocols.


==Configuration overview and prerequisites==
==Configuration overview & prerequisites==
 
Before we begin, let's take a look at the configuration that we are attempting to achieve and the prerequisites that make it possible.
Before we begin, let's take a look at the configuration that we are attempting to achieve and the prerequisites that make it possible.


Line 13: Line 13:
* An end device (PC, Laptop, Tablet, Smartphone) for configuration;
* An end device (PC, Laptop, Tablet, Smartphone) for configuration;


If you're having trouble finding any page or some of the parameters described here on your device's WebUI, you should turn on '''"Advanced WebUI"''' mode. You can do that by '''clicking''' the '''"Basic"''' button '''under''' '''"Mode,"''' which is located at the top-right corner of the WebUI.
{{Template:Networking_rutos_manual_basic_advanced_webui_disclaimer
[[File:TRB143 advanced.gif|border|center|class=tlt-border|1004x1004px]]
| series = RUTX
}}


==Node-RED installation and setup==
==Adding M-Bus devices==
The '''[[TRB143_M-Bus|M-Bus Settings]]''' section is used to configure the general service functionality. To set up a new M-Bus instance, go to '''Services → M-Bus → Client'''. Add a new device to the configuration press [[File:Add Button.png|60x90px]] button which is shown below.


We are going to set up Node-RED in a Linux virtual machine. For Node-RED to work, you would need to install Node.js version 14.00 or higher. If you already have Node.js installed, verify the Node.js version using this command:
[[File:Mbus adding new device.png||border|class=tlt-border]]
<pre>
 
node -v
===Device configuration===
</pre>
If you do not have Node.js installed, run these commands to install it:
<pre>
sudo apt install curl
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash –
sudo apt-get install -y nodejs
</pre>
Once we have Node.js installed, we can install Node-RED. Use this command to install:
<pre>
sudo npm install -g –unsafe-perm node-red
</pre>
Use the command '''''node-red''''' to start a local server. Here is how the terminal should look like if the server starts correctly:
[[File:Server is running node red terminal.png|border|600px|class=tlt-border]]
----
----
Once you have the local server running, use the local IP and port number in your internet browser. In this case, we are using 127.0.0.1:1880:
You will be granted to a new window. Configure your M-Bus device accordingly:
[[File:Use server address in web browser.png|border|500px|class=tlt-border]]


For MQTT usage, we are going to need MQTT-specific nodes. Use the side menu to navigate to the Manage Palette section and install these nodes:
# '''Name''': Enter the desired name of the M-Bus device
*node-red-contrib-aedes
# '''Address type''': select which M-Bus address will be used
*node-red-contrib-mqtt-broker
# '''Primary/Secondary address''': specify M-Bus address


[[File:Manage palette and download these mqtt nodes.png|border|500px|class=tlt-border]]
[[File:Mbus adding new device configuration v3.png|border|class=tlt-border]]


==Configuration==
Test if the M-Bus device is reachable by a specified primary/secondary address. To do so click on [[File:Ping_device_option_mbus.png|110x110px]]. You might get on of two outputs:


===M-Bus Data to Server via MQTT===
* If you have specified correct primary/secondary address, you will receive:
[[File:Mbus device pingable v2.png|border|class=tlt-border|300px]]
 
* If you have specified incorrect primary/secondary address, you will receive (if you do not know what address should be used, refer to the Scanning for available M-Bus devices (PRIDET URL) secion:
[[File:Mbus device not pingable v2.png|border|class=tlt-border|300px]]
 
Once finished, save the configuration by clicking [[File:Savenapply button.png|Savenapply button.png]].
 
===Scanning for available M-Bus devices===
----
----
This section contains information on how to send M-Bus data to the server on Node-RED using the MQTT protocol.


[[File:M-bus topology.png|border|750x750px|class=tlt-border]]
If you are not sure what address your M-Bus devices have, you can try scanning for the available M-Bus devices. To do so click on [[File:Scan button.png]] button.


The M-Bus meter is directly connected to TRB143. Gateway reads the M-Bus data and sends it to the server using the MQTT protocol.
====Scan settings====
====Data to Server configuration====
----
----
The '''[[TRB143_Data_to_Server|Data to Server]]''' feature provides you with the possibility to set up data senders that collect data from various sources and periodically send it to remote servers. This section will walk you through configuring the Data to Server to send M-Bus data to the Node-RED server. To configure Data to Server, '''access the router's WebUI''' and navigate to '''Services''', then '''Data to Server''':
You will be granted to a new window. Configure scan settings accordingly:


# '''Enable''' instance;
# '''Scan type''': select which M-Bus address will be scanned
# '''Name:''' Enter '''desired''' '''instance name''';
# '''Scan range''': From what M-Bus address scanning will start and M-Bus address until scanning will be performed.
# '''Data source:''' M-bus;
[[File:Mbus scan.png|border|class=tlt-border]]
# '''Protocol:''' MQTT;
# '''JSON format:''' Enter what '''data''' you would like '''to send''';
# '''URL/Host/Connection string:''' Enter '''address of server''';
# '''Port:''' Enter '''server port''';
# '''Topic''': Enter '''desired''' '''topic name'''


[[File:Mbus data to server MQTT renewed.png|border|class=tlt-border|1094x1094px]]
To start the scan click on [[File:Start scan button.png]] button.


====M-Bus configuration====
====Found devices====
----
----
The '''[[TRB143_M-Bus|M-Bus Settings]]''' section is used to configure the general service functionality. To set up a new M-Bus instance, go to '''Services → M-Bus:'''
Once the scan is finished you should see the list of M-Bus devices that TRB143 were able to find:


# '''Enable''' M-Bus;
[[File:Mbus scanned devices add.png|border|class=tlt-border]]
# '''ID''': Enter desired '''instance name''';
# '''Add''';


[[File:M bus configuration correct.png|border|class=tlt-border|904x904px]]
You can either [[File:Pencil2.png]] '''(1)''' M-Bus devices primary address or [[File:Add Button.png|60x90px]] '''(2)''' to the M-Bus devices list.


After this, you should be redirected to the configuration page for the M-Bus instance:
==Gathering M-Bus data==


[[File:M bus instance creation.png|border|class=tlt-border|904x904px]]
If the device successfully added to the list, under the General settings you should see that the Status changes to <span style="color:green">Active</span>.


# '''Enable''' instance;
[[File:Mbus status active v2.png|border|class=tlt-border]]
# '''Name''': Enter your '''desired name''';
#'''Period''': Enter '''desired period''';
At the bottom of the M-Bus instance, you should see the Request Configuration section. It is used to configure requests from M-Bus devices.


[[File:HEX data type.png|border|class=tlt-border|904x904px]]
===Data collecting groups===
----
To reach data collecting groups configuration press [[File:Pencil2.png]] button. [[File:Add Button.png|60x90px]] button lets you to create a new instance.
 
[[File:Mbus data collect overview.png|border|class=tlt-border]]


# '''Enable''' request configuration;
====Data collecting group instance====
# '''Slave address:''' Enter '''desired slave address''';
# '''Data type:''' Select desired data type (this time we will be using '''HEX''');
# '''Save & apply''' changes.
====Node-RED configuration====
----
----
Below you can see the Node-Red block diagram that is used to receive data and its configuration:
 
* '''aedes broker block''' - Broker;
Each data collection group contains the following information. Configure device accordingly:
* '''MQTT in block''' - mbus;
 
* '''Debug''' - debug 2;
# '''Enabled''': on
[[File:Node-rs-topology.png|border|center|class=tlt-border|654x654px]]
# '''Name''': desired name of the instance
# '''Period''': desired time duration between data retrievals
# '''Data type''': desired data type to process the received data. Depending on your needs you can select between 5 different data types: '''JSON, XML, ASCII, Hexadecimal''' and '''Binary'''.
 
[[File:Mbus data collect group v2.png|border|class=tlt-border]]
 
You can check if your configuration works accordingly by pressing the [[File:Mbus test button.png]] button. You should see the data in a pop-up field:
 
[[File:Mbus TEST output.png|border|class=tlt-border]]
 
====Group values====
----
----
Configure the aedes broker block and broker blocks accordingly:
To reach group values configuration press [[File:Pencil2.png]] button:
[[File:Node-red-broker-new.png|border|left|class=tlt-border|474x474px|left]]
 
[[File:Node-red-debug-new.png|border|right|class=tlt-border|474x474px|right]]
[[File:Mbus edit group values.png|border|class=tlt-border]]
<table class="nd-othertables_2" style="display: inline-table;">
 
    <tr>
There you can adjust additional settings:
        <td width=755; style="border-bottom: 1px solid white;">
 
# '''MQTT Port''': 1883;
# '''Enable''': Enable/disable data group value.
# '''WS Bind''': port;
# '''FCB toggle''': FCB (Frame Count-Bit), one-bit counter for reliable server-client communication.
# '''Done''';
# '''Manufacturer information''': Select to include manufacturer information in the payload.
</td>
# '''Selected parameters''': Select to include the all parameters saved from device, or a custom subset of them. If the custom is selected you can specify '''frame''', '''record''' numbers and also a '''paramater'''  
<td width=755; style="border-bottom: 1px solid white;">
 
# '''Output''': msg. payload;
[[File:Mbus device groupsa.png|border|class=tlt-border]]
# '''To''': debug window;
# '''Done''';
</td>
    </tr>
</table>


----
Adjust the MQTT IN node:
[[File:Node-red-subscriber-configuration.png|border|class=tlt-border|1094x1094px]]


# '''Edit:''' Configure MQTT-Broker node;
==Sending data to the server==
# '''Name''': Enter '''desired MQTT-Broker nodes name;'''
The '''[[TRB143_Data_to_Server|Data to Server]]''' feature provides you with the possibility to set up data senders that collect data from various sources and periodically send it to remote servers. This section will walk you through configuring the Data to Server to send M-Bus data to the desired HTTP or MQTT server.
# '''Server''': '''127.0.0.1''' as we will be using '''Node-RED as MQTT-Broker''';
# '''Port''': 1883;
# '''Update''': Save the changes;
# '''Server''': Select '''MQTT-Broker''' that you have '''just created''';
# '''Action''': Subscribe to single topic;
# '''Topic''': Enter the '''topic''' that you have '''set in Data to Server configuration''';
# '''Qos''': 0;
# '''Output''': Auto-Detect;
# '''Update''': Save the changes;
====Results====
----
If you have taken all of the steps described above, the configuration is complete. Below you can see M-Bus data output in HEX format.
[[File:MQTT broker HEX data.png|border|class=tlt-border|404x404px]]


===M-Bus Data to Server Via HTTP===
===Data to Server configuration===
----
----
This section contains information on how to send M-Bus data to the server on Node-RED using the HTTP(S) protocol.
To set up Data to Server, navigate to Services → Data to Server. Enter desired name of the instnace and hit [[File:Add Button.png|60x90px]] button which is shown below.


[[File:M-bus topology HTTP data.png|border|750x750px|class=tlt-border]]
[[File:Mbus data to server create.png|border|class=tlt-border]]


The M-Bus meter is directly connected to TRB143. Gateway reads the M-Bus data and send it to the server using Hthe TTP(S) protocol.
===Data configuration===
====Data to Server configuration====
----
----
To set up Data to Server, navigate to '''Services''' '''→ Data to Server:'''


[[File:Mbus HTTP data to server config.png|border|class=tlt-border|1094x1094px]]
Each data collection group contains the following information. Configure device accordingly:
# '''Enable''' instance;
 
# '''Name:''' Enter '''desired''' '''instance name''';
# '''Name''': desired name of the instance
# '''Data source:''' M-bus;
# '''Type''': M-Bus data
# '''Protocol:''' HTTP(S);
# '''Format''': custom or JSON depending on a need.
# '''JSON format:''' Enter what '''data''' you would like '''to send''';
# '''URL/Host/Connection string:''' Enter '''address of server''' and '''port''';
====M-Bus configuration====
----
Go to Services '''→ M-Bus →''' the '''instance''' you have created '''→ edit.''' After that, scroll down to '''Request configuration → edit.''' There, you will be able to change the data type.


[[File:Mbus XML data type.png|border|class=tlt-border|954x954px]]
[[File:Mbus data to server configuration.png|border|class=tlt-border]]


# '''Enable''' request configuration;
# '''Slave address:''' Enter '''desired slave address;'''
# '''Data type:''' Select desired data type (this time we will be using '''XML''');
# '''Save & apply''' changes.
====Node-RED configuration====
----
Below you can see the Node-Red block diagram that is used to receive data and its configuration:
* '''TCP in block''' - tcp:8080;
* '''Debug''' - debug;
[[File:HTTP node-red.png|border|class=tlt-border|center|514x514px]]
----
Configure TCP in and debug blocks accordingly:
[[File:HTTP node-RED block config.png|border|left|class=tlt-border|474x474px|left]]
[[File:Node-red-debug-new.png|border|right|class=tlt-border|534x534px|right]]
<table class="nd-othertables_2" style="display: inline-table;">
    <tr>
        <td width=755; style="border-bottom: 1px solid white;">
# '''Type''': Listen on;
# '''Port''': 8080;
# '''Output''': Stream of String;
# '''Done''';
</td>
<td width=755; style="border-bottom: 1px solid white;">
# '''Output''': msg. payload;
# '''To''': debug window;
# '''Done''';
</td>
    </tr>
</table>
====Results====
----
If you have taken all of the steps described above, the configuration is complete. Below you can see M-Bus data output in XML format.
[[File:XML data Mbus.png|border|class=tlt-border|304x304px]]
===MQTT broker===
----
This section contains information on how to send M-Bus data to the server on Node-RED using a Teltonika router as a MQTT broker.


[[File:M-bus topology TRBroker.png|border|750x750px|class=tlt-border]]
Once finished configuring Data configuration tab click on [[File:Mbus data to server collection edit.png|160x160px]] button.


The M-Bus meter is directly connected to TRB143. Gateway acts as an MQTT broker; it reads the M-Bus data and sends it to the MQTT subscriber.
===Collection configuration===
====Data to Server configuration====
----
----
To set up Data to Server, navigate to '''Services''' '''→ Data to Server:'''


[[File:MQTT broker data to server config.png|border|class=tlt-border|1094x1094px]]
[[File:Mbus data to server collection configuration.png|border|class=tlt-border]]
# '''Enable''' instance;
 
# '''Name:''' Enter '''desired instance name''';
Once finished configuring Collection configuration tab click on [[File:Mbus data to server server button.png|160x160px]] button.
# '''Data source:''' M-bus;
# '''Protocol:''' MQTT;
# '''JSON format:''' Enter what '''data''' you would like '''to send''';
# '''URL/Host/Connection string:''' Localhost IP;
# '''Port:''' enter '''server port''';
# '''Topic''': enter '''desired topic name''';
====MQTT broker configuration====
----
The '''MQTT Broker''' is an entity that listens for connections on the specified port and relays received messages to MQTT clients. To set up MQTT Broker go to S'''ervices → MQTT → Broker:'''


[[File:Mbus MQTT Broker.png|border|class=tlt-border|954x954px]]
===Server configuration===
# '''MQTT broker''': On;
# '''Local port''': 1883;
====M-Bus configuration====
----
----
Go to Services '''→ M-Bus →''' the '''instance''' you have created '''→ edit.''' After that, scroll down to '''Request configuration → edit.''' There, you will be able to change the data type.
This section contains information on how to configure MQTT and HTTP servers information.


[[File:Mbus BIN data type.png|border|class=tlt-border|854x854px]]
====HTTP configuration====
# '''Enable''' request configuration;
# '''Slave address''': Enter '''desired slave address''';
# '''Data type''': Select desired data type (this time we will be using '''BIN''');
# '''Save & apply''' changes.
====Node-RED configuration====
----
Below you can see the Node-Red block diagram that is used to receive data and its configuration:
* '''MQTT in block''' - mbus;
* '''Debug''' - debug;
[[File:MQTT broker node-RED.png|border|center|class=tlt-border|514x514px]]
----
----
Configure debug block:
<table class="nd-othertables_2">
    <tr>
        <th width=790; style="border-bottom: 1px solid white;" rowspan=2>[[File:Node-red-debug-new.png|border|left|class=tlt-border|474x474px|left]]</th>
        <th width=355; style="border-bottom: 1px solid white;></th>
    </tr>
    <tr>
<td width=755; style="border-bottom: 1px solid white;">


# '''Type''': HTTP
# '''Server address''': desired server address


'''Note''': not specified fields are optional.


[[File:Mbus data to server HTTP configuration.png|border|class=tlt-border]]


====MQTT configuration====
----


# '''Type''': MQTT
# '''Server address''': desired server address
# '''Topic''': MQTT topic to be used for publishing the data.


'''Note''': not specified fields are optional.


[[File:Mbus data to server MQTT configuration.png|border|class=tlt-border]]


Once finished configuring Server configuration tab click on [[File:Savenapply button.png|Savenapply button.png]] button.


===Results===
----


[[File:Mbus data received v2.png|border|class=tlt-border]]


# '''Output''': msg. payload;
'''Note''': received data formating depends on the settings you apply under Data to Server and M-Bus configurations.
# '''To''': debug window;
# '''Done''';
</td>
    </tr>
</table>
----
Adjust the MQTT in node:
[[File:Node-red-mqtt-in-TRBroker.png|border|class=tlt-border|1100x1100px]]
# '''Edit:''' Configure MQTT-Broker node;
# '''Name''': Enter '''desired MQTT-Broker nodes name;'''
# '''Server''': '''127.0.0.1''' as we will be using '''Node-RED as MQTT-Broker''';
# '''Port''': 1883;
# '''Update''': Save the changes;
# '''Server''': Select '''MQTT-Broker''' that you have '''just created''';
# '''Action''': Subscribe to single topic;
# '''Topic''': Enter the '''topic''' that you have '''set in Data to Server configuration''';
# '''Qos''': 0;
# '''Output''': Auto-Detect;
# '''Update''': Save the changes;
====Results====
----
If you have taken all of the steps described above, the configuration is complete. Below you can see M-Bus data output in BIN format.
[[File:MQTT BIN data.png|border|class=tlt-border|304x304px]]
==See Also==
* [[TRB143_M-Bus|M-Bus]]
* [[TRB143_Data_to_Server|Data to Server]]
* [[TRB143_MQTT#MQTT_Broker|MQTT Broker]]
==External links==
[https://nodered.org/docs/getting-started/ Node-RED]

Latest revision as of 07:20, 25 October 2024

The information on this page is updated in accordance with the 00.07.08 firmware version .

Summary

This article contains instructions on how to send M-Bus data to the server using various protocols.

Configuration overview & prerequisites

Before we begin, let's take a look at the configuration that we are attempting to achieve and the prerequisites that make it possible.

Prerequisites:

  • TRB143;
  • M-Bus device;
  • Server;
  • An end device (PC, Laptop, Tablet, Smartphone) for configuration;

If you're having trouble finding this page or some of the parameters described here on your device's WebUI, you should turn on "Advanced WebUI" mode. You can do that by clicking the "Advanced" button, located at the top of the WebUI.

Adding M-Bus devices

The M-Bus Settings section is used to configure the general service functionality. To set up a new M-Bus instance, go to Services → M-Bus → Client. Add a new device to the configuration press button which is shown below.

Device configuration


You will be granted to a new window. Configure your M-Bus device accordingly:

  1. Name: Enter the desired name of the M-Bus device
  2. Address type: select which M-Bus address will be used
  3. Primary/Secondary address: specify M-Bus address

Test if the M-Bus device is reachable by a specified primary/secondary address. To do so click on . You might get on of two outputs:

  • If you have specified correct primary/secondary address, you will receive:

  • If you have specified incorrect primary/secondary address, you will receive (if you do not know what address should be used, refer to the Scanning for available M-Bus devices (PRIDET URL) secion:

Once finished, save the configuration by clicking Savenapply button.png.

Scanning for available M-Bus devices


If you are not sure what address your M-Bus devices have, you can try scanning for the available M-Bus devices. To do so click on button.

Scan settings


You will be granted to a new window. Configure scan settings accordingly:

  1. Scan type: select which M-Bus address will be scanned
  2. Scan range: From what M-Bus address scanning will start and M-Bus address until scanning will be performed.

To start the scan click on button.

Found devices


Once the scan is finished you should see the list of M-Bus devices that TRB143 were able to find:

You can either (1) M-Bus devices primary address or (2) to the M-Bus devices list.

Gathering M-Bus data

If the device successfully added to the list, under the General settings you should see that the Status changes to Active.

Data collecting groups


To reach data collecting groups configuration press button. button lets you to create a new instance.

Data collecting group instance


Each data collection group contains the following information. Configure device accordingly:

  1. Enabled: on
  2. Name: desired name of the instance
  3. Period: desired time duration between data retrievals
  4. Data type: desired data type to process the received data. Depending on your needs you can select between 5 different data types: JSON, XML, ASCII, Hexadecimal and Binary.

You can check if your configuration works accordingly by pressing the button. You should see the data in a pop-up field:

Group values


To reach group values configuration press button:

There you can adjust additional settings:

  1. Enable: Enable/disable data group value.
  2. FCB toggle: FCB (Frame Count-Bit), one-bit counter for reliable server-client communication.
  3. Manufacturer information: Select to include manufacturer information in the payload.
  4. Selected parameters: Select to include the all parameters saved from device, or a custom subset of them. If the custom is selected you can specify frame, record numbers and also a paramater


Sending data to the server

The Data to Server feature provides you with the possibility to set up data senders that collect data from various sources and periodically send it to remote servers. This section will walk you through configuring the Data to Server to send M-Bus data to the desired HTTP or MQTT server.

Data to Server configuration


To set up Data to Server, navigate to Services → Data to Server. Enter desired name of the instnace and hit button which is shown below.

Data configuration


Each data collection group contains the following information. Configure device accordingly:

  1. Name: desired name of the instance
  2. Type: M-Bus data
  3. Format: custom or JSON depending on a need.


Once finished configuring Data configuration tab click on button.

Collection configuration


Once finished configuring Collection configuration tab click on button.

Server configuration


This section contains information on how to configure MQTT and HTTP servers information.

HTTP configuration


  1. Type: HTTP
  2. Server address: desired server address

Note: not specified fields are optional.

MQTT configuration


  1. Type: MQTT
  2. Server address: desired server address
  3. Topic: MQTT topic to be used for publishing the data.

Note: not specified fields are optional.

Once finished configuring Server configuration tab click on Savenapply button.png button.

Results


Note: received data formating depends on the settings you apply under Data to Server and M-Bus configurations.