code cleanup and improvment (#339)
* replace string by char array comparison * take mac adress from user_config for arduino ethernet shield * remove code for managing HM10 with version < v6xx * add sys measure call for arduino mega * code size decrease and optim
This commit is contained in:
1 parent
afe4678350
commit
c7fe43eb97
5 files changed
+154
-215
No files matched your search
+29
-28
@@ -71,6 +71,8 @@
|
|||||||
#if defined(ESP8266) || defined(ESP32) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__)
|
#if defined(ESP8266) || defined(ESP32) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__)
|
||||||
#define array_size 12
|
#define array_size 12
|
||||||
unsigned long ReceivedSignal[array_size][2] ={{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}};
|
unsigned long ReceivedSignal[array_size][2] ={{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}};
|
||||||
|
//Time used to wait for an interval before checking system measures
|
||||||
|
unsigned long timer_sys_measures = 0;
|
||||||
#else // boards with smaller memory
|
#else // boards with smaller memory
|
||||||
#define array_size 4
|
#define array_size 4
|
||||||
unsigned long ReceivedSignal[array_size][2] ={{0,0},{0,0},{0,0},{0,0}};
|
unsigned long ReceivedSignal[array_size][2] ={{0,0},{0,0},{0,0},{0,0}};
|
||||||
@@ -179,20 +181,6 @@ unsigned long timer_led_receive = 0;
|
|||||||
unsigned long timer_led_send = 0;
|
unsigned long timer_led_send = 0;
|
||||||
unsigned long timer_led_error = 0;
|
unsigned long timer_led_error = 0;
|
||||||
|
|
||||||
//Time used to wait for an interval before checking system measures
|
|
||||||
unsigned long timer_sys_measures = 0;
|
|
||||||
|
|
||||||
//Wifi manager parameters
|
|
||||||
//flag for saving data
|
|
||||||
bool shouldSaveConfig = true;
|
|
||||||
//do we have been connected once to mqtt
|
|
||||||
|
|
||||||
//callback notifying us of the need to save config
|
|
||||||
void saveConfigCallback () {
|
|
||||||
trc("Should save config");
|
|
||||||
shouldSaveConfig = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean reconnect() {
|
boolean reconnect() {
|
||||||
|
|
||||||
// Loop until we're reconnected
|
// Loop until we're reconnected
|
||||||
@@ -444,6 +432,17 @@ void setup_wifi() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#elif defined(ESP8266) && !defined(ESPWifiManualSetup)
|
#elif defined(ESP8266) && !defined(ESPWifiManualSetup)
|
||||||
|
//Wifi manager parameters
|
||||||
|
//flag for saving data
|
||||||
|
bool shouldSaveConfig = true;
|
||||||
|
//do we have been connected once to mqtt
|
||||||
|
|
||||||
|
//callback notifying us of the need to save config
|
||||||
|
void saveConfigCallback () {
|
||||||
|
trc("Should save config");
|
||||||
|
shouldSaveConfig = true;
|
||||||
|
}
|
||||||
|
|
||||||
void setup_wifimanager(){
|
void setup_wifimanager(){
|
||||||
#ifdef cleanFS
|
#ifdef cleanFS
|
||||||
//clean FS, for testing
|
//clean FS, for testing
|
||||||
@@ -704,7 +703,7 @@ void loop()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(ESP8266) || defined(ESP32)
|
#if defined(ESP8266) || defined(ESP32) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__)
|
||||||
void stateMeasures(){
|
void stateMeasures(){
|
||||||
unsigned long now = millis();
|
unsigned long now = millis();
|
||||||
if (now > (timer_sys_measures + TimeBetweenReadingSYS)) {//retriving value of memory ram every TimeBetweenReadingSYS
|
if (now > (timer_sys_measures + TimeBetweenReadingSYS)) {//retriving value of memory ram every TimeBetweenReadingSYS
|
||||||
@@ -715,19 +714,21 @@ void stateMeasures(){
|
|||||||
unsigned long uptime = millis()/1000;
|
unsigned long uptime = millis()/1000;
|
||||||
trc(uptime);
|
trc(uptime);
|
||||||
SYSdata["uptime"] = uptime;
|
SYSdata["uptime"] = uptime;
|
||||||
trc("Remaining memory");
|
#if defined(ESP8266) || defined(ESP32)
|
||||||
uint32_t freeMem;
|
trc("Remaining memory");
|
||||||
freeMem = ESP.getFreeHeap();
|
uint32_t freeMem;
|
||||||
SYSdata["freeMem"] = freeMem;
|
freeMem = ESP.getFreeHeap();
|
||||||
trc(freeMem);
|
SYSdata["freeMem"] = freeMem;
|
||||||
trc("RSSI");
|
trc(freeMem);
|
||||||
long rssi = WiFi.RSSI();
|
trc("RSSI");
|
||||||
SYSdata["rssi"] = rssi;
|
long rssi = WiFi.RSSI();
|
||||||
trc(rssi);
|
SYSdata["rssi"] = rssi;
|
||||||
trc("SSID");
|
trc(rssi);
|
||||||
String SSID = WiFi.SSID();
|
trc("SSID");
|
||||||
SYSdata["SSID"] = SSID;
|
String SSID = WiFi.SSID();
|
||||||
trc(SSID);
|
SYSdata["SSID"] = SSID;
|
||||||
|
trc(SSID);
|
||||||
|
#endif
|
||||||
trc("Activated modules");
|
trc("Activated modules");
|
||||||
String modules = "";
|
String modules = "";
|
||||||
#ifdef ZgatewayRF
|
#ifdef ZgatewayRF
|
||||||
|
|||||||
+104
-150
@@ -173,175 +173,129 @@ Thanks to wolass https://github.com/wolass for suggesting me HM 10 and dinosd ht
|
|||||||
|
|
||||||
#else // arduino or ESP8266 working with HM10/11
|
#else // arduino or ESP8266 working with HM10/11
|
||||||
|
|
||||||
#include <SoftwareSerial.h>
|
#include <SoftwareSerial.h>
|
||||||
|
|
||||||
#define STRING_MSG "OK+DISC:"
|
#define STRING_MSG "OK+DISC:"
|
||||||
#define RESPONSE_MSG "OK+DISIS"
|
#define QUESTION_MSG "AT+DISA?"
|
||||||
#define RESP_END_MSG "OK+DISCE"
|
#define RESPONSE_MSG "OK+DISIS"
|
||||||
#define SETUP_MSG "OK+RESET"
|
#define RESP_END_MSG "OK+DISCE"
|
||||||
|
#define SETUP_MSG "OK+RESET"
|
||||||
|
|
||||||
SoftwareSerial softserial(BT_RX, BT_TX);
|
SoftwareSerial softserial(BT_RX, BT_TX);
|
||||||
|
|
||||||
String returnedString = "";
|
String returnedString = "";
|
||||||
unsigned long timebt = 0;
|
unsigned long timebt = 0;
|
||||||
|
|
||||||
// this struct define which parts of the hexadecimal chain we extract and what to do with these parts
|
// this struct define which parts of the hexadecimal chain we extract and what to do with these parts
|
||||||
struct decompose d[6] = {{"mac",16,12,true},{"typ",28,2,false},{"rsi",30,2,false},{"rdl",32,2,false},{"sty",44,4,true},{"rda",34,60,false}};
|
struct decompose d[6] = {{"mac",16,12,true},{"typ",28,2,false},{"rsi",30,2,false},{"rdl",32,2,false},{"sty",44,4,true},{"rda",34,60,false}};
|
||||||
|
|
||||||
void setupBT() {
|
void setupBT() {
|
||||||
softserial.begin(9600);
|
softserial.begin(9600);
|
||||||
softserial.print(F("AT+ROLE1"));
|
softserial.print(F("AT+ROLE1"));
|
||||||
delay(100);
|
delay(100);
|
||||||
softserial.print(F("AT+IMME1"));
|
softserial.print(F("AT+IMME1"));
|
||||||
delay(100);
|
delay(100);
|
||||||
softserial.print(F("AT+RESET"));
|
softserial.print(F("AT+RESET"));
|
||||||
delay(100);
|
delay(100);
|
||||||
trc(F("ZgatewayBT HM1X setup done "));
|
trc(F("ZgatewayBT HM1X setup done "));
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef ZgatewayBT_v6xx
|
boolean BTtoMQTT() {
|
||||||
#define QUESTION_MSG "AT+DISA?"
|
|
||||||
boolean BTtoMQTT() {
|
|
||||||
|
|
||||||
//extract serial data from module in hexa format
|
//extract serial data from module in hexa format
|
||||||
while (softserial.available() > 0) {
|
while (softserial.available() > 0) {
|
||||||
int a = softserial.read();
|
int a = softserial.read();
|
||||||
if (a < 16) {
|
if (a < 16) {
|
||||||
returnedString = returnedString + "0";
|
returnedString = returnedString + "0";
|
||||||
|
}
|
||||||
|
returnedString = returnedString + String(a,HEX);
|
||||||
}
|
}
|
||||||
returnedString = returnedString + String(a,HEX);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (millis() > (timebt + TimeBtw_Read)) {//retriving data
|
if (millis() > (timebt + TimeBtw_Read)) {//retriving data
|
||||||
timebt = millis();
|
timebt = millis();
|
||||||
#if defined(ESP8266)
|
|
||||||
yield();
|
|
||||||
#endif
|
|
||||||
if (returnedString != "") {
|
|
||||||
size_t pos = 0;
|
|
||||||
while ((pos = returnedString.lastIndexOf(delimiter)) != -1) {
|
|
||||||
#if defined(ESP8266)
|
#if defined(ESP8266)
|
||||||
yield();
|
yield();
|
||||||
#endif
|
#endif
|
||||||
String token = returnedString.substring(pos);
|
if (returnedString != "") {
|
||||||
returnedString.remove(pos,returnedString.length() );
|
size_t pos = 0;
|
||||||
char token_char[token.length()+1];
|
while ((pos = returnedString.lastIndexOf(delimiter)) != -1) {
|
||||||
token.toCharArray(token_char, token.length()+1);
|
#if defined(ESP8266)
|
||||||
trc(token);
|
yield();
|
||||||
if ( token.length() > 60){// we extract data only if we have detailled infos
|
#endif
|
||||||
for(int i =0; i<6;i++)
|
String token = returnedString.substring(pos);
|
||||||
{
|
returnedString.remove(pos,returnedString.length() );
|
||||||
extract_char(token_char,d[i].extract,d[i].start, d[i].len ,d[i].reverse, false);
|
char token_char[token.length()+1];
|
||||||
if (i == 3) d[5].len = (int)strtol(d[i].extract, NULL, 16) * 2; // extracting the length of the rest data
|
token.toCharArray(token_char, token.length()+1);
|
||||||
}
|
trc(token);
|
||||||
|
if ( token.length() > 60){// we extract data only if we have detailled infos
|
||||||
if((strlen(d[0].extract)) == 12) // if a mac adress is detected we publish it
|
for(int i =0; i<6;i++)
|
||||||
{
|
{
|
||||||
trc(F("Creating BLE buffer"));
|
extract_char(token_char,d[i].extract,d[i].start, d[i].len ,d[i].reverse, false);
|
||||||
StaticJsonBuffer<JSON_MSG_BUFFER> jsonBuffer;
|
if (i == 3) d[5].len = (int)strtol(d[i].extract, NULL, 16) * 2; // extracting the length of the rest data
|
||||||
JsonObject& BLEdata = jsonBuffer.createObject();
|
|
||||||
#ifdef subjectHomePresence
|
|
||||||
String HomePresenceId;
|
|
||||||
for (int i = 0; i<12; i++){
|
|
||||||
HomePresenceId += String(d[0].extract[i]);
|
|
||||||
if(((i-1) % 2 == 0) && (i!=11)) HomePresenceId += ":";
|
|
||||||
}
|
}
|
||||||
trc(F("HomePresenceId"));
|
|
||||||
trc(HomePresenceId);
|
if((strlen(d[0].extract)) == 12) // if a mac adress is detected we publish it
|
||||||
BLEdata.set("id", (char *)HomePresenceId.c_str());
|
{
|
||||||
#endif
|
trc(F("Creating BLE buffer"));
|
||||||
strupp(d[0].extract);
|
StaticJsonBuffer<JSON_MSG_BUFFER> jsonBuffer;
|
||||||
String topic = subjectBTtoMQTT + String(d[0].extract);
|
JsonObject& BLEdata = jsonBuffer.createObject();
|
||||||
int rssi = (int)strtol(d[2].extract, NULL, 16) - 256;
|
#ifdef subjectHomePresence
|
||||||
BLEdata.set("rssi", (int)rssi);
|
String HomePresenceId;
|
||||||
#ifdef subjectHomePresence
|
for (int i = 0; i<12; i++){
|
||||||
haRoomPresence(BLEdata);// this device has an rssi in consequence we can use it for home assistant room presence component
|
HomePresenceId += String(d[0].extract[i]);
|
||||||
#endif
|
if(((i-1) % 2 == 0) && (i!=11)) HomePresenceId += ":";
|
||||||
String Service_data(d[5].extract);
|
}
|
||||||
Service_data = Service_data.substring(14);
|
trc(F("HomePresenceId"));
|
||||||
#ifdef pubBLEServiceData
|
trc(HomePresenceId);
|
||||||
BLEdata.set("servicedata", (char *)Service_data.c_str());
|
BLEdata.set("id", (char *)HomePresenceId.c_str());
|
||||||
#endif
|
#endif
|
||||||
pub((char *)topic.c_str(),BLEdata);
|
strupp(d[0].extract);
|
||||||
if (strcmp(d[4].extract, "fe95") == 0) {
|
String topic = subjectBTtoMQTT + String(d[0].extract);
|
||||||
int pos = -1;
|
int rssi = (int)strtol(d[2].extract, NULL, 16) - 256;
|
||||||
pos = strpos(d[5].extract,"209800");
|
BLEdata.set("rssi", (int)rssi);
|
||||||
if (pos != -1) {
|
#ifdef subjectHomePresence
|
||||||
trc("mi flora data reading");
|
haRoomPresence(BLEdata);// this device has an rssi in consequence we can use it for home assistant room presence component
|
||||||
boolean result = process_data(pos - 38,(char *)Service_data.c_str(),d[0].extract);
|
#endif
|
||||||
}
|
String Service_data(d[5].extract);
|
||||||
pos = -1;
|
Service_data = Service_data.substring(14);
|
||||||
pos = strpos(d[5].extract,"20aa01");
|
#ifdef pubBLEServiceData
|
||||||
if (pos != -1){
|
BLEdata.set("servicedata", (char *)Service_data.c_str());
|
||||||
trc("mi jia data reading");
|
#endif
|
||||||
boolean result = process_data(pos - 40,(char *)Service_data.c_str(),d[0].extract);
|
pub((char *)topic.c_str(),BLEdata);
|
||||||
}
|
if (strcmp(d[4].extract, "fe95") == 0) {
|
||||||
return true;
|
int pos = -1;
|
||||||
}
|
pos = strpos(d[5].extract,"209800");
|
||||||
|
if (pos != -1) {
|
||||||
|
trc("mi flora data reading");
|
||||||
|
boolean result = process_data(pos - 38,(char *)Service_data.c_str(),d[0].extract);
|
||||||
|
}
|
||||||
|
pos = -1;
|
||||||
|
pos = strpos(d[5].extract,"20aa01");
|
||||||
|
if (pos != -1){
|
||||||
|
trc("mi jia data reading");
|
||||||
|
boolean result = process_data(pos - 40,(char *)Service_data.c_str(),d[0].extract);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
returnedString = ""; //init data string
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
softserial.print(F(QUESTION_MSG));
|
||||||
returnedString = ""; //init data string
|
return false;
|
||||||
|
}else{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
softserial.print(F(QUESTION_MSG));
|
|
||||||
return false;
|
|
||||||
}else{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void strupp(char* beg)
|
|
||||||
{
|
|
||||||
while (*beg = toupper(*beg))
|
|
||||||
++beg;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef ZgatewayBT_v6xx
|
|
||||||
#define QUESTION_MSG "AT+DISI?"
|
|
||||||
boolean BTtoMQTT() {
|
|
||||||
while (softserial.available() > 0) {
|
|
||||||
#if defined(ESP8266)
|
|
||||||
yield();
|
|
||||||
#endif
|
|
||||||
String discResult = softserial.readString();
|
|
||||||
if (discResult.indexOf(STRING_MSG)>=0){
|
|
||||||
discResult.replace(RESPONSE_MSG,"");
|
|
||||||
discResult.replace(RESP_END_MSG,"");
|
|
||||||
float device_number = discResult.length()/78.0;
|
|
||||||
if (device_number == (int)device_number){ // to avoid publishing partial values we detect if the serial data has been fully read = a multiple of 78
|
|
||||||
trc(F("Sending BT data to MQTT HM1X Version<v6xx"));
|
|
||||||
#if defined(ESP8266)
|
|
||||||
yield();
|
|
||||||
#endif
|
|
||||||
for (int i=0;i<(int)device_number;i++){
|
|
||||||
String onedevice = discResult.substring(0,78);
|
|
||||||
onedevice.replace(STRING_MSG,"");
|
|
||||||
String mac = onedevice.substring(53,65);
|
|
||||||
pub(subjectBTtoMQTT + mac,onedevice.substring(66,70));
|
|
||||||
discResult = discResult.substring(78);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (discResult.indexOf(SETUP_MSG)>=0)
|
|
||||||
{
|
|
||||||
trc(F("Connection OK to HM-10"));
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (millis() > (timebt + TimeBtw_Read)) {//retriving value of adresses and rssi
|
|
||||||
timebt = millis();
|
|
||||||
#if defined(ESP8266)
|
|
||||||
yield();
|
|
||||||
#endif
|
|
||||||
softserial.print(F(QUESTION_MSG));
|
|
||||||
|
|
||||||
}
|
void strupp(char* beg)
|
||||||
return false;
|
{
|
||||||
}
|
while (*beg = toupper(*beg))
|
||||||
#endif
|
++beg;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
boolean process_data(int offset, char * rest_data, char * mac_adress){
|
boolean process_data(int offset, char * rest_data, char * mac_adress){
|
||||||
|
|||||||
+1
-3
@@ -480,9 +480,7 @@ void IRtoMQTT(){
|
|||||||
#ifdef jsonPublishing
|
#ifdef jsonPublishing
|
||||||
void MQTTtoIR(char * topicOri, JsonObject& IRdata) {
|
void MQTTtoIR(char * topicOri, JsonObject& IRdata) {
|
||||||
|
|
||||||
String topic = topicOri;
|
if (strcmp(topicOri,subjectMQTTtoIR) == 0){
|
||||||
|
|
||||||
if (topic == subjectMQTTtoIR) {
|
|
||||||
trc(F("MQTTtoIR json data analysis"));
|
trc(F("MQTTtoIR json data analysis"));
|
||||||
unsigned long data = IRdata["value"];
|
unsigned long data = IRdata["value"];
|
||||||
const char * raw = IRdata["raw"];
|
const char * raw = IRdata["raw"];
|
||||||
|
|||||||
+10
-29
@@ -41,13 +41,12 @@ void setupRF(){
|
|||||||
mySwitch.enableReceive(RF_RECEIVER_PIN);
|
mySwitch.enableReceive(RF_RECEIVER_PIN);
|
||||||
trc(F("RF_RECEIVER_PIN "));
|
trc(F("RF_RECEIVER_PIN "));
|
||||||
trc(RF_RECEIVER_PIN);
|
trc(RF_RECEIVER_PIN);
|
||||||
trc(F("ZgatewayRF setup done "));
|
trc(F("RF setup ok"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void RFtoMQTT(){
|
void RFtoMQTT(){
|
||||||
|
|
||||||
if (mySwitch.available()){
|
if (mySwitch.available()){
|
||||||
trc(F("Creating RF buffer"));
|
|
||||||
StaticJsonBuffer<JSON_MSG_BUFFER> jsonBuffer;
|
StaticJsonBuffer<JSON_MSG_BUFFER> jsonBuffer;
|
||||||
JsonObject& RFdata = jsonBuffer.createObject();
|
JsonObject& RFdata = jsonBuffer.createObject();
|
||||||
trc(F("Rcv. RF"));
|
trc(F("Rcv. RF"));
|
||||||
@@ -68,13 +67,12 @@ void RFtoMQTT(){
|
|||||||
|
|
||||||
unsigned long MQTTvalue = RFdata.get<unsigned long>("value");
|
unsigned long MQTTvalue = RFdata.get<unsigned long>("value");
|
||||||
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("Adv data RFtoMQTT"));
|
|
||||||
#ifdef ZmqttDiscovery //component creation for HA
|
#ifdef ZmqttDiscovery //component creation for HA
|
||||||
RFtoMQTTdiscovery(MQTTvalue);
|
RFtoMQTTdiscovery(MQTTvalue);
|
||||||
#endif
|
#endif
|
||||||
pub(subjectRFtoMQTT,RFdata);
|
pub(subjectRFtoMQTT,RFdata);
|
||||||
if (repeatRFwMQTT){
|
if (repeatRFwMQTT){
|
||||||
trc(F("Publish RF for repeat"));
|
trc(F("Pub RF for rpt"));
|
||||||
pub(subjectMQTTtoRF,RFdata);
|
pub(subjectMQTTtoRF,RFdata);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -159,34 +157,17 @@ void MQTTtoRF(char * topicOri, char * datacallback) {
|
|||||||
void MQTTtoRF(char * topicOri, JsonObject& RFdata) { // json object decoding
|
void MQTTtoRF(char * topicOri, JsonObject& RFdata) { // json object decoding
|
||||||
|
|
||||||
if (strcmp(topicOri,subjectMQTTtoRF) == 0){
|
if (strcmp(topicOri,subjectMQTTtoRF) == 0){
|
||||||
trc(F("MQTTtoRF json data analysis"));
|
trc(F("MQTTtoRF json analysis"));
|
||||||
unsigned long data = RFdata["value"];
|
unsigned long data = RFdata["value"];
|
||||||
if (data != 0) {
|
if (data != 0) {
|
||||||
trc(F("MQTTtoRF data ok"));
|
int valuePRT = RFdata["protocol"]|1;
|
||||||
int valuePRT = RFdata["protocol"];
|
int valuePLSL = RFdata["delay"]|350;
|
||||||
int valuePLSL = RFdata["delay"];
|
int valueBITS = RFdata["length"]|24;
|
||||||
int valueBITS = RFdata["length"];
|
mySwitch.setProtocol(valuePRT,valuePLSL);
|
||||||
if ((valuePRT == 0) && (valuePLSL == 0) && (valueBITS == 0)){
|
mySwitch.send(data, valueBITS);
|
||||||
trc(F("MQTTtoRF dflt"));
|
pub(subjectGTWRFtoMQTT, RFdata);// 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
|
||||||
mySwitch.setProtocol(1,350);
|
|
||||||
mySwitch.send(data, 24);
|
|
||||||
// Acknowledgement to the GTWRF topic
|
|
||||||
pub(subjectGTWRFtoMQTT, RFdata);
|
|
||||||
} else if ((valuePRT != 0) || (valuePLSL != 0)|| (valueBITS != 0)){
|
|
||||||
trc(F("MQTTtoRF usr par."));
|
|
||||||
if (valuePRT == 0) valuePRT = 1;
|
|
||||||
if (valuePLSL == 0) valuePLSL = 350;
|
|
||||||
if (valueBITS == 0) valueBITS = 24;
|
|
||||||
trc(valuePRT);
|
|
||||||
trc(valuePLSL);
|
|
||||||
trc(valueBITS);
|
|
||||||
mySwitch.setProtocol(valuePRT,valuePLSL);
|
|
||||||
mySwitch.send(data, valueBITS);
|
|
||||||
// Acknowledgement to the GTWRF topic
|
|
||||||
pub(subjectGTWRFtoMQTT, RFdata);// 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
|
|
||||||
}
|
|
||||||
}else{
|
}else{
|
||||||
trc(F("MQTTtoRF Fail reading from json"));
|
trc(F("MQTTtoRF Fail read json"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-5
@@ -386,13 +386,18 @@ void createDiscovery(char * sensor_type,
|
|||||||
String getMacAddress()
|
String getMacAddress()
|
||||||
{
|
{
|
||||||
uint8_t baseMac[6];
|
uint8_t baseMac[6];
|
||||||
#ifdef ESP8266
|
|
||||||
WiFi.macAddress(baseMac);
|
|
||||||
#else
|
|
||||||
esp_read_mac(baseMac, ESP_MAC_WIFI_STA);
|
|
||||||
#endif
|
|
||||||
char baseMacChr[13] = {0};
|
char baseMacChr[13] = {0};
|
||||||
|
#if defined(ESP8266)
|
||||||
|
WiFi.macAddress(baseMac);
|
||||||
sprintf(baseMacChr, "%02X%02X%02X%02X%02X%02X", baseMac[0], baseMac[1], baseMac[2], baseMac[3], baseMac[4], baseMac[5]);
|
sprintf(baseMacChr, "%02X%02X%02X%02X%02X%02X", baseMac[0], baseMac[1], baseMac[2], baseMac[3], baseMac[4], baseMac[5]);
|
||||||
|
#elif defined(ESP32)
|
||||||
|
esp_read_mac(baseMac, ESP_MAC_WIFI_STA);
|
||||||
|
sprintf(baseMacChr, "%02X%02X%02X%02X%02X%02X", baseMac[0], baseMac[1], baseMac[2], baseMac[3], baseMac[4], baseMac[5]);
|
||||||
|
#else
|
||||||
|
sprintf(baseMacChr, "%02X%02X%02X%02X%02X%02X", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
return String(baseMacChr);
|
return String(baseMacChr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user