Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. MQTT Server oder/und Client oder externen MQTT Server

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    MQTT Server oder/und Client oder externen MQTT Server

    This topic has been deleted. Only users with topic management privileges can see it.
    • hg6806
      hg6806 Most Active @mickym last edited by hg6806

      @mickym

      Danke für die ausführliche Erklärung.
      Lag ich anfangs doch gar nicht so falsch.
      Und die Aussagen, dass mosquitto und MQTT in der Grundeinstellung nicht zusammen laufen können falsch.

      Fehler war wohl das fehlende Publishen - dachte es würde vom Broker automatisch gemacht werden, wenn er was bekommt und 2. bei Passwort muss das "-P" groß geschrieben werden 🙂

      Das Publishen hat auf jeden Fall funktioniert und auch das Übermitteln des Probe-Textes.

      Auf jeden Fall habe ich wohl ein Problem mit dem io.xxx:

      pi@raspberrypi:~ $ sudo netstat -l -p | grep 1883
      tcp        0      0 0.0.0.0:1883            0.0.0.0:*               LISTEN      1271/io.mqtt.0
      
      mickym 2 Replies Last reply Reply Quote 0
      • mickym
        mickym Most Active @hg6806 last edited by

        @hg6806 Na es scheint, dass Du wohl einen mqtt-Adapter als Broker und mosquitto zusammen auf 1883 laufen lassen möchtest und das geht nicht. Wenn das jetzt mit dem publizieren des Probetextes funktioniert, dann weißt Du wenigstens dass Dein mosquitto Client funktioniert - aber Du weißt noch nicht, ob Du direkt in den mqtt des Broker schreibst, worauf ich tippe.
        Ich würde jedenfalls den mqtt-Adapter nicht als Broker laufen lassen, wenn Du mosquitto weiterhin benutzen willst.

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

          @hg6806 sagte in MQTT Server oder/und Client oder externen MQTT Server:

          @mickym

          Danke für die ausführliche Erklärung.
          Lag ich anfangs doch gar nicht so falsch.
          Und die Aussagen, dass mosquitto und MQTT in der Grundeinstellung nicht zusammen laufen können falsch.

          Fehler war wohl das fehlende Publishen - dachte es würde vom Broker automatisch gemacht werden, wenn er was bekommt und 2. bei Passwort muss das "-P" groß geschrieben werden 🙂

          .. tja das kleine "p" ist ja bereits für die Angabe des Ports reserviert, wie Du anhand Deiner Befehlszeile erkennen kannst. 😉

          Nun der Broker publisht auch automatisch, wenn er was bekommt. Nur Dein wmbusmeters service - hat gar keinen mqtt Client und kann gar nichts publishen. Deswegen braucht er ja die mosquitto clients, damit er quasi auf der Kommandozeile einen Shell Befehl absetzen kann und so etwas über mqtt publishen kann. Das Problem ist also kein Broker - sondern, dass Dein service selbst kein mqtt spricht und deshalb diese mosquitto clients braucht.

          EDIT: Natürlich kannst Du auch Deine mqtt Konfig so lassen - dann benutzt Du aber mosquitto gar nicht - bzw. nur den Client, um den Befehl abzusetzen. Das geht schon, ich habe halt nur oft Probleme mit dem mqtt-Adapter als Broker gehabt. Wenn Du damit aber zufrieden bist, dann lass es wie es ist.

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

            @mickym

            Sorry, jetzt verstehe ich gar nichts mehr.
            Du hattest doch oben geschrieben, dass alles zusammen auf 1883 laufen soll?

            Wie soll ich das denn jetzt einstellen?
            Ich brauche den MQTT Adapter als Broker in ioBroker für meine ESPs.

            Und Mosquitto für wmbusmeters.

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

              @hg6806 Nein - du brauchst NUR EINEN Broker für beides. Wer hat Dir denn so ein Mist erzählt, dass Du 2 verschiedene Broker brauchst.

              Du brauchst nur die mosquitto clients damit der wmbustmeters überhaupt was über mqtt publishen kann - aber nicht mosquitto als Broker.

              Du hast ja gerade gesagt, dass Du mit dem mosquitto_pub Befehl erfolgreich publishen konntest.

              So wie Du es jetzt konfiguriert hast, läuft im iobroker - der MQTT Adapter als Broker. Da publishen alle Deine ESPs rein und auch Dein wmbusmeters mit Hilfe des mosquitto_pub Befehls. Das hat aber mit mosquitto als Broker nichts zu tun.

              Du hättest beim installieren auch nur die mosquitto-clients installieren können. Du hast somit gar keinen mosquitto Service, der läuft und deshalb auch kein mosquitto Log etc.

              Ich glaube deswegen warst Du so verwirrt - das hat auch nicht mit fehlenden Rechten etc. zu tun, wie Du in dem anderen Thread schreibst.

              Ich glaube, wenn Du in Deinem wmbusmeters einfach Dein user und Passwort mit großem P einträgst - müsste es bereits laufen.

              shell=/usr/bin/mosquitto_pub -h 192.168.178.18 -p 1883 -t wmbusmeters/21200936/Gesamt -m "$METER_TOTAL_M3" -u <userID> -P <Passwort>
              

              Glaube das war der einzige Fehler gewesen mit dem kleinen p - damals in dem anderen Thread.

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

                @mickym

                Ahhh, langsam kommt Licht ins Dunkel.
                Ich war immer davon ausgegangen dass mosquitto bei mir nur als Client läuft!

                Wie kann ich feststellen WAS ich nun installiert habe und wie ich den mosquitto broker entferne?

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

                  @hg6806 Wenn Du das so gemacht hast, wie

                  https://forum.iobroker.net/topic/38893/wasserzähler-funk-868-auslesen/45?_=1617088837508

                  @Michi_Pi geschrieben hat nämlich

                  $ sudo apt install -y mosquitto mosquitto-clients
                  

                  dann hast Du mit "mosquitto" den Broker/Server installiert und mit "mosquitto-clients" den mosquitto mqtt-client (also mosquitto_pub).

                  Prüfen kannst Du mit apt list | grep mosquitto

                  apt list | grep mosquitto
                  
                  WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
                  
                  libmosquitto-dev/stable 1.5.7-1+deb10u1 armhf
                  libmosquitto1/stable 1.5.7-1+deb10u1 armhf
                  libmosquittopp-dev/stable 1.5.7-1+deb10u1 armhf
                  libmosquittopp1/stable 1.5.7-1+deb10u1 armhf
                  mosquitto-clients/stable 1.5.7-1+deb10u1 armhf
                  mosquitto-dev/stable 1.5.7-1+deb10u1 all
                  mosquitto/stable,now 1.5.7-1+deb10u1 armhf  [installiert]
                  

                  Wenn bei den Clients bei Dir sowohl bei mosquitto, als auch bei dem mosquitto-clients installiert steht hast Du beides installiert.

                  Wegbekommen solltest Du den Broker mit

                  sudo apt remove mosquitto
                  

                  Jetzt wird auch klar warum Du hier immer den Fehler bekommst:

                  https://forum.iobroker.net/topic/38893/wasserzähler-funk-868-auslesen/33?_=1617088837508

                  Hier wolltest Du immer den Broker installieren und der wollte dann auf Port 1883 starten, das ging aber nicht, weil ja Dein mqtt Adapter im iobroker diesen Port bereits belegt hat.

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

                    @mickym

                    OK, habe jetzt den mosquitto broker deinstalliert.

                    Sie jetzt so aus, denke das ist ok.

                    pi@raspberrypi:~ $ sudo apt list | grep mosquitto
                    
                    WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
                    
                    libmosquitto-dev/stable 1.5.7-1+deb10u1 armhf
                    libmosquitto1/stable,now 1.5.7-1+deb10u1 armhf  [Installiert,automatisch]
                    libmosquittopp-dev/stable 1.5.7-1+deb10u1 armhf
                    libmosquittopp1/stable 1.5.7-1+deb10u1 armhf
                    mosquitto-clients/stable,now 1.5.7-1+deb10u1 armhf  [installiert]
                    mosquitto-dev/stable 1.5.7-1+deb10u1 all
                    mosquitto/stable,now 1.5.7-1+deb10u1 armhf [Konfiguration-verbleibend]
                    
                    

                    Dann habe ich alles wieder auf 1883 gesetzt, also MQTT Adapter Broker, alle ESPs und mosquitto client und wmbusmsters auch auf 1883.

                    Dann habe ich nochmal einen RSSI Wert gepublisht, das hatte auch funktioniert und den in die wmbusmeters.config mit aufgenommen.

                    Jetzt warte ich bis wieder was gesendet wird (leider nur alle paar Stunden) und bin gespannt!

                    1 Reply Last reply Reply Quote 0
                    • hg6806
                      hg6806 Most Active last edited by

                      Wert kam schon, wurde aber nicht in die ioBroker Datenpunkte eingetragen.

                      Aaaaahhhhhh - ich drehe noch durch!!!

                      In der wmbusmeters config ist es wie folgt drin:

                      shell=/usr/bin/mosquitto_pub -h 192.168.178.18 -p 1883 -u MeinUsername -P meinPasswort -t wmbusmeters/21200936/Gesamt -m "$METER_TOTAL_M3"
                      shell=/usr/bin/mosquitto_pub -h 192.168.178.18 -p 1883 -u MeinUsername -P meinPasswort -t wmbusmeters/21200936/RSSI -m "$METER_RSSI_DBM"
                      
                      
                      
                      mickym 1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @hg6806 last edited by

                        @hg6806 sagte in MQTT Server oder/und Client oder externen MQTT Server:

                        Wert kam schon, wurde aber nicht in die ioBroker Datenpunkte eingetragen.
                        Aaaaahhhhhh - ich drehe noch durch!!!

                        Nun aber nicht wieder das Haus einreißen, weil die Tür klemmt. 😉

                        Gib doch mal den Befehl in der Shell manuell auf der Kommandozeile ein und schau ob das tut.

                        mosquitto_pub -h 192.168.178.18 -p 1883 -u MeinUsername -P meinPasswort -t wmbusmeters/21200936/Gesamt -m "$METER_TOTAL_M3"
                        

                        Sind denn die entsprechenden Umgebungsvariablen überhaupt gefüllt. Entweder mit vollständigem Pfad oder ohne usw.

                        gib halt mal

                        set | grep METER
                        

                        ein und schau ob die Umgebungsvariablen existieren und ob da was drin steht.

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

                          @mickym

                          Also, der Datenpunkt wurde mit dem händischen publishen ja angelegt.
                          Dort hatte ich auch mal händisch einen Wert eingetragen, da ich die mit Sourceanalytix erfassen will.

                          nach

                          mosquitto_pub -h 192.168.178.18 -p 1883 -u MeinUsername -P meinPasswort -t wmbusmeters/21200936/Gesamt -m "$METER_TOTAL_M3"
                          

                          Wurde der Wert gelöscht.

                          Es tut sich also was!

                          Aber er findet keinen Wert.
                          Hier noch weitere Versuche:

                          pi@raspberrypi:~ $ wmbusmeters --listenvs=iperl
                          METER_JSON
                          METER_ID
                          METER_NAME
                          METER_MEDIA
                          METER_TYPE
                          METER_TIMESTAMP
                          METER_DEVICE
                          METER_RSSI_DBM
                          METER_TOTAL_M3
                          METER_MAX_FLOW_M3H
                          pi@raspberrypi:~ $ set | grep METER
                          
                          

                          Nach dem letzten Befehl kommt nichts.

                          Das Problem ist, dass der Stick halt nur alle 2-4h was sendet.

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

                            Wenn ich aber folgenden Befehl ausführe gibt es aber einen Wert:

                            pi@raspberrypi:~ $ wmbusmeters auto:t1 meinwasserzaehler iperl:t1 21200936 2E13xxxxxxxxxxxxxxx92
                            Started auto cul on /dev/ttyACM1 listening on t1
                            meinwasserzaehler       21200936        32.488 m3       0 m3/h  2021-03-31 10:42.40
                            
                            
                            1 Reply Last reply Reply Quote 0
                            • mickym
                              mickym Most Active @hg6806 last edited by mickym

                              @hg6806 Nun das sind doch schon mal eine Menge Erkenntnisse.

                              ==> MQTT Konfig ist sauber - fass die nicht mehr an.

                              ==> Da Dein Wert gelöscht wurde den Du unter wmbusmeters/21200936/Gesamt mal manuell gepublisht hast, weißt Du dass der shell befehl von Deinem wmbusmaster Service auch ordnungsgemäß abgeschickt wurde.

                              Das Problem ist wohl, dass die Umgebungsvariablen wohl nicht existieren oder gefüllt werden.

                              Ich habe das mal durchgelesen aber https://linuxize.com/post/how-to-set-and-list-environment-variables-in-linux/

                              aber das tut bei mir auch nicht.

                              Vielleicht kann Dir ein UNIX Guru helfen, wie man mit Umgebungsvariablen umgeht - dann könntest Du manuell mal so eine Variable $METER_TOTAL_M3 setzen und dann kann es natürlich noch daran liegen, dass Dein service die Variable nicht anlegen kann. Also der Schlüssel scheint mir das Setzen und Füllen von Umgebungsvariablen zu sein und dass diese in der Shell für den mosquitto_pub Befehl zugänglich sind.

                              Versuch doch mal auf der Kommandozeile:

                              echo $METER_TOTAL_M3
                              

                              ob da was angezeigt wird

                              Soweit ich mich erinnern kann, gab es unter LINUX globale und lokale Umgebungsvariablen.

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

                                @mickym

                                OK, habe mich da wegen den Variablen auch etwas schlau gemacht.
                                Das ist nämlich keine Umgebungsvariable, sondern eine Shell Variable.

                                Und die beschreibt man einfach mit

                                METER_TOTAL_M3='32.550'
                                
                                

                                über

                                 mosquitto_pub -h 192.168.178.18 -p 1883 -u MeinUsername -P meinPasswort -t wmbusmeters/21200936/Gesamt -m "$METER_TOTAL_M3"
                                

                                ...schreibt er mir den Wert in ioBroker

                                So weit so gut, jetzt die Frage wieso die Shell Var. nicht befüllt wird.

                                Ich denke hier kann mir keiner helfen, das geht dann wieder in den anderen Thread 🙂

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

                                  @hg6806 Ja so sehe ich das auch - das hat mit MQTT nichts zu tun, sondern ist ein Problem dieses wmbusmeters Service. Ich kann mir das ja mal durchlesen, falls ich eine Idee habe melde ich mich in dem anderen Thread. 😉

                                  hg6806 M H 0 2 Replies Last reply Reply Quote 0
                                  • hg6806
                                    hg6806 Most Active @mickym last edited by

                                    @mickym
                                    Alles klar, Tausend Dank nachmals!!!

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

                                      @mickym
                                      Ich weiß der Thread ist schon alt. Aber wie kann es sein, dass bei mir in einer MQTT Instanz zweo Ports angeführt werden?

                                      Aktive Internetverbindungen (Nur Server)
                                      Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
                                      tcp        0      0 IOBroker.fritz.bo:42001 0.0.0.0:*               LISTEN      17510/io.hm-rpc.0
                                      tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN      550/sshd
                                      tcp        0      0 localhost:ipp           0.0.0.0:*               LISTEN      19095/cupsd
                                      tcp        0      0 localhost:omniorb       0.0.0.0:*               LISTEN      513/influxd
                                      tcp        0      0 0.0.0.0:1883            0.0.0.0:*               LISTEN      17819/io.mqtt.2
                                      tcp        0      0 0.0.0.0:1884            0.0.0.0:*               LISTEN      17819/io.mqtt.2
                                      
                                      
                                      mickym 1 Reply Last reply Reply Quote 0
                                      • mickym
                                        mickym Most Active @M H 0 last edited by

                                        @m-h-0 sagte in MQTT Server oder/und Client oder externen MQTT Server:

                                        @mickym
                                        Ich weiß der Thread ist schon alt. Aber wie kann es sein, dass bei mir in einer MQTT Instanz zweo Ports angeführt werden?

                                        Aktive Internetverbindungen (Nur Server)
                                        Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
                                        tcp        0      0 IOBroker.fritz.bo:42001 0.0.0.0:*               LISTEN      17510/io.hm-rpc.0
                                        tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN      550/sshd
                                        tcp        0      0 localhost:ipp           0.0.0.0:*               LISTEN      19095/cupsd
                                        tcp        0      0 localhost:omniorb       0.0.0.0:*               LISTEN      513/influxd
                                        tcp        0      0 0.0.0.0:1883            0.0.0.0:*               LISTEN      17819/io.mqtt.2
                                        tcp        0      0 0.0.0.0:1884            0.0.0.0:*               LISTEN      17819/io.mqtt.2
                                        
                                        

                                        Das kommt daher, dass Du die websockets Kommunikation ausgewählt hast, dann sucht sich der Adapter dafür den nächsten freien Port.

                                        875d8523-fafe-4250-b8f1-728bfee9bd63-image.png

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

                                          @mickym
                                          ok danke.
                                          Wofür man das braucht weiß ich nicht.
                                          Kann ich wohl deaktivieren. Habe Probleme mit senden per MQTT. MQTT Explorer sieht die Daten, aber mein OpenDTU Stick nur ab und zu.

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

                                            @m-h-0 Im Zweifelsfall deaktivieren - WS Kommunikation beherrscht nicht jeder. Ich habe es bei mqtt nie aktiv.

                                            M H 0 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            425
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            55
                                            9430
                                            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