Renamed EntsoeApi to PriceService

This commit is contained in:
Gunnar Skjold
2023-11-25 10:04:21 +01:00
parent 56b6a720c9
commit afa013ca03
28 changed files with 330 additions and 314 deletions

View File

@@ -8,7 +8,7 @@
#include "hexutils.h"
#include "Uptime.h"
bool RawMqttHandler::publish(AmsData* data, AmsData* meterState, EnergyAccounting* ea, EntsoeApi* eapi) {
bool RawMqttHandler::publish(AmsData* data, AmsData* meterState, EnergyAccounting* ea, PriceService* ps) {
if(topic.isEmpty() || !mqtt.connected())
return false;
@@ -158,10 +158,10 @@ bool RawMqttHandler::publishTemperatures(AmsConfiguration* config, HwTools* hw)
return c > 0;
}
bool RawMqttHandler::publishPrices(EntsoeApi* eapi) {
bool RawMqttHandler::publishPrices(PriceService* ps) {
if(topic.isEmpty() || !mqtt.connected())
return false;
if(eapi->getValueForHour(0) == ENTSOE_NO_VALUE)
if(ps->getValueForHour(0) == PRICE_NO_VALUE)
return false;
time_t now = time(nullptr);
@@ -170,13 +170,13 @@ bool RawMqttHandler::publishPrices(EntsoeApi* eapi) {
int8_t min1hrIdx = -1, min3hrIdx = -1, min6hrIdx = -1;
float min = INT16_MAX, max = INT16_MIN;
float values[34];
for(int i = 0;i < 34; i++) values[i] = ENTSOE_NO_VALUE;
for(int i = 0;i < 34; i++) values[i] = PRICE_NO_VALUE;
for(uint8_t i = 0; i < 34; i++) {
float val = eapi->getValueForHour(now, i);
float val = ps->getValueForHour(now, i);
values[i] = val;
if(i > 23) continue;
if(val == ENTSOE_NO_VALUE) break;
if(val == PRICE_NO_VALUE) break;
if(val < min) min = val;
if(val > max) max = val;
@@ -191,7 +191,7 @@ bool RawMqttHandler::publishPrices(EntsoeApi* eapi) {
float val1 = values[i++];
float val2 = values[i++];
float val3 = val;
if(val1 == ENTSOE_NO_VALUE || val2 == ENTSOE_NO_VALUE || val3 == ENTSOE_NO_VALUE) continue;
if(val1 == PRICE_NO_VALUE || val2 == PRICE_NO_VALUE || val3 == PRICE_NO_VALUE) continue;
float val3hr = val1+val2+val3;
if(min3hrIdx == -1 || min3hr > val3hr) {
min3hr = val3hr;
@@ -207,7 +207,7 @@ bool RawMqttHandler::publishPrices(EntsoeApi* eapi) {
float val4 = values[i++];
float val5 = values[i++];
float val6 = val;
if(val1 == ENTSOE_NO_VALUE || val2 == ENTSOE_NO_VALUE || val3 == ENTSOE_NO_VALUE || val4 == ENTSOE_NO_VALUE || val5 == ENTSOE_NO_VALUE || val6 == ENTSOE_NO_VALUE) continue;
if(val1 == PRICE_NO_VALUE || val2 == PRICE_NO_VALUE || val3 == PRICE_NO_VALUE || val4 == PRICE_NO_VALUE || val5 == PRICE_NO_VALUE || val6 == PRICE_NO_VALUE) continue;
float val6hr = val1+val2+val3+val4+val5+val6;
if(min6hrIdx == -1 || min6hr > val6hr) {
min6hr = val6hr;
@@ -241,7 +241,7 @@ bool RawMqttHandler::publishPrices(EntsoeApi* eapi) {
for(int i = 0; i < 34; i++) {
float val = values[i];
if(val == ENTSOE_NO_VALUE) {
if(val == PRICE_NO_VALUE) {
mqtt.publish(topic + "/price/" + String(i), "", true, 0);
} else {
mqtt.publish(topic + "/price/" + String(i), String(val, 4), true, 0);
@@ -268,7 +268,7 @@ bool RawMqttHandler::publishPrices(EntsoeApi* eapi) {
return true;
}
bool RawMqttHandler::publishSystem(HwTools* hw, EntsoeApi* eapi, EnergyAccounting* ea) {
bool RawMqttHandler::publishSystem(HwTools* hw, PriceService* ps, EnergyAccounting* ea) {
if(topic.isEmpty() || !mqtt.connected())
return false;