A function to handle multiple datatypes

After what pYro_65 just demonstrated, I am inclined to claim that for OP's case the sendAnything(const byte *value, unsigned int size) is more reasonable that all the extra hassle that the template alternative would require.

int MyInt = 42;
char *MyString = "foo";
sendAnything((const byte *)&MyInt, sizeof(MyInt));
sendAnything((const byte *)MyString, strlen(MyString));