Water level monitoring system using Xbee

wvmarle:
Probably because the xbee doesn't send what you think it sends.

I asked you before and you admitted to having no clue what the xbee is actually trying to transmit. Without knowing that, it's useless to try and debug your Arduino side.

I did notice you didn't heed my advice to allow for messages shorter than three bytes.

Hello again sir, I want to show you my code for the transmitter side

const int trigPin = 11;
const int echoPin = 10;

// defines variables
long duration;
int distance;

void setup() {
  pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
  pinMode(echoPin, INPUT); // Sets the echoPin as an Input
  Serial.begin(9600); // Starts the serial communication
}

void loop() {
  // Clears the trigPin
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  
  // Sets the trigPin on HIGH state for 10 micro seconds
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  // Reads the echoPin, returns the sound wave travel time in microseconds
  duration = pulseIn(echoPin, HIGH);
  // Calculating the distance
  distance = ((duration * 0.034 / 2) * 10);
  
  // Prints the distance on the Serial Monitor
  delay(3000);
  Serial.println(distance);

}

the distance is in int. it is the value that is being sent via xbee.
Thanks!