             fillDataArray(bitNumber, matchOne);
 
             if (bitNumber == DATA_BITS_AMOUNT - 1) {
-
                 //This was the last value bit
-                //All is done we can return the whole message to the client!
-                printDataArray();
+
+                //All is done we can return the whole message to the client
+                if (checkSumMatch()) {
+                    printDataArray();
+                }
 
                 //clear state to zero since nothing more we can do
                 setState(0, true);


    Serial.print("Humidity: ");
    Serial.println(humidity);

    Serial.print("CheckSumMatch: ");
    printByteAsBitSet(checkSumMatch());
    Serial.println();
}

void printByteAsBitSet(byte b) {
    Serial.print((b & 8) >> 3);
    Serial.print((b & 4) >> 2);
    Serial.print((b & 2) >> 1);
    Serial.print(b & 1);
}

byte checkSumMatch() {

    //Sum first 8 tetrads
    int sum = 0;


void printDataArray() {
    Serial.println("==== Sensor data captured ===");
    
    byte sensorNumber = data[1] >> 2;
    byte powerOnUUID = (data[0] << 2) | (data[1] & 3);
    byte powerState = data[2] >> 3;
