mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-25 11:46:31 +00:00
[EQ3-TRV] View some values in WebUI (#20487)
* [EQ3-TRV] View some values in WebUI - View some values in WebUI - code cleanup * [EQ3-TRV] Remove lines
This commit is contained in:
parent
be54104676
commit
f14ee6415b
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Invoer"
|
||||
#define D_DEVICE_OUTPUT "Uitvoer"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Вход"
|
||||
#define D_DEVICE_OUTPUT "Изход"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Input"
|
||||
#define D_DEVICE_OUTPUT "Output"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Input"
|
||||
#define D_DEVICE_OUTPUT "Output"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Eingang"
|
||||
#define D_DEVICE_OUTPUT "Ausgang"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Solltemperatur"
|
||||
#define D_THERMOSTAT_SENSOR "Aktuelle Temperatur"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Input"
|
||||
#define D_DEVICE_OUTPUT "Output"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Input"
|
||||
#define D_DEVICE_OUTPUT "Output"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Entrada"
|
||||
#define D_DEVICE_OUTPUT "Salida"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Entrée"
|
||||
#define D_DEVICE_OUTPUT "Sortie"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Yngong"
|
||||
#define D_DEVICE_OUTPUT "Útgong"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Input"
|
||||
#define D_DEVICE_OUTPUT "Output"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Bemenet"
|
||||
#define D_DEVICE_OUTPUT "Kimenet"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Ingresso"
|
||||
#define D_DEVICE_OUTPUT "Uscita"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Termostato"
|
||||
#define D_THERMOSTAT_SET_POINT "Temperatura impostata"
|
||||
#define D_THERMOSTAT_SENSOR "Temperatura attuale"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "입력"
|
||||
#define D_DEVICE_OUTPUT "출력"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Ingang"
|
||||
#define D_DEVICE_OUTPUT "Uitgang"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Wejście"
|
||||
#define D_DEVICE_OUTPUT "Wyjście"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Entrada"
|
||||
#define D_DEVICE_OUTPUT "Saída"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Entrada"
|
||||
#define D_DEVICE_OUTPUT "Saída"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Intrare"
|
||||
#define D_DEVICE_OUTPUT "Ieșire"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -549,7 +549,7 @@
|
||||
#define D_DEVICE_INPUT "Вход"
|
||||
#define D_DEVICE_OUTPUT "Выход"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Input"
|
||||
#define D_DEVICE_OUTPUT "Output"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Input"
|
||||
#define D_DEVICE_OUTPUT "Output"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Input"
|
||||
#define D_DEVICE_OUTPUT "Output"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Input"
|
||||
#define D_DEVICE_OUTPUT "Output"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Đầu vào"
|
||||
#define D_DEVICE_OUTPUT "Đầu ra"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "Input"
|
||||
#define D_DEVICE_OUTPUT "Output"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -548,7 +548,7 @@
|
||||
#define D_DEVICE_INPUT "輸入"
|
||||
#define D_DEVICE_OUTPUT "輸出"
|
||||
|
||||
// xdrv_39_thermostat.ino
|
||||
// xdrv_39_thermostat.ino, xdrv_85_esp32_ble_eq3_trv.ino
|
||||
#define D_THERMOSTAT "Thermostat"
|
||||
#define D_THERMOSTAT_SET_POINT "Set Point Temperature"
|
||||
#define D_THERMOSTAT_SENSOR "Current Temperature"
|
||||
|
@ -19,13 +19,13 @@
|
||||
--------------------------------------------------------------------------------------------
|
||||
Version yyyymmdd Action Description
|
||||
--------------------------------------------------------------------------------------------
|
||||
1.0.1.0 20240113 publish - Add some values to WebUI; code cleanup
|
||||
1.0.0.0 20210910 publish - renamed to xdrv_85, and checked with TAS latest dev branch
|
||||
0.0.0.0 20201213 created - initial version
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
|
||||
Commands:
|
||||
e.g.
|
||||
trv 001A22092EE0 settemp 22.5
|
||||
@ -118,12 +118,8 @@ pin.append(x)
|
||||
x = str((ord(serialno[0]) - ord('A') ^ ord(serialno[6]) - ord('0')) % 10)
|
||||
pin.append(x)
|
||||
print("".join(pin))
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
//#define VSCODE_DEV
|
||||
|
||||
#ifdef VSCODE_DEV
|
||||
@ -172,7 +168,6 @@ void (*const EQ3_Commands[])(void) PROGMEM = {
|
||||
&CmndTrvHideFailedPoll
|
||||
};
|
||||
|
||||
|
||||
const char *cmdnames[] = {
|
||||
"poll",
|
||||
"raw",
|
||||
@ -219,6 +214,9 @@ struct eq3_device_tag{
|
||||
uint8_t lastStatusLen;
|
||||
uint32_t lastStatusTime; // in utc
|
||||
uint8_t nextDiscoveryData;
|
||||
float TargetTemp;
|
||||
uint8_t DutyCycle;
|
||||
bool Battery;
|
||||
} eq3_device_t;
|
||||
|
||||
/*********************************************************************************************\
|
||||
@ -300,8 +298,6 @@ char *topicPrefix(int prefix, const uint8_t *addr, int useAlias){
|
||||
return stopic;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// return 0+ if we find the addr has one of our listed prefixes
|
||||
// return -1 if we don't recognise the mac
|
||||
int matchPrefix(const uint8_t *addr){
|
||||
@ -313,19 +309,18 @@ int matchPrefix(const uint8_t *addr){
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
bool EQ3Operation(const uint8_t *MAC, const uint8_t *data, int datalen, int cmdtype, int retries_in = 0) {
|
||||
BLE_ESP32::generic_sensor_t *op = nullptr;
|
||||
|
||||
// ALWAYS use this function to create a new one.
|
||||
int res = BLE_ESP32::newOperation(&op);
|
||||
if (!res){
|
||||
AddLog(LOG_LEVEL_ERROR,PSTR("EQ3 %s:Can't get a newOperation from BLE"), addrStr(MAC, cmdtype & 0x80));
|
||||
AddLog(LOG_LEVEL_ERROR, PSTR("EQ3: %s: Can't get a newOperation from BLE"), addrStr(MAC, cmdtype & 0x80));
|
||||
retries = 0;
|
||||
return 0;
|
||||
} else {
|
||||
#ifdef EQ3_DEBUG
|
||||
AddLog(LOG_LEVEL_DEBUG,PSTR("EQ3 %s:got a newOperation from BLE"), addrStr(MAC, cmdtype & 0x80));
|
||||
AddLog(LOG_LEVEL_DEBUG, PSTR("EQ3: %s: Got a newOperation from BLE"), addrStr(MAC, cmdtype & 0x80));
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -354,7 +349,7 @@ bool EQ3Operation(const uint8_t *MAC, const uint8_t *data, int datalen, int cmdt
|
||||
if (!res){
|
||||
// if it fails to add to the queue, do please delete it
|
||||
BLE_ESP32::freeOperation(&op);
|
||||
AddLog(LOG_LEVEL_ERROR,PSTR("EQ3 %s:Failed to queue new operation - deleted"), addrStr(MAC, cmdtype & 0x80));
|
||||
AddLog(LOG_LEVEL_ERROR, PSTR("EQ3: %s: Failed to queue new operation - deleted"), addrStr(MAC, cmdtype & 0x80));
|
||||
retries = 0;
|
||||
} else {
|
||||
if (retries_in){
|
||||
@ -372,11 +367,11 @@ int EQ3DoOp(){
|
||||
if (EQ3Operation(op->addr, op->towrite, op->writelen, op->cmdtype, EQ3Retries)){
|
||||
opQueue.pop_front();
|
||||
opInProgress = 1;
|
||||
AddLog(LOG_LEVEL_DEBUG, PSTR("EQ3 %s:Op dequeued len now %d"), addrStr(op->addr, (op->cmdtype & 0x80)), opQueue.size());
|
||||
AddLog(LOG_LEVEL_DEBUG, PSTR("EQ3: %s: Op dequeued len now %d"), addrStr(op->addr, (op->cmdtype & 0x80)), opQueue.size());
|
||||
delete op;
|
||||
return 1;
|
||||
} else {
|
||||
AddLog(LOG_LEVEL_ERROR, PSTR("EQ3 %s:Op BLE could not start op queue len %d"), addrStr(op->addr, (op->cmdtype & 0x80)), opQueue.size());
|
||||
AddLog(LOG_LEVEL_ERROR, PSTR("EQ3: %s: Op BLE could not start op queue len %d"), addrStr(op->addr, (op->cmdtype & 0x80)), opQueue.size());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -391,7 +386,7 @@ int EQ3QueueOp(const uint8_t *MAC, const uint8_t *data, int datalen, int cmdtype
|
||||
newop->cmdtype = cmdtype | (useAlias?0x80:0);
|
||||
opQueue.push_back(newop);
|
||||
int qlen = opQueue.size();
|
||||
AddLog(LOG_LEVEL_DEBUG, PSTR("EQ3 %s: Op queued len now %d"), addrStr(newop->addr, (newop->cmdtype & 0x80)), qlen);
|
||||
AddLog(LOG_LEVEL_DEBUG, PSTR("EQ3: %s: Op queued len now %d"), addrStr(newop->addr, (newop->cmdtype & 0x80)), qlen);
|
||||
EQ3DoOp();
|
||||
return qlen;
|
||||
}
|
||||
@ -463,8 +458,10 @@ int EQ3ParseOp(BLE_ESP32::generic_sensor_t *op, bool success, int retries){
|
||||
|
||||
if ((statlen >= 6) && (status[0] == 2) && (status[1] == 1)) {
|
||||
ResponseAppend_P(PSTR(",\"stattime\":%u"), stattime);
|
||||
ResponseAppend_P(PSTR(",\"temp\":%2.1f"), ((float)status[5])/2);
|
||||
ResponseAppend_P(PSTR(",\"posn\":%d"), status[3]);
|
||||
eq3->TargetTemp = (float)status[5] / 2;
|
||||
ResponseAppend_P(PSTR(",\"temp\":%2.1f"), eq3->TargetTemp);
|
||||
eq3->DutyCycle = status[3];
|
||||
ResponseAppend_P(PSTR(",\"posn\":%d"), eq3->DutyCycle);
|
||||
int stat = status[2];
|
||||
ResponseAppend_P(PSTR(",\"mode\":"));
|
||||
switch (stat & 3){
|
||||
@ -503,7 +500,8 @@ int EQ3ParseOp(BLE_ESP32::generic_sensor_t *op, bool success, int retries){
|
||||
ResponseAppend_P(PSTR(",\"dst\":\"%s\""), (stat & 8) ? "set" : "unset");
|
||||
ResponseAppend_P(PSTR(",\"window\":\"%s\""), (stat & 16) ? "open" : "closed");
|
||||
ResponseAppend_P(PSTR(",\"state\":\"%s\""), (stat & 32) ? "locked" : "unlocked");
|
||||
ResponseAppend_P(PSTR(",\"battery\":\"%s\""), (stat & 128)?"LOW":"GOOD");
|
||||
eq3->Battery = stat & 128;
|
||||
ResponseAppend_P(PSTR(",\"battery\":\"%s\""), eq3->Battery ? "LOW" : "GOOD");
|
||||
}
|
||||
|
||||
if ((statlen >= 10) && (status[0] == 2) && (status[1] == 1)){
|
||||
@ -579,7 +577,7 @@ int EQ3ParseOp(BLE_ESP32::generic_sensor_t *op, bool success, int retries){
|
||||
// it IS a poll command
|
||||
if (EQ3HideFailedPoll){
|
||||
if (!success){
|
||||
AddLog(LOG_LEVEL_DEBUG, PSTR("EQ3 %s poll fail not sent because EQ3HideFailedPoll"), addrStr(addrev));
|
||||
AddLog(LOG_LEVEL_DEBUG, PSTR("EQ3: %s: Poll fail not sent because EQ3HideFailedPoll"), addrStr(addrev));
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@ -605,17 +603,17 @@ int EQ3GenericOpCompleteFn(BLE_ESP32::generic_sensor_t *op){
|
||||
|
||||
if (EQ3Operation(addrev, op->dataToWrite, op->writelen, (int)op->context)){
|
||||
//EQ3ParseOp(op, false, retries);
|
||||
AddLog(LOG_LEVEL_ERROR,PSTR("EQ3 %s: trv operation failed - retrying %d"), addrStr(addrev), op->state);
|
||||
AddLog(LOG_LEVEL_ERROR, PSTR("EQ3: %s: trv operation failed - retrying %d"), addrStr(addrev), op->state);
|
||||
opInProgress = 1;
|
||||
} else {
|
||||
retries = 0;
|
||||
EQ3ParseOp(op, false, 0);
|
||||
AddLog(LOG_LEVEL_ERROR,PSTR("EQ3 %s: trv operation failed to send op %d"), addrStr(addrev), op->state);
|
||||
AddLog(LOG_LEVEL_ERROR, PSTR("EQ3: %s: trv operation failed to send op %d"), addrStr(addrev), op->state);
|
||||
}
|
||||
} else {
|
||||
retries = 0;
|
||||
EQ3ParseOp(op, false, 0);
|
||||
AddLog(LOG_LEVEL_ERROR,PSTR("EQ3 %s: trv operation failed - no more retries %d"), addrStr(addrev), op->state);
|
||||
AddLog(LOG_LEVEL_ERROR, PSTR("EQ3: %s: trv operation failed - no more retries %d"), addrStr(addrev), op->state);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -757,12 +755,12 @@ int TaskEQ3AddDevice(int8_t RSSI, const uint8_t* addr, char *serial){
|
||||
}
|
||||
|
||||
for(i = 0; i < EQ3_NUM_DEVICESLOTS; i++) {
|
||||
if(memcmp(addr,EQ3Devices[i].addr,6)==0){
|
||||
if(!memcmp(addr, EQ3Devices[i].addr, 6)) {
|
||||
break;
|
||||
}
|
||||
if (EQ3Devices[i].timeoutTime && (EQ3Devices[i].timeoutTime < now)) {
|
||||
#ifdef EQ3_DEBUG
|
||||
AddLog(LOG_LEVEL_DEBUG,PSTR("EQ3 %s timeout at %d"), addrStr(EQ3Devices[i].addr), i);
|
||||
AddLog(LOG_LEVEL_DEBUG, PSTR("EQ3: %s: timeout at %d"), addrStr(EQ3Devices[i].addr), i);
|
||||
#endif
|
||||
EQ3Devices[i].timeoutTime = 0L;
|
||||
}
|
||||
@ -777,14 +775,14 @@ int TaskEQ3AddDevice(int8_t RSSI, const uint8_t* addr, char *serial){
|
||||
if (free >= 0){
|
||||
i = free;
|
||||
} else {
|
||||
AddLog(LOG_LEVEL_ERROR,PSTR("EQ3 lost %s: > %d devices"), addrStr(addr), EQ3_NUM_DEVICESLOTS);
|
||||
AddLog(LOG_LEVEL_ERROR, PSTR("EQ3: %s: lost > %d devices"), addrStr(addr), EQ3_NUM_DEVICESLOTS);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef EQ3_DEBUG
|
||||
if (!EQ3Devices[i].timeoutTime)
|
||||
AddLog(LOG_LEVEL_INFO,PSTR("EQ3 %s: added at %d"), addrStr(addr), i);
|
||||
AddLog(LOG_LEVEL_INFO, PSTR("EQ3: %s: added at %d"), addrStr(addr), i);
|
||||
#endif
|
||||
|
||||
EQ3Devices[i].timeoutTime = now + (1000L*1000L)*EQ3_TIMEOUT;
|
||||
@ -844,7 +842,7 @@ int TaskEQ3advertismentCallback(BLE_ESP32::ble_advertisment_t *pStruct)
|
||||
if (!found) return 0;
|
||||
|
||||
#ifdef EQ3_DEBUG
|
||||
if (BLE_ESP32::BLEDebugMode > 0) AddLog(LOG_LEVEL_DEBUG,PSTR("EQ3Device: saw %s"),advertisedDevice->getAddress().toString().c_str());
|
||||
if (BLE_ESP32::BLEDebugMode) AddLog(LOG_LEVEL_DEBUG, PSTR("EQ3: %s: saw device"),advertisedDevice->getAddress().toString().c_str());
|
||||
#endif
|
||||
|
||||
uint8_t* payload = advertisedDevice->getPayload();
|
||||
@ -861,15 +859,10 @@ int TaskEQ3advertismentCallback(BLE_ESP32::ble_advertisment_t *pStruct)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*********************************************************************************************\
|
||||
* Helper functions
|
||||
\*********************************************************************************************/
|
||||
|
||||
|
||||
|
||||
/*********************************************************************************************\
|
||||
* init
|
||||
\*********************************************************************************************/
|
||||
@ -915,10 +908,10 @@ void EQ3EverySecond(bool restart){
|
||||
if (seconds <= 0){
|
||||
if (EQ3Period){
|
||||
if (nextEQ3Poll >= EQ3_NUM_DEVICESLOTS){
|
||||
AddLog(LOG_LEVEL_DEBUG, PSTR("EQ3 poll cycle starting"));
|
||||
AddLog(LOG_LEVEL_DEBUG, PSTR("EQ3: poll cycle starting"));
|
||||
nextEQ3Poll = 0;
|
||||
} else {
|
||||
AddLog(LOG_LEVEL_ERROR, PSTR("EQ3 poll overrun, deferred - last loop only got to %d, not %d"), nextEQ3Poll, EQ3_NUM_DEVICESLOTS);
|
||||
AddLog(LOG_LEVEL_ERROR, PSTR("EQ3: poll overrun, deferred - last loop only got to %d, not %d"), nextEQ3Poll, EQ3_NUM_DEVICESLOTS);
|
||||
}
|
||||
}
|
||||
seconds = EQ3Period;
|
||||
@ -941,7 +934,7 @@ void EQ3EverySecond(bool restart){
|
||||
// trvMinRSSI
|
||||
// find the device in BLE to get RSSI
|
||||
if (EQ3Devices[i].RSSI < trvMinRSSI){
|
||||
AddLog(LOG_LEVEL_DEBUG, PSTR("EQ3 %s RSSI %d < min %d, poll suppressed"), addrStr(EQ3Devices[i].addr), EQ3Devices[i].RSSI, trvMinRSSI);
|
||||
AddLog(LOG_LEVEL_DEBUG, PSTR("EQ3: %s: RSSI %d < min %d, poll suppressed"), addrStr(EQ3Devices[i].addr), EQ3Devices[i].RSSI, trvMinRSSI);
|
||||
nextEQ3Poll = i+1;
|
||||
continue;
|
||||
}
|
||||
@ -960,7 +953,6 @@ void EQ3EverySecond(bool restart){
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*********************************************************************************************\
|
||||
* Presentation
|
||||
\*********************************************************************************************/
|
||||
@ -996,6 +988,35 @@ int EQ3SendResult(char *requested, const char *result){
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef USE_WEBSERVER
|
||||
const char HTTP_EQ3_HL[] PROGMEM = "{s}<hr>{m}<hr>{e}";
|
||||
const char HTTP_EQ3_ALIAS[] PROGMEM = "{s}EQ3 %d Alias{m}%s{e}";
|
||||
const char HTTP_EQ3_MAC[] PROGMEM = "{s}EQ3 %d " D_MAC_ADDRESS "{m}%s{e}";
|
||||
const char HTTP_EQ3_RSSI[] PROGMEM = "{s}EQ3 %d " D_RSSI "{m}%d dBm{e}";
|
||||
const char HTTP_EQ3_TEMPERATURE[] PROGMEM = "{s}EQ3 %d %s{m}%*_f " D_UNIT_DEGREE "%c{e}";
|
||||
const char HTTP_EQ3_DUTY_CYCLE[] PROGMEM = "{s}EQ3 %d " D_THERMOSTAT_DUTY_CYCLE "{m}%d " D_UNIT_PERCENT "{e}";
|
||||
const char HTTP_EQ3_BATTERY[] PROGMEM = "{s}EQ3 %d " D_BATTERY "{m}%s{e}";
|
||||
|
||||
void EQ3Show(void)
|
||||
{
|
||||
char c_unit = D_UNIT_CELSIUS[0]; // ToDo: Check if fahrenheit is possible -> temp_format==TEMP_CELSIUS ? D_UNIT_CELSIUS[0] : D_UNIT_FAHRENHEIT[0];
|
||||
|
||||
for (int i = 0; i < EQ3_NUM_DEVICESLOTS; i++) {
|
||||
if (EQ3Devices[i].timeoutTime) {
|
||||
WSContentSend_P(HTTP_EQ3_HL);
|
||||
const char *alias = BLE_ESP32::getAlias(EQ3Devices[i].addr);
|
||||
if (alias && *alias){
|
||||
WSContentSend_PD(HTTP_EQ3_ALIAS, i + 1, alias);
|
||||
}
|
||||
WSContentSend_P(HTTP_EQ3_MAC, i + 1, addrStr(EQ3Devices[i].addr));
|
||||
WSContentSend_PD(HTTP_EQ3_RSSI, i + 1, EQ3Devices[i].RSSI);
|
||||
WSContentSend_PD(HTTP_EQ3_TEMPERATURE, i + 1, D_THERMOSTAT_SET_POINT, Settings->flag2.temperature_resolution, &EQ3Devices[i].TargetTemp, c_unit);
|
||||
WSContentSend_P(HTTP_EQ3_DUTY_CYCLE, i + 1, EQ3Devices[i].DutyCycle);
|
||||
WSContentSend_P(HTTP_EQ3_BATTERY, i + 1, EQ3Devices[i].Battery ? D_NEOPOOL_LOW : D_OK);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif // USE_WEBSERVER
|
||||
|
||||
/*********************************************************************************************\
|
||||
* Commands
|
||||
@ -1023,7 +1044,7 @@ int EQ3Send(const uint8_t* addr, const char *cmd, char* param, char* param2, int
|
||||
memset(d, 0, sizeof(d));
|
||||
int dlen = 0;
|
||||
#ifdef EQ3_DEBUG
|
||||
AddLog(LOG_LEVEL_INFO,PSTR("EQ3 %s: cmd: [%s] [%s] [%s]"), addrStr(addr), cmd, param, param2);
|
||||
AddLog(LOG_LEVEL_INFO, PSTR("EQ3: %s: cmd: [%s] [%s] [%s]"), addrStr(addr), cmd, param, param2);
|
||||
#endif
|
||||
|
||||
/* done on whole string before here.
|
||||
@ -1042,7 +1063,7 @@ int EQ3Send(const uint8_t* addr, const char *cmd, char* param, char* param2, int
|
||||
}
|
||||
int len = strlen(param) / 2;
|
||||
if (len > 20){
|
||||
AddLog(LOG_LEVEL_ERROR,PSTR("EQ3 raw len of %s = %d > 20"), param, len);
|
||||
AddLog(LOG_LEVEL_ERROR, PSTR("EQ3: raw len of %s = %d > 20"), param, len);
|
||||
return -1;
|
||||
}
|
||||
BLE_ESP32::fromHex(d, param, len);
|
||||
@ -1380,7 +1401,7 @@ const char *responses[] = {
|
||||
|
||||
|
||||
int CmndTrvNext(int index, char *data){
|
||||
AddLog(LOG_LEVEL_DEBUG,PSTR("EQ3 cmd index: %d"), index);
|
||||
AddLog(LOG_LEVEL_DEBUG, PSTR("EQ3: cmd index: %d"), index);
|
||||
//simpletolower(data);
|
||||
|
||||
switch(index){
|
||||
@ -1399,14 +1420,14 @@ int CmndTrvNext(int index, char *data){
|
||||
|
||||
if (!strcmp(p, "scan")){
|
||||
#ifdef EQ3_DEBUG
|
||||
AddLog(LOG_LEVEL_DEBUG,PSTR("EQ3 cmd: %s"), p);
|
||||
AddLog(LOG_LEVEL_DEBUG, PSTR("EQ3: cmd: %s"), p);
|
||||
#endif
|
||||
EQ3SendCurrentDevices();
|
||||
return 0;
|
||||
}
|
||||
if (!strcmp(p, "devlist")){
|
||||
#ifdef EQ3_DEBUG
|
||||
AddLog(LOG_LEVEL_DEBUG,PSTR("EQ3 cmd: %s"), p);
|
||||
AddLog(LOG_LEVEL_DEBUG, PSTR("EQ3: cmd: %s"), p);
|
||||
#endif
|
||||
EQ3SendCurrentDevices();
|
||||
return 0;
|
||||
@ -1423,16 +1444,16 @@ int CmndTrvNext(int index, char *data){
|
||||
int addrres = BLE_ESP32::getAddr(addrbin, p);
|
||||
if (addrres){
|
||||
if (addrres == 2){
|
||||
AddLog(LOG_LEVEL_DEBUG,PSTR("EQ3 addr used alias: %s"), p);
|
||||
AddLog(LOG_LEVEL_DEBUG, PSTR("EQ3: addr used alias: %s"), p);
|
||||
useAlias = 1;
|
||||
}
|
||||
NimBLEAddress addr(addrbin, addrbin[6]);
|
||||
|
||||
#ifdef EQ3_DEBUG
|
||||
//AddLog(LOG_LEVEL_INFO,PSTR("EQ3 cmd addr: %s -> %s"), p, addr.toString().c_str());
|
||||
//AddLog(LOG_LEVEL_INFO, PSTR("EQ3: cmd addr: %s -> %s"), p, addr.toString().c_str());
|
||||
#endif
|
||||
} else {
|
||||
AddLog(LOG_LEVEL_ERROR,PSTR("EQ3 addr invalid: %s"), p);
|
||||
AddLog(LOG_LEVEL_ERROR, PSTR("EQ3: addr invalid: %s"), p);
|
||||
return 3;
|
||||
}
|
||||
|
||||
@ -1450,16 +1471,16 @@ int CmndTrvNext(int index, char *data){
|
||||
int res = EQ3Send(addrbin, cmd, param, param2, useAlias);
|
||||
if (res > 0) {
|
||||
// succeeded to queue
|
||||
AddLog(LOG_LEVEL_ERROR,PSTR("EQ3 queued"));
|
||||
AddLog(LOG_LEVEL_ERROR, PSTR("EQ3: queued"));
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (res < 0) { // invalid in some way
|
||||
AddLog(LOG_LEVEL_ERROR,PSTR("EQ3 invalid"));
|
||||
AddLog(LOG_LEVEL_ERROR, PSTR("EQ3: invalid"));
|
||||
return 3;
|
||||
}
|
||||
|
||||
AddLog(LOG_LEVEL_ERROR,PSTR("EQ3 failed to queue"));
|
||||
AddLog(LOG_LEVEL_ERROR, PSTR("EQ3: failed to queue"));
|
||||
// failed to queue
|
||||
return 4;
|
||||
} break;
|
||||
@ -1537,7 +1558,7 @@ bool mqtt_direct(){
|
||||
strncpy(stopic, XdrvMailbox.topic, TOPSZ);
|
||||
XdrvMailbox.topic[TOPSZ-1] = 0;
|
||||
|
||||
AddLog(LOG_LEVEL_DEBUG,PSTR("EQ3 mqtt: %s:%s"), stopic, XdrvMailbox.data);
|
||||
AddLog(LOG_LEVEL_DEBUG, PSTR("EQ3: mqtt: %s:%s"), stopic, XdrvMailbox.data);
|
||||
|
||||
char *items[10];
|
||||
char *p = stopic;
|
||||
@ -1558,7 +1579,6 @@ bool mqtt_direct(){
|
||||
//AddLog(LOG_LEVEL_INFO, PSTR("cnt %d:%s"), i, items[i]);
|
||||
}
|
||||
|
||||
|
||||
int EQ3index = 0;
|
||||
int MACindex = 0;
|
||||
int CMDindex = 0;
|
||||
@ -1749,9 +1769,6 @@ void EQ3DiscoveryOneEQ3(){
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
} // end namespace EQ3_ESP32
|
||||
|
||||
/*********************************************************************************************\
|
||||
@ -1783,6 +1800,7 @@ bool Xdrv85(uint32_t function)
|
||||
break;
|
||||
#ifdef USE_WEBSERVER
|
||||
case FUNC_WEB_SENSOR:
|
||||
EQ3_ESP32::EQ3Show();
|
||||
break;
|
||||
#endif // USE_WEBSERVER
|
||||
case FUNC_ACTIVE:
|
||||
|
Loading…
x
Reference in New Issue
Block a user