Wie kann ich im Seriellen Monitor einen Text eingeben welcher er im Prog erkennt

Erst mal musst du den Text einlesen und wenn er empfangen wurde verarbeiten.

Einen Text Parser zu schreiben ist nicht extrem aufwendig, aber es ist auch nicht ganz trivial. Vor allem kommt es dabei ganz genau darauf an welchen Text du eingeben willst und mit welchen Zeichen die einzelnen Bestandteile voneinander getrennt sind. Da allgemeinen Code zu schreiben ist daher nicht wirklich möglich.

Du kannst dir mal das zur Handhabung von Strings in C anschauen:

Es gibt auch String Objekte:

Die verhalten sich eher wie du Strings vielleicht aus anderen Sprachen kennst, mit Methoden wie indexOf(), substring() und compareTo()

In beiden Fällen zerlegt man entweder den String in seine Bestandteile, oder man sucht wo die entsprechenden Trennzeichen stehen (z.B. Leerzeichen oder Komma). Dann kann man die Teil-Strings (oder einzelne Zeichen wie '1' oder '2') mit Konstanten vergleichen und eine bestimmte Aktion ausführen.

z.B. wenn du mit strchr(), bzw. indexOf() die Position des ersten Leerzeichen hast, kannst du danach mit strncmp() (die Differenz der Adressen entspricht dabei der Länge des Teil-Strings) bzw. compareTo() bis zu dieser Stelle vergleichen und so rausfinden ob da z.B. "Relais" oder "LED" steht. In der Position nach dem Leerzeichen könnte dann ein einzelner Character für die Nummer stehen (wenn es weniger als 10 sind) und am Ende kann man wieder mit einer String-Konstante vergleichen ob da "an" oder "aus" steht. Du musst da aber mit den Start- und End-Indices aufpassen. Man kann aber einfach mit println() überprüfen ob die errechneten Indices passen.

EDIT:
Habe mal schnell was zusammen gezimmert:

	char* firstSpace = strchr(input, ' ');            //Pointer auf das erste Leerzeichen
	if(firstSpace == NULL)
	{
		Serial.println("Invalid input");
	}
	else
	{
		int length = firstSpace - input;          //Länge des ersten Tokens
		
		if(strncmp(input, "LED", length) == 0)
			Serial.println("Controling LED");
		else if(strncmp(input, "Relay", length) == 0)
			Serial.println("Controling Relay");
		else 
			Serial.println("Invalid part");

		int number = strtol(firstSpace, NULL, 10);    //gibt bei einer ungültiger Wandlung 0 zurück. Daher robuster als atoi()
		if(number != 0)
                {
			Serial.print("Number: ")
                        Serial.println(number);
                }
		else
			Serial.println("Invalid number");

		char* secondSpace = strchr(firstSpace + 1, ' ');        //Pointer auf das zweite Leerzeichen
		if(secondSpace != NULL)
		{
			if(strcmp(secondSpace + 1, "an") == 0)
				Serial.println(New state : on");
			else if(strcmp(secondSpace + 1, "aus") == 0)
				Serial.println(New state : off");
			else
				Serial.println("Invalid state");
		}
		else
			Serial.println("Invalid input");
	}

Das geht davon aus dass der String in ein char Array namens "input" eingelesen wird. Der Teil fehlt natürlich

Was sich da auch anbietet ist strncasecmp() statt strncmp() (bzw. die Version ohne "n" am Ende):
http://www.nongnu.org/avr-libc/user-manual/group__avr__string.html#ga60b6f90e97d0574c5f5725d9db15cd9d
Dann spielt Groß- und Kleinschreibung keine Rolle

Grob getestet in Visual C++ und nicht auf dem Arduino. Es kann auch sein, dass ich da noch nicht alle Fehl-Eingaben abgedeckt habe.