add send panasonic IR and send MM
#53 sendPanasonic for arduino & ESP8266 sendRCMM for ESP8266 some trace reductions
This commit is contained in:
1 parent
7382e19f67
commit
be7a876dfd
3 files changed
+28
-11
No files matched your search
@@ -113,6 +113,7 @@ RF supported protocols
|
|||||||
#define repeatIRwMQTT false // do we repeat a received signal by using mqtt
|
#define repeatIRwMQTT false // do we repeat a received signal by using mqtt
|
||||||
|
|
||||||
#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)
|
||||||
|
#define PanasonicAddress 0x4004 // Panasonic address (Pre data)
|
||||||
|
|
||||||
#ifdef ESP8266 //IR supported protocols on ESP8266, all supported per default
|
#ifdef ESP8266 //IR supported protocols on ESP8266, all supported per default
|
||||||
#define IR_GC
|
#define IR_GC
|
||||||
@@ -125,6 +126,8 @@ RF supported protocols
|
|||||||
#define IR_RC5
|
#define IR_RC5
|
||||||
#define IR_Sharp
|
#define IR_Sharp
|
||||||
#define IR_SAMSUNG
|
#define IR_SAMSUNG
|
||||||
|
#define IR_PANASONIC
|
||||||
|
#define IR_RCMM
|
||||||
#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_COOLIX
|
//#define IR_COOLIX
|
||||||
//#define IR_Whynter
|
//#define IR_Whynter
|
||||||
@@ -135,6 +138,7 @@ RF supported protocols
|
|||||||
//#define IR_Sharp
|
//#define IR_Sharp
|
||||||
//#define IR_SAMSUNG
|
//#define IR_SAMSUNG
|
||||||
//#define IR_Raw
|
//#define IR_Raw
|
||||||
|
//#define IR_PANASONIC
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*----------------------BT topics-------------------------*/
|
/*----------------------BT topics-------------------------*/
|
||||||
|
|||||||
+17
-4
@@ -67,9 +67,9 @@ boolean IRtoMQTT(){
|
|||||||
trc(rawCode);
|
trc(rawCode);
|
||||||
irrecv.resume(); // Receive the next value
|
irrecv.resume(); // Receive the next value
|
||||||
if (pubIRunknownPrtcl == false && MQTTprotocol == "-1"){ // don't publish unknown IR protocol
|
if (pubIRunknownPrtcl == false && MQTTprotocol == "-1"){ // don't publish unknown IR protocol
|
||||||
trc(F("---don't publish the code unknown protocol---"));
|
trc(F("---no publish unknown protocol---"));
|
||||||
} else if (!isAduplicate(MQTTvalue) && MQTTvalue!=0) {// conditions to avoid duplications of RF -->MQTT
|
} else if (!isAduplicate(MQTTvalue) && MQTTvalue!=0) {// conditions to avoid duplications of RF -->MQTT
|
||||||
trc(F("Sending adv data to MQTT"));
|
trc(F("Adv data IRtoMQTT"));
|
||||||
client.publish(subjectIRtoMQTTprotocol,(char *)MQTTprotocol.c_str());
|
client.publish(subjectIRtoMQTTprotocol,(char *)MQTTprotocol.c_str());
|
||||||
client.publish(subjectIRtoMQTTbits,(char *)MQTTbits.c_str());
|
client.publish(subjectIRtoMQTTbits,(char *)MQTTbits.c_str());
|
||||||
client.publish(subjectIRtoMQTTRaw,(char *)rawCode.c_str());
|
client.publish(subjectIRtoMQTTRaw,(char *)rawCode.c_str());
|
||||||
@@ -78,7 +78,7 @@ boolean IRtoMQTT(){
|
|||||||
trc(value);
|
trc(value);
|
||||||
boolean result = client.publish(subjectIRtoMQTT,(char *)value.c_str());
|
boolean result = client.publish(subjectIRtoMQTT,(char *)value.c_str());
|
||||||
if (repeatIRwMQTT){
|
if (repeatIRwMQTT){
|
||||||
trc(F("Publishing IR so as to repeat it"));
|
trc(F("Publishing IR for repeat"));
|
||||||
client.publish(subjectMQTTtoIR,(char *)value.c_str());
|
client.publish(subjectMQTTtoIR,(char *)value.c_str());
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@@ -238,10 +238,23 @@ void MQTTtoIR(char * topicOri, char * datacallback) {
|
|||||||
signalSent = true;
|
signalSent = true;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef IR_PANASONIC
|
||||||
|
if (strstr(topicOri, "IR_PANASONIC") != NULL){
|
||||||
|
irsend.sendPanasonic(PanasonicAddress, data);
|
||||||
|
signalSent = true;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef IR_RCMM
|
||||||
|
if (strstr(topicOri, "IR_RCMM") != NULL){
|
||||||
|
if (valueBITS == 0) valueBITS = 32;
|
||||||
|
irsend.sendRCMM(data, valueBITS);
|
||||||
|
signalSent = true;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if (signalSent){ // we acknowledge the sending by publishing the value to an acknowledgement topic, for the moment even if it is a signal repetition we acknowledge also
|
if (signalSent){ // we acknowledge the sending by publishing the value to an acknowledgement topic, for the moment even if it is a signal repetition we acknowledge also
|
||||||
boolean result = client.publish(subjectGTWIRtoMQTT, datacallback);
|
boolean result = client.publish(subjectGTWIRtoMQTT, datacallback);
|
||||||
if (result){
|
if (result){
|
||||||
trc(F("Signal sent by IR ack published"));
|
trc(F("MQTTtoIR OK ack published"));
|
||||||
trc(String(data));
|
trc(String(data));
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-7
@@ -43,7 +43,7 @@ void setupRF(){
|
|||||||
boolean RFtoMQTT(){
|
boolean RFtoMQTT(){
|
||||||
|
|
||||||
if (mySwitch.available()){
|
if (mySwitch.available()){
|
||||||
trc(F("Receiving 433Mhz"));
|
trc(F("Receiving RF"));
|
||||||
unsigned long MQTTvalue = 0;
|
unsigned long MQTTvalue = 0;
|
||||||
String MQTTprotocol;
|
String MQTTprotocol;
|
||||||
String MQTTbits;
|
String MQTTbits;
|
||||||
@@ -54,7 +54,7 @@ boolean RFtoMQTT(){
|
|||||||
MQTTlength = String(mySwitch.getReceivedDelay());
|
MQTTlength = String(mySwitch.getReceivedDelay());
|
||||||
mySwitch.resetAvailable();
|
mySwitch.resetAvailable();
|
||||||
if (!isAduplicate(MQTTvalue) && MQTTvalue!=0) {// conditions to avoid duplications of RF -->MQTT
|
if (!isAduplicate(MQTTvalue) && MQTTvalue!=0) {// conditions to avoid duplications of RF -->MQTT
|
||||||
trc(F("Sending advanced signal to MQTT"));
|
trc(F("Adv data RFtoMQTT"));
|
||||||
client.publish(subjectRFtoMQTTprotocol,(char *)MQTTprotocol.c_str());
|
client.publish(subjectRFtoMQTTprotocol,(char *)MQTTprotocol.c_str());
|
||||||
client.publish(subjectRFtoMQTTbits,(char *)MQTTbits.c_str());
|
client.publish(subjectRFtoMQTTbits,(char *)MQTTbits.c_str());
|
||||||
client.publish(subjectRFtoMQTTlength,(char *)MQTTlength.c_str());
|
client.publish(subjectRFtoMQTTlength,(char *)MQTTlength.c_str());
|
||||||
@@ -63,7 +63,7 @@ boolean RFtoMQTT(){
|
|||||||
trc(value);
|
trc(value);
|
||||||
boolean result = client.publish(subjectRFtoMQTT,(char *)value.c_str());
|
boolean result = client.publish(subjectRFtoMQTT,(char *)value.c_str());
|
||||||
if (repeatRFwMQTT){
|
if (repeatRFwMQTT){
|
||||||
trc(F("Publishing IR signal so as to repeat it"));
|
trc(F("Publishing RF for repeat"));
|
||||||
client.publish(subjectMQTTtoRF,(char *)value.c_str());
|
client.publish(subjectMQTTtoRF,(char *)value.c_str());
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@@ -86,7 +86,7 @@ void MQTTtoRF(char * topicOri, char * datacallback) {
|
|||||||
if (pos != -1){
|
if (pos != -1){
|
||||||
pos = pos + +strlen(RFprotocolKey);
|
pos = pos + +strlen(RFprotocolKey);
|
||||||
valuePRT = (topic.substring(pos,pos + 1)).toInt();
|
valuePRT = (topic.substring(pos,pos + 1)).toInt();
|
||||||
trc(F("RF Protocol number:"));
|
trc(F("RF Protocol:"));
|
||||||
trc(String(valuePRT));
|
trc(String(valuePRT));
|
||||||
}
|
}
|
||||||
//We look into the subject to see if a special RF pulselength is defined
|
//We look into the subject to see if a special RF pulselength is defined
|
||||||
@@ -101,12 +101,12 @@ void MQTTtoRF(char * topicOri, char * datacallback) {
|
|||||||
if (pos3 != -1){
|
if (pos3 != -1){
|
||||||
pos3 = pos3 + strlen(RFbitsKey);
|
pos3 = pos3 + strlen(RFbitsKey);
|
||||||
valueBITS = (topic.substring(pos3,pos3 + 2)).toInt();
|
valueBITS = (topic.substring(pos3,pos3 + 2)).toInt();
|
||||||
trc(F("Bits number:"));
|
trc(F("Bits nb:"));
|
||||||
trc(String(valueBITS));
|
trc(String(valueBITS));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((topic == subjectMQTTtoRF) && (valuePRT == 0) && (valuePLSL == 0) && (valueBITS == 0)){
|
if ((topic == subjectMQTTtoRF) && (valuePRT == 0) && (valuePLSL == 0) && (valueBITS == 0)){
|
||||||
trc(F("MQTTtoRF default parameters"));
|
trc(F("MQTTtoRF default"));
|
||||||
mySwitch.setProtocol(1,350);
|
mySwitch.setProtocol(1,350);
|
||||||
mySwitch.send(data, 24);
|
mySwitch.send(data, 24);
|
||||||
// Acknowledgement to the GTWRF topic
|
// Acknowledgement to the GTWRF topic
|
||||||
@@ -126,7 +126,7 @@ void MQTTtoRF(char * topicOri, char * datacallback) {
|
|||||||
// Acknowledgement to the GTWRF topic
|
// Acknowledgement to the GTWRF topic
|
||||||
boolean result = client.publish(subjectGTWRFtoMQTT, datacallback);// we acknowledge the sending by publishing the value to an acknowledgement topic, for the moment even if it is a signal repetition we acknowledge also
|
boolean result = client.publish(subjectGTWRFtoMQTT, datacallback);// we acknowledge the sending by publishing the value to an acknowledgement topic, for the moment even if it is a signal repetition we acknowledge also
|
||||||
if (result){
|
if (result){
|
||||||
trc(F("MQTTtoRF OK and ack published"));
|
trc(F("MQTTtoRF OK ack published"));
|
||||||
trc(String(data));
|
trc(String(data));
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user