NEWS
Warum haben viele Adapter eigene MQTT-Broker?
-
Wenn man mehrere Smarthome-Systeme parallel installieren/testen will, ist ja der große Vorteil, dass das über MQTT praktisch ohne Aufwand geht. Jedes Tool bekommt Zustandsänderungen mit, die von anderen Systemen initiiert wurden, genau wie man es wünscht.
Aber gerade bei meinem Umstieg von FHEM auf ioBroker wundere ich mich, warum einige Adapter ihre eigenen MQTT-Broker mitbringen (Beispiel: Sonoff, Shelly). Was ist denn da der Grund? Warum können die nicht einfach (zumindest optional) einen bestehenden MQTT-Broker benutzen?
Es kann doch nicht sein, dass man beim Umstieg auf ioBroker erstmal alle Tasmota-Geräte und Shellies umprogrammieren muss?
Bin mal gespannt auf Euch Meinungen/Erklärungen.
-
@tobox
Das sind lediglich angepasste MQTT Broker, die kannst auch weglassen und direkt an den MQTT Broker Deiner Wahl verbinden. Beim Sonoff sind eben schonn alle DPs die Tasmota zur Verfügung stellt hinterlegt und werden automatisch angelegt, wenn Du einen reinen MQTT Adapter dazu verwenden möchtest, dann muss der erst passend konfiguriert werden. Somit ist das ein kann und nicht muss und einfach für User die eben nur mal schnell Ihre Tasmota Geräte in IOBroker einbinden wollen.
Dann übertreibst auch maßlos, da Deine Aufzählung auch schon alle mir bekannten Adapter sind, die auch als MQTT fungieren. -
@Jan1 said in Warum haben viele Adapter eigene MQTT-Broker?:
Das sind lediglich angepasste MQTT Broker, die kannst auch weglassen und direkt an den MQTT Broker Deiner Wahl verbinden.
OK, das habe ich irgendwie vermutet, aber wie denn? Einfach nichts ausfüllen und dann geht es trotzdem irgendwie? Ich würde vermuten, dass ich dem Sonoff-Adapter dann sagen muss, welchen MQTT-Broker er benutzen soll? Oder meinst Du, dass ich die Sonoff- und Shellygeräte gar nicht über die Adapter erstellen soll sondern als reine MQTT-Geräte? Sorry falls das eine blöde Frage ist...
Dann übertreibst auch maßlos, da Deine Aufzählung auch schon alle mir bekannten Adapter sind, die auch als MQTT fungieren.
Ich bin gerade Anfänger mit ioBroker und habe außer Fronius und TR064 noch nicht viel eingerichtet. Daher war es bei mir schon eine Trefferquote von 50%
-
@tobox
Der Sonoff Adapter ist Broker und nicht Client. Der hört was im die Tasmota Geräte flüstern und ja Außer der User mit Passwort muss nichts gemacht werden. User und Passwort wird dann in Tasmota hinterlegt und schon melden sich die Tasmota Geräte am Sonoff an. -
@Jan1
Das ist ja genau, was ich "bemängele". Ich habe ca. 25 Tasmota-Devices, und die will ich ja nicht umprogrammieren, sonst können sie ja mit allen anderen Automatisierungssystemen nicht mehr "sprechen". Ich empfinde es grade als unschätzbaren Vorteil von MQTT, dass man beliebige Tools damit verheiraten kann. Sobald man mehr als einen MQTT-Broker braucht, geht dieses Konzept kaputt. Wenn z.B. OpenHAB oder FHEM dieselbe herangehensweise hätte, müsste ich mich entscheiden, an welchen Broker ich ein Gerät anmelde, damit es wenigstens in einem System funktioniert.Es wundert mich, das ich da scheinbar der einzige bin, der das Problem hat
-
@tobox
Dann trag doch die Zugangsdaten die in Tasmota drin sind einfach im Sonoff Adapter ein und gut ist, oder hast da keine Zugangsdaten drin?Dann hast Du auch den IOBroker wohl noch nicht richtig verstanden. Wenn die Tasmota Geräte bereits an einen externen MQTT Broker angebunden sind, dann müssen die nicht auch noch an den Sonoff Adapter angebunden werden, sondern dieser Broker an IOBroker. IOBroker vereint bestehende Geräte und Systeme.
-
@tobox Du musst ja den sonoff oder shelly-Adapter nicht installieren. Der Vorteil bei diesen liegt darin, dass sie gleich eine schöne Ordnerstruktur mit den benötigten Datenpunkten aufbauen. Du kannst aber alle diese Geräte auch mit dem MQTT-Adapter (den kannst du auch als Client konfigurieren) verbinden und hast dann alles unter einer Haube.
Wobei die Shellys ja nicht nur MQTT können. Wenn dann muss man sie entsprechend konfigurieren. Verwendet man CoAP, braucht man bei den Shellys gar nichts konfigurieren und der Shelly-Adapter findet sie einfach so. Noch praktischer...
-
@Jan1 said in Warum haben viele Adapter eigene MQTT-Broker?:
@tobox
Dann trag doch die Zugangsdaten die in Tasmota drin sind einfach im Sonoff Adapter ein und gut ist, oder hast da keine Zugangsdaten drin?Natürlich haben alle meine Tasmotas MQTT, und sind an meinen Haupt-MQTT-Broker angebunden. Dieser MQTT-Broker ist extern von ioBroker, aber mit dem mqtt-client-Adapter verbunden.
Dann hast Du auch den IOBroker wohl noch nicht richtig verstanden. Wenn die Tasmota Geräte bereits an einen externen MQTT Broker angebunden sind, dann müssen die nicht auch noch an den Sonoff Adapter angebunden werden, sondern dieser Broker an IOBroker. IOBroker vereint bestehende Geräte und Systeme.
Das wird es sein - ich habe das wohl wirklich noch nicht durchschaut. Mein IOBroker kennt meinen MQTT-Broker über das MQTT-client plugin und ist grün verbunden, und meine Tasmotas sind mit dem MQTT-Broker verbunden. Aber wie sage ich der Sonoff-Instanz jetzt, dass sie den mqtt-client benutzen soll? Gibt es da irgendwo ein Tutorial oder Doku, die ich einfach nicht finde?
Ich stehe hier irgendwie wie der Ochs vorm Berge, obwohl ich mit FHEM schon über 10 Jahre Smarthome-Erfahrung habe...
-
@tobox sagte in Warum haben viele Adapter eigene MQTT-Broker?:
Aber wie sage ich der Sonoff-Instanz jetzt, dass sie den mqtt-client benutzen soll?
soll er doch nicht!
die Datenpunkte kommen dann bei mqtt-client.0
-
@Homoran
Ich habe jetzt einiges hinbekommen:-
Wenn man statt mqtt-client den Adapter mqtt benutzt und im Client-Modus betreibt, kommen die Werte unter mqtt.0.
-
wenn man in mqtt-client manuell "#" abonniert, dann kommen auch dort die Werte.
Die Sonoff- und Shelly-Adapter bleiben aber leer.
-
-
@tobox
Weil die überhaupt nicht gebraucht werden für das was Du willst. Hier gilt entweder über die entsprechenden Adapter (Sonoff und Shelly) oder eben direkt über MQTT, nicht beides gleichzeitig, da das eh nicht laufen wird. -
@tobox sagte in Warum haben viele Adapter eigene MQTT-Broker?:
Wenn man statt mqtt-client den Adapter mqtt benutzt und im Client-Modus betreibt, kommen die Werte unter mqtt.0.
korrekt.
Wobei der mqtt-client-Adapter ein in meinen Augen schöneres Handling der Datenpunkte (über die Objekte) hat. -
@Homoran
OK, dann schon mal danke für alle Antworten bisher. Ich kann jetzt zumindest alles machen, was ich vorhabe.Aber schön wäre es schon, wenn man für jedes Tasmota-Gerät ein Objekt hätte, dass die aktuellen Werte (subscribe) und Funktionalitäten (publish) strukturiert darstellt. Würde in MQTT halt von alleine schon passieren, wenn Tasmota nicht dieses stat/tele/cmnd-Schema fahren würde.
-
Irgendwie habe ich das Gefühl das hier 2 Sachen miteinander vermischt werden.
Im shelly Adapter gab es die Anfrage auch schon mal, da hatte ich es auch nicht verstanden.Vom Prinzip her ist es wirklich dämlich das man mehrere mqtts laufen lässt.
Viel sinnvoller wäre es wirklich nur einen mqtt Client auf einen Port aktiv zu lassen, auf diesen dann alle weiteren Adapter zugreifen können und sich eben ihre Infos herauszusammeln.
Leider wird dies glaube ich nicht so einfach passieren.
Da auch der rückkanal schwierig sein wird auf die richtigen Geräte zu verteilen. -
OK, ich bin scheinbar nicht der einzige mit meiner Sichtweise.
Hier der passende Feature Request im Shelly-Adapter:
https://github.com/schmupu/ioBroker.shelly/issues/147Und auch bei Sonoff haben schon Leute meine Gedankengänge gehabt, das hatte ich nur gestern noch nicht gefunden:
https://forum.iobroker.net/topic/15731/sonoff-adapter-und-mqtt-clientIch finde es schade, dass es keine "einfache" Möglichkeit gibt, die Tasmota-Geräte als Instanzen zu gruppieren, so dass man die jeweiligen Werte für ein Geräte zentral sehen/bearbeiten kann. Vielleicht kommt ja soetwas noch in Zukunft, ich gebe die Hoffnung noch nicht auf
-
@tobox
Der Link zu dem Sonoff Thread zeigt eigentlich nur, dass der User auch nicht verstanden hat was die beiden Adapter unterscheidet.
Der Sonoff Adpater ist ein abgespeckter MQTT Adapter der speziell für Tasmota und die damit sehr einfache Einbindung in IOBroker gemacht ist. Das geht aber auch alles direkt mit dem MQTT Adapter und damit auch etwas mehr weil das ein echter MQTT ist und nicht abgespeckt.
Man entscheidet sich einfach für einen der beiden und da sehr viel User das so tun, wird das auch so wie es ist gut sein. -
Erst einmal etwas zur Historie:
der MQTT-Adapter wurde lange vor den anderen entwickelt, als Tasmota und Sonoff hier überhaupt keine Rolle spielten.
Die beiden anderen Adapter kamen erst einige Zeit später um den Nutzern der jeweiligen Herstellern eine deutlich vereinfachte Möglichkeit zu bieten ihre Geräte einzubinden. zumal MQTT für diese plug-and-play Nutzer oft einfach zu kompliziert war.Wer jedoch mehrere Systeme verwendet sollte nach wie vor den wesentlich variableren MQTT-Adapter nehmen. Je nachdem ob bereits irgendwo ein Broker läuft den Client oder den Broker, wobei auch beides nebeneinander geht.
Ich sehe einfach da gar kein Problem drin.
Allerdings nutze ich weder Tasmota noch Sonoff und weiß daher nicht wie die ihre Daten publishen. -
Meine Erfahrung vor 1,5 Jahren mit dem MQTT Broker waren durchwachsen. Der Adapter war nicht besonders stabil, so dass ich den sonoff Adapter genommen haben, der dann funktionierte.
Aber vielleicht ist das ja besser geworden.