20 if (ESPHOME_strcasecmp_P(payload.c_str(), ESPHOME_PSTR(
"LOCK")) == 0) {
22 }
else if (ESPHOME_strcasecmp_P(payload.c_str(), ESPHOME_PSTR(
"UNLOCK")) == 0) {
24 }
else if (ESPHOME_strcasecmp_P(payload.c_str(), ESPHOME_PSTR(
"OPEN")) == 0) {
27 ESP_LOGW(TAG,
"'%s': Received unknown status payload: %s", LOG_STR_ARG(this->
log_name_()), payload.c_str());
41 root[MQTT_OPTIMISTIC] =
true;
44 root[MQTT_PAYLOAD_OPEN] =
"OPEN";
49 char topic_buf[MQTT_DEFAULT_TOPIC_MAX_LEN];
void status_momentary_warning(uint32_t length=5000)
Set warning status flag and clear it after length ms.
void defer(const char *name, std::function< void()> &&f)
Defer a callback to the next loop() call with a const char* name.
Base class for all locks.
void lock()
Turn this lock on.
LockState state
The current reported state of the lock.
void unlock()
Turn this lock off.
void open()
Open (unlatch) this lock.
void add_on_state_callback(F &&callback)
Set callback for state changes.
bool get_assumed_state() const
bool get_supports_open() const
static constexpr uint32_t SEND_DEFER_ID
const LogString * log_name_() const
Entity name for a "%s" log argument.
void subscribe(T &&topic, F &&callback, uint8_t qos=0)
Subscribe to a MQTT topic.
MQTTTopicSource command_topic_source_() const
The command topic as a subscription source. A lambda topic is read once and copied,...
bool publish(const std::string &topic, const std::string &payload)
Send a MQTT message.
StringRef get_state_topic_to_(std::span< char, MQTT_DEFAULT_TOPIC_MAX_LEN > buf) const
Get the MQTT state topic into a buffer (no heap allocation for non-lambda custom topics).
MQTTLockComponent(lock::Lock *a_lock)
void send_discovery(JsonObject root, mqtt::SendDiscoveryConfig &config) override
void dump_config() override
bool send_initial_state() override
ESPHOME_LOG_TAG(TAG, "alarm_control_panel")
const LogString * lock_state_to_string(LockState state)
LockState
Enum for all states a lock can be in.
MQTT_COMPONENT_TYPE(MQTTAlarmControlPanelComponent, "alarm_control_panel") const EntityBase *MQTTAlarmControlPanelComponent
const __FlashStringHelper * ProgmemStr
Simple Helper struct used for Home Assistant MQTT send_discovery().