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.
compose.yaml
Abschnitt betitelt „compose.yaml“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: # ...Umgebungsvariablen
Abschnitt betitelt „Umgebungsvariablen“MQTT_HOST
Abschnitt betitelt „MQTT_HOST“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!
MQTT_PORT
Abschnitt betitelt „MQTT_PORT“Port des MQTT-Brokers. Meist ist das 1883.
MQTT_SSL
Abschnitt betitelt „MQTT_SSL“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.
MQTT_USERNAME
Abschnitt betitelt „MQTT_USERNAME“Falls erforderlich: Benutzername für den Zugriff auf den MQTT-Broker.
MQTT_PASSWORD
Abschnitt betitelt „MQTT_PASSWORD“Falls erforderlich: Passwort für den Zugriff auf den MQTT-Broker.
INFLUX_HOST
Abschnitt betitelt „INFLUX_HOST“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.
INFLUX_SCHEMA
Abschnitt betitelt „INFLUX_SCHEMA“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
INFLUX_PORT
Abschnitt betitelt „INFLUX_PORT“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.
INFLUX_TOKEN
Abschnitt betitelt „INFLUX_TOKEN“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.
INFLUX_ORG
Abschnitt betitelt „INFLUX_ORG“Organisation in InfluxDB, in der die Messwerte gespeichert werden sollen.
INFLUX_BUCKET
Abschnitt betitelt „INFLUX_BUCKET“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_TOPICMAPPING_X_JSON_KEYMAPPING_X_JSON_PATHMAPPING_X_JSON_FORMULAMAPPING_X_MEASUREMENTMAPPING_X_MEASUREMENT_POSITIVEMAPPING_X_MEASUREMENT_NEGATIVEMAPPING_X_FIELDMAPPING_X_FIELD_POSITIVEMAPPING_X_FIELD_NEGATIVEMAPPING_X_TYPEMAPPING_X_MINMAPPING_X_MAXMAPPING_X_NULL_TO_ZERO
Eine ausführliche Beschreibung eines Mappings findet sich auf der folgenden Seite:
Abonnieren von Topics.