Browse Source

0.7.57

* fix Alarms are always in queue (since 0.7.56)
* fix display active power control to long for small devices #1165
pull/1169/head
lumapu 2 years ago
parent
commit
ff63f5236d
  1. 4
      src/CHANGES.md
  2. 2
      src/defines.h
  3. 7
      src/hm/hmInverter.h
  4. 6
      src/web/html/style.css
  5. 3
      src/web/html/visualization.html

4
src/CHANGES.md

@ -1,5 +1,9 @@
# Development Changes
## 0.7.57 - 2023-09-18
* fix Alarms are always in queue (since 0.7.56)
* fix display active power control to long for small devices #1165
## 0.7.56 - 2023-09-17
* only request alarms which were not received before #1113
* added flag if alarm was requested but not received and re-request it #1105

2
src/defines.h

@ -13,7 +13,7 @@
//-------------------------------------
#define VERSION_MAJOR 0
#define VERSION_MINOR 7
#define VERSION_PATCH 56
#define VERSION_PATCH 57
//-------------------------------------
typedef struct {

7
src/hm/hmInverter.h

@ -151,8 +151,7 @@ class Inverter {
std::array<alarm_t, 10> lastAlarm; // holds last 10 alarms
uint8_t alarmNxtWrPos; // indicates the position in array (rolling buffer)
uint16_t alarmCnt; // counts the total number of occurred alarms
uint8_t alarmLastId; // lastId which was received
bool alarmReqPending; // alarmData request issued and wait for answer
uint16_t alarmLastId; // lastId which was received
int8_t rssi; // HMS and HMT inverters only
@ -210,7 +209,7 @@ class Inverter {
enqueCommand<InfoCommand>(InverterDevInform_All); // firmware version
else if (getHwVersion() == 0)
enqueCommand<InfoCommand>(InverterDevInform_Simple); // hardware version
else if(alarmReqPending)
else if((alarmLastId != alarmMesIndex) && (alarmMesIndex != 0))
enqueCommand<InfoCommand>(AlarmData); // alarm not answered
enqueCommand<InfoCommand>(RealTimeRunData_Debug); // live data
} else if (ivGen == IV_MI){
@ -342,7 +341,6 @@ class Inverter {
DPRINT(DBG_INFO, "alarm ID incremented to ");
DBGPRINTLN(String(alarmMesIndex));
alarmReqPending = true;
enqueCommand<InfoCommand>(AlarmData);
}
}
@ -626,7 +624,6 @@ class Inverter {
DPRINTLN(DBG_DEBUG, "Alarm #" + String(pyld[startOff+1]) + " '" + String(getAlarmStr(pyld[startOff+1])) + "' start: " + ah::getTimeStr(start) + ", end: " + ah::getTimeStr(endTime));
addAlarm(pyld[startOff+1], start, endTime);
alarmReqPending = false;
alarmCnt++;
alarmLastId = alarmMesIndex;

6
src/web/html/style.css

@ -266,6 +266,9 @@ p {
.a-r { text-align: right; }
.a-c { text-align: center; }
.d-none { display: none !important; }
.d-block { display: block !important; }
.row > * {
padding-left: 0.5rem;
padding-right: 0.5rem;
@ -304,6 +307,9 @@ p {
.fs-sm-6 { font-size: 1.5rem; }
.fs-sm-7 { font-size: 1.25rem; }
.fs-sm-8 { font-size: 1rem; }
.d-sm-block { display: block !important;}
.d-sm-none { display: none !important; }
}
/* md */

3
src/web/html/visualization.html

@ -113,7 +113,8 @@
ml("div", {class: "col mx-2 mx-md-1"}, ml("span", { class: "pointer", onclick: function() {
getAjax("/api/inverter/version/" + obj.id, parseIvVersion);
}}, obj.name)),
ml("div", {class: "col a-c"}, "Active Power Control: " + pwrLimit),
ml("div", {class: "col a-c d-none d-sm-block"}, "Active Power Control: " + pwrLimit),
ml("div", {class: "col a-c d-block d-sm-none"}, "APC: " + pwrLimit),
ml("div", {class: "col a-c"}, ml("span", { class: "pointer", onclick: function() {
getAjax("/api/inverter/alarm/" + obj.id, parseIvAlarm);
}}, ("Alarms: " + obj.alarm_cnt))),

Loading…
Cancel
Save