       Serial.println("Setting RGB " + data);
     #endif
   }
-  else if (String(topic) == subscriptions[2])
+  else if (topicStr == subscriptions[2])
   {
     parseFade(data);
     fadeActive = true;
   }
+  lastCallback = millis();
+  #if DEBUG
+  Serial.print("Callback prossesing time: ");
+  Serial.println(millis() - callbackTime);
+  #endif
 }
 
 

  }
  #if DEBUG
    Serial.print("[");
    Serial.print(topic);
    Serial.print("] ");
    Serial.println(data);
  #endif

  if (String(topic) == subscriptions[0])
  {
    mqttClient.publish(String(domain + "/ack/" + thisMAC).c_str(), "ack");
  }
  else if (String(topic) == subscriptions[1])
  {
    parseRGB(data);
    setParsedRGB();



unsigned long fadeRcvTime, lastFadePWMMillis=0;
unsigned long lastCallback = 0;
int curRGB[] = {0, 0, 0},
     wasRGB[3],
     toRGB[3];
