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

      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
                              • M H 0
                                M H 0 @mickym last edited by

                                @mickym
                                Danke! Muss ich nur noch rausfinden warum ich manches mal nur per Blockly (sendMessage2Client) und manches mal nur per direkten Eintrag im Datenpunkt per MQTT senden kann

                                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:

                                  nd manches mal nur per direkten Eintrag im Datenpunkt per MQTT senden kann

                                  Du musst halt darauf achten, dass Du grundsätzlich nie mit ACK Flag sendest. Sauber ist das ganze trotzdem nicht, deswegen gibt es immer wieder Probleme - wenn der Broker quasi gleichzeitig als Client arbeiten soll. Ich empfehle Dir dann lieber eine eigene Instanz als Client zu machen, die sich mit deinem Broker verbindet.

                                  Ich hab das so gemacht, dass mqtt.0 ist der Broker (wenn Du keinen externen verwenden willst) - und mqtt.2 in meinem Beispiel ist der Client.

                                  4ac51b54-b51f-4b7b-a8d2-bf7d8c26338a-image.png

                                  Den Broker lässt man komplett in Ruhe - und beschreiben zum Publishen macht man nur im mqtt-Client.

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

                                    @mickym
                                    Hmm, ok danke.
                                    Auf diese Variante bin ich noch gar nicht gekommen. Werde ich probieren, danke!

                                    Klappt bis jetzt einwandfrei.
                                    Danke für dein Hilfe!

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    799
                                    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