diff --git a/things/DeviceIrRx.h b/things/DeviceIrRx.h index 93830c7..f2d6192 100644 --- a/things/DeviceIrRx.h +++ b/things/DeviceIrRx.h @@ -3,10 +3,11 @@ #include "Device.h" #include +#include class DeviceIrRx : public Device { public: - inline DeviceIrRx(byte irrxPin, byte powerPin) { + inline DeviceIrRx(byte irrxPin, byte powerPin):irrecv(irrxPin) { pin_irrx = irrxPin; pin_power = powerPin; } @@ -16,11 +17,14 @@ class DeviceIrRx : public Device { private: byte pin_irrx; byte pin_power; + IRrecv irrecv; + decode_results results; HomieNode irRxNode = HomieNode("irrx", "irrx"); }; void DeviceIrRx::deviceSetup() { - pinMode(pin_irrx, INPUT); + //pinMode(pin_irrx, INPUT); + irrecv.enableIRIn(); pinMode(pin_power, OUTPUT); digitalWrite(pin_power, HIGH); } @@ -30,7 +34,14 @@ void DeviceIrRx::deviceRegister() { } void DeviceIrRx::deviceLoop() { - // TODO receive IR + if (irrecv.decode(&results)) { + Serial.print("IR-Rx: "); + Serial.println(results.value, HEX); + if (!Homie.setNodeProperty(irRxNode, "value", String(results.value), false)) { + Serial.println("Sending failed"); + } + irrecv.resume(); // Receive the next value + } } #endif