HomeAssistantDiscoveryClient.h 635 B

1234567891011121314151617181920212223
  1. #pragma once
  2. #include <BulbId.h>
  3. #include <MqttClient.h>
  4. #include <map>
  5. class HomeAssistantDiscoveryClient {
  6. public:
  7. HomeAssistantDiscoveryClient(Settings& settings, MqttClient* mqttClient);
  8. void addConfig(const char* alias, const BulbId& bulbId);
  9. void removeConfig(const BulbId& bulbId);
  10. void sendDiscoverableDevices(const std::map<String, BulbId>& aliases);
  11. void removeOldDevices(const std::map<uint32_t, BulbId>& aliases);
  12. private:
  13. Settings& settings;
  14. MqttClient* mqttClient;
  15. String buildTopic(const BulbId& bulbId);
  16. String bindTopicVariables(const String& topic, const char* alias, const BulbId& bulbId);
  17. };