How to control Data transmission?

I am Using IM920 Sub-GHz module for transmitting data. Now the problem is when I transfer data it's sending continuously. But I want to send data only when the data value will be changed. Ex: Temp=24.4 so data transmit one time and wait until the Temp=24.0 or Temp=24.5 when the value is changed only send data.

Below is my present code:

#include <SoftwareSerial.h>
#include <SPI.h>
#include <Ethernet2.h>
#include <avr/pgmspace.h>
#include <EEPROM.h>
#include <Uardecs_mega.h>
#include <Wire.h>

#define OPRMODE_ERR_SHT2xSENSERR       0x20000000 //0 01000 00000 0 0000 0000000000000000 //Sensor error

char SHT2x_sensSts;
unsigned char SHT2x_errcount=0;

SoftwareSerial im920serial (10, 11);// RX TX


/////////////////////////////////////
//IP reset jupmer pin setting

/////////////////////////////////////
const byte U_InitPin = 3;
const byte U_InitPin_Sense=HIGH;


////////////////////////////////////
//Node basic infomation

///////////////////////////////////
const char U_name[] PROGMEM= "TempHumid Node";//MAX 20 chars
const char U_vender[] PROGMEM= "WARC/NARO";//MAX 20 chars
const char U_uecsid[] PROGMEM= "000000000000";//12 chars fixed
const char U_footnote[] PROGMEM= "SHT2x Sensor Node";
char U_nodename[20] = "node";//MAX 19chars (This value enabled in safemode)
UECSOriginalAttribute U_orgAttribute;//
//////////////////////////////////
// html page1 setting

//////////////////////////////////

//Total number of HTML table rows.

const int U_HtmlLine = 0;


struct UECSUserHtml U_html[U_HtmlLine]={
};

//////////////////////////////////
// UserCCM setting

//////////////////////////////////

enum {
CCMID_InAirTemp,
CCMID_InAirHumid,
CCMID_InAirHD,
CCMID_cnd,
CCMID_dummy,
};


//CCM Declaration of CCM storage variable
//
const int U_MAX_CCM = CCMID_dummy;
UECSCCM U_ccmList[U_MAX_CCM];

//CCM definition material
const char ccmNameTemp[] PROGMEM= "Temperature";
const char ccmTypeTemp[] PROGMEM= "InAirTemp";
const char ccmUnitTemp[] PROGMEM= "C";

const char ccmNameHumid[] PROGMEM= "Humid";
const char ccmTypeHumid[] PROGMEM= "InAirHumid";
const char ccmUnitHumid[] PROGMEM= "%";

const char ccmNameHD[] PROGMEM= "HumidDiff";
const char ccmTypeHD[] PROGMEM= "InAirHD.mIC";
const char ccmUnitHD[] PROGMEM= "g m-3";

const char ccmNameCnd[] PROGMEM= "NodeCondition";
const char ccmTypeCnd[] PROGMEM= "cnd.mIC";
const char ccmUnitCnd[] PROGMEM= "";

//------------------------------------------------------
void UserInit(){
//MAC address is printed on sticker of Ethernet Shield.
//You must assign unique MAC address to each nodes.

U_orgAttribute.mac[0] = 0x12;
U_orgAttribute.mac[1] = 0x34;
U_orgAttribute.mac[2] = 0x56;
U_orgAttribute.mac[3] = 0x78;
U_orgAttribute.mac[4] = 0x9A;
U_orgAttribute.mac[5] = 0xBC;

  
UECSsetCCM(true, CCMID_InAirTemp, ccmNameTemp, ccmTypeTemp, ccmUnitTemp, 29, 1, A_10S_0);
UECSsetCCM(true, CCMID_InAirHumid, ccmNameHumid, ccmTypeHumid, ccmUnitHumid, 29, 1, A_10S_0);
UECSsetCCM(true, CCMID_InAirHD, ccmNameHD, ccmTypeHD, ccmUnitHD, 29, 2, A_10S_0);
UECSsetCCM(true, CCMID_cnd      , ccmNameCnd , ccmTypeCnd , ccmUnitCnd , 29,0, A_1S_0);
}

//---------------------------------------------------------
void OnWebFormRecieved(){
}


//float myftemp;
//float myfhumd;
int x = 100;
long myresulttemp;
long myresulthumd;

//---------------------------------------------------------
void UserEverySecond(){
  U_ccmList[CCMID_cnd].value=0;
  if(SHT2x_errcount>3)
        {
          SHT2x_errcount=4;
        U_ccmList[CCMID_cnd].value|=OPRMODE_ERR_SHT2xSENSERR;
        }

//------------------Temperature measurement (once every three seconds)  
static char count=0;
count++;
if(count %3==1)
  {

  double t=SHT2x_GetTemperature();
  double rh=SHT2x_GetHumidity();
  if(SHT2x_sensSts)
      {
        SHT2x_errcount++;
      }
  else{
      SHT2x_errcount=0;
      U_ccmList[CCMID_InAirTemp].value=(long)(t*10);
      U_ccmList[CCMID_InAirHumid].value=(long)(rh*10);
      }
  
  //
  double humidpress=6.1078*pow(10,(7.5*t/(t+237.3)));
  double humidvol=217*humidpress/(t+273.15);
  U_ccmList[CCMID_InAirHD].value=(100-rh)*humidvol;//Since a small number is the lower two digits, it outputs as it is
  
  myresulttemp = t * x;
  myresulthumd = rh * x;
  Serial.print ("Temp:");
  Serial.println (myresulttemp, HEX);
  Serial.print ("Humd:");
  Serial.println (myresulthumd, HEX);
  im920serial.print("TXDA 0");
  im920serial.print (myresulttemp, HEX);
  im920serial.println (myresulthumd, HEX);
  }


//Serial.print(t);


//------------------------------------------------Stop CCM transmission on error
if(SHT2x_errcount)
    {
        U_ccmList[CCMID_InAirTemp].flagStimeRfirst=false;
        U_ccmList[CCMID_InAirHumid].flagStimeRfirst=false;
        U_ccmList[CCMID_InAirHD].flagStimeRfirst=false;
    }


}

//---------------------------------------------------------
void UserEveryMinute(){
}
//---------------------------------------------------------
void UserEveryLoop(){
}

//---------------------------------
void loop(){
UECSloop();
}

//---------------------------------
void setup(){

Serial.begin (19200);
im920serial.begin (19200);
Wire.begin();
UECSsetup();
}

//-Sensor - SHT2x
#define eSHT2xAddress   0x40
#define eTempHoldCmd      0xE3
#define eRHumidityHoldCmd 0xE5
#define eTempNoHoldCmd      0xF3
#define eRHumidityNoHoldCmd 0xF5

double SHT2x_GetHumidity(void)
{
  return (-6.0 + 125.0 / 65536.0 * (double)(SHT2x_readSensor(eRHumidityHoldCmd)));
}
double SHT2x_GetTemperature(void)
{
  return (-46.85 + 175.72 / 65536.0 * (double)(SHT2x_readSensor(eTempHoldCmd)));
}

uint16_t SHT2x_readSensor(uint8_t command)
{
    uint16_t result;

    Wire.beginTransmission(eSHT2xAddress);
    Wire.write(command);
    delay(5);
    SHT2x_sensSts=Wire.endTransmission();
    if(SHT2x_sensSts){return 0;}

    Wire.requestFrom(eSHT2xAddress, 3);
    if(Wire.available()==3)
    {
    result = ((Wire.read()) << 8);
    result += Wire.read();
    result &= ~0x0003;   // clear two low bits (status bits)
    return result;
    }
    else
    {
      SHT2x_sensSts=4;
      return 0;
    }
    
}

Anyone, please help me on this issue.
Thanks In advance.

you could compare the last value transmitted with the current value and transmit if the absolute difference is greater than some value, e.g.

if(fabs(lastTemperature-currentTemperature)>testValue)
{
 lastTemperature=currentTemperature;
  ... // transmit data
}