mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-25 19:56:30 +00:00
Merge pull request #11056 from gemu2015/sml
send mqtt only on valid data
This commit is contained in:
commit
5f93f556d8
@ -465,6 +465,7 @@ double meter_vars[SML_MAX_VARS];
|
|||||||
double dvalues[MAX_DVARS];
|
double dvalues[MAX_DVARS];
|
||||||
uint32_t dtimes[MAX_DVARS];
|
uint32_t dtimes[MAX_DVARS];
|
||||||
uint8_t meters_used;
|
uint8_t meters_used;
|
||||||
|
uint8_t dvalid[SML_MAX_VARS];
|
||||||
|
|
||||||
struct METER_DESC const *meter_desc_p;
|
struct METER_DESC const *meter_desc_p;
|
||||||
const uint8_t *meter_p;
|
const uint8_t *meter_p;
|
||||||
@ -494,6 +495,7 @@ char meter_id[MAX_METERS][METER_ID_SIZE];
|
|||||||
uint8_t sml_send_blocks;
|
uint8_t sml_send_blocks;
|
||||||
uint8_t sml_100ms_cnt;
|
uint8_t sml_100ms_cnt;
|
||||||
uint8_t sml_desc_cnt;
|
uint8_t sml_desc_cnt;
|
||||||
|
uint8_t sml_json_enable = 1;
|
||||||
|
|
||||||
#ifdef USE_SML_MEDIAN_FILTER
|
#ifdef USE_SML_MEDIAN_FILTER
|
||||||
// median filter, should be odd size
|
// median filter, should be odd size
|
||||||
@ -1621,6 +1623,7 @@ void SML_Decode(uint8_t index) {
|
|||||||
#else
|
#else
|
||||||
meter_vars[vindex]=dval;
|
meter_vars[vindex]=dval;
|
||||||
#endif
|
#endif
|
||||||
|
dvalid[vindex] = 1;
|
||||||
//AddLog_P(LOG_LEVEL_INFO, PSTR(">> %s"),mp);
|
//AddLog_P(LOG_LEVEL_INFO, PSTR(">> %s"),mp);
|
||||||
// get scaling factor
|
// get scaling factor
|
||||||
double fac=CharToDouble((char*)mp);
|
double fac=CharToDouble((char*)mp);
|
||||||
@ -1779,6 +1782,8 @@ void SML_Show(boolean json) {
|
|||||||
dtostrfd(meter_vars[index],dp,tpowstr);
|
dtostrfd(meter_vars[index],dp,tpowstr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!dvalid[index]) nojson = 1;
|
||||||
|
|
||||||
if (json) {
|
if (json) {
|
||||||
// json export
|
// json export
|
||||||
if (index==0) {
|
if (index==0) {
|
||||||
@ -1953,6 +1958,7 @@ void SML_Init(void) {
|
|||||||
|
|
||||||
for (uint32_t cnt=0;cnt<SML_MAX_VARS;cnt++) {
|
for (uint32_t cnt=0;cnt<SML_MAX_VARS;cnt++) {
|
||||||
meter_vars[cnt]=0;
|
meter_vars[cnt]=0;
|
||||||
|
dvalid[cnt]=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (uint32_t cnt=0;cnt<MAX_METERS;cnt++) {
|
for (uint32_t cnt=0;cnt<MAX_METERS;cnt++) {
|
||||||
@ -2650,7 +2656,9 @@ bool Xsns53(byte function) {
|
|||||||
break;
|
break;
|
||||||
#endif // USE_SCRIPT
|
#endif // USE_SCRIPT
|
||||||
case FUNC_JSON_APPEND:
|
case FUNC_JSON_APPEND:
|
||||||
SML_Show(1);
|
if (sml_json_enable) {
|
||||||
|
SML_Show(1);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
#ifdef USE_WEBSERVER
|
#ifdef USE_WEBSERVER
|
||||||
case FUNC_WEB_SENSOR:
|
case FUNC_WEB_SENSOR:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user