ESPHome  2024.11.0
mqtt_switch.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "esphome/core/defines.h"
4 
5 #ifdef USE_MQTT
6 #ifdef USE_SWITCH
7 
9 #include "mqtt_component.h"
10 
11 namespace esphome {
12 namespace mqtt {
13 
15  public:
16  explicit MQTTSwitchComponent(switch_::Switch *a_switch);
17 
18  // ========== INTERNAL METHODS ==========
19  // (In most use cases you won't need these)
20  void setup() override;
21  void dump_config() override;
22 
23  void send_discovery(JsonObject root, mqtt::SendDiscoveryConfig &config) override;
24 
25  bool send_initial_state() override;
26 
27  bool publish_state(bool state);
28 
29  protected:
31  std::string component_type() const override;
32  const EntityBase *get_entity() const override;
33 
35 };
36 
37 } // namespace mqtt
38 } // namespace esphome
39 
40 #endif
41 #endif // USE_MQTT
Base class for all switches.
Definition: switch.h:39
MQTTSwitchComponent(switch_::Switch *a_switch)
Definition: mqtt_switch.cpp:16
Simple Helper struct used for Home Assistant MQTT send_discovery().
std::string component_type() const override
"switch" component type.
Definition: mqtt_switch.cpp:45
Implementation of SPI Controller mode.
Definition: a01nyub.cpp:7
const EntityBase * get_entity() const override
Definition: mqtt_switch.cpp:46
void send_discovery(JsonObject root, mqtt::SendDiscoveryConfig &config) override
Definition: mqtt_switch.cpp:47
bool state
Definition: fan.h:34
MQTTComponent is the base class for all components that interact with MQTT to expose certain function...