Yo no consigo trabajar mi codigo

Es lo que dice tu código.
Dice... si esta en LOW

  if(!digiValue)
  {
    pumpStatus = !pumpStatus;
    aplyCmd();
  }

haz que el rele cambie a cada momento

Lo que deberías preguntar es

  if(!digiValue && digiValueAnt)
  {
    pumpStatus = !pumpStatus;
    aplyCmd();
  }
   digiValueAnt = digiValue;

Y define digiValueAnt como boolean pero no en el loop por favor, debe ser global.