diff --git a/lighthub/inputs.cpp b/lighthub/inputs.cpp index 1a8aa66..cb316d6 100644 --- a/lighthub/inputs.cpp +++ b/lighthub/inputs.cpp @@ -33,6 +33,7 @@ e-mail anklimov@gmail.com extern PubSubClient mqttClient; extern aJsonObject *root; +extern int8_t ethernetIdleCount; #if !defined(DHT_DISABLE) || !defined(COUNTER_DISABLE) static volatile unsigned long nextPollMillisValue[5]; @@ -223,7 +224,7 @@ void Input::counterPoll() { strncpy(addrstr,emit->valuestring,sizeof(addrstr)); if (!strchr(addrstr,'/')) setTopic(addrstr,sizeof(addrstr),T_OUT,emit->valuestring); sprintf(valstr, "%d", counterValue); - if (mqttClient.connected()) + if (mqttClient.connected() && !ethernetIdleCount) mqttClient.publish(addrstr, valstr); setNextPollTime(millis() + DHT_POLL_DELAY_DEFAULT); debugSerial<valuestring,sizeof(addrstr)); -if (mqttClient.connected()) +if (mqttClient.connected() && !ethernetIdleCount) { if (!strchr(addrstr,'/')) setTopic(addrstr,sizeof(addrstr),T_OUT,emit->valuestring); if (newValue) { //send set command @@ -578,7 +579,7 @@ void Input::onAnalogChanged(int newValue) { if (!strchr(addrstr,'/')) setTopic(addrstr,sizeof(addrstr),T_OUT,emit->valuestring); char strVal[16]; itoa(newValue,strVal,10); - if (mqttClient.connected()) + if (mqttClient.connected() && !ethernetIdleCount) mqttClient.publish(addrstr, strVal, true); } @@ -601,7 +602,7 @@ bool Input::publishDataToDomoticz(int pollTimeIncrement, aJsonObject *emit, cons vsnprintf(valstr, sizeof(valstr) - 1, format, args); va_end(args); debugSerial << valstr; - if (mqttClient.connected()) + if (mqttClient.connected() && !ethernetIdleCount) mqttClient.publish(emit->valuestring, valstr); if (pollTimeIncrement) setNextPollTime(millis() + pollTimeIncrement); diff --git a/lighthub/item.cpp b/lighthub/item.cpp index ed2b954..fc76499 100644 --- a/lighthub/item.cpp +++ b/lighthub/item.cpp @@ -63,6 +63,7 @@ extern aJsonObject *pollingItem; //int modbusSet(int addr, uint16_t _reg, int _mask, uint16_t value); extern PubSubClient mqttClient; +extern int8_t ethernetIdleCount; //extern char outprefix[]; //const char outprefix[] PROGMEM = OUTTOPIC; @@ -1049,14 +1050,14 @@ int Item::checkFM() { else aJson.addNumberToObject(out, "pwr", 0); if (ftemp > FM_OVERHEAT_CELSIUS && set) { - if (mqttClient.connected()) + if (mqttClient.connected() && !ethernetIdleCount) mqttClient.publish("/alarm/ovrht", itemArr->name); Ctrl(CMD_OFF); //Shut down } } else debugSerial << F("Modbus polling error=") << _HEX(result); outch = aJson.print(out); - if (mqttClient.connected()) + if (mqttClient.connected() && !ethernetIdleCount) mqttClient.publish(addrstr, outch); free(outch); aJson.deleteItem(out); @@ -1296,7 +1297,7 @@ int Item::SendStatus(short cmd, short n, int *Par, boolean deffered) { return -1; } debugSerial<")<valuestring, currentTemp); debugSerial << valstr; - if (mqttClient.connected()) + if (mqttClient.connected() && !ethernetIdleCount) mqttClient.publish(owEmitString, valstr); return; } @@ -785,7 +798,7 @@ void Changed(int i, DeviceAddress addr, float currentTemp) { //strcpy_P(addrstr, outprefix); setTopic(addrstr,sizeof(addrstr),T_OUT); strncat(addrstr, owEmitString, sizeof(addrstr)); - if (mqttClient.connected()) + if (mqttClient.connected() && !ethernetIdleCount) mqttClient.publish(addrstr, valstr); } // And translate temp to internal items @@ -944,6 +957,7 @@ void printConfigSummary() { printBool(udpSyslogArr); #endif debugSerial << endl; + debugSerial<