diff --git a/lib/EntsoePriceApi/include/DnbCurrParser.h b/lib/EntsoePriceApi/include/DnbCurrParser.h index 25032342..c8be5fbb 100644 --- a/lib/EntsoePriceApi/include/DnbCurrParser.h +++ b/lib/EntsoePriceApi/include/DnbCurrParser.h @@ -16,7 +16,7 @@ public: private: uint8_t scale = 0; - float value = 1.0; + float value = 0; char buf[128]; uint8_t pos = 0; diff --git a/lib/EntsoePriceApi/src/EntsoeApi.cpp b/lib/EntsoePriceApi/src/EntsoeApi.cpp index 03acd606..9a0c639c 100644 --- a/lib/EntsoePriceApi/src/EntsoeApi.cpp +++ b/lib/EntsoePriceApi/src/EntsoeApi.cpp @@ -302,7 +302,11 @@ float EntsoeApi::getCurrencyMultiplier(const char* from, const char* to, time_t if(debugger->isActive(RemoteDebug::DEBUG)) debugger->printf_P(PSTR("(EntsoeApi) url: %s\n"), buf); if(retrieve(buf, &p)) { if(debugger->isActive(RemoteDebug::DEBUG)) debugger->printf_P(PSTR("(EntsoeApi) got exchange rate %.4f\n"), p.getValue()); - currencyMultiplier /= p.getValue(); + if(p.getValue() > 0.0) { + currencyMultiplier /= p.getValue(); + } else { + currencyMultiplier = 0; + } } else { currencyMultiplier = 0; return 0; @@ -312,10 +316,14 @@ float EntsoeApi::getCurrencyMultiplier(const char* from, const char* to, time_t currencyMultiplier = 0; return 0; } - if(debugger->isActive(RemoteDebug::DEBUG)) debugger->printf_P(PSTR("(EntsoeApi) Resulting currency multiplier: %.4f\n"), currencyMultiplier); - tmElements_t tm; - breakTime(t, tm); - lastCurrencyFetch = now + (SECS_PER_DAY * 1000) - (((((tm.Hour * 60) + tm.Minute) * 60) + tm.Second) * 1000) + 3600000; + if(currencyMultiplier != 0) { + if(debugger->isActive(RemoteDebug::DEBUG)) debugger->printf_P(PSTR("(EntsoeApi) Resulting currency multiplier: %.4f\n"), currencyMultiplier); + tmElements_t tm; + breakTime(t, tm); + lastCurrencyFetch = now + (SECS_PER_DAY * 1000) - (((((tm.Hour * 60) + tm.Minute) * 60) + tm.Second) * 1000) + 3600000; + } else { + if(debugger->isActive(RemoteDebug::WARNING)) debugger->printf_P(PSTR("(EntsoeApi) Multiplier ended in success, but without value\n")); + } } return currencyMultiplier; }