MQTT Broker [x200]

<< Click to Display Table of Contents >>

Navigation:  Components > IoT > MQTT >

MQTT Broker [x200]

As a special feature compared to other brokers, the EisBaer MQTT broker contains an integrated MQTT client as well as a scalable authentication and authorization level that can be applied to the individual topic. With the integrated client, it is now possible to directly access and publish the topics of the broker without having to use an additional internal client.

However, a discovery function is not available for the internal client, since the broker must be running for the discovery. If you need this feature, you should use an EisBaer MQTT client that can connect to one or more externally running MQTT brokers that run redundantly, for example.

 

If a reliable, independently running MQTT broker is needed for a customer or a larger customer project, which should be externally accessible via a TLS connection, we have hosted a special, highly available redundant MQTT cluster.

 

Note on connections:

The IP communication ports used must be released in the firewall. By default, this is port 1883 (unencrypted) and 8883 (encrypted).
 

Note on licensing:
The component is charged with 200 components in the licensing (default: standard 200 topics that can be published in the broker = 200 components).
Further Topics correspond to an equal weighting as the number of components. Maximum in the calculation are 10.000 components by entering 10000 or -1 or >10000 - both for unlimited number of topics (project license Enterprise required).

 

Data points of the component

Name

Type

Function

Number of subscribed topics (with duplicates)

Output

Output of the subscribed topics incl. duplicates (multiple subscribed topic) as a number.

Number of subscribed topics (without duplicates)

Output

Output of the subscribed topics without duplicates as number.

Number of known Topics

Output

Output of all known topics of the respective broker.

Number of messages in retain memory

Output

Outputs the number of retain messages held in the broker.

Number of connected clients

Output

Outputs the currently connected clients as a number.

Reset number of published messages

Input

By any command, the counter for the published messages is reset.

Broker Status

Output

The current status of the broker (online/offline) is output here as a boolean value.

Client List

Output

Output of a list of connected clients by name, if "Output client list" was triggered.

Driver Gateway - KNX

Bidirectional

Bidirectional communication interface between KNX and MQTT Broker. See Driver Gateway.

Driver Gateway - BACnet Server

Bidirectional

Bidirectional communication interface between BACnet Server and MQTT Broker. See Driver Gateway.

Driver Gateway - BACnet Client

Bidirectional

Bidirectional communication interface between BACnet Client and MQTT Client. See Driver Gateway.

Driver Gateway - Modbus Master

Bidirectional

Bidirectional communication interface between Modbus Master and MQTT Client. See Driver Gateway.

Output client list

Input

Trigger input to output the currently connected client names at the "Client List" datapoint.

Output Client List (extended)

Input

Trigger input to output the currently connected clients at the datapoint "Client List". Here, in addition to the client name and their topics are output.

Diagnosis [Text]

Output

Error texts are output here. These can be displayed e.g. with the component "Log window" .Attention: Diagnostic or debug outputs are only intended for error cases. Please use only with consultation of the support team! If used, these can significantly affect the performance of the service.

Dynamic

Folder

The generated dynamic data points from the channel editor are created in this folder.

Advanced Diagnostics

Input

(De)Activates the extended debug output. The extended diagnostics can be controlled here over different levels output-technically (e.g. at a protocol window to the output). Values of 0, 1 and 2 can be sent to this input via 8Bit and thus the outputs can be made clearer.

 

0 = Deactivates the extended diagnostic output

1 = Activates the output of relevant events (e.g. Connect, Disconnect, Limit outputs) without further details. Display of the IP addresses of the connected clients.

2 = Activates the complete log output incl. publish/subscribe messages of all users/clients/$SYS, if the subscription/publish messages have not been disabled in the component settings. Display of the IP addresses of the connected clients.

Last message

Folder

Here all information about the last received message (most recent topic) is displayed in an itemized form as individual data points with all details.

List of known topics

Output

Outputs the names of the known topics. The list is only filled as soon as a topic changes its value.

Management

Folder

For EisBaer-Support only

Plotter - Selected Topic

Input

Connection to the "Selected value" list selection

Plotter - Data (csv)

Output

The values can be displayed using the MiniChart component (Display CSV [string]).

Plotter - List of known topics (list view)

Output

Connection to the list selection "Import data from string"

Clear Retain Memory

Input

When this input is triggered, all retained messages are deleted.

Driver On/Off

Bidirectional

(Dis)enable the component.

Driver Gateway - KNX

Bidirectional

Bidirectional communication interface between KNX and MQTT broker.See Gateway driver.

Gateway driver - BACnet server

Bidirectional

Bidirectional communication interface between BACnet server and MQTT broker. See Gateway driver.

Gateway driver - BACnet client

Bidirectional

Bidirectional communication interface between BACnet client and MQTT broker. See Gateway driver.

Gateway driver - Modbus Master

Bidirectional

Bidirectional communication interface between Modbus master and MQTT broker. See Gateway driver.

Unencrypted endpoint valid

Output

Status output whether the unencrypted endpoint (IP/port) is enabled and valid.

Uptime (Bridge)

Output

Runtime of the MQTT bridge connection from start as a string in the format day.hours:minutes:seconds (00.00:00:00).

Uptime (Bridge) [s]

Output

Runtime as a number in seconds, how long the bridge connection is online.

Uptime (Broker)

Output

Runtime of the MQTT broker from start as a string in the format day.hours:minutes:seconds (00.00:00:00).

Uptime (Broker) [s]

Output

Runtime of the broker from start as a number in seconds.

Connection Status (Bridge)

Output

Outputs the current connection status as an on/off signal.

Published messages

Folder

The number of messages per specified time unit is displayed here - current minute(s)/last minute(s)/hour/day/week/month/year. Quota per hour and total are also saved and reloaded at startup.

Encrypted endpoint valid

Output

Status output whether the encrypted endpoint (IP/port) is enabled and valid.

$SYS

Folder

SYS topics (META topics) that can be used additionally for monitoring the broker. These are automatically generated in the broker if the "Publish system statistics" property has been activated and can be called up as outputs at the component.

 

Dynamic data points per topic

Name

Type

Function

Payload [bytes]

Bidirectional

Payload is the actual transported raw data (without MQTT header) in the form of a byte array.

Payload Profile

Folder

If payload profiles have been created and assigned to a topic (data type: string), an additional subfolder is created in which the inputs/outputs of the payload profile fields can be found. See below for an example of the payload profiles.

Payload Profile (Publish JSON)

Output

Output of the data to be published for the set profile.

Payload Profile (Publish Trigger)

Input

Triggers the publishing of the data for the set profile. Note: The port is only available if a profile has also been assigned in the Topic Channel Editor.

QoS

Output

The Quality of Service (QoS) level is an agreement between the sender of a message and the receiver of a message that defines the delivery guarantee for a particular message.

 
There are 3 QoS levels in MQTT:

•0: "Fire-and-forget" - the packet is sent exactly once. Arrives, maybe not sometimes, analogous to the UDP protocol. Delivery: enormously fast.

•1: "Acknowledgement" - the receiver confirms to the sender that the packet has been received. It is possible for a packet to arrive more than once. Delivery: very fast.

•2: "Synchronised" - the parcel is guaranteed to reach the destination, and only once, but this variant generates slightly more "traffic". Delivery: somewhat slower.

Value

Bidirectional

Value of the topic taking into account the defined factor in the corresponding channel editor. Please note the Publish/Subscribe setting in the channel editor for each topic.

Timestamp

Output

Timestamp of the last received value.

 

Properties of the component

Name

Default

Function

Connection (Broker)

...

Parameter settings for Broker and Client. Detailed description see below - Connection (Broker)

Payload Profile

0

Using self-defined payload profiles it is possible to split JSON strings transmitted in a topic into individual sub-data points of the respective topic according to the hierarchy. A separate JSON parser is therefore no longer necessary.

Channels (Broker)

0

Since the EisBaer MQTT broker has integrated its own internal MQTT client as a special feature, the topic to be subscribed/published as well as the associated data type can be specified here for each channel. Optionally, a descriptive name can be specified, which is also displayed when the data points are created. For each topic, access can also be restricted to specific clients, provided they are present in the client list. The clients that have been entered under "Users" are displayed for selection.

Authentication (Clients)

0

For additional, controlled access - controlled under Authentication/Authorization (Users) - the corresponding IDs of the authorized MQTT clients can be created.

Authentication / Authorization (Users)

0

Controlled access control of clients can be defined via a specific user login as in the actual broker connection. Thus it is possible, for example, if there are defined clients (ID), to explicitly allow the respective user to access them. The option "Allow on every client" must then be deselected. Herewith an access control to the topics can be realized.

Authorization (Client Permissions)

0

In the client permission, the access of the clients can be defined for each individual topic or via wildcard (#). By default, all clients are allowed to subscribe and publish to all topics. As soon as the options are deselected, the authorization of the individual clients can be set for the respective Topics or also BaseTopics. There are use cases where certain clients are only allowed to publish but not to subscribe and vice versa.

Connection (Bridge)

...

The login data of the external broker with which a bridge connection is to be established is entered here.

Bridge Topics

0

Here the topics of the external broker are subscribed, which should be forwarded to the EisBaer broker and vice versa. If all topics are to be forwarded, this can be achieved with the wildcard "#".

Publish system statistics

Deactivated

SYS-Topics (META-Topics), which can be used additionally for monitoring the broker. If the property "Publish system statistics" has been activated, these are automatically generated in the broker and can be called up as outputs at the component.

Maximum number of topics

200

Set the maximum number of topics that can be published on the broker. This is also the EisBaer licensing factor. Standard 200 Topics = 200 components. Further Topics correspond to an equal weighting as the number of components. Maximum in the calculation is 10.000 components by entering >=10000 or -1 - both for unlimited number of topics (project license Enterprise required).

Activate topic plotter

 

If activated, the last X values are saved for each topic with a supported data point (numerical values that can be displayed as a double and transferred as a string) and displayed graphically when the topic is selected

Number of data points to be saved

100

Number of data points to be saved with activated topic plotter

Driver On/Off

Disabled

(De)activate the component.

 

 

Connection (Broker)

Designation

Standard

Function

Client ID

Any

Unique ID or designation of the internal MQTT client of the broker. Client ID must contain at least 10 characters.

Maximum running messages per client

512

Limitation of the maximum messages that can be pending per client at the broker (max. 10000).

Timeout [s]

5

Time until a failed connection is detected.

Allow Persistent Session

Enabled

Allow static and persistent sessions from clients.

Clear retain memory at startup

Disabled

Retain data is not deleted when the broker is restarted. There is a special communication object for manual triggering for deletion, if necessary.

Support Retain Message Storage

Enabled

This option enables the storage of retain data.

Check Authentication

Disabled

(De)Enables client login. If this option is enabled, clients must authenticate to the broker using these login credentials.

Check Authorization

Disabled

(En)Enables client authorization. If this option is enabled, the settings defined a) under Authentication/Authorization (Users) and b) under Authorization (Client Permissions) take effect. If this is deactivated, the set user and client authorizations are ignored.

Admin / Password

 

Username and password for (main administrator) access to the broker.

Enable unencrypted endpoint

Enabled

Communication between client and broker is unencrypted.

Local Interface IP

 

Local IP address of the Broker.

Port

1883

Communication port for the unencrypted connection (default: 1883). This port must be entered in the firewall for bidirectional transmissions.

Enable encrypted endpoint

Enabled

Communication is SSL/TLS encrypted.

Local interface IP

 

Local IP address of the broker.

Port

8883

Communication port for the encrypted connection (default 8883). This port must be entered in the firewall for bidirectional transmissions.