There is option to assign project name and version in ESPHome device config. Values are displayed in log when device is powered up. It is useful to have those information as sensors so it is easy to check them, if needed. Here is how.
How to set project name and version:
esphome: name: "my_device" project: name: "Me.MyProject" version: "0.1.0"
And now create Text Sensors:
text_sensor: - platform: template name: "Project" lambda: |- return to_string(ESPHOME_PROJECT_NAME); - platform: template name: "Version" lambda: |- return to_string(ESPHOME_PROJECT_VERSION);
I like to use substitutions as it let’s me put all configuration at the beginning of the yaml and reuse values where needed. Thus Text Sensors could be set like this:
substitutions:
device_name: "my_device"
descriptive_device_name: "My Device"
project_name: "Me.MyProject"
project_version: "0.1.0"
esphome:
name: $device_name
project:
name: $project_name
version: $project_version
text_sensor:
- platform: template
name: "Project"
lambda: |-
return to_string("$project_name");
- platform: template
name: "Version"
lambda: |-
return to_string("$project_version");