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.
- Zustand der App:
HP/status(online/offline, retained) - Abgelehnte Befehle:
HP/error(JSON, nicht retained) - Alle Werte einer Pumpe als JSON:
HP/pump/AB-2400654-010-01, Befehle als JSON:HP/pump/AB-2400654-010-01/set
| 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": "..."}