Implement InfluxDB v2 (#2004)

* Implement InfluxDBv2 Innitial

* Update incl. UI

* Correct UI

* Update UI - Indiv. Param.

* Update edit_config_param.html

* Correct Timeshift

* Update Fieldname
This commit is contained in:
jomjol
2023-02-09 20:13:08 +01:00
committed by GitHub
parent 795bcd0d21
commit 1acd72d33e
13 changed files with 578 additions and 40 deletions

View File

@@ -456,7 +456,7 @@ textarea {
</td>
</tr>
<tr>
<td class="indent1">
<td class="indent1" style="padding-left: 75px;">
<input type="checkbox" id="PostProcessing_AllowNegativeRates_enabled" value="1" onclick = 'InvertEnableItem("PostProcessing", "AllowNegativeRates")' unchecked >
<label for=PostProcessing_AllowNegativeRates_enabled><class id="PostProcessing_AllowNegativeRates_text" style="color:black;">AllowNegativeRates</class></label>
</td>
@@ -471,7 +471,7 @@ textarea {
</td>
</tr>
<tr>
<td class="indent1">
<td class="indent1" style="padding-left: 75px;">
<input type="checkbox" id="PostProcessing_DecimalShift_enabled" value="1" onclick = 'InvertEnableItem("PostProcessing", "DecimalShift")' unchecked >
<label for=PostProcessing_DecimalShift_enabled><class id="PostProcessing_DecimalShift_text" style="color:black;">DecimalShift</class></label>
</td>
@@ -484,7 +484,7 @@ textarea {
</td>
</tr>
<tr>
<td class="indent1">
<td class="indent1" style="padding-left: 75px;">
<input type="checkbox" id="PostProcessing_AnalogDigitalTransitionStart_enabled" value="1" onclick = 'InvertEnableItem("PostProcessing", "AnalogDigitalTransitionStart")' unchecked >
<label for=PostProcessing_AnalogDigitalTransitionStart_enabled><class id="PostProcessing_AnalogDigitalTransitionStart_text" style="color:black;">AnalogDigitalTransitionStart</class></label>
</td>
@@ -498,7 +498,7 @@ textarea {
</tr>
<tr>
<td class="indent1">
<td class="indent1" style="padding-left: 75px;">
<input type="checkbox" id="PostProcessing_MaxRateValue_enabled" value="1" onclick = 'InvertEnableItem("PostProcessing", "MaxRateValue")' unchecked >
<label for=PostProcessing_MaxRateValue_enabled><class id="PostProcessing_MaxRateValue_text" style="color:black;">MaxRateValue</class></label>
</td>
@@ -510,7 +510,7 @@ textarea {
</td>
</tr>
<tr>
<td class="indent1">
<td class="indent1" style="padding-left: 75px;">
<input type="checkbox" id="PostProcessing_MaxRateType_enabled" value="1" onclick = 'InvertEnableItem("PostProcessing", "MaxRateType")' unchecked >
<label for=PostProcessing_MaxRateType_enabled><class id="PostProcessing_MaxRateType_text" style="color:black;">MaxRateType</class></label>
</td>
@@ -525,7 +525,7 @@ textarea {
</td>
</tr>
<tr>
<td class="indent1">
<td class="indent1" style="padding-left: 75px;">
<input type="checkbox" id="PostProcessing_ExtendedResolution_enabled" value="1" onclick = 'InvertEnableItem("PostProcessing", "ExtendedResolution")' unchecked >
<label for=PostProcessing_ExtendedResolution_enabled><class id="PostProcessing_ExtendedResolution_text" style="color:black;">ExtendedResolution</class></label>
</td>
@@ -541,7 +541,7 @@ textarea {
</tr>
<tr>
<td id="ex121" class="indent1">
<td id="ex121" class="indent1" style="padding-left: 75px;">
<input type="checkbox" id="PostProcessing_IgnoreLeadingNaN_enabled" value="1" onclick = 'InvertEnableItem("PostProcessing", "IgnoreLeadingNaN")' unchecked >
<label for=PostProcessing_IgnoreLeadingNaN_enabled><class id="PostProcessing_IgnoreLeadingNaN_text" style="color:black;">IgnoreLeadingNaN</class></label>
</td>
@@ -701,7 +701,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, v2.x has a changed interface</h5></label>
<label for=Category_InfluxDB_enabled>InfluxDB</h4><h5>Only InfluxDB v1.x is configured here - v2.x see below [InfluxDBv2]</h5></label>
</td>
</tr>
<tr>
@@ -765,6 +765,109 @@ textarea {
</td>
</tr>
<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 >
@@ -1464,7 +1567,8 @@ function LoadConfigNeu() {
InitIndivParameter();
UpdateInput();
UpdateInputIndividual();
var sel = document.getElementById("Numbers_value1");
UpdateInputIndividual(sel);
UpdateExpertModus();
document.getElementById("divall").style.display = '';
}
@@ -1476,14 +1580,23 @@ 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;
}
@@ -1768,7 +1881,7 @@ function ReadParameter(_param, _cat, _name, _optional, _number = -1){
}
}
function UpdateInputIndividual()
function UpdateInputIndividual(sel)
{
if (NUNBERSAkt != -1)
{
@@ -1779,9 +1892,10 @@ function UpdateInputIndividual()
ReadParameter(param, "PostProcessing", "ExtendedResolution", true, NUNBERSAkt)
ReadParameter(param, "PostProcessing", "IgnoreLeadingNaN", true, NUNBERSAkt)
ReadParameter(param, "PostProcessing", "AllowNegativeRates", true, 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);
@@ -1790,6 +1904,7 @@ function UpdateInputIndividual()
WriteParameter(param, category, "PostProcessing", "ExtendedResolution", true, NUNBERSAkt);
WriteParameter(param, category, "PostProcessing", "IgnoreLeadingNaN", true, NUNBERSAkt);
WriteParameter(param, category, "PostProcessing", "AllowNegativeRates", true, NUNBERSAkt);
WriteParameter(param, category, "InfluxDBv2", "Fieldname", true, NUNBERSAkt);
}
function UpdateInput() {
@@ -1798,6 +1913,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, "MakeImage", "LogImageLocation", true);
@@ -1844,6 +1960,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);
@@ -1919,6 +2042,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, "MakeImage", "LogImageLocation", true);
@@ -1948,7 +2072,6 @@ function ReadParameterAll()
ReadParameter(param, "PostProcessing", "PreValueUse", true);
ReadParameter(param, "PostProcessing", "PreValueAgeStartup", true);
// ReadParameter(param, "PostProcessing", "AllowNegativeRates", true);
ReadParameter(param, "PostProcessing", "ErrorMessage", true);
ReadParameter(param, "PostProcessing", "CheckDigitIncreaseConsistency", true);
@@ -1967,6 +2090,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);
@@ -1998,7 +2128,8 @@ function ReadParameterAll()
ReadParameter(param, "System", "TimeServer", true);
ReadParameter(param, "System", "RSSIThreashold", true);
UpdateInputIndividual();
var sel = document.getElementById("Numbers_value1");
UpdateInputIndividual(sel);
// FormatDecimalValue(param, "PostProcessing", "MaxRateValue");
}
@@ -2018,10 +2149,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()
@@ -2098,9 +2231,26 @@ 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();
</script>