[gelöst] Ist es möglich MQTT2_DEVICE 's zu einem anderen Broker zu spiegeln?

Begonnen von supernova1963, 13 Februar 2021, 17:12:19

Vorheriges Thema - Nächstes Thema

supernova1963

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

Beta-User

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...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors


supernova1963

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

supernova1963

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

Beta-User

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...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

LuckyDay

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.

supernova1963

OK, ich denke jetzt habe ich es verstanden und probiere es aus.

Danke für die Unterstützung und Geduld,

Gernot