Logo Herborner Pumpentechnik GmbH & Co KGMQTT Connector – Dokumentation
Inhalt dieser Seite

Standard-Konfiguration der MQTT-Schnittstelle

Automatisch generiert am: 2026-11-06 15:27:24 CET

Generated from: Version 0.2.1 (Commit: 8cdbc24d2887, Build: 2026-11-06T14:06:48+00:00Z)

Hinweis: Der Broker ist unter <IP-Adresse>:1883 erreichbar, wobei die IP-Adresse die des Hostsystems ist. Im Normalfall werden die Geraete mit DHCP arbeiten, sodass die IP-Adresse automatisch zugewiesen wird. Es wird empfohlen im Router eine feste IP-Adresse zu konfigurieren. Umgebungsvariablen werden beim Start dauerhaft in die Konfiguration uebernommen.

MQTT-Broker-Parameter

Parameter Standardwert Bedeutung Als Umgebungsvariable setzbar
managed true Eigenen MQTT-Broker (Mosquitto) betreiben. Bei false verbindet sich die App mit einem fremden Broker (client.host/client.port). MQTT_BROKER_MANAGED
bind_address 0.0.0.0 IP-Adresse, auf der der Broker intern lauscht. Extern wird die IP-Adresse des Hostsystems verwendet. -
port 1883 TCP-Port des Brokers ohne Verschluesselung. Mit TLS nur noch fuer die App selbst erreichbar (127.0.0.1). MQTT_BROKER_PORT
persistence true Retained-Messages und Sessions ueber einen Neustart des Brokers erhalten. -
max_queued_messages 1000 Maximale Anzahl gepufferter Nachrichten je Client (QoS 1 und 2). -
max_packet_size 262144 Maximale Groesse eines MQTT-Pakets in Byte, inklusive Topic und Header (0 = unbegrenzt, sonst mindestens 20). -
sys_topics true $SYS-Topics des Brokers einschalten; daraus stammt die Anzahl verbundener Clients. -
tls_enabled false Verschluesselte Verbindungen (TLS) mit einem selbstsignierten Zertifikat, das die App erzeugt und erneuert. -
tls_port 8883 TCP-Port fuer verschluesselte Verbindungen (nur bei tls_enabled = true). -
tls_profile mqtt_broker Name des TLS-Profils in security.tls; dort stehen Mindestversion und Pruefung von Client-Zertifikaten. -
tls_subject_alt_names [] Zusaetzliche IP-Adressen und Hostnamen im Zertifikat. Die Adressen des Geraets meldet FLECS; ein neuer Eintrag stellt das Zertifikat neu aus. -

MQTT-Client-Parameter

Parameter Standardwert Bedeutung Als Umgebungsvariable setzbar
host localhost Host des fremden Brokers (nur bei broker.managed = false). MQTT_CLIENT_HOST
port 1883 Port des fremden Brokers (nur bei broker.managed = false). MQTT_CLIENT_PORT
keepalive 60 MQTT-Keepalive in Sekunden. -
republish_interval 30.0 Spaetestens nach dieser Zeit in Sekunden werden alle Werte erneut publiziert. -
min_publish_period 0.2 Mindestabstand zweier Publish-Zyklen je Pumpe bzw. Entity in Sekunden. -
max_publishes_per_cycle 50 Maximale Anzahl Nachrichten je Pumpe bzw. Entity und Zyklus; der Rest folgt im naechsten Zyklus. -
publish_timeout 5.0 Timeout fuer die Kommunikation mit dem Broker in Sekunden. -
max_queued_incoming 1000 Maximale Anzahl wartender Befehle; weitere werden verworfen. -

Topic-Parameter

Parameter Standardwert Bedeutung Als Umgebungsvariable setzbar
base HP Erste Topic-Ebene(n) aller Topics, z. B. HP/halle2, wenn mehrere Geraete in einen zentralen Broker gebridged werden. MQTT_TOPIC_BASE
payload_format both scalar (ein Topic je Wert), json (ein Topic je Pumpe bzw. Entity) oder both. MQTT_PAYLOAD_FORMAT
default_qos 0 QoS der State-Topics. -
command_qos 1 QoS, mit der die App die Command-Topics abonniert. -
default_retain true State-Topics retained publizieren, damit eine neu verbundene Steuerung sofort alle Werte erhaelt. -
exclude [] Werte ohne Topic: Blockname (alle Geraete), Typ, Seriennummer bzw. UUID und Blockname wie pump/AB-2400654-010-01/serial (nur dieses Geraet) oder interner Name wie pump_1/serial (das Geraet mit dieser Nummer). -
overrides {} Je Blockname, pump/AB-2400654-010-01/flow_rate oder internem Namen wie pump_1/flow_rate: topic (letzte Topic-Ebene), publish, qos, retain. Der genauere Eintrag gewinnt: Blockname, interner Name, Seriennummer bzw. UUID. -
ack_on_success true Auch erfolgreiche Befehle auf dem Response-Topic des Absenders beantworten (MQTT 5). -
uuid_paths true Topics ueber die UUID des Geraets (bei Pumpen die Seriennummer), z. B. HP/pump/AB-2400654-010-01/flow_rate. Bleibt beim Umnummerieren gleich. -
number_paths false Topics ueber die Nummer des Geraets, z. B. HP/pump/1/flow_rate. Mit uuid_paths zusaetzlich; mindestens einer der beiden Pfade muss eingeschaltet sein. -

Benutzer und Rechte

Hinweis: Anonyme Verbindungen nimmt der Broker nicht an. Die Passwoerter stehen nur als Hash in der Konfiguration (access.users[].password_hash, Format von mosquitto_passwd). Eine Umgebungsvariable der App hat Vorrang; die App schreibt deren Hash in die Konfiguration. Ein Benutzer ohne Hash kann sich nicht anmelden.

Schreibrechte (write, Pflicht): ["+"] alles, [] nichts, sonst eine Liste aus pump bzw. entity (alle Geraete des Typs auf allen Pfaden) und einzelnen Geraeten wie pump/AB-2400654-010-01 oder pump/1 (nur dieser Pfad). Lesen duerfen alle Benutzer alles.

Benutzer Schreibrechte (write) Passwort auch aus Umgebungsvariable Darf lesen Darf schreiben
plc ["+"] MQTT_PASSWORD_PLC HP/# HP/pump/+/set, HP/pump/+/set/+, HP/entity/+/set, HP/entity/+/set/+
monitor [] MQTT_PASSWORD_MONITOR HP/# -

Daraus erzeugte ACL des Brokers:

# Erzeugt vom MQTT Connector - Aenderungen werden beim naechsten Abgleich ueberschrieben.
user hp_mqtt_connector
topic readwrite HP/#
topic read $SYS/broker/clients/#

user plc
topic read HP/#
topic write HP/pump/+/set
topic write HP/pump/+/set/+
topic write HP/entity/+/set
topic write HP/entity/+/set/+

user monitor
topic read HP/#

Topic-Definition

Hinweis: Die Topics einer Pumpe beginnen mit <Basis>/pump/<Seriennummer>, die einer Entity mit <Basis>/entity/<UUID>; mit number_paths zusaetzlich bzw. stattdessen <Basis>/pump/<Nr.> und <Basis>/entity/<Nr.>. Command-Topics gibt es nur fuer beschreibbare Werte. Interne Werte erhalten kein Topic.

Name State-Topic Command-Topic Daten-Typ Zugriff Einheit Min Max Standardwert Beschreibung
flow_rate HP/pump/AB-2400654-010-01/flow_rate HP/pump/AB-2400654-010-01/set/flow_rate float rw qmh 0.0 10000.0 0.0 Flow rate in cubic meters per hour
pressure_pressure_side HP/pump/AB-2400654-010-01/pressure_pressure_side HP/pump/AB-2400654-010-01/set/pressure_pressure_side float rw bar -1.0 20.0 0.0 Pressure on the pressure side in bar
pressure_suction_side HP/pump/AB-2400654-010-01/pressure_suction_side HP/pump/AB-2400654-010-01/set/pressure_suction_side float rw bar -1.0 20.0 0.0 Pressure on the suction side in bar
pressure_prefilter HP/pump/AB-2400654-010-01/pressure_prefilter HP/pump/AB-2400654-010-01/set/pressure_prefilter float rw bar -1.0 20.0 0.0 Pressure on the prefilter in bar
rotational_speed HP/pump/AB-2400654-010-01/rotational_speed HP/pump/AB-2400654-010-01/set/rotational_speed int rw rpm -3600 3600 0 Rotational speed in revolutions per minute
shaft_power HP/pump/AB-2400654-010-01/shaft_power HP/pump/AB-2400654-010-01/set/shaft_power uint rw W 0 150000 0 Shaft power in watts
motor_current HP/pump/AB-2400654-010-01/motor_current HP/pump/AB-2400654-010-01/set/motor_current float rw A 0.0 5000.0 0.0 Motor current in amperes
motor_voltage HP/pump/AB-2400654-010-01/motor_voltage HP/pump/AB-2400654-010-01/set/motor_voltage uint rw V 0 700 0 Motor voltage in volts
motor_operating_hours HP/pump/AB-2400654-010-01/motor_operating_hours HP/pump/AB-2400654-010-01/set/motor_operating_hours uint rw s 0 4294967295 0 Motor operating hours in seconds
motor_energy_consumption HP/pump/AB-2400654-010-01/motor_energy_consumption HP/pump/AB-2400654-010-01/set/motor_energy_consumption uint rw kWh 0 4294967295 0 Motor energy consumption in kilowatt-hours
fc_statusword HP/pump/AB-2400654-010-01/fc_statusword HP/pump/AB-2400654-010-01/set/fc_statusword uint rw - 0 65535 0 Statusword of the frequency converter
fc_errorcode HP/pump/AB-2400654-010-01/fc_errorcode HP/pump/AB-2400654-010-01/set/fc_errorcode uint rw - 0 4294967295 0 Error code of the frequency converter
fill_level_surge_tank HP/pump/AB-2400654-010-01/fill_level_surge_tank HP/pump/AB-2400654-010-01/set/fill_level_surge_tank float rw bar 0.0 10.0 0.0 Fill level in the surge tank in bar
prefilter_cleaning_done HP/pump/AB-2400654-010-01/prefilter_cleaning_done HP/pump/AB-2400654-010-01/set/prefilter_cleaning_done bool rw - - - false Indicates if prefilter cleaning is done (False = not done, True = done)
prefilter_contamination_level HP/pump/AB-2400654-010-01/prefilter_contamination_level HP/pump/AB-2400654-010-01/set/prefilter_contamination_level uint rw - 0 4 0 Prefilter contamination level (0 = no contamination (clean), 1 = low contamination, 2 = medium contamination, 3 = high contamination)
flow_rate_calculated HP/pump/AB-2400654-010-01/flow_rate_calculated - float r qmh 0.0 10000.0 0.0 Flow rate in cubic meters per hour estimated
pressure_difference_calculated HP/pump/AB-2400654-010-01/pressure_difference_calculated - float r bar -1.0 20.0 0.0 Differential pressure calculated in bar
efficiency HP/pump/AB-2400654-010-01/efficiency - float r percent 0.0 100.0 0.0 Pump efficiency in percent
pump_statusword HP/pump/AB-2400654-010-01/pump_statusword - uint r - 0 4294967295 0 Status word of the pump
prefilter_state HP/pump/AB-2400654-010-01/prefilter_state - uint r - 0 65535 0 Prefilter state (e.g., 0 = clean, 1 = cleaning recommended, 2 = cleaning required)
name HP/pump/AB-2400654-010-01/name - string r - - - Name of the pump
serial HP/pump/AB-2400654-010-01/serial - string r - - - Serial number of the pump

Beispiele fuer MQTT-Datentransfer

Einzelwerte: State-Topics (Server -> Client, Format scalar)

Retained, QoS 0. Werte ohne Messung werden nicht publiziert.

Topic Beispielwert Payload
HP/pump/AB-2400654-010-01/flow_rate 5231.21 5231.21
HP/pump/AB-2400654-010-01/pressure_pressure_side 9.84 9.84
HP/pump/AB-2400654-010-01/pressure_suction_side 16.12 16.12
HP/pump/AB-2400654-010-01/pressure_prefilter 11.28 11.28
HP/pump/AB-2400654-010-01/rotational_speed 1792 1792
HP/pump/AB-2400654-010-01/shaft_power 84093 84093
HP/pump/AB-2400654-010-01/motor_current 4390.73 4390.73
HP/pump/AB-2400654-010-01/motor_voltage 609 609
HP/pump/AB-2400654-010-01/motor_operating_hours 3055576189 3055576189
HP/pump/AB-2400654-010-01/motor_energy_consumption 1436015004 1436015004
HP/pump/AB-2400654-010-01/fc_statusword 53034 53034
HP/pump/AB-2400654-010-01/fc_errorcode 820278532 820278532
HP/pump/AB-2400654-010-01/fill_level_surge_tank 6.0 6.0
HP/pump/AB-2400654-010-01/prefilter_cleaning_done true true
HP/pump/AB-2400654-010-01/prefilter_contamination_level 2 2
HP/pump/AB-2400654-010-01/flow_rate_calculated 6959.91 6959.91
HP/pump/AB-2400654-010-01/pressure_difference_calculated 2.47 2.47
HP/pump/AB-2400654-010-01/efficiency 62.52 62.52
HP/pump/AB-2400654-010-01/pump_statusword 614608530 614608530
HP/pump/AB-2400654-010-01/prefilter_state 57166 57166
HP/pump/AB-2400654-010-01/name PUMP-1 PUMP-1
HP/pump/AB-2400654-010-01/serial SN-42014 SN-42014

Gesamtnachricht: State-Topic der Pumpe (Server -> Client, Format json)

Topic: HP/pump/AB-2400654-010-01 (retained, QoS 0)

{
  "flow_rate": 5231.21,
  "pressure_pressure_side": 9.84,
  "pressure_suction_side": 16.12,
  "pressure_prefilter": 11.28,
  "rotational_speed": 1792,
  "shaft_power": 84093,
  "motor_current": 4390.73,
  "motor_voltage": 609,
  "motor_operating_hours": 3055576189,
  "motor_energy_consumption": 1436015004,
  "fc_statusword": 53034,
  "fc_errorcode": 820278532,
  "fill_level_surge_tank": 6.0,
  "prefilter_cleaning_done": true,
  "prefilter_contamination_level": 2,
  "flow_rate_calculated": 6959.91,
  "pressure_difference_calculated": 2.47,
  "efficiency": 62.52,
  "pump_statusword": 614608530,
  "prefilter_state": 57166,
  "name": "PUMP-1",
  "serial": "SN-42014"
}

Befehle (Client -> Server)

Einzelwert: Topic HP/pump/AB-2400654-010-01/set/flow_rate, Payload 5231.21

Mehrere Werte: Topic HP/pump/AB-2400654-010-01/set, Payload {"flow_rate": 5231.21, "pressure_pressure_side": 9.84}

Abgelehnter Befehl: Topic HP/error, Payload {"topic": "HP/pump/AB-2400654-010-01/set/flow_rate", "reason": "out_of_range", "key": "flow_rate", "detail": "..."}