OH3 MQTT Broker COMMUNICATION_ERROR

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Ruben
Beiträge: 39
Registriert: 3. Okt 2020 23:06

OH3 MQTT Broker COMMUNICATION_ERROR

Beitrag von Ruben »

Hallo,
ich habe OH 3.1.0 auf einem Rasperry Pi 3b auf einer externen SSD Festplatte installiert und scheitere an der Einrichtung des MQTT Brokers.
Habe auf einem identischen Pi mit SD Karte noch ein OH in der Version 2.5.9 am laufen, wo es ohne probleme funktioniert.

Habe das OH 3 via openHABian v1.7-alpha von Github installiert, da ich bei der Version 1.6.6 java nicht zum laufen bekam.

Nun habe ich auch schon alle möglichen Anleitungen und Tipps die ich gefunden habe abgearbeitet ohne den entsprechenden Erfolg zu erzielen.

Ich habe den Mosquitto zunächst über die openhabian-config installiert gehabt und versucht einzurichten.
Dann habe ich nach einem Tipp von Udo1Toni in einem anderen Beitrag folgenden Befehl versucht sudo apt purge mosquitto && sudo apt install mosquitto

Danach habe ich mich anhand der Anleitung auf der Seite https://bloggingwelt.de/mqtt-in-openhab-3-einrichten/ versucht.
Doch komme ich einfach nicht weiter.
In der mosquitto-conf habe ich zudem folgende Zeilen eingefügt (listener 1883, allow_anonymous true) obwohl dieses für mein Vorhaben wohl nicht notwendig gewesen wäre.

Das Problem ist folgendes: gebe ich beim Thing für den MQTT Broker unter Broker Hostname/IP die IP meines Rasperry ein erhalte ich folgende Fehlermeldung:
COMMUNICATION_ERROR
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /192.168.178.111:1883

gebe ich openhabian ein kommt folgende Fehlermeldung:
COMMUNICATION_ERROR
io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: openhabian/127.0.1.1:1883

gebe ich hingegen 127.0.0.1 oder localhost ein, steht der Broker auf Online.

Jedoch kann ich keinem Fall eine Verbindung mit MQTT.fx über die IP meines Rasperry 192.168.178.111 und Port 1883 aufbauen. Es erscheint immer die Meldung Unable to connect to server.

Ich habe bei der Einrichtung des Mosquitto kein Passwort vergeben und alles auf den Standarteinstellungen belassen.

Ich habe jetzt nun wirklich keine Idee mehr, außer das es vielleicht an irgendwelchen Rechten liegen könnte, dass hier noch etwas hakt. Doch wüsste ich nicht mehr wo ich noch suchen sollte. Lt. aller Anleitungen müsste es installieren, einstellen und funktioniert sein?

sudo systemctl status mosquitto gibt folgende Info aus, welche bis auf die Zeile CPU identisch mit meiner 2.5.9 Installation ist.

Code: Alles auswählen

● mosquitto.service - Mosquitto MQTT Broker
     Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2021-11-11 21:17:30 CET; 2h 3min ago
       Docs: man:mosquitto.conf(5)
             man:mosquitto(8)
   Main PID: 2881 (mosquitto)
      Tasks: 1 (limit: 1716)
        CPU: 4.021s
     CGroup: /system.slice/mosquitto.service
             └─2881 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

Warning: journal has been rotated since unit was started, output may be incomplete.
Das MQTT Binding habe ich natürlich auch installiert.
Die IP Adresse wird von der FRITZ!Box fest zugewiesen.

Ich hoffe jemand hat hier eine passende Idee was der Fehler sein könnte!

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: OH3 MQTT Broker COMMUNICATION_ERROR

Beitrag von udo1toni »

Was steht denn in /etc/mosquitto/mosquitto.conf?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Ruben
Beiträge: 39
Registriert: 3. Okt 2020 23:06

Re: OH3 MQTT Broker COMMUNICATION_ERROR

Beitrag von Ruben »

da steht,

Code: Alles auswählen

# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example

pid_file /run/mosquitto/mosquitto.pid

persistence true
persistence_location /var/lib/mosquitto/

log_dest file /var/log/mosquitto/mosquitto.log

include_dir /etc/mosquitto/conf.d
listener 1883
allow_anonymous true

drinnen. Ist so wie im original bis auf die erweiterung des listener 1883

Ruben
Beiträge: 39
Registriert: 3. Okt 2020 23:06

Re: OH3 MQTT Broker COMMUNICATION_ERROR

Beitrag von Ruben »

bis auf die letzten zwei Zeilen ist diese identisch mit der des anderen Systems

Benutzeravatar
peter-pan
Beiträge: 2564
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: OH3 MQTT Broker COMMUNICATION_ERROR

Beitrag von peter-pan »

was für Mosquitto-Versionen hast du denn laufen.

Code: Alles auswählen

openhabian@openHABPi:~ $ mosquitto -h
mosquitto version 1.5.7

mosquitto is an MQTT v3.1.1 broker.

Usage: mosquitto [-c config_file] [-d] [-h] [-p port]

 -c : specify the broker config file.
 -d : put the broker into the background after starting.
 -h : display this help.
 -p : start the broker listening on the specified port.
      Not recommended in conjunction with the -c option.
 -v : verbose mode - enable all logging types. This overrides
      any logging options given in the config file.

See http://mosquitto.org/ for more information.
Laufen beide Rechner(OH2 / OH3) parallel ?
Wie sehen denn deine things-Files aus ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

Ruben
Beiträge: 39
Registriert: 3. Okt 2020 23:06

Re: OH3 MQTT Broker COMMUNICATION_ERROR

Beitrag von Ruben »

Hallo,

die Ausgaben sind wie folgt:

OH 3
mosquitto version 2.0.11
mosquitto is an MQTT v5.0/v3.1.1/v3.1 broker.

OH 2.5.9
mosquitto version 1.5.7
mosquitto is an MQTT v3.1.1 broker.

Vom Thing habe ich keine Textdatei, habe es so wie im ersten Link von Bloggingwelt beschrieben über die Weboberfläche von OH 3 angelegt. Dabei jedoch nicht wirklich etwas an der Grundeinstellung verändert. Im letzten Versuch sogar alles so belassen und nur die IP eingetragen. Dabei entsteht schon der Conection Error.
In meiner 2.5.9 versich sind die eintragungen und Einstellungen identisch.

Was ich jedoch auch nicht verstehe, müsste der Moaquitto nicht wenigstens mit dem mqtt.fx erreichbar bzw. zu verbinden sein? Oder ist dieses letztendlich erst über das Thing möglich.
Hätte das Broker Thing jetzt für OH als Mittel verstanden um die Informationen aus dem Mosquitto zu lesen.
Doch müsste mqtt.fx nicht alle daten direkt am mosquitto ablauschen oder zieht dierser sich seine Inhalte am Thing von OH ab?

Ruben
Beiträge: 39
Registriert: 3. Okt 2020 23:06

Re: OH3 MQTT Broker COMMUNICATION_ERROR

Beitrag von Ruben »

Und beide sind parallel im selben Netzwerk über Landsberg angeschlossen.

Das w-lan habe ich via openhabian-config deaktiviert. Wobei beim starten dabei (mit angeschlossenem Monitor) ein paar Fehlermeldungen entstehen (auf dem wlan Adapter bezogen) die ich jedoch gerade nicht wiedergeben kann.

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: OH3 MQTT Broker COMMUNICATION_ERROR

Beitrag von udo1toni »

Also, bei mit läuft auch Version 2.0.11. Bis auf eine andere Reihenfolge der Einträge (listener 1883 als oberster Eintrag nach den ersten Kommentarzeilen, allow_anonymous true direkt als zweiter Eintrag) sieht die Konfiguration genauso aus wie bei mir.

Steht denn etwas in /var/log/mosquitto/mosquitto.log? (die Datei kann nur mit erweiterten Rechten geöffnet werden)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
peter-pan
Beiträge: 2564
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: OH3 MQTT Broker COMMUNICATION_ERROR

Beitrag von peter-pan »

Also die Erreichbarkeit des Brokers MQTT.fx hat nichts mit OH zu tun. Da kann man eigentlich nichts falsch machen.
broker.jpg
Ob dein Broker funktioniert kannst du leicht ausprobieren:
sub.jpg
Dazu gibt es auch massig Threads im Netz.

Die Geschichte mit dem WLAN hab ich leider auch nicht ganz verstanden. Den Begriff "Landsberg" kenne ich nur als Städtenamen nicht aber in Verbindung mit einem Netzwerk. Das also zu meinem Wissenstand :oops: :oops: .

Ich gehe jetzt einfach mal davon aus, dass beide OH-Rechner(Pi) im Netz laufen und der OH2-Rechner auch funktioniert, was MQTT anbelangt.

Jetzt mal meine erste Frage. Wie sieht deine Broker-Bridge und die Things auf dem OH2-Rechner dazu aus ? Wenn das funktioniert brauchst du eigentlich keinen Mosquitto auf deinem OH3-Rechner.

Meine Broker-Bridge mit einem Thing auf dem OH2-Rechner sieht so aus(Text-Konfiguration):

Code: Alles auswählen

//https://openhabforum.de/viewtopic.php?f=15&t=970&start=20   // from Udo
Bridge mqtt:broker:hans "Mosquitto" [ host="localhost", port=1883, secure=false, clientID="OH2_hans" ]  
{
    // Sonoff Basic
    Thing topic basic03 "Sonoff Basic 03 Schreibtischlampe" @ "MQTT2"  [availabilityTopic="tele/basic_03/LWT", payloadNotAvailable="Offline", payloadAvailable= "Online"]
{
    Channels:
        Type switch : power     "Power "                 [ stateTopic="stat/basic_03/POWER", commandTopic="cmnd/basic_03/POWER" ]
        Type number : rssi      "WiFi Signal Strength"   [ stateTopic="tele/basic_03/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
        Type string : version   "Firmware Version    "   [ stateTopic="stat/basic_03/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Version"]
        Type switch : reachable "Reachable"              [ stateTopic="tele/basic_03/LWT",transformationPattern="MAP:reachable.map" ]
        Type string : hardware  "Chip Set            "   [ stateTopic="stat/basic_03/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Hardware"]
        Type string : ipaddress "IP Address          "   [ stateTopic="stat/basic_03/STATUS5", transformationPattern="JSONPATH:$.StatusNET.IPAddress"]
    }
 }
Das gleiche auf dem OH3-Rechner:

Code: Alles auswählen

//https://openhabforum.de/viewtopic.php?f=15&t=970&start=20   // from Udo
Bridge mqtt:broker:vera "Mosquitto" [ host="192.168.178.75", port=1883, secure=false, clientID="OH2_vera" ]  
{
    // Sonoff Basic
    Thing topic basic03 "Sonoff Basic 03 Schreibtischlampe" @ "MQTT2"  [availabilityTopic="tele/basic_03/LWT", payloadNotAvailable="Offline", payloadAvailable= "Online"]
{
    Channels:
        Type switch : power     "Power "                 [ stateTopic="stat/basic_03/POWER", commandTopic="cmnd/basic_03/POWER" ]
        Type number : rssi      "WiFi Signal Strength"   [ stateTopic="tele/basic_03/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
        Type string : version   "Firmware Version    "   [ stateTopic="stat/basic_03/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Version"]
        Type switch : reachable "Reachable"              [ stateTopic="tele/basic_03/LWT",transformationPattern="MAP:reachable.map" ]
        Type string : hardware  "Chip Set            "   [ stateTopic="stat/basic_03/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Hardware"]
        Type string : ipaddress "IP Address          "   [ stateTopic="stat/basic_03/STATUS5", transformationPattern="JSONPATH:$.StatusNET.IPAddress"]
/ Test with Channel Event Trigger - test_mqtt.rules
    }
Wie du siehst, ist da kaum ein Unterschied, lediglich die Host-Adresse. Einmal ist sie "localhost" auf dem Rechner wo dein Broker läuft und einmal ist sie 192.168.178.75 (in meinem Falle) auf dem Rechner wo kein Broker läuft (oder nicht gebraucht wird.) und zeigt also auf den Rechner wo der Broker läuft.

Die Bridge sieht dann in OH3 als Yaml so aus.

Code: Alles auswählen

UID: mqtt:broker:vera
label: Mosquitto
thingTypeUID: mqtt:broker
configuration:
  lwtQos: 0
  publickeypin: true
  clientID: OH2_vera
  keepAlive: 60
  qos: 0
  reconnectTime: 60000
  port: 1883
  host: 192.168.178.75
  secure: false
  certificatepin: true
  lwtRetain: true
  enableDiscovery: true
Ich würde vorschlagen du prüfst erst mal, ob du publishen und subscriben kannst und evtl auch ob dein MQTT.fx passt.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

Ruben
Beiträge: 39
Registriert: 3. Okt 2020 23:06

Re: OH3 MQTT Broker COMMUNICATION_ERROR

Beitrag von Ruben »

Schaue ich gleich mal nach wenn ich wieder daheim bin.
Mit erweiterten Rechten meinst du den Befehl sudo oder bezieht sich das auf eine andere Einstellung in einer Konfigurationsdatei?

Antworten