     ++num_cycles;
     digitalWrite(LED1, (num_cycles & 0x10) ? HIGH : LOW);
     if (num_cycles == 600)  {  // Every ~1 minute
+      ++mins_since_last_remote_command;
+      if (mins_since_last_remote_command >= 240) {  // Every ~4 hours.
+        ch1.set_duty_cycle_smoothing_rate(1);
+        ch1.set_brightness(0);
+        ch2.set_duty_cycle_smoothing_rate(1);
+        ch2.set_brightness(0);
+        ch3.set_duty_cycle_smoothing_rate(1);
+        ch3.set_brightness(0);
+        ch4.set_duty_cycle_smoothing_rate(1);
+        ch4.set_brightness(0);
+      }
       ch1.store_brightness_in_eeprom();
       ch2.store_brightness_in_eeprom();
       ch3.store_brightness_in_eeprom();

volatile uint8_t zerocross_isr_flag;
uint16_t num_cycles;
uint8_t led2_state;
DimmerChannel<SSR1_PIN> ch1;
DimmerChannel<SSR2_PIN> ch2;
DimmerChannel<SSR3_PIN> ch3;
DimmerChannel<SSR4_PIN> ch4;

void setup()
{
  pinMode(LED1, OUTPUT);

  cmd.raw = Serial.read();
  if (cmd.raw != Serial.peek())
    return;

  Serial.read();  // Consume the copy msg;
  if (cmd.op == SET_PERIOD)  {
    switch (cmd.channel) {
