Giter VIP home page Giter VIP logo

Comments (3)

aentinger avatar aentinger commented on September 14, 2024

Hi @fabltd 👋
On the very basic level you could try something like this

void loop()
{
  /* ... */
  if (!mqttClient.connected()) {
    Serial.println("MQTT connection lost");
    if (!mqttClient.connect(broker, port)) {
      Serial.print("MQTT reconnection error ");
      Serial.println(mqttClient.connectError());
    }
  }
}

from arduinomqttclient.

jason-a-alexander avatar jason-a-alexander commented on September 14, 2024

@aentinger This was very helpful. I had searched for a while before I found this. I built out this in my main loop to make sure that I'm always connected. It will block the main loop if it can't connect but in my case if I can't connect to the MQTT broker then the rest of my code is not useful anyway as the sensor data has no where to go.

if (currentMillis - previousMillis >= interval) {
    // save the last time a message was sent
    previousMillis = currentMillis;

    if (!mqttClient.connected()) {
      mySerial.println("MQTT Not Connected");
      while (!mqttClient.connect(broker, port)) {
        mySerial.print("MQTT connection failed! Error code = ");
        mySerial.println(mqttClient.connectError());
        delay (10000);
      }
      mySerial.println("You're connected to the MQTT broker!");
      mySerial.println();

      mqttClient.onMessage(onMqttMessage);

      mySerial.println("Getting Inital Subscriptions");
      mqttClient.subscribe(commandUpdate);
      mqttClient.subscribe(commandStartOffset);
      mqttClient.subscribe(commandHouseOffset);
      delay(1000);

    }

from arduinomqttclient.

aentinger avatar aentinger commented on September 14, 2024

I'm glad to hear this was of help to you @jason-a-alexander 😉

I'm closing this issue, since the OP has disappeared.

from arduinomqttclient.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.