diff --git a/ampel-firmware/ampel-firmware.ino b/ampel-firmware/ampel-firmware.ino
index 8b4bb2aefa76698db16fa84584e477d37d4e8259..01d281897a91a14edd8f7816d4a8d17e957f8787 100644
--- a/ampel-firmware/ampel-firmware.ino
+++ b/ampel-firmware/ampel-firmware.ino
@@ -76,6 +76,8 @@ void setup() {
   Serial.println();
   Serial.print(F("Sensor ID: "));
   Serial.println(ampel.sensorId);
+  Serial.print(F("Name     : "));
+  Serial.println(config::ampel_name());
   Serial.print(F("MAC      : "));
   Serial.println(ampel.macAddress);
   Serial.print(F("Board    : "));
@@ -87,7 +89,7 @@ void setup() {
 
   sensor::initialize();
 
-  csv_writer::initialize(ampel.sensorId);
+  csv_writer::initialize(config::ampel_name());
 
   if (config::wifi_active) {
     wifi::defineCommands();
@@ -171,7 +173,7 @@ void wifiConnected() {
   }
 
   Serial.print(F("You can access this sensor via http://"));
-  Serial.print(ampel.sensorId);
+  Serial.print(config::ampel_name());
   Serial.print(F(".local (might be unstable) or http://"));
   Serial.println(WiFi.localIP());
 }
diff --git a/ampel-firmware/csv_writer.cpp b/ampel-firmware/csv_writer.cpp
index b40b0a47a7dcfcac9ddf607236595c56f2597926..ada784a1218bcdf6ae1ad4e6b2c868f7ff5ec9ea 100644
--- a/ampel-firmware/csv_writer.cpp
+++ b/ampel-firmware/csv_writer.cpp
@@ -79,14 +79,14 @@ namespace csv_writer {
   }
 #endif
 
-  char filename[15]; // "/ESPxxxxxx.csv\0"
+  char filename[20]; // "/ESPxxxxxx.csv\0"
 
   int getAvailableSpace() {
     return getTotalSpace() - getUsedSpace();
   }
 
   void initialize(const char *sensorId) {
-    snprintf(filename, sizeof(filename), "/%s.csv", sensorId);
+    snprintf(filename, sizeof(filename), "/%.15s.csv", sensorId);
 
     Serial.println();
     Serial.print(F("Initializing FS..."));
diff --git a/ampel-firmware/web_config.cpp b/ampel-firmware/web_config.cpp
index 955b3d563252a63af495826b62044e9653e3f9b4..0d86ea4b5ca457db68ef03ca085467f3de0fd235 100644
--- a/ampel-firmware/web_config.cpp
+++ b/ampel-firmware/web_config.cpp
@@ -287,6 +287,10 @@ namespace web_config {
  */
 namespace config {
 
+  char* ampel_name() {
+    return web_config::iotWebConf->getThingName();
+  }
+
   char* selected_ssid() {
     return web_config::iotWebConf->getWifiSsidParameter()->valueBuffer;
   }
diff --git a/ampel-firmware/web_config.h b/ampel-firmware/web_config.h
index 268a44746f306781a0c382c61f12092192a52fc8..b0f3cf480b69dd3bfd4e7cfd5fd7a1d5d430e27c 100644
--- a/ampel-firmware/web_config.h
+++ b/ampel-firmware/web_config.h
@@ -10,6 +10,7 @@
 namespace config {
   void save(); // Save config to EEPROM
 
+  char* ampel_name();
   // WiFi
   char* selected_ssid();
   char* ap_password();
diff --git a/ampel-firmware/web_server.cpp b/ampel-firmware/web_server.cpp
index e51b7c2f4cae67b360491f88fe22bffc61ba5a2d..4c86876cf6228ce6acb4e3dbe4654b4dc4a736e5 100644
--- a/ampel-firmware/web_server.cpp
+++ b/ampel-firmware/web_server.cpp
@@ -191,7 +191,7 @@ namespace web_server {
     char content[2000]; // Update if needed
     // INFO - Header size : 1767 - Body size : 1991 - Script size : 1909
 
-    snprintf_P(content, sizeof(content), header_template, sensor::co2, ampel.sensorId, wifi::local_ip,
+    snprintf_P(content, sizeof(content), header_template, sensor::co2, config::ampel_name(), wifi::local_ip,
         csv_writer::filename);
 
         Serial.print(F("INFO - Header size : "));
@@ -200,7 +200,7 @@ namespace web_server {
     web_config::http.send_P(200, PSTR("text/html"), content);
 
     // Body
-    snprintf_P(content, sizeof(content), body_template, ampel.sensorId, sensor::co2, sensor::temperature,
+    snprintf_P(content, sizeof(content), body_template, config::ampel_name(), sensor::co2, sensor::temperature,
         sensor::humidity, sensor::timestamp, config::measurement_timestep, csv_writer::last_successful_write,
         config::csv_interval, csv_writer::getAvailableSpace() / 1024, mqtt::connected ? "Yes" : "No",
         mqtt::last_successful_publish, config::mqtt_sending_interval,
@@ -208,7 +208,7 @@ namespace web_server {
         lorawan::connected ? "Yes" : "No", config::lorawan_frequency_plan, lorawan::last_transmission,
         config::lorawan_sending_interval,
 #endif
-        config::temperature_offset, config::auto_calibrate_sensor ? "Yes" : "No", ampel.sensorId, ampel.sensorId,
+        config::temperature_offset, config::auto_calibrate_sensor ? "Yes" : "No", config::ampel_name(), config::ampel_name(),
         wifi::local_ip, wifi::local_ip, ampel.macAddress, ESP.getFreeHeap(), esp_get_max_free_block_size(),
         esp_get_heap_fragmentation(), ampel.max_loop_duration, ampel.board, ampel.version, dd, hh, mm, ss);
 
@@ -217,7 +217,7 @@ namespace web_server {
     web_config::http.sendContent(content);
 
     // Script
-    snprintf_P(content, sizeof(content), script_template, csv_writer::filename, ampel.sensorId);
+    snprintf_P(content, sizeof(content), script_template, csv_writer::filename, config::ampel_name());
 
         Serial.print(F(" - Script size : "));
         Serial.println(strlen(content));