1
0
mirror of https://github.com/esphome/esphome.git synced 2026-02-08 00:31:58 +00:00

[mqtt] Move Home Assistant discovery keys to PROGMEM on ESP8266 (#13011)

This commit is contained in:
J. Nick Koston
2026-01-06 07:33:56 -10:00
committed by GitHub
parent 1e56325b33
commit e0981323bd
52 changed files with 420 additions and 737 deletions

View File

@@ -4,8 +4,7 @@
#include "esphome/core/log.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.custom";
@@ -29,7 +28,6 @@ bool CustomMQTTDevice::publish_json(const std::string &topic, const json::json_b
}
bool CustomMQTTDevice::is_connected() { return global_mqtt_client != nullptr && global_mqtt_client->is_connected(); }
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif // USE_MQTT

View File

@@ -6,8 +6,7 @@
#include "esphome/core/component.h"
#include "mqtt_client.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
/** This class is a helper class for custom components that communicate using
* MQTT. It has 5 helper functions that you can use (square brackets indicate optional):
@@ -214,7 +213,6 @@ void CustomMQTTDevice::subscribe_json(const std::string &topic, void (T::*callba
global_mqtt_client->subscribe_json(topic, f, qos);
}
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif // USE_MQTT

View File

@@ -6,8 +6,7 @@
#ifdef USE_MQTT
#ifdef USE_ALARM_CONTROL_PANEL
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.alarm_control_panel";
@@ -123,8 +122,7 @@ bool MQTTAlarmControlPanelComponent::publish_state() {
return this->publish(this->get_state_topic_(), state_s);
}
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#include "mqtt_component.h"
#include "esphome/components/alarm_control_panel/alarm_control_panel.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
class MQTTAlarmControlPanelComponent : public mqtt::MQTTComponent {
public:
@@ -32,8 +31,7 @@ class MQTTAlarmControlPanelComponent : public mqtt::MQTTComponent {
alarm_control_panel::AlarmControlPanel *alarm_control_panel_;
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -6,8 +6,7 @@
#include "esphome/components/network/ip_address.h"
#include "esphome/core/helpers.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
enum class MQTTClientDisconnectReason : int8_t {
TCP_DISCONNECTED = 0,
@@ -67,6 +66,5 @@ class MQTTBackend {
virtual void loop() {}
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif

View File

@@ -8,8 +8,7 @@
#include "esphome/core/log.h"
#include "esphome/core/application.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.idf";
@@ -270,7 +269,6 @@ bool MQTTBackendESP32::enqueue_(MqttQueueTypeT type, const char *topic, int qos,
}
#endif // USE_MQTT_IDF_ENQUEUE
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif // USE_ESP32
#endif

View File

@@ -15,8 +15,7 @@
#include "esphome/core/lock_free_queue.h"
#include "esphome/core/event_pool.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
struct Event {
esp_mqtt_event_id_t event_id;
@@ -273,8 +272,7 @@ class MQTTBackendESP32 final : public MQTTBackend {
#endif
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif

View File

@@ -6,8 +6,7 @@
#include <AsyncMqttClient.h>
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
class MQTTBackendESP8266 final : public MQTTBackend {
public:
@@ -67,8 +66,7 @@ class MQTTBackendESP8266 final : public MQTTBackend {
AsyncMqttClient mqtt_client_;
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif // defined(USE_ESP8266)
#endif

View File

@@ -6,8 +6,7 @@
#include <AsyncMqttClient.h>
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
class MQTTBackendLibreTiny final : public MQTTBackend {
public:
@@ -67,8 +66,7 @@ class MQTTBackendLibreTiny final : public MQTTBackend {
AsyncMqttClient mqtt_client_;
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif // defined(USE_LIBRETINY)
#endif

View File

@@ -6,8 +6,7 @@
#ifdef USE_MQTT
#ifdef USE_BINARY_SENSOR
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.binary_sensor";
@@ -57,8 +56,7 @@ bool MQTTBinarySensorComponent::publish_state(bool state) {
return this->publish(this->get_state_topic_(), state_s);
}
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -7,8 +7,7 @@
#include "mqtt_component.h"
#include "esphome/components/binary_sensor/binary_sensor.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
class MQTTBinarySensorComponent : public mqtt::MQTTComponent {
public:
@@ -36,8 +35,7 @@ class MQTTBinarySensorComponent : public mqtt::MQTTComponent {
binary_sensor::BinarySensor *binary_sensor_;
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -6,8 +6,7 @@
#ifdef USE_MQTT
#ifdef USE_BUTTON
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.button";
@@ -43,8 +42,7 @@ void MQTTButtonComponent::send_discovery(JsonObject root, mqtt::SendDiscoveryCon
std::string MQTTButtonComponent::component_type() const { return "button"; }
const EntityBase *MQTTButtonComponent::get_entity() const { return this->button_; }
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#include "esphome/components/button/button.h"
#include "mqtt_component.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
class MQTTButtonComponent : public mqtt::MQTTComponent {
public:
@@ -33,8 +32,7 @@ class MQTTButtonComponent : public mqtt::MQTTComponent {
button::Button *button_;
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -22,8 +22,7 @@
#include "esphome/components/dashboard_import/dashboard_import.h"
#endif
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt";
@@ -751,7 +750,6 @@ void MQTTMessageTrigger::dump_config() {
}
float MQTTMessageTrigger::get_setup_priority() const { return setup_priority::AFTER_CONNECTION; }
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif // USE_MQTT

View File

@@ -24,8 +24,7 @@
#include <vector>
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
/** Callback for MQTT events.
*/
@@ -462,7 +461,6 @@ template<typename... Ts> class MQTTDisableAction : public Action<Ts...> {
MQTTClientComponent *parent_;
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif // USE_MQTT

View File

@@ -6,8 +6,7 @@
#ifdef USE_MQTT
#ifdef USE_CLIMATE
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.climate";
@@ -460,8 +459,7 @@ bool MQTTClimateComponent::publish_state_() {
return success;
}
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#include "esphome/components/climate/climate.h"
#include "mqtt_component.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
class MQTTClimateComponent : public mqtt::MQTTComponent {
public:
@@ -49,8 +48,7 @@ class MQTTClimateComponent : public mqtt::MQTTComponent {
climate::Climate *device_;
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -9,8 +9,7 @@
#include "mqtt_const.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.component";
@@ -306,7 +305,6 @@ bool MQTTComponent::is_internal() {
return this->get_entity()->is_internal();
}
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif // USE_MQTT

View File

@@ -11,8 +11,7 @@
#include "esphome/core/string_ref.h"
#include "mqtt_client.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
/// Simple Helper struct used for Home Assistant MQTT send_discovery().
struct SendDiscoveryConfig {
@@ -205,7 +204,6 @@ class MQTTComponent : public Component {
bool resend_state_{false};
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif // USE_MQTt

View File

@@ -1,547 +1,332 @@
#pragma once
#include "esphome/core/defines.h"
#include "esphome/core/progmem.h"
#ifdef USE_MQTT
namespace esphome {
namespace mqtt {
// MQTT JSON Key Constants for Home Assistant Discovery
//
// This file defines string constants used as JSON keys in MQTT discovery payloads
// for Home Assistant integration. These are used exclusively with ArduinoJson as:
// root[MQTT_DEVICE_CLASS] = "temperature";
//
// Implementation:
// - ESP8266: Stores strings in PROGMEM (flash) using __FlashStringHelper* pointers.
// ArduinoJson recognizes this type and reads from flash memory.
// - Other platforms: Uses constexpr const char* for compile-time optimization.
// - USE_MQTT_ABBREVIATIONS: When defined, uses shortened key names to reduce message size.
//
// Adding new keys:
// Add a single line to MQTT_KEYS_LIST: X(MQTT_NEW_KEY, "abbr", "full_name")
// The X-macro will generate the appropriate constants for each platform.
//
// Note: Other MQTT_* constants (e.g., MQTT_CLIENT_CONNECTED, MQTT_LEGACY_UNIQUE_ID_GENERATOR)
// are C++ enums defined in mqtt_client.h and mqtt_backend*.h - unrelated to these JSON keys.
// X-macro list: MQTT_KEYS_LIST(X) calls X(name, abbr, full) for each key
// clang-format off
#define MQTT_KEYS_LIST(X) \
X(MQTT_ACTION_TEMPLATE, "act_tpl", "action_template") \
X(MQTT_ACTION_TOPIC, "act_t", "action_topic") \
X(MQTT_AUTOMATION_TYPE, "atype", "automation_type") \
X(MQTT_AUX_COMMAND_TOPIC, "aux_cmd_t", "aux_command_topic") \
X(MQTT_AUX_STATE_TEMPLATE, "aux_stat_tpl", "aux_state_template") \
X(MQTT_AUX_STATE_TOPIC, "aux_stat_t", "aux_state_topic") \
X(MQTT_AVAILABILITY, "avty", "availability") \
X(MQTT_AVAILABILITY_MODE, "avty_mode", "availability_mode") \
X(MQTT_AVAILABILITY_TOPIC, "avty_t", "availability_topic") \
X(MQTT_AWAY_MODE_COMMAND_TOPIC, "away_mode_cmd_t", "away_mode_command_topic") \
X(MQTT_AWAY_MODE_STATE_TEMPLATE, "away_mode_stat_tpl", "away_mode_state_template") \
X(MQTT_AWAY_MODE_STATE_TOPIC, "away_mode_stat_t", "away_mode_state_topic") \
X(MQTT_BATTERY_LEVEL_TEMPLATE, "bat_lev_tpl", "battery_level_template") \
X(MQTT_BATTERY_LEVEL_TOPIC, "bat_lev_t", "battery_level_topic") \
X(MQTT_BLUE_TEMPLATE, "b_tpl", "blue_template") \
X(MQTT_BRIGHTNESS_COMMAND_TOPIC, "bri_cmd_t", "brightness_command_topic") \
X(MQTT_BRIGHTNESS_SCALE, "bri_scl", "brightness_scale") \
X(MQTT_BRIGHTNESS_STATE_TOPIC, "bri_stat_t", "brightness_state_topic") \
X(MQTT_BRIGHTNESS_TEMPLATE, "bri_tpl", "brightness_template") \
X(MQTT_BRIGHTNESS_VALUE_TEMPLATE, "bri_val_tpl", "brightness_value_template") \
X(MQTT_CHARGING_TEMPLATE, "chrg_tpl", "charging_template") \
X(MQTT_CHARGING_TOPIC, "chrg_t", "charging_topic") \
X(MQTT_CLEANING_TEMPLATE, "cln_tpl", "cleaning_template") \
X(MQTT_CLEANING_TOPIC, "cln_t", "cleaning_topic") \
X(MQTT_CODE_ARM_REQUIRED, "cod_arm_req", "code_arm_required") \
X(MQTT_CODE_DISARM_REQUIRED, "cod_dis_req", "code_disarm_required") \
X(MQTT_COLOR_MODE, "clrm", "color_mode") \
X(MQTT_COLOR_MODE_STATE_TOPIC, "clrm_stat_t", "color_mode_state_topic") \
X(MQTT_COLOR_MODE_VALUE_TEMPLATE, "clrm_val_tpl", "color_mode_value_template") \
X(MQTT_COLOR_TEMP_COMMAND_TEMPLATE, "clr_temp_cmd_tpl", "color_temp_command_template") \
X(MQTT_COLOR_TEMP_COMMAND_TOPIC, "clr_temp_cmd_t", "color_temp_command_topic") \
X(MQTT_COLOR_TEMP_STATE_TOPIC, "clr_temp_stat_t", "color_temp_state_topic") \
X(MQTT_COLOR_TEMP_TEMPLATE, "clr_temp_tpl", "color_temp_template") \
X(MQTT_COLOR_TEMP_VALUE_TEMPLATE, "clr_temp_val_tpl", "color_temp_value_template") \
X(MQTT_COMMAND_OFF_TEMPLATE, "cmd_off_tpl", "command_off_template") \
X(MQTT_COMMAND_ON_TEMPLATE, "cmd_on_tpl", "command_on_template") \
X(MQTT_COMMAND_RETAIN, "ret", "retain") \
X(MQTT_COMMAND_TEMPLATE, "cmd_tpl", "command_template") \
X(MQTT_COMMAND_TOPIC, "cmd_t", "command_topic") \
X(MQTT_CONFIGURATION_URL, "cu", "configuration_url") \
X(MQTT_CURRENT_HUMIDITY_TEMPLATE, "curr_hum_tpl", "current_humidity_template") \
X(MQTT_CURRENT_HUMIDITY_TOPIC, "curr_hum_t", "current_humidity_topic") \
X(MQTT_CURRENT_TEMPERATURE_STEP, "precision", "precision") \
X(MQTT_CURRENT_TEMPERATURE_TEMPLATE, "curr_temp_tpl", "current_temperature_template") \
X(MQTT_CURRENT_TEMPERATURE_TOPIC, "curr_temp_t", "current_temperature_topic") \
X(MQTT_DEVICE, "dev", "device") \
X(MQTT_DEVICE_CLASS, "dev_cla", "device_class") \
X(MQTT_DEVICE_CONNECTIONS, "cns", "connections") \
X(MQTT_DEVICE_IDENTIFIERS, "ids", "identifiers") \
X(MQTT_DEVICE_MANUFACTURER, "mf", "manufacturer") \
X(MQTT_DEVICE_MODEL, "mdl", "model") \
X(MQTT_DEVICE_NAME, "name", "name") \
X(MQTT_DEVICE_SUGGESTED_AREA, "sa", "suggested_area") \
X(MQTT_DEVICE_SW_VERSION, "sw", "sw_version") \
X(MQTT_DEVICE_HW_VERSION, "hw", "hw_version") \
X(MQTT_DIRECTION_COMMAND_TOPIC, "dir_cmd_t", "direction_command_topic") \
X(MQTT_DIRECTION_STATE_TOPIC, "dir_stat_t", "direction_state_topic") \
X(MQTT_DOCKED_TEMPLATE, "dock_tpl", "docked_template") \
X(MQTT_DOCKED_TOPIC, "dock_t", "docked_topic") \
X(MQTT_EFFECT_COMMAND_TOPIC, "fx_cmd_t", "effect_command_topic") \
X(MQTT_EFFECT_LIST, "fx_list", "effect_list") \
X(MQTT_EFFECT_STATE_TOPIC, "fx_stat_t", "effect_state_topic") \
X(MQTT_EFFECT_TEMPLATE, "fx_tpl", "effect_template") \
X(MQTT_EFFECT_VALUE_TEMPLATE, "fx_val_tpl", "effect_value_template") \
X(MQTT_ENABLED_BY_DEFAULT, "en", "enabled_by_default") \
X(MQTT_ENTITY_CATEGORY, "ent_cat", "entity_category") \
X(MQTT_ERROR_TEMPLATE, "err_tpl", "error_template") \
X(MQTT_ERROR_TOPIC, "err_t", "error_topic") \
X(MQTT_EVENT_TYPE, "event_type", "event_type") \
X(MQTT_EVENT_TYPES, "evt_typ", "event_types") \
X(MQTT_EXPIRE_AFTER, "exp_aft", "expire_after") \
X(MQTT_FAN_MODE_COMMAND_TEMPLATE, "fan_mode_cmd_tpl", "fan_mode_command_template") \
X(MQTT_FAN_MODE_COMMAND_TOPIC, "fan_mode_cmd_t", "fan_mode_command_topic") \
X(MQTT_FAN_MODE_STATE_TEMPLATE, "fan_mode_stat_tpl", "fan_mode_state_template") \
X(MQTT_FAN_MODE_STATE_TOPIC, "fan_mode_stat_t", "fan_mode_state_topic") \
X(MQTT_FAN_SPEED_LIST, "fanspd_lst", "fan_speed_list") \
X(MQTT_FAN_SPEED_TEMPLATE, "fanspd_tpl", "fan_speed_template") \
X(MQTT_FAN_SPEED_TOPIC, "fanspd_t", "fan_speed_topic") \
X(MQTT_FLASH_TIME_LONG, "flsh_tlng", "flash_time_long") \
X(MQTT_FLASH_TIME_SHORT, "flsh_tsht", "flash_time_short") \
X(MQTT_FORCE_UPDATE, "frc_upd", "force_update") \
X(MQTT_GREEN_TEMPLATE, "g_tpl", "green_template") \
X(MQTT_HOLD_COMMAND_TEMPLATE, "hold_cmd_tpl", "hold_command_template") \
X(MQTT_HOLD_COMMAND_TOPIC, "hold_cmd_t", "hold_command_topic") \
X(MQTT_HOLD_STATE_TEMPLATE, "hold_stat_tpl", "hold_state_template") \
X(MQTT_HOLD_STATE_TOPIC, "hold_stat_t", "hold_state_topic") \
X(MQTT_HS_COMMAND_TOPIC, "hs_cmd_t", "hs_command_topic") \
X(MQTT_HS_STATE_TOPIC, "hs_stat_t", "hs_state_topic") \
X(MQTT_HS_VALUE_TEMPLATE, "hs_val_tpl", "hs_value_template") \
X(MQTT_ICON, "ic", "icon") \
X(MQTT_INITIAL, "init", "initial") \
X(MQTT_JSON_ATTRIBUTES, "json_attr", "json_attributes") \
X(MQTT_JSON_ATTRIBUTES_TEMPLATE, "json_attr_tpl", "json_attributes_template") \
X(MQTT_JSON_ATTRIBUTES_TOPIC, "json_attr_t", "json_attributes_topic") \
X(MQTT_LAST_RESET_TOPIC, "lrst_t", "last_reset_topic") \
X(MQTT_LAST_RESET_VALUE_TEMPLATE, "lrst_val_tpl", "last_reset_value_template") \
X(MQTT_MAX, "max", "max") \
X(MQTT_MAX_HUMIDITY, "max_hum", "max_humidity") \
X(MQTT_MAX_MIREDS, "max_mirs", "max_mireds") \
X(MQTT_MAX_TEMP, "max_temp", "max_temp") \
X(MQTT_MIN, "min", "min") \
X(MQTT_MIN_HUMIDITY, "min_hum", "min_humidity") \
X(MQTT_MIN_MIREDS, "min_mirs", "min_mireds") \
X(MQTT_MIN_TEMP, "min_temp", "min_temp") \
X(MQTT_MODE, "mode", "mode") \
X(MQTT_MODE_COMMAND_TEMPLATE, "mode_cmd_tpl", "mode_command_template") \
X(MQTT_MODE_COMMAND_TOPIC, "mode_cmd_t", "mode_command_topic") \
X(MQTT_MODE_STATE_TEMPLATE, "mode_stat_tpl", "mode_state_template") \
X(MQTT_MODE_STATE_TOPIC, "mode_stat_t", "mode_state_topic") \
X(MQTT_MODES, "modes", "modes") \
X(MQTT_NAME, "name", "name") \
X(MQTT_OBJECT_ID, "obj_id", "object_id") \
X(MQTT_OFF_DELAY, "off_dly", "off_delay") \
X(MQTT_ON_COMMAND_TYPE, "on_cmd_type", "on_command_type") \
X(MQTT_OPTIMISTIC, "opt", "optimistic") \
X(MQTT_OPTIONS, "ops", "options") \
X(MQTT_OSCILLATION_COMMAND_TEMPLATE, "osc_cmd_tpl", "oscillation_command_template") \
X(MQTT_OSCILLATION_COMMAND_TOPIC, "osc_cmd_t", "oscillation_command_topic") \
X(MQTT_OSCILLATION_STATE_TOPIC, "osc_stat_t", "oscillation_state_topic") \
X(MQTT_OSCILLATION_VALUE_TEMPLATE, "osc_val_tpl", "oscillation_value_template") \
X(MQTT_PAYLOAD, "pl", "payload") \
X(MQTT_PAYLOAD_ARM_AWAY, "pl_arm_away", "payload_arm_away") \
X(MQTT_PAYLOAD_ARM_CUSTOM_BYPASS, "pl_arm_custom_b", "payload_arm_custom_bypass") \
X(MQTT_PAYLOAD_ARM_HOME, "pl_arm_home", "payload_arm_home") \
X(MQTT_PAYLOAD_ARM_NIGHT, "pl_arm_nite", "payload_arm_night") \
X(MQTT_PAYLOAD_ARM_VACATION, "pl_arm_vacation", "payload_arm_vacation") \
X(MQTT_PAYLOAD_AVAILABLE, "pl_avail", "payload_available") \
X(MQTT_PAYLOAD_CLEAN_SPOT, "pl_cln_sp", "payload_clean_spot") \
X(MQTT_PAYLOAD_CLOSE, "pl_cls", "payload_close") \
X(MQTT_PAYLOAD_DISARM, "pl_disarm", "payload_disarm") \
X(MQTT_PAYLOAD_HIGH_SPEED, "pl_hi_spd", "payload_high_speed") \
X(MQTT_PAYLOAD_HOME, "pl_home", "payload_home") \
X(MQTT_PAYLOAD_INSTALL, "pl_inst", "payload_install") \
X(MQTT_PAYLOAD_LOCATE, "pl_loc", "payload_locate") \
X(MQTT_PAYLOAD_LOCK, "pl_lock", "payload_lock") \
X(MQTT_PAYLOAD_LOW_SPEED, "pl_lo_spd", "payload_low_speed") \
X(MQTT_PAYLOAD_MEDIUM_SPEED, "pl_med_spd", "payload_medium_speed") \
X(MQTT_PAYLOAD_NOT_AVAILABLE, "pl_not_avail", "payload_not_available") \
X(MQTT_PAYLOAD_NOT_HOME, "pl_not_home", "payload_not_home") \
X(MQTT_PAYLOAD_OFF, "pl_off", "payload_off") \
X(MQTT_PAYLOAD_OFF_SPEED, "pl_off_spd", "payload_off_speed") \
X(MQTT_PAYLOAD_ON, "pl_on", "payload_on") \
X(MQTT_PAYLOAD_OPEN, "pl_open", "payload_open") \
X(MQTT_PAYLOAD_OSCILLATION_OFF, "pl_osc_off", "payload_oscillation_off") \
X(MQTT_PAYLOAD_OSCILLATION_ON, "pl_osc_on", "payload_oscillation_on") \
X(MQTT_PAYLOAD_PAUSE, "pl_paus", "payload_pause") \
X(MQTT_PAYLOAD_RESET, "pl_rst", "payload_reset") \
X(MQTT_PAYLOAD_RESET_HUMIDITY, "pl_rst_hum", "payload_reset_humidity") \
X(MQTT_PAYLOAD_RESET_MODE, "pl_rst_mode", "payload_reset_mode") \
X(MQTT_PAYLOAD_RESET_PERCENTAGE, "pl_rst_pct", "payload_reset_percentage") \
X(MQTT_PAYLOAD_RESET_PRESET_MODE, "pl_rst_pr_mode", "payload_reset_preset_mode") \
X(MQTT_PAYLOAD_RETURN_TO_BASE, "pl_ret", "payload_return_to_base") \
X(MQTT_PAYLOAD_START, "pl_strt", "payload_start") \
X(MQTT_PAYLOAD_START_PAUSE, "pl_stpa", "payload_start_pause") \
X(MQTT_PAYLOAD_STOP, "pl_stop", "payload_stop") \
X(MQTT_PAYLOAD_TURN_OFF, "pl_toff", "payload_turn_off") \
X(MQTT_PAYLOAD_TURN_ON, "pl_ton", "payload_turn_on") \
X(MQTT_PAYLOAD_UNLOCK, "pl_unlk", "payload_unlock") \
X(MQTT_PERCENTAGE_COMMAND_TEMPLATE, "pct_cmd_tpl", "percentage_command_template") \
X(MQTT_PERCENTAGE_COMMAND_TOPIC, "pct_cmd_t", "percentage_command_topic") \
X(MQTT_PERCENTAGE_STATE_TOPIC, "pct_stat_t", "percentage_state_topic") \
X(MQTT_PERCENTAGE_VALUE_TEMPLATE, "pct_val_tpl", "percentage_value_template") \
X(MQTT_POSITION_CLOSED, "pos_clsd", "position_closed") \
X(MQTT_POSITION_OPEN, "pos_open", "position_open") \
X(MQTT_POSITION_TEMPLATE, "pos_tpl", "position_template") \
X(MQTT_POSITION_TOPIC, "pos_t", "position_topic") \
X(MQTT_POWER_COMMAND_TOPIC, "pow_cmd_t", "power_command_topic") \
X(MQTT_POWER_STATE_TEMPLATE, "pow_stat_tpl", "power_state_template") \
X(MQTT_POWER_STATE_TOPIC, "pow_stat_t", "power_state_topic") \
X(MQTT_PRESET_MODE_COMMAND_TEMPLATE, "pr_mode_cmd_tpl", "preset_mode_command_template") \
X(MQTT_PRESET_MODE_COMMAND_TOPIC, "pr_mode_cmd_t", "preset_mode_command_topic") \
X(MQTT_PRESET_MODE_STATE_TOPIC, "pr_mode_stat_t", "preset_mode_state_topic") \
X(MQTT_PRESET_MODE_VALUE_TEMPLATE, "pr_mode_val_tpl", "preset_mode_value_template") \
X(MQTT_PRESET_MODES, "pr_modes", "preset_modes") \
X(MQTT_QOS, "qos", "qos") \
X(MQTT_RED_TEMPLATE, "r_tpl", "red_template") \
X(MQTT_RETAIN, "ret", "retain") \
X(MQTT_RGB_COMMAND_TEMPLATE, "rgb_cmd_tpl", "rgb_command_template") \
X(MQTT_RGB_COMMAND_TOPIC, "rgb_cmd_t", "rgb_command_topic") \
X(MQTT_RGB_STATE_TOPIC, "rgb_stat_t", "rgb_state_topic") \
X(MQTT_RGB_VALUE_TEMPLATE, "rgb_val_tpl", "rgb_value_template") \
X(MQTT_RGBW_COMMAND_TEMPLATE, "rgbw_cmd_tpl", "rgbw_command_template") \
X(MQTT_RGBW_COMMAND_TOPIC, "rgbw_cmd_t", "rgbw_command_topic") \
X(MQTT_RGBW_STATE_TOPIC, "rgbw_stat_t", "rgbw_state_topic") \
X(MQTT_RGBW_VALUE_TEMPLATE, "rgbw_val_tpl", "rgbw_value_template") \
X(MQTT_RGBWW_COMMAND_TEMPLATE, "rgbww_cmd_tpl", "rgbww_command_template") \
X(MQTT_RGBWW_COMMAND_TOPIC, "rgbww_cmd_t", "rgbww_command_topic") \
X(MQTT_RGBWW_STATE_TOPIC, "rgbww_stat_t", "rgbww_state_topic") \
X(MQTT_RGBWW_VALUE_TEMPLATE, "rgbww_val_tpl", "rgbww_value_template") \
X(MQTT_SEND_COMMAND_TOPIC, "send_cmd_t", "send_command_topic") \
X(MQTT_SEND_IF_OFF, "send_if_off", "send_if_off") \
X(MQTT_SET_FAN_SPEED_TOPIC, "set_fan_spd_t", "set_fan_speed_topic") \
X(MQTT_SET_POSITION_TEMPLATE, "set_pos_tpl", "set_position_template") \
X(MQTT_SET_POSITION_TOPIC, "set_pos_t", "set_position_topic") \
X(MQTT_SOURCE_TYPE, "src_type", "source_type") \
X(MQTT_SPEED_COMMAND_TOPIC, "spd_cmd_t", "speed_command_topic") \
X(MQTT_SPEED_RANGE_MAX, "spd_rng_max", "speed_range_max") \
X(MQTT_SPEED_RANGE_MIN, "spd_rng_min", "speed_range_min") \
X(MQTT_SPEED_STATE_TOPIC, "spd_stat_t", "speed_state_topic") \
X(MQTT_SPEED_VALUE_TEMPLATE, "spd_val_tpl", "speed_value_template") \
X(MQTT_SPEEDS, "spds", "speeds") \
X(MQTT_STATE_CLASS, "stat_cla", "state_class") \
X(MQTT_STATE_CLOSED, "stat_clsd", "state_closed") \
X(MQTT_STATE_CLOSING, "stat_closing", "state_closing") \
X(MQTT_STATE_LOCKED, "stat_locked", "state_locked") \
X(MQTT_STATE_OFF, "stat_off", "state_off") \
X(MQTT_STATE_ON, "stat_on", "state_on") \
X(MQTT_STATE_OPEN, "stat_open", "state_open") \
X(MQTT_STATE_OPENING, "stat_opening", "state_opening") \
X(MQTT_STATE_STOPPED, "stat_stopped", "state_stopped") \
X(MQTT_STATE_TEMPLATE, "stat_tpl", "state_template") \
X(MQTT_STATE_TOPIC, "stat_t", "state_topic") \
X(MQTT_STATE_UNLOCKED, "stat_unlocked", "state_unlocked") \
X(MQTT_STATE_VALUE_TEMPLATE, "stat_val_tpl", "state_value_template") \
X(MQTT_STEP, "step", "step") \
X(MQTT_SUBTYPE, "stype", "subtype") \
X(MQTT_SUPPORTED_COLOR_MODES, "sup_clrm", "supported_color_modes") \
X(MQTT_SUPPORTED_FEATURES, "sup_feat", "supported_features") \
X(MQTT_SWING_MODE_COMMAND_TEMPLATE, "swing_mode_cmd_tpl", "swing_mode_command_template") \
X(MQTT_SWING_MODE_COMMAND_TOPIC, "swing_mode_cmd_t", "swing_mode_command_topic") \
X(MQTT_SWING_MODE_STATE_TEMPLATE, "swing_mode_stat_tpl", "swing_mode_state_template") \
X(MQTT_SWING_MODE_STATE_TOPIC, "swing_mode_stat_t", "swing_mode_state_topic") \
X(MQTT_TARGET_HUMIDITY_COMMAND_TEMPLATE, "hum_cmd_tpl", "target_humidity_command_template") \
X(MQTT_TARGET_HUMIDITY_COMMAND_TOPIC, "hum_cmd_t", "target_humidity_command_topic") \
X(MQTT_TARGET_HUMIDITY_STATE_TEMPLATE, "hum_state_tpl", "target_humidity_state_template") \
X(MQTT_TARGET_HUMIDITY_STATE_TOPIC, "hum_stat_t", "target_humidity_state_topic") \
X(MQTT_TARGET_TEMPERATURE_STEP, "temp_step", "temp_step") \
X(MQTT_TEMPERATURE_COMMAND_TEMPLATE, "temp_cmd_tpl", "temperature_command_template") \
X(MQTT_TEMPERATURE_COMMAND_TOPIC, "temp_cmd_t", "temperature_command_topic") \
X(MQTT_TEMPERATURE_HIGH_COMMAND_TEMPLATE, "temp_hi_cmd_tpl", "temperature_high_command_template") \
X(MQTT_TEMPERATURE_HIGH_COMMAND_TOPIC, "temp_hi_cmd_t", "temperature_high_command_topic") \
X(MQTT_TEMPERATURE_HIGH_STATE_TEMPLATE, "temp_hi_stat_tpl", "temperature_high_state_template") \
X(MQTT_TEMPERATURE_HIGH_STATE_TOPIC, "temp_hi_stat_t", "temperature_high_state_topic") \
X(MQTT_TEMPERATURE_LOW_COMMAND_TEMPLATE, "temp_lo_cmd_tpl", "temperature_low_command_template") \
X(MQTT_TEMPERATURE_LOW_COMMAND_TOPIC, "temp_lo_cmd_t", "temperature_low_command_topic") \
X(MQTT_TEMPERATURE_LOW_STATE_TEMPLATE, "temp_lo_stat_tpl", "temperature_low_state_template") \
X(MQTT_TEMPERATURE_LOW_STATE_TOPIC, "temp_lo_stat_t", "temperature_low_state_topic") \
X(MQTT_TEMPERATURE_STATE_TEMPLATE, "temp_stat_tpl", "temperature_state_template") \
X(MQTT_TEMPERATURE_STATE_TOPIC, "temp_stat_t", "temperature_state_topic") \
X(MQTT_TEMPERATURE_UNIT, "temp_unit", "temperature_unit") \
X(MQTT_TILT_CLOSED_VALUE, "tilt_clsd_val", "tilt_closed_value") \
X(MQTT_TILT_COMMAND_TEMPLATE, "tilt_cmd_tpl", "tilt_command_template") \
X(MQTT_TILT_COMMAND_TOPIC, "tilt_cmd_t", "tilt_command_topic") \
X(MQTT_TILT_INVERT_STATE, "tilt_inv_stat", "tilt_invert_state") \
X(MQTT_TILT_MAX, "tilt_max", "tilt_max") \
X(MQTT_TILT_MIN, "tilt_min", "tilt_min") \
X(MQTT_TILT_OPENED_VALUE, "tilt_opnd_val", "tilt_opened_value") \
X(MQTT_TILT_OPTIMISTIC, "tilt_opt", "tilt_optimistic") \
X(MQTT_TILT_STATUS_TEMPLATE, "tilt_status_tpl", "tilt_status_template") \
X(MQTT_TILT_STATUS_TOPIC, "tilt_status_t", "tilt_status_topic") \
X(MQTT_TOPIC, "t", "topic") \
X(MQTT_UNIQUE_ID, "uniq_id", "unique_id") \
X(MQTT_UNIT_OF_MEASUREMENT, "unit_of_meas", "unit_of_measurement") \
X(MQTT_VALUE_TEMPLATE, "val_tpl", "value_template") \
X(MQTT_WHITE_COMMAND_TOPIC, "whit_cmd_t", "white_command_topic") \
X(MQTT_WHITE_SCALE, "whit_scl", "white_scale") \
X(MQTT_WHITE_VALUE_COMMAND_TOPIC, "whit_val_cmd_t", "white_value_command_topic") \
X(MQTT_WHITE_VALUE_SCALE, "whit_val_scl", "white_value_scale") \
X(MQTT_WHITE_VALUE_STATE_TOPIC, "whit_val_stat_t", "white_value_state_topic") \
X(MQTT_WHITE_VALUE_TEMPLATE, "whit_val_tpl", "white_value_template") \
X(MQTT_XY_COMMAND_TOPIC, "xy_cmd_t", "xy_command_topic") \
X(MQTT_XY_STATE_TOPIC, "xy_stat_t", "xy_state_topic") \
X(MQTT_XY_VALUE_TEMPLATE, "xy_val_tpl", "xy_value_template")
// clang-format on
#ifdef USE_ESP8266
// ESP8266: Store strings in PROGMEM (flash) and expose as __FlashStringHelper* pointers.
// ArduinoJson recognizes this type and reads from flash memory.
namespace esphome::mqtt {
// Generate PROGMEM data arrays
#ifdef USE_MQTT_ABBREVIATIONS
constexpr const char *const MQTT_ACTION_TEMPLATE = "act_tpl";
constexpr const char *const MQTT_ACTION_TOPIC = "act_t";
constexpr const char *const MQTT_AUTOMATION_TYPE = "atype";
constexpr const char *const MQTT_AUX_COMMAND_TOPIC = "aux_cmd_t";
constexpr const char *const MQTT_AUX_STATE_TEMPLATE = "aux_stat_tpl";
constexpr const char *const MQTT_AUX_STATE_TOPIC = "aux_stat_t";
constexpr const char *const MQTT_AVAILABILITY = "avty";
constexpr const char *const MQTT_AVAILABILITY_MODE = "avty_mode";
constexpr const char *const MQTT_AVAILABILITY_TOPIC = "avty_t";
constexpr const char *const MQTT_AWAY_MODE_COMMAND_TOPIC = "away_mode_cmd_t";
constexpr const char *const MQTT_AWAY_MODE_STATE_TEMPLATE = "away_mode_stat_tpl";
constexpr const char *const MQTT_AWAY_MODE_STATE_TOPIC = "away_mode_stat_t";
constexpr const char *const MQTT_BATTERY_LEVEL_TEMPLATE = "bat_lev_tpl";
constexpr const char *const MQTT_BATTERY_LEVEL_TOPIC = "bat_lev_t";
constexpr const char *const MQTT_BLUE_TEMPLATE = "b_tpl";
constexpr const char *const MQTT_BRIGHTNESS_COMMAND_TOPIC = "bri_cmd_t";
constexpr const char *const MQTT_BRIGHTNESS_SCALE = "bri_scl";
constexpr const char *const MQTT_BRIGHTNESS_STATE_TOPIC = "bri_stat_t";
constexpr const char *const MQTT_BRIGHTNESS_TEMPLATE = "bri_tpl";
constexpr const char *const MQTT_BRIGHTNESS_VALUE_TEMPLATE = "bri_val_tpl";
constexpr const char *const MQTT_CHARGING_TEMPLATE = "chrg_tpl";
constexpr const char *const MQTT_CHARGING_TOPIC = "chrg_t";
constexpr const char *const MQTT_CLEANING_TEMPLATE = "cln_tpl";
constexpr const char *const MQTT_CLEANING_TOPIC = "cln_t";
constexpr const char *const MQTT_CODE_ARM_REQUIRED = "cod_arm_req";
constexpr const char *const MQTT_CODE_DISARM_REQUIRED = "cod_dis_req";
constexpr const char *const MQTT_COLOR_MODE = "clrm";
constexpr const char *const MQTT_COLOR_MODE_STATE_TOPIC = "clrm_stat_t";
constexpr const char *const MQTT_COLOR_MODE_VALUE_TEMPLATE = "clrm_val_tpl";
constexpr const char *const MQTT_COLOR_TEMP_COMMAND_TEMPLATE = "clr_temp_cmd_tpl";
constexpr const char *const MQTT_COLOR_TEMP_COMMAND_TOPIC = "clr_temp_cmd_t";
constexpr const char *const MQTT_COLOR_TEMP_STATE_TOPIC = "clr_temp_stat_t";
constexpr const char *const MQTT_COLOR_TEMP_TEMPLATE = "clr_temp_tpl";
constexpr const char *const MQTT_COLOR_TEMP_VALUE_TEMPLATE = "clr_temp_val_tpl";
constexpr const char *const MQTT_COMMAND_OFF_TEMPLATE = "cmd_off_tpl";
constexpr const char *const MQTT_COMMAND_ON_TEMPLATE = "cmd_on_tpl";
constexpr const char *const MQTT_COMMAND_RETAIN = "ret";
constexpr const char *const MQTT_COMMAND_TEMPLATE = "cmd_tpl";
constexpr const char *const MQTT_COMMAND_TOPIC = "cmd_t";
constexpr const char *const MQTT_CONFIGURATION_URL = "cu";
constexpr const char *const MQTT_CURRENT_HUMIDITY_TEMPLATE = "curr_hum_tpl";
constexpr const char *const MQTT_CURRENT_HUMIDITY_TOPIC = "curr_hum_t";
constexpr const char *const MQTT_CURRENT_TEMPERATURE_STEP = "precision";
constexpr const char *const MQTT_CURRENT_TEMPERATURE_TEMPLATE = "curr_temp_tpl";
constexpr const char *const MQTT_CURRENT_TEMPERATURE_TOPIC = "curr_temp_t";
constexpr const char *const MQTT_DEVICE = "dev";
constexpr const char *const MQTT_DEVICE_CLASS = "dev_cla";
constexpr const char *const MQTT_DEVICE_CONNECTIONS = "cns";
constexpr const char *const MQTT_DEVICE_IDENTIFIERS = "ids";
constexpr const char *const MQTT_DEVICE_MANUFACTURER = "mf";
constexpr const char *const MQTT_DEVICE_MODEL = "mdl";
constexpr const char *const MQTT_DEVICE_NAME = "name";
constexpr const char *const MQTT_DEVICE_SUGGESTED_AREA = "sa";
constexpr const char *const MQTT_DEVICE_SW_VERSION = "sw";
constexpr const char *const MQTT_DEVICE_HW_VERSION = "hw";
constexpr const char *const MQTT_DIRECTION_COMMAND_TOPIC = "dir_cmd_t";
constexpr const char *const MQTT_DIRECTION_STATE_TOPIC = "dir_stat_t";
constexpr const char *const MQTT_DOCKED_TEMPLATE = "dock_tpl";
constexpr const char *const MQTT_DOCKED_TOPIC = "dock_t";
constexpr const char *const MQTT_EFFECT_COMMAND_TOPIC = "fx_cmd_t";
constexpr const char *const MQTT_EFFECT_LIST = "fx_list";
constexpr const char *const MQTT_EFFECT_STATE_TOPIC = "fx_stat_t";
constexpr const char *const MQTT_EFFECT_TEMPLATE = "fx_tpl";
constexpr const char *const MQTT_EFFECT_VALUE_TEMPLATE = "fx_val_tpl";
constexpr const char *const MQTT_ENABLED_BY_DEFAULT = "en";
constexpr const char *const MQTT_ENTITY_CATEGORY = "ent_cat";
constexpr const char *const MQTT_ERROR_TEMPLATE = "err_tpl";
constexpr const char *const MQTT_ERROR_TOPIC = "err_t";
constexpr const char *const MQTT_EVENT_TYPE = "event_type";
constexpr const char *const MQTT_EVENT_TYPES = "evt_typ";
constexpr const char *const MQTT_EXPIRE_AFTER = "exp_aft";
constexpr const char *const MQTT_FAN_MODE_COMMAND_TEMPLATE = "fan_mode_cmd_tpl";
constexpr const char *const MQTT_FAN_MODE_COMMAND_TOPIC = "fan_mode_cmd_t";
constexpr const char *const MQTT_FAN_MODE_STATE_TEMPLATE = "fan_mode_stat_tpl";
constexpr const char *const MQTT_FAN_MODE_STATE_TOPIC = "fan_mode_stat_t";
constexpr const char *const MQTT_FAN_SPEED_LIST = "fanspd_lst";
constexpr const char *const MQTT_FAN_SPEED_TEMPLATE = "fanspd_tpl";
constexpr const char *const MQTT_FAN_SPEED_TOPIC = "fanspd_t";
constexpr const char *const MQTT_FLASH_TIME_LONG = "flsh_tlng";
constexpr const char *const MQTT_FLASH_TIME_SHORT = "flsh_tsht";
constexpr const char *const MQTT_FORCE_UPDATE = "frc_upd";
constexpr const char *const MQTT_GREEN_TEMPLATE = "g_tpl";
constexpr const char *const MQTT_HOLD_COMMAND_TEMPLATE = "hold_cmd_tpl";
constexpr const char *const MQTT_HOLD_COMMAND_TOPIC = "hold_cmd_t";
constexpr const char *const MQTT_HOLD_STATE_TEMPLATE = "hold_stat_tpl";
constexpr const char *const MQTT_HOLD_STATE_TOPIC = "hold_stat_t";
constexpr const char *const MQTT_HS_COMMAND_TOPIC = "hs_cmd_t";
constexpr const char *const MQTT_HS_STATE_TOPIC = "hs_stat_t";
constexpr const char *const MQTT_HS_VALUE_TEMPLATE = "hs_val_tpl";
constexpr const char *const MQTT_ICON = "ic";
constexpr const char *const MQTT_INITIAL = "init";
constexpr const char *const MQTT_JSON_ATTRIBUTES = "json_attr";
constexpr const char *const MQTT_JSON_ATTRIBUTES_TEMPLATE = "json_attr_tpl";
constexpr const char *const MQTT_JSON_ATTRIBUTES_TOPIC = "json_attr_t";
constexpr const char *const MQTT_LAST_RESET_TOPIC = "lrst_t";
constexpr const char *const MQTT_LAST_RESET_VALUE_TEMPLATE = "lrst_val_tpl";
constexpr const char *const MQTT_MAX = "max";
constexpr const char *const MQTT_MAX_HUMIDITY = "max_hum";
constexpr const char *const MQTT_MAX_MIREDS = "max_mirs";
constexpr const char *const MQTT_MAX_TEMP = "max_temp";
constexpr const char *const MQTT_MIN = "min";
constexpr const char *const MQTT_MIN_HUMIDITY = "min_hum";
constexpr const char *const MQTT_MIN_MIREDS = "min_mirs";
constexpr const char *const MQTT_MIN_TEMP = "min_temp";
constexpr const char *const MQTT_MODE = "mode";
constexpr const char *const MQTT_MODE_COMMAND_TEMPLATE = "mode_cmd_tpl";
constexpr const char *const MQTT_MODE_COMMAND_TOPIC = "mode_cmd_t";
constexpr const char *const MQTT_MODE_STATE_TEMPLATE = "mode_stat_tpl";
constexpr const char *const MQTT_MODE_STATE_TOPIC = "mode_stat_t";
constexpr const char *const MQTT_MODES = "modes";
constexpr const char *const MQTT_NAME = "name";
constexpr const char *const MQTT_OBJECT_ID = "obj_id";
constexpr const char *const MQTT_OFF_DELAY = "off_dly";
constexpr const char *const MQTT_ON_COMMAND_TYPE = "on_cmd_type";
constexpr const char *const MQTT_OPTIMISTIC = "opt";
constexpr const char *const MQTT_OPTIONS = "ops";
constexpr const char *const MQTT_OSCILLATION_COMMAND_TEMPLATE = "osc_cmd_tpl";
constexpr const char *const MQTT_OSCILLATION_COMMAND_TOPIC = "osc_cmd_t";
constexpr const char *const MQTT_OSCILLATION_STATE_TOPIC = "osc_stat_t";
constexpr const char *const MQTT_OSCILLATION_VALUE_TEMPLATE = "osc_val_tpl";
constexpr const char *const MQTT_PAYLOAD = "pl";
constexpr const char *const MQTT_PAYLOAD_ARM_AWAY = "pl_arm_away";
constexpr const char *const MQTT_PAYLOAD_ARM_CUSTOM_BYPASS = "pl_arm_custom_b";
constexpr const char *const MQTT_PAYLOAD_ARM_HOME = "pl_arm_home";
constexpr const char *const MQTT_PAYLOAD_ARM_NIGHT = "pl_arm_nite";
constexpr const char *const MQTT_PAYLOAD_ARM_VACATION = "pl_arm_vacation";
constexpr const char *const MQTT_PAYLOAD_AVAILABLE = "pl_avail";
constexpr const char *const MQTT_PAYLOAD_CLEAN_SPOT = "pl_cln_sp";
constexpr const char *const MQTT_PAYLOAD_CLOSE = "pl_cls";
constexpr const char *const MQTT_PAYLOAD_DISARM = "pl_disarm";
constexpr const char *const MQTT_PAYLOAD_HIGH_SPEED = "pl_hi_spd";
constexpr const char *const MQTT_PAYLOAD_HOME = "pl_home";
constexpr const char *const MQTT_PAYLOAD_INSTALL = "pl_inst";
constexpr const char *const MQTT_PAYLOAD_LOCATE = "pl_loc";
constexpr const char *const MQTT_PAYLOAD_LOCK = "pl_lock";
constexpr const char *const MQTT_PAYLOAD_LOW_SPEED = "pl_lo_spd";
constexpr const char *const MQTT_PAYLOAD_MEDIUM_SPEED = "pl_med_spd";
constexpr const char *const MQTT_PAYLOAD_NOT_AVAILABLE = "pl_not_avail";
constexpr const char *const MQTT_PAYLOAD_NOT_HOME = "pl_not_home";
constexpr const char *const MQTT_PAYLOAD_OFF = "pl_off";
constexpr const char *const MQTT_PAYLOAD_OFF_SPEED = "pl_off_spd";
constexpr const char *const MQTT_PAYLOAD_ON = "pl_on";
constexpr const char *const MQTT_PAYLOAD_OPEN = "pl_open";
constexpr const char *const MQTT_PAYLOAD_OSCILLATION_OFF = "pl_osc_off";
constexpr const char *const MQTT_PAYLOAD_OSCILLATION_ON = "pl_osc_on";
constexpr const char *const MQTT_PAYLOAD_PAUSE = "pl_paus";
constexpr const char *const MQTT_PAYLOAD_RESET = "pl_rst";
constexpr const char *const MQTT_PAYLOAD_RESET_HUMIDITY = "pl_rst_hum";
constexpr const char *const MQTT_PAYLOAD_RESET_MODE = "pl_rst_mode";
constexpr const char *const MQTT_PAYLOAD_RESET_PERCENTAGE = "pl_rst_pct";
constexpr const char *const MQTT_PAYLOAD_RESET_PRESET_MODE = "pl_rst_pr_mode";
constexpr const char *const MQTT_PAYLOAD_RETURN_TO_BASE = "pl_ret";
constexpr const char *const MQTT_PAYLOAD_START = "pl_strt";
constexpr const char *const MQTT_PAYLOAD_START_PAUSE = "pl_stpa";
constexpr const char *const MQTT_PAYLOAD_STOP = "pl_stop";
constexpr const char *const MQTT_PAYLOAD_TURN_OFF = "pl_toff";
constexpr const char *const MQTT_PAYLOAD_TURN_ON = "pl_ton";
constexpr const char *const MQTT_PAYLOAD_UNLOCK = "pl_unlk";
constexpr const char *const MQTT_PERCENTAGE_COMMAND_TEMPLATE = "pct_cmd_tpl";
constexpr const char *const MQTT_PERCENTAGE_COMMAND_TOPIC = "pct_cmd_t";
constexpr const char *const MQTT_PERCENTAGE_STATE_TOPIC = "pct_stat_t";
constexpr const char *const MQTT_PERCENTAGE_VALUE_TEMPLATE = "pct_val_tpl";
constexpr const char *const MQTT_POSITION_CLOSED = "pos_clsd";
constexpr const char *const MQTT_POSITION_OPEN = "pos_open";
constexpr const char *const MQTT_POSITION_TEMPLATE = "pos_tpl";
constexpr const char *const MQTT_POSITION_TOPIC = "pos_t";
constexpr const char *const MQTT_POWER_COMMAND_TOPIC = "pow_cmd_t";
constexpr const char *const MQTT_POWER_STATE_TEMPLATE = "pow_stat_tpl";
constexpr const char *const MQTT_POWER_STATE_TOPIC = "pow_stat_t";
constexpr const char *const MQTT_PRESET_MODE_COMMAND_TEMPLATE = "pr_mode_cmd_tpl";
constexpr const char *const MQTT_PRESET_MODE_COMMAND_TOPIC = "pr_mode_cmd_t";
constexpr const char *const MQTT_PRESET_MODE_STATE_TOPIC = "pr_mode_stat_t";
constexpr const char *const MQTT_PRESET_MODE_VALUE_TEMPLATE = "pr_mode_val_tpl";
constexpr const char *const MQTT_PRESET_MODES = "pr_modes";
constexpr const char *const MQTT_QOS = "qos";
constexpr const char *const MQTT_RED_TEMPLATE = "r_tpl";
constexpr const char *const MQTT_RETAIN = "ret";
constexpr const char *const MQTT_RGB_COMMAND_TEMPLATE = "rgb_cmd_tpl";
constexpr const char *const MQTT_RGB_COMMAND_TOPIC = "rgb_cmd_t";
constexpr const char *const MQTT_RGB_STATE_TOPIC = "rgb_stat_t";
constexpr const char *const MQTT_RGB_VALUE_TEMPLATE = "rgb_val_tpl";
constexpr const char *const MQTT_RGBW_COMMAND_TEMPLATE = "rgbw_cmd_tpl";
constexpr const char *const MQTT_RGBW_COMMAND_TOPIC = "rgbw_cmd_t";
constexpr const char *const MQTT_RGBW_STATE_TOPIC = "rgbw_stat_t";
constexpr const char *const MQTT_RGBW_VALUE_TEMPLATE = "rgbw_val_tpl";
constexpr const char *const MQTT_RGBWW_COMMAND_TEMPLATE = "rgbww_cmd_tpl";
constexpr const char *const MQTT_RGBWW_COMMAND_TOPIC = "rgbww_cmd_t";
constexpr const char *const MQTT_RGBWW_STATE_TOPIC = "rgbww_stat_t";
constexpr const char *const MQTT_RGBWW_VALUE_TEMPLATE = "rgbww_val_tpl";
constexpr const char *const MQTT_SEND_COMMAND_TOPIC = "send_cmd_t";
constexpr const char *const MQTT_SEND_IF_OFF = "send_if_off";
constexpr const char *const MQTT_SET_FAN_SPEED_TOPIC = "set_fan_spd_t";
constexpr const char *const MQTT_SET_POSITION_TEMPLATE = "set_pos_tpl";
constexpr const char *const MQTT_SET_POSITION_TOPIC = "set_pos_t";
constexpr const char *const MQTT_SOURCE_TYPE = "src_type";
constexpr const char *const MQTT_SPEED_COMMAND_TOPIC = "spd_cmd_t";
constexpr const char *const MQTT_SPEED_RANGE_MAX = "spd_rng_max";
constexpr const char *const MQTT_SPEED_RANGE_MIN = "spd_rng_min";
constexpr const char *const MQTT_SPEED_STATE_TOPIC = "spd_stat_t";
constexpr const char *const MQTT_SPEED_VALUE_TEMPLATE = "spd_val_tpl";
constexpr const char *const MQTT_SPEEDS = "spds";
constexpr const char *const MQTT_STATE_CLASS = "stat_cla";
constexpr const char *const MQTT_STATE_CLOSED = "stat_clsd";
constexpr const char *const MQTT_STATE_CLOSING = "stat_closing";
constexpr const char *const MQTT_STATE_LOCKED = "stat_locked";
constexpr const char *const MQTT_STATE_OFF = "stat_off";
constexpr const char *const MQTT_STATE_ON = "stat_on";
constexpr const char *const MQTT_STATE_OPEN = "stat_open";
constexpr const char *const MQTT_STATE_OPENING = "stat_opening";
constexpr const char *const MQTT_STATE_STOPPED = "stat_stopped";
constexpr const char *const MQTT_STATE_TEMPLATE = "stat_tpl";
constexpr const char *const MQTT_STATE_TOPIC = "stat_t";
constexpr const char *const MQTT_STATE_UNLOCKED = "stat_unlocked";
constexpr const char *const MQTT_STATE_VALUE_TEMPLATE = "stat_val_tpl";
constexpr const char *const MQTT_STEP = "step";
constexpr const char *const MQTT_SUBTYPE = "stype";
constexpr const char *const MQTT_SUPPORTED_COLOR_MODES = "sup_clrm";
constexpr const char *const MQTT_SUPPORTED_FEATURES = "sup_feat";
constexpr const char *const MQTT_SWING_MODE_COMMAND_TEMPLATE = "swing_mode_cmd_tpl";
constexpr const char *const MQTT_SWING_MODE_COMMAND_TOPIC = "swing_mode_cmd_t";
constexpr const char *const MQTT_SWING_MODE_STATE_TEMPLATE = "swing_mode_stat_tpl";
constexpr const char *const MQTT_SWING_MODE_STATE_TOPIC = "swing_mode_stat_t";
constexpr const char *const MQTT_TARGET_HUMIDITY_COMMAND_TEMPLATE = "hum_cmd_tpl";
constexpr const char *const MQTT_TARGET_HUMIDITY_COMMAND_TOPIC = "hum_cmd_t";
constexpr const char *const MQTT_TARGET_HUMIDITY_STATE_TEMPLATE = "hum_state_tpl";
constexpr const char *const MQTT_TARGET_HUMIDITY_STATE_TOPIC = "hum_stat_t";
constexpr const char *const MQTT_TARGET_TEMPERATURE_STEP = "temp_step";
constexpr const char *const MQTT_TEMPERATURE_COMMAND_TEMPLATE = "temp_cmd_tpl";
constexpr const char *const MQTT_TEMPERATURE_COMMAND_TOPIC = "temp_cmd_t";
constexpr const char *const MQTT_TEMPERATURE_HIGH_COMMAND_TEMPLATE = "temp_hi_cmd_tpl";
constexpr const char *const MQTT_TEMPERATURE_HIGH_COMMAND_TOPIC = "temp_hi_cmd_t";
constexpr const char *const MQTT_TEMPERATURE_HIGH_STATE_TEMPLATE = "temp_hi_stat_tpl";
constexpr const char *const MQTT_TEMPERATURE_HIGH_STATE_TOPIC = "temp_hi_stat_t";
constexpr const char *const MQTT_TEMPERATURE_LOW_COMMAND_TEMPLATE = "temp_lo_cmd_tpl";
constexpr const char *const MQTT_TEMPERATURE_LOW_COMMAND_TOPIC = "temp_lo_cmd_t";
constexpr const char *const MQTT_TEMPERATURE_LOW_STATE_TEMPLATE = "temp_lo_stat_tpl";
constexpr const char *const MQTT_TEMPERATURE_LOW_STATE_TOPIC = "temp_lo_stat_t";
constexpr const char *const MQTT_TEMPERATURE_STATE_TEMPLATE = "temp_stat_tpl";
constexpr const char *const MQTT_TEMPERATURE_STATE_TOPIC = "temp_stat_t";
constexpr const char *const MQTT_TEMPERATURE_UNIT = "temp_unit";
constexpr const char *const MQTT_TILT_CLOSED_VALUE = "tilt_clsd_val";
constexpr const char *const MQTT_TILT_COMMAND_TEMPLATE = "tilt_cmd_tpl";
constexpr const char *const MQTT_TILT_COMMAND_TOPIC = "tilt_cmd_t";
constexpr const char *const MQTT_TILT_INVERT_STATE = "tilt_inv_stat";
constexpr const char *const MQTT_TILT_MAX = "tilt_max";
constexpr const char *const MQTT_TILT_MIN = "tilt_min";
constexpr const char *const MQTT_TILT_OPENED_VALUE = "tilt_opnd_val";
constexpr const char *const MQTT_TILT_OPTIMISTIC = "tilt_opt";
constexpr const char *const MQTT_TILT_STATUS_TEMPLATE = "tilt_status_tpl";
constexpr const char *const MQTT_TILT_STATUS_TOPIC = "tilt_status_t";
constexpr const char *const MQTT_TOPIC = "t";
constexpr const char *const MQTT_UNIQUE_ID = "uniq_id";
constexpr const char *const MQTT_UNIT_OF_MEASUREMENT = "unit_of_meas";
constexpr const char *const MQTT_VALUE_TEMPLATE = "val_tpl";
constexpr const char *const MQTT_WHITE_COMMAND_TOPIC = "whit_cmd_t";
constexpr const char *const MQTT_WHITE_SCALE = "whit_scl";
constexpr const char *const MQTT_WHITE_VALUE_COMMAND_TOPIC = "whit_val_cmd_t";
constexpr const char *const MQTT_WHITE_VALUE_SCALE = "whit_val_scl";
constexpr const char *const MQTT_WHITE_VALUE_STATE_TOPIC = "whit_val_stat_t";
constexpr const char *const MQTT_WHITE_VALUE_TEMPLATE = "whit_val_tpl";
constexpr const char *const MQTT_XY_COMMAND_TOPIC = "xy_cmd_t";
constexpr const char *const MQTT_XY_STATE_TOPIC = "xy_stat_t";
constexpr const char *const MQTT_XY_VALUE_TEMPLATE = "xy_val_tpl";
#define MQTT_DATA(name, abbr, full) static const char name##_data[] PROGMEM = abbr;
#else
#define MQTT_DATA(name, abbr, full) static const char name##_data[] PROGMEM = full;
#endif
MQTT_KEYS_LIST(MQTT_DATA)
#undef MQTT_DATA
constexpr const char *const MQTT_ACTION_TEMPLATE = "action_template";
constexpr const char *const MQTT_ACTION_TOPIC = "action_topic";
constexpr const char *const MQTT_AUTOMATION_TYPE = "automation_type";
constexpr const char *const MQTT_AUX_COMMAND_TOPIC = "aux_command_topic";
constexpr const char *const MQTT_AUX_STATE_TEMPLATE = "aux_state_template";
constexpr const char *const MQTT_AUX_STATE_TOPIC = "aux_state_topic";
constexpr const char *const MQTT_AVAILABILITY = "availability";
constexpr const char *const MQTT_AVAILABILITY_MODE = "availability_mode";
constexpr const char *const MQTT_AVAILABILITY_TOPIC = "availability_topic";
constexpr const char *const MQTT_AWAY_MODE_COMMAND_TOPIC = "away_mode_command_topic";
constexpr const char *const MQTT_AWAY_MODE_STATE_TEMPLATE = "away_mode_state_template";
constexpr const char *const MQTT_AWAY_MODE_STATE_TOPIC = "away_mode_state_topic";
constexpr const char *const MQTT_BATTERY_LEVEL_TEMPLATE = "battery_level_template";
constexpr const char *const MQTT_BATTERY_LEVEL_TOPIC = "battery_level_topic";
constexpr const char *const MQTT_BLUE_TEMPLATE = "blue_template";
constexpr const char *const MQTT_BRIGHTNESS_COMMAND_TOPIC = "brightness_command_topic";
constexpr const char *const MQTT_BRIGHTNESS_SCALE = "brightness_scale";
constexpr const char *const MQTT_BRIGHTNESS_STATE_TOPIC = "brightness_state_topic";
constexpr const char *const MQTT_BRIGHTNESS_TEMPLATE = "brightness_template";
constexpr const char *const MQTT_BRIGHTNESS_VALUE_TEMPLATE = "brightness_value_template";
constexpr const char *const MQTT_CHARGING_TEMPLATE = "charging_template";
constexpr const char *const MQTT_CHARGING_TOPIC = "charging_topic";
constexpr const char *const MQTT_CLEANING_TEMPLATE = "cleaning_template";
constexpr const char *const MQTT_CLEANING_TOPIC = "cleaning_topic";
constexpr const char *const MQTT_CODE_ARM_REQUIRED = "code_arm_required";
constexpr const char *const MQTT_CODE_DISARM_REQUIRED = "code_disarm_required";
constexpr const char *const MQTT_COLOR_MODE = "color_mode";
constexpr const char *const MQTT_COLOR_MODE_STATE_TOPIC = "color_mode_state_topic";
constexpr const char *const MQTT_COLOR_MODE_VALUE_TEMPLATE = "color_mode_value_template";
constexpr const char *const MQTT_COLOR_TEMP_COMMAND_TEMPLATE = "color_temp_command_template";
constexpr const char *const MQTT_COLOR_TEMP_COMMAND_TOPIC = "color_temp_command_topic";
constexpr const char *const MQTT_COLOR_TEMP_STATE_TOPIC = "color_temp_state_topic";
constexpr const char *const MQTT_COLOR_TEMP_TEMPLATE = "color_temp_template";
constexpr const char *const MQTT_COLOR_TEMP_VALUE_TEMPLATE = "color_temp_value_template";
constexpr const char *const MQTT_COMMAND_OFF_TEMPLATE = "command_off_template";
constexpr const char *const MQTT_COMMAND_ON_TEMPLATE = "command_on_template";
constexpr const char *const MQTT_COMMAND_RETAIN = "retain";
constexpr const char *const MQTT_COMMAND_TEMPLATE = "command_template";
constexpr const char *const MQTT_COMMAND_TOPIC = "command_topic";
constexpr const char *const MQTT_CONFIGURATION_URL = "configuration_url";
constexpr const char *const MQTT_CURRENT_HUMIDITY_TEMPLATE = "current_humidity_template";
constexpr const char *const MQTT_CURRENT_HUMIDITY_TOPIC = "current_humidity_topic";
constexpr const char *const MQTT_CURRENT_TEMPERATURE_STEP = "precision";
constexpr const char *const MQTT_CURRENT_TEMPERATURE_TEMPLATE = "current_temperature_template";
constexpr const char *const MQTT_CURRENT_TEMPERATURE_TOPIC = "current_temperature_topic";
constexpr const char *const MQTT_DEVICE = "device";
constexpr const char *const MQTT_DEVICE_CLASS = "device_class";
constexpr const char *const MQTT_DEVICE_CONNECTIONS = "connections";
constexpr const char *const MQTT_DEVICE_IDENTIFIERS = "identifiers";
constexpr const char *const MQTT_DEVICE_MANUFACTURER = "manufacturer";
constexpr const char *const MQTT_DEVICE_MODEL = "model";
constexpr const char *const MQTT_DEVICE_NAME = "name";
constexpr const char *const MQTT_DEVICE_SUGGESTED_AREA = "suggested_area";
constexpr const char *const MQTT_DEVICE_SW_VERSION = "sw_version";
constexpr const char *const MQTT_DEVICE_HW_VERSION = "hw_version";
constexpr const char *const MQTT_DIRECTION_COMMAND_TOPIC = "direction_command_topic";
constexpr const char *const MQTT_DIRECTION_STATE_TOPIC = "direction_state_topic";
constexpr const char *const MQTT_DOCKED_TEMPLATE = "docked_template";
constexpr const char *const MQTT_DOCKED_TOPIC = "docked_topic";
constexpr const char *const MQTT_EFFECT_COMMAND_TOPIC = "effect_command_topic";
constexpr const char *const MQTT_EFFECT_LIST = "effect_list";
constexpr const char *const MQTT_EFFECT_STATE_TOPIC = "effect_state_topic";
constexpr const char *const MQTT_EFFECT_TEMPLATE = "effect_template";
constexpr const char *const MQTT_EFFECT_VALUE_TEMPLATE = "effect_value_template";
constexpr const char *const MQTT_ENABLED_BY_DEFAULT = "enabled_by_default";
constexpr const char *const MQTT_ENTITY_CATEGORY = "entity_category";
constexpr const char *const MQTT_ERROR_TEMPLATE = "error_template";
constexpr const char *const MQTT_ERROR_TOPIC = "error_topic";
constexpr const char *const MQTT_EVENT_TYPE = "event_type";
constexpr const char *const MQTT_EVENT_TYPES = "event_types";
constexpr const char *const MQTT_EXPIRE_AFTER = "expire_after";
constexpr const char *const MQTT_FAN_MODE_COMMAND_TEMPLATE = "fan_mode_command_template";
constexpr const char *const MQTT_FAN_MODE_COMMAND_TOPIC = "fan_mode_command_topic";
constexpr const char *const MQTT_FAN_MODE_STATE_TEMPLATE = "fan_mode_state_template";
constexpr const char *const MQTT_FAN_MODE_STATE_TOPIC = "fan_mode_state_topic";
constexpr const char *const MQTT_FAN_SPEED_LIST = "fan_speed_list";
constexpr const char *const MQTT_FAN_SPEED_TEMPLATE = "fan_speed_template";
constexpr const char *const MQTT_FAN_SPEED_TOPIC = "fan_speed_topic";
constexpr const char *const MQTT_FLASH_TIME_LONG = "flash_time_long";
constexpr const char *const MQTT_FLASH_TIME_SHORT = "flash_time_short";
constexpr const char *const MQTT_FORCE_UPDATE = "force_update";
constexpr const char *const MQTT_GREEN_TEMPLATE = "green_template";
constexpr const char *const MQTT_HOLD_COMMAND_TEMPLATE = "hold_command_template";
constexpr const char *const MQTT_HOLD_COMMAND_TOPIC = "hold_command_topic";
constexpr const char *const MQTT_HOLD_STATE_TEMPLATE = "hold_state_template";
constexpr const char *const MQTT_HOLD_STATE_TOPIC = "hold_state_topic";
constexpr const char *const MQTT_HS_COMMAND_TOPIC = "hs_command_topic";
constexpr const char *const MQTT_HS_STATE_TOPIC = "hs_state_topic";
constexpr const char *const MQTT_HS_VALUE_TEMPLATE = "hs_value_template";
constexpr const char *const MQTT_ICON = "icon";
constexpr const char *const MQTT_INITIAL = "initial";
constexpr const char *const MQTT_JSON_ATTRIBUTES = "json_attributes";
constexpr const char *const MQTT_JSON_ATTRIBUTES_TEMPLATE = "json_attributes_template";
constexpr const char *const MQTT_JSON_ATTRIBUTES_TOPIC = "json_attributes_topic";
constexpr const char *const MQTT_LAST_RESET_TOPIC = "last_reset_topic";
constexpr const char *const MQTT_LAST_RESET_VALUE_TEMPLATE = "last_reset_value_template";
constexpr const char *const MQTT_MAX = "max";
constexpr const char *const MQTT_MAX_HUMIDITY = "max_humidity";
constexpr const char *const MQTT_MAX_MIREDS = "max_mireds";
constexpr const char *const MQTT_MAX_TEMP = "max_temp";
constexpr const char *const MQTT_MIN = "min";
constexpr const char *const MQTT_MIN_HUMIDITY = "min_humidity";
constexpr const char *const MQTT_MIN_MIREDS = "min_mireds";
constexpr const char *const MQTT_MIN_TEMP = "min_temp";
constexpr const char *const MQTT_MODE = "mode";
constexpr const char *const MQTT_MODE_COMMAND_TEMPLATE = "mode_command_template";
constexpr const char *const MQTT_MODE_COMMAND_TOPIC = "mode_command_topic";
constexpr const char *const MQTT_MODE_STATE_TEMPLATE = "mode_state_template";
constexpr const char *const MQTT_MODE_STATE_TOPIC = "mode_state_topic";
constexpr const char *const MQTT_MODES = "modes";
constexpr const char *const MQTT_NAME = "name";
constexpr const char *const MQTT_OBJECT_ID = "object_id";
constexpr const char *const MQTT_OFF_DELAY = "off_delay";
constexpr const char *const MQTT_ON_COMMAND_TYPE = "on_command_type";
constexpr const char *const MQTT_OPTIMISTIC = "optimistic";
constexpr const char *const MQTT_OPTIONS = "options";
constexpr const char *const MQTT_OSCILLATION_COMMAND_TEMPLATE = "oscillation_command_template";
constexpr const char *const MQTT_OSCILLATION_COMMAND_TOPIC = "oscillation_command_topic";
constexpr const char *const MQTT_OSCILLATION_STATE_TOPIC = "oscillation_state_topic";
constexpr const char *const MQTT_OSCILLATION_VALUE_TEMPLATE = "oscillation_value_template";
constexpr const char *const MQTT_PAYLOAD = "payload";
constexpr const char *const MQTT_PAYLOAD_ARM_AWAY = "payload_arm_away";
constexpr const char *const MQTT_PAYLOAD_ARM_CUSTOM_BYPASS = "payload_arm_custom_bypass";
constexpr const char *const MQTT_PAYLOAD_ARM_HOME = "payload_arm_home";
constexpr const char *const MQTT_PAYLOAD_ARM_NIGHT = "payload_arm_night";
constexpr const char *const MQTT_PAYLOAD_ARM_VACATION = "payload_arm_vacation";
constexpr const char *const MQTT_PAYLOAD_AVAILABLE = "payload_available";
constexpr const char *const MQTT_PAYLOAD_CLEAN_SPOT = "payload_clean_spot";
constexpr const char *const MQTT_PAYLOAD_CLOSE = "payload_close";
constexpr const char *const MQTT_PAYLOAD_DISARM = "payload_disarm";
constexpr const char *const MQTT_PAYLOAD_HIGH_SPEED = "payload_high_speed";
constexpr const char *const MQTT_PAYLOAD_HOME = "payload_home";
constexpr const char *const MQTT_PAYLOAD_INSTALL = "payload_install";
constexpr const char *const MQTT_PAYLOAD_LOCATE = "payload_locate";
constexpr const char *const MQTT_PAYLOAD_LOCK = "payload_lock";
constexpr const char *const MQTT_PAYLOAD_LOW_SPEED = "payload_low_speed";
constexpr const char *const MQTT_PAYLOAD_MEDIUM_SPEED = "payload_medium_speed";
constexpr const char *const MQTT_PAYLOAD_NOT_AVAILABLE = "payload_not_available";
constexpr const char *const MQTT_PAYLOAD_NOT_HOME = "payload_not_home";
constexpr const char *const MQTT_PAYLOAD_OFF = "payload_off";
constexpr const char *const MQTT_PAYLOAD_OFF_SPEED = "payload_off_speed";
constexpr const char *const MQTT_PAYLOAD_ON = "payload_on";
constexpr const char *const MQTT_PAYLOAD_OPEN = "payload_open";
constexpr const char *const MQTT_PAYLOAD_OSCILLATION_OFF = "payload_oscillation_off";
constexpr const char *const MQTT_PAYLOAD_OSCILLATION_ON = "payload_oscillation_on";
constexpr const char *const MQTT_PAYLOAD_PAUSE = "payload_pause";
constexpr const char *const MQTT_PAYLOAD_RESET = "payload_reset";
constexpr const char *const MQTT_PAYLOAD_RESET_HUMIDITY = "payload_reset_humidity";
constexpr const char *const MQTT_PAYLOAD_RESET_MODE = "payload_reset_mode";
constexpr const char *const MQTT_PAYLOAD_RESET_PERCENTAGE = "payload_reset_percentage";
constexpr const char *const MQTT_PAYLOAD_RESET_PRESET_MODE = "payload_reset_preset_mode";
constexpr const char *const MQTT_PAYLOAD_RETURN_TO_BASE = "payload_return_to_base";
constexpr const char *const MQTT_PAYLOAD_START = "payload_start";
constexpr const char *const MQTT_PAYLOAD_START_PAUSE = "payload_start_pause";
constexpr const char *const MQTT_PAYLOAD_STOP = "payload_stop";
constexpr const char *const MQTT_PAYLOAD_TURN_OFF = "payload_turn_off";
constexpr const char *const MQTT_PAYLOAD_TURN_ON = "payload_turn_on";
constexpr const char *const MQTT_PAYLOAD_UNLOCK = "payload_unlock";
constexpr const char *const MQTT_PERCENTAGE_COMMAND_TEMPLATE = "percentage_command_template";
constexpr const char *const MQTT_PERCENTAGE_COMMAND_TOPIC = "percentage_command_topic";
constexpr const char *const MQTT_PERCENTAGE_STATE_TOPIC = "percentage_state_topic";
constexpr const char *const MQTT_PERCENTAGE_VALUE_TEMPLATE = "percentage_value_template";
constexpr const char *const MQTT_POSITION_CLOSED = "position_closed";
constexpr const char *const MQTT_POSITION_OPEN = "position_open";
constexpr const char *const MQTT_POSITION_TEMPLATE = "position_template";
constexpr const char *const MQTT_POSITION_TOPIC = "position_topic";
constexpr const char *const MQTT_POWER_COMMAND_TOPIC = "power_command_topic";
constexpr const char *const MQTT_POWER_STATE_TEMPLATE = "power_state_template";
constexpr const char *const MQTT_POWER_STATE_TOPIC = "power_state_topic";
constexpr const char *const MQTT_PRESET_MODE_COMMAND_TEMPLATE = "preset_mode_command_template";
constexpr const char *const MQTT_PRESET_MODE_COMMAND_TOPIC = "preset_mode_command_topic";
constexpr const char *const MQTT_PRESET_MODE_STATE_TOPIC = "preset_mode_state_topic";
constexpr const char *const MQTT_PRESET_MODE_VALUE_TEMPLATE = "preset_mode_value_template";
constexpr const char *const MQTT_PRESET_MODES = "preset_modes";
constexpr const char *const MQTT_QOS = "qos";
constexpr const char *const MQTT_RED_TEMPLATE = "red_template";
constexpr const char *const MQTT_RETAIN = "retain";
constexpr const char *const MQTT_RGB_COMMAND_TEMPLATE = "rgb_command_template";
constexpr const char *const MQTT_RGB_COMMAND_TOPIC = "rgb_command_topic";
constexpr const char *const MQTT_RGB_STATE_TOPIC = "rgb_state_topic";
constexpr const char *const MQTT_RGB_VALUE_TEMPLATE = "rgb_value_template";
constexpr const char *const MQTT_RGBW_COMMAND_TEMPLATE = "rgbw_command_template";
constexpr const char *const MQTT_RGBW_COMMAND_TOPIC = "rgbw_command_topic";
constexpr const char *const MQTT_RGBW_STATE_TOPIC = "rgbw_state_topic";
constexpr const char *const MQTT_RGBW_VALUE_TEMPLATE = "rgbw_value_template";
constexpr const char *const MQTT_RGBWW_COMMAND_TEMPLATE = "rgbww_command_template";
constexpr const char *const MQTT_RGBWW_COMMAND_TOPIC = "rgbww_command_topic";
constexpr const char *const MQTT_RGBWW_STATE_TOPIC = "rgbww_state_topic";
constexpr const char *const MQTT_RGBWW_VALUE_TEMPLATE = "rgbww_value_template";
constexpr const char *const MQTT_SEND_COMMAND_TOPIC = "send_command_topic";
constexpr const char *const MQTT_SEND_IF_OFF = "send_if_off";
constexpr const char *const MQTT_SET_FAN_SPEED_TOPIC = "set_fan_speed_topic";
constexpr const char *const MQTT_SET_POSITION_TEMPLATE = "set_position_template";
constexpr const char *const MQTT_SET_POSITION_TOPIC = "set_position_topic";
constexpr const char *const MQTT_SOURCE_TYPE = "source_type";
constexpr const char *const MQTT_SPEED_COMMAND_TOPIC = "speed_command_topic";
constexpr const char *const MQTT_SPEED_RANGE_MAX = "speed_range_max";
constexpr const char *const MQTT_SPEED_RANGE_MIN = "speed_range_min";
constexpr const char *const MQTT_SPEED_STATE_TOPIC = "speed_state_topic";
constexpr const char *const MQTT_SPEED_VALUE_TEMPLATE = "speed_value_template";
constexpr const char *const MQTT_SPEEDS = "speeds";
constexpr const char *const MQTT_STATE_CLASS = "state_class";
constexpr const char *const MQTT_STATE_CLOSED = "state_closed";
constexpr const char *const MQTT_STATE_CLOSING = "state_closing";
constexpr const char *const MQTT_STATE_LOCKED = "state_locked";
constexpr const char *const MQTT_STATE_OFF = "state_off";
constexpr const char *const MQTT_STATE_ON = "state_on";
constexpr const char *const MQTT_STATE_OPEN = "state_open";
constexpr const char *const MQTT_STATE_OPENING = "state_opening";
constexpr const char *const MQTT_STATE_STOPPED = "state_stopped";
constexpr const char *const MQTT_STATE_TEMPLATE = "state_template";
constexpr const char *const MQTT_STATE_TOPIC = "state_topic";
constexpr const char *const MQTT_STATE_UNLOCKED = "state_unlocked";
constexpr const char *const MQTT_STATE_VALUE_TEMPLATE = "state_value_template";
constexpr const char *const MQTT_STEP = "step";
constexpr const char *const MQTT_SUBTYPE = "subtype";
constexpr const char *const MQTT_SUPPORTED_COLOR_MODES = "supported_color_modes";
constexpr const char *const MQTT_SUPPORTED_FEATURES = "supported_features";
constexpr const char *const MQTT_SWING_MODE_COMMAND_TEMPLATE = "swing_mode_command_template";
constexpr const char *const MQTT_SWING_MODE_COMMAND_TOPIC = "swing_mode_command_topic";
constexpr const char *const MQTT_SWING_MODE_STATE_TEMPLATE = "swing_mode_state_template";
constexpr const char *const MQTT_SWING_MODE_STATE_TOPIC = "swing_mode_state_topic";
constexpr const char *const MQTT_TARGET_HUMIDITY_COMMAND_TEMPLATE = "target_humidity_command_template";
constexpr const char *const MQTT_TARGET_HUMIDITY_COMMAND_TOPIC = "target_humidity_command_topic";
constexpr const char *const MQTT_TARGET_HUMIDITY_STATE_TEMPLATE = "target_humidity_state_template";
constexpr const char *const MQTT_TARGET_HUMIDITY_STATE_TOPIC = "target_humidity_state_topic";
constexpr const char *const MQTT_TARGET_TEMPERATURE_STEP = "temp_step";
constexpr const char *const MQTT_TEMPERATURE_COMMAND_TEMPLATE = "temperature_command_template";
constexpr const char *const MQTT_TEMPERATURE_COMMAND_TOPIC = "temperature_command_topic";
constexpr const char *const MQTT_TEMPERATURE_HIGH_COMMAND_TEMPLATE = "temperature_high_command_template";
constexpr const char *const MQTT_TEMPERATURE_HIGH_COMMAND_TOPIC = "temperature_high_command_topic";
constexpr const char *const MQTT_TEMPERATURE_HIGH_STATE_TEMPLATE = "temperature_high_state_template";
constexpr const char *const MQTT_TEMPERATURE_HIGH_STATE_TOPIC = "temperature_high_state_topic";
constexpr const char *const MQTT_TEMPERATURE_LOW_COMMAND_TEMPLATE = "temperature_low_command_template";
constexpr const char *const MQTT_TEMPERATURE_LOW_COMMAND_TOPIC = "temperature_low_command_topic";
constexpr const char *const MQTT_TEMPERATURE_LOW_STATE_TEMPLATE = "temperature_low_state_template";
constexpr const char *const MQTT_TEMPERATURE_LOW_STATE_TOPIC = "temperature_low_state_topic";
constexpr const char *const MQTT_TEMPERATURE_STATE_TEMPLATE = "temperature_state_template";
constexpr const char *const MQTT_TEMPERATURE_STATE_TOPIC = "temperature_state_topic";
constexpr const char *const MQTT_TEMPERATURE_UNIT = "temperature_unit";
constexpr const char *const MQTT_TILT_CLOSED_VALUE = "tilt_closed_value";
constexpr const char *const MQTT_TILT_COMMAND_TEMPLATE = "tilt_command_template";
constexpr const char *const MQTT_TILT_COMMAND_TOPIC = "tilt_command_topic";
constexpr const char *const MQTT_TILT_INVERT_STATE = "tilt_invert_state";
constexpr const char *const MQTT_TILT_MAX = "tilt_max";
constexpr const char *const MQTT_TILT_MIN = "tilt_min";
constexpr const char *const MQTT_TILT_OPENED_VALUE = "tilt_opened_value";
constexpr const char *const MQTT_TILT_OPTIMISTIC = "tilt_optimistic";
constexpr const char *const MQTT_TILT_STATUS_TEMPLATE = "tilt_status_template";
constexpr const char *const MQTT_TILT_STATUS_TOPIC = "tilt_status_topic";
constexpr const char *const MQTT_TOPIC = "topic";
constexpr const char *const MQTT_UNIQUE_ID = "unique_id";
constexpr const char *const MQTT_UNIT_OF_MEASUREMENT = "unit_of_measurement";
constexpr const char *const MQTT_VALUE_TEMPLATE = "value_template";
constexpr const char *const MQTT_WHITE_COMMAND_TOPIC = "white_command_topic";
constexpr const char *const MQTT_WHITE_SCALE = "white_scale";
constexpr const char *const MQTT_WHITE_VALUE_COMMAND_TOPIC = "white_value_command_topic";
constexpr const char *const MQTT_WHITE_VALUE_SCALE = "white_value_scale";
constexpr const char *const MQTT_WHITE_VALUE_STATE_TOPIC = "white_value_state_topic";
constexpr const char *const MQTT_WHITE_VALUE_TEMPLATE = "white_value_template";
constexpr const char *const MQTT_XY_COMMAND_TOPIC = "xy_command_topic";
constexpr const char *const MQTT_XY_STATE_TOPIC = "xy_state_topic";
constexpr const char *const MQTT_XY_VALUE_TEMPLATE = "xy_value_template";
// Generate flash string pointers from the PROGMEM data
// NOLINTNEXTLINE(bugprone-macro-parentheses)
#define MQTT_PTR(name, abbr, full) \
static const __FlashStringHelper *const name = reinterpret_cast<const __FlashStringHelper *>(name##_data);
MQTT_KEYS_LIST(MQTT_PTR)
#undef MQTT_PTR
} // namespace esphome::mqtt
#else
// Other platforms: constexpr in namespace
namespace esphome::mqtt {
#ifdef USE_MQTT_ABBREVIATIONS
// NOLINTNEXTLINE(bugprone-macro-parentheses)
#define MQTT_CONST(name, abbr, full) constexpr const char *name = abbr;
#else
// NOLINTNEXTLINE(bugprone-macro-parentheses)
#define MQTT_CONST(name, abbr, full) constexpr const char *name = full;
#endif
MQTT_KEYS_LIST(MQTT_CONST)
#undef MQTT_CONST
} // namespace esphome::mqtt
#endif
} // namespace mqtt
} // namespace esphome
#endif // USE_MQTT

View File

@@ -6,8 +6,7 @@
#ifdef USE_MQTT
#ifdef USE_COVER
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.cover";
@@ -119,8 +118,7 @@ bool MQTTCoverComponent::publish_state() {
return success;
}
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#include "esphome/components/cover/cover.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
class MQTTCoverComponent : public mqtt::MQTTComponent {
public:
@@ -36,8 +35,7 @@ class MQTTCoverComponent : public mqtt::MQTTComponent {
cover::Cover *cover_;
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#ifdef USE_MQTT
#ifdef USE_DATETIME_DATE
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.datetime";
@@ -62,8 +61,7 @@ bool MQTTDateComponent::publish_state(uint16_t year, uint8_t month, uint8_t day)
});
}
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif // USE_DATETIME_DATE
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#include "esphome/components/datetime/date_entity.h"
#include "mqtt_component.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
class MQTTDateComponent : public mqtt::MQTTComponent {
public:
@@ -38,8 +37,7 @@ class MQTTDateComponent : public mqtt::MQTTComponent {
datetime::DateEntity *date_;
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif // USE_DATETIME_DATE
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#ifdef USE_MQTT
#ifdef USE_DATETIME_DATETIME
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.datetime.datetime";
@@ -78,8 +77,7 @@ bool MQTTDateTimeComponent::publish_state(uint16_t year, uint8_t month, uint8_t
});
}
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif // USE_DATETIME_DATETIME
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#include "esphome/components/datetime/datetime_entity.h"
#include "mqtt_component.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
class MQTTDateTimeComponent : public mqtt::MQTTComponent {
public:
@@ -38,8 +37,7 @@ class MQTTDateTimeComponent : public mqtt::MQTTComponent {
datetime::DateTimeEntity *datetime_;
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif // USE_DATETIME_DATETIME
#endif // USE_MQTT

View File

@@ -6,8 +6,7 @@
#ifdef USE_MQTT
#ifdef USE_EVENT
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.event";
@@ -54,8 +53,7 @@ bool MQTTEventComponent::publish_event_(const std::string &event_type) {
std::string MQTTEventComponent::component_type() const { return "event"; }
const EntityBase *MQTTEventComponent::get_entity() const { return this->event_; }
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#include "esphome/components/event/event.h"
#include "mqtt_component.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
class MQTTEventComponent : public mqtt::MQTTComponent {
public:
@@ -32,8 +31,7 @@ class MQTTEventComponent : public mqtt::MQTTComponent {
event::Event *event_;
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -6,8 +6,7 @@
#ifdef USE_MQTT
#ifdef USE_FAN
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.fan";
@@ -182,8 +181,7 @@ bool MQTTFanComponent::publish_state() {
return !failed;
}
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#include "esphome/components/fan/fan.h"
#include "mqtt_component.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
class MQTTFanComponent : public mqtt::MQTTComponent {
public:
@@ -47,8 +46,7 @@ class MQTTFanComponent : public mqtt::MQTTComponent {
fan::Fan *state_;
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#ifdef USE_LIGHT
#include "esphome/components/light/light_json_schema.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.light";
@@ -92,8 +91,7 @@ void MQTTJSONLightComponent::dump_config() {
LOG_MQTT_COMPONENT(true, true)
}
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#include "mqtt_component.h"
#include "esphome/components/light/light_state.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
class MQTTJSONLightComponent : public mqtt::MQTTComponent, public light::LightRemoteValuesListener {
public:
@@ -37,8 +36,7 @@ class MQTTJSONLightComponent : public mqtt::MQTTComponent, public light::LightRe
light::LightState *state_;
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -6,8 +6,7 @@
#ifdef USE_MQTT
#ifdef USE_LOCK
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.lock";
@@ -58,8 +57,7 @@ bool MQTTLockComponent::publish_state() {
#endif
}
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#include "esphome/components/lock/lock.h"
#include "mqtt_component.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
class MQTTLockComponent : public mqtt::MQTTComponent {
public:
@@ -34,8 +33,7 @@ class MQTTLockComponent : public mqtt::MQTTComponent {
lock::Lock *lock_;
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -6,8 +6,7 @@
#ifdef USE_MQTT
#ifdef USE_NUMBER
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.number";
@@ -80,8 +79,7 @@ bool MQTTNumberComponent::publish_state(float value) {
return this->publish(this->get_state_topic_(), buffer);
}
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#include "esphome/components/number/number.h"
#include "mqtt_component.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
class MQTTNumberComponent : public mqtt::MQTTComponent {
public:
@@ -39,8 +38,7 @@ class MQTTNumberComponent : public mqtt::MQTTComponent {
number::Number *number_;
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -6,8 +6,7 @@
#ifdef USE_MQTT
#ifdef USE_SELECT
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.select";
@@ -53,8 +52,7 @@ bool MQTTSelectComponent::publish_state(const std::string &value) {
return this->publish(this->get_state_topic_(), value);
}
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#include "esphome/components/select/select.h"
#include "mqtt_component.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
class MQTTSelectComponent : public mqtt::MQTTComponent {
public:
@@ -39,8 +38,7 @@ class MQTTSelectComponent : public mqtt::MQTTComponent {
select::Select *select_;
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -11,8 +11,7 @@
#include "esphome/components/deep_sleep/deep_sleep_component.h"
#endif
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.sensor";
@@ -86,8 +85,7 @@ bool MQTTSensorComponent::publish_state(float value) {
return this->publish(this->get_state_topic_(), value_accuracy_to_string(value, accuracy));
}
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#include "esphome/components/sensor/sensor.h"
#include "mqtt_component.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
class MQTTSensorComponent : public mqtt::MQTTComponent {
public:
@@ -51,8 +50,7 @@ class MQTTSensorComponent : public mqtt::MQTTComponent {
optional<uint32_t> expire_after_; // Override the expire after advertised to Home Assistant
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -6,8 +6,7 @@
#ifdef USE_MQTT
#ifdef USE_SWITCH
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.switch";
@@ -57,8 +56,7 @@ bool MQTTSwitchComponent::publish_state(bool state) {
return this->publish(this->get_state_topic_(), state_s);
}
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#include "esphome/components/switch/switch.h"
#include "mqtt_component.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
class MQTTSwitchComponent : public mqtt::MQTTComponent {
public:
@@ -34,8 +33,7 @@ class MQTTSwitchComponent : public mqtt::MQTTComponent {
switch_::Switch *switch_;
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -6,8 +6,7 @@
#ifdef USE_MQTT
#ifdef USE_TEXT
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.text";
@@ -57,8 +56,7 @@ bool MQTTTextComponent::publish_state(const std::string &value) {
return this->publish(this->get_state_topic_(), value);
}
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#include "esphome/components/text/text.h"
#include "mqtt_component.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
class MQTTTextComponent : public mqtt::MQTTComponent {
public:
@@ -39,8 +38,7 @@ class MQTTTextComponent : public mqtt::MQTTComponent {
text::Text *text_;
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -6,8 +6,7 @@
#ifdef USE_MQTT
#ifdef USE_TEXT_SENSOR
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.text_sensor";
@@ -43,8 +42,7 @@ bool MQTTTextSensor::send_initial_state() {
std::string MQTTTextSensor::component_type() const { return "sensor"; }
const EntityBase *MQTTTextSensor::get_entity() const { return this->sensor_; }
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#include "esphome/components/text_sensor/text_sensor.h"
#include "mqtt_component.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
class MQTTTextSensor : public mqtt::MQTTComponent {
public:
@@ -32,8 +31,7 @@ class MQTTTextSensor : public mqtt::MQTTComponent {
text_sensor::TextSensor *sensor_;
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#ifdef USE_MQTT
#ifdef USE_DATETIME_TIME
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.datetime.time";
@@ -62,8 +61,7 @@ bool MQTTTimeComponent::publish_state(uint8_t hour, uint8_t minute, uint8_t seco
});
}
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif // USE_DATETIME_TIME
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#include "esphome/components/datetime/time_entity.h"
#include "mqtt_component.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
class MQTTTimeComponent : public mqtt::MQTTComponent {
public:
@@ -38,8 +37,7 @@ class MQTTTimeComponent : public mqtt::MQTTComponent {
datetime::TimeEntity *time_;
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif // USE_DATETIME_DATE
#endif // USE_MQTT

View File

@@ -6,8 +6,7 @@
#ifdef USE_MQTT
#ifdef USE_UPDATE
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.update";
@@ -56,8 +55,7 @@ void MQTTUpdateComponent::dump_config() {
std::string MQTTUpdateComponent::component_type() const { return "update"; }
const EntityBase *MQTTUpdateComponent::get_entity() const { return this->update_; }
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif // USE_UPDATE
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#include "esphome/components/update/update_entity.h"
#include "mqtt_component.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
class MQTTUpdateComponent : public mqtt::MQTTComponent {
public:
@@ -34,8 +33,7 @@ class MQTTUpdateComponent : public mqtt::MQTTComponent {
update::UpdateEntity *update_;
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif // USE_UPDATE
#endif // USE_MQTT

View File

@@ -6,8 +6,7 @@
#ifdef USE_MQTT
#ifdef USE_VALVE
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
static const char *const TAG = "mqtt.valve";
@@ -89,8 +88,7 @@ bool MQTTValveComponent::publish_state() {
return success;
}
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT

View File

@@ -8,8 +8,7 @@
#include "esphome/components/valve/valve.h"
namespace esphome {
namespace mqtt {
namespace esphome::mqtt {
class MQTTValveComponent : public mqtt::MQTTComponent {
public:
@@ -34,8 +33,7 @@ class MQTTValveComponent : public mqtt::MQTTComponent {
valve::Valve *valve_;
};
} // namespace mqtt
} // namespace esphome
} // namespace esphome::mqtt
#endif
#endif // USE_MQTT