NEWS
iobroker als mqtt server um Daten zu verteilen
-
Hallo! Ich hab das ganze hinbekommen, die Tips mit den Datenpunkten waren hilfreich!
Jetzt hab ich auch endlich verstanden wie ich Datepunkte publishen kann (aus dem ecovacs-deebot Ordner und auch Daten aus den Shellies.
Ich habs auch hinbekommen, dass ich Daten per MQTT von der Steuerung zum Broker schicken kann, allerdings gibts da noch ein kleines Problem.Ich versuche den Deebot zu starten (Befehl "clean" in der Struktur ecovacs-deebot/0/control)
Per MQTT Befehl sehe ich, dass sich in der control Struktur der "Button" bei "clean" von hellgrau auf schwarz färbt (und im Infotext steht dann statt "false" "true", allerdings fährt Roboter nicht los?Wenn ich allerdings mit der Maus auf den Button drücke, dann färbt er sich auch schwarz und der Roboter fährt los?
Übersehe ich da etwas?
Aus der Steuerung (Edomi) schicke ich folgenden Befehl "ecovacs-deebot/0/control/clean|true",
dieser kommt auch im iobroker an und wird im pfad "mptt.0.ecovacs-deebot/0/control/clean|true" an,
wird auch auf die ecovacs-deebot/0/control/clean geschrieben, diese scheint ebenfalls mit "true" auf, allerdings fährt er nicht los?Muss ich da mit dem "true" noch etwas anderes mitschicken?
Ich hab 2 Bilder angehängt, da sieht man es, die Daten sind anscheinend richtig, allerdings ist da anscheinend ein Unterschied zwischen auf den Button klicken und den Button per MQTT beschreiben.
-
@jkoller84 Im Adapter musst die Datenpunkte immer unbestätigt schocken - das kann aber mqtt nicht, da mqtt nicht weiß von bestätigt oder unbestätigt. Du musst also mittels eines Alias oder Deiner Logikmaschine wenn sich im mqtt der Wert aktualisiert den aktiv in den Adapter schreiben.
-
@mickym
Hallo danke für die Antwort, aber die verstehe ich jetzt nicht ganz?
Der wert wird über MQTT geschickt taucht um mqtt-Verzeichnis auf, wird aber auch auf den ecovacs Adapter geschrieben.
Sehe den Wert im Ecovacs Adapter ja auf true gehen?
Siehe Bild oben? -
@jkoller84 sagte in iobroker als mqtt server um Daten zu verteilen:
Sehe den Wert im Ecovacs Adapter ja auf true gehen?
Siehe Bild oben?aber auch bestätigt geht auf true.
Damit ist für den Adapter alles erledigt.
bestätigt müsste mit false geschickt wrrden, dann weiß der Adapter dass er was tun muss, setzt das um und stellt anschließend bestätigt auf true - fertig -
@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.