diff --git a/ampel-firmware/co2_sensor.cpp b/ampel-firmware/co2_sensor.cpp
index b381b9ebb126c1e5ea948726b067ee015bd09bcc..6cf9586a0912f4208d0b8554cd7210d656fa85ca 100644
--- a/ampel-firmware/co2_sensor.cpp
+++ b/ampel-firmware/co2_sensor.cpp
@@ -305,6 +305,7 @@ namespace sensor {
       Serial.println(F("s (change will only be applied after next measurement)."));
       scd30.setMeasurementInterval(timestep);
       config::measurement_timestep = timestep;
+      config::save();
       led_effects::showKITTWheel(color::green, 1);
     }
   }
diff --git a/ampel-firmware/csv_writer.cpp b/ampel-firmware/csv_writer.cpp
index 377563fc13f3fb8bd9f51d23221af12e1012693a..b40b0a47a7dcfcac9ddf607236595c56f2597926 100644
--- a/ampel-firmware/csv_writer.cpp
+++ b/ampel-firmware/csv_writer.cpp
@@ -176,6 +176,7 @@ namespace csv_writer {
     Serial.print(F("Setting CSV Interval to : "));
     Serial.print(config::csv_interval);
     Serial.println("s.");
+    config::save();
     led_effects::showKITTWheel(color::green, 1);
   }
 
diff --git a/ampel-firmware/lorawan.cpp b/ampel-firmware/lorawan.cpp
index 4b53d5af96b542dbf72de60fe7f85ec63389f403..445c6b5a9ca25c6abea0d73cb44592b22b4bc9f4 100644
--- a/ampel-firmware/lorawan.cpp
+++ b/ampel-firmware/lorawan.cpp
@@ -239,6 +239,7 @@ namespace lorawan {
     Serial.print(F("Setting LoRa sending interval to : "));
     Serial.print(config::lorawan_sending_interval);
     Serial.println("s.");
+    config::save();
     led_effects::showKITTWheel(color::green, 1);
   }
 }
diff --git a/ampel-firmware/mqtt.cpp b/ampel-firmware/mqtt.cpp
index cbe98daf62be728edfde7c97e76612bb9474d5a1..2366e38ea4b116969c43a5b90b28724fe29e0128 100644
--- a/ampel-firmware/mqtt.cpp
+++ b/ampel-firmware/mqtt.cpp
@@ -188,6 +188,7 @@ namespace mqtt {
     Serial.print(F("Setting MQTT sending interval to : "));
     Serial.print(config::mqtt_sending_interval);
     Serial.println("s.");
+    config::save();
     led_effects::showKITTWheel(color::green, 1);
   }
 
diff --git a/ampel-firmware/web_config.cpp b/ampel-firmware/web_config.cpp
index 3ea0b65595083ccaa63ce2294844ebf692ded6cb..51aa30d75ffc0d333f6e400ab1f743e10aab5ee7 100644
--- a/ampel-firmware/web_config.cpp
+++ b/ampel-firmware/web_config.cpp
@@ -292,6 +292,9 @@ namespace config {
   float &temperature_offset = web_config::temperatureOffsetParam.value(); // [K] Sign isn't relevant.
 
   bool &wifi_active = web_config::ampelWifiParam.value();
+  void save() {
+    web_config::iotWebConf->saveConfig();
+  }
 
   // LEDs
   uint8_t &max_brightness = web_config::maxBrightnessParam.value();
diff --git a/ampel-firmware/web_config.h b/ampel-firmware/web_config.h
index 29cbd920c2569786bcb2c48e82c9d8f51be5bf2a..e7d2ad38cc7af84adda46f9d5504c79d0409f747 100644
--- a/ampel-firmware/web_config.h
+++ b/ampel-firmware/web_config.h
@@ -19,6 +19,7 @@ namespace config {
   extern float &temperature_offset; // [K] Sign isn't relevant.
 
   extern bool &wifi_active; // [true / false]
+  void save(); // Save config to EEPROM
 
   // LED
   extern uint8_t &max_brightness;