diff --git a/esphome/core/entity_base.cpp b/esphome/core/entity_base.cpp index f5d563dead..cde3c6bf39 100644 --- a/esphome/core/entity_base.cpp +++ b/esphome/core/entity_base.cpp @@ -19,7 +19,9 @@ void EntityBase::set_name(const char *name, uint32_t object_id_hash) { } else #endif { - this->name_ = StringRef(App.get_friendly_name()); + // Use friendly_name if available, otherwise fall back to device name + const std::string &friendly = App.get_friendly_name(); + this->name_ = StringRef(!friendly.empty() ? friendly : App.get_name()); } this->flags_.has_own_name = false; // Dynamic name - must calculate hash at runtime