diff --git a/tasmota/support.ino b/tasmota/support.ino index 38e0266b2..3ae2b6105 100644 --- a/tasmota/support.ino +++ b/tasmota/support.ino @@ -1219,29 +1219,15 @@ int ResponseAppendTime(void) 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) { float dewpoint = CalcTempHumToDew(f_temperature, f_humidity); - return ResponseAppend_P(PSTR("\"" D_JSON_TEMPERATURE "\":%*_f,\"" D_JSON_HUMIDITY "\":%*_f,\"" D_JSON_DEWPOINT "\":%*_f"), Settings.flag2.temperature_resolution, &f_temperature, Settings.flag2.humidity_resolution, &f_humidity, Settings.flag2.temperature_resolution, &dewpoint); } - int ResponseJsonEnd(void) { return ResponseAppend_P(PSTR("}")); diff --git a/tasmota/xdrv_03_energy.ino b/tasmota/xdrv_03_energy.ino index dd302ebf1..63369ac7d 100644 --- a/tasmota/xdrv_03_energy.ino +++ b/tasmota/xdrv_03_energy.ino @@ -225,9 +225,7 @@ void EnergyUpdateToday(void) void EnergyUpdateTotal(float value, bool kwh) { -// char energy_total_chr[FLOATSZ]; -// dtostrfd(value, 4, energy_total_chr); -// AddLog(LOG_LEVEL_DEBUG, PSTR("NRG: Energy Total %s %sWh"), energy_total_chr, (kwh) ? "k" : ""); +// AddLog(LOG_LEVEL_DEBUG, PSTR("NRG: Energy Total %4_f %sWh"), &value, (kwh) ? "k" : ""); 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)) { Energy.max_energy_state = 2; - char stemp[FLOATSZ]; - dtostrfd(Energy.daily, 3, stemp); - ResponseTime_P(PSTR(",\"" D_JSON_MAXENERGYREACHED "\":%s}"), stemp); + ResponseTime_P(PSTR(",\"" D_JSON_MAXENERGYREACHED "\":%3_f}"), &Energy.daily); MqttPublishPrefixTopic_P(STAT, S_RSLT_WARNING); EnergyMqttShow(); SetAllPower(POWER_ALL_OFF, SRC_MAXENERGY); @@ -507,9 +503,7 @@ void EnergyEverySecond(void) 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 - char temperature[33]; - dtostrfd(TasmotaGlobal.temperature_celsius, 1, temperature); - AddLog(LOG_LEVEL_DEBUG, PSTR("NRG: GlobTemp %s"), temperature); + AddLog(LOG_LEVEL_DEBUG, PSTR("NRG: GlobTemp %1_f"), &TasmotaGlobal.temperature_celsius); 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; + 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]; - dtostrfd(Energy.total, Settings.flag2.energy_resolution, energy_total_chr); - char energy_daily_chr[FLOATSZ]; - dtostrfd(Energy.daily, Settings.flag2.energy_resolution, energy_daily_chr); - char energy_yesterday_chr[FLOATSZ]; - dtostrfd((float)Settings.energy_kWhyesterday / 100000, Settings.flag2.energy_resolution, energy_yesterday_chr); - - char energy_usage1_chr[FLOATSZ]; - dtostrfd((float)Settings.energy_usage.usage1_kWhtotal / 100000, Settings.flag2.energy_resolution, energy_usage1_chr); - 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); + 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]}}"), + XdrvMailbox.command, + Settings.flag2.energy_resolution, &Energy.total, + Settings.flag2.energy_resolution, &energy_kWhyesterday, + Settings.flag2.energy_resolution, &Energy.daily, + Settings.flag2.energy_resolution, &usage1_kWhtotal, + Settings.flag2.energy_resolution, &usage2_kWhtotal, + Settings.flag2.energy_resolution, &return1_kWhtotal, + Settings.flag2.energy_resolution, &return2_kWhtotal); } void CmndTariff(void)