implemented IR transmission via MQTT
This commit is contained in:
parent
1301947c7a
commit
2970dad868
@ -26,7 +26,68 @@ void DeviceIrTx::deviceSetup() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool DeviceIrTx::irTxHandler(String message) {
|
bool DeviceIrTx::irTxHandler(String message) {
|
||||||
irsend.sendSony(0xa90, 12);
|
DynamicJsonBuffer json_inBuffer;
|
||||||
|
JsonObject& json_in = json_inBuffer.parseObject(message);
|
||||||
|
if (json_in.success()) {
|
||||||
|
unsigned long data = 0;
|
||||||
|
int nbits = 0;
|
||||||
|
if (json_in.containsKey("data")) {
|
||||||
|
data = json_in["data"];
|
||||||
|
}
|
||||||
|
if (json_in.containsKey("nbits")) {
|
||||||
|
nbits = json_in["nbits"];
|
||||||
|
}
|
||||||
|
if (json_in.containsKey("protocol")) {
|
||||||
|
String protocol = json_in["protocol"];
|
||||||
|
protocol.toUpperCase();
|
||||||
|
Serial.print("IR-Tx: sending ");
|
||||||
|
Serial.print(data);
|
||||||
|
Serial.print(" (");
|
||||||
|
Serial.print(nbits);
|
||||||
|
Serial.print(") via ");
|
||||||
|
Serial.print(protocol);
|
||||||
|
Serial.println(" Protocol");
|
||||||
|
for (int i = 0; i < 5; i++) {
|
||||||
|
if (protocol == "NEC") {
|
||||||
|
irsend.sendNEC(data, nbits);
|
||||||
|
} else if (protocol == "SONY") {
|
||||||
|
irsend.sendSony(data, nbits);
|
||||||
|
} else if (protocol == "RC5") {
|
||||||
|
irsend.sendRC5(data, nbits);
|
||||||
|
} else if (protocol == "RC6") {
|
||||||
|
irsend.sendRC6(data, nbits);
|
||||||
|
} else if (protocol == "DISH") {
|
||||||
|
irsend.sendDISH(data, nbits);
|
||||||
|
} else if (protocol == "SHARP") {
|
||||||
|
irsend.sendSharp(data, nbits);
|
||||||
|
} else if (protocol == "PANASONIC") {
|
||||||
|
irsend.sendPanasonic(data, nbits);
|
||||||
|
/* JVC needs a repeat parameter, will be implemented if necessary
|
||||||
|
} else if (protocol == "JVC") {
|
||||||
|
int repeat = 0;
|
||||||
|
irsend.sendJVC(data, nbits, repeat);
|
||||||
|
*/
|
||||||
|
/* Sanyo and Mitsubishi aren't implemented in the library
|
||||||
|
} else if (protocol == "SANYO") {
|
||||||
|
irsend.sendSanyo(data, nbits);
|
||||||
|
} else if (protocol == "MITSUBISHI") {
|
||||||
|
irsend.sendMitsubishi(data, nbits);
|
||||||
|
*/
|
||||||
|
} else if (protocol == "SAMSUNG") {
|
||||||
|
irsend.sendSAMSUNG(data, nbits);
|
||||||
|
} else if (protocol == "LG") {
|
||||||
|
irsend.sendLG(data, nbits);
|
||||||
|
} else if (protocol == "WHYNTER") {
|
||||||
|
irsend.sendLG(data, nbits);
|
||||||
|
} else {
|
||||||
|
Serial.println("IR protocol not implemented");
|
||||||
|
}
|
||||||
|
delay(40);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Serial.println("parsing of JSON failed");
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user