Add mqttEverySecond

This commit is contained in:
fvanroie 2024-05-24 21:39:57 +02:00
parent 8a341fd09c
commit d903bc905f
6 changed files with 22 additions and 11 deletions

View File

@ -24,6 +24,10 @@ void task_every_second_cb(lv_task_t* task)
{
haspEverySecond(); // sleep timer & statusupdate
#if HASP_MQTT_TELNET > 0
mqttEverySecond();
#endif
#if HASP_USE_TELNET > 0
telnetEverySecond();
#endif

View File

@ -210,6 +210,10 @@ IRAM_ATTR void loop()
/* Runs Every Second */
haspEverySecond(); // sleep timer & statusupdate
#if HASP_USE_MQTT > 0
mqttEverySecond();
#endif
#if HASP_USE_FTP > 0
ftpEverySecond();
#endif

View File

@ -18,6 +18,7 @@ typedef enum {
void mqttSetup();
IRAM_ATTR void mqttLoop();
void mqttEverySecond();
void mqttEvery5Seconds(bool wifiIsConnected);
void mqttStart();
void mqttStop();

View File

@ -71,7 +71,7 @@ bool last_mqtt_state = false;
bool current_mqtt_state = false;
uint16_t mqtt_reconnect_counter = 0;
void mqtt_run_scripts()
static inline void mqtt_run_scripts()
{
if(last_mqtt_state != current_mqtt_state) {
// mqtt_message_t data;
@ -104,8 +104,8 @@ void mqtt_run_scripts()
void mqtt_disconnected()
{
current_mqtt_state = false; // now we are disconnected
// mqtt_run_scripts();
mqtt_reconnect_counter++;
// mqtt_run_scripts(); // must happen in LVGL loop
}
void mqtt_connected()
@ -115,7 +115,7 @@ void mqtt_connected()
current_mqtt_state = true; // now we are connected
LOG_VERBOSE(TAG_MQTT, F("%s"), current_mqtt_state ? PSTR(D_SERVICE_CONNECTED) : PSTR(D_SERVICE_DISCONNECTED));
}
// mqtt_run_scripts();
// mqtt_run_scripts(); // must happen in LVGL loop
}
int mqttPublish(const char* topic, const char* payload, size_t len, bool retain)
@ -337,7 +337,7 @@ String mqttGetTopic(Preferences preferences, String subtopic, String key, String
}
*/
void mqttParseTopic(String *topic, String subtopic, bool add_slash)
void mqttParseTopic(String* topic, String subtopic, bool add_slash)
{
topic->replace(F("%hostname%"), haspDevice.get_hostname());
@ -509,10 +509,14 @@ IRAM_ATTR void mqttLoop(void)
}
}
void mqttEvery5Seconds(bool networkIsConnected)
void mqttEverySecond()
{
mqtt_run_scripts();
// if(mqttEnabled && networkIsConnected && !mqttClientConnected) {
}
void mqttEvery5Seconds(bool networkIsConnected)
{
// if(mqttEnabled && networkIsConnected && !current_mqtt_state) {
// LOG_TRACE(TAG_MQTT, F(D_MQTT_RECONNECTING));
// mqttStart();
// }
@ -535,7 +539,7 @@ void mqttStart()
nvsOldGroup += preferences.getString(FP_CONFIG_GROUP, MQTT_GROUPNAME);
nvsOldGroup += "/%topic%";
subtopic = F(MQTT_TOPIC_COMMAND);
subtopic = F(MQTT_TOPIC_COMMAND);
mqttNodeCommandTopic = preferences.getString(FP_CONFIG_NODE_TOPIC, MQTT_DEFAULT_NODE_TOPIC);
mqttParseTopic(&mqttNodeCommandTopic, subtopic, false);
mqttGroupCommandTopic = preferences.getString(FP_CONFIG_GROUP_TOPIC, nvsOldGroup.c_str());

View File

@ -3,8 +3,6 @@
/* Multi threaded asynchronous paho client */
#include <stdint.h>
#include "hasp_conf.h"
#if HASP_USE_MQTT_ASYNC > 0

View File

@ -14,10 +14,10 @@
#if defined(ARDUINO_ARCH_ESP32)
#include <WiFi.h>
#include <WiFiClientSecure.h>
// #include <WiFiClientSecure.h>
WiFiClient mqttNetworkClient;
// WiFiClientSecure mqttNetworkClient;
extern const uint8_t rootca_crt_bundle_start[] asm("_binary_data_cert_x509_crt_bundle_bin_start");
// extern const uint8_t rootca_crt_bundle_start[] asm("_binary_data_cert_x509_crt_bundle_bin_start");
#elif defined(ARDUINO_ARCH_ESP8266)
#include <ESP8266WiFi.h>
#include <EEPROM.h>