1 parent
3b5c9355ea
commit
8e033c093a
2 files changed
+42
-3
No files matched your search
@@ -105,6 +105,7 @@ RF supported protocols
|
|||||||
#define pubIRunknownPrtcl false // key to avoid mqtt publication of unknown IR protocol (set to true if you want to publish unknown protocol)
|
#define pubIRunknownPrtcl false // key to avoid mqtt publication of unknown IR protocol (set to true if you want to publish unknown protocol)
|
||||||
|
|
||||||
#ifdef ESP8266 //IR supported protocols on ESP8266, all supported per default
|
#ifdef ESP8266 //IR supported protocols on ESP8266, all supported per default
|
||||||
|
#define IR_Raw
|
||||||
#define IR_COOLIX
|
#define IR_COOLIX
|
||||||
#define IR_Whynter
|
#define IR_Whynter
|
||||||
#define IR_LG
|
#define IR_LG
|
||||||
@@ -114,6 +115,7 @@ RF supported protocols
|
|||||||
#define IR_Sharp
|
#define IR_Sharp
|
||||||
#define IR_SAMSUNG
|
#define IR_SAMSUNG
|
||||||
#else //IR supported protocols on arduino uncomment if you want to send with this protocol, NEC protocol is available per default
|
#else //IR supported protocols on arduino uncomment if you want to send with this protocol, NEC protocol is available per default
|
||||||
|
//#define IR_Raw
|
||||||
//#define IR_COOLIX
|
//#define IR_COOLIX
|
||||||
//#define IR_Whynter
|
//#define IR_Whynter
|
||||||
//#define IR_LG
|
//#define IR_LG
|
||||||
|
|||||||
+40
-3
@@ -75,11 +75,48 @@ boolean IRtoMQTT(){
|
|||||||
|
|
||||||
void MQTTtoIR(char * topicOri, char * datacallback) {
|
void MQTTtoIR(char * topicOri, char * datacallback) {
|
||||||
|
|
||||||
unsigned long data = strtoul(datacallback, NULL, 10); // we will not be able to pass values > 4294967295
|
|
||||||
|
|
||||||
// IR DATA ANALYSIS
|
// IR DATA ANALYSIS
|
||||||
//send received MQTT value by IR signal (example of signal sent data = 1086296175)
|
//send received MQTT value by IR signal
|
||||||
boolean signalSent = false;
|
boolean signalSent = false;
|
||||||
|
unsigned long data = 0;
|
||||||
|
String strcallback = String(datacallback);
|
||||||
|
trc(String(datacallback));
|
||||||
|
int s = strcallback.length();
|
||||||
|
//number of "," value count
|
||||||
|
int count = 0;
|
||||||
|
for(int i = 0; i < s; i++)
|
||||||
|
{
|
||||||
|
if (datacallback[i] == ',') {
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(count == 0){
|
||||||
|
data = strtoul(datacallback, NULL, 10); // standard sending with unsigned long, we will not be able to pass values > 4294967295
|
||||||
|
}
|
||||||
|
else if(strstr(topicOri, "IR_Raw") != NULL){ // sending raw data from https://irdb.globalcache.com
|
||||||
|
trc("IR_Raw");
|
||||||
|
//buffer allocation from char datacallback
|
||||||
|
unsigned int GC[count+1];
|
||||||
|
String value = "";
|
||||||
|
int j = 0;
|
||||||
|
for(int i = 0; i < s; i++)
|
||||||
|
{
|
||||||
|
if (datacallback[i] != ',') {
|
||||||
|
value = value + String(datacallback[i]);
|
||||||
|
}
|
||||||
|
if ((datacallback[i] == ',') || (i == s - 1))
|
||||||
|
{
|
||||||
|
GC[j]= value.toInt();
|
||||||
|
value = "";
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#ifdef IR_Raw
|
||||||
|
irsend.sendGC(GC, j);
|
||||||
|
signalSent = true;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef ESP8266 // send coolix not available for arduino IRRemote library
|
#ifdef ESP8266 // send coolix not available for arduino IRRemote library
|
||||||
#ifdef IR_COOLIX
|
#ifdef IR_COOLIX
|
||||||
if (strstr(topicOri, "IR_COOLIX") != NULL){
|
if (strstr(topicOri, "IR_COOLIX") != NULL){
|
||||||
|
|||||||
Reference in new issue
Block a user