refactor dtostrfd

This commit is contained in:
Theo Arends 2021-01-27 17:42:59 +01:00
parent a3f5d5ce2c
commit 5b375acdd2
2 changed files with 17 additions and 41 deletions

View File

@ -1219,29 +1219,15 @@ int ResponseAppendTime(void)
return ResponseAppendTimeFormat(Settings.flag2.time_format); return ResponseAppendTimeFormat(Settings.flag2.time_format);
} }
// int ResponseAppendTHD(float f_temperature, float f_humidity)
// {
// char temperature[FLOATSZ];
// dtostrfd(f_temperature, Settings.flag2.temperature_resolution, temperature);
// char humidity[FLOATSZ];
// dtostrfd(f_humidity, Settings.flag2.humidity_resolution, humidity);
// char dewpoint[FLOATSZ];
// dtostrfd(CalcTempHumToDew(f_temperature, f_humidity), Settings.flag2.temperature_resolution, dewpoint);
// return ResponseAppend_P(PSTR("\"" D_JSON_TEMPERATURE "\":%s,\"" D_JSON_HUMIDITY "\":%s,\"" D_JSON_DEWPOINT "\":%s"), temperature, humidity, dewpoint);
// }
int ResponseAppendTHD(float f_temperature, float f_humidity) int ResponseAppendTHD(float f_temperature, float f_humidity)
{ {
float dewpoint = CalcTempHumToDew(f_temperature, f_humidity); float dewpoint = CalcTempHumToDew(f_temperature, f_humidity);
return ResponseAppend_P(PSTR("\"" D_JSON_TEMPERATURE "\":%*_f,\"" D_JSON_HUMIDITY "\":%*_f,\"" D_JSON_DEWPOINT "\":%*_f"), return ResponseAppend_P(PSTR("\"" D_JSON_TEMPERATURE "\":%*_f,\"" D_JSON_HUMIDITY "\":%*_f,\"" D_JSON_DEWPOINT "\":%*_f"),
Settings.flag2.temperature_resolution, &f_temperature, Settings.flag2.temperature_resolution, &f_temperature,
Settings.flag2.humidity_resolution, &f_humidity, Settings.flag2.humidity_resolution, &f_humidity,
Settings.flag2.temperature_resolution, &dewpoint); Settings.flag2.temperature_resolution, &dewpoint);
} }
int ResponseJsonEnd(void) int ResponseJsonEnd(void)
{ {
return ResponseAppend_P(PSTR("}")); return ResponseAppend_P(PSTR("}"));

View File

@ -225,9 +225,7 @@ void EnergyUpdateToday(void)
void EnergyUpdateTotal(float value, bool kwh) void EnergyUpdateTotal(float value, bool kwh)
{ {
// char energy_total_chr[FLOATSZ]; // AddLog(LOG_LEVEL_DEBUG, PSTR("NRG: Energy Total %4_f %sWh"), &value, (kwh) ? "k" : "");
// dtostrfd(value, 4, energy_total_chr);
// AddLog(LOG_LEVEL_DEBUG, PSTR("NRG: Energy Total %s %sWh"), energy_total_chr, (kwh) ? "k" : "");
uint32_t multiplier = (kwh) ? 100000 : 100; // kWh or Wh to deca milli Wh uint32_t multiplier = (kwh) ? 100000 : 100; // kWh or Wh to deca milli Wh
@ -476,9 +474,7 @@ void EnergyMarginCheck(void)
} }
else if ((1 == Energy.max_energy_state ) && (energy_daily_u >= Settings.energy_max_energy)) { else if ((1 == Energy.max_energy_state ) && (energy_daily_u >= Settings.energy_max_energy)) {
Energy.max_energy_state = 2; Energy.max_energy_state = 2;
char stemp[FLOATSZ]; ResponseTime_P(PSTR(",\"" D_JSON_MAXENERGYREACHED "\":%3_f}"), &Energy.daily);
dtostrfd(Energy.daily, 3, stemp);
ResponseTime_P(PSTR(",\"" D_JSON_MAXENERGYREACHED "\":%s}"), stemp);
MqttPublishPrefixTopic_P(STAT, S_RSLT_WARNING); MqttPublishPrefixTopic_P(STAT, S_RSLT_WARNING);
EnergyMqttShow(); EnergyMqttShow();
SetAllPower(POWER_ALL_OFF, SRC_MAXENERGY); SetAllPower(POWER_ALL_OFF, SRC_MAXENERGY);
@ -507,9 +503,7 @@ void EnergyEverySecond(void)
if (TasmotaGlobal.global_update) { if (TasmotaGlobal.global_update) {
if (TasmotaGlobal.power && !isnan(TasmotaGlobal.temperature_celsius) && (TasmotaGlobal.temperature_celsius > (float)Settings.param[P_OVER_TEMP])) { // Device overtemp, turn off relays if (TasmotaGlobal.power && !isnan(TasmotaGlobal.temperature_celsius) && (TasmotaGlobal.temperature_celsius > (float)Settings.param[P_OVER_TEMP])) { // Device overtemp, turn off relays
char temperature[33]; AddLog(LOG_LEVEL_DEBUG, PSTR("NRG: GlobTemp %1_f"), &TasmotaGlobal.temperature_celsius);
dtostrfd(TasmotaGlobal.temperature_celsius, 1, temperature);
AddLog(LOG_LEVEL_DEBUG, PSTR("NRG: GlobTemp %s"), temperature);
SetAllPower(POWER_ALL_OFF, SRC_OVERTEMP); SetAllPower(POWER_ALL_OFF, SRC_OVERTEMP);
} }
@ -628,25 +622,21 @@ void CmndEnergyReset(void)
} }
Energy.total = (float)(RtcSettings.energy_kWhtotal + Energy.kWhtoday_offset + Energy.kWhtoday) / 100000; Energy.total = (float)(RtcSettings.energy_kWhtotal + Energy.kWhtoday_offset + Energy.kWhtoday) / 100000;
float energy_kWhyesterday = (float)Settings.energy_kWhyesterday / 100000;
float usage1_kWhtotal = (float)Settings.energy_usage.usage1_kWhtotal / 100000;
float usage2_kWhtotal = (float)Settings.energy_usage.usage2_kWhtotal / 100000;
float return1_kWhtotal = (float)Settings.energy_usage.return1_kWhtotal / 100000;
float return2_kWhtotal = (float)Settings.energy_usage.return2_kWhtotal / 100000;
char energy_total_chr[FLOATSZ]; Response_P(PSTR("{\"%s\":{\"" D_JSON_TOTAL "\":%*_f,\"" D_JSON_YESTERDAY "\":%*_f,\"" D_JSON_TODAY "\":%*_f,\"" D_JSON_USAGE "\":[%*_f,%*_f],\"" D_JSON_EXPORT "\":[%*_f,%*_f]}}"),
dtostrfd(Energy.total, Settings.flag2.energy_resolution, energy_total_chr); XdrvMailbox.command,
char energy_daily_chr[FLOATSZ]; Settings.flag2.energy_resolution, &Energy.total,
dtostrfd(Energy.daily, Settings.flag2.energy_resolution, energy_daily_chr); Settings.flag2.energy_resolution, &energy_kWhyesterday,
char energy_yesterday_chr[FLOATSZ]; Settings.flag2.energy_resolution, &Energy.daily,
dtostrfd((float)Settings.energy_kWhyesterday / 100000, Settings.flag2.energy_resolution, energy_yesterday_chr); Settings.flag2.energy_resolution, &usage1_kWhtotal,
Settings.flag2.energy_resolution, &usage2_kWhtotal,
char energy_usage1_chr[FLOATSZ]; Settings.flag2.energy_resolution, &return1_kWhtotal,
dtostrfd((float)Settings.energy_usage.usage1_kWhtotal / 100000, Settings.flag2.energy_resolution, energy_usage1_chr); Settings.flag2.energy_resolution, &return2_kWhtotal);
char energy_usage2_chr[FLOATSZ];
dtostrfd((float)Settings.energy_usage.usage2_kWhtotal / 100000, Settings.flag2.energy_resolution, energy_usage2_chr);
char energy_return1_chr[FLOATSZ];
dtostrfd((float)Settings.energy_usage.return1_kWhtotal / 100000, Settings.flag2.energy_resolution, energy_return1_chr);
char energy_return2_chr[FLOATSZ];
dtostrfd((float)Settings.energy_usage.return2_kWhtotal / 100000, Settings.flag2.energy_resolution, energy_return2_chr);
Response_P(PSTR("{\"%s\":{\"" D_JSON_TOTAL "\":%s,\"" D_JSON_YESTERDAY "\":%s,\"" D_JSON_TODAY "\":%s,\"" D_JSON_USAGE "\":[%s,%s],\"" D_JSON_EXPORT "\":[%s,%s]}}"),
XdrvMailbox.command, energy_total_chr, energy_yesterday_chr, energy_daily_chr, energy_usage1_chr, energy_usage2_chr, energy_return1_chr, energy_return2_chr);
} }
void CmndTariff(void) void CmndTariff(void)