NODEMCU v2 - Problema MQTT Subscribe/Publish

Problema... unire le funzionalità di 2 sketch in 1... Il primo di Publish che invia i dati di 3 sensori al mio Raspberry con HASS.IO ogni 15 secondi... e il secondo di Subscribe, che pilota un CMOS CD4066 per il controllo di 4 switch...

Separati funzionano perfettamente, con tempi di risposta immediati, ma unendo i 2 codici, anche annullando il delay della sezione Publish, quindi senza ritardi nel loop principale, i comandi ricevuti dal Broker MQTT arrivano con molto ritarno... qualche idea? Mi sembra di aver capito da varie discussione che far convivere le 2 funzioni Subscribe/Publish nello stesso sketch sia un problema... qualche consiglio? Nel pomeriggio posto il codice...

Lo sketch integra anche un webserver, ma anche eliminandolo, non ho notato sensibili miglioramenti.

Da quello che sto leggendo, se non ho capito male, al posto del delay che stoppa lo sketch ogni 15 secondi dopo aver inviato i topic Publish ad HASS.IO (per non inviare troppi dati in uscita), dovrei implementare la funzione millis, che conta quanto tempo passa dall'invio precedente senza stoppare lo sketch...

Questo dovrebbe andare bene...

int period = 15000;
unsigned long time_now = 0;

void setup() {
Serial.begin(115200);
}

void loop() {
if(millis() > time_now + period){
time_now = millis();
Serial.println("Hello");
}

//Run other code
}

Cmq perfetto... mi sono risposto da solo... :slight_smile: Subscribe in tempo reale da Mosquito MQTT (HASS.IO) e Publish verso il Broker ogni 15 secondi senza rallentamenti! La funzione millis() è una mano santa...