42 lines
956 B
C++
42 lines
956 B
C++
|
#include <Homie.h>
|
||
|
|
||
|
const int PIN_RELAY = D1;
|
||
|
int timer = 0;
|
||
|
HomieNode powerNode("power", "switch");
|
||
|
|
||
|
bool powerOnHandler(const HomieRange& range, const String& value) {
|
||
|
if (value != "true" && value != "false") return false;
|
||
|
bool on = (value == "true");
|
||
|
digitalWrite(PIN_RELAY, on ? LOW : HIGH);
|
||
|
powerNode.setProperty("on").send(value);
|
||
|
Homie.getLogger() << "Power is " << (on ? "on" : "off") << endl;
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
void setupHandler() {
|
||
|
pinMode(PIN_RELAY, OUTPUT);
|
||
|
digitalWrite(PIN_RELAY, HIGH);
|
||
|
|
||
|
powerNode.setProperty("on").send("false");
|
||
|
}
|
||
|
|
||
|
void setup() {
|
||
|
Serial.begin(115200);
|
||
|
|
||
|
Serial << endl << endl;
|
||
|
Serial << "Firmware 0.0.1" << endl;
|
||
|
Serial << endl << endl;
|
||
|
|
||
|
Homie_setFirmware("deskcontrol", "1.0.0");
|
||
|
Homie_setBrand("FuryFire");
|
||
|
|
||
|
powerNode.advertise("on").settable(powerOnHandler);
|
||
|
|
||
|
Homie.setSetupFunction(setupHandler);
|
||
|
Homie.setup();
|
||
|
}
|
||
|
|
||
|
void loop() {
|
||
|
Homie.loop();
|
||
|
}
|