/* OpenMQTTGateway - ESP8266 or Arduino program for home automation Act as a wifi or ethernet gateway between your 433mhz/infrared IR signal and a MQTT broker Send and receiving command by MQTT This files enables to set your parameter for the infrared gateway Copyright: (c)Florian ROBERT This file is part of OpenMQTTGateway. OpenMQTTGateway is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OpenMQTTGateway is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef config_IR_h #define config_IR_h extern void setupIR(); extern void IRtoMQTT(); extern void MQTTtoIR(char * topicOri, char * datacallback); extern void MQTTtoIR(char * topicOri, JsonObject& RFdata); /*-------------------IR topics & parameters----------------------*/ //IR MQTT Subjects #define subjectGTWIRtoMQTT "/IRtoMQTT" #define subjectIRtoMQTT "/IRtoMQTT" #define subjectMQTTtoIR "/commands/MQTTtoIR" // subject monitored to listen traffic processed by other gateways to store data and avoid ntuple #define subjectMultiGTWIR "+/+/IRtoMQTT" #define IRbitsKey "IRBITS_" // bits will be defined if a subject contains IRbitsKey followed by a value of 2 digits #define IRRptKey "RPT_" // repeats will be defined if a subject contains IRRptKey followed by a value of 1 digit #define repeatIRwMQTT false // do we repeat a received signal by using mqtt #define repeatIRwNumber 0 // default repeat of the signal //#define RawDirectForward false // direct repeat of IR signal with raw data #define RawFrequency 38 // raw frequency sending //#define DumpMode true // uncomment so as to see big dumps of IR codes #define pubIRunknownPrtcl false // key to avoid mqtt publication of unknown IR protocol (set to true if you want to publish unknown protocol) #define PanasonicAddress 0x4004 // Panasonic address (Pre data) #if defined(ESP8266) || defined(ESP32) //IR supported protocols on ESP8266, all supported per default #define IR_GC #define IR_RAW #define IR_COOLIX #define IR_WHYNTER #define IR_LG #define IR_SONY #define IR_DISH #define IR_RC5 #define IR_RC6 #define IR_SHARP #define IR_SAMSUNG #define IR_PANASONIC #define IR_RCMM #define IR_MITSUBISHI #define IR_GICABLE #define IR_MITSUBISHI2 #define IR_LASERTAG #define IR_CARRIER_AC #define IR_MIDEA #define IR_NIKAI #define IR_SHERWOOD #define IR_DENON #define IR_AIWA_RC_T501 #define IR_JVC #define IR_SANYO #define IR_DAIKIN #define IR_KELVINATOR #define IR_MITSUBISHI_AC #define IR_SANYO_LC7461 #define IR_GREE #define IR_ARGO #define IR_TROTEC #define IR_TOSHIBA_AC #define IR_FUJITSU_AC #define IR_MAGIQUEST #define IR_HAIER_AC #define IR_HITACHI_AC #define IR_HITACHI_AC1 #define IR_HITACHI_AC2 #define IR_GICABLE #define IR_HAIER_AC_YRW02 #define IR_WHIRLPOOL_AC #define IR_SAMSUNG_AC #define IR_LUTRON #define IR_ELECTRA_AC #define IR_PANASONIC_AC #define IR_PIONEER #define IR_LG2 #define IR_MWM #define IR_DAIKIN2 #define IR_VESTEL_AC #define IR_SAMSUNG36 #define IR_TCL112AC #define IR_TECO #define IR_LEGOPF #define IR_MITSUBISHI_HEAVY_88 #define IR_MITSUBISHI_HEAVY_152 #define IR_DAIKIN216 #define IR_SHARP_AC #define IR_GOODWEATHER #define IR_INAX #define IR_DAIKIN160 #define IR_NEOCLIMA #define IR_DAIKIN176 #define IR_DAIKIN128 #define IR_AMCOR #define IR_DAIKIN152 #define IR_MITSUBISHI136 #define IR_MITSUBISHI112 #define IR_HITACHI_AC424 #elif __AVR_ATmega2560__ #define IR_COOLIX #define IR_Whynter #define IR_LG #define IR_Sony #define IR_DISH #define IR_RC5 #define IR_Sharp #define IR_SAMSUNG #define IR_Raw #define IR_PANASONIC #else //IR supported protocols on arduino uncomment if you want to send with this protocol, NEC protocol is available per default //#define IR_COOLIX //#define IR_Whynter //#define IR_LG //#define IR_Sony //#define IR_DISH //#define IR_RC5 //#define IR_Sharp //#define IR_SAMSUNG //#define IR_Raw //#define IR_PANASONIC #endif /*-------------------PIN DEFINITIONS----------------------*/ #ifndef IR_RECEIVER_PIN #ifdef ESP8266 #define IR_RECEIVER_PIN 2 //D4 /replace by 4 with sonoff rf bridge #elif ESP32 #define IR_RECEIVER_PIN 26 #elif __AVR_ATmega2560__ #define IR_RECEIVER_PIN 2 // 2 = D2 on arduino mega #else #define IR_RECEIVER_PIN 0 // 0 = D2 on arduino UNO #endif #endif #ifndef IR_EMITTER_PIN #ifdef ESP8266 #define IR_EMITTER_PIN 16 //D0/ replace by 0 (D3) if you use IR LOLIN controller shield /replace by 5 with sonoff rf bridge #elif ESP32 #define IR_EMITTER_PIN 14 #elif __AVR_ATmega2560__ #define IR_EMITTER_PIN 9 #else #define IR_EMITTER_PIN 9 #endif #endif #endif