implement button

This commit is contained in:
Ronald Schaten 2017-01-20 22:59:33 +01:00
parent 67120c4c35
commit a04958033e

View File

@ -12,19 +12,43 @@
const char* FWNAME = "things@Sonoff"; const char* FWNAME = "things@Sonoff";
bool state = LOW;
bool switched = false;
const byte PIN_BUTTON = 0; const byte PIN_BUTTON = 0;
const byte PIN_RELAY = 12; const byte PIN_RELAY = 12;
DeviceRelay deviceRelay(PIN_RELAY, "relay"); DeviceRelay deviceRelay(PIN_RELAY, "relay");
const byte PIN_LED = 13;
Device* devices[] = { Device* devices[] = {
&deviceRelay, &deviceRelay,
}; };
void hardwareSetup() { void hardwareSetup() {
Homie.setLedPin(13, HIGH); Homie.setLedPin(PIN_LED, HIGH);
pinMode(PIN_BUTTON, INPUT);
pinMode(PIN_RELAY, OUTPUT); pinMode(PIN_RELAY, OUTPUT);
digitalWrite(PIN_RELAY, HIGH); digitalWrite(PIN_RELAY, HIGH);
}; };
void hardwareLoop() {}; void hardwareLoop() {
digitalWrite(PIN_LED, !state);
for (int i = 0; i < 3; i++) {
if (digitalRead(PIN_BUTTON) == HIGH) {
switched = false;
return;
}
delay(10);
}
if (!switched) {
state = !state;
if (state) {
deviceRelay.relayOnHandler("true");
} else {
deviceRelay.relayOnHandler("false");
}
switched = true;
}
};