diff --git a/things/HardwareSonoff.h b/things/HardwareSonoff.h index a63365f..072c92e 100644 --- a/things/HardwareSonoff.h +++ b/things/HardwareSonoff.h @@ -12,19 +12,43 @@ const char* FWNAME = "things@Sonoff"; +bool state = LOW; +bool switched = false; + const byte PIN_BUTTON = 0; const byte PIN_RELAY = 12; DeviceRelay deviceRelay(PIN_RELAY, "relay"); +const byte PIN_LED = 13; + Device* devices[] = { &deviceRelay, }; void hardwareSetup() { - Homie.setLedPin(13, HIGH); + Homie.setLedPin(PIN_LED, HIGH); + pinMode(PIN_BUTTON, INPUT); pinMode(PIN_RELAY, OUTPUT); 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; + } +};