Limit peak count if over 5

This commit is contained in:
Gunnar Skjold 2022-10-06 17:12:12 +02:00
parent fe7be81f1e
commit b420a0e6f4

View File

@ -58,7 +58,9 @@ bool HomeAssistantMqttHandler::publish(AmsData* data, AmsData* previousState, En
}
String peaks = "";
for(uint8_t i = 1; i <= ea->getConfig()->hours; i++) {
uint8_t peakCount = ea->getConfig()->hours;
if(peakCount > 5) peakCount = 5;
for(uint8_t i = 1; i <= peakCount; i++) {
if(!peaks.isEmpty()) peaks += ",";
peaks += String(ea->getPeak(i));
}
@ -240,6 +242,8 @@ bool HomeAssistantMqttHandler::publishSystem(HwTools* hw, EntsoeApi* eapi, Energ
#endif
String haUrl = "http://" + haUID + ".local/";
// Could this be necessary? haUID.replace("-", "_");
uint8_t peakCount = ea->getConfig()->hours;
if(peakCount > 5) peakCount = 5;
uint8_t peaks = 0;
for(int i=0;i<HA_SENSOR_COUNT;i++) {
@ -255,7 +259,7 @@ bool HomeAssistantMqttHandler::publishSystem(HwTools* hw, EntsoeApi* eapi, Energ
uom = String(eapi->getCurrency());
}
if(strncmp(sensor.path, "peaks[", 6) == 0) {
if(peaks >= ea->getConfig()->hours) continue;
if(peaks >= peakCount) continue;
peaks++;
}
snprintf_P(json, BufferSize, HADISCOVER_JSON,