diff --git a/src/CHANGES.md b/src/CHANGES.md index c83130c8..bbede74c 100644 --- a/src/CHANGES.md +++ b/src/CHANGES.md @@ -1,9 +1,13 @@ # Development Changes +## 0.8.40 - 2024-01-02 +* fix display of sunrise and sunset in `/system` #1308 +* fix MqTT set power limit #1313 + ## 0.8.39 - 2024-01-01 * fix MqTT dis_night_comm in the morning #1309 #1286 * seperated offset for sunrise and sunset #1308 -* **BREAKING CHANGE**: powerlimit (active power control) now has one decimal place (MqTT / API) #1199 +* powerlimit (active power control) now has one decimal place (MqTT / API) #1199 * merge Prometheus metrics fix #1310 * merge MI grid profile request #1306 * merge update documentation / readme #1305 diff --git a/src/defines.h b/src/defines.h index d5aa04c2..26ddf237 100644 --- a/src/defines.h +++ b/src/defines.h @@ -13,7 +13,7 @@ //------------------------------------- #define VERSION_MAJOR 0 #define VERSION_MINOR 8 -#define VERSION_PATCH 39 +#define VERSION_PATCH 40 //------------------------------------- typedef struct { diff --git a/src/hm/Communication.h b/src/hm/Communication.h index a448884e..d44e860f 100644 --- a/src/hm/Communication.h +++ b/src/hm/Communication.h @@ -397,7 +397,7 @@ class Communication : public CommQueue<> { DBGPRINT(F("has ")); if(!accepted) DBGPRINT(F("not ")); DBGPRINT(F("accepted power limit set point ")); - DBGPRINT(String(q->iv->powerLimit[0]/10)); + DBGPRINT(String((float)q->iv->powerLimit[0]/10.0)); DBGPRINT(F(" with PowerLimitControl ")); DBGPRINTLN(String(q->iv->powerLimit[1])); q->iv->actPowerLimit = 0xffff; // unknown, readback current value diff --git a/src/hm/hmInverter.h b/src/hm/hmInverter.h index 37a469a7..25f575e5 100644 --- a/src/hm/hmInverter.h +++ b/src/hm/hmInverter.h @@ -805,7 +805,7 @@ class Inverter { bool mDevControlRequest; // true if change needed uint8_t mGridLen = 0; uint8_t mGridProfile[MAX_GRID_LENGTH]; - uint8_t mGetLossInterval; // request iv every AHOY_GET_LOSS_INTERVAL RealTimeRunData_Debug + uint8_t mGetLossInterval; // request iv every AHOY_GET_LOSS_INTERVAL RealTimeRunData_Debug }; template diff --git a/src/publisher/pubMqtt.h b/src/publisher/pubMqtt.h index 9834f29a..76ec452f 100644 --- a/src/publisher/pubMqtt.h +++ b/src/publisher/pubMqtt.h @@ -310,15 +310,18 @@ class PubMqtt { char *pyld = new char[len + 1]; strncpy(pyld, (const char*)payload, len); pyld[len] = '\0'; - root[F("val")] = atoi(pyld); + if(NULL == strstr(topic, "limit")) + root[F("val")] = atoi(pyld); + else + root[F("val")] = (int)(atof(pyld) * 10.0f); + if(pyld[len-1] == 'W') limitAbs = true; delete[] pyld; } const char *p = topic + strlen(mCfgMqtt->topic); - uint8_t pos = 0; - uint8_t elm = 0; + uint8_t pos = 0, elm = 0; char tmp[30]; while(1) { @@ -333,8 +336,7 @@ class PubMqtt { root[F("cmd")] = F("limit_nonpersistent_absolute"); else root[F("cmd")] = F("limit_nonpersistent_relative"); - } - else + } else root[F("cmd")] = String(tmp); break; case 3: root[F("id")] = atoi(tmp); break; diff --git a/src/web/html/system.html b/src/web/html/system.html index eb25d5fa..0415864b 100644 --- a/src/web/html/system.html +++ b/src/web/html/system.html @@ -108,8 +108,8 @@ ml("tbody", {}, [ tr("Sunrise", new Date(obj.ts_sunrise * 1000).toLocaleString('de-DE')), tr("Sunset", new Date(obj.ts_sunset * 1000).toLocaleString('de-DE')), - tr("Communication start", new Date((obj.ts_sunrise - obj.ts_offset) * 1000).toLocaleString('de-DE')), - tr("Communication stop", new Date((obj.ts_sunset + obj.ts_offset) * 1000).toLocaleString('de-DE')), + tr("Communication start", new Date((obj.ts_sunrise - obj.ts_offsSr) * 1000).toLocaleString('de-DE')), + tr("Communication stop", new Date((obj.ts_sunset + obj.ts_offsSs) * 1000).toLocaleString('de-DE')), tr("Night behaviour", badge(obj.disNightComm, ((obj.disNightComm) ? "not" : "") + " communicating", "warning")) ]) )