mirror of
https://github.com/Threnklyn/esphome-dev.git
synced 2026-06-01 10:38:27 +02:00
Allow setting creator project name and version into code (#1872)
This commit is contained in:
@@ -103,6 +103,9 @@ void Application::loop() {
|
||||
if (this->dump_config_at_ >= 0 && this->dump_config_at_ < this->components_.size()) {
|
||||
if (this->dump_config_at_ == 0) {
|
||||
ESP_LOGI(TAG, "ESPHome version " ESPHOME_VERSION " compiled on %s", this->compilation_time_.c_str());
|
||||
#ifdef ESPHOME_PROJECT_NAME
|
||||
ESP_LOGI(TAG, "Project " ESPHOME_PROJECT_NAME " version " ESPHOME_PROJECT_VERSION);
|
||||
#endif
|
||||
}
|
||||
|
||||
this->components_[this->dump_config_at_]->dump_config();
|
||||
|
||||
@@ -21,10 +21,12 @@ from esphome.const import (
|
||||
CONF_PLATFORM,
|
||||
CONF_PLATFORMIO_OPTIONS,
|
||||
CONF_PRIORITY,
|
||||
CONF_PROJECT,
|
||||
CONF_TRIGGER_ID,
|
||||
CONF_ESP8266_RESTORE_FROM_FLASH,
|
||||
ARDUINO_VERSION_ESP8266,
|
||||
ARDUINO_VERSION_ESP32,
|
||||
CONF_VERSION,
|
||||
ESP_PLATFORMS,
|
||||
)
|
||||
from esphome.core import CORE, coroutine_with_priority
|
||||
@@ -144,6 +146,15 @@ def valid_include(value):
|
||||
return value
|
||||
|
||||
|
||||
def valid_project_name(value: str):
|
||||
if value.count(".") != 1:
|
||||
raise cv.Invalid("project name needs to have a namespace")
|
||||
|
||||
value = value.replace(" ", "_")
|
||||
|
||||
return value
|
||||
|
||||
|
||||
CONFIG_SCHEMA = cv.Schema(
|
||||
{
|
||||
cv.Required(CONF_NAME): cv.valid_name,
|
||||
@@ -184,6 +195,12 @@ CONFIG_SCHEMA = cv.Schema(
|
||||
cv.Optional(CONF_INCLUDES, default=[]): cv.ensure_list(valid_include),
|
||||
cv.Optional(CONF_LIBRARIES, default=[]): cv.ensure_list(cv.string_strict),
|
||||
cv.Optional(CONF_NAME_ADD_MAC_SUFFIX, default=False): cv.boolean,
|
||||
cv.Optional(CONF_PROJECT): cv.Schema(
|
||||
{
|
||||
cv.Required(CONF_NAME): cv.All(cv.string_strict, valid_project_name),
|
||||
cv.Required(CONF_VERSION): cv.string_strict,
|
||||
}
|
||||
),
|
||||
cv.Optional("esphome_core_version"): cv.invalid(
|
||||
"The esphome_core_version option has been "
|
||||
"removed in 1.13 - the esphome core source "
|
||||
@@ -331,3 +348,7 @@ async def to_code(config):
|
||||
|
||||
if config[CONF_INCLUDES]:
|
||||
CORE.add_job(add_includes, config[CONF_INCLUDES])
|
||||
|
||||
if CONF_PROJECT in config:
|
||||
cg.add_define("ESPHOME_PROJECT_NAME", config[CONF_PROJECT][CONF_NAME])
|
||||
cg.add_define("ESPHOME_PROJECT_VERSION", config[CONF_PROJECT][CONF_VERSION])
|
||||
|
||||
@@ -94,6 +94,11 @@ void network_setup_mdns(IPAddress address, int interface) {
|
||||
MDNS.addServiceTxt("esphomelib", "tcp", "version", ESPHOME_VERSION);
|
||||
MDNS.addServiceTxt("esphomelib", "tcp", "address", network_get_address().c_str());
|
||||
MDNS.addServiceTxt("esphomelib", "tcp", "mac", get_mac_address().c_str());
|
||||
|
||||
#ifdef ESPHOME_PROJECT_NAME
|
||||
MDNS.addServiceTxt("esphomelib", "tcp", "project_name", ESPHOME_PROJECT_NAME);
|
||||
MDNS.addServiceTxt("esphomelib", "tcp", "project_version", ESPHOME_PROJECT_VERSION);
|
||||
#endif
|
||||
} else {
|
||||
#endif
|
||||
// Publish "http" service if not using native API nor the webserver component
|
||||
|
||||
Reference in New Issue
Block a user