|
|
@@ -160,8 +160,9 @@ textarea {
|
|
|
<input type="number" id="TakeImage_ImageQuality_value1" size="13" min="0" max="63">
|
|
|
</td>
|
|
|
<td class="description">
|
|
|
- Quality index for picture (default = "12" - "0" high ... "63" low) <br>
|
|
|
- Remark: values smaller than 12 can result in a reboot, as the bigger sized JPEG might not fit in the available RAM!
|
|
|
+ Image quality index (default = 12) <br>
|
|
|
+ Input range: 8 [highest quality] ... 63 [lowest quality] <br>
|
|
|
+ Remark: Value < 12 could result in system instabilities!
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr class="expert" id="ex3">
|
|
|
@@ -200,7 +201,8 @@ textarea {
|
|
|
<input type="number" id="TakeImage_Brightness_value1" size="13" min="-2" max="2">
|
|
|
</td>
|
|
|
<td style="font-size: 80%;">
|
|
|
- Image Brightness (-2 .. 2 - default = "0")
|
|
|
+ Image brightness (default = 0) <br>
|
|
|
+ Input range: -2 ... 2
|
|
|
</td>
|
|
|
</tr>
|
|
|
|
|
|
@@ -212,8 +214,8 @@ textarea {
|
|
|
<input type="number" id="TakeImage_Contrast_value1" size="13" min="-2" max="2">
|
|
|
</td>
|
|
|
<td style="font-size: 80%;">
|
|
|
- Image Contrast (-2 .. 2 - default = "0") <br>
|
|
|
- Remark: camera driver is not fully supporting this setting yet (no impact on image)
|
|
|
+ Image contrast (default = 0) <br>
|
|
|
+ Input range: -2 ... 2
|
|
|
</td>
|
|
|
</tr>
|
|
|
|
|
|
@@ -225,8 +227,8 @@ textarea {
|
|
|
<input type="number" id="TakeImage_Saturation_value1" size="13" min="-2" max="2">
|
|
|
</td>
|
|
|
<td style="font-size: 80%;">
|
|
|
- Image Saturation (-2 .. 2 - default = "0") <br>
|
|
|
- Remark: camera driver is not fully supporting this setting yet (no impact on image)
|
|
|
+ Image saturation (default = 0) <br>
|
|
|
+ Input range: -2 ... 2
|
|
|
</td>
|
|
|
</tr>
|
|
|
|
|
|
@@ -281,6 +283,7 @@ textarea {
|
|
|
<option value="default" selected>Default</option>
|
|
|
<option value="highAccuracy" >HighAccuracy</option>
|
|
|
<option value="fast" >Fast</option>
|
|
|
+ <option value="off" >Off</option><!-- add disable aligment algo |01.2023 -->
|
|
|
</select>
|
|
|
</td>
|
|
|
<td style="font-size: 80%;">
|
|
|
@@ -721,7 +724,7 @@ textarea {
|
|
|
<td colspan="3" style="padding-left: 20px;">
|
|
|
<h4>
|
|
|
<input type="checkbox" id="Category_InfluxDB_enabled" value="1" onclick = 'UpdateAfterCategoryCheck()' unchecked >
|
|
|
- <label for=Category_InfluxDB_enabled>InfluxDB</h4><h5>Only InfluxDB v1.x is supported as of now</h5></label>
|
|
|
+ <label for=Category_InfluxDB_enabled>InfluxDB</h4><h5>Only InfluxDB v1.x is supported as of now</h5></label>
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
@@ -788,6 +791,97 @@ textarea {
|
|
|
|
|
|
|
|
|
|
|
|
+ <tr>
|
|
|
+ <td colspan="3" style="padding-left: 20px;">
|
|
|
+ <h4>
|
|
|
+ <input type="checkbox" id="Category_InfluxDBv2_enabled" value="1" onclick = 'UpdateAfterCategoryCheck()' unchecked >
|
|
|
+ <label for=Category_InfluxDBv2_enabled>InfluxDBv2</h4><h5>Only InfluxDB v2.x is configured here, v1.x see above [InfluxDB]</h5></label>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="indent1">
|
|
|
+ <input type="checkbox" id="InfluxDBv2_Uri_enabled" value="1" onclick = 'InvertEnableItem("InfluxDBv2", "Uri")' unchecked >
|
|
|
+ <label for=InfluxDBv2_Uri_enabled><class id="InfluxDBv2_Uri_text" style="color:black;">Uri</class></label>
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ <input type="text" id="InfluxDBv2_Uri_value1">
|
|
|
+ </td>
|
|
|
+ <td style="font-size: 80%;">
|
|
|
+ URI of the HTTP interface to InfluxDB (Version2), without traililing slash, e.g. http://IP-Address:Port
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="indent1">
|
|
|
+ <input type="checkbox" id="InfluxDBv2_Database_enabled" value="1" onclick = 'InvertEnableItem("InfluxDBv2", "Database")' unchecked >
|
|
|
+ <label for=InfluxDBv2_Database_enabled><class id="InfluxDBv2_Database_text" style="color:black;">Database</class></label>
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ <input type="text" id="InfluxDBv2_Database_value1">
|
|
|
+ </td>
|
|
|
+ <td style="font-size: 80%;">
|
|
|
+ Database name in which to publish the read value.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="indent1">
|
|
|
+ <input type="checkbox" id="InfluxDBv2_Measurement_enabled" value="1" onclick = 'InvertEnableItem("InfluxDBv2", "Measurement")' unchecked >
|
|
|
+ <label for=InfluxDBv2_Measurement_enabled><class id="InfluxDBv2_Measurement_text" style="color:black;">Measurement</class></label>
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ <input type="text" id="InfluxDBv2_Measurement_value1">
|
|
|
+ </td>
|
|
|
+ <td style="font-size: 80%;">
|
|
|
+ Measurement name to use to publish the read value.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="indent1">
|
|
|
+ <input type="checkbox" id="InfluxDBv2_Org_enabled" value="1" onclick = 'InvertEnableItem("InfluxDBv2", "Org")' unchecked >
|
|
|
+ <label for=InfluxDBv2_Org_enabled><class id="InfluxDBv2_Org_text" style="color:black;">Org</class></label>
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ <input type="text" id="InfluxDBv2_Org_value1">
|
|
|
+ </td>
|
|
|
+ <td style="font-size: 80%;">
|
|
|
+ Organisation (Org) for InfluxDBv2 authentication
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="indent1">
|
|
|
+ <input type="checkbox" id="InfluxDBv2_Token_enabled" value="1" onclick = 'InvertEnableItem("InfluxDBv2", "Token")' unchecked >
|
|
|
+ <label for=InfluxDBv2_Token_enabled><class id="InfluxDBv2_Token_text" style="color:black;">Token</class></label>
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ <input type="text" id="InfluxDBv2_Token_value1">
|
|
|
+ </td>
|
|
|
+ <td style="font-size: 80%;">
|
|
|
+ Token for InfluxDB authentication
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="indent1" colspan="3">
|
|
|
+ <br>
|
|
|
+ <b>Postprocessing Individual Parameters:
|
|
|
+ <select id="NumbersInfluxDB_value1" onchange="numberInfluxDBChanged()">
|
|
|
+ <option value="0" selected>default</option>
|
|
|
+ <option value="1" >NT</option>
|
|
|
+ <option value="2" >HT</option>
|
|
|
+ </select></b>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="indent1" style="padding-left: 75px;">
|
|
|
+ <input type="checkbox" id="InfluxDBv2_Fieldname_enabled" value="1" onclick = 'InvertEnableItem("InfluxDBv2", "Fieldname")' unchecked >
|
|
|
+ <label for=InfluxDBv2_Fieldname_enabled><class id="InfluxDBv2_Fieldname_text" style="color:black;">Fieldname</class></label>
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ <input type="text" id="InfluxDBv2_Fieldname_value1">
|
|
|
+ </td>
|
|
|
+ <td style="font-size: 80%;">
|
|
|
+ Fieldname to use for saving.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+
|
|
|
<tr>
|
|
|
<td colspan="3" style="padding-left: 20px;">
|
|
|
<h4><input type="checkbox" id="Category_GPIO_enabled" value="1" onclick='UpdateAfterCategoryCheck()' unchecked >
|
|
|
@@ -1487,7 +1581,8 @@ function LoadConfigNeu() {
|
|
|
InitIndivParameter();
|
|
|
|
|
|
UpdateInput();
|
|
|
- UpdateInputIndividual();
|
|
|
+ var sel = document.getElementById("Numbers_value1");
|
|
|
+ UpdateInputIndividual(sel);
|
|
|
UpdateExpertModus();
|
|
|
document.getElementById("divall").style.display = '';
|
|
|
}
|
|
|
@@ -1499,15 +1594,18 @@ function InitIndivParameter()
|
|
|
var _index = document.getElementById("Numbers_value1");
|
|
|
while (_index.length)
|
|
|
_index.remove(0);
|
|
|
+ var _indexInflux = document.getElementById("NumbersInfluxDB_value1");
|
|
|
+ while (_indexInflux.length)
|
|
|
+ _indexInflux.remove(0);
|
|
|
|
|
|
for (var i = 0; i < NUMBERS.length; ++i){
|
|
|
- var option = document.createElement("option");
|
|
|
- option.text = NUMBERS[i]["name"];
|
|
|
- option.value = i;
|
|
|
- _index.add(option);
|
|
|
-
|
|
|
+ var optionInflux = document.createElement("option");
|
|
|
+ optionInflux.text = NUMBERS[i]["name"];
|
|
|
+ optionInflux.value = i;
|
|
|
+ _indexInflux.add(optionInflux);
|
|
|
}
|
|
|
_index.selectedIndex = 0;
|
|
|
+ _indexInflux.selectedIndex = 0;
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -1798,30 +1896,30 @@ function ReadParameter(_param, _cat, _name, _optional, _number = -1){
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-function UpdateInputIndividual()
|
|
|
+function UpdateInputIndividual(sel)
|
|
|
{
|
|
|
if (NUNBERSAkt != -1)
|
|
|
{
|
|
|
ReadParameter(param, "PostProcessing", "DecimalShift", true, NUNBERSAkt)
|
|
|
ReadParameter(param, "PostProcessing", "AnalogDigitalTransitionStart", true, NUNBERSAkt)
|
|
|
ReadParameter(param, "PostProcessing", "MaxRateValue", true, NUNBERSAkt)
|
|
|
- ReadParameter(param, "PostProcessing", "MaxRateType", true, NUNBERSAkt)
|
|
|
-
|
|
|
+ ReadParameter(param, "PostProcessing", "MaxRateType", true, NUNBERSAkt)
|
|
|
ReadParameter(param, "PostProcessing", "ExtendedResolution", false, NUNBERSAkt)
|
|
|
ReadParameter(param, "PostProcessing", "IgnoreLeadingNaN", false, NUNBERSAkt)
|
|
|
ReadParameter(param, "PostProcessing", "AllowNegativeRates", false, NUNBERSAkt)
|
|
|
+ ReadParameter(param, "InfluxDBv2", "Fieldname", true, NUNBERSAkt)
|
|
|
}
|
|
|
|
|
|
- var sel = document.getElementById("Numbers_value1");
|
|
|
+// var sel = document.getElementById("Numbers_value1");
|
|
|
NUNBERSAkt = sel.selectedIndex;
|
|
|
WriteParameter(param, category, "PostProcessing", "DecimalShift", true, NUNBERSAkt);
|
|
|
WriteParameter(param, category, "PostProcessing", "AnalogDigitalTransitionStart", true, NUNBERSAkt);
|
|
|
WriteParameter(param, category, "PostProcessing", "MaxRateValue", true, NUNBERSAkt);
|
|
|
WriteParameter(param, category, "PostProcessing", "MaxRateType", true, NUNBERSAkt);
|
|
|
-
|
|
|
WriteParameter(param, category, "PostProcessing", "ExtendedResolution", false, NUNBERSAkt);
|
|
|
WriteParameter(param, category, "PostProcessing", "IgnoreLeadingNaN", false, NUNBERSAkt);
|
|
|
WriteParameter(param, category, "PostProcessing", "AllowNegativeRates", false, NUNBERSAkt);
|
|
|
+ WriteParameter(param, category, "InfluxDBv2", "Fieldname", true, NUNBERSAkt);
|
|
|
}
|
|
|
|
|
|
function UpdateInput() {
|
|
|
@@ -1830,6 +1928,7 @@ function UpdateInput() {
|
|
|
document.getElementById("Category_MQTT_enabled").checked = category["MQTT"]["enabled"];
|
|
|
document.getElementById("Category_GPIO_enabled").checked = category["GPIO"]["enabled"];
|
|
|
document.getElementById("Category_InfluxDB_enabled").checked = category["InfluxDB"]["enabled"];
|
|
|
+ document.getElementById("Category_InfluxDBv2_enabled").checked = category["InfluxDBv2"]["enabled"];
|
|
|
setVisible("GPIO_item", category["GPIO"]["enabled"]);
|
|
|
|
|
|
WriteParameter(param, category, "TakeImage", "RawImagesLocation", true);
|
|
|
@@ -1876,6 +1975,13 @@ function UpdateInput() {
|
|
|
WriteParameter(param, category, "InfluxDB", "user", true);
|
|
|
WriteParameter(param, category, "InfluxDB", "password", true);
|
|
|
|
|
|
+ WriteParameter(param, category, "InfluxDBv2", "Uri", true);
|
|
|
+ WriteParameter(param, category, "InfluxDBv2", "Database", true);
|
|
|
+ WriteParameter(param, category, "InfluxDBv2", "Measurement", true);
|
|
|
+ WriteParameter(param, category, "InfluxDBv2", "Org", true);
|
|
|
+ WriteParameter(param, category, "InfluxDBv2", "Token", true);
|
|
|
+ WriteParameter(param, category, "InfluxDBv2", "Fieldname", true);
|
|
|
+
|
|
|
WriteParameter(param, category, "GPIO", "IO0", true);
|
|
|
WriteParameter(param, category, "GPIO", "IO1", true);
|
|
|
WriteParameter(param, category, "GPIO", "IO3", true);
|
|
|
@@ -1951,6 +2057,7 @@ function ReadParameterAll()
|
|
|
category["Digits"]["enabled"] = document.getElementById("Category_Digits_enabled").checked;
|
|
|
category["MQTT"]["enabled"] = document.getElementById("Category_MQTT_enabled").checked;
|
|
|
category["InfluxDB"]["enabled"] = document.getElementById("Category_InfluxDB_enabled").checked;
|
|
|
+ category["InfluxDBv2"]["enabled"] = document.getElementById("Category_InfluxDBv2_enabled").checked;
|
|
|
category["GPIO"]["enabled"] = document.getElementById("Category_GPIO_enabled").checked;
|
|
|
|
|
|
ReadParameter(param, "TakeImage", "RawImagesLocation", true);
|
|
|
@@ -1978,8 +2085,8 @@ function ReadParameterAll()
|
|
|
ReadParameter(param, "Analog", "ROIImagesLocation", true);
|
|
|
ReadParameter(param, "Analog", "ROIImagesRetention", true);
|
|
|
|
|
|
- ReadParameter(param, "PostProcessing", "PreValueUse", false);
|
|
|
- ReadParameter(param, "PostProcessing", "PreValueAgeStartup", true);
|
|
|
+ ReadParameter(param, "PostProcessing", "PreValueUse", false);
|
|
|
+ ReadParameter(param, "PostProcessing", "PreValueAgeStartup", true);
|
|
|
ReadParameter(param, "PostProcessing", "ErrorMessage", false);
|
|
|
ReadParameter(param, "PostProcessing", "CheckDigitIncreaseConsistency", false);
|
|
|
|
|
|
@@ -1998,6 +2105,13 @@ function ReadParameterAll()
|
|
|
ReadParameter(param, "InfluxDB", "user", true);
|
|
|
ReadParameter(param, "InfluxDB", "password", true);
|
|
|
|
|
|
+ ReadParameter(param, "InfluxDBv2", "Uri", true);
|
|
|
+ ReadParameter(param, "InfluxDBv2", "Database", true);
|
|
|
+ ReadParameter(param, "InfluxDBv2", "Measurement", true);
|
|
|
+ ReadParameter(param, "InfluxDBv2", "Org", true);
|
|
|
+ ReadParameter(param, "InfluxDBv2", "Token", true);
|
|
|
+// ReadParameter(param, "InfluxDB", "Fieldname", true);
|
|
|
+
|
|
|
ReadParameter(param, "GPIO", "IO0", true);
|
|
|
ReadParameter(param, "GPIO", "IO1", true);
|
|
|
ReadParameter(param, "GPIO", "IO3", true);
|
|
|
@@ -2029,7 +2143,8 @@ function ReadParameterAll()
|
|
|
ReadParameter(param, "System", "TimeServer", true);
|
|
|
ReadParameter(param, "System", "RSSIThreshold", true);
|
|
|
|
|
|
- UpdateInputIndividual();
|
|
|
+ var sel = document.getElementById("Numbers_value1");
|
|
|
+ UpdateInputIndividual(sel);
|
|
|
|
|
|
// FormatDecimalValue(param, "PostProcessing", "MaxRateValue");
|
|
|
}
|
|
|
@@ -2049,10 +2164,12 @@ function UpdateAfterCategoryCheck() {
|
|
|
category["Digits"]["enabled"] = document.getElementById("Category_Digits_enabled").checked;
|
|
|
category["MQTT"]["enabled"] = document.getElementById("Category_MQTT_enabled").checked;
|
|
|
category["InfluxDB"]["enabled"] = document.getElementById("Category_InfluxDB_enabled").checked;
|
|
|
+ category["InfluxDBv2"]["enabled"] = document.getElementById("Category_InfluxDBv2_enabled").checked;
|
|
|
category["GPIO"]["enabled"] = document.getElementById("Category_GPIO_enabled").checked;
|
|
|
|
|
|
UpdateInput();
|
|
|
- UpdateInputIndividual();
|
|
|
+ var sel = document.getElementById("Numbers_value1");
|
|
|
+ UpdateInputIndividual(sel);
|
|
|
}
|
|
|
|
|
|
function UpdateExpertModus()
|
|
|
@@ -2103,7 +2220,7 @@ function saveTextAsFile()
|
|
|
ReadParameterAll();
|
|
|
WriteConfigININew();
|
|
|
SaveConfigToServer(domainname);
|
|
|
- firework.launch('Configuration got updated. Please reboot to activate changes!', 'success', 5000);
|
|
|
+ firework.launch('Configuration got updated. It will get applied after the next reboot!', 'success', 5000);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -2129,7 +2246,24 @@ function editConfigDirect() {
|
|
|
|
|
|
function numberChanged()
|
|
|
{
|
|
|
- UpdateInputIndividual();
|
|
|
+ var sel = document.getElementById("Numbers_value1");
|
|
|
+ _neu = sel.selectedIndex;
|
|
|
+ UpdateInputIndividual(sel);
|
|
|
+
|
|
|
+ var _selInflux = document.getElementById("NumbersInfluxDB_value1");
|
|
|
+ if (_selInflux.selectedIndex != _neu)
|
|
|
+ _selInflux.selectedIndex = _neu
|
|
|
+}
|
|
|
+
|
|
|
+function numberInfluxDBChanged()
|
|
|
+{
|
|
|
+ var sel = document.getElementById("NumbersInfluxDB_value1");
|
|
|
+ _neu = sel.selectedIndex;
|
|
|
+ UpdateInputIndividual(sel);
|
|
|
+
|
|
|
+ var _sel2 = document.getElementById("Numbers_value1");
|
|
|
+ if (_sel2.selectedIndex != _neu)
|
|
|
+ _sel2.selectedIndex = _neu
|
|
|
}
|
|
|
|
|
|
LoadConfigNeu();
|