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.
    • Joachim H.
      Joachim H. @mickym last edited by

      @mickym also Node Red habe ich gerade noch konfiguriert, läuft soweit.
      Ich hab den iobroker neu gestartet (eigentlich musste ich den Raspberry neu starten) und plötzlich waren die Datenpunkte da. Egal, ich werd mich jetzt in Node Red einarbeiten, das hab ich bei Domoticz eher stiefmütterlich behandelt...
      Danke für deine Hilfe, ist echt hilfreich ;-)vor allem die Screenshots

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

        @joachim-h
        Dann empfehle ich in der NodeRed Adapter Konfiguration als erstes den Haken rauszumachen - dass alles in Strings umgewandelt wird. Das erspart Dir später eine Menge Konvertiererei. 😉

        4efed36a-40b0-42e0-952b-13a354f9d654-image.png

        1 Reply Last reply Reply Quote 0
        • Joachim H.
          Joachim H. last edited by

          @mickym Hab ich gleich gemacht...weil ich das Problem hatte das node red immer exit with 1 im Log angezeigt hat.
          Ohne haken hats ne Sekunde länger gedauert und er hat die Verbindung mit dem Server verloren.
          Da werd ich mich aber morgen auf die Suche machen.

          Bildschirmfoto vom 2021-03-21 23-53-40.png

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

            @joachim-h Den install Error kann ich nichts zu sagen. Die Warnung, dass die Projektfunktion nicht aktiviert ist, kannst erst mal ignorieren, das kannst Du später noch einrichten, wenn Du mit Projekten arbeitest. Die Funktion hat auch noch einen Bug - aber inzwischen weiß ich wie man das behebt - aber das ist unwichtig.

            Nur der Install Error sollte ein einmaliges Ereignis sein. 😉

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

              @mickym so läuft alles wie es soll, mittlerweile klappt es auch recht gut mit Node red...für mehr brauch ich mehr Zeit, muss ja neben her auch noch arbeiten (gut das ich im HO bin)

              Ich habe noch eine kurze Frage, ich habe soeben rausgefuden dass ich einen 2. Mqtt Broker in meinem Netzwerk habe, nämlich in meinem raspi mit openWB drauf. kann ich einen zweiten Adapter installieren der dann auf den anderen Server lauscht? Stören sich die beiden oder klappt sowas..Nur den Broker der OpenWB verwenden, weis nicht ob das gut ist, dann würde ich den broker auf dem iobroker raspi eben wieder deinstallieren...

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

                @joachim-h Solange Du die Adapter als Client betreibst kannst Du einfach eine neue Instanz des Adapters aufmachen und Dich mit dem anderen mqtt Broker verbinden. Das macht keine Probleme. Du kannst nur keine 2 Broker auf der gleichen Maschine mit dem gleichen Port laufen lassen. Also Du brauchst keinen 2. Adapter sondern eine 2. Instanz des bestehenden Adapters - die heißt dann mqtt.1 😉 - Ich habe auch 2 Instanzen laufen, aber aus anderen Gründen. 😉

                Joachim H. hg6806 2 Replies Last reply Reply Quote 0
                • Joachim H.
                  Joachim H. @mickym last edited by

                  @mickym super danke so hab ichs gemacht und openWB ist sichtbar und wenn ich will, auch verarbeitbar...schaut alles gut aus, danke für deinen Support bisher.. 🙂

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

                    @mickym
                    Moin,

                    wir haben hier auch gerade eine wilde MQTT Diskussion. Besonders die letzten Posts.

                    Und zwar folgendes.

                    Bei mir lief die ganze Zeit MQTT als Server auf Port 1883 und hatte von einigen ESPs Daten über MQTT empfangen.. Hier auch immer der gleiche Port eingestellt.

                    Jetzt brauche ich für ein 868MHz CUL Stick und dessen Datenübertragung mosquitto.
                    Hier kollidiert das aber auf Port 1883.

                    Wie stelle ich nun was ein? Ich habe gelesen, dass bei MQTT nur Port 1883 und 8883 geht.
                    Was ist mit 1884 und 1885?

                    Müssen Client und Broker immer den gleich Port haben? Mit knapp 10 ESPs habe ich ja auch 10 verschiedene Clients, die alle auf dem gleiche Port senden, wieso hatte dann mosquitto kollidiert, obwohl es auch nur client ist?

                    Wäre klasse einige Antworten zu bekommen!

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

                      @hg6806 Warum kollidiert das mit Deinem CUL Stick. Der kann doch auch auf 1883 alle Daten an Deinen MQTT-Broker übertragen.

                      Client und Broker müssen immer den gleichen Port haben, sonst können sie ja nicht miteinander kommunizieren.

                      Die Clients identifizieren sich durch die Client -Id und in dem Sie auf ein anderes Topic publishen.
                      Also was ist verkehrt daran, dass Dein CUL Stick ebenfalls über 1883 mit mosquitto kommuniziert - das stört doch Deine ESP's nicht.

                      Ich verstehe Eure wilde Port Jongliererei eigentlich nicht. Dein mosquitto ist immer ein Broker und kann max. mit einem anderen mosquitto als Bridge fungieren. Wenn Du einen weiteren listener einträgst dann hört er halt auf 2 Ports. Mir erschließt sich der Sinn nicht. Lass doch einfach Deinen CUL ebenfalls mit 1883 zu Deinem mosquitto kommunizieren???

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

                        @mickym Danke für die Info.

                        Also komplett alles auf 1883?
                        Hatte ich, aber da gab's Probleme
                        Hier hatte das jemand geschrieben.

                        Ich mache hier seit Tagen mit dem MQTT Kram rum.

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

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

                          Also was ist verkehrt daran, dass Dein CUL Stick ebenfalls über 1883 mit mosquitto kommuniziert

                          ist der CUL dafür da oder kommuniziert er mit dem CUL-Adapter wegen Max! und FS20?

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

                            @homoran
                            Nein, hat nichts mit dem CUL Adapter zu tun.
                            Auf dem Pi läuft wmbusmeters.

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

                              @hg6806 Also das Ganze hat alles nichts mit Ports etc zu tun.

                              Du musst Dir mal vergegenwärtigen, was ihr da macht - um evtl. Fehler einzugrenzen - gehst Du erst mal systemmatisch vor.

                              Du hattest vorher alles wunderbar am Laufen - mach die listen=1884 wieder raus aus Deiner mosquitto conf und lass Deinen Broker einfach auf 1883 wie gehabt in Ruhe seine Arbeit machen.

                              Das was in dem Thread beschrieben ist, ist dass der CUL bei einer Nachricht auf der zum Beispiel shell ausführt.

                              shell=/usr/bin/mosquitto_pub -h 192.168.178.18 -p 1883 -t wmbusmeters/21200936/Gesamt -m "$METER_TOTAL_M3"
                              

                              Deshalb hast Du auch die mosquitto clients installiert, damit der CUL über die shell was in MQTT publizieren kann.

                              Dann schau Dir einfach mal die Syntax des Befehls an: https://www.systutorials.com/docs/linux/man/1-mosquitto_pub/

                              Wenn Du also auf der Kommandozeile eingibst:

                              mosquitto_pub -h 192.168.178.18 -p 1883 -t wmbusmeters/21200936/Gesamt -m "$METER_TOTAL_M3"
                              

                              und Dein mosquitto auf 192.168.178.18 läuft, dann publishst Du in Deinem mqtt Broker unter dem Topic: wmbusmeters/21200936/Gesamt, den Inhalt der Umgebungsvariable $METER_TOTAL_M3.

                              Du könntest auf der Kommandozeile auch mal probieren, mosquitto_pub -h 192.168.178.18 -p 1883 -t hg6806/Nachricht -m "Hallo ich bin hg6806"

                              Wenn das geht ist doch alles in Ordnung. Wird aber nicht gehen, weil Du ja User und Passwort mitgeben musst, da Dein mosquitto Broker gesichert ist.

                              deshalb steht ja in dem Befehl: [[-u username] [-P password]]

                              Also müsstest Du auf der Kommandozeile Deinen usernamen und passwort (also mqtt username und Passwort mitgeben)

                               mosquitto_pub -h 192.168.178.18 -p 1883 -t hg6806/Nachricht -m "Hallo ich bin hg6806" -u <MQTT_User> -P <MQTT_Passwort>
                              

                              Gib also in Deinem Shell Befehl diese beiden mit - bzw. versuche erstmal ob Du auf Kommandozeile was publishen kannst.

                              Also in Deinem Shell Befehl ergänzt Du userID und Passwort

                              shell=/usr/bin/mosquitto_pub -h 192.168.178.18 -p 1883 -t wmbusmeters/21200936/Gesamt -m "$METER_TOTAL_M3 -u username -P password"
                              

                              Damit Du auch sicher sein kannst, dass nur der mosquitto auf den 1883 hört gibst Du ein: sudo netstat -l -p | grep 1883

                              Dann sollte eine Liste rauskommen, die nur mosquitto enthält - im mosquitto log sollten auch keine Fehler sein.

                              sudo netstat -l -p | grep 1883
                              tcp        0      0 0.0.0.0:1883            0.0.0.0:*               LISTEN      646/mosquitto
                              tcp6       0      0 [::]:1883               [::]:*                  LISTEN      646/mosquitto
                              

                              Da darf auf keinen Fall irgendwas mit io.xxx stehen - sonst kollidiert das mit einem iobroker Adapter - wie gesagt üerprüfe generell Dein mosquitto log.

                              hg6806 1 Reply Last reply Reply Quote 0
                              • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            475
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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