From 95aa10aa4f026404ef08aeea4a9edd1d66206da3 Mon Sep 17 00:00:00 2001 From: fvanroie Date: Sun, 23 Feb 2020 14:54:03 +0100 Subject: [PATCH] Push 0.0.7 --- include/hasp_conf.h | 2 +- src/hasp_dispatch.cpp | 38 ++++++++++++++------------------------ src/hasp_mqtt.cpp | 20 ++++++++++---------- 3 files changed, 25 insertions(+), 35 deletions(-) diff --git a/include/hasp_conf.h b/include/hasp_conf.h index 66c3cce0..04429625 100644 --- a/include/hasp_conf.h +++ b/include/hasp_conf.h @@ -2,7 +2,7 @@ #define HASP_VERSION_MAJOR 0 #define HASP_VERSION_MINOR 0 -#define HASP_VERSION_REVISION 6 +#define HASP_VERSION_REVISION 7 #define HASP_USE_APP 1 diff --git a/src/hasp_dispatch.cpp b/src/hasp_dispatch.cpp index 2569a6e7..36c64f14 100644 --- a/src/hasp_dispatch.cpp +++ b/src/hasp_dispatch.cpp @@ -71,35 +71,25 @@ void IRAM_ATTR dispatchCommand(String cmnd) if(cmnd.startsWith(F("page ")) || cmnd.startsWith(F("page="))) { cmnd = cmnd.substring(5, cmnd.length()); dispatchPage(cmnd); - return; - } - - if(cmnd == F("calibrate")) { + } else if(cmnd == F("calibrate")) { guiCalibrate(); - return; - } - - if(cmnd == F("screenshot")) { + } else if(cmnd == F("wakeup")) { + haspWakeUp(); + } else if(cmnd == F("screenshot")) { guiTakeScreenshot("/screenhot.bmp"); - return; - } - - if(cmnd == F("reboot") || cmnd == F("restart")) { + } else if(cmnd == F("reboot") || cmnd == F("restart")) { dispatchReboot(true); - return; - } - - if(cmnd == "" || cmnd == F("statusupdate")) { + } else if(cmnd == "" || cmnd == F("statusupdate")) { mqttStatusUpdate(); - return; - } + } else { - int pos = cmnd.indexOf("="); - if(pos > 0) { - String strTopic = cmnd.substring(0, pos); - String strPayload = cmnd.substring(pos + 1, cmnd.length()); - // debugPrintln("CMND: '" + strTopic + "'='" + strPayload + "'"); - dispatchAttribute(strTopic, strPayload.c_str()); + int pos = cmnd.indexOf("="); + if(pos > 0) { + String strTopic = cmnd.substring(0, pos); + String strPayload = cmnd.substring(pos + 1, cmnd.length()); + // debugPrintln("CMND: '" + strTopic + "'='" + strPayload + "'"); + dispatchAttribute(strTopic, strPayload.c_str()); + } } } diff --git a/src/hasp_mqtt.cpp b/src/hasp_mqtt.cpp index 23b8e1b7..bcfa293e 100644 --- a/src/hasp_mqtt.cpp +++ b/src/hasp_mqtt.cpp @@ -76,6 +76,9 @@ const String mqttLightBrightSubscription = "hasp/" + String(haspGetNodename()) WiFiClient wifiClient; PubSubClient mqttClient(wifiClient); +static char mqttTopic[127]; +static char mqttPayload[254]; + //////////////////////////////////////////////////////////////////////////////////////////////////// // Send changed values OUT @@ -88,18 +91,15 @@ void IRAM_ATTR mqttSendState(const char * subtopic, const char * payload) // light = 0/1 // brightness = 100 - char topic[127]; - char value[254]; - - snprintf_P(topic, sizeof(topic), PSTR("%sstate/%s"), mqttNodeTopic.c_str(), subtopic); - mqttClient.publish(topic, payload); - debugPrintln(String(F("MQTT OUT: ")) + String(topic) + " = " + String(payload)); + snprintf_P(mqttTopic, sizeof(mqttTopic), PSTR("%sstate/%s"), mqttNodeTopic.c_str(), subtopic); + mqttClient.publish(mqttTopic, payload); + debugPrintln(String(F("MQTT OUT: ")) + String(mqttTopic) + " = " + String(payload)); // as json - snprintf_P(topic, sizeof(topic), PSTR("%sstate/json"), mqttNodeTopic.c_str()); - snprintf_P(value, sizeof(value), PSTR("{\"%s\":\"%s\"}"), subtopic, payload); - mqttClient.publish(topic, value); - debugPrintln(String(F("MQTT OUT: ")) + String(topic) + " = " + String(value)); + snprintf_P(mqttTopic, sizeof(mqttTopic), PSTR("%sstate/json"), mqttNodeTopic.c_str()); + snprintf_P(mqttPayload, sizeof(mqttPayload), PSTR("{\"%s\":\"%s\"}"), subtopic, payload); + mqttClient.publish(mqttTopic, mqttPayload); + debugPrintln(String(F("MQTT OUT: ")) + String(mqttTopic) + " = " + String(mqttPayload)); } void IRAM_ATTR mqttSendNewValue(uint8_t pageid, uint8_t btnid, const char * attribute, String txt)