Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Korrekte Verwendung des MQTT Adapters

    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

    Korrekte Verwendung des MQTT Adapters

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

      Hallo zusammen,
      ich hab eine fast schon verzweifelte Frage in die Runde. Ich habe bisher den mqtt-client Adapter verwendet und der hat seine Sache aus meiner Sicht gut gemacht. Nun hab ich einige Steckdosen, die sich dank tasmota auch regelmäßig beim mosquitto melden und ihren Senf dazu geben und ich deren Infos gerne im IOBroker auswerten möchte.

      Schlau wie ich war (dache ich) ersetze ich den mqtt-client durch den mqtt Adapter. In dem Zuge wollte ich auch gleich die Informationen aus dem hmip und aus dem tr-064 Adapter Richtung mosquitto pushen.

      Meine Konfiguration sieht jetzt wie folgt aus:

      Subscribe Pattern: #
      Maske zum Bekanntgeben eigener States: tr-064.0., zigbee., hmip.* (enden alle auf .*, aber das filtert der Editor gerade raus 😉 )
      Eigene States beim Verbinden publizieren: ja
      Client ID: bla

      mqtt Adapter Version: 2.4.0

      Ich starte den den mqtt Adapter und er behauptet steif und fest das er keine Verbindung mit Gerät oder Dienst hat. Im mosquitto-Log sehe ich aber, das iobroker sich connected hat, der Test im Adapter ist auch erfolgreich.. WTF? Lösche ich die mosquitto DB und bin schnell genug, verbinde sich der mqtt Adapter auch erfolgreich und ist grün. WTF WTF

      Wenn ich mich mit dem MQTT Explorer auf den mosquitto verbinde, sehe ich die States von den Tasmota Geräten, sowie die zigbee Devices. hmip und tr-064 vermisse ich schmerzlich.

      d40671df-81f9-45f1-b347-6d7474244778-image.png

      Die mqtt ReadMe ist mir leider keine große Hilfe, wer kann mir helfen und mir sagen, wo ich beim denken falsch abgebogen bin?

      Gruß Mirko

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

        @miwolf Es macht einfach Sinn einen Präfix für Deinen Export zu geben, wenn Import und Export gleich sind - dann würde der Adapter in einer Endlosschliefe landen.

        Ich nutze 2 verschiedene Instanzen des MQTT-Adapters und exportiere iobroker Instanzen unter einem eigenen Präfix - das funktioniert grundsätzlich. Leider bekommt der MQTT ADapter als Client oft Probleme wegen dem admin5 - aber das ist ein anderes Thema.

        So also mal mein Konfig.

        mqtt.1 subscribed alles - aber exportiert nichts:

        43682f11-1870-4f4c-8495-c0e4d57852c0-image.png

        mqtt.2. exportiert bestimmte Infos aus dem tr-064.0, aber unter einem Präfix - ich habe es iobroker genannt

        373f7b3d-791f-400a-934b-87f21b8bbcd6-image.png

        Die Trennung in 2 Instanzen wichtig - da beim Export andere Einstellungen in meinen Augen notwendig sind (gerade wenn Du Zustände schicken willst) - als wenn Du nur in FrontEnd zum Publishen und Lesen der gesendeten Infos siehst. Das Problem ist dass man oft eine falsche Vorstellung von mqtt hat.
        Der mqtt Explorer sieht die ganzen aktuellen im mosquitto befindlichen Infos - aber mqtt bzw. mosquitto hält keine Infos vor (ausser retain) - die Infos im mqtt-Adapter bei subscriben von # enthält somit auch die ganze Historie kann aber deshalb gut - auch zur ggf. publishen verwenden.

        Also mein mqtt.1 Instanz ist quasi ein Abbild aller Nachrichten durch subscribe von # und publisbhed, wenn in dieser Instanz Änderungen stattfinden.
        mqtt.2 veröffentlicht meine Devices im tr-064.0.devices unter iobroker - enthält aber selbst keine mosquitto Infos. Grund sind wie gesagt unterschiedliche mqtt Einstellungen.

        Unter den Objekten sieht es dann so aus:

        Du siehst unter iobroker topic den tr-064.0 Ast im mqtt.1 - aber nichts unter mqtt.2 der diese Informationen in den mosquitto schickt.

        76b12c0f-d31d-462e-b186-fa18619549bc-image.png

        Im mqtt-Explorer wirst Du aber immer nur Änderungen sehen - weil mosquitto oder ein mqtt-Datenbank keine permanente Datenbank für states ist.

        Wie Du siehst habe ich auch unterschiedliche mqtt-Client ID verwendet - um im mosquitto Log zu unterscheiden von welcher Instanz was kommt.

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

          @miwolf sagte in Korrekte Verwendung des MQTT Adapters:

          hmip und tr-064 vermisse ich schmerzlich.

          Wie gesagt - die siehst Du im Explorer auch nicht, wenn nicht gerade etwas publiziert wird. Mosquitto oder ein Mqtt-Broker ist keine Datenbank und der Explorer zeigt nur Nachrichten an, die er empfängt, wenn mqtt Nachrichten eintreffen. - Ich hoffe Du verstehst es - Du kannst also gar nicht sicher sein, dass die Informationen nicht da sind. Und um aktuelle Informationen zu senden muss ACK-True aktiviert sein.

          In der Regel sind die Zustände in Deinem iobroker alle mit ACK-True und würden nie geschickt werden. Damit der Adapter aber nicht nur am SEnden der Zustände ist - empfiehlt es sich den 1. Haken ebenfalls zu machen. Normalerweise weißt eine Instanz nur Zustände auf - da ACK-false zur Steuerung der Hardware genutzt wird.

          Zigbee und Tasmota siehst Du im mqtt-Explorer nur - weil diese zyklisch unter bestimmten topics infos veröffentlichen. Wenn sie das nicht täten würdest Du es im mqtt-Explorer auch nicht sehen.

          Ich habe gerade mal meinen 0_userdata.0 auf veröffentlicht - funktioniert sofort - ich kann Dir nur raten das Level von INfo auf warn umstellst da dieser mqtt-Adapter jedes published topic in das Log schreibt und das ist dann im Nu voll.

          Ausserdem scheint entweder der mqtt-Adapter oder der admin5 Probleme zu haben mit der topic Tiefe:

          2021-12-02 03:14:39.774 - warn: mqtt.1 (31728) [undefined] Topic name is too long: mqtt.1.iobroker.0_userdata.0.accuWeather.home.daily.DailyForecasts.0.RealFeelTemperature.Maximum.Uni...
          2021-12-02 03:14:39.798 - warn: mqtt.1 (31728) [undefined] Topic name is too long: mqtt.1.iobroker.0_userdata.0.accuWeather.home.daily.DailyForecasts.0.RealFeelTemperature.Maximum.Uni...
          2021-12-02 03:14:39.799 - warn: mqtt.1 (31728) [undefined] Topic name is too long: mqtt.1.iobroker.0_userdata.0.accuWeather.home.daily.DailyForecasts.0.RealFeelTemperature.Maximum.Val...
          2021-12-02 03:14:39.807 - warn: mqtt.1 (31728) [undefined] Topic name is too long: mqtt.1.iobroker.0_userdata.0.accuWeather.home.daily.DailyForecasts.0.RealFeelTemperature.Minimum.Uni...
          2021-12-02 03:14:39.820 - warn: mqtt.1 (31728) [undefined] Topic name is too long: mqtt.1.iobroker.0_userdata.0.accuWeather.home.daily.DailyForecasts.0.RealFeelTemperature.Minimum.Uni...
          2021-12-02 03:14:39.830 - warn: mqtt.1 (31728) [undefined] Topic name is too long: mqtt.1.iobroker.0_userdata.0.accuWeather.home.daily.DailyForecasts.0.RealFeelTemperature.Minimum.Val...
          2021-12-02 03:14:39.855 - warn: mqtt.1 (31728) [undefined] Topic name is too long: mqtt.1.iobroker.0_userdata.0.accuWeather.home.daily.DailyForecasts.0.RealFeelTemperatureShade.Maximu...
          2021-12-02 03:14:39.862 - warn: mqtt.1 (31728) [undefined] Topic name is too long: iobroker.0_userdata.0.accuWeather.home.daily.DailyForecasts.0.RealFeelTemperatureShade.Maximum.UnitT...
          2021-12-02 03:14:39.924 - warn: mqtt.1 (31728) [undefined] Topic name is too long: mqtt.1.iobroker.0_userdata.0.accuWeather.home.daily.DailyForecasts.0.RealFeelTemperatureShade.Maximu...
          2021-12-02 03:14:39.931 - warn: mqtt.1 (31728) [undefined] Topic name is too long: mqtt.1.iobroker.0_userdata.0.accuWeather.home.daily.DailyForecasts.0.RealFeelTemperatureShade.Minimu...
          2021-12-02 03:14:39.945 - warn: mqtt.1 (31728) [undefined] Topic name is too long: iobroker.0_userdata.0.accuWeather.home.daily.DailyForecasts.0.RealFeelTemperatureShade.Minimum.UnitT...
          2021-12-02 03:14:39.994 - warn: mqtt.1 (31728) [undefined] Topic name is too long: mqtt.1.iobroker.0_userdata.0.accuWeather.home.daily.DailyForecasts.0.RealFeelTemperatureShade.Minimu...
          2021-12-02 03:14:41.380 - warn: mqtt.1 (31728) [undefined] Topic name is too long: mqtt.1.iobroker.0_userdata.0.accuWeather.home.daily.DailyForecasts.1.Day.WindGust.Direction.Localize...
          2021-12-02 03:14:41.531 - warn: mqtt.1 (31728) [undefined] Topic name is too long: mqtt.1.iobroker.0_userdata.0.accuWeather.home.daily.DailyForecasts.1.DegreeDaySummary.Cooling.UnitTy...
          2021-12-02 03:14:41.559 - warn: mqtt.1 (31728) [undefined] Topic name is too long: mqtt.1.iobroker.0_userdata.0.accuWeather.home.daily.DailyForecasts.1.DegreeDaySummary.Heating.UnitTy...
          2021-12-02 03:14:41.754 - warn: mqtt.1 (31728) [undefined] Topic name is too long: mqtt.1.iobroker.0_userdata.0.accuWeather.home.daily.DailyForecasts.1.Night.Evapotranspiration.UnitTy...
          2021-12-02 03:14:42.436 - warn: mqtt.1 (31728) [undefined] Topic name is too long: mqtt.1.iobroker.0_userdata.0.accuWeather.home.daily.DailyForecasts.1.Night.WindGust.Direction.Degree...
          2021-12-02 03:14:42.446 - warn: mqtt.1 (31728) [undefined] Topic name is too long: mqtt.1.iobroker.0_userdata.0.accuWeather.home.daily.DailyForecasts.1.Night.WindGust.Direction.Englis...
          2021-12-02 03:14:42.458 - warn: mqtt.1 (31728) [undefined] Topic name is too long: mqtt.1.iobroker.0_userdata.0.accuWeather.home.daily.DailyForecasts.1.Night.WindGust.Direction.Locali.
          

          Auch sonst spuckt der Admin5 Warnungen und Fehlermeldungen in Mengen, so dass Du alle Topics nachbearbeiten musst. Also eher weiter unten in der Hierarchie veröffentlichen. Leider hat man den admin5 überhaupt nicht mit mqtt getestet. 😞

          Letzlich bringst Du Deinen ganzen iobroker momentan zum Erliegen wenn Du über iobroker topics im großen Stil veröffentlichst. - Also hier eher sparsam vorgehen.

          auch wenn es prinzipiell funktioniert:

          c4e11c0f-36de-4cad-9381-6c492a9fd3b2-image.png

          aac6383c-974d-43b2-877b-a7aa98c32db6-image.png

          f4b395d7-17e4-4a85-b3df-a8ee28dbd75b-image.png

          siehe mqtt-Explorer.

          Und nicht nachmachen - mit den userdata - alle meine Werte waren weg. (Konnte sie jedoch wiederherstellen. )

          1 Reply Last reply Reply Quote 1
          • BananaJoe
            BananaJoe Most Active last edited by BananaJoe

            @MiWolf @mickym Also warum so kompliziert?

            Ich hab einen Mosquitto installiert und den MQTT-Adapter als Client an diesem

            Bei sieht das so aus:

            592dad4d-57a2-4e37-999d-e286e3ee2e06-image.png

            Und wenn ich was an den Broker senden will nutze ich eben den mqtt.0 Pfad. Die Tasmota-Geräte sind dort mit den üblichen Datenpunkten, stat und tele für die Auswertung und cmnd wenn die etwas tun sollen

            Die Maske zum Bekanntgeben eigener States ... Ich nutze MQTT auch in eigenen Programmen (z.B. ESP8266), die sehe Datenpunkte tauchen dann ja automatisch im ioBroker mqtt.0 auf und ich kann diese nutzen.

            Zusätzliche Datenpunkte, z.B. für Tasmota Display-Ansteuerung unter MQTT, lege ich einfach von Hand an (meist beim testen im MQTT-Explorer)

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

              @bananajoe Das war aber nicht die Fragestellung - erwill einfach alle Infos einer Instanz (z.Bsp. des tr-064 Adapters) aus dem iobroker (nicht mqtt) im mosquitto haben. Also das was Tasmota macht, soll der iobroker für nicht mqtt-sprechende Geräte an den mqtt-Broker publishen.

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

                @mickym Stimmt, dann ist deine 2 Instanzen-Lösung mit unterschiedlichen Einstellungen der beste Weg

                1 Reply Last reply Reply Quote 1
                • OstfrieseUnterwegs
                  OstfrieseUnterwegs last edited by

                  EIne andere Möglichkeit ist, wenn man mosquitto nicht flooden will, für jeden State der in Mosquitto ankommen soll, einen Alias anzulegen. z.B. unter einem Folder alias_0.0.mqtt-publish. Und dann alles, was da drunter liegt publishen.

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

                    @ostfrieseunterwegs sagte in Korrekte Verwendung des MQTT Adapters:

                    für jeden State der in Mosquitto ankommen soll, einen Alias anzulegen. z.B. unter einem Folder alias_0.0.mqtt-publish. Und dann alles, was da drunter liegt publishen.

                    dann kann man es ja doch direkt mit dem client machen und jeden Datenpunkt einzeln konfigurieren

                    OstfrieseUnterwegs 1 Reply Last reply Reply Quote 0
                    • OstfrieseUnterwegs
                      OstfrieseUnterwegs @Homoran last edited by

                      @homoran
                      Wahrscheinlich Geschmackssache. Wie schön, dass ioB so viele verschiedene Möglichkeiten bietet.

                      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

                      394
                      Online

                      31.9k
                      Users

                      80.3k
                      Topics

                      1.3m
                      Posts

                      5
                      9
                      2308
                      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