diff --git a/client/libs/espnow/src/Message.cpp b/client/libs/espnow/src/Message.cpp
index 0df90ac3056149208dd7038e08f3ed52641822d3..97f848e3698185e8c19cc0be020a689518b02bca 100644
--- a/client/libs/espnow/src/Message.cpp
+++ b/client/libs/espnow/src/Message.cpp
@@ -76,6 +76,11 @@ Message::Message(ClientDataPackage data) : clientDataPackage(data) {
   get_host_mac(recipient);
 }
 
+Message::Message() {
+  // check for existing host mac address, use broadcast otherwise
+  get_host_mac(recipient);
+}
+
 Message::Message(Measurement const &data,
                  const SensorInformation &information,
                  unsigned long timestamp)
diff --git a/client/libs/espnow/src/Message.hpp b/client/libs/espnow/src/Message.hpp
index 3dc83bf24274e19424d43d22187287651e927253..5863b85be6ba170218c1f5d0f85b74783cdcfb9e 100644
--- a/client/libs/espnow/src/Message.hpp
+++ b/client/libs/espnow/src/Message.hpp
@@ -15,6 +15,7 @@
 // if more things are sent from the host the name might not be accurate anymore
 class Message {
 public:
+    Message();
     explicit Message(ClientDataPackage data);
 
     Message(Measurement const &data,
diff --git a/host/host_central_mast/lib/NetworkConnectionManager/ConnectionManager.cpp b/host/host_central_mast/lib/NetworkConnectionManager/ConnectionManager.cpp
index bdadaf9ee807376bef8b8450d30e54380bb3a49d..b5da42067dc47d3ba5a18374563868a57a80061b 100644
--- a/host/host_central_mast/lib/NetworkConnectionManager/ConnectionManager.cpp
+++ b/host/host_central_mast/lib/NetworkConnectionManager/ConnectionManager.cpp
@@ -101,9 +101,14 @@ std::string ConnectionManager::connect(RequestInformation requestInformation) {
         throw LTEConnectionException("Failed to connect to host");
     }
 
+    esp_log_write(ESP_LOG_DEBUG, TAG_GSM, "Connected to host\n");
     String request = requestInformation.buildRequest();
 
     client.print(request);
+    client.println("Connection: close");
+    client.println();
+
+    esp_log_write(ESP_LOG_DEBUG, TAG_GSM, "Request sent, waiting for response\n");
 
     String line;
     // print response
diff --git a/host/host_central_mast/lib/Utilities/Utilities.cpp b/host/host_central_mast/lib/Utilities/Utilities.cpp
index 50e18e0adbb892bd01ceeac66dde1a77eb57f5f1..110ae495a71559bc640993b13721babb89c24dae 100644
--- a/host/host_central_mast/lib/Utilities/Utilities.cpp
+++ b/host/host_central_mast/lib/Utilities/Utilities.cpp
@@ -282,11 +282,26 @@ void turnOffLEDs() { // Set LED OFF
     digitalWrite(PWR_PIN, LOW);
 }
 
+String dataPackageToLineProtocolString(const ClientDataPackage &dataPackage, const String &clientMacAddress) {
+    String measurementType = dataPackage.getMeasurementData().getMeasurementTypeString().c_str();
+    String hardwareName = dataPackage.getSensorInformation().getHardwareNameString().c_str();
+    String timestamp = String(dataPackage.getTimestamp());
+    String protocol = dataPackage.getSensorInformation().getProtocolString().c_str();
+    String ic2address = String(dataPackage.getMeasurementData().getI2CAddress());
+    String value = String(dataPackage.getMeasurementData().getValue());
+    String channel = String(dataPackage.getMeasurementData().getChannel());
+
+    String lineData = hardwareName + ",clientMac=" + clientMacAddress + ",protocol=" + protocol + ",channel=" + channel
+                      + " " + measurementType + "=" + value + " " + timestamp;
+    return lineData;
+}
+
 String documentToLineProtocolString(const DynamicJsonDocument &doc) {
     String measurementType = doc["measurementType"].as<String>();
-    String sensorName = doc["sensorName"].as<String>();
+    String sensorName = doc["hardwareName"].as<String>();
     String timestamp = doc["timestamp"].as<String>();
-    String protocol = doc["protocol"].as<String>();
+    String protocol = doc["protocolAddress"].as<String>();
+    String ic2address = doc["ic2Address"].as<String>();
     String value = doc["value"].as<String>();
     String channel = doc["channel"].as<String>();
     String clientMac = doc["clientMac"].as<String>();
@@ -342,6 +357,7 @@ String dataPackageToServerReadableString(ClientDataPackage clientDataPackage, co
     serverDoc["protocolAddress"] = clientDataPackage.getMeasurementData().getChannel();
     serverDoc["i2cAddress"] = clientDataPackage.getMeasurementData().getI2CAddress();
     serverDoc["hardwareName"] = clientDataPackage.getSensorInformation().getHardwareNameString();
+    serverDoc["error"] = clientDataPackage.getMeasurementData().getErrorTypeString();
     // each value is a element in the readigs array
     JsonArray readings = serverDoc.createNestedArray("readings");
     JsonObject reading = readings.createNestedObject();
diff --git a/host/host_central_mast/lib/Utilities/Utilities.h b/host/host_central_mast/lib/Utilities/Utilities.h
index a196ea8c18fbf854aa482b5b84f673bec7d260e9..b5c1e2bc2314f1221df8f86baf8888bf5660e0e9 100644
--- a/host/host_central_mast/lib/Utilities/Utilities.h
+++ b/host/host_central_mast/lib/Utilities/Utilities.h
@@ -42,6 +42,7 @@ namespace ESPUtilities {
 void turnOffLEDs();
 String getMacAddressAsString(const uint8_t *mac);
 String documentToLineProtocolString(const DynamicJsonDocument &doc);
+String dataPackageToLineProtocolString(const ClientDataPackage &dataPackage, const String &clientMacAddress);
 DynamicJsonDocument parseReceivedJsonData(char *data);
 String documentToServerReadableString(const DynamicJsonDocument &doc);
 String dataPackageToServerReadableString(ClientDataPackage clientDataPackage, const String &clientMacAddress);
diff --git a/shared-libs/DataTransfer/Measurement.hpp b/shared-libs/DataTransfer/Measurement.hpp
index 49bcd4956e151bc1f4ec910970fceba51cd80df2..a008c393ab1173a1dabca491232067acd3caf567 100644
--- a/shared-libs/DataTransfer/Measurement.hpp
+++ b/shared-libs/DataTransfer/Measurement.hpp
@@ -31,6 +31,14 @@ public:
         errorType = ErrorType::DATA_OK;
     }
 
+    Measurement() {
+        value = ERROR_VALUE;
+        measurementType = MeasurementType::NULL_MEASUREMENT;
+        channel = NO_CHANNEL;
+        i2cAddress = NO_I2C_ADDRESS;
+        errorType = ErrorType::NULL_MESSAGE;
+    }
+
     [[nodiscard]] double getValue() const { return value; }
 
     [[nodiscard]] const MeasurementType &