HomeAssistantDiscoveryClient.h 713 B

123456789101112131415161718192021222324
  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. void addNumberedEffects(JsonArray& effectList, uint8_t start, uint8_t end);
  18. };