FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: ChristianH am 30 Januar 2020, 10:40:53

Titel: Umzug von Mosquitto/MQTT Client auf MQTT2 Server
Beitrag von: ChristianH am 30 Januar 2020, 10:40:53
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
Titel: Antw:Umzug von Mosquitto/MQTT Client auf MQTT2 Server
Beitrag von: rudolfkoenig am 30 Januar 2020, 11:20:53
Mir ist nichts bekannt, faende es aber auch sinnvoll.
Titel: Antw:Umzug von Mosquitto/MQTT Client auf MQTT2 Server
Beitrag von: Beta-User am 03 Februar 2020, 08:43:44
"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...
Titel: Antw:Umzug von Mosquitto/MQTT Client auf MQTT2 Server
Beitrag von: rudolfkoenig am 03 Februar 2020, 09:14:04
@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 :) )
Titel: Antw:Umzug von Mosquitto/MQTT Client auf MQTT2 Server
Beitrag von: Beta-User am 03 Februar 2020, 11:00:43
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...).