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