Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. MQTT >1.5 funktioniert bei mir nicht mehr

    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

    UNSOLVED MQTT >1.5 funktioniert bei mir nicht mehr

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

      Niemand? Funktioniert das bei allen? Oder habe ich was Wichtiges nicht geposted?

      Ich zeig euch mal den Code:
      Eigentlich nur das Muster-Beispiel, das bei paho-mqtt.js dabei ist:
      (hier ist auch ein fiddle.js wo man nur bei ("broker.mqttdashboard.com", 8000 ") seine ("eigene MQTT-Broker-IP", 1884) eingeben muss:
      http://jsfiddle.net/gLBsu/3/ )

      <script type="text/javascript" src="new paho-mqtt.js"> </script>
       
      <script type="text/javascript">  
      
      // Create a client instance
      var host = "192.168.178.101";
      var port = 1884;
      client = new Paho.Client(host, port, "MQTTTEST");
      
      // set callback handlers
      client.onConnectionLost = onConnectionLost;
      client.onMessageArrived = onMessageArrived;
      
      // connect the client
      client.connect({onSuccess:onConnect});
      
      
      // called when the client connects
      function onConnect() {
        // Once a connection has been made, make a subscription and send a message.
        console.log("onConnect");
        client.subscribe("World");
        message = new Paho.Message("Hello");
        message.destinationName = "World";
        client.send(message);
      }
      
      // called when the client loses its connection
      function onConnectionLost(responseObject) {
        if (responseObject.errorCode !== 0) {
          console.log("onConnectionLost:"+responseObject.errorMessage);
        }
      }
      
      // called when a message arrives
      function onMessageArrived(message) {
        console.log("onMessageArrived:"+message.payloadString);
      }
      </script>
      

      Entweder erhalte ich die Fehlermeldung:

       MQTTTest2.html:48 onConnectionLost:AMQJS0008I Socket closed.
      

      Oder

      new paho-mqtt.js:1054 WebSocket connection to 'ws://192.168.178.101:1884/mqtt' failed: 
      Error in connection establishment: net::ERR_CONNECTION_REFUSED
      LibraryFactory.ClientImpl._doConnect	@	new paho-mqtt.js:1054
      LibraryFactory.ClientImpl.connect	        @	new paho-mqtt.js:887
      Client.connect	@	new paho-mqtt.js:2028
      (anonymous)	@	MQTTTest2.html:35
      
      new paho-mqtt.js:1052 WebSocket connection to 'ws://192.168.178.101:1884/mqtt' failed: 
      Error in connection establishment: net::ERR_CONNECTION_REFUSED
      LibraryFactory.ClientImpl._doConnect	@	new paho-mqtt.js:1052
      LibraryFactory.ClientImpl._disconnected	@	new paho-mqtt.js:1617
      LibraryFactory.ClientImpl._on_socket_error	@	new paho-mqtt.js:1453
      

      iobroker Log gibt mir immer wieder diese Schleife als Fehlermeldung:

      mqtt.0	2019-07-16 19:13:20.566	info	Starting MQTT -WebSocket' server on port 1884
      mqtt.0	2019-07-16 19:13:20.564	info	Starting MQTT ' server on port 1883
      mqtt.0	2019-07-16 19:13:19.588	info	starting. Version 2.1.0 in /opt/iobroker/node_modules/iobroker.mqtt, node: v8.16.0
      host.ioBroker-RasPi	2019-07-16 19:13:18.220	info	instance system.adapter.mqtt.0 started with pid 2957
      host.ioBroker-RasPi	2019-07-16 19:12:48.208	info	Restart adapter system.adapter.mqtt.0 because enabled
      host.ioBroker-RasPi	2019-07-16 19:12:48.208	error	instance system.adapter.mqtt.0 terminated with code 0 (OK)
      host.ioBroker-RasPi	2019-07-16 19:12:48.207	error	Caught by controller[0]: at Connection.emit (events.js:211:7)
      host.ioBroker-RasPi	2019-07-16 19:12:48.207	error	Caught by controller[0]: at emitOne (events.js:116:13)
      host.ioBroker-RasPi	2019-07-16 19:12:48.207	error	Caught by controller[0]: at Object.onceWrapper (events.js:315:30)
      host.ioBroker-RasPi	2019-07-16 19:12:48.207	error	Caught by controller[0]: at Connection.<anonymous> (/opt/iobroker/node_modules/iobroker.mqtt/node_modules/mqtt-connection/connection.js:53:12)
      host.ioBroker-RasPi	2019-07-16 19:12:48.206	error	Caught by controller[0]: at Connection.emit (events.js:211:7)
      host.ioBroker-RasPi	2019-07-16 19:12:48.206	error	Caught by controller[0]: at emitOne (events.js:116:13)
      host.ioBroker-RasPi	2019-07-16 19:12:48.206	error	Caught by controller[0]: at Connection.emitPacket (/opt/iobroker/node_modules/iobroker.mqtt/node_modules/mqtt-connection/connection.js:10:8)
      host.ioBroker-RasPi	2019-07-16 19:12:48.206	error	Caught by controller[0]: at Connection.emit (events.js:211:7)
      host.ioBroker-RasPi	2019-07-16 19:12:48.205	error	Caught by controller[0]: at emitOne (events.js:116:13)
      host.ioBroker-RasPi	2019-07-16 19:12:48.204	error	Caught by controller[0]: at Connection.client.on.options (/opt/iobroker/node_modules/iobroker.mqtt/lib/server.js:750:30)
      host.ioBroker-RasPi	2019-07-16 19:12:48.199	error	Caught by controller[0]: TypeError: stream.setTimeout is not a function
      mqtt.0	2019-07-16 19:12:47.641	error	TypeError: stream.setTimeout is not a function at Connection.client.on.options (/opt/iobroker/node_modules/iobroker.mqtt/lib/server.js:750:30) at emitOne (events.js:116:13) at Connection.e
      mqtt.0	2019-07-16 19:12:47.640	error	uncaught exception: stream.setTimeout is not a function
      mqtt.0	2019-07-16 19:12:47.639	info	Client [MQTTTEST] connected with secret 1563297167353_5931
      mqtt.0	2019-07-16 19:12:20.580	info	Starting MQTT -WebSocket' server on port 1884
      mqtt.0	2019-07-16 19:12:20.578	info	Starting MQTT ' server on port 1883
      mqtt.0	2019-07-16 19:12:19.496	info	starting. Version 2.1.0 in /opt/iobroker/node_modules/iobroker.mqtt, node: v8.16.0
      host.ioBroker-RasPi	2019-07-16 19:12:18.236	info	instance system.adapter.mqtt.0 started with pid 1758
      

      Oder ist das ein Fehler der Paho.Mqtt-Library?

      Aber mit
      MQTT Adapter 1.5 war alles ok.
      MQTT Adapter 2.0 ist auch ok. (obwohl es ab 2.0 anderes seltsames Verhalten gibt, aber das muss ich noch erforschen)
      MQTT Adapter 2.0.1 auch ok.
      MQTT Adapter 2.0.2 auch ok
      MQTT Adapter 2.0.4 auch ok

      Adapter 2.05 und 2.06 konnte ich nicht installieren.

      Und erst mit MQTT Adapter Version 2.1.0 geht es eben NICHT mehr.

      Das spricht doch dafür, dass in dieser Version was nicht stimmt, oder?
      Aber die 8266er, die per pubsub.h an MQTT angebunden sind, funktionieren übrigens auch mit Version 2.1.
      Nur der Javascript-Client scheint Probleme zu haben.
      Also ist es doch Paho.mqtt?

      Ich weiß nicht ...
      Wäre für jede Hilfe wirklich sehr dankbar.

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

        hallo habe mit esp8266 ähnliches problem schon sehr lange...!
        issue auf gizhib ist auch offen !!

        Mit freundlichen Grüßen
        mikwolf

        B 1 Reply Last reply Reply Quote 0
        • B
          blumfisch @Mikewolf last edited by blumfisch

          @Mikewolf Danke für die Antwort!

          Meine ESP8266 funktionieren wie gesagt mit pubsub.h.

          Ich musste aber seit 1.5 das Verhalten von MQTT ändern, damit die mitmachen:
          Auf 1.5 hatte ich NUR Häkchen bei "Sende auch Zustände (ACK=true)". Alles andere war aus.

          Bei Versionen 2.+ habe ich umgestellt auf "Publish nur bei Änderung" und alles andere aus gemacht. QoS=0, default retain flag true. Dann funktionieren sie bei mir wieder. Hab ich aber auch erst gestern beim Testen rausgefunden. Noch nicht ausführlich geprüft.

          Vielleicht hilfts ja.

          Denke, dass MQTT ein absolut zentraler Baustein im IoT ist und auf jeden Fall funktionieren sollte.
          Weiß halt nur nicht, ob es am Adapter oder an Paho liegt.

          1 Reply Last reply Reply Quote 0
          • B
            blumfisch last edited by blumfisch

            Hm... Auch weitere Tests haben jetzt bestätigt: Irgendwas ist mit Version 2.1 des MQTT Adapters.

            Hat denn jemand Erfahrung MQTT?
            Ich plane das für ein Produktiv-System.
            Wenn ich das nicht updaten kann und es dann evtl. irgendwann ausfällt oder unsicher wird, kann ich ioBroker nicht einsetzen.

            Sollte ich vielleicht einen eigenen Mosquitto-MQTT-Server aufsetzen, statt den von ioBroker zu nutzen?
            Kann ich den auf dem Raspberry laufen lassen, auf dem auch ioBroker läuft? Oder brauche ich dafür extra einen zweiten?
            Oder doch openHAB oder ein anderes System?
            Hat jemand bei sich zuhause eine stabile MQTT-Umgebung?

            1 Reply Last reply Reply Quote 0
            • Wal
              Wal Developer last edited by Wal

              Habe MQTT 2.1 als Server schon länger ohne Probleme am laufen. Habe Temperatur-Sensoren und pi-mqtt-gpio daran gekoppelt.
              pi-mqtt-gpio nutzt paho.

              B 1 Reply Last reply Reply Quote 0
              • B
                blumfisch @Wal last edited by blumfisch

                @Wal hm... interessant. Das macht es noch seltsamer.
                Und wenn du in das fiddle-Beispiel (http://jsfiddle.net/gLBsu/3/) oben deine lokale MQTT-Broker IP eingibst und auf Run und dann den Button "1. CONNECT" drückst... läuft es dann oder meldet der iobroker-Log Fehler und einen Neustart des Adapters?

                Das benutzt auch PAHO, genauer mqttws31.js.

                Wal 1 Reply Last reply Reply Quote 0
                • Wal
                  Wal Developer @blumfisch last edited by

                  @blumfisch
                  du hast Recht, über Websocket's funzt der Adapter nicht. Er steigt bei mir mit den gleichen Fehlermeldungen aus.

                  B 1 Reply Last reply Reply Quote 0
                  • B
                    blumfisch @Wal last edited by

                    @Wal Danke fürs Verifizieren!

                    Dann stimmt wohl was mit den Websockets nicht (wenn man das so sagen kann)

                    An wen wende ich mich denn jetzt am besten? Das kann ich selbst nicht reparieren.

                    Wal 1 Reply Last reply Reply Quote 0
                    • Wal
                      Wal Developer @blumfisch last edited by

                      @blumfisch

                      habe nochmal getestet.
                      Wenn ich auf der Seite HiveMQ keepalive auf 0 stelle, funktioniert es.

                      1 Reply Last reply Reply Quote 0
                      • B
                        blumfisch last edited by

                        Ich nutze MQTT nur im internen Netzwerk, also kein HiveMQ.
                        Habs trotzdem mal getestet, denn das entspräche ja:

                        var client = new Messaging.Client("localhost", 1884, "myclientid_", 0));
                        

                        und/oder

                         var options = {
                             timeout: 0,
                        

                        Oder?
                        Fazit: Stürzt immer noch ab.

                        Ich habe aber was Entscheidendes bemerkt: Das DEFAULT Repository ist erst bei MQTT Version 2.0.4. Ich hatte meinen ioBroker zuhause auf LATEST gestellt.

                        Vielleicht sollte ich das in einer Produktivumgebung auch sein lassen 🙂 Gehe jetzt also definitiv zurück auf 2.0.4.

                        Hoffe, es hilft vielleicht trotzdem, Version 2.1 näher an DEFAULT zu bringen.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        749
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        mqtt mqtt problem update
                        3
                        11
                        1226
                        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