obis second () option

This commit is contained in:
gemu2015 2021-01-22 08:31:22 +01:00
parent 5284d5f4f7
commit a545ec67d5

View File

@ -4,7 +4,7 @@
Created by Gerhard Mutz on 07.10.11. Created by Gerhard Mutz on 07.10.11.
adapted for Tasmota adapted for Tasmota
Copyright (C) 2021 Gerhard Mutz and Theo Arends Copyright (C) 2020 Gerhard Mutz and Theo Arends
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -1539,16 +1539,16 @@ void SML_Decode(uint8_t index) {
#ifdef ED300L #ifdef ED300L
g_mindex=mindex; g_mindex=mindex;
#endif #endif
if (*mp=='#') { if (*mp == '#') {
// get string value // get string value
mp++; mp++;
if (meter_desc_p[mindex].type=='o') { if (meter_desc_p[mindex].type == 'o') {
for (uint8_t p=0;p<METER_ID_SIZE;p++) { for (uint8_t p=0; p<METER_ID_SIZE; p++) {
if (*cp==*mp) { if (*cp == *mp) {
meter_id[mindex][p]=0; meter_id[mindex][p] = 0;
break; break;
} }
meter_id[mindex][p]=*cp++; meter_id[mindex][p] = *cp++;
} }
} else { } else {
sml_getvalue(cp,mindex); sml_getvalue(cp,mindex);
@ -1558,9 +1558,19 @@ void SML_Decode(uint8_t index) {
if (meter_desc_p[mindex].type!='e' && meter_desc_p[mindex].type!='r' && meter_desc_p[mindex].type!='m' && meter_desc_p[mindex].type!='M' && meter_desc_p[mindex].type!='p') { if (meter_desc_p[mindex].type!='e' && meter_desc_p[mindex].type!='r' && meter_desc_p[mindex].type!='m' && meter_desc_p[mindex].type!='M' && meter_desc_p[mindex].type!='p') {
// get numeric values // get numeric values
if (meter_desc_p[mindex].type=='o' || meter_desc_p[mindex].type=='c') { if (meter_desc_p[mindex].type=='o' || meter_desc_p[mindex].type=='c') {
dval=CharToDouble((char*)cp); if (*mp == '(') {
mp++;
// skip this bracket
char *bp = strchr((char*)cp, '(');
if (bp) {
cp = (uint8_t*) (bp + 1);
}
dval=CharToDouble((char*)cp);
} else {
dval=CharToDouble((char*)cp);
}
} else { } else {
dval=sml_getvalue(cp,mindex); dval = sml_getvalue(cp,mindex);
} }
} else { } else {
// ebus pzem or mbus or raw // ebus pzem or mbus or raw