diff --git a/ampel-firmware/csv_writer.cpp b/ampel-firmware/csv_writer.cpp
index 653630335527800481fb4907025e494e2de3fd58..4dd09360eb30c9f6a74d4a7b607e57c80d96e659 100644
--- a/ampel-firmware/csv_writer.cpp
+++ b/ampel-firmware/csv_writer.cpp
@@ -86,6 +86,14 @@ namespace csv_writer {
     return getTotalSpace() - getUsedSpace();
   }
 
+  void setCSVinterval(int32_t csv_interval) {
+    config::csv_interval = csv_interval;
+    Serial.print(F("Setting CSV Interval to : "));
+    Serial.print(config::csv_interval);
+    Serial.println("s.");
+    led_effects::showKITTWheel(color::green, 1);
+  }
+
   void initialize() {
     Serial.print(F("Initializing FS..."));
     if (mountFS()) {
@@ -116,6 +124,8 @@ namespace csv_writer {
     Serial.println("Filesystem content:");
     showFilesystemContent();
     Serial.println();
+
+    sensor_commands::defineCallback("csv", setCSVinterval);
   }
 
   File openOrCreate() {
diff --git a/ampel-firmware/csv_writer.h b/ampel-firmware/csv_writer.h
index e0e0d5314ae9060ca8c39315737da2a73beb5d99..4ed3888930034a7e3a1a13fd2df59a62df3c1919 100644
--- a/ampel-firmware/csv_writer.h
+++ b/ampel-firmware/csv_writer.h
@@ -14,6 +14,7 @@
 #include "config.h"
 #include "util.h"
 #include "led_effects.h"
+#include "sensor_commands.h"
 
 namespace config {
   extern uint16_t csv_interval; // [s]
diff --git a/ampel-firmware/mqtt.cpp b/ampel-firmware/mqtt.cpp
index 6427647d256696a54fba5b1098ad0205de119218..ba73e4e96985ae5c440e3702c7513e7de1c089c1 100644
--- a/ampel-firmware/mqtt.cpp
+++ b/ampel-firmware/mqtt.cpp
@@ -64,17 +64,6 @@ namespace mqtt {
     led_effects::showKITTWheel(color::green, 1);
   }
 
-#ifdef AMPEL_CSV
-  void setCSVinterval(String messageString) {
-    messageString.replace("csv ", "");
-    config::csv_interval = messageString.toInt();
-    Serial.print(F("Setting CSV Interval to : "));
-    Serial.print(config::csv_interval);
-    Serial.println("s.");
-    led_effects::showKITTWheel(color::green, 1);
-  }
-#endif
-
   void calibrateSensorToSpecificPPM(String messageString) {
     messageString.replace("calibrate ", "");
     long int calibrationLevel = messageString.toInt();
@@ -135,8 +124,6 @@ namespace mqtt {
       Serial.println(F("Forcing MQTT publish now."));
       publish(sensor::timestamp, sensor::co2, sensor::temperature, sensor::humidity);
 #ifdef AMPEL_CSV
-    } else if (messageString.startsWith("csv ")) {
-      setCSVinterval(messageString);
     } else if (messageString == "format_filesystem") {
       FS_LIB.format();
       led_effects::showKITTWheel(color::blue, 2);