diff --git a/main/ZgatewayIR.ino b/main/ZgatewayIR.ino index 349d473..7ffb570 100644 --- a/main/ZgatewayIR.ino +++ b/main/ZgatewayIR.ino @@ -1184,6 +1184,99 @@ bool sendIdentifiedProtocol(const char* protocol_name, SIGNAL_SIZE_UL_ULL data, irsend.sendSanyoAc(dataarray, valueBITS, valueRPT); return true; } +# endif +# ifdef IR_VOLTAS + if (strcmp(protocol_name, "VOLTAS") == 0) { + Log.notice(F("Sending IR signal with %s" CR), protocol_name); + if (valueBITS == 0) + valueBITS = kVoltasStateLength; + irsend.sendVoltas(dataarray, valueBITS, valueRPT); + return true; + } +# endif +# ifdef IR_METZ + if (strcmp(protocol_name, "METZ") == 0) { + Log.notice(F("Sending IR signal with %s" CR), protocol_name); + if (valueRPT == repeatIRwNumber) + valueRPT = std::max(valueRPT, kMetzMinRepeat); + if (valueBITS == 0) + valueBITS = kMetzBits; + irsend.sendMetz(data, valueBITS, valueRPT); + return true; + } +# endif +# ifdef IR_TRANSCOLD + if (strcmp(protocol_name, "TRANSCOLD") == 0) { + Log.notice(F("Sending IR signal with %s" CR), protocol_name); + if (valueRPT == repeatIRwNumber) + valueRPT = std::max(valueRPT, kTranscoldDefaultRepeat); + if (valueBITS == 0) + valueBITS = kTranscoldBits; + irsend.sendTranscold(data, valueBITS, valueRPT); + return true; + } +# endif +# ifdef IR_TECHNIBEL_AC + if (strcmp(protocol_name, "TECHNIBELAC") == 0) { + Log.notice(F("Sending IR signal with %s" CR), protocol_name); + if (valueRPT == repeatIRwNumber) + valueRPT = std::max(valueRPT, kTechnibelAcDefaultRepeat); + if (valueBITS == 0) + valueBITS = kTechnibelAcBits; + irsend.sendTechnibelAc(data, valueBITS, valueRPT); + return true; + } +# endif +# ifdef IR_MIRAGE + if (strcmp(protocol_name, "MIRAGE") == 0) { + Log.notice(F("Sending IR signal with %s" CR), protocol_name); + if (valueRPT == repeatIRwNumber) + valueRPT = std::max(valueRPT, kMirageMinRepeat); + if (valueBITS == 0) + valueBITS = kMirageStateLength; + irsend.sendMirage(dataarray, valueBITS, valueRPT); + return true; + } +# endif +# ifdef IR_ELITESCREENS + if (strcmp(protocol_name, "ELITESCREENS") == 0) { + Log.notice(F("Sending IR signal with %s" CR), protocol_name); + if (valueRPT == repeatIRwNumber) + valueRPT = std::max(valueRPT, kEliteScreensDefaultRepeat); + if (valueBITS == 0) + valueBITS = kEliteScreensBits; + irsend.sendElitescreens(data, valueBITS, valueRPT); + return true; + } +# endif +# ifdef IR_PANASONIC_AC32 + if (strcmp(protocol_name, "PANASONIC_AC32") == 0) { + Log.notice(F("Sending IR signal with %s" CR), protocol_name); + if (valueBITS == 0) + valueBITS = kPioneerBits; + irsend.sendPanasonicAC32(data, valueBITS, valueRPT); + return true; + } +# endif +# ifdef IR_MILESTAG2 + if (strcmp(protocol_name, "MILESTAG2") == 0) { + Log.notice(F("Sending IR signal with %s" CR), protocol_name); + if (valueRPT == repeatIRwNumber) + valueRPT = std::max(valueRPT, kMilesMinRepeat); + if (valueBITS == 0) + valueBITS = kMilesTag2ShotBits; + irsend.sendMilestag2(data, valueBITS, valueRPT); + return true; + } +# endif +# ifdef IR_ECOCLIM + if (strcmp(protocol_name, "ECOCLIM") == 0) { + Log.notice(F("Sending IR signal with %s" CR), protocol_name); + if (valueBITS == 0) + valueBITS = kEcoclimBits; + irsend.sendEcoclim(data, valueBITS, valueRPT); + return true; + } # endif Log.warning(F("Unknown IR protocol" CR)); return false; diff --git a/main/config_IR.h b/main/config_IR.h index 3033bcf..9103701 100644 --- a/main/config_IR.h +++ b/main/config_IR.h @@ -137,6 +137,15 @@ extern void MQTTtoIR(char* topicOri, JsonObject& RFdata); # define IR_MIDEA24 # define IR_ZEPEAL # define IR_SANYO_AC +# define IR_VOLTAS +# define IR_METZ +# define IR_TRANSCOLD +# define IR_TECHNIBEL_AC +# define IR_MIRAGE +# define IR_ELITESCREENS +# define IR_PANASONIC_AC32 +# define IR_MILESTAG2 +# define IR_ECOCLIM #elif __AVR_ATmega2560__ # define IR_COOLIX # define IR_Whynter diff --git a/platformio.ini b/platformio.ini index a579f46..1438b65 100644 --- a/platformio.ini +++ b/platformio.ini @@ -87,7 +87,7 @@ pubsubclient = PubSubClient@2.8 rc-switch = https://github.com/1technophile/rc-switch.git#385a7e0 newremoteswitch = https://github.com/1technophile/NewRemoteSwitch.git#8eb980e ble = https://github.com/h2zero/NimBLE-Arduino.git#1.2.0 -irremoteesp = IRremoteESP8266@2.7.9 +irremoteesp = IRremoteESP8266@2.7.15 irremote = https://github.com/z3t0/Arduino-IRremote.git#1c08a37 lora = https://github.com/sandeepmistry/arduino-LoRa.git#f4a1d27 esppilight = ESPiLight@0.17.0