Lohnt sich der Umstieg von mosquitto zu MQTT2?

Begonnen von andies, 22 Dezember 2018, 14:48:53

Vorheriges Thema - Nächstes Thema

andies

Ich habe ca 10 Geräte, die mit mosquitto und der ,,alten" MQTT-Anbindung in FHEM fehlerfrei laufen. Lohnt sich der Umstieg auf die FHEM-interne Lösung? Also ist das viel Arbeit und bringt es vielleicht auch Vorteile?


Gesendet von iPad mit Tapatalk Pro
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

RaspiLED

Wenig Aufwand und weniger Perl Versionsnummer Abhängigkeiten - but Never change a Running System ;-)
Gruß Arnd


Gesendet von iPhone mit Tapatalk
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Beta-User

...kommt doch drauf an, was du willst, oder?

Zum Testen kannst du auch einfach parallel einen MQTT2_CLIENT anlegen. Dann hast du selbst einen Eindruck davon, ob sich das "lohnt".

Allgemein würde ich - das allerdings auf Basis der bisherigen MQTT-Module mit Stand Anfang Oktober - behaupten, dass MQTT2 einfacher ist, wenn du es mit JSON und eher exotischen Geräten zu tun hast, v.a. in Senderichtung.
Ein Sonderfall dazu ist zigbee2mqtt; da ist MQTT2_DEVICE m.E. den bisherigen Lösungen weit voraus (map-Generierung usw.). (Entsprechendes gilt für den ESP-Milight-Hub, aber da ist es nur das Konfigurieren in Senderichtung)

Weiterer Vorteil: Neu hinzukommende Geräte lassen sich mit templates sehr schnell konfigurieren.
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

masterpete23

Da klink ich mich mal ein.
Wie wäre das beste vorgehen, wenn man seine mosquitto devices auf mqtt2 migrieren möchte?

Wuppi68

so aus dem Bauch raus, würde ich nicht den MQTT2 internen Server verwenden ... es müssen noch mehr Nachrichten durch Fhem verarbeitet werden und jede Nachricht kostet ein klein wenig Zeit und als singlethreaded nimmt auch die Latenz zu ...
werden die Nachrichten extern aus FHEM Sicht "verteilt", dann kann zumindest ein anderer CPU Kern die Arbeit machen

Ist aber nur ein Gefühl
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

rudolfkoenig

ZitatIst aber nur ein Gefühl
Und mein Gefuehl ist, dass MQTT2_CLIENT (oder MQTT) bei vergleichbaren Menge an Nachrichten den gleichen Last in FHEM erzeugt wie MQTT2_SERVER.

Meiner Ansicht nach ist mosquitto zu bevorzugen, wenn die MQTT Daten ueberwiegend fuer was Anderes (nicht FHEM) verwendet werden, oder MQTT zweckentfremdet wird (wie z.Bsp. fuer Musikuebertragung). MQTT2_SERVER ist dafuer da, um den Anfaenger die Anbindung von MQTT Geraeten in FHEM einfacher zu machen. Also wenn man es nicht besser weiss, dann sollte man MQTT2_SERVER verwenden.

osr

Zitat von: rudolfkoenig am 23 Dezember 2018, 10:39:18
Und mein Gefuehl ist, dass MQTT2_CLIENT (oder MQTT) bei vergleichbaren Menge an Nachrichten den gleichen Last in FHEM erzeugt wie MQTT2_SERVER.

Meiner Ansicht nach ist mosquitto zu bevorzugen, wenn die MQTT Daten ueberwiegend fuer was Anderes (nicht FHEM) verwendet werden, oder MQTT zweckentfremdet wird (wie z.Bsp. fuer Musikuebertragung). MQTT2_SERVER ist dafuer da, um den Anfaenger die Anbindung von MQTT Geraeten in FHEM einfacher zu machen. Also wenn man es nicht besser weiss, dann sollte man MQTT2_SERVER verwenden.

Ja MQTT2_SERVER ist definitiv die einfachste Variante von der Handhabung her und ein großer Sprung. MQTT2_CLIENT mit mosquitto ist auch ok aber nicht so komfortabel für den Anfänger. Zu MQTT kann man insbesondere für neue Projekte eigentlich nicht raten. Viel mehr Aufwand und man braucht viele mehr Verständnis für mqtt und json.

PeMue

RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

hexenmeister

Zitat von: osr am 24 Dezember 2018, 13:52:51
Viel mehr Aufwand
Wenn man einmal verstanden hat, dann nicht wirklich.

Zitat von: osr am 24 Dezember 2018, 13:52:51
man braucht viele mehr Verständnis für mqtt und json.
DAS ist wiederum ein Vorteil ;)

Ich würde immer einen externen Server nehmen. Würde allerdings MQTT2_CLEINT dem MQTT mittlerweile bevorziehen.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Beta-User

Hallo zusammen,

den Diskussionsstand habe ich mal versucht, hier zusammenzufassen: https://wiki.fhem.de/wiki/MQTT#Performancefragen...

Rückmeldungen dazu sind willkommen!

Zitat von: hexenmeister am 27 Dezember 2018, 14:05:17
DAS ist wiederum ein Vorteil ;)
Sehe ich zwar ähnlich, aber vermutlich nur, weil ich mir mit dem ganzen Sidoh-Bridge-Gedöhns zwischenzeitlich die Grundlagen angeeignet habe. Für den "Otto-Normaluser" (so es den gibt) wage ich zu behaupten, dass er keine vertieften Kenntnisse in JSON braucht (bzw. für den weiteren Anwendungsfall HTTPMOD demnächst auch nicht mehr).

Gruß, Beta-User
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

australien

Hallo zusammen,

ich würde gerne von MQTT auf MQTT2 umstellen, nur wenn ich
define myBroker2 MQTT2_SERVER 1883 global eingebe, bekomme ich folgende Meldung
myBroker2: Can't open server port at 1883: Address already in use

mosquitto läuft noch auf dem RPi, muß ich den zuerst deinstallieren? Wenn ja, wie?

danke

Robert
raspberry pi3
signalduino, Shelly1, Shelly2, Sonos, Unifi
Amazon Fire Tablet 7 | Noname Android Tablet 10"

Otto123

#11
Naja es kann nur Einen auf Port 1883 geben.

Du kannst erstmal für den neuen einfach einen anderen Port nehmen:
define myBroker2 MQTT2_SERVER 1884 global

Oder den Alten beenden
sudo systemctl stop mosquitto
sudo systemctl disable mosquitto


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

australien

Zitat von: Otto123 am 28 April 2020, 19:37:40
Naja es kann nur Einen auf Port 1883 geben.

Du kannst erstmal für den neuen einfach einen anderen Port nehmen:
define myBroker2 MQTT2_SERVER 1884 global

Oder den Alten beenden
sudo systemctl stop mosquitto
sudo systemctl disable mosquitto


Gruß Otto

Danke, hat super funktioniert!
raspberry pi3
signalduino, Shelly1, Shelly2, Sonos, Unifi
Amazon Fire Tablet 7 | Noname Android Tablet 10"