#pragma once #include #include #include #include class HomeAssistantDiscoveryClient { public: HomeAssistantDiscoveryClient(Settings& settings, MqttClient* mqttClient); void addConfig(const char* alias, const BulbId& bulbId); void removeConfig(const BulbId& bulbId); void sendDiscoverableDevices(const std::map& aliases); void removeOldDevices(const std::map& aliases); private: Settings& settings; MqttClient* mqttClient; String buildTopic(const BulbId& bulbId); String bindTopicVariables(const String& topic, const char* alias, const BulbId& bulbId); void addNumberedEffects(JsonArray& effectList, uint8_t start, uint8_t end); };