diff --git a/ampel-firmware/lorawan.cpp b/ampel-firmware/lorawan.cpp
index dfb256a37fff21f6135d17f3976cae702e2f7bcf..9b667986994246283482d7f1032fba2e86a4d991 100644
--- a/ampel-firmware/lorawan.cpp
+++ b/ampel-firmware/lorawan.cpp
@@ -98,6 +98,12 @@ namespace lorawan {
         u1_t nwkKey[16];
         u1_t artKey[16];
         LMIC_getSessionKeys(&netid, &devaddr, nwkKey, artKey);
+        config::lora_session_saved = true;
+        config::lora_netid = netid;
+        config::lora_devaddr = devaddr;
+        memcpy(config::lorawan_nwk_key, nwkKey, 16);
+        memcpy(config::lorawan_art_key, artKey, 16);
+        config::save();
         //NOTE: Saving session to EEPROM seems like a good idea at first, but unfortunately: too much info is needed, and a counter would need to be save every single time data is sent.
         Serial.print(F("  netid: "));
         Serial.println(netid, DEC);
diff --git a/ampel-firmware/web_config.cpp b/ampel-firmware/web_config.cpp
index e8fa324dab9e274de667311e683d9dd06e8f0af9..bdcf6bd0235bd063311cc4f5f0c8fd42b9a39f08 100644
--- a/ampel-firmware/web_config.cpp
+++ b/ampel-firmware/web_config.cpp
@@ -143,6 +143,22 @@ namespace web_config {
   LORAWAN_APPLICATION_EUI).build();
   PasswordTParameter<33> appKeyParam = Builder<PasswordTParameter<33>>("app_key").label("App key (MSB)").defaultValue(
   LORAWAN_APPLICATION_KEY).build();
+  
+  CheckboxTParameter savedLoraSession =
+      Builder<CheckboxTParameter>("lora_session").label("LoRa session has been saved?").defaultValue(false).build();
+  
+  
+//        u4_t netid = 0;
+//        devaddr_t devaddr = 0;
+//        u1_t nwkKey[16];
+//        u1_t artKey[16];
+//        LMIC_getSessionKeys(&netid, &devaddr, nwkKey, artKey);
+  IntTParameter<uint32_t> savedLoraNetIdParam =
+      Builder<IntTParameter<uint32_t>>("netid").label("netid").defaultValue(0).placeholder("?").build();
+  IntTParameter<uint32_t> savedDevaddrParam =
+      Builder<IntTParameter<uint32_t>>("devaddr").label("devaddr").defaultValue(0).placeholder("?").build();
+  PasswordTParameter<17> nwkKeyParam = Builder<PasswordTParameter<17>>("nwkKey").label("nwkKey").defaultValue("").build();
+  PasswordTParameter<17> artKeyParam = Builder<PasswordTParameter<17>>("artKey").label("artKey").defaultValue("").build();
 #endif
 
   OptionalGroupHtmlFormatProvider optionalGroupHtmlFormatProvider;
@@ -209,6 +225,15 @@ namespace web_config {
     loraParams.addItem(&deviceEUIParam);
     loraParams.addItem(&appEUIParam);
     loraParams.addItem(&appKeyParam);
+    
+    //TODO : Test
+    //TODO : Hide some.
+    //TODO : rename
+    loraParams.addItem(&savedLoraSession);
+    loraParams.addItem(&savedLoraNetIdParam);
+    loraParams.addItem(&savedDevaddrParam);
+    loraParams.addItem(&nwkKeyParam);
+    loraParams.addItem(&artKeyParam);
 #endif
 
     iotWebConf->addParameterGroup(&co2Params);
@@ -335,5 +360,11 @@ namespace config {
   char *lorawan_device_eui = web_config::deviceEUIParam.value();
   char *lorawan_app_key = web_config::appKeyParam.value();
   char *lorawan_app_eui = web_config::appEUIParam.value();
+  
+  bool &lora_session_saved = web_config::savedLoraSession.value();
+  uint32_t &lora_netid = web_config::savedLoraNetIdParam.value();
+  uint32_t &lora_devaddr = web_config::savedDevaddrParam.value();
+  char *lorawan_nwk_key = web_config::nwkKeyParam.value();
+  char *lorawan_art_key = web_config::artKeyParam.value();
 #endif
 }
diff --git a/ampel-firmware/web_config.h b/ampel-firmware/web_config.h
index c9b23af91bb82c49fa26dfd141b388600d10ff7c..43dd3eef07b5816d54ed99e38a9be51026b9cfe8 100644
--- a/ampel-firmware/web_config.h
+++ b/ampel-firmware/web_config.h
@@ -58,6 +58,12 @@ namespace config {
   extern char *lorawan_device_eui;
   extern char *lorawan_app_key;
   extern char *lorawan_app_eui;
+  
+  extern bool &lora_session_saved;
+  extern uint32_t &lora_netid;
+  extern uint32_t &lora_devaddr;
+  extern char *lorawan_nwk_key;
+  extern char *lorawan_art_key;
 #endif
 
   // Transmission rate