Ab zwei MQTT-ESP-Clients zunehmend Publish-Chaos! Callback-Funktionen laufen nicht mehr an! (Programm anbei)

  • Hallo zusammen,

    habe zu meinem Problem einen neuen Thread aufgebaut nachdem das Fehlverhalten meiner MQTT-Rolladensteuerung jetzt klar ist (Dank an Match1 für die erste Unterstützung bei der Fehlersuche).


    Raspi 3b am LAN

    ESP32's sind über PIN's 18,19,21 codiert (EInsatzort) damit ich nur eine Programmversion benötige


    Um so mehr ESP's mit u.g. Programm am Netz sind um so häufiger muss ich das Publish-Kommando wiederholen da die jeweiligen Callback-Funktionen immer seltener ausgeführt werden!


    - Bei einem ESP am Netzt läuft alles tadellos und um so mehr ESP's ich ins Netzt bringe umso öfter muss ich publishen.

    - Zwischen zwei Konsolen kommen die Publish problemlos und schnell an, auch wenn mehrere ESP am Netz sind (Broker dann wohl nicht überlastet)


    Irgendetwas am Programm muss falsch programmiert sein und muss den ESP zu arg beschäftigen


    Die Funktion reconnect loopt ununterbrochen und erzeugt viel Traffic. Ist das normal?


    Würde mich freuen wenn mir jemand weitere Tipps geben könnte.


  • bug-reporter Verbinden die sich alle mit der gleichen Client-ID?

    Das war ja auch schon meine Frage hier.


    ...

    Um so mehr ESP's mit u.g. Programm am Netz sind um so häufiger muss ich das Publish-Kommando wiederholen da die jeweiligen Callback-Funktionen immer seltener ausgeführt werden!

    ...


    Code
    ...
         
            if (client.connect("ESP32_Client")) 
            {
    ...

    Ich vermute mal die heißen alle gleich.


    Gib denen mal unterschiedliche Namen.

  • ok, danke!

    teste ich gleich heute Abend und schreibe dann wieder.


    ... dann wäre aber die Software nicht mehr für alle gleich und ich könnte mir auch die Kodierung mit den Massebrücken und die Programmabfragen sparen. Also ich teste dann mal.

    Edited once, last by hyle: Ein Beitrag von bug-reporter mit diesem Beitrag zusammengefügt. ().

  • Quote

    ClientId

    The client identifier (ClientId) identifies each MQTT client that connects to an MQTT broker. The broker uses the ClientId to identify the client and the current state of the client.Therefore, this Id should be unique per client and broker. In MQTT 3.1.1 you can send an empty ClientId, if you don’t need a state to be held by the broker. The empty ClientId results in a connection without any state. In this case, the clean session flag must be set to true or the broker will reject the connection.

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect."

    Linus Benedict Torvalds, 28.9.2003


    Hast Du die Woche schon Deine Raspberry gesichert :fies: Bei mir tut das raspiBackup automatisch :shy: