OH3 MQTT Broker COMMUNICATION_ERROR

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

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 »

Dann klappt das auch jetzt mit MQTT.fx !!??

Eventuell könntest du dann auch mal probieren deine OH2-Bridge(Thing) auf die IP-Adresse des "neuen PI" (192.168.178.111) umzustellen. Dann könntest du beispielsweise einen Schalter auf dem OH2-Pi einschalten und auf dem OH3 wieder ausschalten. Vorausgesetzt die Items/Things haben den gleichen Topic/Payload.
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 »

Ja mqtt.fx läuft jetzt auch :-)

Was Du schreibst hört sich sehr interessant an.
Habe auf dem OH 2 schon einiges ans laufen bekommen, dank vorheriger Hilfestellungen von Udo1Toni. Doch stehe ich noch ziemlich am Anfang meiner Entwicklung und muss selbst einige Eurer Begriffe erst lernen richtig zu verstehen.
Habe leider nicht so viel Ahnung von den ganzen Programmiersprachen und den einzelnen Fachbegriffen die Ihr standardmäßig verwendet.
Werde das sicherlich im Hinterkopf behalten, da mir für diesen Vorschlag tatsächlich eine Idee im Kopf herumschwirrt.
Doch nun will ich erstmal versuchen meine mit tasmota geflashte zigbeebridge mit einparken Thermostaten und ihren Werten in oh3 zu integrieren und darstellen zu können.
Entsprechend muss ich nun da das brokerthing läuft mal versuchen die entsprechenden Items zu definieren. Doch wird das auch wieder eine Weile dauern, da ich das noch nie gemacht habe und mir bei der Zusammenstellung des Channels noch nicht so ganz im Klaren bin. Doch mqtt.fx liefert hier ja schon einige Werte aus denen ich das morgen mal versuchen werde.
Aber auch an Dich vielen lieben Dank für die freundliche Hilfe.

Die Verwirrung mit dem Namen der Stadt entstand durch die Rechtschreibkorrektur meines Telefons. Sollte Lankabel heißen 🤣

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

Re: OH3 MQTT Broker COMMUNICATION_ERROR

Beitrag von udo1toni »

Ruben hat geschrieben: 12. Nov 2021 21:40 Ok, an deiner Antwort merke ich wie viel mir noch an Wissen fehlt.
Wissen ist Macht, nichts wissen macht auch nichts... ;)
Ruben hat geschrieben: 12. Nov 2021 21:40 das heißt, wir haben mit dem hochrutschen des Eintrages dem Mosquitto erlaubt auch über ein Socket zu kommunizieren und den Eintrag "Starting in local only mode. Connections will only be possible from clients running on this machine." damit umgangen.
Nein. Es ist schlicht so, dass der Eintrag offensichtlich zwingend oben in der Datei stehen muss. Ich könnnte mir vorstellen, dass die Konfigurationsdatei zeilenweise eingelesen wird und nach dem Einlesen der Zeile umgehend entsprechende Maßnahmen eingeleitet werden. Der listener kommt dann schlicht zu einem Zeitpunkt, wo es schon zu spät ist, diese Konfiguration anzupassen.
Das mit dem Socket hat nichts mit IP zu tun, das ist eine andere Kommunikationsform, so wie wenn Du statt ein Telefonat zu führen, einen Zettel auf den Küchentisch legst.
Ruben hat geschrieben: 12. Nov 2021 21:40 Jetzt können also alle dem Port zuhören?
Gilt das dann jetzt auch für das senden, also das entgegennehmen von Daten die von Geräten außerhalb des Pi kommen?
da der Eintrag listener 1883 soviel wie zuhörer bedeutet.

würde denken, dass nun alles funktionieren sollte?
Ja, wenn Du mit mqtt.fx eine Verbindung zum Broker herstellen kannst, ist diese auf jeden Fall bidirektional.

mqtt ist für m2m optimiert, mit der Ergänzung, dass auch Menschen beteiligt sein sollen (sonst könnte man ja einfach irgendwelche Bytes hin und her schicken). Der Client (alle mqtt Programme außer mosquitto) verbindet sich mit dem Broker (mosquitto ist der Broker). Der Client teilt mit, welche Topics er abonnieren will. Ist eines der Topics retained (das heißt, der Broker speichert das aktuelle Payload) so wird das Payload vom Broker an den Client gesendet. Der Broker führt eine Liste, in der vermerkt ist, welche Clients auf welche Topics abonniert sind. Sendet ein Client ein Payload auf ein Topic, prüft der Broker, an welche Clients er das Payload übertragen muss und tut das. Ist das Topic als retained gekennzeichnet, speichert der Broker das Payload in seiner Datenbank.
Die Kommunikation über mqtt ist also eine sehr simple Sache. Natürlich gibt es diverse Dinge, die das Leben komplizierter machen, man kann z.B. definieren, ob eine Message einfach so versendet wird oder ob der Broker sicherstellt, dass diese auch am Ziel eingetroffen ist. Letzteres ist naturgemäß wesentlich zeitaufwändiger als Ersteres. Weiterhin gibt es die Clientüberwachung. Der Broker prüft ständig die Verbindung zu allen Clients. Sobald eine Verbindung abreißt, sendet der Broker den letzten Willen des Clients aus (LWT, LastWill_and_Testament). Der Client setzt das LWT beim Verbindungsaufbau und beschreibt es anschließend mit einer anderen Payload. Also z.B. wird LWT auf Offline gesetzt und anschließend Online gesendet. Damit erhalten alle Clients, die dieses LWT Topic abonniert haben die Nachricht, dass der Client Online ist. Fährt der Client runter oder bricht der Kontakt ab, erfahren alle Clients, die das LWT abonniert haben umgehend, dass der Client nun Offline ist.
Das LWT ist natürlich auch nur ein Topic, der Name ist ebenso frei konfigurierbar wie sein Inhalt. LWT hat sich aber eingebürgert.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

despi
Beiträge: 5
Registriert: 10. Jan 2019 10:35

Re: OH3 MQTT Broker COMMUNICATION_ERROR

Beitrag von despi »

Hallo,

bin auch schon eine weile mit Obenhab unterweges aber jetzt habe ich auch ein Problem mit MQTT seit dem ich auf Obenhab3 umgestiegen bin. So wie Ruben das schon beschrieben hat kommt keine Verbindung mit dem MQTT.fx auf mosquitto zu stande. Habe die gleichen Versionen wie Ruben installiert z.B. mosquitto 2.0.11 über die openhabian-config. Mit meinem alten System Openhab 2.5 klappt es nach wie vor (umstecken der SD-Karte).
Sobald ich die Zeilen

Code: Alles auswählen

listener 1883
allow_anonymous true
am Anfang der mosquitto.conf eintrage dann bekomme ich eine Verbindung, die mir aber keine Kommunikation mit den MQTT Geräten anzeigt.

Meine mosquitto.conf sieht folgendermaßen aus:

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

listener 1833
allow_anonymous true 

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
password_file /etc/mosquitto/passwd
allow_anonymous false
Stehe leider auf dem Schlauch wieso es nicht funktioniert. Habe ja nur 1 Sytem mit einem Broker.

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 »

Du hast 2xmal

Code: Alles auswählen

allow_anonymous
in deiner Config-Datei. Einmal mit true und einmal mit false. Könnte sein, dass da etwas durcheinander kommt.
True sollte auf jeden Fall gehen. Musst das aber mal genau nachlesen.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

despi
Beiträge: 5
Registriert: 10. Jan 2019 10:35

Re: OH3 MQTT Broker COMMUNICATION_ERROR

Beitrag von despi »

Ja stimmt da ist was doppelt. Habe den letzten Eintrag raus genommen. Nach rum probieren funktioniert die Verbindung nur wenn ich "listener 1833" drin habe, dabei kann ich "allo_anonymous" auskommentieren. Den Datenstrom sehe ich nach wie vor nicht in MQTT.fx

Folgende 2 konstellationen gibt es sozusagen.

Fall A
Openhab3 MQTT Broker mit der Einstellung:
Host: localhost
Port: steht nixdrin
mosquito.conf: ohne listener
Egebnis: Broker ist Online
MQTT.fx: Keine Verbindung
Alle anderen konstellationen mit Eingabe der IP und/oder Port bringen den Broker zu Offline

Fall B
Openhab3 MQTT Broker mit der Einstellung:
Host: 192.168.1.56
Port: 1833
mosquito.conf: mit listener
Egebnis: Broker ist Online
MQTT.fx: Verbindung ist da aber kein Datenstrom zu sehen, auch keine Devices vorhanden
Alle anderen konstellationen mit Eingabe von localhost und ohne Port bringen den Broker zu Offline

Nur zum Verständniss. Ich muss ja noch keien Geräte in Openhab installiert haben um den Datenstrom in MQTT.fx zu sehen. Es reicht doch nur die MQTT Daten entprechend auf den Tasmota Sonoff einzutragen oder? So war das jedenfalls in Openhab 2.5

Welche möglichkeiten bleiben mir noch um den Fehler zu finden?

despi
Beiträge: 5
Registriert: 10. Jan 2019 10:35

Re: OH3 MQTT Broker COMMUNICATION_ERROR

Beitrag von despi »

Sehe grade das ich bei einem Neustart folgendes in den Logs habe:

Code: Alles auswählen

2021-11-27 12:12:51.286 [INFO ] [.transport.mqtt.MqttBrokerConnection] - Starting MQTT broker connection to '192.168.1.56' with clientid 95be58f0-1873-4068-83be-15df439a6699

2021-11-27 12:12:51.325 [WARN ] [.MqttBrokerConnectionServiceInstance] - MqttBroker connection configuration faulty: ID segment '192.168.1.56' contains invalid characters. Each segment of the ID must match the pattern [\w-]*.

2021-11-27 12:12:51.577 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:topic:MQTT_Test_Broker:SonOFFS20_1' changed from UNINITIALIZED to INITIALIZING

2021-11-27 12:12:51.613 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:topic:MQTT_Test_Broker:SonOFFS20_1' changed from INITIALIZING to OFFLINE (BRIDGE_OFFLINE)

2021-11-27 12:12:51.882 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:broker:MQTT_Test_Broker' changed from OFFLINE to ONLINE

despi
Beiträge: 5
Registriert: 10. Jan 2019 10:35

Re: OH3 MQTT Broker COMMUNICATION_ERROR

Beitrag von despi »

Nachdem ich beim Sytembroker die IP 192.168.1.56 auf localhost geändert habe ist nun der Fehler weg

Code: Alles auswählen

2021-11-27 12:44:13.478 [INFO ] [.transport.mqtt.MqttBrokerConnection] - Starting MQTT broker connection to 'localhost' with clientid cdc7e051-325a-4c21-9459-c075df5846b0
2021-11-27 12:44:13.544 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing 'mqtt:systemBroker:localhost' to inbox.
2021-11-27 12:44:13.571 [INFO ] [.transport.mqtt.MqttBrokerConnection] - Starting MQTT broker connection to 'localhost' with clientid d4a677c8-1a9b-444e-939c-b5a0d4dde489
2021-11-27 12:44:13.546 [INFO ] [openhab.event.InboxAddedEvent       ] - Discovery Result with UID 'mqtt:systemBroker:localhost' has been added.
2021-11-27 12:44:14.122 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:broker:MQTT_Test_Broker' changed from OFFLINE to ONLINE

Benutzeravatar
MonsterMic
Beiträge: 31
Registriert: 21. Aug 2020 16:30
Answers: 1

Re: OH3 MQTT Broker COMMUNICATION_ERROR

Beitrag von MonsterMic »

ZU : <OH3 MQTT Broker COMMUNICATION_ERROR
1636661850: Opening ipv4 listen socket on port 1883.
1636661850: Opening ipv6 listen socket on port 1883.>
und <Nachdem ich beim Sytembroker die IP 192.168.1.56 auf localhost geändert habe ist nun der Fehler weg>

hatte ich auch bei neuer Installation 3.1.0.
Probier mal:
IPv6-Support vom raspi deaktivieren mit
datei /etc/sysctl.conf erweitern um
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

und IPv6 fuer mosquitto deaktivieren mit
datei etc/mosquitto/ mosquitto.conf erweitern um
socket_domain ipv4

Hat bei mir reproduzierbar geholfen.
Gesendet von mic

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 »

@despi + @MonsterMic

Dumme Frage: Habt ihr zwei Broker laufen (Systembroker + Mosquitto) ? Wenn ja, dann ist einer zuviel !!! Soweit ich mich erinnern kann sollte man den System-Broker nicht verwenden.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

Antworten