Zum Inhalt springen

Konfiguration des MQTT-Collectors

Der MQTT-Collector wird üblicherweise in die Gesamtkonfiguration von SOLECTRUS integriert, d.h. die bestehenden Dateien compose.yaml und .env sind zu erweitern.

services:
mqtt-collector:
image: ghcr.io/solectrus/mqtt-collector:latest
environment:
- TZ
- INFLUX_SCHEMA
- INFLUX_HOST
- INFLUX_TOKEN
- INFLUX_ORG
- INFLUX_BUCKET
- INFLUX_PORT
- MQTT_HOST
- MQTT_PORT
- MQTT_SSL
- MQTT_USERNAME
- MQTT_PASSWORD
- MAPPING_0_TOPIC
- MAPPING_0_JSON_KEY
- MAPPING_0_JSON_PATH
- MAPPING_0_JSON_FORMULA
- MAPPING_0_MEASUREMENT
- MAPPING_0_MEASUREMENT_POSITIVE
- MAPPING_0_MEASUREMENT_NEGATIVE
- MAPPING_0_FIELD
- MAPPING_0_FIELD_POSITIVE
- MAPPING_0_FIELD_NEGATIVE
- MAPPING_0_TYPE
- MAPPING_0_MIN
- MAPPING_0_MAX
- ... # weitere Mappings bei Bedarf
logging:
options:
max-size: 10m
max-file: '3'
restart: unless-stopped
depends_on:
influxdb:
condition: service_healthy
links:
- influxdb
labels:
- com.centurylinklabs.watchtower.scope=solectrus
influxdb:
# ...
watchtower:
# ...

Hostname des MQTT-Brokers. Dies kann die IP-Adresse des lokal erreichbaren ioBroker sein, aber auch die Domain eines extern erreichbaren Brokers. Darf kein http:// oder https:// enthalten!

Port des MQTT-Brokers. Meist ist das 1883.

Wenn der MQTT-Broker über TLS abgesichert ist, muss dieser Wert auf true gesetzt werden. Bei einem lokalen ioBroker ist das üblicherweise nicht der Fall, die Angabe kann dann entfallen oder auf false gesetzt werden.

Falls erforderlich: Benutzername für den Zugriff auf den MQTT-Broker.

Falls erforderlich: Passwort für den Zugriff auf den MQTT-Broker.

Hostname des InfluxDB-Servers. Im Normalfall, wenn InfluxDB im gleichen Docker-Netzwerk läuft, ist das der Name des Docker-Services (z.B. influxdb). Es kann aber auch ein externer InfluxDB-Server sein, z.B. influxdb.example.com.

Schema für die Verbindung zu InfluxDB. Bei Verwendung einer externen InfluxDB, die über TLS abgesichert ist, muss dieser Wert auf https gesetzt werden.

Standardwert: http

Port für die Verbindung zu InfluxDB.

Optional, Standard ist 8086

Bei Verwendung einer externen, per TLS abgesicherten InfluxDB kann z.B. 443 eingestellt werden.

Token für den Zugriff auf InfluxDB. Dieser Token muss in InfluxDB erstellt werden und die Berechtigung haben, Daten in den angegebenen Bucket zu schreiben.

Organisation in InfluxDB, in der die Messwerte gespeichert werden sollen.

Bucket in InfluxDB, in der die Messwerte gespeichert werden sollen.

Für jedes Topic, das der MQTT-Collector abonnieren soll, muss ein Mapping definiert werden. Ein Mapping besteht aus mehreren Umgebungsvariablen, die mit dem Präfix MAPPING_X_ beginnen, wobei X eine eindeutige Zahl sein muss.

Es stehen folgende Variablen zur Verfügung:

  • MAPPING_X_TOPIC
  • MAPPING_X_JSON_KEY
  • MAPPING_X_JSON_PATH
  • MAPPING_X_JSON_FORMULA
  • MAPPING_X_MEASUREMENT
  • MAPPING_X_MEASUREMENT_POSITIVE
  • MAPPING_X_MEASUREMENT_NEGATIVE
  • MAPPING_X_FIELD
  • MAPPING_X_FIELD_POSITIVE
  • MAPPING_X_FIELD_NEGATIVE
  • MAPPING_X_TYPE
  • MAPPING_X_MIN
  • MAPPING_X_MAX
  • MAPPING_X_NULL_TO_ZERO

Eine ausführliche Beschreibung eines Mappings findet sich auf der folgenden Seite:
Abonnieren von Topics.