mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-26 04:36:38 +00:00
Add statusupdate command
This commit is contained in:
parent
b607d74597
commit
ac6e6c4877
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
#define HASP_VERSION_MAJOR 0
|
#define HASP_VERSION_MAJOR 0
|
||||||
#define HASP_VERSION_MINOR 0
|
#define HASP_VERSION_MINOR 0
|
||||||
#define HASP_VERSION_REVISION 5
|
#define HASP_VERSION_REVISION 6
|
||||||
|
|
||||||
#define HASP_USE_APP 1
|
#define HASP_USE_APP 1
|
||||||
|
|
||||||
|
@ -1221,9 +1221,11 @@ String haspGetNodename()
|
|||||||
return String(F("plate11"));
|
return String(F("plate11"));
|
||||||
}
|
}
|
||||||
|
|
||||||
float_t haspGetVersion()
|
String haspGetVersion()
|
||||||
{
|
{
|
||||||
return 0.1;
|
char buffer[127];
|
||||||
|
snprintf_P(buffer, sizeof(buffer), "%u.%u.%u", HASP_VERSION_MAJOR, HASP_VERSION_MINOR, HASP_VERSION_REVISION);
|
||||||
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t haspGetPage()
|
uint16_t haspGetPage()
|
||||||
|
@ -76,7 +76,7 @@ void haspSetPage(uint16_t id);
|
|||||||
uint16_t haspGetPage();
|
uint16_t haspGetPage();
|
||||||
void haspSetNodename(String name);
|
void haspSetNodename(String name);
|
||||||
String haspGetNodename();
|
String haspGetNodename();
|
||||||
float haspGetVersion();
|
String haspGetVersion();
|
||||||
void haspBackground(uint16_t pageid, uint16_t imageid);
|
void haspBackground(uint16_t pageid, uint16_t imageid);
|
||||||
|
|
||||||
void haspProcessAttribute(uint8_t pageid, uint8_t objid, String strAttr, String strPayload);
|
void haspProcessAttribute(uint8_t pageid, uint8_t objid, String strAttr, String strPayload);
|
||||||
|
@ -105,4 +105,13 @@ size_t halGetMaxFreeBlock()
|
|||||||
#else
|
#else
|
||||||
return ESP.getMaxFreeBlockSize();
|
return ESP.getMaxFreeBlockSize();
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
String halGetCoreVersion()
|
||||||
|
{
|
||||||
|
#if defined(ARDUINO_ARCH_ESP32)
|
||||||
|
return String(ESP.getSdkVersion());
|
||||||
|
#else
|
||||||
|
return String(ESP.getCoreVersion());
|
||||||
|
#endif
|
||||||
}
|
}
|
@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
uint8_t halGetHeapFragmentation(void);
|
uint8_t halGetHeapFragmentation(void);
|
||||||
String halGetResetInfo(void);
|
String halGetResetInfo(void);
|
||||||
size_t halGetMaxFreeBlock();
|
size_t halGetMaxFreeBlock(void);
|
||||||
|
String halGetCoreVersion(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -12,6 +12,7 @@
|
|||||||
#include <PubSubClient.h>
|
#include <PubSubClient.h>
|
||||||
|
|
||||||
#include "hasp_log.h"
|
#include "hasp_log.h"
|
||||||
|
#include "hasp_hal.h"
|
||||||
#include "hasp_debug.h"
|
#include "hasp_debug.h"
|
||||||
#include "hasp_config.h"
|
#include "hasp_config.h"
|
||||||
#include "hasp_mqtt.h"
|
#include "hasp_mqtt.h"
|
||||||
@ -129,13 +130,16 @@ void IRAM_ATTR mqttSendNewEvent(uint8_t pageid, uint8_t btnid, int32_t val)
|
|||||||
|
|
||||||
void mqttStatusUpdate()
|
void mqttStatusUpdate()
|
||||||
{ // Periodically publish a JSON string indicating system status
|
{ // Periodically publish a JSON string indicating system status
|
||||||
|
char buffer[127];
|
||||||
|
snprintf_P(buffer, sizeof(buffer), "%u.%u.%u", HASP_VERSION_MAJOR, HASP_VERSION_MINOR, HASP_VERSION_REVISION);
|
||||||
|
|
||||||
String mqttStatusPayload((char *)0);
|
String mqttStatusPayload((char *)0);
|
||||||
mqttStatusPayload.reserve(512);
|
mqttStatusPayload.reserve(512);
|
||||||
|
|
||||||
mqttStatusPayload += "{";
|
mqttStatusPayload += "{";
|
||||||
mqttStatusPayload += F("\"status\":\"available\",");
|
mqttStatusPayload += F("\"status\":\"available\",");
|
||||||
mqttStatusPayload += F("\"espVersion\":");
|
mqttStatusPayload += F("\"espVersion\":");
|
||||||
mqttStatusPayload += String(haspGetVersion());
|
mqttStatusPayload += buffer;
|
||||||
mqttStatusPayload += F(",");
|
mqttStatusPayload += F(",");
|
||||||
/* if(updateEspAvailable) {
|
/* if(updateEspAvailable) {
|
||||||
mqttStatusPayload += F("\"updateEspAvailable\":true,");
|
mqttStatusPayload += F("\"updateEspAvailable\":true,");
|
||||||
@ -166,18 +170,20 @@ void mqttStatusUpdate()
|
|||||||
mqttStatusPayload += F("\",");
|
mqttStatusPayload += F("\",");
|
||||||
mqttStatusPayload += F("\"heapFree\":");
|
mqttStatusPayload += F("\"heapFree\":");
|
||||||
mqttStatusPayload += String(ESP.getFreeHeap());
|
mqttStatusPayload += String(ESP.getFreeHeap());
|
||||||
/*mqttStatusPayload += F(",");
|
mqttStatusPayload += F(",");
|
||||||
mqttStatusPayload += F("\"heapFragmentation\":");
|
mqttStatusPayload += F("\"heapFragmentation\":");
|
||||||
mqttStatusPayload += String(ESP.getHeapFragmentation());
|
mqttStatusPayload += String(halGetHeapFragmentation());
|
||||||
mqttStatusPayload += F(",");
|
mqttStatusPayload += F(",");
|
||||||
mqttStatusPayload += F("\"espCore\":\"");
|
mqttStatusPayload += F("\"espCore\":\"");
|
||||||
mqttStatusPayload += String(ESP.getCoreVersion());
|
mqttStatusPayload += halGetCoreVersion();
|
||||||
mqttStatusPayload += F("\"");*/
|
mqttStatusPayload += F("\"");
|
||||||
mqttStatusPayload += "}";
|
mqttStatusPayload += "}";
|
||||||
|
|
||||||
// mqttClient.publish(mqttSensorTopic, mqttStatusPayload);
|
// mqttClient.publish(mqttSensorTopic, mqttStatusPayload);
|
||||||
// mqttClient.publish(mqttStatusTopic, "ON", true); //, 1);
|
// mqttClient.publish(mqttStatusTopic, "ON", true); //, 1);
|
||||||
debugPrintln(String(F("MQTT: status update: ")) + String(mqttStatusPayload));
|
mqttSendState(String(F("statusupdate")).c_str(), mqttStatusPayload.c_str());
|
||||||
|
|
||||||
|
// debugPrintln(String(F("MQTT: status update: ")) + String(mqttStatusPayload));
|
||||||
// debugPrintln(String(F("MQTT: binary_sensor state: [")) + mqttStatusTopic + "] : [ON]");
|
// debugPrintln(String(F("MQTT: binary_sensor state: [")) + mqttStatusTopic + "] : [ON]");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -227,32 +233,16 @@ void mqttCallback(char * topic, byte * payload, unsigned int length)
|
|||||||
strTopic = strTopic.substring(8u, strTopic.length());
|
strTopic = strTopic.substring(8u, strTopic.length());
|
||||||
// debugPrintln(String(F("MQTT Shorter Command Topic : '")) + strTopic + "'");
|
// debugPrintln(String(F("MQTT Shorter Command Topic : '")) + strTopic + "'");
|
||||||
|
|
||||||
if(strTopic == F("page")) { // '[...]/device/command/page' -m '1' == nextionSendCmd("page 1")
|
if(length == 0) {
|
||||||
dispatchPage((char *)payload);
|
dispatchCommand(strTopic.c_str());
|
||||||
} else if(strTopic == F("dim")) { // '[...]/device/command/page' -m '1' == nextionSendCmd("page 1")
|
return;
|
||||||
dispatchDim((char *)payload);
|
}
|
||||||
} else if(strTopic == F("json")) { // '[...]/device/command/json' -m '["dim=5", "page 1"]' =
|
|
||||||
|
if(strTopic == F("json")) { // '[...]/device/command/json' -m '["dim=5", "page 1"]' =
|
||||||
// nextionSendCmd("dim=50"), nextionSendCmd("page 1")
|
// nextionSendCmd("dim=50"), nextionSendCmd("page 1")
|
||||||
dispatchJson((char *)payload); // Send to nextionParseJson()
|
dispatchJson((char *)payload); // Send to nextionParseJson()
|
||||||
} else if(strTopic == F("statusupdate")) { // '[...]/device/command/statusupdate' == mqttStatusUpdate()
|
} else { // '[...]/device/command/p[1].b[4].txt' -m '"Lights On"' ==
|
||||||
// mqttStatusUpdate(); // return status JSON via MQTT
|
// nextionSetAttr("p[1].b[4].txt", "\"Lights On\"")
|
||||||
} else if(strTopic == F("espupdate")) { // '[...]/device/command/espupdate' -m
|
|
||||||
// 'http://192.168.0.10/local/HASwitchPlate.ino.d1_mini.bin' ==
|
|
||||||
// espStartOta("http://192.168.0.10/local/HASwitchPlate.ino.d1_mini.bin")
|
|
||||||
if(length == 0) {
|
|
||||||
// espStartOta(espFirmwareUrl);
|
|
||||||
} else {
|
|
||||||
// espStartOta(strPayload);
|
|
||||||
}
|
|
||||||
} else if(strTopic == F("reboot") || strTopic == F("lcdreboot")) {
|
|
||||||
dispatchReboot(true);
|
|
||||||
} else if(strTopic == F("factoryreset")) { // '[...]/device/command/factoryreset' == clear all saved settings)
|
|
||||||
// configClearSaved();
|
|
||||||
//} else if(strPayload == "") { // '[...]/device/command/p[1].b[4].txt' -m '' ==
|
|
||||||
// nextionGetAttr("p[1].b[4].txt")
|
|
||||||
// haspProcessAttribute(strTopic, "");
|
|
||||||
} else { // '[...]/device/command/p[1].b[4].txt' -m '"Lights On"' ==
|
|
||||||
// nextionSetAttr("p[1].b[4].txt", "\"Lights On\"")
|
|
||||||
dispatchAttribute(strTopic, (char *)payload);
|
dispatchAttribute(strTopic, (char *)payload);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@ -425,7 +415,7 @@ bool mqttGetConfig(const JsonObject & settings)
|
|||||||
settings[FPSTR(F_CONFIG_USER)] = String(mqttUser.c_str());
|
settings[FPSTR(F_CONFIG_USER)] = String(mqttUser.c_str());
|
||||||
settings[FPSTR(F_CONFIG_PASS)] = String(mqttPassword.c_str());
|
settings[FPSTR(F_CONFIG_PASS)] = String(mqttPassword.c_str());
|
||||||
|
|
||||||
size_t size = serializeJson(settings, Serial);
|
serializeJson(settings, Serial);
|
||||||
Serial.println();
|
Serial.println();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -482,7 +472,7 @@ bool mqttSetConfig(const JsonObject & settings)
|
|||||||
mqttPassword = settings[FPSTR(F_CONFIG_PASS)].as<String>().c_str();
|
mqttPassword = settings[FPSTR(F_CONFIG_PASS)].as<String>().c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t size = serializeJson(settings, Serial);
|
serializeJson(settings, Serial);
|
||||||
Serial.println();
|
Serial.println();
|
||||||
|
|
||||||
return changed;
|
return changed;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user