Um Geräte über das MQTT Protokoll anbinden zu können, benötigen wir einen extra Server, welchen wir danach via Binding an openHAB anbinden können.
Was alles zu tun ist, zeige ich hier im Video.
1. Mosquitto installieren und den Dienst danach gleich stoppen
# apt install mosquitto -y # service mosquitto stop
2. Die Benutzerprofil-Datei anlegen:
# touch /etc/mosquitto/passwd
3. Ein neuer MQTT-Benutzer anlegen:
# mosquitto_passwd -c /etc/mosquitto/passwd NUTZERNAME
Ersetze NUTZERNAME durch einen beliebigen Nutzernamen (z.B. mqttbenutzer oder so). Du musst anschließend 2x ein Passwort angeben. Achtung, das passiert versteckt!
Nutze beim Passwort eine Kombination aus Buchstaben und Zahlen. Nur Zahlen führen z.B. bei der Inbetriebnahme von Zigbee2MQTT zu Problemen!
4. Die Konfiguation noch anpassen:
# nano /etc/mosquitto/mosquitto.conf
Füge dort folgendes hinzu:
password_file /etc/mosquitto/passwd allow_anonymous false
5. Möchtest du den Login von extern erlauben (z.B. deinem Rechner), füge noch folgende Zeile hinzu:
listener 1883
6. MQTT wieder starten:
# service mosquitto start
7. Das MQTT-Binding installieren

8. OPTIONAL: Installiere noch das Add-On „JSONPath Transformation„, um die JSON-Daten sauber von openHAB interpretieren lassen zu können

Du brauchst noch ein Tool, um die Informationen des MQTT-Servers besser auslesen zu können?
Ich empfehle MQTT-Explorer.
Es ist ein kostenloses OpenSource-Tool.
Für den einfachen Start mit MQTT, hier noch ein paar Beispiele:
Ist im Pfad ein + Symbol, zählt dies als „Wildcard“ – also Zufallswert.
Somit kann eine Abfrage flexibel gebaut werden.
Temperaturen erfassen:
things:
mqtt:topic:MqttBroker:MqttRtl433Temperatur:
bridge: mqtt:broker:MqttBroker
label: MQTT Wetterstation Temperatur Außen
location: Außen
channels:
Temperatur:
type: number
label: Temperatur
config:
stateTopic: rtl_433/XXXXXXXXXXXXX/devices/LaCrosse-TX141THBv2/0/+/temperature_C
min: -50
max: 50
unit: °C
LetztesUpdate:
type: datetime
label: Letztes Update
description: ""
config:
stateTopic: rtl_433/XXXXXXXXXXXXX/devices/LaCrosse-TX141THBv2/0/+/time
Luftfeuchtigkeit:
type: number
label: Luftfeuchtigkeit
config:
stateTopic: rtl_433/XXXXXXXXXXXXX/devices/LaCrosse-TX141THBv2/0/+/humidity
min: 0
max: 100
unit: '%'
Stromzähler auslesen mit Unterpunkten:
things:
mqtt:topic:MqttBroker:Stromzaehler:
bridge: mqtt:broker:MqttBroker
label: MQTT Stromzähler
location: Schaltschrank
channels:
StromzaehlerBezug_180:
type: number
label: Stromzähler Bezug - 180
config:
stateTopic: iot/smartmeter/XXXXXX/SENSOR
transformationPattern:
- JSONPATH:$.Strom.Total_in
min: 0
max: 999999999
StromzaehlerRuecklieferung_280:
type: number
label: Stromzähler Rücklieferung - 280
config:
stateTopic: iot/smartmeter/XXXXXX/SENSOR
transformationPattern:
- JSONPATH:$.Strom.Total_out
min: 0
max: 999999999
Stromzaehler_Status:
type: string
label: Stromzähler Status
config:
stateTopic: iot/smartmeter/XXXXXX/LWT
allowedStates: "Online,Offline"
AktuellerVerbrauch:
type: number
label: Stromzähler - Aktueller Verbrauch
config:
stateTopic: iot/smartmeter/XXXXXX/SENSOR
transformationPattern:
- JSONPATH:$.Strom.Power_cur
min: -20000
max: 20000
unit: W
Shelly 2.5 mit Tasmota:
things:
mqtt:topic:MqttBroker:MqttShelly2502:
bridge: mqtt:broker:MqttBroker
label: "MQTT Shelly 2.5"
location: Verlies
channels:
Stromversorgung:
type: switch
label: Stromversorgung Schalter 1
config:
stateTopic: iot/XXXXXXXXXXX/shelly-25-02/POWER1
commandTopic: iot/XXXXXXXXXXX/shelly-25-02/cmnd/POWER
"on": "ON"
"off": "OFF"
Stromversorgung2:
type: switch
label: Stromversorgung Schalter 2
config:
stateTopic: iot/XXXXXXXXXXX/shelly-25-02/POWER2
commandTopic: iot/XXXXXXXXXXX/shelly-25-02/cmnd/POWER
"on": "ON"
"off": "OFF"
Temperatur:
type: number
label: Temperatur
config:
stateTopic: iot/XXXXXXXXXXX/shelly-25-02/SENSOR
transformationPattern:
- JSONPATH:$.ANALOG.Temperature
unit: °C
Verbrach:
type: number
label: Verbrauch 1
config:
stateTopic: iot/XXXXXXXXXXX/shelly-25-02/SENSOR
transformationPattern:
- "JSONPATH:$.ENERGY.Power[0]"
min: 0
max: 2000
unit: W
VerbrauchGestern:
type: number
label: Verbrauch Gestern
config:
stateTopic: iot/XXXXXXXXXXX/shelly-25-02/SENSOR
transformationPattern:
- JSONPATH:$.ENERGY.Yesterday
unit: kWh
VerbrauchGesamt:
type: number
label: Verbrauch Gesamt
config:
stateTopic: iot/XXXXXXXXXXX/shelly-25-02/SENSOR
transformationPattern:
- JSONPATH:$.ENERGY.Total
unit: kWh
Verbrauch2:
type: number
label: Verbrauch Steckdose 2
config:
stateTopic: iot/XXXXXXXXXXX/shelly-25-02/SENSOR
transformationPattern:
- "JSONPATH:$.ENERGY.Power[1]"
min: 0
max: 2000
unit: W
VerbrauchHeute:
type: number
label: Verbrauch Heute
config:
stateTopic: iot/XXXXXXXXXXX/shelly-25-02/SENSOR
transformationPattern:
- JSONPATH:$.ENERGY.Today
unit: kWh


Pingback:openHAB - Geräte über 433MHz auslesen - Hoerli.NET
Pingback:openHAB - Tasmota über MQTT einbinden - Hoerli.NET