It could be flashing (FLASH).
OK, so then ignore everything I said about the else if. Since there clearly is another possible value, the code you have is correct (at least as far as the else if statement is concerned).
I' m having real trouble thinking of a different name
FrontDoorState would work for me.
With respect, it's not exactly the same
if (FrontDoorLED == OFF)
{
// the button's pressed and LED is OFF
// turn it ON as this is a "first press".
//====================================
digitalWrite(ledPin1, ON);
FrontDoorLED = ON;
RingBellServo.write(180);
FrontDoorLEDTimeStamp1 = currentMillis;
}
else if (FrontDoorLED == ON)
{
// the button's pressed and LED is ON
// start flashing as this is a "second press".
//======================================
digitalWrite(ledPin1, OFF);
FrontDoorLED = FLASH;
RingBellServo.write(180);
FrontDoorLEDTimeStamp1 = currentMillis;
}
Looks the same to me. Not all of the code is the same, but the duplicate code doesn't need to be there. On the other hand, maybe what's needed is an else block, to handle the case where FrontDoorLED == FLASH. If you add that, then you can decide whether there is anything in all three blocks that is the same, and move that stuff outside of the if/else if/else structure.
Again, with respect, not sure about this.
Well, you should be. It's your code, and you are right.