publish DPL thresholds to MQTT, add support for setting powerlimiter thresholds via MQTT, and make these auto-discoverable for Home Assistent.
27 lines
890 B
C++
27 lines
890 B
C++
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
#pragma once
|
|
|
|
#include <ArduinoJson.h>
|
|
#include <TaskSchedulerDeclarations.h>
|
|
|
|
class MqttHandlePowerLimiterHassClass {
|
|
public:
|
|
void init(Scheduler& scheduler);
|
|
void publishConfig();
|
|
void forceUpdate();
|
|
|
|
private:
|
|
void loop();
|
|
void publish(const String& subtopic, const String& payload);
|
|
void publishNumber(const char* caption, const char* icon, const char* category, const char* commandTopic, const char* stateTopic, const char* unitOfMeasure, const int16_t min, const int16_t max);
|
|
void publishSelect(const char* caption, const char* icon, const char* category, const char* commandTopic, const char* stateTopic);
|
|
void createDeviceInfo(JsonObject& object);
|
|
|
|
Task _loopTask;
|
|
|
|
bool _wasConnected = false;
|
|
bool _updateForced = false;
|
|
};
|
|
|
|
extern MqttHandlePowerLimiterHassClass MqttHandlePowerLimiterHass;
|