Finding the index of a symbol in unsigned char and extracting contents?

Solution with strchr(). Posted as an alternative and to show how to cast a byte array to a character array.

void setup()
{
  Serial.begin(115200);
  
  // received payload
  byte *payload = (byte*)"A0:433.33";
  
  // pointer to value in payload; will be 'calculated'
  char *val;

  // find colon; note the casting to a character pointer
  val = strchr((char*)payload, ':');
  // if colon found
  if (val != NULL)
  {
    // replace colon by null terminator
    *val = '\0';
    // let val point to the actual value
    val++;

    // print the 'label'; again note the cast to a character pointer
    Serial.println((char*)payload);
    // print the value
    Serial.println(val);
  }
  else
  {
    Serial.println("Could not  find colon");
  }
}

void loop()
{
}