Просмотр исходного кода

Remove Autostart parameter and make the flow to be always enabled (#3423)

* removed Autostart parameter and make it enabled by default

* .

* show menu entry in UI

* cleanup migration

* .

* .

* .

* .

* .

* .

* .

* .
CaCO3 1 год назад
Родитель
Сommit
708fd68cf5

+ 3 - 6
code/components/jomjol_flowcontroll/ClassFlowControll.cpp

@@ -196,7 +196,7 @@ bool ClassFlowControll::StartMQTTService()
 
 void ClassFlowControll::SetInitialParameter(void)
 {
-    AutoStart = false;
+    AutoStart = true;
     SetupModeActive = false;
     AutoInterval = 10; // Minutes
     flowdigit = NULL;
@@ -210,7 +210,8 @@ void ClassFlowControll::SetInitialParameter(void)
 
 bool ClassFlowControll::getIsAutoStart(void)
 {
-    return AutoStart;
+    //return AutoStart;
+    return true; // Flow must always be enabled, else the manual trigger (REST, MQTT) will not work!
 }
 
 
@@ -557,10 +558,6 @@ bool ClassFlowControll::ReadParameter(FILE* pfile, string& aktparamgraph)
 
     while (this->getNextLine(pfile, &aktparamgraph) && !this->isNewParagraph(aktparamgraph)) {
         splitted = ZerlegeZeile(aktparamgraph, " =");
-	    
-        if ((toUpper(splitted[0]) == "AUTOSTART") && (splitted.size() > 1)) {
-            AutoStart = alphanumericToBoolean(splitted[1]);
-        }
 
         if ((toUpper(splitted[0]) == "INTERVAL") && (splitted.size() > 1)) {
             if (isStringNumeric(splitted[1]))

+ 1 - 2
code/components/jomjol_flowcontroll/MainFlowControl.cpp

@@ -422,8 +422,7 @@ esp_err_t handler_flow_start(httpd_req_t *req)
     else
     {
         LogFile.WriteToFile(ESP_LOG_WARN, TAG, "Flow start triggered by REST API, but flow is not active!");
-        const char *resp_str = "WARNING: Flow start triggered by REST API, but flow is not active";
-        httpd_resp_send(req, resp_str, HTTPD_RESP_USE_STRLEN);
+        httpd_resp_send_err(req, HTTPD_403_FORBIDDEN, "Flow start triggered by REST API, but flow is not active");
     }
 
 #ifdef DEBUG_DETAIL_ON

+ 2 - 3
code/main/main.cpp

@@ -727,8 +727,7 @@ void migrateConfiguration(void) {
         }
         else if (section == "[AutoTimer]") {
             migrated = migrated | replaceString(configLines[i], "Intervall", "Interval");
-            migrated = migrated | replaceString(configLines[i], ";AutoStart = true", ";AutoStart = false"); // Set it to its default value
-            migrated = migrated | replaceString(configLines[i], ";AutoStart", "AutoStart");                 // Enable it
+            migrated = migrated | replaceString(configLines[i], "Autostart", ";UNUSED_PARAMETER");          // This parameter is no longer used
         }
         else if (section == "[Debug]") {
             migrated = migrated | replaceString(configLines[i], "Logfile ", "LogLevel "); // Whitespace needed so it does not match `LogfileRetentionInDays`
@@ -741,7 +740,7 @@ void migrateConfiguration(void) {
         else if (section == "[System]") {
             migrated = migrated | replaceString(configLines[i], "RSSIThreashold", "RSSIThreshold");
             migrated = migrated | replaceString(configLines[i], "AutoAdjustSummertime", ";UNUSED_PARAMETER"); // This parameter is no longer used
-
+            
             migrated = migrated | replaceString(configLines[i], ";SetupMode = true", ";SetupMode = false"); // Set it to its default value
             migrated = migrated | replaceString(configLines[i], ";SetupMode", "SetupMode");                 // Enable it
         }

+ 1 - 8
param-docs/parameter-pages/AutoTimer/AutoStart.md

@@ -2,11 +2,4 @@
 Default Value: `true`
 
 !!! Warning
-    This is an **Expert Parameter**! Only change it if you understand what it does!
-
-Automatically start the Flow (Digitization Rounds) immediately after power up.
-
-!!! Note
-    Typically this is set to `true`.
-    The main reasons to set it to `false` is when you want to trigger it manually using the
-    [REST API](../REST-API) or [MQTT-API](../MQTT-API) or for debugging.
+This parameter is no longer available. The flow is now always enabled. If you want it to be disabled, set an interval which is high enough (eg. 1440 = 24h).

+ 4 - 0
param-docs/parameter-pages/AutoTimer/Interval.md

@@ -4,4 +4,8 @@ Default Value: `5`
 Unit: Minutes
 
 Interval in which the Flow (Digitization Round) is run.
+It will run immediately on startup and then the next time after the given interval.
 If a round takes longer than this interval, the next round gets postponed until the current round completes.
+
+!!! Note
+If you want the flow to be disabled, set an interval which is high enough (eg. 1440 = 24h).

+ 0 - 1
sd-card/config/config.ini

@@ -124,7 +124,6 @@ LEDNumbers = 2
 LEDColor = 150 150 150 
 
 [AutoTimer]
-AutoStart = true
 Interval = 5
 
 [DataLogging]

+ 0 - 1
sd-card/demo/config.ini

@@ -115,7 +115,6 @@ LEDNumbers = 2
 LEDColor = 150 150 150
 
 [AutoTimer]
-AutoStart = true
 Interval = 1
 
 [DataLogging]

+ 4 - 2
sd-card/html/edit_config_template.html

@@ -1920,6 +1920,7 @@
 
 
 		<!------------- Autotimer ------------------>
+		<!--
 		<tr style="border-bottom: 2px solid lightgray;">
 			<td colspan="3" style="padding-left: 0px; padding-bottom: 3px;"><h4>Auto Timer</h4></td>
 		</tr>
@@ -1936,6 +1937,7 @@
 			</td>
 			<td>$TOOLTIP_AutoTimer_AutoStart</td>
 		</tr>
+		-->
 
 		<tr>
 			<td class="indent1">
@@ -2381,7 +2383,7 @@ function UpdateInput() {
     WriteParameter(param, category, "GPIO", "LEDNumbers", false);
     WriteParameter(param, category, "GPIO", "LEDColor", false);
 
-    WriteParameter(param, category, "AutoTimer", "AutoStart", false);	
+    //WriteParameter(param, category, "AutoTimer", "AutoStart", false);	
     WriteParameter(param, category, "AutoTimer", "Interval", false);
 
     WriteParameter(param, category, "DataLogging", "DataLogActive", false);	
@@ -2556,7 +2558,7 @@ function ReadParameterAll() {
     param["GPIO"]["LEDNumbers"]["found"] = true;
     param["GPIO"]["LEDColor"]["found"] = true;
 
-    ReadParameter(param, "AutoTimer", "AutoStart", false);
+    //ReadParameter(param, "AutoTimer", "AutoStart", false);
     ReadParameter(param, "AutoTimer", "Interval", false);
     
     ReadParameter(param, "DataLogging", "DataLogActive", false);

+ 8 - 6
sd-card/html/index.html

@@ -159,7 +159,7 @@
     </li>
     <li id="ManualControl" style="display:none;"><a>Manual Control <i class="arrow down"></i></a> <!-- Workaround: Hide menu if no entry is available -->
         <ul class="submenu" style="width: 300px">
-            <!--<li><a href="#" onclick="flow_start()">Start Round</a></li>--> <!-- Needs to be adapted on code side first to ensure proper user feedback -->
+            <li><a href="#" onclick="flow_start()">Start Round</a></li>
             <li id="HASendDiscovery" style="width: 300px" style="display:none;"><a href="#" onclick="HA_send_discovery()">Resend Homeassistant Discovery</a></li>
         </ul>
     </li>
@@ -170,6 +170,7 @@
 
 <span id="Version" style="font-size: 10px; margin-top: -5px;padding-left: 10px;">Loading version...</span>
 
+<!-- # Disabled footer, since it wastes a lot of space and the images are broken
 <div class="footer">
     <div class="footer-section">
        <span>Support & Contact Us</span>
@@ -189,7 +190,7 @@
           <img src="https://github.com/jomjol/AI-on-the-edge-device/images/paypal.png" alt="PayPal" style="width: 60px; height: auto;">
        </a>
     </div>
- </div>
+ </div> -->
 
 <script type="text/javascript">
     LoadHostname();
@@ -203,13 +204,14 @@
     console.log("Loading page: " + getCookie("page"));
     document.getElementById('maincontent').src = getCookie("page");
 
-    /*
+    
     function flow_start() {
     var url = getDomainname() + '/flow_start'; 
 		var xhttp = new XMLHttpRequest();
 		xhttp.onreadystatechange = function() {
 			if (this.readyState == 4 && this.status == 200) {
-				if (xhttp.responseText.substring(0,3) == "001") {
+                firework.launch(xhttp.responseText, 'success', 5000);
+			    /*if (xhttp.responseText.substring(0,3) == "001") {
 					firework.launch('Flow start triggered', 'success', 5000);
                     window.location.reload();
 				}
@@ -218,13 +220,13 @@
 				}
 				else if (xhttp.responseText.substring(0,3) == "099") {
 					firework.launch('Flow start triggered, but start not possible (no flow task available)', 'danger', 5000);
-				}
+                }*/
 			}
 		}
 		xhttp.open("GET", url, true);
 		xhttp.send();
     }
-    */
+    
 
     function HA_send_discovery_visibility()	{
 		loadConfig(domainname); 

+ 1 - 1
sd-card/html/readconfigparam.js

@@ -267,7 +267,7 @@ function ParseConfig() {
     category[catname]["enabled"] = false;
     category[catname]["found"] = false;
     param[catname] = new Object();
-    ParamAddValue(param, catname, "AutoStart");
+    //ParamAddValue(param, catname, "AutoStart");
     ParamAddValue(param, catname, "Interval");     
 
     var catname = "DataLogging";