diff --git a/ampel-firmware/web_server.cpp b/ampel-firmware/web_server.cpp
index 9cba04f27e880890b72310241ab985f652cc1737..032566016fd0078c7e3010a6f1385da48e34159b 100644
--- a/ampel-firmware/web_server.cpp
+++ b/ampel-firmware/web_server.cpp
@@ -22,6 +22,7 @@ namespace web_server {
   const char *script_template;
   void handleWebServerRoot();
   void handlePageNotFound();
+  void handleWebServerCommand();
 
 #ifdef AMPEL_CSV
   void handleDeleteCSV();
@@ -173,6 +174,7 @@ namespace web_server {
 
     // Web-server
     http.on("/", handleWebServerRoot);
+    http.on("/command", handleWebServerCommand);
 #ifdef AMPEL_CSV
     http.on("/" + csv_writer::filename, handleWebServerCSV);
     http.on("/delete_csv", HTTP_POST, handleDeleteCSV);
@@ -275,6 +277,15 @@ namespace web_server {
   }
 #endif
 
+  void handleWebServerCommand() {
+    if (!shouldBeAllowed()) {
+      return http.requestAuthentication(DIGEST_AUTH);
+    }
+    sensor_commands::run(http.arg("send").c_str());
+    http.sendHeader("Location", "/");
+    http.send(303);
+  }
+
   void handlePageNotFound() {
     http.send(404, F("text/plain"), F("404: Not found"));
   }