Migrate MqttHandleHass to TaskScheduler

This commit is contained in:
Thomas Basler
2023-11-20 21:31:58 +01:00
parent 98c30d1042
commit 48a27fbfad
3 changed files with 11 additions and 6 deletions

View File

@@ -3,6 +3,7 @@
#include <ArduinoJson.h>
#include <Hoymiles.h>
#include <TaskSchedulerDeclarations.h>
// mqtt discovery device classes
enum {
@@ -50,12 +51,12 @@ const byteAssign_fieldDeviceClass_t deviceFieldAssignment[] = {
class MqttHandleHassClass {
public:
void init();
void loop();
void init(Scheduler* scheduler);
void publishConfig();
void forceUpdate();
private:
void loop();
void publish(const String& subtopic, const String& payload);
void publishField(std::shared_ptr<InverterAbstract> inv, ChannelType_t type, ChannelNum_t channel, byteAssign_fieldDeviceClass_t fieldType, bool clear = false);
void publishInverterButton(std::shared_ptr<InverterAbstract> inv, const char* caption, const char* icon, const char* category, const char* deviceClass, const char* subTopic, const char* payload);
@@ -63,6 +64,8 @@ private:
void publishInverterBinarySensor(std::shared_ptr<InverterAbstract> inv, const char* caption, const char* subTopic, const char* payload_on, const char* payload_off);
void createDeviceInfo(JsonObject& object, std::shared_ptr<InverterAbstract> inv);
Task _loopTask;
bool _wasConnected = false;
bool _updateForced = false;
};