Skip to content
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Troubleshooting
  3. MQTT ethernet gateway Works great for 3+ hours then stops
  • Getting Started
  • Controller
  • Build
  • Hardware
  • Download/API
  • Forum
  • Store

MQTT ethernet gateway Works great for 3+ hours then stops

Scheduled Pinned Locked Moved Troubleshooting
24 Posts 6 Posters 13.4k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • pit007P Offline
    pit007P Offline
    pit007
    wrote on last edited by pit007
    #21

    Have you try to init the ENC all ~2 hours or by detecting the connection lost ? (brute force style, but better as powerdown all with a relais)

    1 Reply Last reply
    0
    • GuyPG Offline
      GuyPG Offline
      GuyP
      wrote on last edited by
      #22

      Well it's very simple to detect if the network has gone away.

      In the processEthernetMessage() function, it checks

      if (client) {

      if there's a client connection then the network must be working. If not then either the network has stopped or nothing is connected. Well OpenHAB always maintains a connection.

      So I've just added the

      } else {

      part to say the connection has gone. I also setup a timeout by counting the micros() since boot. so it's not constantly firing the reboot.

      I then raise digital pin 3 which is linked to my 555 timer circuit, which causes the power cycle.

      unsigned long resetCounter = micros();
      int rebootAborted = 0;
      
      void processEthernetMessages() {
      	char inputString[MQTT_MAX_PACKET_SIZE] = "";
      	uint8_t inputSize = 0;
      	EthernetClient client = server.available();
      	if (client) {
                      resetCounter=micros();
                      if (rebootAborted) {
                        Serial.println("Rebooting Aborted");
                        rebootAborted = 0;
                      }
      		while (client.available()) {
      			char inChar = client.read();
      			inputString[inputSize] = inChar;
      			inputSize++;
      		}
      #ifdef TCPDUMP
      		Serial.print("<<");
      		char buf[4];
      		for (uint8_t a=0; a<inputSize; a++) { sprintf(buf,"%02X ", (uint8_t)inputString[a]); Serial.print(buf); } Serial.println("");
      #endif
      		gw.processMQTTMessage(inputString, inputSize);
      	} else {
                if ((micros() - resetCounter) >= 100000000 && !client.connected() && !rebootAborted) {
                    rebootAborted = 1;
                    Serial.println("Rebooting");
                    pinMode(3,OUTPUT);
                    digitalWrite(3,HIGH);
                    delay(100);
                    digitalWrite(3,LOW);
                }
             }
      }
      
      1 Reply Last reply
      0
      • pit007P Offline
        pit007P Offline
        pit007
        wrote on last edited by pit007
        #23

        Yes - noooo :-) Right - you are able to detect the connection loss (good to know) but why do you not trigger the NE555, but to re-init the ENC28. Have you try if it response via SPI ?

        1 Reply Last reply
        0
        • GuyPG Offline
          GuyPG Offline
          GuyP
          wrote on last edited by
          #24

          It completely locks up.. I tried to talk with at the same point but it doesn't seem to listen to anything

          1 Reply Last reply
          0
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          18

          Online

          11.7k

          Users

          11.2k

          Topics

          113.0k

          Posts


          Copyright 2019 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
          • Login

          • Don't have an account? Register

          • Login or register to search.
          • First post
            Last post
          0
          • OpenHardware.io
          • Categories
          • Recent
          • Tags
          • Popular