Different data type volatile unsigned int to const char ,
From your code, you've defined "pulseCount1_Wh" as "volatile unsigned int" type.


  volatile unsigned int pulseCount1_Wh  = 0;


But you directly pass it to "strcat" which expect to receive a pointer as the second argument.


  strcat(message1, pulseCount1_Wh);


I think you just want to show the count number as a string. So, your problem is not "just" a typecast problem. You should use "sprintf" or other data format functions to format the integer "pulseCount1_Wh"  into a string buffer, then pass the pointer of the string buffer to "strcat".