d1_mini_pro-sensor-mqtt/lib/HomeAssistantDevices/HALight.hpp

30 lines
937 B
C++
Raw Normal View History

#pragma once
#include <HAControllableDevice.hpp>
class HALightController {
public:
virtual void setState(bool state) = 0;
virtual bool getState() = 0;
};
2022-12-30 18:31:20 +03:00
#define JSON_DOCUMENT_TYPE StaticJsonDocument<256>
class HALight : public HAControllableDevice {
private:
HALightController *light;
2022-12-30 18:31:20 +03:00
protected:
virtual JSON_DOCUMENT_TYPE createConfigJSON();
virtual JSON_DOCUMENT_TYPE patchConfigJSON(JSON_DOCUMENT_TYPE &doc);
2022-12-30 18:31:20 +03:00
virtual JSON_DOCUMENT_TYPE createStateJSON();
virtual JSON_DOCUMENT_TYPE patchStateJSON(JSON_DOCUMENT_TYPE &doc);
virtual void innerHandler(const JSON_DOCUMENT_TYPE &doc);
2022-12-30 18:31:20 +03:00
HALight(PubSubClient &client, const char *name, const char *unique_id);
public:
HALight(PubSubClient &client, const char *name, const char *unique_id,
HALightController &baseLight);
void handle(char *topic, byte *payload, unsigned int length) override;
void sendConfig() override;
void sendState() override;
};