#define ON false // relay actually on
#define OFF true // relay actuall off
digitalRead returns neither false nor true. It returns LOW or HIGH. Because of the way C treats integral values that is very likely a difference without distinction. However, that may not be true with a future version / ported version. So, I suggest this...
#define ON HIGH // relay actually on
#define OFF LOW // relay actuall off