Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Einsteigerfragen
  4. Einbindung von Geräten
  5. ioBroker / mosquitto mqtt Server (Retain und QOS)

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    15
    1
    460

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    614

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.8k

ioBroker / mosquitto mqtt Server (Retain und QOS)

Geplant Angeheftet Gesperrt Verschoben Einbindung von Geräten
9 Beiträge 3 Kommentatoren 1.3k Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • hotspot_2H Offline
    hotspot_2H Offline
    hotspot_2
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich habe einen ioBroker schon länger am laufen und habe auch zahlreiche Shellys in Betrieb. Nachdem der Shelly Adapter nicht allzuhäufig aktualisiert wird, was seine berechtigten Gründe hat, habe ich irgendwann mal auf NodeRed und mosquitto MQTT Server geschwenkt (@mickym hat da sehr geholfen!). Mittlerweile bin ich sehr großer NodeRED Fan und das lief immer alles wunderbar.

    Vermutlich seit einem der letzten Shelly Firmwareupdates habe ich das Problem das sich Shellys immer wieder einschalten und ich wusste nicht warum. NodeRED analysiert, History Adapter verwendet und und... Das alles hat nichts aufgezeigt was die Einschaltungen erklärt. Erst als ich jetzt rsyslog verwendet habe bin ich einer Sache auf die Spur gekommen. Wenn ein Shelly sich ein neues WLAN sucht (weil sich der Pegel ändert) oder das WLAN verliert dann frägt er danach vom MQTT Server irgendwas ab das ihm dann mitteilt das er sich wieder einschalten soll. Man kann das auch sauber reproduzieren indem man einfach den Repeater im Haus zeith mit dem der Shelly gerade verbunden ist. Ziehen -> Licht an. Ich habe das bisher aber nur bei einzelnen Shellys festgestellt nicht bei allen.

    Als erste Maßnahme habe ich den Shellys mitgegeben sich nicht ständig neue WLANs zu suchen. Das hilft schon mal sehr.

    Ich würde aber trotzdem gerne das Problem lösen und zwar so das es nicht mehr vorkommt.

    Der Shelly Support hat mir jetzten den Tipp gegeben retain und QOS zu überpüfen beim MQTT Server (denke ich). Bei mir fungiert der MQTT Adapter nur als Client im ioBroker wenn ich das noch richtig in Erinnerung habe.

    Jetzt zu meiner Frage, nach der langen Erklärung, wie kann ich das überprüfen und wo?

    Danke schon mal für eure Hilfe!

    BananaJoeB 1 Antwort Letzte Antwort
    0
    • hotspot_2H hotspot_2

      Hallo zusammen,

      ich habe einen ioBroker schon länger am laufen und habe auch zahlreiche Shellys in Betrieb. Nachdem der Shelly Adapter nicht allzuhäufig aktualisiert wird, was seine berechtigten Gründe hat, habe ich irgendwann mal auf NodeRed und mosquitto MQTT Server geschwenkt (@mickym hat da sehr geholfen!). Mittlerweile bin ich sehr großer NodeRED Fan und das lief immer alles wunderbar.

      Vermutlich seit einem der letzten Shelly Firmwareupdates habe ich das Problem das sich Shellys immer wieder einschalten und ich wusste nicht warum. NodeRED analysiert, History Adapter verwendet und und... Das alles hat nichts aufgezeigt was die Einschaltungen erklärt. Erst als ich jetzt rsyslog verwendet habe bin ich einer Sache auf die Spur gekommen. Wenn ein Shelly sich ein neues WLAN sucht (weil sich der Pegel ändert) oder das WLAN verliert dann frägt er danach vom MQTT Server irgendwas ab das ihm dann mitteilt das er sich wieder einschalten soll. Man kann das auch sauber reproduzieren indem man einfach den Repeater im Haus zeith mit dem der Shelly gerade verbunden ist. Ziehen -> Licht an. Ich habe das bisher aber nur bei einzelnen Shellys festgestellt nicht bei allen.

      Als erste Maßnahme habe ich den Shellys mitgegeben sich nicht ständig neue WLANs zu suchen. Das hilft schon mal sehr.

      Ich würde aber trotzdem gerne das Problem lösen und zwar so das es nicht mehr vorkommt.

      Der Shelly Support hat mir jetzten den Tipp gegeben retain und QOS zu überpüfen beim MQTT Server (denke ich). Bei mir fungiert der MQTT Adapter nur als Client im ioBroker wenn ich das noch richtig in Erinnerung habe.

      Jetzt zu meiner Frage, nach der langen Erklärung, wie kann ich das überprüfen und wo?

      Danke schon mal für eure Hilfe!

      BananaJoeB Online
      BananaJoeB Online
      BananaJoe
      Most Active
      schrieb am zuletzt editiert von
      #2

      @hotspot_2 In den Einstellungen des MQTT-Adapters:

      68f6adb8-7a08-444e-851e-74db31ffed45-image.png

      ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

      1 Antwort Letzte Antwort
      0
      • mickymM Online
        mickymM Online
        mickym
        Most Active
        schrieb am zuletzt editiert von mickym
        #3

        In den mqtt-out Nodes darfst Du halt keine retain Nachrichten verschicken.
        ac185986-1c2a-4b83-a236-e1fa92fba9bc-image.png
        Wenn Du nichts eingibst, dann ist false der Standard. Wenn Du hier true eingetragen hast (also retain eingetragen hast), dann werden diese Nachrichten jedesmal wenn sich ein mqtt-Client verbindet diese Nachricht erneut geschickt. Das würde erklären, wenn sich Dein Shelly ein neues WLAN sucht, muss es sich ja auch erneut wieder mit dem mqtt-Broker verbinden. Wenn Du dann einen Einschaltbefehl als retain geschickt hast, dann wird das beim Wiederverbinden erneut geschickt. Und natürlich auch wie @BananaJoe sagt, auch vom Adapter keine retain Nachrichten schicken.
        Wenn alles sauber ist, sollte auch das erneute Verbinden mit dem mqtt-Broker keine Nachrichten erzeugen.

        Ich habe nur Gen1 Shellies - aber auch hier kannst Du das retain flag setzen. Das sollte man meiden (wobei man es bei den Geräten ggf. noch vertreten kann, aber ich komm ohne aus) und auch immer mit clean sessions beginnen, nach dem Wiederverbinden:

        ba168d34-1806-4c43-8d09-0e6a70518587-image.png

        Du kannst das auch überprüfen, indem Du mqtt-IN Nodes auf topics setzt, die Du sonst selbst über mqtt-Out Node schickst. Wenn Du dann nach wiederverbinden sofort Nachrichten auf diesen Topics erhälst dann ist das ein Grund.

        Wenn Du sicher gehen willst, dass Du keine retained Nachrichten in deinem mosquitto Broker hast - würde ich einfach die komplette mosquitto.db löschen oder wegsichern - mache ich auch manchmal, um wieder eine saubere Datenbank zu haben. Vorher natürlich mosquitto stoppen, dann die DB löschen oder wegsichern, dann mosquitto wieder starten.

        Die mosquitto Datenbank befindet sich hier:

        /var/lib/mosquitto $ ls
        mosquitto.db
        

        Wenn Du für ein einzelnes topic eine retain Nachricht löschen willst, musst Du einen leeren String an das topic schicken, aber wie gesagt - ich würde lieber mit einer sauberen DB anfangen.

        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

        hotspot_2H 1 Antwort Letzte Antwort
        1
        • mickymM mickym

          In den mqtt-out Nodes darfst Du halt keine retain Nachrichten verschicken.
          ac185986-1c2a-4b83-a236-e1fa92fba9bc-image.png
          Wenn Du nichts eingibst, dann ist false der Standard. Wenn Du hier true eingetragen hast (also retain eingetragen hast), dann werden diese Nachrichten jedesmal wenn sich ein mqtt-Client verbindet diese Nachricht erneut geschickt. Das würde erklären, wenn sich Dein Shelly ein neues WLAN sucht, muss es sich ja auch erneut wieder mit dem mqtt-Broker verbinden. Wenn Du dann einen Einschaltbefehl als retain geschickt hast, dann wird das beim Wiederverbinden erneut geschickt. Und natürlich auch wie @BananaJoe sagt, auch vom Adapter keine retain Nachrichten schicken.
          Wenn alles sauber ist, sollte auch das erneute Verbinden mit dem mqtt-Broker keine Nachrichten erzeugen.

          Ich habe nur Gen1 Shellies - aber auch hier kannst Du das retain flag setzen. Das sollte man meiden (wobei man es bei den Geräten ggf. noch vertreten kann, aber ich komm ohne aus) und auch immer mit clean sessions beginnen, nach dem Wiederverbinden:

          ba168d34-1806-4c43-8d09-0e6a70518587-image.png

          Du kannst das auch überprüfen, indem Du mqtt-IN Nodes auf topics setzt, die Du sonst selbst über mqtt-Out Node schickst. Wenn Du dann nach wiederverbinden sofort Nachrichten auf diesen Topics erhälst dann ist das ein Grund.

          Wenn Du sicher gehen willst, dass Du keine retained Nachrichten in deinem mosquitto Broker hast - würde ich einfach die komplette mosquitto.db löschen oder wegsichern - mache ich auch manchmal, um wieder eine saubere Datenbank zu haben. Vorher natürlich mosquitto stoppen, dann die DB löschen oder wegsichern, dann mosquitto wieder starten.

          Die mosquitto Datenbank befindet sich hier:

          /var/lib/mosquitto $ ls
          mosquitto.db
          

          Wenn Du für ein einzelnes topic eine retain Nachricht löschen willst, musst Du einen leeren String an das topic schicken, aber wie gesagt - ich würde lieber mit einer sauberen DB anfangen.

          hotspot_2H Offline
          hotspot_2H Offline
          hotspot_2
          schrieb am zuletzt editiert von hotspot_2
          #4

          Super! Vielen Dank.

          7145b2c0-0296-46d1-96d1-b8bce2255f17-image.png

          Ich habe jetzt mal QoS auf 1 gesetzt und Retain-Flag ausgeschalten. In Node Red sind alle MQTT Out Nodes so eingestellt das QoS und Retain einfach leer sind. Die Gen1 Shellys überprüfe ich noch alle und dann die mosquitto DB noch löschen.

          Verbunden mit der Einstellungen das die Shellys nicht alle 60 Sekunden nach einem besseren WLAN suchen sollen sondern das nun gar nicht mehr machen sollte es dann klappen, denk ich.

          mickymM 1 Antwort Letzte Antwort
          0
          • hotspot_2H hotspot_2

            Super! Vielen Dank.

            7145b2c0-0296-46d1-96d1-b8bce2255f17-image.png

            Ich habe jetzt mal QoS auf 1 gesetzt und Retain-Flag ausgeschalten. In Node Red sind alle MQTT Out Nodes so eingestellt das QoS und Retain einfach leer sind. Die Gen1 Shellys überprüfe ich noch alle und dann die mosquitto DB noch löschen.

            Verbunden mit der Einstellungen das die Shellys nicht alle 60 Sekunden nach einem besseren WLAN suchen sollen sondern das nun gar nicht mehr machen sollte es dann klappen, denk ich.

            mickymM Online
            mickymM Online
            mickym
            Most Active
            schrieb am zuletzt editiert von
            #5

            @hotspot_2 wenn du über Node-red steuerst, dann ist der mqtt Adapter eigentlich ein reines Monitoring. Meines Erachtens fährt man mit den Standardeinstellungen ohne retain (da hat der mqtt Adapter meines Erachtens eh einen Bug) und einer frischen mqtt Datenbank am Besten.

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            hotspot_2H 1 Antwort Letzte Antwort
            0
            • mickymM mickym

              @hotspot_2 wenn du über Node-red steuerst, dann ist der mqtt Adapter eigentlich ein reines Monitoring. Meines Erachtens fährt man mit den Standardeinstellungen ohne retain (da hat der mqtt Adapter meines Erachtens eh einen Bug) und einer frischen mqtt Datenbank am Besten.

              hotspot_2H Offline
              hotspot_2H Offline
              hotspot_2
              schrieb am zuletzt editiert von
              #6

              @mickym So hatte ich das auch verstanden mit dem MQTT Adapter.

              Bedeutet das ich sollte die MQTT Out Nodes dann alle anpassen mir QoS 1 und retain false (ist ja standard). Den die Einstellungen im MQTT Adapter haben ja dann keinen Einfluss auf die MQTT Outs in Node Red.

              mickymM 1 Antwort Letzte Antwort
              0
              • hotspot_2H hotspot_2

                @mickym So hatte ich das auch verstanden mit dem MQTT Adapter.

                Bedeutet das ich sollte die MQTT Out Nodes dann alle anpassen mir QoS 1 und retain false (ist ja standard). Den die Einstellungen im MQTT Adapter haben ja dann keinen Einfluss auf die MQTT Outs in Node Red.

                mickymM Online
                mickymM Online
                mickym
                Most Active
                schrieb am zuletzt editiert von
                #7

                @hotspot_2 Du brauchst in meinen Augen nicht auf QoS 1 in den mqtt-Out Nodes umstellen - Standard ist OK - wichtig ist nur dass das retain Flag nie gesetzt wird.

                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                hotspot_2H 1 Antwort Letzte Antwort
                0
                • mickymM mickym

                  @hotspot_2 Du brauchst in meinen Augen nicht auf QoS 1 in den mqtt-Out Nodes umstellen - Standard ist OK - wichtig ist nur dass das retain Flag nie gesetzt wird.

                  hotspot_2H Offline
                  hotspot_2H Offline
                  hotspot_2
                  schrieb am zuletzt editiert von
                  #8

                  @mickym Hi!

                  Ich habe mal wieder eine Frage. Ich hole mir ja per Node Red einige Werte der Shellys als Objekte in ioBroker rein.

                  Hast Du mir einen Tipp wie ich in Node.Red diese Berechnung hier umsetzen könnte (Blockly Variante).

                  acc40cab-589f-4c2c-99ae-011c39c507aa-image.png

                  Ich würde gerne den täglichen Energieverbrauch von ein paar Shellys, sind alle schon in Node Red drin weil ich den Switch Status oder den momentan Energieverbrauch schon so hole, berechnen.

                  Danke schon mal.

                  mickymM 1 Antwort Letzte Antwort
                  0
                  • hotspot_2H hotspot_2

                    @mickym Hi!

                    Ich habe mal wieder eine Frage. Ich hole mir ja per Node Red einige Werte der Shellys als Objekte in ioBroker rein.

                    Hast Du mir einen Tipp wie ich in Node.Red diese Berechnung hier umsetzen könnte (Blockly Variante).

                    acc40cab-589f-4c2c-99ae-011c39c507aa-image.png

                    Ich würde gerne den täglichen Energieverbrauch von ein paar Shellys, sind alle schon in Node Red drin weil ich den Switch Status oder den momentan Energieverbrauch schon so hole, berechnen.

                    Danke schon mal.

                    mickymM Online
                    mickymM Online
                    mickym
                    Most Active
                    schrieb am zuletzt editiert von mickym
                    #9

                    @hotspot_2 Nun diese Dinge musst Du selbst implementieren - da haben sie dem NodeRed Adapter gegenüber Blockly benachteiligt.

                    bd1e8fa9-dd6d-459d-8796-a418a688fb8d-image.png

                    Also einfach selbst Datenpunkte erstellen für vorherigen Wert, letzte Änderungen und vorherige letze Änderung. Getriggert von einer aktualisierung des Leistungspunktes.

                    Ansonsten kannst Du ja mal schauen, ob Dir dieser Subflow als Basis weiterhilft, da habe ich Zählerstände und Verbräuche in verschiedenen Zeiten ermittelt - allerdings, wenn der Zähler von den Shellies plötzlich auf 0 geht, dann stimmen die Berechnungen nicht - aber vielleicht kannst Du ja den Subflow noch etwas verbessern.

                    https://forum.iobroker.net/post/1148029

                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                    1 Antwort Letzte Antwort
                    0
                    Antworten
                    • In einem neuen Thema antworten
                    Anmelden zum Antworten
                    • Älteste zuerst
                    • Neuste zuerst
                    • Meiste Stimmen


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    914

                    Online

                    32.6k

                    Benutzer

                    81.9k

                    Themen

                    1.3m

                    Beiträge
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Anmelden

                    • Du hast noch kein Konto? Registrieren

                    • Anmelden oder registrieren, um zu suchen
                    • Erster Beitrag
                      Letzter Beitrag
                    0
                    • Home
                    • Aktuell
                    • Tags
                    • Ungelesen 0
                    • Kategorien
                    • Unreplied
                    • Beliebt
                    • GitHub
                    • Docu
                    • Hilfe