digitalWrite(dataB, grp == 0 ? 0 : 1);

Aber in manchen Fällen ist es bei bool notwendig

Bei bool nie. Bool ist ein Datentyp der nur 0 oder 1 sein kann. In früheren Arduino Version war boolean aber nur ein typedef auf unsigned char (wie früher in C). Da war das manchmal nötig. Jetzt ist boolean ein typedef für bool.