The problem is:
if (Serial.available() > 0) {
led_color_str = Serial.readStringUntil(';');
int led_color = led_color_str.toInt();
Serial.println(led_color);
switch(led_color){
case 1:
int led_value = Serial.read();
led_value = map(led_value,0,100,0,255);
Serial.println(led_value);
analogWrite(9,led_value);
break;
}
The app doesn't know what data you're sending, whether it's temperature with humidity, LED color, or some other value. Therefore, the easiest way is to add the two values together for temperature and humidity and send them all together in one session.
Serial.print( temperature );
Serial.print("|");
Serial.print( humidity );
Serial.print("|");
Serial.print(led_value);
Serial.print("|");
Serial.print(led_color);
Serial.println();