No logro que detecte un caracter de una Peticion Get y no entra en elseif.

Buenas tengo un problema con algo que me esta fallando en hacer la peticion get al servidor, y es que cuando la hago, el servidor me envia una "n" para off o una "s" para on, y de esta forma apagar o encender un LED, la cuestion es que tambien quiero que entre en un if que genere datos aleatorios si es "s", o en un else if para enviar ceros si recibe una "n", entonces no logro hacer esto ultimo, porque el servidor me envia esto:

El codigo en cuestion es el siguiente:

#include <SPI.h>
#include <Ethernet.h>
#include <String.h>

char server[] = "08115b80.ngrok.io";   //Localizacion del servidor.
unsigned long lastConnectionTime = 0;             // ultima vez que se conecta al servidor en milisegundos.
const unsigned long postingInterval = 10L * 1000L; // espera entre actualizaciones, en milisegundos.
// La L es usada para numeros de tipo grande.

byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
IPAddress ip(192, 168, 0, 100); //Ip de mi router para el arduino




//----------------------------------
int PIN_LED=4; // Asignando una variable al puerto a activar.
String readString=String(20); // Lee una instruccion en string y la guarda, no mayor a 20 espacios.
EthernetClient client; //Declarando que usaremos Arduino como cliente.
//----------------------------------

void setup() {
  
  Serial.begin(9600); // Inicializando la libreria serial.
  while (!Serial) {
    ;
  }

  // Comenzando la conexion Ethernet.:
  if (Ethernet.begin(mac) == 0) {
    Serial.println("ha fallado la configuracion de etherner usando DHCP");
    Ethernet.begin(mac, ip);
  }
  //esperamos un segundo.
  delay(1);
  Serial.println("conectando...");

  pinMode(PIN_LED,OUTPUT);
  digitalWrite(PIN_LED,HIGH);
  
}


void loop() {
  String readString;
  char c;
  char onoff;
  int tama;
  String gencon;//para guardan la cadena de numeros aleatorios.
  if (client.available()) {
    char c = client.read();
    Serial.print(c); // Esto es para que imprima por serial, todo lo que le llegue del servidor.
    //---------------desactivar y activar LED-------------------------------------
    readString.concat(c);
    tama= readString.length(); // Para saber la longitud de todo el caracter readString.
    onoff=readString[tama-1]; // Guarda el ultimo caracter de la cadena readString.
    if(onoff=='s') {
      digitalWrite(PIN_LED,HIGH); // encender LED
    } 
    else if (onoff=='n') {
      digitalWrite(PIN_LED,LOW); // apagar LED 
    }
    //------------------------------------------------------------------------------
  }
  gencon = generadorAleatorio(); // Generador de Cadena de numeros aleatorios
  
  if (millis() - lastConnectionTime > postingInterval) {
  peticionGET(gencon);
  
  }
}


void peticionGET(String gencon){

  client.stop();//Cierra cualquier conexion antes de enviar una nueva peticion. Liberando el slot en la shield Ethernet.
  String peticionGET="GET /consumo_generacion/?valores="; //declarando para hacer la peticion
  String peticionGET1=" HTTP/1.1";
  String host="Host: ";
  String cedulaU="20059642"; // cedula del usuario.
  if (client.connect(server, 80)){ // conectando con el servidor
    Serial.println("");
    Serial.println("conectado");
    
    //
    //
    //
    //Aqui estaba el generador.
    //
    //
    
    Serial.println(gencon+cedulaU);
   

    // ------------------Haciendo la peticion get.--------------------------------------------------
    client.println(peticionGET + gencon + cedulaU + peticionGET1);// concatenando los string para agregar cadena de numeros.
    client.println(host + server);
    client.println("\r\n\r\n");
    
    delay(10);   
    // nota el tiempo en que la conexion fue  realizada.
    lastConnectionTime = millis();
  }
  else {
    // Si no hay conexion con el server pues fallara.
    Serial.println("conexion fallida");
  }
}


String generadorAleatorio(){
  String gencon="";//Vaciando para generar nueva cadena 
  String h;
  int numrandom; // Para la cadena de caracteres de consumo y generacion.
  
//-----------------------Bucle para hacer la cadena de caracteres y enviarlas por get.------------
    
    int a=0;
    randomSeed(analogRead(0));
    while (a<=33) { // bucle para guardar cada valor hasta acumular toda la cadena antes de enviarla.
      numrandom=random(5000);
      h=String(numrandom,DEC); // guardando entero como string.
      gencon.concat(h+","); // haciendo la cadena completa acumulandola
      a++;
    }
    
    
//-----------------------------------------------------------------------------------------------

return gencon;
}

Bueno sin el if para generar ceros, la respuesta era normal. Aqui la respuesta normal, pero generando numeros aleatorios.

Y su codigo correspondiente. Claro este codigo no esta dividido en funciones como el anterior.

#include <SPI.h>
#include <Ethernet.h>
#include <String.h>

char server[] = "08115b80.ngrok.io";   //Localizacion del servidor.
unsigned long lastConnectionTime = 0;             // ultima vez que se conecta al servidor en milisegundos.
const unsigned long postingInterval = 10L * 1000L; // espera entre actualizaciones, en milisegundos.
// La L es usada para numeros de tipo grande.

byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
IPAddress ip(192, 0, 15, 11); //Ip de mi router para el arduino




//----------------------------------
int PIN_LED=4; // Asignando una variable al puerto a activar.
String readString=String(20); // Lee una instruccion en string y la guarda, no mayor a 20 espacios.
EthernetClient client; //Declarando que usaremos Arduino como cliente.
//----------------------------------

void setup() {
  
  Serial.begin(9600); // Inicializando la libreria serial.
  while (!Serial) {
    ;
  }

  // Comenzando la conexion Ethernet.:
  if (Ethernet.begin(mac) == 0) {
    Serial.println("ha fallado la configuracion de etherner usando DHCP");
    Ethernet.begin(mac, ip);
  }
  //esperamos un segundo.
  delay(1);
  Serial.println("conectando...");

  pinMode(PIN_LED,OUTPUT);
  digitalWrite(PIN_LED,HIGH);
  
}


void loop() {
  String readString;
  char c;
  char ultc;
  int tama;
  
  if (client.available()) {
    char c = client.read();
    Serial.print(c); // Esto es para que imprima por serial, todo lo que le llegue del servidor.
    //---------------desactivar y activar LED-------------------------------------
    readString.concat(c);
    tama= readString.length(); // Para saber la longitud de todo el caracter readString.
    ultc=readString[tama-1]; // Guarda el ultimo caracter de la cadena readString.
    if(ultc=='s') {
      digitalWrite(PIN_LED,HIGH); // encender LED
    } 
    else if (ultc=='n') {
      digitalWrite(PIN_LED,LOW); // apagar LED 
    }
    //------------------------------------------------------------------------------
  }


  if (millis() - lastConnectionTime > postingInterval) {
  peticionGET();
  }

 
}


void peticionGET(){

  client.stop();//Cierra cualquier conexion antes de enviar una nueva peticion. Liberando el slot en la shield Ether.
  String peticionGET="GET /consumo_generacion/?valores="; //declarando para hacer la peticion
  String peticionGET1=" HTTP/1.1";
  String host="Host: ";
  String gencon;
  String h;
  int numrandom; // Para la cadena de caracteres de consumo y generacion.
  String cedulaU="20059642";

  if (client.connect(server, 80)){ // conectando con el servidor
    Serial.println("");
    Serial.println("conectado");

    //-----------------------Bucle para hacer la cadena de caracteres y enviarlas por get.------------
    int a=0;
    randomSeed(analogRead(0));
    while (a<=33) { // bucle para guardar cada valor hasta acumular toda la cadena antes de enviarla.
      numrandom=random(5000);
      h=String(numrandom,DEC); // guardando entero como string.
      gencon.concat(h+","); // haciendo la cadena completa acumulandola
      delay(10);   
      a++;
    }
    Serial.println(gencon+cedulaU);

    //-----------------------------------------------------------------------------------------------

    // ------------------Haciendo la peticion http get.--------------------------------------------------
    client.println(peticionGET + gencon + cedulaU + peticionGET1);// concatenando los string para agregar cadena de numeros.
    client.println(host + server);
    client.println("\r\n\r\n");
    delay(10);
    gencon="";//Vaciando para generar nueva cadena     
    // nota el tiempo en que la conexion fue  realizada.
    lastConnectionTime = millis();
  }
  else {
    // Si no hay conexion con el server pues fallara.
    Serial.println("conexion fallida");
  }
}

Les agradezco la ayuda.

No uses else if, solo usa if... total si no entra en la condicion pues simplemente la va a ignorar...

if(onoff=='s') {
      digitalWrite(PIN_LED,HIGH); // encender LED
} 
if (onoff=='n') {
      digitalWrite(PIN_LED,LOW); // apagar LED 
}

A mi me funciona perfecto...