Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. MQTT nur bestimmte Geräte abonnieren

    NEWS

    • Monatsrückblick – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    MQTT nur bestimmte Geräte abonnieren

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

      Hallo zusammen,

      ich versuche im MQTT Adapter die BLE Geräte zu erfassen.
      Dafür nutze ich mehrere ESP32 mit unterschiedlicher Software, da ich für mich noch keine Lösung gefunden habe.

      Allerdings habe ich das Problem, das der Scanner mehrere tausend Geräte innerhalb von 2-3 Tagen erfasst und der Adapter für jeden dieser dann Datenpunkte anlegt.
      Zum einen zwingt das den Iobroker auf dem NUC in die knie, zum anderen will ich diese Daten auch gar nicht speichern.

      Mein Ziel wäre 3 eigene Geräte zu speichern und die Aktualisierungen dazu zu erhalten.

      Nun zu meiner Frage:
      Kann ich dem Adapter sagen, das ich nur bestimmte daten erfassen möchte?

      Ich bin mit MQTT nicht so fit, daher versuche ich hier noch informationen bereit zu stellen:

      So sieht es aktuell, kurz nach dem Start aus:
      af2e592d-f8b3-490d-993a-254004747d06-image.png

      Json export des Datenpunktes

      {
        "mqtt.0.espresense.devices.mifit:c7e3c409ee00.wohnzimmer": {
          "common": {
            "name": "espresense/devices/mifit:c7e3c409ee00/wohnzimmer",
            "write": true,
            "read": true,
            "role": "variable",
            "desc": "mqtt server variable",
            "type": "string"
          },
          "native": {
            "topic": "espresense/devices/mifit:c7e3c409ee00/wohnzimmer"
          },
          "type": "state",
          "from": "system.adapter.mqtt.0",
          "user": "system.user.admin",
          "ts": 1641415217155,
          "_id": "mqtt.0.espresense.devices.mifit:c7e3c409ee00.wohnzimmer",
          "acl": {
            "object": 1638,
            "state": 1638,
            "owner": "system.user.admin",
            "ownerGroup": "system.group.administrator"
          }
        }
      }
      

      Wert des Datenpunktes:

      {"id":"mifit:c7e3c409ee00","idType":15,"rssi@1m":-59,"rssi":-44,"mac":"c7e3c409ee00","raw":0.37,"distance":0.37,"speed":0}
      

      Ich habe 3 von diesen "mifit:macadresse" Geräten und nur die möchte ich gerne in der Auflistung angezeigt bekommen.

      mickym hydrotec 2 Replies Last reply Reply Quote 0
      • mickym
        mickym Most Active @Muchul last edited by mickym

        @muchul sagte in MQTT nur bestimmte Geräte abonnieren:

        Kann ich dem Adapter sagen, das ich nur bestimmte daten erfassen möchte?

        KLar kannst Du nur bestimmte Äste importieren ( allerdings weiß ich nicht ob das funktioniert, wenn der MQTT_Adapter als Broker/Server betrieben wird) :

        df28d5d2-7ed1-4f79-96cd-2bb84e5820ec-image.png

        Hier gibst Du durch Komma getrennt, die mqtt Namen ein und die Bäume darunter:

        espresense/devices/mifit:c7e3c409ee00/#,espresense/devices/mifit:c7ffffffffff/#, usw.

        M 1 Reply Last reply Reply Quote 0
        • M
          Muchul @mickym last edited by

          @mickym
          Ich meine ich hätte es so versucht, bin mir aber nicht sicher ob ich den Aufbau korrekt hatte.
          Ich meine das die anderen Geräte trotzdem angelegt wurden.

          Daher werde ich es heute Abend so wie von dir gezeigt nochmal testen und eine Rückmeldung geben.

          Danke für deine Hilfe.

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

            @muchul Ja wie gesagt, kann sein, dass das nicht funktioniert wenn Du den Adapter als Broker verwendest. Dann müsstest Du ggf. einen externen Broker installieren und nur bestimmte Abos nehmen.

            Homoran 1 Reply Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators @mickym last edited by

              @mickym sagte in MQTT nur bestimmte Geräte abonnieren:

              wenn Du den Adapter als Broker verwendest. Dann müsstest Du ggf. einen externen Broker installieren

              @Muchul
              ...oder zusätzlich den Client installieren und dort selektiv über die States abonnieren

              1 Reply Last reply Reply Quote 0
              • M
                Muchul last edited by

                @mickym :
                Ja ich hatte es so getestet, trotzdem werden, wie von dir befürchtet die weiteren Datenpunkte angelegt, was natürlich nicht gut ist (habe es gerade noch mal getestet).

                @Homoran :
                Ich kann ja nicht den Adapter einmal als Broker und einmal als Client installieren, da der Broker die zig tausend (keine Übertreibung, beim letzten Test über eine Woche hatte ich 12.000 Einträge) anlegen und ioBroker ausbremsen würde.

                Also einen externen Broker anlegen und den Adapter als Client einrichten, korrekt?
                Werde ich auf jeden Fall mal am Wochenende angehen.

                Homoran 1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators @Muchul last edited by

                  @muchul sagte in MQTT nur bestimmte Geräte abonnieren:

                  ch kann ja nicht den Adapter einmal als Broker und einmal als Client installieren

                  nein, nicht den Adapter

                  einmal den MQTT-Adapter als Broker, und einmal den MQTT-Client-Adapter
                  mit dem letzteren kannst du selektiv für jeden Datenpunkt topics beim publish vergeben, abonnieren.....

                  1 Reply Last reply Reply Quote 0
                  • M
                    Muchul last edited by

                    Nur damit ich es nicht falsch verstehe:
                    Ich habe den MQTT Adapter als Broker und der müllt ioBroker mit Datenpunkten zu.
                    kann ich ihn mit dem anderen Adapter (MQTT Client) dazu bringen, nicht alles zu speichern sondern nur die gewünschten Daten?
                    Würde der Broker nicht wieder die DP anlegen?
                    Irgendwie stehe ich da auf dem Schlauch (das mit den Broker und Client = 2 verschiedene Adapter) habe ich jetzt kapiert.

                    Homoran 1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @Muchul last edited by

                      @muchul sagte in MQTT nur bestimmte Geräte abonnieren:

                      (das mit den Broker und Client = 2 verschiedene Adapter) habe ich jetzt kapiert.

                      Gut - das ist der erste Schritt

                      @muchul sagte in MQTT nur bestimmte Geräte abonnieren:

                      Ich habe den MQTT Adapter als Broker und der müllt ioBroker mit Datenpunkten zu.

                      Das ist nicht gut, aber ab jetzt bin ich überfragt. Meine dementsprechenden Tests sind bestimmt schon 5 Jahre her.

                      So weit ich mich erinnere:
                      Beim MQTT-Client Adapter könntest du sogar die gewünschten Datenpunkte anlegen und darin je Datenpunkt Abonnemant und publish sehr flexibel einstellen.

                      Jetzt kommt das Problem mit dem Broker.
                      Wenn dieser natürlich alles abonnieren muss, legt der dafür auch die Datenpunkte an.
                      Aber das gilt doch auch für einen externen Broker. Der legt zwar keine Datenpunkte an, läuft aber doch auch voll????

                      1 Reply Last reply Reply Quote 0
                      • M
                        Muchul last edited by

                        @homoran

                        Aber das gilt doch auch für einen externen Broker. Der legt zwar keine Datenpunkte an, läuft aber doch auch voll????

                        Korrekt, das macht mir auch sorgen.
                        Es gibt auch eine Software namens OpenMQTTGateway, hier kann ich im ESP32 bereits eine White List anlegen, muss diese aber dann bei jedem Verbindungsaufbau nach einem Stromausfall wieder mit der Whitelist bestücken.
                        Dafür bräuchte ich ein Script der das ständig überwacht und mit "retain" sofort zuschlägt.

                        Sieht so aus als ob das das einzige wäre was mir übrig bleibt.
                        Werde ich mich wohl mangels englisch mit hilfe von DeepL durchackern müssen.

                        Raidy007 1 Reply Last reply Reply Quote 0
                        • Raidy007
                          Raidy007 @Muchul last edited by

                          @muchul Ich kenne das Problem - Ich habe es ebenfalls....

                          Habe 5 ESPresense "Lieferanten". In der Regel halten sich die Meldungen in Grenzen (Grenze im ESPresense auf 15m eingestellt...) Nur ein Samsung Device wechselt scheinbar seine BT Mac-Adresse und iteriert einmal durch gefühlt alle Möglichkeiten ...

                          Da es scheinbar noch keine Möglichkeit des whitelistings gibt, fällt mir nur ein, vll ein Script, was alles löscht, außer bekannte/gewünschte Geräte. Ist aber wahrscheinlich nur ein workaround bis es sowas gibt...

                          2c49ab21-926d-4512-b5cb-3ade8da1fecf-image.png

                          Ähnliches hatte ich mir mit dem radar2 auch schonmal eingefangen, mal sehen wie es sich hier lösen lässt!

                          M 1 Reply Last reply Reply Quote 0
                          • M
                            Muchul @Raidy007 last edited by

                            @raidy007
                            Ich habe ioBroker erst mal aus der Schusslienie rausgenommen, in dem ich einen Selbständigen MQTT Broker installiert habe.
                            Jetzt kann eventuell mosquitto Volllaufen, aber iobroker wird nicht mehr gestört.

                            Bin mit dem ESPresense, dank dere Hilfe von @GiuseppeS auch ein wenig weitergekommen:
                            https://forum.iobroker.net/topic/19928/mqtt-bluetooth-ble-anwesenheitserkennung-mit-esp32/98

                            1 Reply Last reply Reply Quote 0
                            • hydrotec
                              hydrotec @Muchul last edited by

                              @muchul

                              Nur aus eigenem Interesse, wäre der Adapter "Sonoff" nicht die bessere Wahl?
                              Kenne mich mit dem Adapter nicht aus, da ich selbst keine Tasmota oder ESP Geräte in Verwendung habe.
                              Doch hört sich irgendwie schlüssiger an.

                              Zu MQTT allgemein, für mich sieht es so aus, als ob euer MQTT-Server nicht abgesichert ist.
                              Aus diesem Grund empfängt er alles was so über den Äther fließt.
                              Den Server wenigstens mit Benutzer:Passwort absichern, und nur die Geräte,
                              welche den Zugang kennen und nutzen, werden angezeigt.


                              @Raidy007

                              Kannst du bitte, zu deiner Konfiguration wie du das Samsung Gerät an ioBroker integriert hast, detaillierter beschreiben.
                              Hast du schon versucht es mit Wildcards zu lösen?


                              Gruß, Karsten

                              M 1 Reply Last reply Reply Quote 0
                              • M
                                Muchul @hydrotec last edited by

                                @hydrotec sagte in MQTT nur bestimmte Geräte abonnieren:

                                @muchul

                                Nur aus eigenem Interesse, wäre der Adapter "Sonoff" nicht die bessere Wahl?
                                Kenne mich mit dem Adapter nicht aus, da ich selbst keine Tasmota oder ESP Geräte in Verwendung habe.
                                Doch hört sich irgendwie schlüssiger an.

                                Leider nein.
                                Sonoff macht nur einen Teil der MQTT Kommunikation, was er nicht kennt wird nicht angezeigt, glaube ich.
                                Auf jeden fall funktioniert nicht alles mit dem Adapter.

                                Zu MQTT allgemein, für mich sieht es so aus, als ob euer MQTT-Server nicht abgesichert ist.
                                Aus diesem Grund empfängt er alles was so über den Äther fließt.
                                Den Server wenigstens mit Benutzer:Passwort absichern, und nur die Geräte,
                                welche den Zugang kennen und nutzen, werden angezeigt.

                                Da irrst du dich. Der Server ist Passwort gesichert und auch nur im internen Netz erreichbar.
                                Ich wohne in unmittelbarer nähe einer Einkaufsstraße, da hat so ein Scanner am Tag mal locker 3.000 - 5.000 Geräte gescannt. Wenn du mal eine Woche nicht aufräumst hast du ganz schnell 20.000 - 50.000 Geräte in der Liste und es kommen weitere hinzu. Jetzt multipliziere das mal mit 4 Scannern, die fasst alles ebenfalls Scannen.
                                Danach läuft ioBroker auch nicht mehr flüssig.

                                Asgothian hydrotec 2 Replies Last reply Reply Quote 0
                                • Asgothian
                                  Asgothian Developer @Muchul last edited by

                                  @muchul sagte in MQTT nur bestimmte Geräte abonnieren:

                                  Da irrst du dich. Der Server ist Passwort gesichert und auch nur im internen Netz erreichbar.
                                  Ich wohne in unmittelbarer nähe einer Einkaufsstraße, da hat so ein Scanner am Tag mal locker 3.000 - 5.000 Geräte gescannt. Wenn du mal eine Woche nicht aufräumst hast du ganz schnell 20.000 - 50.000 Geräte in der Liste und es kommen weitere hinzu. Jetzt multipliziere das mal mit 4 Scannern, die fasst alles ebenfalls Scannen.
                                  Danach läuft ioBroker auch nicht mehr flüssig.

                                  Das bedeutet das dein Problem nicht im MQTT Server liegt. Dein Problem ist der Scanner. Diesem musst du beibringen das er nur dann Payloads an den MQTT Server published wenn das gescannte Gerät bestimmten Regeln folgt.

                                  Erklär doch mal wie die Information fliesst und welche Software an welcher Stelle benutzt wird:

                                  blescan.svg

                                  A.

                                  1 Reply Last reply Reply Quote 1
                                  • M
                                    Muchul last edited by Muchul

                                    Hi, @asgothian.
                                    Das funktioniert schon so wie in deiner Zeichnung.

                                    Ich habe bisher zwei verschiedene Software getestet.
                                    https://docs.openmqttgateway.com/
                                    Ist in Ordnung und kann auch White Listen nutzen, das Problem war, das die Listen nicht reset fest waren.
                                    Dafür müsste IoBroker feststellen, ob das Gerät neu gestartet wurde und die Liste jedes Mal erneut an den Scanner senden.
                                    Das habe ich nicht hinbekommen, der Entwickler meint das muss von dem MQTT Brocker gemacht werden und möchte die Einstellungen nicht Resetfest machen.

                                    Aktuell teste ich https://espresense.com.
                                    Hier gibt es gar keine Möglichkeit White Listen zu hinterlegen, aber ein wenig Unterstützung hier im Forum, was die Auswertung angeht. Siehe hier

                                    ich habe das Problem erst mal für mich, nicht elegant, aber ohne das IoBroker gebremst wird gelöst, in dem ich Mosquitto installiert habe und über den Clienten nur noch meine drei Mi Bänder abonniert habe.
                                    Irgendwann wird Mosquitto natürlich auch voll laufen, der merkt sich ja auch alles mögliche, aber da werde ich schon noch eine Lösung finden. Notfalls wird die VM gelöscht und ein Klon aktiviert. 🙂

                                    Mangels Programmierfähigkeiten und englisch Kenntnissen muss ich halt warten, bis irgendjemand eine Lösung für meine Probleme Programmiert hat, weil er das selbe Problem hatte.

                                    Ich träume derweilen noch von einem Wohnungsgrundriss ala, https://github.com/ESPresense/ad-espresense-ips, in dem ich diverse Geräte live verfolgen kann.
                                    Ich denke aber das ist nur eine Frage der Zeit, es entwickelt sich ja alles weiter.

                                    1 Reply Last reply Reply Quote 0
                                    • hydrotec
                                      hydrotec @Muchul last edited by

                                      @muchul sagte in MQTT nur bestimmte Geräte abonnieren:

                                      Da irrst du dich. Der Server ist Passwort gesichert und auch nur im internen Netz erreichbar.

                                      Da irre ich mich doch gerne 😉

                                      @muchul sagte in MQTT nur bestimmte Geräte abonnieren:

                                      Ist in Ordnung und kann auch White Listen nutzen, das Problem war, das die Listen nicht reset fest waren.
                                      Dafür müsste IoBroker feststellen, ob das Gerät neu gestartet wurde und die Liste jedes Mal erneut an den Scanner senden.

                                      Warum regelst du das nicht über ein Startscript direkt auf der Maschine, auf welcher die Scannersoftware läuft?
                                      So das der Scanner erst startet wenn die Whitelist kopiert wurde. Dazu braucht es kein ioBroker.

                                      M 1 Reply Last reply Reply Quote 0
                                      • M
                                        Muchul @hydrotec last edited by

                                        @hydrotec
                                        Weil beide OMG Openmqttgateway und ESPresence keine Script Möglichkeiten anbieten.
                                        Würde bedeuten das ich OMG nutzen müsste und dann über MQTT die White Liste einspielen lasse, sobald sich der Scanner meldet.
                                        in der Zwischenzeit könnte es aber sein, das er schon 20 weitere Geräte über MQTT gemeldet hat.
                                        Jedenfalls ist das mein Verständnis dazu.
                                        Die Liste müsste mit RETAIN flag, sobald der Scanner gezuckt hat gesendet werden. Ob man da von der Brokerseite her schnell genug ist weiß ich nicht.

                                        Scanner Bootet -> Meldung an MQTT -> Script stellt fest der lebt ja wieder -> Script sendet die Liste.
                                        Ich glaube nicht, das das immer funktioniert, bevor de Scanner neue MAC Adressen geschickt hat.

                                        hydrotec 1 Reply Last reply Reply Quote 0
                                        • hydrotec
                                          hydrotec @Muchul last edited by

                                          @muchul

                                          Die Scannersoftware startet bestimmt automatisch als Service, sobald du deinen Container neu startest.
                                          Ich meinte, den Service nicht automatisch starten lassen, sondern über ein Script, welches bei einem Neustart ausgeführt wird, erst die Whitelist anlegen, bzw. in das benötigte Verzeichnis kopieren, und dann erst im Anschluß den Scanner starten.
                                          In der Art (nicht verwenden, ist aus dem Kopf getippt)

                                          #! /bin/sh
                                          cp /tmp/whitelist/whitelist.txt /opt/openmqttgateway/whitelist.txt && wait $!
                                          sudo systemctl start openmqttgateway.service
                                          
                                          M 1 Reply Last reply Reply Quote 0
                                          • M
                                            Muchul @hydrotec last edited by

                                            @hydrotec
                                            Der Scanner ist ein ESP32 der ständig läuft und nichts anderes macht als BLE Geräte zu scannen.
                                            Oder meinst du den Mosquitto ?
                                            Der läuft auch rund um die Uhr in einer VM.
                                            Das Problem entsteht nicht durch einen Neustart des Mosquitto, sondern durch den Neustart bzw. Stromlos werden des ESP32. Ich werde den Broker nicht stoppen nur weil eines von 10 Geräten ausgefallen ist, falls ich den Ausfall überhaupt mitbekomme.
                                            Frau Zieht Stecker und stellt fest das es der falsche war und steckt ihn wieder rein.
                                            Wann soll ich da reagieren?
                                            Auf dem ESP32 keine Möglichkeit.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            637
                                            Online

                                            32.1k
                                            Users

                                            80.7k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            22
                                            1611
                                            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