#pragma once #include class HALightController { public: virtual void setState(bool state) = 0; virtual bool getState() = 0; }; class HALight : public HAControllableDevice { private: HALightController *light; public: HALight(PubSubClient &client, const char *name, const char *unique_id, HALightController &baseLight); void handle(char *topic, byte *payload, unsigned int length); void sendConfig(); void sendState(); };