Ein freundliches "Hallo zusammen",
ich habe zugegeben ein auf den ersten Blick ungewöhnliches Vorhaben.
Ich möchte zu Testzwecken alle MQTT2_DEVICE 's von einem funktionierenden MQTT2_SERVER auf einen Mosquitto Broker in einem anderen VLAN spiegeln.
Erreichbar ist dieser Broker, z.B. wenn ich ein MQTT2_CLIENT mit:
defmod mosquitto MQTT2_CLIENT 10.100.1.20:1883
attr mosquitto autocreate no
attr mosquitto username fhem
definiere und das Passwort mit
set mosquitto password XXXXX
setze, kommt als list:
Internals:
BUF
CFGFN
Clients :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
ClientsKeepOrder 1
DEF 10.100.1.20:1883
DeviceName 10.100.1.20:1883
FD 39
FUUID 6027c3ed-f33f-d0d9-10ca-677201beb238c85e
NAME mosquitto
NR 22668
PARTIAL
STATE opened
TYPE MQTT2_CLIENT
WBCallback
clientId mosquitto
lastMsgTime 1613232571.73073
nextOpenDelay 5
MatchList:
1:MQTT2_DEVICE ^.
2:MQTT_GENERIC_BRIDGE ^.
READINGS:
2021-02-13 16:34:56 state opened
Attributes:
autocreate no
username fhem
Für den umgekehrten Weg habe ich viel Lesestoff gefunden und bereits einiges versucht umzukehren, leider ohne Erfolg.
Kann mir einer von Euch helfen?
Danke,
Gernot
Weiß ja nicht, was mit "spiegeln" gemeint ist, aber:
(Vorbemerkung: mosquitto-Server kann man in einem "bridge"-Modus betreiben; das kann MQTT2_SERVER nicht.)
Aber man kann MQTT2_DEVICE-Geräte - wie jedes andere FHEM-Gerät - "indirekt" publishen lassen. Die beiden gängigen Methoden:
- ein notify mit publish an den MQTT2_CLIENT;
- MQTT_GENERIC_BRIDGE (mit dem I2C als IO).
Ich würde letztere empfehlen, da kann man dann auch weitere subscriptions erzeugen und so die Geräte auch (in der Regel aber über andere Topics) schalten...
Du solltest dir Steves zu Gemüte führen Bridgemodus Mosquitto
http://www.steves-internet-guide.com/mosquitto-bridge-configuration/ (http://www.steves-internet-guide.com/mosquitto-bridge-configuration/)
Hallo Beta-User,
Zitat von: Beta-User am 13 Februar 2021, 17:27:19
Weiß ja nicht, was mit "spiegeln" gemeint ist, aber: ...
Mit "spiegeln" meine ich, dass der MQTT2_SERVER weiter normal läuft und zusätzlich alle eingehenden Nachrichten mit dem gleichem topic und value an den Mosquitto Broker sendet (publish).
Zitat von: Beta-User am 13 Februar 2021, 17:27:19
...
- MQTT_GENERIC_BRIDGE (mit dem I2C als IO).
...
Was muss ich unter I2C verstehen (der MQTT2_Server heißt bei mir MQTT2 und der MQTT2_CLIENT heißt mosquitto)?
Danke für Deine rasche Antwort,
Gernot
Hallo fhem-hm-knecht,
Zitat von: fhem-hm-knecht am 13 Februar 2021, 17:29:11
Du solltest dir Steves zu Gemüte führen Bridgemodus Mosquitto ...
Wenn ich das richtig verstehe, soll ein 2. Mosquitto Broker im Bridge Mode eingerichtet werden, der die Verbindung von MQTT2_SERVER zum "Ziel-Broker" herstellt?
Danke auch Dir für die rasche Antwort,
Gernot
Sorry, Tippfehler... M2C sollte das werden, also Kurzform für TYPE=MQTT2_CLIENT.
Aber fhem-hm-knecht hat m.E. mit dem Hinweis auf den bridge-Modus recht. Sollte mit je 1* MQTT2_SERVER und mosquitto gehen...
ZitatMit "spiegeln" meine ich, dass der MQTT2_SERVER weiter normal läuft und zusätzlich alle eingehenden Nachrichten mit dem gleichem topic und value an den Mosquitto Broker sendet (publish).
Dein Gedanken Ansatz ist meiner Meinung nach falsch.
der Mosquito im BridgeModus macht eine Clientverbindung zu deinem Mqtt2 Server auf und aboniert die ganzen Topics vom Mqtt2 und stellt sie gleichzeitig auch als Broker zur Verfügung.
OK, ich denke jetzt habe ich es verstanden und probiere es aus.
Danke für die Unterstützung und Geduld,
Gernot
Hat funktioniert!
Danke,
Gernot