diff --git a/control/actions.cpp b/control/actions.cpp
index 6eda2a6..66bba2b 100644
--- a/control/actions.cpp
+++ b/control/actions.cpp
@@ -99,6 +99,27 @@
     zone.setFloorChangeAllow(&group, !defFloor);
 }
 
+Action set_speed_on_missing_owner(uint64_t speed)
+{
+    return [speed](control::Zone& zone, const Group& group)
+    {
+        auto services = zone.getGroupServices(&group);
+        auto missingOwner = std::any_of(
+            services.begin(),
+            services.end(),
+            [](const auto& s)
+            {
+                return !std::get<hasOwnerPos>(s);
+            });
+        if (missingOwner)
+        {
+            zone.setSpeed(speed);
+        }
+        // Update group's fan control active allowed based on action results
+        zone.setActiveAllow(&group, !missingOwner);
+    };
+}
+
 void set_request_speed_base_with_max(control::Zone& zone,
                                      const Group& group)
 {
diff --git a/control/actions.hpp b/control/actions.hpp
index 4d2c5c3..55c8af8 100644
--- a/control/actions.hpp
+++ b/control/actions.hpp
@@ -42,6 +42,20 @@
 void default_floor_on_missing_owner(Zone& zone, const Group& group);
 
 /**
+ * @brief An action to set a speed when a service owner is missing
+ * @details Sets the fans to the given speed when any service owner associated
+ * to the group is missing. Once all services are functional and providing
+ * the event data again, active fan speed changes are allowed.
+ *
+ * @param[in] speed - Speed to set the zone to
+ *
+ * @return Action lambda function
+ *     An Action function that sets the zone to the given speed if any service
+ *     owners are missing.
+ */
+Action set_speed_on_missing_owner(uint64_t speed);
+
+/**
  * @brief An action to set the request speed base
  * @details A new target speed is determined using a speed delta being added
  * or subtracted, for increases or decrease respectively, from a base speed.
