ciao...io ragionerei in questo modo...nello spezzone del tuo sketch verifichi se readString.sartsWith(....) ritorna true...se true appunto analizzi altre parti della Stringa ricevuta per ricavarne dei valori...ecco li io, invece di includere tutte le restanti azioni, imposterei una variabile globale (che tra le altre cose includere nella verifica di questo if in modo da non eseguire due volte la stessa azione) da 0 ad 1...con questa variabile ad 1 abilito una funzione od un pezzo di codice, esterno a questo if() che mi gestisca con millis() il digitalWrite()...magari il tempo di partenza di millis() l'ho salvato nella if della Stringa....eseguito il primo digitalWrite metto la stessa variabile a 2 e passo alla funzione StampaApertura...finita questa imposto la variabile a 3 e salvo ancora millis() ...con varibile a 3 eseguo il digitalWrite() di chiusura e finito anche questo imposto la variabile a 0.
non conoscendo tutto il codice e cosa deve fare di preciso mi viene in mente questo.
spero di esseremi spegato bene