Line 1: |
Line 1: |
− | Router monitoring via MQTT Linux guide applies to TRBxxx devices and to RUT9xx, RUTXxx routers. | + | Router monitoring via MQTT Linux guide applies to TRB devices and to RUT, TCR routers. |
| ==Introduction== | | ==Introduction== |
| | | |
| '''MQTT (MQ Telemetry Transport or Message Queue Telemetry Transport)''' is an ISO standard (ISO/IEC PRF 20922) publish-subscribe-based messaging protocol. It works on top of the TCP/IP protocol. It is designed for connections with remote locations where a "small code footprint" is required or the network bandwidth is limited. The publish-subscribe messaging pattern requires a message broker. | | '''MQTT (MQ Telemetry Transport or Message Queue Telemetry Transport)''' is an ISO standard (ISO/IEC PRF 20922) publish-subscribe-based messaging protocol. It works on top of the TCP/IP protocol. It is designed for connections with remote locations where a "small code footprint" is required or the network bandwidth is limited. The publish-subscribe messaging pattern requires a message broker. |
| | | |
− | This article provides a guide on how to configure and use a basic MQTT setup on TRBxxx devices and on RUT9xx, RUTXxx routers. | + | This article provides a guide on how to configure and use a basic MQTT setup on TRB devices and on RUT, TCR routers. |
| | | |
| ==How MQTT works== | | ==How MQTT works== |
− | In general an MQTT connection takes place between two Clients and a Broker. A TRBxxx devices and RUT routers can be Broker, Client or both. The MQTT Publisher(Client) present in TRBxxx devices and RUT routers subscribes to two topics by default: '''<TYPE>/get''' and '''get/<SERIAL>/command'''. Where '''<TYPE>''' is device type, for RUT routers type is '''router''' and for TRB1xxx devices type is '''device'''. Parameter '''<SERIAL>''' is the router's serial number. When a third party client connects to the Broker, it sends the message '''id''' to the the topic '''<TYPE>/get'''. The publisher then sends a response containing its serial number to the topic '''<TYPE>/id'''. Now that the Client knows the router's or device's serial number it can ask for values of various parameters by sending requests to the topic '''<TYPE>/<SERIAL>/parameter_name'''. The MQTT Publisher can send responses containing values of these system parameters, if device supports that parameter: | + | In general an MQTT connection takes place between two Clients and a Broker. A TRB device and RUT/TCR router can be Broker, Client or both. The MQTT Publisher(Client) present in TRB devices and RUT/TCR routers subscribes to two topics by default: '''<TYPE>/get''' and '''get/<SERIAL>/command'''. Where '''<TYPE>''' is device type, for RUT/TCR routers and TRB2 devices type is '''router''' and for TRB1 devices type is '''device'''. Parameter '''<SERIAL>''' is the router's serial number. When a third party client connects to the Broker, it sends the message '''id''' to the the topic '''<TYPE>/get'''. The publisher then sends a response containing its serial number to the topic '''<TYPE>/id'''. Now that the Client knows the router's or device's serial number it can ask for values of various parameters by sending requests to the topic '''<TYPE>/<SERIAL>/parameter_name'''. The MQTT Publisher can send responses containing values of these system parameters, if device supports that parameter: |
| | | |
| {| class="wikitable" | | {| class="wikitable" |
Line 18: |
Line 18: |
| ! style="text-align: left; vertical-align: top;" | temperature | | ! style="text-align: left; vertical-align: top;" | temperature |
| | style="text-align: left; vertical-align: top;" | Temperature of the module in 0.1 degrees Celsius | | | style="text-align: left; vertical-align: top;" | Temperature of the module in 0.1 degrees Celsius |
− | | style="text-align: left; vertical-align: top;" | RUT9xx, RUTXxx, TRB2xx | + | | style="text-align: left; vertical-align: top;" | RUT9, RUTX, RUT3, TCR1, TRB2 |
| |- | | |- |
| ! style="text-align: left; vertical-align: top;" | operator | | ! style="text-align: left; vertical-align: top;" | operator |
| | style="text-align: left; vertical-align: top;" | Current operator’s name | | | style="text-align: left; vertical-align: top;" | Current operator’s name |
− | | style="text-align: left; vertical-align: top;" | RUT9xx, RUTXxx, TRBxxx | + | | style="text-align: left; vertical-align: top;" | RUT9, RUTX, RUT3, TCR1, TRB1, TRB2 |
| |- | | |- |
| ! style="text-align: left; vertical-align: top;" | signal | | ! style="text-align: left; vertical-align: top;" | signal |
| | style="text-align: left; vertical-align: top;" | Signal strength in dBm | | | style="text-align: left; vertical-align: top;" | Signal strength in dBm |
− | | style="text-align: left; vertical-align: top;" | RUT9xx, RUTXxx, TRBxxx | + | | style="text-align: left; vertical-align: top;" | RUT9, RUTX, RUT3, TCR1, TRB1, TRB2 |
| |- | | |- |
| ! style="text-align: left; vertical-align: top;" | network | | ! style="text-align: left; vertical-align: top;" | network |
| | style="text-align: left; vertical-align: top;" | Network state | | | style="text-align: left; vertical-align: top;" | Network state |
− | | style="text-align: left; vertical-align: top;" | RUT9xx, RUTXxx, TRBxxx | + | | style="text-align: left; vertical-align: top;" | RUT9, RUTX, RUT3, TCR1, TRB1, TRB2 |
| |- | | |- |
| ! style="text-align: left; vertical-align: top;" | connection | | ! style="text-align: left; vertical-align: top;" | connection |
| | style="text-align: left; vertical-align: top;" | Current connection type (2G, 3G, 4G) | | | style="text-align: left; vertical-align: top;" | Current connection type (2G, 3G, 4G) |
− | | style="text-align: left; vertical-align: top;" | RUT9xx, RUTXxx, TRBxxx | + | | style="text-align: left; vertical-align: top;" | RUT9, RUTX, RUT3, TCR1, TRB1, TRB2 |
| |- | | |- |
| ! style="text-align: left; vertical-align: top;" | wan | | ! style="text-align: left; vertical-align: top;" | wan |
| | style="text-align: left; vertical-align: top;" | WAN IP address | | | style="text-align: left; vertical-align: top;" | WAN IP address |
− | | style="text-align: left; vertical-align: top;" | RUT9xx, RUTXxx, TRBxxx | + | | style="text-align: left; vertical-align: top;" | RUT9, RUTX, RUT3, TCR1, TRB1, TRB2 |
| |- | | |- |
| ! style="text-align: left; vertical-align: top;" | uptime | | ! style="text-align: left; vertical-align: top;" | uptime |
| | style="text-align: left; vertical-align: top;" | System uptime in seconds | | | style="text-align: left; vertical-align: top;" | System uptime in seconds |
− | | style="text-align: left; vertical-align: top;" | RUT9xx, RUTXxx, TRBxxx | + | | style="text-align: left; vertical-align: top;" |RUT9, RUTX, RUT3, TCR1, TRB1, TRB2 |
| |- | | |- |
| ! style="text-align: left; vertical-align: top;" | name | | ! style="text-align: left; vertical-align: top;" | name |
| | style="text-align: left; vertical-align: top;" | Device's device code | | | style="text-align: left; vertical-align: top;" | Device's device code |
− | | style="text-align: left; vertical-align: top;" | RUT9xx, RUTXxx, TRBxxx | + | | style="text-align: left; vertical-align: top;" | RUT9, RUTX, RUT3, TCR1, TRB1, TRB2 |
| |- | | |- |
| ! style="text-align: left; vertical-align: top;" | digital1 | | ! style="text-align: left; vertical-align: top;" | digital1 |
| | style="text-align: left; vertical-align: top;" | Value of digital input no. 1 | | | style="text-align: left; vertical-align: top;" | Value of digital input no. 1 |
− | | style="text-align: left; vertical-align: top;" | RUT9xx | + | | style="text-align: left; vertical-align: top;" | RUT9 |
| |- | | |- |
| ! style="text-align: left; vertical-align: top;" | digital2 | | ! style="text-align: left; vertical-align: top;" | digital2 |
| | style="text-align: left; vertical-align: top;" | Value of digital input no. 2 | | | style="text-align: left; vertical-align: top;" | Value of digital input no. 2 |
− | | style="text-align: left; vertical-align: top;" | RUT9xx | + | | style="text-align: left; vertical-align: top;" | RUT9 |
| |- | | |- |
| ! style="text-align: left; vertical-align: top;" | analog | | ! style="text-align: left; vertical-align: top;" | analog |
| | style="text-align: left; vertical-align: top;" | Value of analog | | | style="text-align: left; vertical-align: top;" | Value of analog |
− | | style="text-align: left; vertical-align: top;" | RUT9xx and TRB2xx | + | | style="text-align: left; vertical-align: top;" | RUT9, TRB2 |
| |- | | |- |
| ! style="text-align: left; vertical-align: top;" | pin2 | | ! style="text-align: left; vertical-align: top;" | pin2 |
| | style="text-align: left; vertical-align: top;" | Value of 2's pin state | | | style="text-align: left; vertical-align: top;" | Value of 2's pin state |
− | | style="text-align: left; vertical-align: top;" | TRB2xx | + | | style="text-align: left; vertical-align: top;" | TRB2 |
| |- | | |- |
| ! style="text-align: left; vertical-align: top;" | pin3 | | ! style="text-align: left; vertical-align: top;" | pin3 |
| | style="text-align: left; vertical-align: top;" | Value of 3's pin state | | | style="text-align: left; vertical-align: top;" | Value of 3's pin state |
− | | style="text-align: left; vertical-align: top;" | RUT9xx, RUTXxx, TRBxxx | + | | style="text-align: left; vertical-align: top;" | RUT9, RUTX, RUT3, TRB1, TRB2 |
| |- | | |- |
| ! style="text-align: left; vertical-align: top;" | pin4 | | ! style="text-align: left; vertical-align: top;" | pin4 |
| | style="text-align: left; vertical-align: top;" | Value of 4's pin state | | | style="text-align: left; vertical-align: top;" | Value of 4's pin state |
− | | style="text-align: left; vertical-align: top;" | RUT9xx, RUTXxx, TRBxxx | + | | style="text-align: left; vertical-align: top;" | RUT9, RUTX, RUT3, TRB1, TRB2 |
| |- | | |- |
| |} | | |} |
Line 83: |
Line 83: |
| ==Configuring the device== | | ==Configuring the device== |
| | | |
− | This section will provide an explanation on how to configure an MQTT Broker and MQTT Publisher on a TRBxxx devices and on RUT routers. | + | This section will provide an explanation on how to configure an MQTT Broker and MQTT Publisher on a TRB devices and on RUT/TCR routers. |
| | | |
| ===Broker=== | | ===Broker=== |
Line 92: |
Line 92: |
| | | |
| | | |
− | Configuration for a TRBxxx devices and a RUTXxx routers looks like this: | + | Configuration for a TRB device and a RUT/TCR router looks like this: |
| | | |
| [[Image:Configuration_examples_publisher_new_design.png|border|class=tlt-border]] | | [[Image:Configuration_examples_publisher_new_design.png|border|class=tlt-border]] |
Line 104: |
Line 104: |
| | | |
| | | |
− | Configuration for a TRBxxx devices and a RUTXxx routers looks like this: | + | Configuration for a TRB device and a RUT/TCR router looks like this: |
| | | |
| [[Image:Configuration examples mqtt publisher_new_design.png.png|border|class=tlt-border]] | | [[Image:Configuration examples mqtt publisher_new_design.png.png|border|class=tlt-border]] |
| | | |
− | <b>NOTE</b>: If you configuring a TRBxxx devices, it's default hostname is 192.168.2.1. | + | <b>NOTE</b>: If you are configuring a TRB device, default hostname is 192.168.2.1. |
| | | |
| | | |
Line 121: |
Line 121: |
| ==Subscribing and Publishing== | | ==Subscribing and Publishing== |
| | | |
− | Now you can use set up Brokers and Clients on your PC. In order to Publish commands and Subscribe to topics on a TRB series devices and RUT routers, you'll need to know the device's '''Serial Number''' and '''TYPE'''. For TRB series device's you'll need to use type : '''device''' and for RUT router's you'll need to use type: '''router'''. Router's serial number you can find in the '''Status → Device''' section of the router's WebUI. For TRB series devices serial number you can find in the '''Status → System''' section of the device WebUI. Or you can subscribe to the topic '''<TYPE>/id''' and publish the message '''id''' to the topic '''<TYPE>/get'''. To do so, enter these commands in separate Terminal windows: | + | Now you can use set up Brokers and Clients on your PC. In order to Publish commands and Subscribe to topics on a TRB series devices and RUT/TCR routers, you'll need to know the device's '''Serial Number''' and '''TYPE'''. For TRB series device's you'll need to use type : '''device''' and for RUT/TCR router's you'll need to use type: '''router'''. Router's serial number you can find in the '''Status → Device''' section of the router's WebUI. For TRB series devices serial number you can find in the '''Status → System''' section of the device WebUI. Or you can subscribe to the topic '''<TYPE>/id''' and publish the message '''id''' to the topic '''<TYPE>/get'''. To do so, enter these commands in separate Terminal windows: |
| | | |
| '''Subscribe:''' | | '''Subscribe:''' |
Line 153: |
Line 153: |
| $ mosquitto_pub -h 192.168.1.1 -p 1833 -u user -P pass -t router/get -m uptime | | $ mosquitto_pub -h 192.168.1.1 -p 1833 -u user -P pass -t router/get -m uptime |
| | | |
− | In example below you can see how to subscribe and publish to the topics '''signal strength''' and '''uptime''' on RUT routers: | + | In example below you can see how to subscribe and publish to the topics '''signal strength''' and '''uptime''' on RUT/TCR routers: |
| | | |
| [[File:Configuration examples mqtt subscribe publish v5.png|1150px]] | | [[File:Configuration examples mqtt subscribe publish v5.png|1150px]] |