#include 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(); }