mirror of https://github.com/arendst/Tasmota.git
Added totalActive from le01, more code tunning
This commit is contained in:
parent
179a1c549d
commit
f2ca1f3e47
|
@ -183,6 +183,7 @@
|
||||||
#define D_JSON_SOLAR_POWER "SolarPower"
|
#define D_JSON_SOLAR_POWER "SolarPower"
|
||||||
#define D_JSON_USAGE "Usage"
|
#define D_JSON_USAGE "Usage"
|
||||||
#define D_JSON_EXPORT "Export"
|
#define D_JSON_EXPORT "Export"
|
||||||
|
#define D_JSON_TOTAL_ACTIVE "TotalActive"
|
||||||
|
|
||||||
#define D_RSLT_ENERGY "ENERGY"
|
#define D_RSLT_ENERGY "ENERGY"
|
||||||
#define D_RSLT_HASS_STATE "HASS_STATE"
|
#define D_RSLT_HASS_STATE "HASS_STATE"
|
||||||
|
|
|
@ -671,7 +671,7 @@
|
||||||
#define D_UNIT_WATTHOUR "Wh"
|
#define D_UNIT_WATTHOUR "Wh"
|
||||||
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
|
#define D_UNIT_WATT_METER_QUADRAT "W/m²"
|
||||||
|
|
||||||
//SDM220
|
//SDM220, SDM120, LE01MR
|
||||||
#define D_PHASE_ANGLE "Phase Angle"
|
#define D_PHASE_ANGLE "Phase Angle"
|
||||||
#define D_IMPORT_ACTIVE "Import Active"
|
#define D_IMPORT_ACTIVE "Import Active"
|
||||||
#define D_EXPORT_ACTIVE "Export Active"
|
#define D_EXPORT_ACTIVE "Export Active"
|
||||||
|
@ -680,6 +680,7 @@
|
||||||
#define D_TOTAL_REACTIVE "Total Reactive"
|
#define D_TOTAL_REACTIVE "Total Reactive"
|
||||||
#define D_UNIT_KWARH "kVArh"
|
#define D_UNIT_KWARH "kVArh"
|
||||||
#define D_UNIT_ANGLE "Deg"
|
#define D_UNIT_ANGLE "Deg"
|
||||||
|
#define D_TOTAL_ACTIVE "Total Active"
|
||||||
|
|
||||||
//SOLAXX1
|
//SOLAXX1
|
||||||
#define D_PV1_VOLTAGE "PV1 Voltage"
|
#define D_PV1_VOLTAGE "PV1 Voltage"
|
||||||
|
|
|
@ -499,8 +499,8 @@
|
||||||
#define SOLAXX1_SPEED 9600 // Solax X1 Modbus RS485 serial speed (default: 9600 baud)
|
#define SOLAXX1_SPEED 9600 // Solax X1 Modbus RS485 serial speed (default: 9600 baud)
|
||||||
#define SOLAXX1_PV2 // Solax X1 using second PV
|
#define SOLAXX1_PV2 // Solax X1 using second PV
|
||||||
//#define USE_LE01MR // Add support for F&F LE-01MR modbus energy meter
|
//#define USE_LE01MR // Add support for F&F LE-01MR modbus energy meter
|
||||||
//#define LE01MR_SPEED 2400 // LE-01MR modbus baudrate (2400 default)
|
#define LE01MR_SPEED 2400 // LE-01MR modbus baudrate (2400 default)
|
||||||
//#define LE01MR_ADDR 0x01 // LE-01MR modbus address (0x01 default)
|
#define LE01MR_ADDR 1 // LE-01MR modbus address (0x01 default)
|
||||||
// -- Low level interface devices -----------------
|
// -- Low level interface devices -----------------
|
||||||
#define USE_DHT // Add support for DHT11, AM2301 (DHT21, DHT22, AM2302, AM2321) and SI7021 Temperature and Humidity sensor (1k6 code)
|
#define USE_DHT // Add support for DHT11, AM2301 (DHT21, DHT22, AM2302, AM2321) and SI7021 Temperature and Humidity sensor (1k6 code)
|
||||||
|
|
||||||
|
|
|
@ -198,7 +198,7 @@ void FifLEEvery250ms(void)
|
||||||
// some registers are 1reg in size
|
// some registers are 1reg in size
|
||||||
if (Le01mr.read_state < 3) reg_count=1;
|
if (Le01mr.read_state < 3) reg_count=1;
|
||||||
// send request
|
// send request
|
||||||
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("FiF-LE: LE01MR Modbus req reg %X, count %d"), le01mr_register_addresses[Le01mr.read_state], reg_count);
|
//AddLog_P2(LOG_LEVEL_DEBUG, PSTR("FiF-LE: LE01MR Modbus req reg %X, count %d"), le01mr_register_addresses[Le01mr.read_state], reg_count);
|
||||||
FifLEModbus->Send(LE01MR_ADDR, 0x03, le01mr_register_addresses[Le01mr.read_state], reg_count);
|
FifLEModbus->Send(LE01MR_ADDR, 0x03, le01mr_register_addresses[Le01mr.read_state], reg_count);
|
||||||
} else {
|
} else {
|
||||||
Le01mr.send_retry--;
|
Le01mr.send_retry--;
|
||||||
|
@ -226,24 +226,30 @@ void FifLEDrvInit(void)
|
||||||
void FifLEReset(void)
|
void FifLEReset(void)
|
||||||
{
|
{
|
||||||
Le01mr.total_active = 0;
|
Le01mr.total_active = 0;
|
||||||
|
Le01mr.total_reactive = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_WEBSERVER
|
#ifdef USE_WEBSERVER
|
||||||
const char HTTP_ENERGY_LE01MR[] PROGMEM =
|
const char HTTP_ENERGY_LE01MR[] PROGMEM =
|
||||||
"{s}" D_IMPORT_REACTIVE "{m}%s " D_UNIT_KWARH "{e}";
|
"{s}" D_TOTAL_ACTIVE "{m}%s " D_UNIT_KILOWATTHOUR "{e}"
|
||||||
|
"{s}" D_TOTAL_REACTIVE "{m}%s " D_UNIT_KWARH "{e}"
|
||||||
|
;
|
||||||
#endif // USE_WEBSERVER
|
#endif // USE_WEBSERVER
|
||||||
|
|
||||||
void FifLEShow(bool json)
|
void FifLEShow(bool json)
|
||||||
{
|
{
|
||||||
char total_reactive_chr[FLOATSZ];
|
char total_reactive_chr[FLOATSZ];
|
||||||
dtostrfd(Le01mr.total_reactive, Settings.flag2.energy_resolution, total_reactive_chr);
|
dtostrfd(Le01mr.total_reactive, Settings.flag2.energy_resolution, total_reactive_chr);
|
||||||
|
char total_active_chr[FLOATSZ];
|
||||||
|
dtostrfd(Le01mr.total_active, Settings.flag2.energy_resolution, total_active_chr);
|
||||||
|
|
||||||
|
|
||||||
if (json) {
|
if (json) {
|
||||||
ResponseAppend_P(PSTR(",\"" D_JSON_IMPORT_REACTIVE "\":%s"),
|
ResponseAppend_P(PSTR(",\"" D_JSON_TOTAL_ACTIVE "\":%s,\"" D_JSON_TOTAL_REACTIVE "\":%s"),
|
||||||
total_reactive_chr);
|
total_active_chr, total_reactive_chr);
|
||||||
#ifdef USE_WEBSERVER
|
#ifdef USE_WEBSERVER
|
||||||
} else {
|
} else {
|
||||||
WSContentSend_PD(HTTP_ENERGY_LE01MR, total_reactive_chr);
|
WSContentSend_PD(HTTP_ENERGY_LE01MR, total_active_chr, total_reactive_chr);
|
||||||
#endif // USE_WEBSERVER
|
#endif // USE_WEBSERVER
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -253,20 +259,23 @@ void FifLEShow(bool json)
|
||||||
\*********************************************************************************************/
|
\*********************************************************************************************/
|
||||||
|
|
||||||
// just to slow down tramitter (for deug purpouses)
|
// just to slow down tramitter (for deug purpouses)
|
||||||
#define SLOW_DOWN_X250MS 1
|
//#define SLOW_DOWN_X250MS 1
|
||||||
uint8_t slowdown = SLOW_DOWN_X250MS;
|
//uint8_t slowdown = SLOW_DOWN_X250MS;
|
||||||
|
|
||||||
bool Xnrg13(uint8_t function)
|
bool Xnrg13(uint8_t function)
|
||||||
{
|
{
|
||||||
bool result = false;
|
bool result = false;
|
||||||
|
|
||||||
switch (function) {
|
switch (function) {
|
||||||
|
// TODO: Verify if there is corrleaction with 250ms scan time,
|
||||||
|
// and MQTT breaking connection and causing exception in ESP8266 after few minutes
|
||||||
|
// test with "FUNC_EVERY_SECOND"
|
||||||
case FUNC_EVERY_250_MSECOND:
|
case FUNC_EVERY_250_MSECOND:
|
||||||
if (uptime > 4) {
|
if (uptime > 4) {
|
||||||
if (--slowdown == 0) {
|
//if (--slowdown == 0) {
|
||||||
FifLEEvery250ms();
|
FifLEEvery250ms();
|
||||||
slowdown=SLOW_DOWN_X250MS;
|
// slowdown=SLOW_DOWN_X250MS;
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case FUNC_JSON_APPEND:
|
case FUNC_JSON_APPEND:
|
||||||
|
|
Loading…
Reference in New Issue