mirror of
https://github.com/lumapu/ahoy.git
synced 2025-06-07 13:11:38 +02:00
Merge pull request #1478 from tictrick/zero-export
zeroExport - Korrektur der Settings
This commit is contained in:
commit
121558a45b
7 changed files with 690 additions and 302 deletions
|
@ -126,7 +126,7 @@ void app::setup() {
|
||||||
#if defined(PLUGIN_ZEROEXPORT)
|
#if defined(PLUGIN_ZEROEXPORT)
|
||||||
// TODO: aufräumen
|
// TODO: aufräumen
|
||||||
// if (mConfig->plugin.zeroExport.enabled) {
|
// if (mConfig->plugin.zeroExport.enabled) {
|
||||||
mZeroExport.setup(&mConfig->plugin.zeroExport, &mSys, mConfig);
|
mZeroExport.setup(&mConfig->plugin.zeroExport, &mSys, mConfig, &mApi);
|
||||||
// }
|
// }
|
||||||
#endif
|
#endif
|
||||||
// Plugin ZeroExport - Ende
|
// Plugin ZeroExport - Ende
|
||||||
|
|
|
@ -198,7 +198,7 @@ typedef struct {
|
||||||
|
|
||||||
#if defined(PLUGIN_ZEROEXPORT)
|
#if defined(PLUGIN_ZEROEXPORT)
|
||||||
enum class zeroExportState : uint8_t {
|
enum class zeroExportState : uint8_t {
|
||||||
RESET, GETPOWERMETER, GETINVERTERPOWER, FINISH
|
RESET, GETPOWERMETER, GETINVERTERDATA, BATTERYPROTECTION, CONTROL, SETCONTROL, WAITACCEPT, FINISH
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
@ -239,12 +239,14 @@ typedef struct {
|
||||||
bool enabled;
|
bool enabled;
|
||||||
int8_t id;
|
int8_t id;
|
||||||
int8_t target;
|
int8_t target;
|
||||||
bool twoPercent;
|
uint16_t powerMin;
|
||||||
uint16_t powerMax;
|
uint16_t powerMax;
|
||||||
|
|
||||||
|
|
||||||
float power;
|
float power;
|
||||||
uint16_t limit;
|
uint16_t limit;
|
||||||
|
uint16_t limitNew;
|
||||||
|
unsigned long limitTsp;
|
||||||
bool limitAck;
|
bool limitAck;
|
||||||
float dcVoltage;
|
float dcVoltage;
|
||||||
// uint16_t waitingTime;
|
// uint16_t waitingTime;
|
||||||
|
@ -267,6 +269,7 @@ typedef struct {
|
||||||
float battVoltageOn;
|
float battVoltageOn;
|
||||||
float battVoltageOff;
|
float battVoltageOff;
|
||||||
// Advanced
|
// Advanced
|
||||||
|
uint16_t setPoint;
|
||||||
uint8_t refresh;
|
uint8_t refresh;
|
||||||
uint8_t powerTolerance;
|
uint8_t powerTolerance;
|
||||||
uint16_t powerMax;
|
uint16_t powerMax;
|
||||||
|
@ -278,6 +281,7 @@ typedef struct {
|
||||||
float pmPowerL1;
|
float pmPowerL1;
|
||||||
float pmPowerL2;
|
float pmPowerL2;
|
||||||
float pmPowerL3;
|
float pmPowerL3;
|
||||||
|
bool battSwitch;
|
||||||
// uint16_t power; // Aktueller Verbrauch
|
// uint16_t power; // Aktueller Verbrauch
|
||||||
// uint16_t powerLimitAkt; // Aktuelles Limit
|
// uint16_t powerLimitAkt; // Aktuelles Limit
|
||||||
// uint16_t powerHyst; // Hysterese
|
// uint16_t powerHyst; // Hysterese
|
||||||
|
@ -626,7 +630,7 @@ class settings {
|
||||||
mCfg.plugin.zeroExport.groups[group].inverters[inv].enabled = false;
|
mCfg.plugin.zeroExport.groups[group].inverters[inv].enabled = false;
|
||||||
mCfg.plugin.zeroExport.groups[group].inverters[inv].id = -1;
|
mCfg.plugin.zeroExport.groups[group].inverters[inv].id = -1;
|
||||||
mCfg.plugin.zeroExport.groups[group].inverters[inv].target = -1;
|
mCfg.plugin.zeroExport.groups[group].inverters[inv].target = -1;
|
||||||
mCfg.plugin.zeroExport.groups[group].inverters[inv].twoPercent = false;
|
mCfg.plugin.zeroExport.groups[group].inverters[inv].powerMin = 10;
|
||||||
mCfg.plugin.zeroExport.groups[group].inverters[inv].powerMax = 600;
|
mCfg.plugin.zeroExport.groups[group].inverters[inv].powerMax = 600;
|
||||||
}
|
}
|
||||||
// Battery
|
// Battery
|
||||||
|
@ -634,6 +638,7 @@ class settings {
|
||||||
mCfg.plugin.zeroExport.groups[group].battVoltageOn = 0;
|
mCfg.plugin.zeroExport.groups[group].battVoltageOn = 0;
|
||||||
mCfg.plugin.zeroExport.groups[group].battVoltageOff = 0;
|
mCfg.plugin.zeroExport.groups[group].battVoltageOff = 0;
|
||||||
// Advanced
|
// Advanced
|
||||||
|
mCfg.plugin.zeroExport.groups[group].setPoint = 0;
|
||||||
mCfg.plugin.zeroExport.groups[group].refresh = 10;
|
mCfg.plugin.zeroExport.groups[group].refresh = 10;
|
||||||
mCfg.plugin.zeroExport.groups[group].powerTolerance = 10;
|
mCfg.plugin.zeroExport.groups[group].powerTolerance = 10;
|
||||||
mCfg.plugin.zeroExport.groups[group].powerMax = 600;
|
mCfg.plugin.zeroExport.groups[group].powerMax = 600;
|
||||||
|
@ -645,6 +650,7 @@ class settings {
|
||||||
mCfg.plugin.zeroExport.groups[group].pmPowerL2 = 0;
|
mCfg.plugin.zeroExport.groups[group].pmPowerL2 = 0;
|
||||||
mCfg.plugin.zeroExport.groups[group].pmPowerL3 = 0;
|
mCfg.plugin.zeroExport.groups[group].pmPowerL3 = 0;
|
||||||
|
|
||||||
|
mCfg.plugin.zeroExport.groups[group].battSwitch = false;
|
||||||
}
|
}
|
||||||
// snprintf(mCfg.plugin.zeroExport.monitor_url, ZEXPORT_ADDR_LEN, "%s", DEF_ZEXPORT);
|
// snprintf(mCfg.plugin.zeroExport.monitor_url, ZEXPORT_ADDR_LEN, "%s", DEF_ZEXPORT);
|
||||||
// snprintf(mCfg.plugin.zeroExport.tibber_pw, ZEXPORT_ADDR_LEN, "%s", DEF_ZEXPORT);
|
// snprintf(mCfg.plugin.zeroExport.tibber_pw, ZEXPORT_ADDR_LEN, "%s", DEF_ZEXPORT);
|
||||||
|
@ -916,7 +922,7 @@ class settings {
|
||||||
obj[F("enabled")] = mCfg.plugin.zeroExport.groups[group].inverters[inv].enabled;
|
obj[F("enabled")] = mCfg.plugin.zeroExport.groups[group].inverters[inv].enabled;
|
||||||
obj[F("id")] = mCfg.plugin.zeroExport.groups[group].inverters[inv].id;
|
obj[F("id")] = mCfg.plugin.zeroExport.groups[group].inverters[inv].id;
|
||||||
obj[F("target")] = mCfg.plugin.zeroExport.groups[group].inverters[inv].target;
|
obj[F("target")] = mCfg.plugin.zeroExport.groups[group].inverters[inv].target;
|
||||||
obj[F("twoPercent")] = mCfg.plugin.zeroExport.groups[group].inverters[inv].twoPercent;
|
obj[F("powerMin")] = mCfg.plugin.zeroExport.groups[group].inverters[inv].powerMin;
|
||||||
obj[F("powerMax")] = mCfg.plugin.zeroExport.groups[group].inverters[inv].powerMax;
|
obj[F("powerMax")] = mCfg.plugin.zeroExport.groups[group].inverters[inv].powerMax;
|
||||||
} else {
|
} else {
|
||||||
if (obj.containsKey(F("enabled")))
|
if (obj.containsKey(F("enabled")))
|
||||||
|
@ -925,8 +931,8 @@ class settings {
|
||||||
getVal<int8_t>(obj, F("id"), &mCfg.plugin.zeroExport.groups[group].inverters[inv].id);
|
getVal<int8_t>(obj, F("id"), &mCfg.plugin.zeroExport.groups[group].inverters[inv].id);
|
||||||
if (obj.containsKey(F("target")))
|
if (obj.containsKey(F("target")))
|
||||||
getVal<int8_t>(obj, F("target"), &mCfg.plugin.zeroExport.groups[group].inverters[inv].target);
|
getVal<int8_t>(obj, F("target"), &mCfg.plugin.zeroExport.groups[group].inverters[inv].target);
|
||||||
if (obj.containsKey(F("twoPercent")))
|
if (obj.containsKey(F("powerMin")))
|
||||||
getVal<bool>(obj, F("twoPercent"), &mCfg.plugin.zeroExport.groups[group].inverters[inv].twoPercent);
|
getVal<uint16_t>(obj, F("powerMin"), &mCfg.plugin.zeroExport.groups[group].inverters[inv].powerMin);
|
||||||
if (obj.containsKey(F("powerMax")))
|
if (obj.containsKey(F("powerMax")))
|
||||||
getVal<uint16_t>(obj, F("powerMax"), &mCfg.plugin.zeroExport.groups[group].inverters[inv].powerMax);
|
getVal<uint16_t>(obj, F("powerMax"), &mCfg.plugin.zeroExport.groups[group].inverters[inv].powerMax);
|
||||||
}
|
}
|
||||||
|
@ -953,6 +959,7 @@ class settings {
|
||||||
obj[F("battVoltageOn")] = mCfg.plugin.zeroExport.groups[group].battVoltageOn;
|
obj[F("battVoltageOn")] = mCfg.plugin.zeroExport.groups[group].battVoltageOn;
|
||||||
obj[F("battVoltageOff")] = mCfg.plugin.zeroExport.groups[group].battVoltageOff;
|
obj[F("battVoltageOff")] = mCfg.plugin.zeroExport.groups[group].battVoltageOff;
|
||||||
// Advanced
|
// Advanced
|
||||||
|
obj[F("setPoint")] = mCfg.plugin.zeroExport.groups[group].setPoint;
|
||||||
obj[F("refresh")] = mCfg.plugin.zeroExport.groups[group].refresh;
|
obj[F("refresh")] = mCfg.plugin.zeroExport.groups[group].refresh;
|
||||||
obj[F("powerTolerance")] = mCfg.plugin.zeroExport.groups[group].powerTolerance;
|
obj[F("powerTolerance")] = mCfg.plugin.zeroExport.groups[group].powerTolerance;
|
||||||
obj[F("powerMax")] = mCfg.plugin.zeroExport.groups[group].powerMax;
|
obj[F("powerMax")] = mCfg.plugin.zeroExport.groups[group].powerMax;
|
||||||
|
@ -987,6 +994,8 @@ class settings {
|
||||||
if (obj.containsKey(F("battVoltageOff")))
|
if (obj.containsKey(F("battVoltageOff")))
|
||||||
getVal<float>(obj, F("battVoltageOff"), &mCfg.plugin.zeroExport.groups[group].battVoltageOff);
|
getVal<float>(obj, F("battVoltageOff"), &mCfg.plugin.zeroExport.groups[group].battVoltageOff);
|
||||||
// Advanced
|
// Advanced
|
||||||
|
if (obj.containsKey(F("setPoint")))
|
||||||
|
getVal<uint16_t>(obj, F("setPoint"), &mCfg.plugin.zeroExport.groups[group].setPoint);
|
||||||
if (obj.containsKey(F("refresh")))
|
if (obj.containsKey(F("refresh")))
|
||||||
getVal<uint8_t>(obj, F("refresh"), &mCfg.plugin.zeroExport.groups[group].refresh);
|
getVal<uint8_t>(obj, F("refresh"), &mCfg.plugin.zeroExport.groups[group].refresh);
|
||||||
if (obj.containsKey(F("powerTolerance")))
|
if (obj.containsKey(F("powerTolerance")))
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
//-------------------------------------
|
//-------------------------------------
|
||||||
#define VERSION_MAJOR 0
|
#define VERSION_MAJOR 0
|
||||||
#define VERSION_MINOR 8
|
#define VERSION_MINOR 8
|
||||||
#define VERSION_PATCH 89
|
#define VERSION_PATCH 890001
|
||||||
|
|
||||||
//-------------------------------------
|
//-------------------------------------
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -741,7 +741,7 @@ class RestApi {
|
||||||
objGroupInv[F("enabled")] = (bool)mConfig->plugin.zeroExport.groups[group].inverters[inv].enabled;
|
objGroupInv[F("enabled")] = (bool)mConfig->plugin.zeroExport.groups[group].inverters[inv].enabled;
|
||||||
objGroupInv[F("id")] = (int8_t)mConfig->plugin.zeroExport.groups[group].inverters[inv].id;
|
objGroupInv[F("id")] = (int8_t)mConfig->plugin.zeroExport.groups[group].inverters[inv].id;
|
||||||
objGroupInv[F("target")] = (int8_t)mConfig->plugin.zeroExport.groups[group].inverters[inv].target;
|
objGroupInv[F("target")] = (int8_t)mConfig->plugin.zeroExport.groups[group].inverters[inv].target;
|
||||||
objGroupInv[F("twoPercent")] = (bool)mConfig->plugin.zeroExport.groups[group].inverters[inv].twoPercent;
|
objGroupInv[F("powerMin")] = (uint16_t)mConfig->plugin.zeroExport.groups[group].inverters[inv].powerMin;
|
||||||
objGroupInv[F("powerMax")] = (uint16_t)mConfig->plugin.zeroExport.groups[group].inverters[inv].powerMax;
|
objGroupInv[F("powerMax")] = (uint16_t)mConfig->plugin.zeroExport.groups[group].inverters[inv].powerMax;
|
||||||
}
|
}
|
||||||
// Battery
|
// Battery
|
||||||
|
@ -749,6 +749,7 @@ class RestApi {
|
||||||
objGroup[F("battVoltageOn")] = ah::round3((float)mConfig->plugin.zeroExport.groups[group].battVoltageOn);
|
objGroup[F("battVoltageOn")] = ah::round3((float)mConfig->plugin.zeroExport.groups[group].battVoltageOn);
|
||||||
objGroup[F("battVoltageOff")] = ah::round3((float)mConfig->plugin.zeroExport.groups[group].battVoltageOff);
|
objGroup[F("battVoltageOff")] = ah::round3((float)mConfig->plugin.zeroExport.groups[group].battVoltageOff);
|
||||||
// Advanced
|
// Advanced
|
||||||
|
objGroup[F("setPoint")] = (uint16_t)mConfig->plugin.zeroExport.groups[group].setPoint;
|
||||||
objGroup[F("refresh")] = (uint8_t)mConfig->plugin.zeroExport.groups[group].refresh;
|
objGroup[F("refresh")] = (uint8_t)mConfig->plugin.zeroExport.groups[group].refresh;
|
||||||
objGroup[F("powerTolerance")] = (uint8_t)mConfig->plugin.zeroExport.groups[group].powerTolerance;
|
objGroup[F("powerTolerance")] = (uint8_t)mConfig->plugin.zeroExport.groups[group].powerTolerance;
|
||||||
objGroup[F("powerMax")] = (uint16_t)mConfig->plugin.zeroExport.groups[group].powerMax;
|
objGroup[F("powerMax")] = (uint16_t)mConfig->plugin.zeroExport.groups[group].powerMax;
|
||||||
|
@ -1002,7 +1003,7 @@ class RestApi {
|
||||||
mConfig->plugin.zeroExport.groups[group].inverters[inv].enabled = jsonIn[F("inverters")][inv][F("enabled")];
|
mConfig->plugin.zeroExport.groups[group].inverters[inv].enabled = jsonIn[F("inverters")][inv][F("enabled")];
|
||||||
mConfig->plugin.zeroExport.groups[group].inverters[inv].id = jsonIn[F("inverters")][inv][F("id")];
|
mConfig->plugin.zeroExport.groups[group].inverters[inv].id = jsonIn[F("inverters")][inv][F("id")];
|
||||||
mConfig->plugin.zeroExport.groups[group].inverters[inv].target = jsonIn[F("inverters")][inv][F("target")];
|
mConfig->plugin.zeroExport.groups[group].inverters[inv].target = jsonIn[F("inverters")][inv][F("target")];
|
||||||
mConfig->plugin.zeroExport.groups[group].inverters[inv].twoPercent = jsonIn[F("inverters")][inv][F("twoPercent")];
|
mConfig->plugin.zeroExport.groups[group].inverters[inv].powerMin = jsonIn[F("inverters")][inv][F("powerMin")];
|
||||||
mConfig->plugin.zeroExport.groups[group].inverters[inv].powerMax = jsonIn[F("inverters")][inv][F("powerMax")];
|
mConfig->plugin.zeroExport.groups[group].inverters[inv].powerMax = jsonIn[F("inverters")][inv][F("powerMax")];
|
||||||
}
|
}
|
||||||
// Battery
|
// Battery
|
||||||
|
@ -1010,6 +1011,7 @@ class RestApi {
|
||||||
mConfig->plugin.zeroExport.groups[group].battVoltageOn = jsonIn[F("battVoltageOn")];
|
mConfig->plugin.zeroExport.groups[group].battVoltageOn = jsonIn[F("battVoltageOn")];
|
||||||
mConfig->plugin.zeroExport.groups[group].battVoltageOff = jsonIn[F("battVoltageOff")];
|
mConfig->plugin.zeroExport.groups[group].battVoltageOff = jsonIn[F("battVoltageOff")];
|
||||||
// Advanced
|
// Advanced
|
||||||
|
mConfig->plugin.zeroExport.groups[group].setPoint = jsonIn[F("setPoint")];
|
||||||
mConfig->plugin.zeroExport.groups[group].refresh = jsonIn[F("refresh")];
|
mConfig->plugin.zeroExport.groups[group].refresh = jsonIn[F("refresh")];
|
||||||
mConfig->plugin.zeroExport.groups[group].powerTolerance = jsonIn[F("powerTolerance")];
|
mConfig->plugin.zeroExport.groups[group].powerTolerance = jsonIn[F("powerTolerance")];
|
||||||
mConfig->plugin.zeroExport.groups[group].powerMax = jsonIn[F("powerMax")];
|
mConfig->plugin.zeroExport.groups[group].powerMax = jsonIn[F("powerMax")];
|
||||||
|
|
|
@ -1191,7 +1191,7 @@
|
||||||
ml("th", {style: "width: 10%;"}, "{#ZE_GROUP_TAB_INVERTER_ENABLED}"),
|
ml("th", {style: "width: 10%;"}, "{#ZE_GROUP_TAB_INVERTER_ENABLED}"),
|
||||||
ml("th", {}, "{#ZE_GROUP_TAB_INVERTER_NAME}"),
|
ml("th", {}, "{#ZE_GROUP_TAB_INVERTER_NAME}"),
|
||||||
ml("th", {}, "{#ZE_GROUP_TAB_INVERTER_SUM}"),
|
ml("th", {}, "{#ZE_GROUP_TAB_INVERTER_SUM}"),
|
||||||
ml("th", {style: "width: 10%;"}, "{#ZE_GROUP_TAB_INVERTER_TWOPERCENT}"),
|
ml("th", {style: "width: 15%;"}, "{#ZE_GROUP_TAB_INVERTER_POWERMIN}"),
|
||||||
ml("th", {style: "width: 15%;"}, "{#ZE_GROUP_TAB_INVERTER_POWERMAX}"),
|
ml("th", {style: "width: 15%;"}, "{#ZE_GROUP_TAB_INVERTER_POWERMAX}"),
|
||||||
]));
|
]));
|
||||||
|
|
||||||
|
@ -1215,7 +1215,7 @@
|
||||||
),
|
),
|
||||||
ml("td", {},
|
ml("td", {},
|
||||||
ml("div", {}, [
|
ml("div", {}, [
|
||||||
ml("input", {name: "invTwoPercent"+inv, class: "text", id: "invTwoPercent"+inv, type: "checkbox"}, null)
|
ml("input", {name: "invPowerMin"+inv, class: "text", id: "invPowerMin"+inv, type: "number", min: "0", max: "65535"}, null)
|
||||||
]),
|
]),
|
||||||
),
|
),
|
||||||
ml("td", {},
|
ml("td", {},
|
||||||
|
@ -1281,6 +1281,7 @@
|
||||||
]),
|
]),
|
||||||
// Advanced
|
// Advanced
|
||||||
ml("div", {id: "div{#ZE_GROUP_TAB_ADVANCED}", class: "tab-content hide"}, [
|
ml("div", {id: "div{#ZE_GROUP_TAB_ADVANCED}", class: "tab-content hide"}, [
|
||||||
|
divRow("{#ZE_GROUP_TAB_ADVANCED_SETPOINT}", ml("input", {name: "setPoint", class: "text", type: "number", min: "0", max: "65535", value: obj.setPoint}, null)),
|
||||||
divRow("{#ZE_GROUP_TAB_ADVANCED_REFRESH}", ml("input", {name: "refresh", class: "text", type: "number", min: "0", max: "255", value: obj.refresh}, null)),
|
divRow("{#ZE_GROUP_TAB_ADVANCED_REFRESH}", ml("input", {name: "refresh", class: "text", type: "number", min: "0", max: "255", value: obj.refresh}, null)),
|
||||||
divRow("{#ZE_GROUP_TAB_ADVANCED_POWERTOLERANCE}", ml("input", {name: "powerTolerance", class: "text", type: "number", min: "0", max: "255", value: obj.powerTolerance}, null)),
|
divRow("{#ZE_GROUP_TAB_ADVANCED_POWERTOLERANCE}", ml("input", {name: "powerTolerance", class: "text", type: "number", min: "0", max: "255", value: obj.powerTolerance}, null)),
|
||||||
divRow("{#ZE_GROUP_TAB_ADVANCED_POWERMAX}", ml("input", {name: "powerMax", class: "text", type: "number", min: "0", max: "65535", value: obj.powerMax}, null)),
|
divRow("{#ZE_GROUP_TAB_ADVANCED_POWERMAX}", ml("input", {name: "powerMax", class: "text", type: "number", min: "0", max: "65535", value: obj.powerMax}, null)),
|
||||||
|
@ -1350,10 +1351,10 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// - twoPercent
|
// - powerMin
|
||||||
for (var inv = 0; inv < maxInv; inv++) {
|
for (var inv = 0; inv < maxInv; inv++) {
|
||||||
var e = document.getElementById("invTwoPercent"+inv);
|
var e = document.getElementById("invPowerMin"+inv);
|
||||||
e.checked = (obj.inverters[inv].twoPercent);
|
e.value = (obj.inverters[inv].powerMin);
|
||||||
}
|
}
|
||||||
// - powerMax
|
// - powerMax
|
||||||
for (var inv = 0; inv < maxInv; inv++) {
|
for (var inv = 0; inv < maxInv; inv++) {
|
||||||
|
@ -1387,7 +1388,7 @@
|
||||||
q.id = e.options[e.selectedIndex].value;
|
q.id = e.options[e.selectedIndex].value;
|
||||||
var e = document.getElementById("invTarget"+inv);
|
var e = document.getElementById("invTarget"+inv);
|
||||||
q.target = e.options[e.selectedIndex].value;
|
q.target = e.options[e.selectedIndex].value;
|
||||||
q.twoPercent = document.getElementById("invTwoPercent"+inv).checked;
|
q.powerMin = document.getElementById("invPowerMin"+inv).value;
|
||||||
q.powerMax = document.getElementById("invPowerMax"+inv).value;
|
q.powerMax = document.getElementById("invPowerMax"+inv).value;
|
||||||
o.inverters.push(q);
|
o.inverters.push(q);
|
||||||
}
|
}
|
||||||
|
@ -1396,6 +1397,7 @@
|
||||||
o.battVoltageOn = document.getElementsByName("battVoltageOn")[0].value;
|
o.battVoltageOn = document.getElementsByName("battVoltageOn")[0].value;
|
||||||
o.battVoltageOff = document.getElementsByName("battVoltageOff")[0].value;
|
o.battVoltageOff = document.getElementsByName("battVoltageOff")[0].value;
|
||||||
// Advanced
|
// Advanced
|
||||||
|
o.setPoint = document.getElementsByName("setPoint")[0].value;
|
||||||
o.refresh = document.getElementsByName("refresh")[0].value;
|
o.refresh = document.getElementsByName("refresh")[0].value;
|
||||||
o.powerTolerance = document.getElementsByName("powerTolerance")[0].value;
|
o.powerTolerance = document.getElementsByName("powerTolerance")[0].value;
|
||||||
o.powerMax = document.getElementsByName("powerMax")[0].value;
|
o.powerMax = document.getElementsByName("powerMax")[0].value;
|
||||||
|
@ -1446,7 +1448,7 @@
|
||||||
q.id = -1;
|
q.id = -1;
|
||||||
var e = document.getElementById("invTarget"+inv);
|
var e = document.getElementById("invTarget"+inv);
|
||||||
q.target = -1;
|
q.target = -1;
|
||||||
q.twoPercent = false;
|
q.powerMin = 0;
|
||||||
q.powerMax = 0;
|
q.powerMax = 0;
|
||||||
o.inverters.push(q);
|
o.inverters.push(q);
|
||||||
}
|
}
|
||||||
|
@ -1455,6 +1457,7 @@
|
||||||
o.battVoltageOn = 0;
|
o.battVoltageOn = 0;
|
||||||
o.battVoltageOff = 0;
|
o.battVoltageOff = 0;
|
||||||
// Advanced
|
// Advanced
|
||||||
|
o.setPoint = 0;
|
||||||
o.refresh = 10;
|
o.refresh = 10;
|
||||||
o.powerTolerance = 10;
|
o.powerTolerance = 10;
|
||||||
o.powerMax = 600;
|
o.powerMax = 600;
|
||||||
|
|
|
@ -884,9 +884,9 @@
|
||||||
"de": "Gesamt"
|
"de": "Gesamt"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"token": "ZE_GROUP_TAB_INVERTER_TWOPERCENT",
|
"token": "ZE_GROUP_TAB_INVERTER_POWERMIN",
|
||||||
"en": "2%",
|
"en": "Power (Min)",
|
||||||
"de": "2%"
|
"de": "Leistung (Min)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"token": "ZE_GROUP_TAB_INVERTER_POWERMAX",
|
"token": "ZE_GROUP_TAB_INVERTER_POWERMAX",
|
||||||
|
@ -918,6 +918,11 @@
|
||||||
"en": "Advanced",
|
"en": "Advanced",
|
||||||
"de": "Erweitert"
|
"de": "Erweitert"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"token": "ZE_GROUP_TAB_ADVANCED_SETPOINT",
|
||||||
|
"en": "SetPoint (Watt):",
|
||||||
|
"de": "Zielpunkt (Watt):"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"token": "ZE_GROUP_TAB_ADVANCED_REFRESH",
|
"token": "ZE_GROUP_TAB_ADVANCED_REFRESH",
|
||||||
"en": "Refresh rate (sec):",
|
"en": "Refresh rate (sec):",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue