mirror of
https://github.com/lumapu/ahoy.git
synced 2025-05-22 05:16:11 +02:00
0.8.9
* merged PR #1234 * added new alarm codes * removed serial interval, was not in use anymore
This commit is contained in:
parent
b57e463b92
commit
49ef94cb7a
9 changed files with 82 additions and 48 deletions
|
@ -1,5 +1,10 @@
|
|||
# Development Changes
|
||||
|
||||
## 0.8.9 - 2023-11-19
|
||||
* merged PR #1234
|
||||
* added new alarm codes
|
||||
* removed serial interval, was not in use anymore
|
||||
|
||||
## 0.8.8 - 2023-11-16
|
||||
* fix ESP8266 save inverter #1232
|
||||
|
||||
|
|
|
@ -142,7 +142,7 @@ void app::regularTickers(void) {
|
|||
if (mConfig->plugin.display.type != 0)
|
||||
everySec(std::bind(&DisplayType::tickerSecond, &mDisplay), "disp");
|
||||
#endif
|
||||
every(std::bind(&PubSerialType::tick, &mPubSerial), mConfig->serial.interval, "uart");
|
||||
every(std::bind(&PubSerialType::tick, &mPubSerial), 5, "uart");
|
||||
#if !defined(ETHERNET)
|
||||
//everySec([this]() { mImprov.tickSerial(); }, "impro");
|
||||
#endif
|
||||
|
|
|
@ -142,9 +142,6 @@
|
|||
#define MAX_NUM_INVERTERS 4
|
||||
#endif
|
||||
|
||||
// default serial interval
|
||||
#define SERIAL_INTERVAL 5
|
||||
|
||||
// default send interval
|
||||
#define SEND_INTERVAL 15
|
||||
|
||||
|
|
|
@ -114,7 +114,6 @@ typedef struct {
|
|||
} cfgSun_t;
|
||||
|
||||
typedef struct {
|
||||
uint16_t interval;
|
||||
bool showIv;
|
||||
bool debug;
|
||||
} cfgSerial_t;
|
||||
|
@ -423,7 +422,6 @@ class settings {
|
|||
mCfg.sun.lon = 0.0;
|
||||
mCfg.sun.offsetSec = 0;
|
||||
|
||||
mCfg.serial.interval = SERIAL_INTERVAL;
|
||||
mCfg.serial.showIv = false;
|
||||
mCfg.serial.debug = false;
|
||||
|
||||
|
@ -617,11 +615,9 @@ class settings {
|
|||
|
||||
void jsonSerial(JsonObject obj, bool set = false) {
|
||||
if(set) {
|
||||
obj[F("intvl")] = mCfg.serial.interval;
|
||||
obj[F("show")] = mCfg.serial.showIv;
|
||||
obj[F("debug")] = mCfg.serial.debug;
|
||||
} else {
|
||||
getVal<uint16_t>(obj, F("intvl"), &mCfg.serial.interval);
|
||||
getVal<bool>(obj, F("show"), &mCfg.serial.showIv);
|
||||
getVal<bool>(obj, F("debug"), &mCfg.serial.debug);
|
||||
}
|
||||
|
|
|
@ -594,14 +594,40 @@ class Inverter {
|
|||
static String getAlarmStr(uint16_t alarmCode) {
|
||||
switch (alarmCode) { // breaks are intentionally missing!
|
||||
case 1: return String(F("Inverter start"));
|
||||
case 2: return String(F("DTU command failed"));
|
||||
case 73: return String(F("Temperature >80°C")); // https://github.com/tbnobody/OpenDTU/discussions/590#discussioncomment-6049750
|
||||
case 2: return String(F("Time calibration"));
|
||||
case 3: return String(F("EEPROM reading and writing error during operation"));
|
||||
case 4: return String(F("Offline"));
|
||||
case 11: return String(F("Grid voltage surge"));
|
||||
case 12: return String(F("Grid voltage sharp drop"));
|
||||
case 13: return String(F("Grid frequency mutation"));
|
||||
case 14: return String(F("Grid phase mutation"));
|
||||
case 15: return String(F("Grid transient fluctuation"));
|
||||
case 36: return String(F("INV overvoltage or overcurrent"));
|
||||
case 46: return String(F("FB overvoltage"));
|
||||
case 47: return String(F("FB overcurrent"));
|
||||
case 48: return String(F("FB clamp overvoltage"));
|
||||
case 49: return String(F("FB clamp overvoltage"));
|
||||
case 61: return String(F("Calibration parameter error"));
|
||||
case 62: return String(F("System configuration parameter error"));
|
||||
case 63: return String(F("Abnormal power generation data"));
|
||||
|
||||
case 71: return String(F("Grid overvoltage load reduction (VW) function enable"));
|
||||
case 72: return String(F("Power grid over-frequency load reduction (FW) function enable"));
|
||||
case 73: return String(F("Over-temperature load reduction (TW) function enable"));
|
||||
|
||||
case 95: return String(F("PV-1: Module in suspected shadow"));
|
||||
case 96: return String(F("PV-2: Module in suspected shadow"));
|
||||
case 97: return String(F("PV-3: Module in suspected shadow"));
|
||||
case 98: return String(F("PV-4: Module in suspected shadow"));
|
||||
|
||||
case 121: return String(F("Over temperature protection"));
|
||||
case 122: return String(F("Microinverter is suspected of being stolen"));
|
||||
case 123: return String(F("Locked by remote control"));
|
||||
case 124: return String(F("Shut down by remote control"));
|
||||
case 125: return String(F("Grid configuration parameter error"));
|
||||
case 126: return String(F("Software error code 126"));
|
||||
case 126: return String(F("EEPROM reading and writing error"));
|
||||
case 127: return String(F("Firmware error"));
|
||||
case 128: return String(F("Software error code 128"));
|
||||
case 128: return String(F("Hardware configuration error"));
|
||||
case 129: return String(F("Abnormal bias"));
|
||||
case 130: return String(F("Offline"));
|
||||
case 141: return String(F("Grid: Grid overvoltage"));
|
||||
|
@ -613,7 +639,12 @@ class Inverter {
|
|||
case 147: return String(F("Grid: Power grid outage"));
|
||||
case 148: return String(F("Grid: Grid disconnection"));
|
||||
case 149: return String(F("Grid: Island detected"));
|
||||
|
||||
case 150: return String(F("DCI exceeded"));
|
||||
|
||||
case 171: return String(F("Grid: Abnormal phase difference between phase to phase"));
|
||||
case 181: return String(F("Abnormal insulation impedance"));
|
||||
case 182: return String(F("Abnormal grounding"));
|
||||
case 205: return String(F("MPPT-A: Input overvoltage"));
|
||||
case 206: return String(F("MPPT-B: Input overvoltage"));
|
||||
case 207: return String(F("MPPT-A: Input undervoltage"));
|
||||
|
@ -632,24 +663,33 @@ class Inverter {
|
|||
case 220: return String(F("PV-3: Input undervoltage"));
|
||||
case 221: return String(F("PV-4: Input overvoltage"));
|
||||
case 222: return String(F("PV-4: Input undervoltage"));
|
||||
case 301: return String(F("Hardware error code 301"));
|
||||
case 302: return String(F("Hardware error code 302"));
|
||||
case 303: return String(F("Hardware error code 303"));
|
||||
case 304: return String(F("Hardware error code 304"));
|
||||
case 305: return String(F("Hardware error code 305"));
|
||||
case 306: return String(F("Hardware error code 306"));
|
||||
case 307: return String(F("Hardware error code 307"));
|
||||
case 308: return String(F("Hardware error code 308"));
|
||||
|
||||
case 301: return String(F("FB short circuit failure"));
|
||||
case 302: return String(F("FB short circuit failure"));
|
||||
case 303: return String(F("FB overcurrent protection failure"));
|
||||
case 304: return String(F("FB overcurrent protection failure"));
|
||||
case 305: return String(F("FB clamp circuit failure"));
|
||||
case 306: return String(F("FB clamp circuit failure"));
|
||||
case 307: return String(F("INV power device failure"));
|
||||
case 308: return String(F("INV overcurrent or overvoltage protection failure"));
|
||||
case 309: return String(F("Hardware error code 309"));
|
||||
case 310: return String(F("Hardware error code 310"));
|
||||
case 311: return String(F("Hardware error code 311"));
|
||||
case 312: return String(F("Hardware error code 312"));
|
||||
case 313: return String(F("Hardware error code 313"));
|
||||
case 314: return String(F("Hardware error code 314"));
|
||||
case 5041: return String(F("Error code-04 Port 1"));
|
||||
case 5042: return String(F("Error code-04 Port 2"));
|
||||
case 5043: return String(F("Error code-04 Port 3"));
|
||||
case 5044: return String(F("Error code-04 Port 4"));
|
||||
|
||||
case 5011: return String(F("PV-1: MOSFET overcurrent (II)"));
|
||||
case 5012: return String(F("PV-2: MOSFET overcurrent (II)"));
|
||||
case 5013: return String(F("PV-3: MOSFET overcurrent (II)"));
|
||||
case 5014: return String(F("PV-4: MOSFET overcurrent (II)"));
|
||||
case 5020: return String(F("H-bridge MOSFET overcurrent or H-bridge overvoltage"));
|
||||
|
||||
case 5041: return String(F("PV-1: current overcurrent (II)"));
|
||||
case 5042: return String(F("PV-2: current overcurrent (II)"));
|
||||
case 5043: return String(F("PV-3: current overcurrent (II)"));
|
||||
case 5044: return String(F("PV-4: current overcurrent (II)"));
|
||||
|
||||
case 5051: return String(F("PV Input 1 Overvoltage/Undervoltage"));
|
||||
case 5052: return String(F("PV Input 2 Overvoltage/Undervoltage"));
|
||||
case 5053: return String(F("PV Input 3 Overvoltage/Undervoltage"));
|
||||
|
@ -659,10 +699,18 @@ class Inverter {
|
|||
case 5080: return String(F("Grid Overvoltage/Undervoltage"));
|
||||
case 5090: return String(F("Grid Overfrequency/Underfrequency"));
|
||||
case 5100: return String(F("Island detected"));
|
||||
case 5110: return String(F("GFDI"));
|
||||
case 5120: return String(F("EEPROM reading and writing error"));
|
||||
case 5141:
|
||||
case 5142:
|
||||
case 5143:
|
||||
case 5144:
|
||||
return String(F("FB clamp overvoltage"));
|
||||
case 5150: return String(F("10 min value grid overvoltage"));
|
||||
case 5160: return String(F("Grid transient fluctuation"));
|
||||
case 5200: return String(F("Firmware error"));
|
||||
case 8310: return String(F("Shut down"));
|
||||
case 8310: return String(F("Shut down by remote control"));
|
||||
case 8320: return String(F("Locked by remote control"));
|
||||
case 9000: return String(F("Microinverter is suspected of being stolen"));
|
||||
default: return String(F("Unknown"));
|
||||
}
|
||||
|
|
|
@ -25,9 +25,9 @@ extra_scripts =
|
|||
|
||||
lib_deps =
|
||||
https://github.com/yubox-node-org/ESPAsyncWebServer
|
||||
nrf24/RF24 @ 1.4.7
|
||||
nrf24/RF24 @ 1.4.8
|
||||
paulstoffregen/Time @ ^1.6.1
|
||||
https://github.com/bertmelis/espMqttClient#v1.4.5
|
||||
https://github.com/bertmelis/espMqttClient#v1.5.0
|
||||
bblanchon/ArduinoJson @ ^6.21.3
|
||||
https://github.com/JChristensen/Timezone @ ^1.2.4
|
||||
olikraus/U8g2 @ ^2.35.7
|
||||
|
@ -71,7 +71,7 @@ monitor_filters =
|
|||
esp8266_exception_decoder
|
||||
|
||||
[env:esp32-wroom32]
|
||||
platform = espressif32@6.3.2
|
||||
platform = espressif32@6.4.0
|
||||
board = lolin_d32
|
||||
build_flags = ${env.build_flags}
|
||||
-DUSE_HSPI_FOR_EPD
|
||||
|
@ -79,7 +79,7 @@ monitor_filters =
|
|||
esp32_exception_decoder
|
||||
|
||||
[env:esp32-wroom32-prometheus]
|
||||
platform = espressif32@6.3.2
|
||||
platform = espressif32@6.4.0
|
||||
board = lolin_d32
|
||||
build_flags = ${env.build_flags}
|
||||
-DUSE_HSPI_FOR_EPD
|
||||
|
@ -93,9 +93,9 @@ board = esp32dev
|
|||
lib_deps =
|
||||
khoih-prog/AsyncWebServer_ESP32_W5500
|
||||
khoih-prog/AsyncUDP_ESP32_W5500
|
||||
nrf24/RF24 @ ^1.4.7
|
||||
nrf24/RF24 @ ^1.4.8
|
||||
paulstoffregen/Time @ ^1.6.1
|
||||
https://github.com/bertmelis/espMqttClient#v1.4.4
|
||||
https://github.com/bertmelis/espMqttClient#v1.5.0
|
||||
bblanchon/ArduinoJson @ ^6.21.3
|
||||
https://github.com/JChristensen/Timezone @ ^1.2.4
|
||||
olikraus/U8g2 @ ^2.35.7
|
||||
|
@ -110,7 +110,7 @@ monitor_filters =
|
|||
esp32_exception_decoder
|
||||
|
||||
[env:esp32-s2-mini]
|
||||
platform = espressif32@6.3.2
|
||||
platform = espressif32@6.4.0
|
||||
board = lolin_s2_mini
|
||||
build_flags = ${env.build_flags}
|
||||
-DUSE_HSPI_FOR_EPD
|
||||
|
@ -124,7 +124,7 @@ monitor_filters =
|
|||
esp32_exception_decoder
|
||||
|
||||
[env:opendtufusion]
|
||||
platform = espressif32@6.3.2
|
||||
platform = espressif32@6.4.0
|
||||
board = esp32-s3-devkitc-1
|
||||
upload_protocol = esp-builtin
|
||||
build_flags = ${env.build_flags}
|
||||
|
@ -147,7 +147,7 @@ monitor_filters =
|
|||
esp32_exception_decoder, colorize
|
||||
|
||||
[env:opendtufusion-dev]
|
||||
platform = espressif32@6.3.2
|
||||
platform = espressif32@6.4.0
|
||||
board = esp32-s3-devkitc-1
|
||||
upload_protocol = esp-builtin
|
||||
build_flags = ${env.build_flags}
|
||||
|
|
|
@ -559,7 +559,6 @@ class RestApi {
|
|||
}
|
||||
|
||||
void getSerial(JsonObject obj) {
|
||||
obj[F("interval")] = (uint16_t)mConfig->serial.interval;
|
||||
obj[F("show_live_data")] = mConfig->serial.showIv;
|
||||
obj[F("debug")] = mConfig->serial.debug;
|
||||
}
|
||||
|
|
|
@ -48,10 +48,6 @@
|
|||
<div class="col-8 col-sm-3">Serial Debug</div>
|
||||
<div class="col-4 col-sm-9"><input type="checkbox" name="serDbg"/></div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="col-12 col-sm-3 my-2">Interval [s]</div>
|
||||
<div class="col-12 col-sm-9"><input type="number" name="serIntvl" title="Invalid input"/></div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
|
@ -939,7 +935,6 @@
|
|||
function parseSerial(obj) {
|
||||
for(var i of [["serEn", "show_live_data"], ["serDbg", "debug"]])
|
||||
document.getElementsByName(i[0])[0].checked = obj[i[1]];
|
||||
document.getElementsByName("serIntvl")[0].value = obj["interval"];
|
||||
}
|
||||
|
||||
function parseDisplay(obj, type, system) {
|
||||
|
|
|
@ -558,14 +558,8 @@ class Web {
|
|||
mConfig->mqtt.interval = request->arg("mqttInterval").toInt();
|
||||
|
||||
// serial console
|
||||
if (request->arg("serIntvl") != "") {
|
||||
mConfig->serial.interval = request->arg("serIntvl").toInt() & 0xffff;
|
||||
|
||||
mConfig->serial.debug = (request->arg("serDbg") == "on");
|
||||
mConfig->serial.showIv = (request->arg("serEn") == "on");
|
||||
// Needed to log TX buffers to serial console
|
||||
// mSys->Radio.mSerialDebug = mConfig->serial.debug;
|
||||
}
|
||||
|
||||
// display
|
||||
mConfig->plugin.display.pwrSaveAtIvOffline = (request->arg("disp_pwr") == "on");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue