   String topic = res.popString();
   String data  = res.popString();
   if (Debugging) {
-    debugger.print("MQTT Data Received: topic=");
+    debugger.print("MQTT Data Received on channel '");
     debugger.print(topic);
-    debugger.print(" :: data=");
+    debugger.print("': ");
     debugger.println(data);
   }
-  
+
   if (topic == "coop/remotetrigger") {
-    // @TODO: Handle remote trigger for DOOR events
-    
+    // If door movement is triggered, toggle door state to
+    // opening or closing based on current state.
+    // If door is currently moving, the trigger is ignored.
+    if (data == "door") {
+      if (doorState == "open") {
+        doorState = "closing";
+        lastReading = millis() + remoteOverride;
+      }
+      else if (doorState == "closed") {
+        doorState = "opening";
+        lastReading = millis() + remoteOverride;
+      }
+    }
+
+    // Toggle interior light
     if (data == "light") {
       toggleLamp();
       lastReading = millis() + remoteOverride;
     }
-    
+
+    // Toggle water heater
     if (data == "water heater") {
       toggleHeater();
       lastReading = millis() + remoteOverride;
     }
-    
+
+    // Toggle fan
     if (data == "fan") {
       toggleFan();
       lastReading = millis() + remoteOverride;
     }
   }
-  
+
   // Sync RTC to time beacon once/day
   if (topic == "time/beacon") {
     if ((unsigned long)(millis() - millisPerDay) >= lastRTCSync) {

  esp.reset();
  delay(500);
  while(!esp.ready());
  
  if (Debugging) {
    debugger.println("ARDUINO: Setup MQTT client");
  }
  lcdWrite("Initializing...", "MQTT Connecting");
  if (!mqtt.begin("coop_duino", "", "", 120, 1)) { // client_id, username, password, keepalive time, cleansession boolean
    if (Debugging) {
      debugger.println("ARDUINO: Failed to setup MQTT");
    }
    lcdWrite("MQTT Connect", "Failure");
    while(1);
  }
  
  mqtt.connectedCb.attach(&mqttConnected);
  mqtt.disconnectedCb.attach(&mqttDisconnected);
  mqtt.publishedCb.attach(&mqttPublished);
  mqtt.dataCb.attach(&mqttData);
  
  if (Debugging) {
    debugger.println("ARDUINO: Setup WIFI");
  }
  esp.wifiCb.attach(&wifiCb);
  esp.wifiConnect(wHost, wPass);
  
  lcdWrite("System Ready");
  
  /**
   * Setup pin modes
   */
  pinMode(lampRelay, OUTPUT);
  pinMode(heaterRelay, OUTPUT);  
  pinMode(doorOpen, OUTPUT);
  pinMode(doorClose, OUTPUT);
  pinMode(doorSpeed, OUTPUT);

  pinMode(doorBottom, INPUT);
  pinMode(fan, OUTPUT);
  pinMode(fanSpeed, OUTPUT);

  // Pin defaults
  digitalWrite(lampRelay, LOW);
  digitalWrite(heaterRelay, LOW);
