Umstieg von MQTT auf MQTT2 ohne Mosquito zu deaktivieren

Begonnen von noripman, 23 Oktober 2021, 15:11:06

Vorheriges Thema - Nächstes Thema

noripman

Hallo zusammen,

nach vielen Stunden lesen suchen und testen habe ich einen Weg gefunden von MQTT auf MQTT2 umzustellen, ohne zu deaktivieren, ohne löschen und ohne das FHEM nicht mehr funktioniert. Ehrlich gesagt bin ich noch mittendrin. Kein Wunder bei fast 50 MQTT_DEVICEs und fast 100 DOIF's. Für manche wahrscheinlich ein ,,miniFHEM".

Aber egal...nun zum Thema.

Die Vorgehensweise von Beitrag

https://forum.fhem.de/index.php?topic=98805.0

habe ich mehrmals probiert, wobei mein FHEM dann nicht mehr erreichbar war.
Ich bin dann nach viel lesen, testen und vielen Versuchen auf folgende Vorgehensweise gelangt:

FHEM sichern:

https://wiki.fhem.de/wiki/Backup

Komplettes Backup der SD-Karte:

https://forum.fhem.de/index.php?topic=88312.0

Ich habe mir sicherheitshalber eine zweite SD-Karte besorgt und FHEM zum Testen auf diese gezogen.

MQTT2_Server erstellen:

https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele

Jetzt kommt der erste unterschied:

Ich habe den Mosquitto nicht gelöscht, sondern dem MQTT2_ SERVER einen anderen Port zugewiesen:
define MQTT2_SERVER MQTT2_SERVER 1884 global
(der Name nach den  ,,define" also ,,MQTT2_SERVER" kann auch ein anderer sein)

Mein Mosquitto hat, wie wahrscheinlich die meisten Port 1883.

Nach dem Hinweis: "MQTT2 is not password protected" habe ich noch ein Passwort vergeben.

https://commandref.fhem.de/#allowed

Ich bin allerdings auf den ,,Link" gegangen, hab also auf den Hinweis geklickt und FHEM hat selbst einen Device Namens ,,allowed_WEB" angelegt.

Häckchen bei ,,MQTT2_SERVER" gesetzt, bei basicAuth ,,<user> <password>" eingegeben
(natürlich für <user> einen Namen, für <password> ein Passwort).

Nun noch meinen Wunschraum unter ,,room" ausgewählt und fertig.

Jetzt habe ich mir das erste Tasmota Gerät vorgenommen, meinen NodeMCU ,,Aquarium_Licht"
(weshalb ich überhaupt auf MQTT2 umgestiegen bin)

Im Web-Interface des ,,Tasmota" ,,Aquarium_Licht"
(die IP-Adresse verrät die erste ,,Einwahl" oder der Router)

auf ,,Einstellungen" und dann auf ,,MQTT konfigurieren" klicken.

Dann:

Host (): <IP-Adresse Des FHEM Servers>

Port:     1884
(den Port den ich beim anlegen des MQTT2-SERVER vergeben habe, nur nicht den Port des ,,Mosquitto")

client (DVES_0AFBE3):  <Eindeutiger Name zum späteren verifizieren>
(bei mir ,,Aquarium_Licht")

Benutzer (DVES_USER):  <user>
(den ich im ,,allowed_WEB" angelegt habe)

Passwort: <password>
(dass ich im ,,allowed_WEB" angelegt habe)

topic = %topic% (tasmota_0AFBE3): tasmota_%06X
( so richtet MQTT2 ein ,,Gerät" mit dem Namen MQTT2_<Eindeutiger Name zum späteren verifizieren> ein, bei mir: ,,MQTT2_Aquarium_Licht")

full topic (%prefix%/%topic%/):  %prefix%/%topic%/
(im Gegensatz zum MQTT-SERVER")

jetzt auf ,,Speichern" und fertig.

Nun habe ich kontrolliert, ob sich der Tasmota im MQTT2_SERVER eingelockt hat.
Dazu hab ich im ,,Hauptmenü" auf ,,Konsole" geklickt und siehe da:

00:00:00.001 HDW: ESP8266EX
00:00:00.050 CFG: aus Flash geladen von F4, Anzahl 322
00:00:00.055 QPC: Count 1
00:00:00.069 Projekt tasmota - Aquarium-LED Version 9.5.0.9(tasmota)-2_7_4_9(2021.10.15 19:51:04)
00:00:00.518 WIF: verbinden mit AP1 FRITZ!*** Channel 10 BSSId **:A6:2F:57:**:** in Modus 11n als Aquarium-LED...
00:00:01.762 WIF: verbunden
00:00:02.013 HTP: Web-Server aktiv bei Aquarium-LED mit IP-Adresse 192.168.1.27
11:19:14.010 MQT: Verbindungsversuch...
11:19:16.796 MQT: verbunden

Das bedeutete mein MQTT2-SERVER läuft und  mein erstes TASMOTA Gerät war mit dem Server verbunden.

Im ,,Hauptmenü" zurück hab ich dann noch auf ,,Einstellungen" ,,Sonstige Konfiguration" geklickt und unter ,,Device Name (Tasmota)" denselben Name bei mir also" Aquarium_Licht" eingegeben.
(Ist kein Muss)


So erste Hürde war geschafft.

Zurück in FHEM hat MQTT2 einen neuen Raum mit dem Namen ,,MQTT2_DEVICE" angelegt.

Darin ein neuer ,,MQTT2_DEVICE" mit dem Namen des MQTT2_<Eindeutiger Name zum späteren verifizieren>
(also bei mir ,,MQTT2_Aquarium_Licht")

Und noch ein ,,Filelog" ,,FileLog_MQTT2_Aquarium_Licht".

Auf den neuen Device ,,MQTT2_Aquarium_Licht" geklickt und WOW ein Device mit vielen, sehr vielen Readings öffnete sich.

So jetzt wird's kompliziert... nein gar nicht wenn man weiß, was für einen ,,Tasmota Gerät" man hat.

Da ich ein NodeMCU_LDEWW als Vorlage eingerichtet habe also ein LEDWW mit 5 ,,PWM", habe ich unter ,,attrTemplate" den ,,tasmota_rgbw_led"
(leider gibt es ,,noch" keinen ,,tasmota_rgbww_led")

ausgewählt.

Nachdem mir das Popup gezeigt hat, was es machen will habe ich auf ,,set" geklickt und...

WOW
ein Dimmer für ,,Weiss" ein Dimmer für ,,Helligkeit" der Farben und ein Feld für das Einstellen der Farbe. Dazu noch ein Icon das die Farbe wechselt und wenn man auf dasselbige klickt geht die LED auch noch an und aus. Also der Hammer.

Bei einem normalen Sonoff, also z.B. einer Sonoff S20 WIFI Smart Steckdose, natürlich mit Tasmota geflasht, einfach unter ,,attrTemplate" den ,,tasmota_basic" auswählen.

Bei mir läuft der ,,Mosquitto" Server noch parallel, solange bis ich den Letzte ,,Device" auf den MQTT2_SERVER umgestellt habe. Danach werde ich den MQTT-SERVER nach diesem Beitrag

https://forum.fhem.de/index.php?topic=98805.0

deaktivieren und dann löschen.

Man könnte auch den Port für den MQTT2_SERVER und auf allen ,,Geräten" wieder auf ändern 1833 ändern. Aber warum eigentlich. Mal sehen.

Ich habe lange gesucht, aber leider keinen Beitrag passenden Beitrag gefunden.

So dann viel Spaß beim Umstellen. 

ABER ZUERST SICHERN!!!