Browse Source

0.1.2, alpha, bugfixes
clearESP sketch added
binaries included

FloKra 6 years ago
parent
commit
4f36368118

BIN
binaries/WiFiSwitch.ino.generic_ESP8266_1M.bin


BIN
binaries/WiFiSwitch.ino.generic_ESP8285_1M.bin


+ 10 - 1
src/WiFiSwitch/Buttonhandling.ino

@@ -20,6 +20,14 @@ void buttonAction(byte btn) {
       if (strlen(mqtt_topic_out_3) > 0) mqttclient.publish(mqtt_topic_out_3, mqtt_payload_out_3, mqtt_btnRetain);
       break;
   }
+
+  if (led_enabled[btn]) {
+    // blink LED when hold action is triggered
+    bool ledState = digitalRead(leds_pins[btn]);
+    digitalWrite(leds_pins[btn], !ledState);
+    delay(250);
+    digitalWrite(leds_pins[btn], ledState);
+  }
 }
 
 void buttonHoldAction(byte btn) {
@@ -37,11 +45,12 @@ void buttonHoldAction(byte btn) {
       if (strlen(mqtt_topic_out_hold_3) > 0) mqttclient.publish(mqtt_topic_out_hold_3, mqtt_payload_out_hold_3, mqtt_btnRetain);
       break;
   }
+
   if (led_enabled[btn]) {
     // blink LED when hold action is triggered
     bool ledState = digitalRead(leds_pins[btn]);
     digitalWrite(leds_pins[btn], !ledState);
-    delay(500);
+    delay(250);
     digitalWrite(leds_pins[btn], ledState);
   }
 }

+ 5 - 17
src/WiFiSwitch/WiFiSwitch.ino

@@ -38,9 +38,6 @@
 
 #define CLEARCONF_TOKEN "TUES"
 
-#define MAIN_SLEEP 10
-
-
 // pin assignments, total relais/button count and default logic levels
 // can only be changed at compile time here
 // only use GPIO 0, 2, 4, 5, 12, 13, 14 !!
@@ -129,18 +126,15 @@ int buttonHoldTime = BUTTON_HOLD_TIME;
 boolean relais_enabled[3] = {true, false, false};
 boolean button_enabled[3] = {true, false, false};
 boolean led_enabled[3] = {false, false, false};
-int sleep = MAIN_SLEEP;
 byte hldToRel[3] = {0, 0, 0};
 
 // global variables
 long mqttLastReconnectAttempt = 0;
 int mqttReconnects = 0;
 boolean relais_state[RELAIS_COUNT];
-
 byte relais_pins[3];
 byte buttons_pins[3];
 byte leds_pins[3];
-
 boolean useDomoticz = false; // will be set to true in setup() if idx-values other than 0 are configured
 boolean domoticzOutParseData = false; // indicates that domoticz/out json data is buffered, will then be parsed in next loop() run
 boolean domoticzOutParserBusy = false; // indicates that domoticz/out json data is currently processed - no futher data will be accepted until finished
@@ -149,14 +143,11 @@ boolean updateDomoticz[3] = { true, true, true }; // flag to update domoticz for
 byte lastSwitchSource[3] = {0, 0, 0}; // 0 = button, 1 = serial/mqtt cmd, 2 = web, 3 = domoticz/out
 unsigned long lastSwitchTime[3] = { 0, 0, 0 }; // this is set to millis() when relais was toggled by button or web. domoticz/out updates for this Idx are then filtered out for [dismissUpdateFromDomoticzTimeout]
 int dismissUpdateFromDomoticzTimeout = 1500;
-
 char cmdPayload[101]; // buffer for commands
 boolean cmdInQueue = false; // command is queued and will be processed next loop() run
-
 bool saveConfigToFlash = false;
 bool saveConfig2ToFlash = false;
 bool saveConfigHwToFlash = false;
-
 byte mqttMode = 0;
 
 WiFiClient espClient;
@@ -364,27 +355,25 @@ void setup() {
 
 void loop() {
   checkMillis();
-  yield();
   
   persWM.handleWiFi(); //in non-blocking mode, handleWiFi must be called in the main loop
+  
   yield();
 
   dnsServer.processNextRequest();
-  yield();
-  
+   
   httpServer.handleClient();
   
   yield();
 
   mqttHandleConnection();
-  yield();
-
+  
   checkButtonStates();
+  
   yield();
 
   evalCmd();
-  yield();
-
+  
   if ( domoticzOutParseData ) {
     parseDomoticzOut();
     yield();
@@ -395,6 +384,5 @@ void loop() {
     yield();
   }
 
-  delay(sleep); // save energy by sleeping, 50ms does not affect button and web
 } //void loop
 

+ 1 - 11
src/WiFiSwitch/config.ino

@@ -64,11 +64,6 @@ bool setConfig(char* param, char* value) {
   else if ( strcmp(param, "allOnOffTop") == 0 ) {
     strlcpy(mqtt_allOnOffTopic, value, 51);
   }
-  else if ( strcmp(param, "sleep") == 0 ) {
-    if (atoi(value) >= 0 && atoi(value) <= 250) {
-      sleep = atoi(value);
-    }
-  }
 
   //confdata2
   else if ( strcmp(param, "btnRet") == 0 ) {
@@ -301,8 +296,6 @@ void printConfig() {
   Serial.println(domoticz_out_topic);
   Serial.print("allOnOffTop: ");
   Serial.println(mqtt_allOnOffTopic);
-  Serial.print("sleep: ");
-  Serial.println(sleep);
   Serial.println();
 }
 void printConfig2() {
@@ -485,8 +478,6 @@ bool loadConfig() { // loadConfig 1
       strlcpy(domoticz_out_topic, json["domOutTop"] | "", 51);
       strlcpy(mqtt_allOnOffTopic, json["allOnOffTop"] | "", 51);
 
-      sleep = atoi(json["sleep"] | "");
-
       Serial.println("Loaded config values:");
       printConfig();
       return true;
@@ -691,8 +682,7 @@ bool saveConfig() { // safeConfig
   json["willMsg"] = mqtt_willMsg;
   json["domOutTop"] = domoticz_out_topic;
   json["allOnOffTop"] = mqtt_allOnOffTopic;
-  json["sleep"] = sleep;
-
+  
   yield();
 
   File configFile = SPIFFS.open("/conf.json", "w");

+ 1 - 4
src/WiFiSwitch/httpServer.ino

@@ -116,8 +116,7 @@ LastWill Qos *: <select name='willQos' id='willQos'><option>0</option><option>1<
 LastWill Retain *: <input type='checkbox' name='willRet' id='willRet'/><br>
 LastWill Message *: <input type='text' name='willMsg' id='willMsg'/><br><br>
 Domoticz Out Topic *: <input type='text' name='domOutTop' id='domOutTop'/><br><br>
-All ON/OFF Topic *: <input type='text' name='allOnOffTop' id='allOnOffTop'/><br><br>
-Sleep: <input type='number' name='sleep' id='sleep'/><br>
+All ON/OFF Topic *: <input type='text' name='allOnOffTop' id='allOnOffTop'/><br>
 <br>
 <input type='submit' value='Save'/>
 </form>
@@ -186,7 +185,6 @@ Sleep: <input type='number' name='sleep' id='sleep'/><br>
         g('willMsg').value = data.willMsg;
         g('domOutTop').value = data.domOutTop;
         g('allOnOffTop').value = data.allOnOffTop;
-        g('sleep').value = data.sleep;
         xhttp = null;
         reqFin = true;
        }
@@ -688,7 +686,6 @@ void httpServerInit() {
       json["willMsg"] = mqtt_willMsg;
       json["domOutTop"] = domoticz_out_topic;
       json["allOnOffTop"] = mqtt_allOnOffTopic;
-      json["sleep"] = sleep;
 
       yield();
 

+ 1 - 0
src/WiFiSwitch/relais.ino

@@ -104,4 +104,5 @@ void relais_handleImpulseTimeout() {
     }
   }
 }
+
 

+ 1 - 3
src/WiFiSwitch/data/conf.htm → src/WiFiSwitch/webinterface/conf.htm

@@ -18,8 +18,7 @@ LastWill Qos *: <select name='willQos' id='willQos'><option>0</option><option>1<
 LastWill Retain *: <input type='checkbox' name='willRet' id='willRet'/><br>
 LastWill Message *: <input type='text' name='willMsg' id='willMsg'/><br><br>
 Domoticz Out Topic *: <input type='text' name='domOutTop' id='domOutTop'/><br><br>
-All ON/OFF Topic *: <input type='text' name='allOnOffTop' id='allOnOffTop'/><br><br>
-Sleep: <input type='number' name='sleep' id='sleep'/><br>
+All ON/OFF Topic *: <input type='text' name='allOnOffTop' id='allOnOffTop'/><br>
 <br>
 <input type='submit' value='Save'/>
 </form>
@@ -88,7 +87,6 @@ Sleep: <input type='number' name='sleep' id='sleep'/><br>
         g('willMsg').value = data.willMsg;
         g('domOutTop').value = data.domOutTop;
         g('allOnOffTop').value = data.allOnOffTop;
-        g('sleep').value = data.sleep;
         xhttp = null;
         reqFin = true;
        }

+ 0 - 0
src/WiFiSwitch/data/conf2.htm → src/WiFiSwitch/webinterface/conf2.htm


+ 1 - 1
src/WiFiSwitch/data/confdata.json → src/WiFiSwitch/webinterface/confdata.json

@@ -1 +1 @@
-{"devName":"T5-AZ-Stehlampe","httpUser":"","httpPass":"","mqttHost":"10.1.1.11","mqttPort":1883,"mqttUser":"","mqttPass":"","inTop":"Top5/Licht/AZ/Stl/cmd","outTop":"Top5/Licht/AZ/Stl/status","outRet":0,"willTop":"","willQos":2,"willRet":0,"willMsg":"","domOutTop":"domoticz/out/Top 5/Arbeitszimmer","allOnOffTop":"Top5/Licht/all","sleep":10}
+{"devName":"T5-AZ-Stehlampe","httpUser":"","httpPass":"","mqttHost":"10.1.1.11","mqttPort":1883,"mqttUser":"","mqttPass":"","inTop":"Top5/Licht/AZ/Stl/cmd","outTop":"Top5/Licht/AZ/Stl/status","outRet":0,"willTop":"","willQos":2,"willRet":0,"willMsg":"","domOutTop":"domoticz/out/Top 5/Arbeitszimmer","allOnOffTop":"Top5/Licht/all"}

+ 0 - 0
src/WiFiSwitch/data/confdata2.json → src/WiFiSwitch/webinterface/confdata2.json


+ 0 - 0
src/WiFiSwitch/data/confdata_max → src/WiFiSwitch/webinterface/confdata_max


+ 0 - 0
src/WiFiSwitch/data/confdatahw.json → src/WiFiSwitch/webinterface/confdatahw.json


+ 0 - 0
src/WiFiSwitch/data/confhw.htm → src/WiFiSwitch/webinterface/confhw.htm


+ 0 - 0
src/WiFiSwitch/data/index.htm → src/WiFiSwitch/webinterface/index.htm


+ 0 - 0
clearESP-Sketch/clearESP/clearESP.ino → src/clearESP-Sketch/clearESP/clearESP.ino