Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. iobroker als mqtt server um Daten zu verteilen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    iobroker als mqtt server um Daten zu verteilen

    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      jkoller84 last edited by

      Hallo,

      ich habe Zuhause eine SmartHome Steuerung (Edomi) für die ich MQTT benötige um den neuen Staubsaugerroboter einpflegen zu können.
      Nach langem suchen, habe ich iobroker gefunden, (über zig Webseiten, dass dieser MQTT als Server bereitstellen kann und welcher einen Adapter für den Staubsauger hat.
      Kurzerhand den ioBroker am Minipc installiert, den Adapter für den Ecovacs-deebot installiert, Benutzername und Passwort eingetragen, Instanz gestartet => Roboter ist erreichbar, auslesbar und steuerbar! Juhu!
      Hab mich schon furchtbar gefreut, dass der Robbi (Lord-clean-a-lot) für die Haussteuerung verfügbar ist.
      Habe dann den MQTT client/broker Adapter installiert und in Edomi (selber PC) den entsprechenden Logikbaustein installiert, Zugangsdaten eingegeben, und die MQTT Instanz (welche als Server eingestellt ist) zeigt mir die intakte Verbindung auch an.

      Alles soweit so gut.
      Jetzt suche ich seit Samstag Nachmittag die Lösung zu folgendem Problem:

      Ich habe unter "Objekte"
      "ecovacs-deebot"
      und
      "mqtt"

      jetzt möchte ich aus dem objekt "ecovacs-deebot" den Wert für den Batteriestatus => "ecovacs-deebot.0.info.battery"
      über MQTT für Edomi bereitstellen.
      Allerdings habe ich keine Ahnung wie ich über den Subscriber auf das Objekt "ecovacs-deebot" und dessen Unterpfad zugreifen kann?

      Wie krieg ich das hin, dass ich über einen MQTT-client auf einen Datenpunkt zugreifen kann, welcher nicht im MQTT-Objekt liegt? bzw. wie kriege ich den Datenpunkt in das Objekt "mqtt"?
      Ich habe in den letzten 2 1/2 Tagen hunderte Google Ergebnisse durchgelesen, ich habe auch hier im Forum die Anleitungen etc. durchgesehen, aber ich finde nichts das auch nur ansatzweise dieses Thema behandelt.
      Die gefundenen Beiträge handeln immer von Datenpunkten die schon im mqtt-Objekt liegen, aber ich weiß nicht wie ich das mit Datenpunkten machen kann, die nicht im mqtt-Objekt sind.

      Hat jemand dafür eine Idee? Ich stehe da schon sehr auf der Leitung.
      ich müsste aus dem Objekt "ecovacs-deebot" Daten lesen können und auch schreiben können (um den Robbi auch starten und stoppen zu können).

      Ich weiß echt nicht mehr weiter...

      Lg,

      Jürgen

      Batteriestatus.png

      Installierte Adapter.png

      Uebersicht Instanzen.png

      Uebersicht Objekte.png

      Marc Berg mickym 2 Replies Last reply Reply Quote 0
      • Marc Berg
        Marc Berg Most Active @jkoller84 last edited by Marc Berg

        @jkoller84 sagte in iobroker als mqtt server um Daten zu verteilen:

        ecovacs-deebot.0

        Du müsstest im MQTT Adapter folgendes ergänzen:

        2d660524-9825-4d0c-8ca4-2c75e8349d42-grafik.png

        Damit werden auch sämtliche Datenpunkte des Deebot (0. Instanz) published.

        1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @jkoller84 last edited by

          @jkoller84 sagte in iobroker als mqtt server um Daten zu verteilen:

          jetzt möchte ich aus dem objekt "ecovacs-deebot" den Wert für den Batteriestatus => "ecovacs-deebot.0.info.battery"

          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. Wenn du den client adapter installiert hast, dann kannst Du einzelnen Datenpunkte easy publishen und musst nicht den ganzen Baum publishen.

          Auch wenn Du einen ganzen Baum publishen willst, dann ist zwar der andere Adapter wieder besser, aber Du willst Zustände publishen und dann kommt der Broker schnell aus dem Gleichgewicht. Wenn mal also ganze Bäume publishen will dann würde ich eine eigene MQTT-Client Intanz erstellen mit einem Prefix.

          Wie gesagt bei einzelnen States nimm lieber den Mqtt-Client Adapter, bei Bäumen eine eigene Instanz des Client-Server Adapters, in dem Du aber nichts subscribst und ein eigenes Präfix verwendest.

          J 1 Reply Last reply Reply Quote 1
          • J
            jkoller84 @mickym last edited by

            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.
            MQTT publish client_1.png

            iobroker.png

            mickym 1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active @jkoller84 last edited by

              @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.

              J 1 Reply Last reply Reply Quote 0
              • J
                jkoller84 @mickym last edited by

                @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?

                Homoran mickym 2 Replies Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators @jkoller84 last edited by

                  @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

                  1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @jkoller84 last edited by

                    @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.

                    J 1 Reply Last reply Reply Quote 0
                    • J
                      jkoller84 @mickym last edited by

                      @mickym

                      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...

                      mickym 1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @jkoller84 last edited by mickym

                        @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?

                        J 1 Reply Last reply Reply Quote 0
                        • J
                          jkoller84 @mickym last edited by

                          @mickym

                          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
                          Homoran mickym 3 Replies Last reply Reply Quote 0
                          • Homoran
                            Homoran Global Moderator Administrators @jkoller84 last edited by

                            @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

                            1 Reply Last reply Reply Quote 0
                            • mickym
                              mickym Most Active @jkoller84 last edited by mickym

                              @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.

                              cf7203e2-0cc5-440e-95f0-4485eb598015-image.png

                              Und den Broker lässt Du im Großen und ganzen in Ruhe.

                              J 1 Reply Last reply Reply Quote 0
                              • J
                                jkoller84 @mickym last edited by

                                @mickym

                                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?

                                J 1 Reply Last reply Reply Quote 0
                                • mickym
                                  mickym Most Active @jkoller84 last edited by

                                  @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:

                                  6caf49d7-9ee6-4583-ac11-40f509aa739a-image.png

                                  In Deinem Fall also von dem mqtt Client/Server 2 Instanzen und dem mqtt-Client eine Instanz:

                                  1. mqtt.0 als Broker
                                  2. mqtt.1 als Publishing Instanz
                                  3. mqtt-client.0 zum Steuern und veröffnetlichen einzelner Datenpunkte.

                                  Das hat sich deswegen hochgeschaukelt, weil Du Endlosschleifen mit Publishen und Subscriben produziert hast.

                                  1 Reply Last reply Reply Quote 0
                                  • J
                                    jkoller84 @jkoller84 last edited by

                                    @jkoller84

                                    hab gerade gesehen, sobald ich die Instanz mqtt-client aktivere habe ich dasselbe Problem wieder, die CPU jammert mit 100% vor sich hin...

                                    J mickym 2 Replies Last reply Reply Quote 0
                                    • J
                                      jkoller84 @jkoller84 last edited by

                                      @jkoller84

                                      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...

                                      1 Reply Last reply Reply Quote 0
                                      • mickym
                                        mickym Most Active @jkoller84 last edited by mickym

                                        @jkoller84 sagte in iobroker als mqtt server um Daten zu verteilen:

                                        @jkoller84

                                        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:
                                        9551cc2a-399d-486b-a70b-6d7835508559-image.png

                                        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.

                                        J 1 Reply Last reply Reply Quote 0
                                        • J
                                          jkoller84 @mickym last edited by

                                          @mickym

                                          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.
                                          Einstellungen.png

                                          Ist das so in Ordnung?

                                          Einstellungen.png

                                          Einstellungen2.png

                                          Einstellungen3.png

                                          Einstellungen4.png

                                          mickym 1 Reply Last reply Reply Quote 0
                                          • mickym
                                            mickym Most Active @jkoller84 last edited by

                                            @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.

                                            J 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            451
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            29
                                            2745
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo