Fixup callback and loop for Pilight - catches all messages per loop

This commit is contained in:
Paul committed 2018-07-29 18:34:26 +01:00
1 parent 50ddbd7352
commit b733442f00
1 file changed
+14 -37
+14 -37
View File
@@ -32,17 +32,6 @@
ESPiLight rf(RF_EMITTER_PIN); // use -1 to disable transmitter
struct Pilightrxd
{
String protocol;
String deviceID;
String status;
String message;
bool hasNewData;
};
Pilightrxd pilightrd;
void setupPilight(){
#ifndef ZgatewayRF && ZgatewayRF2 //receiving with Pilight is not compatible with ZgatewayRF or RF2 as far as I can tell
rf.setCallback(pilightCallback);
@@ -57,39 +46,27 @@ void setupPilight(){
boolean PilighttoMQTT(){
rf.loop();
if(pilightrd.hasNewData){
pilightrd.hasNewData=false;
trc(F("Rcv. Pilight"));
String MQTTprotocol;
String MQTTdeviceID;
String MQTTmessage;
MQTTprotocol = String(pilightrd.protocol);
MQTTdeviceID = String(pilightrd.deviceID);
MQTTmessage = String(pilightrd.message);
String MQTTPilightstring;
MQTTPilightstring = subjectPilighttoMQTT+String("/")+MQTTprotocol+String("/")+MQTTdeviceID;
trc(F("Adv data PilighttoMQTT"));
client.publish((char *)MQTTPilightstring.c_str(),(char *)MQTTmessage.c_str());
return true;
}
return false;
}
void pilightCallback(const String &protocol, const String &message, int status,
size_t repeats, const String &deviceID) {
if (status == VALID) {
pilightrd.protocol=protocol;
pilightrd.deviceID=deviceID;
pilightrd.status=status;
pilightrd.message=message;
pilightrd.hasNewData=true;
}
trc(F("Rcv. Pilight"));
String MQTTprotocol;
String MQTTdeviceID;
String MQTTmessage;
MQTTprotocol = String(protocol);
MQTTdeviceID = String(deviceID);
MQTTmessage = String(message);
String MQTTPilightstring;
MQTTPilightstring = subjectPilighttoMQTT+String("/")+MQTTprotocol+String("/")+MQTTdeviceID;
trc(F("Adv data PilighttoMQTT"));
client.publish((char *)MQTTPilightstring.c_str(),(char *)MQTTmessage.c_str());
}
}
void MQTTtoPilight(char * topicOri, char * datacallback) {