/* * Sonoff * off-the-shelf wifi relay module * * Settings in IDE: * - Board: "Generic ESP8266 Module" * - Flash Size: "1M (64k SPIFFS)" * - Upload Speed: "1152200" */ #include "DeviceRelay.h" 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(PIN_LED, HIGH); pinMode(PIN_BUTTON, INPUT); pinMode(PIN_RELAY, OUTPUT); digitalWrite(PIN_RELAY, HIGH); }; 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; } };