diff --git a/rest.cpp b/rest.cpp
index c6536cc54d3bd9401416f7f988e43894e2623180..647952b344ea7b7a0a28ef77d77921aafc4789c3 100644
--- a/rest.cpp
+++ b/rest.cpp
@@ -131,6 +131,10 @@ enum {
 };
 
 void sendSNMP() {
+    if (PINS.ramping) {
+        restServer.send(403, "text/json", "{\"success\": 0, \"reason\": \"ramping ongoing\"}");
+        return;
+    }
     uint8_t output = NONE;
     uint16_t channel = 0;
     bool success = false;
@@ -178,6 +182,10 @@ void sendSNMP() {
 }
 
 void powerGroup() {
+    if (PINS.ramping) {
+        restServer.send(403, "text/json", "{\"success\": 0, \"reason\": \"ramping ongoing\"}");
+        return;
+    }
     String output;
     String group;
     String ret;
@@ -224,6 +232,10 @@ void powerGroup() {
 }
 
 void powerAllOff() {
+    if (PINS.ramping) {
+        restServer.send(403, "text/json", "{\"success\": 0, \"reason\": \"ramping ongoing\"}");
+        return;
+    }
     String group;
     String groups;
     bool success = false;