NEWS
iobroker als mqtt server um Daten zu verteilen
-
@jkoller84 Na das ist aber das Problem, mit dem automatisch auf den ecovacs Adapter zu schreiben. Das passiert halt mir dem ACK=true. Deswegen halte ich nichts davon den Baum eines Adapters in den mqtt- Zweig zu nehmen. Für das Publishen von Zuständen ja, aber nicht nicht für die Steuerung von aussen.
Mach das weg und setze liebe einen Alias, der den Wert aus dem Mqtt Adapter liest, aber selbst in den Ecovavs Adapter speichert.
Der mqtt Adapter setzt alle empfangenen Werte auf ACK=true. - Da er sie selbst gesetzt hat und published nur ACK=false Werte. -
jetzt verstehe ich was Ihr damit meint.
Allerdings wie lege ich einen Alias an und sage dem er soll auf den ecovacs-deebot/0/control/clean schreiben wenn über mqtt auf den alias gepublisht wird?Ich kenne mich im iobroker absolut nicht aus, bin erst seit Sonntag dabei mir das System selbst verständlich zu machen...
-
@jkoller84 Ja mit dem Alias geht doch nicht. Es geht deshalb nicht, weil der Alias das nicht gleich durchreichen kann - sonst gäb es Endlosschleifen. Ich schau mal, ob das mit dem mqtt-Client geht - ansonsten ,usst Deine Logikmaschine verwenden . Also vergiß, was ich zum Alias gesagt habe. Ich versuch das mal mit dem mqtt-Client zu testen - hast Du den mqtt Client Adapter installiert.
OK mit dem mqtt-Client Adapter geht es eigentlich. Das heißt die bestätigeten Werte werden unbestätigt weiter gegeben.
Hast Du denn den mqtt-Client Adapter installiert, wie ich empfohlen hatte, wenn Du nur einzelne Werte publishst?
-
ich hab den mqtt-Broker/client installiert,
da ich den Broker benötige, Meine Shellies melden alle Ihre Stati darüber und ich Melde auch den kompletten Info Ordner vom deebot an meine Haussteuerung.
Wenn ich den mqtt-client nehme, brauche ich erst wieder einen eigenen mqtt broker im netz, dann hab ich wieder eine Software mehr am Server rennen...
Ich hab 47 Shellies im Netz hängen, die Ihre Stati alle über den Broker an Edomi weiterreichen...
mit dem reinen mqtt client geht das nicht oder?Ich brauche MQTT zum empfangen aller Shelly-Daten und zum senden von Steuerbefehlen an die Shellies,
- Lesen und steuern vom Deebot
-
@jkoller84 sagte in iobroker als mqtt server um Daten zu verteilen:
Wenn ich den mqtt-client nehme, brauche ich erst wieder einen eigenen mqtt broker im netz
@mickym sagte in iobroker als mqtt server um Daten zu verteilen:
Um einen einzelnen Datenpunkt zu veröffentlich empfehle ich Dir lieber noch den mqtt-Client Adapter zusätzlich zu installieren und unter einem eigenen topic zu publishen
-
@jkoller84 Nochmal Du kannst den mqtt-Client Adapter zusätzlich installieren, das ist für Deine Zweche am Besten geeignet.
den mqtt-Broker Client betriebst Du nur als Broker und daran flanscht Du noch den mqtt-Client dran.
Und den Broker lässt Du im Großen und ganzen in Ruhe.
-
ich hatte den client installiert, allerdings hab ich da irgendwas falsch eingestellt gehabt, daher hat sich die CPU aufgeschaukelt bis auf 100% Auslastung, daher habe ich die Instanz wieder deaktiviert (vermutlich wo eine Schleife eingebaut).
Die Instanz ist immernoch vorhanden, allerdings verstehe ich jetzt nicht wie ich das hinbasteln soll das das funktioniert?Ich lasse den Broker seine Arbeit machen (der schubst ja auch korrekt alle meine Stati durch die ich brauche (Edomi bekommt sämtliche Daten der Shellies und auch alle Datenpunkte vom Ecovacs-deebot.
Aber du meinst ja für die Retoure (Steuerbefehl von Edomi zum Ecovacs-deebot den mqtt client verwenden?
Der Rest funktioniert ja? Oder muss ich das funktionierende publishen auch alles umstellen? -
@jkoller84 sagte in iobroker als mqtt server um Daten zu verteilen:
Melde auch den kompletten Info Ordner
Auch wenn Du Bäume nimmst - dann ist es am stabilsten für das Publishen eine eigene Instanz von dem Broker/Client Adapter zu nehmen. Und dann dort aber nichts zu subscriben, sondern nur Publishen:
Ich mach das mit dem tr-064 Adapter, wenn ich Bäume publishen will.
Der Publishing Instanz sollte man dann aber einen eigenen Präfix geben, sonst wird das im Broker nicht mehr importiert:
In Deinem Fall also von dem mqtt Client/Server 2 Instanzen und dem mqtt-Client eine Instanz:
- mqtt.0 als Broker
- mqtt.1 als Publishing Instanz
- mqtt-client.0 zum Steuern und veröffnetlichen einzelner Datenpunkte.
Das hat sich deswegen hochgeschaukelt, weil Du Endlosschleifen mit Publishen und Subscriben produziert hast.
-
hab gerade gesehen, sobald ich die Instanz mqtt-client aktivere habe ich dasselbe Problem wieder, die CPU jammert mit 100% vor sich hin...
-
ah jetzt versteh ich auch ein paar Dinge mehr... ok ich werd das mal umbasteln versuchen.
ich hab mit MQTT bis jetzt noch nix am Hut gehabt... -
@jkoller84 sagte in iobroker als mqtt server um Daten zu verteilen:
hab gerade gesehen, sobald ich die Instanz mqtt-client aktivere habe ich dasselbe Problem wieder, die CPU jammert mit 100% vor sich hin...
Dann hast Du an Deinem Broker was verkehrt eingestellt. Mach bei dem Broker ALLE Haken raus und da publishst Du keinen Info Adapter noch sonst was.
Bei Broker ist das oben auch leer:
Man kann ggf. Zustände publishen - aber ich würde davon absehen und lieber eine eigene Instanz machen, dort werden dann Zustände gepublished. Wenn Du beides gleichzeitig machst, dann schaukelt sich das System bis zur Unendlichkeit hoch.
Der unteren Instanz habe ich einen eigenen Prefix "iobroker" verpasst, damit werden alle Bäume die Du veröffentlichst unter dem Topic iobroker veröffentlicht. Das musst halt dann im Edomi anpassen. Aber damit werden Endlosschleifen vermieden.
In dem mqtt-client Adapter brauchst erst mal gar nicht viel machen. Du wählst dann den Datenpunkt mit dem Zahnrad aus unterwelchem Datenpunkt und topic Du kommunizieren möchtest. Ich werde Dir das kurz an einem Video verdeutlichen.
-
ah... Gott im Himmel, ich danke für deine Hilfe, ich hab beim Broker eigentlich einfach nur den Adapter installiert, hab nix an oder abgewählt, allerdings waren da schon Haken gesetzt.
Ich hab bei den Einstellungen bzw. Freigaben der einzelnen Datenpunkten hinten das Zahnrad geöffnet, da steht dann oben als Überschrift
Einstellungen mqtt-client
Also sollte das ja so passen oder?
Hier ein Bild davon.
Ist das so in Ordnung?
-
@jkoller84 Ja aber nichts als Objekt publishen. MQTT kennt eigentlich nur Strings.
So und bei dem Steuerungsdatenpunkt, da musst halt eintragen unter welchem Datenpunkt das subscribed wird.
-
@mickym
ok also ich hab das jetzt umgesetzt was du gesagt hast, ich hab auch das Präfix gesetzt, jetzt sehe ich im
Objektbaum
"mqtt.0"
den Unterordner ioBroker vom mqtt-client und auch die darin enthaltenen Ordner
ecovacs-deebot und Shellies-Jalousienhab den subscribe pfad in Edomi auch angepasst von
ecovacs-deebot/info/# auf iobroker/ecovacs-deebot/info/#
allerdings kommt jetzt beim Edomi nix mehr an?hab ich das jetzt ned ganz verstanden?
das Präfix setze ich doch auch nur mit einem / vor den eigentlichen subscribe-Pfad? oder brauche ich für das Präfix ein anderes Zeichen?
-
@jkoller84 Hast Du für das Publishen des ganzen Baums 2 Instanzen genommen?
-
@mickym
ähhh
du fragst da Sachen,
ich hab 1x den mqtt-broker laufen
und 1x den mqtt-client
und hab bei allen datenpunkten dieselben Einstellungen vorgenommen. -
also sollte eigentlich nur eine client-Instanz laufen
-
aber blöde frage:
ich hab jetzt den client laufen, welcher mir die datenpunkte published (zum broker schickt)
jetzt fragt mein Edomi mqtt-client beim Server an, dann muss der Broker die Daten doch auch zum Edomi publishen?ich sehe zwar, dass Edomi beim Broker anfrägt, da, wenn ich den subscribe-Pfad in Edomi ändere, dieser auch im Broker angelegt wird und auch die richtigen Daten angezeigt werden (beispielsweise batteriestatus), allerdings diese Daten nicht mehr zurück zu Edomi geschickt werden.
-
@jkoller84 Na Du kannst mal im Broker - wenn Du keine weitere Instanz machst noch das mit den Zuständen publishen anhaken, aber halt nur unter mqtt.0
Das wichtige ist halt die umkehrte Richtung zum Publishen. Hier ist wichtig, dass die im Adapter unbestätigt ankommen, obwohl sie im mqtt-Adapter bestätigt sind.
Hier nun das kleine Video. Ich habe NodeRed genutzt, zu, Publishen aber das könnte auch Dein Edomi sein. Du siehst es kommt im mqtt-Adapter Broker bestätigt an, aber am Zielpunkt zum Steuern unbestätigt. Damit weiß Dein Adapter, dass er was tun muss.
So jetzt aber:
Und bestätigte Werte sind Zustände. Da der Adapter unbestätigte Werte entgegen nimmt, weiß er was zu tun ist und dadurch steuert man etwas. Setzt der Adapter einen Wert dann setzt er diese bestätigt. Er bestätigt damit also den Zustand der Hardware.
Du musst also bei den Adapterpunkten des Ecovacs-deebot diese als Zustand publishen. Werte zum steuern muss unbestätigt in den Adapter.
-
Hallo vielen vielen Dank für deine Geduld beim erklären.
Ich hab gestern nachdem du offline warst noch gesucht und nicht verstanden wieso plötzlich nichts mehr ankam... bis mir dann irgendwann klar wurde, dass der Broker ja die ihm geschickten Daten auch publishen muss... wie soll das sonst an die anderen Clients weitergegeben werden
Hab das dann im broker umgestellt und es funktioniert
Seit gestern Abend ca. 11 Uhr kann ich endlich den Deebot ansteuern und ordentlich abfragen (und die CPU-Last ist absolut vernachlässigbar).Jetzt kann die Hausautomatisierung endlich fortgesetzt werden
Heute wird die Logik für das "Garagentor" in der Sockelleiste mit eingebunden und dann ist der Robbi sauber versteckt.Da kommt die Station rein, die Sockelleiste unten wird vor dem Saugvorgang hochgeklappt.
Ganz einfach mit 2 Endschaltern zum stoppen vom Motor (und gleichzeitig Rückmeldung zur Steuerung ob offen oder zu)
Da drin sitzt die Steuerung (1x Shelly Plus 2PM und 2 Relais zum Ansteuern vom Motor)
Die Station selber:
Kurzes Video vom ersten Test:
https://youtu.be/ndDNyxbNTWINochmals vielen Dank für die Hilfe!!