diff --git a/tools/esp8266/html/style.css b/tools/esp8266/html/style.css index 8ce9c570..f15f1cf1 100644 --- a/tools/esp8266/html/style.css +++ b/tools/esp8266/html/style.css @@ -182,7 +182,16 @@ div.ch { padding-bottom: 20px; } -div.ch .value, div.ch .info, div.ch .head, div.ch-iv .value, div.ch-iv .info, div.ch-iv .head { +div.ch-all { + width: 100%; + background-color: #b06e04; + display: inline-block; + margin-bottom: 15px; + padding-bottom: 20px; + overflow: auto; +} + +div.ch .value, div.ch .info, div.ch .head, div.ch-iv .value, div.ch-iv .info, div.ch-iv .head, div.ch-all .value, div.ch-all .info, div.ch-all .head { color: #fff; display: block; width: 100%; @@ -194,17 +203,17 @@ div.ch .value, div.ch .info, div.ch .head, div.ch-iv .value, div.ch-iv .info, di width: 220px; } -div.ch .unit, div.ch-iv .unit { +div.ch .unit, div.ch-iv .unit, div.ch-all .unit { font-size: 19px; margin-left: 10px; } -div.ch .value, div.ch-iv .value { +div.ch .value, div.ch-iv .value, div.ch-all .value { margin-top: 20px; font-size: 24px; } -div.ch .info, div.ch-iv .info { +div.ch .info, div.ch-iv .info, div.ch-all .info { margin-top: 3px; font-size: 10px; } @@ -214,6 +223,11 @@ div.ch .head { padding: 10px 0 10px 0; } +div.ch-all .head { + background-color: #8e5903; + padding: 10px 0 10px 0; +} + div.ch-iv .head { background-color: #1c6800; padding: 10px 0 10px 0; diff --git a/tools/esp8266/web.cpp b/tools/esp8266/web.cpp index 1bd12af5..563cb635 100644 --- a/tools/esp8266/web.cpp +++ b/tools/esp8266/web.cpp @@ -437,8 +437,13 @@ void web::showVisualization(void) { void web::showLiveData(void) { DPRINTLN(DBG_VERBOSE, F("web::showLiveData")); - String modHtml; + String modHtml, totalModHtml; + float totalYield = 0, totalYieldToday = 0, totalActual = 0; + uint8_t count = 0; + for (uint8_t id = 0; id < mMain->mSys->getNumInverters(); id++) { + count++; + Inverter<> *iv = mMain->mSys->getInverterByPos(id); if (NULL != iv) { #ifdef LIVEDATA_VISUALIZED @@ -462,6 +467,19 @@ void web::showLiveData(void) { for (uint8_t fld = 0; fld < 11; fld++) { pos = (iv->getPosByChFld(CH0, list[fld])); + + if(fld == 6){ + totalYield += iv->getValue(pos); + } + + if(fld == 7){ + totalYieldToday += iv->getValue(pos); + } + + if(fld == 2){ + totalActual += iv->getValue(pos); + } + if (0xff != pos) { modHtml += F("
"); modHtml += F("") + String(iv->getValue(pos)); @@ -513,7 +531,34 @@ void web::showLiveData(void) { } } - mWeb->send(200, F("text/html"), modHtml); + if(count > 1){ + totalModHtml += F("
" + "
Gesamt"); + + totalModHtml += F("
"); + totalModHtml += F("") + String(totalActual); + totalModHtml += F("W"); + totalModHtml += F("P_AC All"); + totalModHtml += F("
"); + + totalModHtml += F("
"); + totalModHtml += F("") + String(totalYieldToday); + totalModHtml += F("Wh"); + totalModHtml += F("YieldDayAll"); + totalModHtml += F("
"); + + totalModHtml += F("
"); + totalModHtml += F("") + String(totalYield); + totalModHtml += F("kWh"); + totalModHtml += F("YieldTotalAll"); + totalModHtml += F("
"); + + totalModHtml += F("
"); + totalModHtml += F("
"); + mWeb->send(200, F("text/html"), totalModHtml + modHtml); + } else { + mWeb->send(200, F("text/html"), modHtml); + } }