Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Objectzustände "aus dem Jenseits" tauchen auf

    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

    Objectzustände "aus dem Jenseits" tauchen auf

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

      Ausgangspunkt: Nach Crash neu aufgesetzt auf Raspi Bullseye, frische IOBroker Installation, aus BackitUp Sicherung eingespielt. Beide Adapter MQTT und MQTT-Client im Einsatz (schon immer). Mosquitto auf anderem Raspi

      Der Effekt:
      Ein besonders wichtiger Object-Zustand aus MQTT erscheint immer wieder aus der Vergangenheit, "falsee".
      Er kann aber z.B. in MQTT-Server gesetzt werden auf "true" und steht dann auch im Object.
      Weglöschen/Neuerzeugen des Objectes hat nicht genützt. Irgendwann kommt er wieder.

      Anbei alle Zeilen aus den object.jsonl und status.jsonl. (Mehrfach!??)
      Ich nehme an, das ist nur ein Indiz. Es gibt bestimmt noch weitere Folgen.
      Danke für Hinweise

      states_objects.jsonl_mackeglocke_falsee.txt

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

        @wolfgangd Na vielleicht hat jemand beim setzen im mqtt - die Werte mit dem retain flag gesetzt.

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

          @mickym Das ist ein super-Tipp! Darauf bin ich nicht gekommen. Werde ich nachgehen. Danke

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

            @wolfgangd sagte in Objectzustände "aus dem Jenseits" tauchen auf:

            @mickym Das ist ein super-Tipp! Darauf bin ich nicht gekommen. Werde ich nachgehen. Danke

            Ja das Problem ist, dass der mqtt-Adapter generell mit retain Flags nicht umgehen kann.

            Ich hab mal ein kleines Video für Dich gemacht, um das zu demonstrieren:

            mqtt Retain Fehler mit Mqtt Adapter.mp4

            Um das Video etwas zu erläutern:

            Retained Nachrichten sind ja permanente Nachrichten, die bleiben erhalten und werden automatisch zur Initialisierung beim Verbindungsaufbau an den Client gesendet.

            Mit Node-Red kannst Du das gut nachvollziehen. Wenn ich den Flow neustarte, wird die Verbindung zum mqtt-Broker getrennt und neu aufgebaut. Bei mir ist der mqtt-Broker auch ein mosquitto.

            Nun die verschiedenen Szenarien in dem Video, um zu demonstrieren, was passt und was nicht. 😉 - Der mqtt-Adapter im iobroker selbst kennt gar kein Retain - Flag und geht auch damit nicht richtig um. 😉

            1. Szene:
              Ein Boolean "false" wird an das topic test/retain mit "Retain" Flag = "wahr" geschickt. Im Adapter wird der Wert aktualisiert, da mosquitto den Wert "false" schickt.
              Dann wird der Flow neu gestartet. (Neuaufbau zum mqtt-Broker)
              Wie erwartet wird der Wert "false" beim Wiederaufbau zur Initialisierung von mosquitto gesendet. Perfekt!!! Beim mqtt-Adapter merkt man nicht. 😞
            2. Szene
              Ein Boolean "true" wird an das topic test/retain mit "Retain" Flag = "false" geschickt. Im Adapter wird der Wert aktualisiert, da mosquitto den Wert "true" schickt.
              Dann wird der Flow neu gestartet. (Neuaufbau zum mqtt-Broker)
              Nun wird der Wert "false" beim Wiederaufbau zur Initialisierung von mosquitto gesendet. Der mqtt Adapter bekommt das aber gar nicht mit, weil er keine Retain Nachrichten verarbeitet.
              Nun haben wir den Fall, dass im Adapter ein völlig falscher Wert steht, als den der von mosquitto eigentlich gesendet wird (nämlich "false", im Adapter steht aber immer noch "true").
            3. Szene
              Die einzige Möglichkeit eine "retained" Nachricht zu löschen, ist eine leere Nachricht an das topic mit Retain Flag = true zu setzen. Im mqtt-Adapter erscheint (null). Nun kann man den Datenpunkt theoretisch löschen und sollte auch nicht mehr auftauchen.
              Wird der Flow neu gestartet. (Neuaufbau zum mqtt-Broker) ....
              wird von mosquitto auch wirklich nichts mehr gesendet.

            FAZIT: mosquitto sendet Dir Nachrichten, die der mqtt-Adapter leider gar nicht erfasst.

            WolfgangD 1 Reply Last reply Reply Quote 2
            • WolfgangD
              WolfgangD @mickym last edited by

              @mickym Vielen Dank für die ausführliche Darstellung. Problem gelöst!

              1 Reply Last reply Reply Quote 0
              • RaspiUser
                RaspiUser last edited by

                ... ich habe ein ähnliches (?) Problem ...

                In den MQTT-Objekten haben sich zwischenzeitlich sehr viele "Leichen" angesammelt. Diese konnte ich über den Papierkorb löschen. Sobald ich den Adapter aber neu starte sind alle wieder da ...

                Gibt es irgendwo einen Ordner o.ä. das man alles in "einem Rutsch" endgültig löschen kann ? Oder hilft es den Adapter komplett zu löschen ?

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

                  @raspiuser Na ja wenn Du ein Haufen retained Nachrichten in mosquitto geschickt hast und im Prinzip nicht mehr weißt welche, dann musst Du halt die mosquitto.db löschen. Über einen Adapter neustart sind sie ja nur da, wenn sie in deinem Broker noch vorhanden sind.

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

                    @mickym said in Objectzustände "aus dem Jenseits" tauchen auf:

                    die mosquitto.db löschen.

                    Kannst Du mir (als LINUX Anfänger) bitte erklären wie ich das sicher mache ?
                    Oder ist es sicherer den Adapter neu zu installieren ?

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

                      @raspiuser Na wenn Du die Objekte aus dem Adapter löschst - dann kommen die doch wieder - da kannst Du den Adapter 10 mal löschen. Die Objekte sind doch in Deinem Broker. Zum einen musst Du halt mal schauen, warum Du die mit dem retained flag abgespeichert hast und woher das kommt. Ansonsten wenn es nicht zuviele sind musst Du halt an alle topics an die Du retained Nachrichten geschickt hast - wie unten beschrieben leere Nachrichten mit retained=true schicken.

                      Hast Du denn mosquitto als Broker laufen?

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

                        @mickym said in Objectzustände "aus dem Jenseits" tauchen auf:

                        Hast Du denn mosquitto als Broker laufen?

                        ... so siehts aus ...
                        fef6bba9-770f-419e-9621-0bc443b1e7ff-grafik.png

                        OK ... Adapter löschen bringt nix (Ich war der naiven Meinung, dass dann auch diese mosquitto.db weg ist).
                        Und die mosquitto.db löschen muss ich dann wohl unter PuTTY, richtig ? Eine kurze Anleitung wäre hilfreich ... (und alle Topic einzeln anzugehen macht keinen Sinn, einige Geräte davon gibts nicht mehr)...

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

                          @raspiuser Wie gesagt in Zukunft halt aufpassen, dass Du keine retained topics mehr setzt, wenn du es nicht brauchst. Ja Du musst auf die Kommandozeile. Ob mit putty -ich nehme meist eine ssh aus meinem Windowseingabefenster. 😉 Putty braucht man heutzutage eigentlich nimmer.

                          dann

                          cd /var/lib/mosquitto
                          

                          mosquitto stoppen

                          sudo systemctl stop mosquitto
                          

                          mosquitto db löschen

                          sudo rm mosquitto.db
                          

                          mosquitto neu starten (leere db wird angelegt)

                          sudo systemctl start mosquitto
                          
                          1 Reply Last reply Reply Quote 2
                          • RaspiUser
                            RaspiUser last edited by

                            @mickym said in Objectzustände "aus dem Jenseits" tauchen auf:

                            Putty braucht man heutzutage eigentlich nimmer.

                            ... ich schon ...

                            Vielen Dank für die Kurzanleitung !! Hat alles funktioniert !!
                            Diese Info hebe ich mir auf (um sie dann bei Bedarf auch wieder zu finden)

                            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

                            726
                            Online

                            31.9k
                            Users

                            80.1k
                            Topics

                            1.3m
                            Posts

                            3
                            12
                            888
                            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