Umzug von Mosquitto/MQTT Client auf MQTT2 Server

Begonnen von ChristianH, 30 Januar 2020, 10:40:53

Vorheriges Thema - Nächstes Thema

ChristianH

Guten Morgen in die Runde,

gibt es einen einfachen Weg (gerne ersetzen via sed) von einer MQTT Client/mosquitto Installation zu einer FHEM internen MQTT2 Server config? Ich würde ungern jedes MQTT device neu anlegen müssen.

Gruss und danke

Christian

rudolfkoenig

Mir ist nichts bekannt, faende es aber auch sinnvoll.

Beta-User

"Eigentlich" ist es nicht sooo schwer, man muß nur an ein paar Punkten Änderungen vornehmen:

- Es sollten alle CID-Angaben aus den readingList-Attributen (und ggf. set-und getList) genommen werden (der Teil vor dem Doppelpunkt bei jedem Zeilenbeginn, sofern das überhaupt noch drin ist; dürfte häufig bereits gelöscht sein, wenn man die Devices via attrTemplate konfiguriert hatte). Was an relevanten Devices vorhanden ist, sollte folgender Befehl zeigen:
list TYPE=MQTT2_DEVICE:FILTER=readingList~.*[a-zA-Z_]+:[^/.]+[/].* readingList

- Ggf. sollte die CID in der DEF angepaßt werden, damit MQTT2_SERVER "neue" Infos passend zuordnen kann (hatte man das "general-bridge"-template für MQTT2_CLIENT im Einsatz, sollte das weitestgehend passen).

Die ersten beiden Änderungen sind unkritisch, das müßte auch im laufenden MQTT2_CLIENT-Betrieb stressfrei gehen.

- Dann muß man natürlich das IO umstellen, das sollte auch auf einen Rutsch via regex funktionieren:
attr TYPE=MQTT2_DEVICE:FILTER=IODev=MQTT2_CLIENT IODev MQTT2_FHEM_Server
(Die Namen natürlich passend wählen...)

- Evtl. muß man dann im laufenden Betrieb noch kontrollieren, ob autocreate irgendwas unbeabsichtigtes tut, ggf. dann an einzelnen Devices ausschalten und/oder die CID in der DEF ändern...

Das sollte es schon gewesen sein, neu Anlegen muß und sollte man m.E. nichts, und es geht alles auch via FHEMWEB...
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

rudolfkoenig

@Beta-User: mW ging es dem Thema-Ersteller um ein Umzug vom "alten" MQTT Modul.

Trotzdem: Danke fuer deine Beschreibung.
Duerfte fuer den Umzug von MQTT2_CLIENT auf MQTT2_SERVER oder andersherum funktionieren.
CID-Angaben in setList/getList sind mir neu (oder ich habe sie schon wieder verdraengt :) )

Beta-User

Zitat von: rudolfkoenig am 03 Februar 2020, 09:14:04
@Beta-User: mW ging es dem Thema-Ersteller um ein Umzug vom "alten" MQTT Modul.
Oh, vermutlich hast du recht, ich bin über das "Client" im Threadtitel gestolpert...

"An sich" dürfte es nicht besonders schwer sein, eine Art "Basisumzugs-Code" zu erstellen. Die "speziellen" Attribute von MQTT_DEVICE (publishSet, publishSet_<reading>, subscribeReading_<reading>) sollten sich recht einfach nach MQTT2_DEVICE "übersetzen" lassen, und den Rest an Attributen könnte man vermutlich einfach kopieren...

ABER: Die eigentliche Arbeit beginnt dann danach, denn wenn man weitere features von MQTT2_DEVICE nutzen will, sollte man etwas mehr machen, siehe v.a. ab hier: https://forum.fhem.de/index.php/topic,103762.msg975050.html#msg975050...

Von daher bin ich geneigt zu behaupten, es lohnt sich nicht, den Aufwand zu betreiben, Umstellungscode zu erstellen. Zum einen kann autocreate einem das Leben bereits sehr erleichtern, und für alles andere gibt es z.B. attrTemplate, wobei da eben teilweise "etwas mehr" geschieht...
(Die eigentliche Frage ist also, ab wo ggf. der Frust für die User beginnen soll; ich tendiere dazu, lieber gleich zu sagen, dass man sich da etwas intensiver einarbeiten sollte, statt erst den Umstieg zu vereinfachen und dann das "ja aber" nachzuschieben...).

Zitat
CID-Angaben in setList/getList sind mir neu (oder ich habe sie schon wieder verdraengt :) )
(Ich hatte das nicht geprüft, meine aber, sowas mal in irgendeiner Konfiguration gesehen zu haben, die hier gepostet war...).
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