mirror of https://github.com/arendst/Tasmota.git
Prep energy total by phase
This commit is contained in:
parent
bd49586715
commit
2455d4bfec
|
@ -441,8 +441,8 @@ const uint8_t MAX_TUYA_FUNCTIONS = 16;
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint16_t cfg_holder; // 000 v6 header
|
uint16_t cfg_holder; // 000 v6 header
|
||||||
uint16_t cfg_size; // 002
|
uint16_t cfg_size; // 002
|
||||||
unsigned long save_flag; // 004
|
uint32_t save_flag; // 004
|
||||||
unsigned long version; // 008
|
uint32_t version; // 008
|
||||||
uint16_t bootcount; // 00C
|
uint16_t bootcount; // 00C
|
||||||
uint16_t cfg_crc; // 00E
|
uint16_t cfg_crc; // 00E
|
||||||
SOBitfield flag; // 010
|
SOBitfield flag; // 010
|
||||||
|
@ -483,19 +483,22 @@ typedef struct {
|
||||||
int16_t toffset[2]; // 30E
|
int16_t toffset[2]; // 30E
|
||||||
uint8_t display_font; // 312
|
uint8_t display_font; // 312
|
||||||
DisplayOptions display_options; // 313
|
DisplayOptions display_options; // 313
|
||||||
|
uint32_t energy_kWhtoday_ph[3]; // 314
|
||||||
|
uint32_t energy_kWhyesterday_ph[3]; // 320
|
||||||
|
uint32_t energy_kWhtotal_ph[3]; // 32C
|
||||||
|
|
||||||
uint8_t free_314[43]; // 314
|
uint8_t free_338[7]; // 338
|
||||||
|
|
||||||
uint8_t tuyamcu_topic; // 33F Manage tuyaSend topic. ex_energy_power_delta on 6.6.0.20, replaced on 8.5.0.1
|
uint8_t tuyamcu_topic; // 33F Manage tuyaSend topic. ex_energy_power_delta on 6.6.0.20, replaced on 8.5.0.1
|
||||||
uint16_t domoticz_update_timer; // 340
|
uint16_t domoticz_update_timer; // 340
|
||||||
uint16_t pwm_range; // 342
|
uint16_t pwm_range; // 342
|
||||||
unsigned long domoticz_relay_idx[MAX_DOMOTICZ_IDX]; // 344
|
uint32_t domoticz_relay_idx[MAX_DOMOTICZ_IDX]; // 344
|
||||||
unsigned long domoticz_key_idx[MAX_DOMOTICZ_IDX]; // 354
|
uint32_t domoticz_key_idx[MAX_DOMOTICZ_IDX]; // 354
|
||||||
unsigned long energy_power_calibration; // 364
|
uint32_t energy_power_calibration; // 364
|
||||||
unsigned long energy_voltage_calibration; // 368
|
uint32_t energy_voltage_calibration; // 368
|
||||||
unsigned long energy_current_calibration; // 36C
|
uint32_t energy_current_calibration; // 36C
|
||||||
unsigned long energy_kWhtoday; // 370
|
uint32_t energy_kWhtoday; // 370
|
||||||
unsigned long energy_kWhyesterday; // 374
|
uint32_t energy_kWhyesterday; // 374
|
||||||
uint16_t energy_kWhdoy; // 378
|
uint16_t energy_kWhdoy; // 378
|
||||||
uint16_t energy_min_power; // 37A
|
uint16_t energy_min_power; // 37A
|
||||||
uint16_t energy_max_power; // 37C
|
uint16_t energy_max_power; // 37C
|
||||||
|
@ -603,7 +606,7 @@ typedef struct {
|
||||||
uint8_t free_560[92]; // 560
|
uint8_t free_560[92]; // 560
|
||||||
|
|
||||||
SysMBitfield1 flag2; // 5BC
|
SysMBitfield1 flag2; // 5BC
|
||||||
unsigned long pulse_counter[MAX_COUNTERS]; // 5C0
|
uint32_t pulse_counter[MAX_COUNTERS]; // 5C0
|
||||||
uint16_t pulse_counter_type; // 5D0
|
uint16_t pulse_counter_type; // 5D0
|
||||||
uint16_t pulse_counter_debounce; // 5D2
|
uint16_t pulse_counter_debounce; // 5D2
|
||||||
uint8_t rf_code[17][9]; // 5D4
|
uint8_t rf_code[17][9]; // 5D4
|
||||||
|
@ -643,12 +646,12 @@ typedef struct {
|
||||||
EnergyUsage energy_usage; // 77C
|
EnergyUsage energy_usage; // 77C
|
||||||
uint32_t sensors[2][4]; // 794 Disable individual (0) sensor drivers / (1) GUI sensor output
|
uint32_t sensors[2][4]; // 794 Disable individual (0) sensor drivers / (1) GUI sensor output
|
||||||
uint32_t energy_kWhtotal_time; // 7B4
|
uint32_t energy_kWhtotal_time; // 7B4
|
||||||
unsigned long weight_item; // 7B8 Weight of one item in gram * 10
|
uint32_t weight_item; // 7B8 Weight of one item in gram * 10
|
||||||
uint16_t ledmask; // 7BC
|
uint16_t ledmask; // 7BC
|
||||||
uint16_t weight_max; // 7BE Total max weight in kilogram
|
uint16_t weight_max; // 7BE Total max weight in kilogram
|
||||||
unsigned long weight_reference; // 7C0 Reference weight in gram
|
uint32_t weight_reference; // 7C0 Reference weight in gram
|
||||||
unsigned long weight_calibration; // 7C4
|
uint32_t weight_calibration; // 7C4
|
||||||
unsigned long energy_frequency_calibration; // 7C8 Also used by HX711 to save last weight
|
uint32_t energy_frequency_calibration; // 7C8 Also used by HX711 to save last weight
|
||||||
uint16_t web_refresh; // 7CC
|
uint16_t web_refresh; // 7CC
|
||||||
char script_pram[5][10]; // 7CE
|
char script_pram[5][10]; // 7CE
|
||||||
char rules[MAX_RULE_SETS][MAX_RULE_SIZE]; // 800 Uses 512 bytes in v5.12.0m, 3 x 512 bytes in v5.14.0b
|
char rules[MAX_RULE_SETS][MAX_RULE_SIZE]; // 800 Uses 512 bytes in v5.12.0m, 3 x 512 bytes in v5.14.0b
|
||||||
|
@ -735,7 +738,7 @@ typedef struct {
|
||||||
|
|
||||||
// Only 32 bit boundary variables below
|
// Only 32 bit boundary variables below
|
||||||
|
|
||||||
unsigned long energy_kWhtotal; // F9C
|
uint32_t energy_kWhtotal; // F9C
|
||||||
SBitfield1 sbflag1; // FA0
|
SBitfield1 sbflag1; // FA0
|
||||||
TeleinfoCfg teleinfo; // FA4
|
TeleinfoCfg teleinfo; // FA4
|
||||||
uint64_t rf_protocol_mask; // FA8
|
uint64_t rf_protocol_mask; // FA8
|
||||||
|
@ -771,19 +774,22 @@ typedef struct {
|
||||||
uint16_t valid; // 290 (RTC memory offset 100)
|
uint16_t valid; // 290 (RTC memory offset 100)
|
||||||
uint8_t oswatch_blocked_loop; // 292
|
uint8_t oswatch_blocked_loop; // 292
|
||||||
uint8_t ota_loader; // 293
|
uint8_t ota_loader; // 293
|
||||||
unsigned long energy_kWhtoday; // 294
|
uint32_t energy_kWhtoday; // 294
|
||||||
unsigned long energy_kWhtotal; // 298
|
uint32_t energy_kWhtotal; // 298
|
||||||
volatile unsigned long pulse_counter[MAX_COUNTERS]; // 29C - See #9521 why volatile
|
volatile uint32_t pulse_counter[MAX_COUNTERS]; // 29C - See #9521 why volatile
|
||||||
power_t power; // 2AC
|
power_t power; // 2AC
|
||||||
EnergyUsage energy_usage; // 2B0
|
EnergyUsage energy_usage; // 2B0
|
||||||
unsigned long nextwakeup; // 2C8
|
uint32_t nextwakeup; // 2C8
|
||||||
uint32_t baudrate; // 2CC
|
uint32_t baudrate; // 2CC
|
||||||
uint32_t ultradeepsleep; // 2D0
|
uint32_t ultradeepsleep; // 2D0
|
||||||
uint16_t deepsleep_slip; // 2D4
|
uint16_t deepsleep_slip; // 2D4
|
||||||
|
|
||||||
uint8_t free_2d6[22]; // 2D6
|
uint8_t free_2d6[2]; // 2D6
|
||||||
|
|
||||||
// 2EC - 2FF free locations
|
uint32_t energy_kWhtoday_ph[3]; // 2D8
|
||||||
|
uint32_t energy_kWhtotal_ph[3]; // 2E4
|
||||||
|
|
||||||
|
// 2F0 - 2FF free locations
|
||||||
} TRtcSettings;
|
} TRtcSettings;
|
||||||
TRtcSettings RtcSettings;
|
TRtcSettings RtcSettings;
|
||||||
#ifdef ESP32
|
#ifdef ESP32
|
||||||
|
@ -800,8 +806,8 @@ struct TIME_T {
|
||||||
char name_of_month[4];
|
char name_of_month[4];
|
||||||
uint16_t day_of_year;
|
uint16_t day_of_year;
|
||||||
uint16_t year;
|
uint16_t year;
|
||||||
unsigned long days;
|
uint32_t days;
|
||||||
unsigned long valid;
|
uint32_t valid;
|
||||||
} RtcTime;
|
} RtcTime;
|
||||||
|
|
||||||
struct XDRVMAILBOX {
|
struct XDRVMAILBOX {
|
||||||
|
|
|
@ -64,6 +64,10 @@ bool RtcSettingsLoad(uint32_t update) {
|
||||||
RtcSettings.valid = RTC_MEM_VALID;
|
RtcSettings.valid = RTC_MEM_VALID;
|
||||||
RtcSettings.energy_kWhtoday = Settings->energy_kWhtoday;
|
RtcSettings.energy_kWhtoday = Settings->energy_kWhtoday;
|
||||||
RtcSettings.energy_kWhtotal = Settings->energy_kWhtotal;
|
RtcSettings.energy_kWhtotal = Settings->energy_kWhtotal;
|
||||||
|
for (uint32_t i = 0; i < 3; i++) {
|
||||||
|
RtcSettings.energy_kWhtoday_ph[i] = Settings->energy_kWhtoday_ph[i];
|
||||||
|
RtcSettings.energy_kWhtotal_ph[i] = Settings->energy_kWhtotal_ph[i];
|
||||||
|
}
|
||||||
RtcSettings.energy_usage = Settings->energy_usage;
|
RtcSettings.energy_usage = Settings->energy_usage;
|
||||||
for (uint32_t i = 0; i < MAX_COUNTERS; i++) {
|
for (uint32_t i = 0; i < MAX_COUNTERS; i++) {
|
||||||
RtcSettings.pulse_counter[i] = Settings->pulse_counter[i];
|
RtcSettings.pulse_counter[i] = Settings->pulse_counter[i];
|
||||||
|
@ -1432,6 +1436,10 @@ void SettingsDelta(void) {
|
||||||
Settings->flag5.disable_referer_chk |= true;
|
Settings->flag5.disable_referer_chk |= true;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
if (Settings->version < 0x09050009) {
|
||||||
|
memset(&Settings->energy_kWhtoday_ph, 0, 36);
|
||||||
|
memset(&RtcSettings.energy_kWhtoday_ph, 0, 24);
|
||||||
|
}
|
||||||
|
|
||||||
Settings->version = VERSION;
|
Settings->version = VERSION;
|
||||||
SettingsSave(1);
|
SettingsSave(1);
|
||||||
|
|
|
@ -20,6 +20,6 @@
|
||||||
#ifndef _TASMOTA_VERSION_H_
|
#ifndef _TASMOTA_VERSION_H_
|
||||||
#define _TASMOTA_VERSION_H_
|
#define _TASMOTA_VERSION_H_
|
||||||
|
|
||||||
const uint32_t VERSION = 0x09050008;
|
const uint32_t VERSION = 0x09050009;
|
||||||
|
|
||||||
#endif // _TASMOTA_VERSION_H_
|
#endif // _TASMOTA_VERSION_H_
|
||||||
|
|
Loading…
Reference in New Issue