MQTT disconnected sofort wieder

Begonnen von fstefan1960, 05 November 2021, 17:02:34

Vorheriges Thema - Nächstes Thema

fstefan1960

Guten Tag,

für einen Raspi, der via MQTT auf einen Eclipse Mosquitto-Server im Internet zugreift, bekomme ich einfach keinen stabilen connect hin. Die Verbindung bricht immer sofort ab, wird reconnected usw.

2021-11-05 16:59:01 MQTT MQTTin connection: connecting
2021-11-05 16:59:01 MQTT MQTTin CONNECTED
2021-11-05 16:59:01 MQTT MQTTin connection: connected
2021-11-05 16:59:01 MQTT MQTTin DISCONNECTED
2021-11-05 16:59:01 MQTT MQTTin connection: connecting
2021-11-05 16:59:01 MQTT MQTTin CONNECTED
2021-11-05 16:59:01 MQTT MQTTin connection: connected
2021-11-05 16:59:01 MQTT MQTTin DISCONNECTED
2021-11-05 16:59:04 MQTT MQTTin connection: connecting
2021-11-05 16:59:04 MQTT MQTTin CONNECTED
2021-11-05 16:59:04 MQTT MQTTin connection: connected
2021-11-05 16:59:04 MQTT MQTTin DISCONNECTED
2021-11-05 16:59:04 MQTT MQTTin connection: connecting
2021-11-05 16:59:04 MQTT MQTTin CONNECTED
2021-11-05 16:59:04 MQTT MQTTin connection: connected
2021-11-05 16:59:04 MQTT MQTTin DISCONNECTED



Als Definition habe ich

defmod MQTTin MQTT domain.de:1883 username password
attr MQTTin verbose 5


Ohne Passwortschutz auf dem Server ging es, aber das ist ja kein Zustand ...

Oder - wenn das der suboptimale Weg ist: Wie bekomme ich subscribes auf einen Server im Netz (also nicht auf der lokalen Installation!) hin, idealerweise nur jene, die ich auch (aus der Vielzahl der Topics) haben will?

Vielen Dank

Frank


FHEM auf PC: CUL868, CUL 443, HM_LAN, JeeLink
FHEM auf Raspi: CUL868
div. LaCrosse Temp/Hum-Sensoren, HM-Heizkörperventile, Schaltaktoren, etc.

Beta-User

Grundsätzlich: Ist dein FHEM aktuell?
Wir hatten das Thema neulich mit mosquitto, der akzeptiert in der neuesten Version auch keine Verbindung mehr ohne ClientID-Angabe mehr. Scheint auch hier nicht gesetzt zu sein.

Falls das mit den "subscriptions" in Richtung auf die "Konkurrenz" MQTT2_CLIENT gemünzt war? Da kann man das via Attribut regeln:
Zitat
subscriptions <subscriptions>
space separated list of MQTT subscriptions, default is #
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

fstefan1960

FHEM ist aktuell, ja. Bevor ich da irgendwas anfasse, läuft immer erst ein Update von FHEM und Betriebssystem.

Stichwort ClientID: Ohne ClientID lief es wenigstens eine Zeitlang, allerdings mit anderen Credentials, die aber für einen anderen Client reserviert sein sollen.

Mir ist nicht ganz klar, wie die Relation zwischen ClientID, Username und Passwort beim Server ist. Ist die ClientID beliebig? Oder muss sie zum Usernamen passen?

Danke
FHEM auf PC: CUL868, CUL 443, HM_LAN, JeeLink
FHEM auf Raspi: CUL868
div. LaCrosse Temp/Hum-Sensoren, HM-Heizkörperventile, Schaltaktoren, etc.

Beta-User

Das kann ich leider nur teilweise beantworten:
Die ClientID muss "unique" sein, sie darf zu einem beliebigen Zeitpunkt x nur einmal vergeben sein, und gewisse Anforderungen müssen erfüllt sein (u.a. deswegen gab es jüngst noch ein update zu 00_MQTT.pm, Details müßten ggf. in der zugehörigen Diskussion zu finden sein).

Was genau dein Server haben will, müßte in dessen Doku zu finden sein. Eigentlich müßte es bei mosquitto klappen, wenn die ClientID nicht bereits anderweitig genutzt wird, das PAHO-framework nutzte jedenfalls früher per default "random" ClientID's.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

hexenmeister

Zitat von: fstefan1960 am 05 November 2021, 17:02:34
Oder - wenn das der suboptimale Weg ist: Wie bekomme ich subscribes auf einen Server im Netz (also nicht auf der lokalen Installation!) hin, idealerweise nur jene, die ich auch (aus der Vielzahl der Topics) haben will?
Ich würde es genau so machen. Mittels eines zweiten lokalen Mosquitto. Nennt sich bridging. http://www.steves-internet-guide.com/mosquitto-bridge-configuration/
Fhem kommuniziert mit dem lokalen Broker, der wiederrum mit einem im Netz. Für die letztere Verbindung solltest Du natürlich eine verschlüsselte Verbindung mit Authentifizierung verwenden.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy