diff --git a/pid/fancontroller.cpp b/pid/fancontroller.cpp
index ddfea20..a1290c5 100644
--- a/pid/fancontroller.cpp
+++ b/pid/fancontroller.cpp
@@ -130,7 +130,16 @@
     /* If doing tuning, don't go into failsafe mode. */
     if (!tuningEnabled)
     {
-        if (_owner->getFailSafeMode())
+        bool failsafeCurrState = _owner->getFailSafeMode();
+
+        // Note when failsafe state transitions happen
+        if (failsafePrevState != failsafeCurrState)
+        {
+            failsafePrevState = failsafeCurrState;
+            failsafeTransition = true;
+        }
+
+        if (failsafeCurrState)
         {
             double failsafePercent = _owner->getFailSafePercent();
 
@@ -147,25 +156,38 @@
             {
                 percent = failsafePercent;
             }
-
-            if (failsafePrint || debugEnabled)
-            {
-                std::cerr << "Zone " << _owner->getZoneID()
-                          << " fans output failsafe pwm: " << percent << "\n";
-                failsafePrint = false;
-            }
 #endif
         }
+
+        // Always print if debug enabled
+        if (debugEnabled)
+        {
+            std::cerr << "Zone " << _owner->getZoneID() << " fans, "
+                      << (failsafeCurrState ? "failsafe" : "normal")
+                      << " mode, output pwm: " << percent << "\n";
+        }
         else
         {
-            failsafePrint = true;
-            if (debugEnabled)
+            // Only print once per transition when not debugging
+            if (failsafeTransition)
             {
-                std::cerr << "Zone " << _owner->getZoneID()
-                          << " fans output pwm: " << percent << "\n";
+                failsafeTransition = false;
+                std::cerr << "Zone " << _owner->getZoneID() << " fans, "
+                          << (failsafeCurrState ? "entering failsafe"
+                                                : "returning to normal")
+                          << " mode, output pwm: " << percent << "\n";
             }
         }
     }
+    else
+    {
+        if (debugEnabled)
+        {
+            std::cerr << "Zone " << _owner->getZoneID()
+                      << " fans, tuning mode, bypassing failsafe, output pwm: "
+                      << percent << "\n";
+        }
+    }
 
     // value and kFanFailSafeDutyCycle are 10 for 10% so let's fix that.
     percent /= 100.0;
