Merge branch 'project-version-component'

This commit is contained in:
TJ Horner
2023-05-23 07:32:28 -07:00
5 changed files with 77 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
#include "project_version_text_sensor.h"
#include "esphome/core/log.h"
#include "esphome/core/application.h"
#include "esphome/core/version.h"
namespace esphome {
namespace project_version {
static const char *const TAG = "project_version.text_sensor";
void ProjectVersionTextSensor::setup() {
this->publish_state(ESPHOME_PROJECT_VERSION);
}
float ProjectVersionTextSensor::get_setup_priority() const { return setup_priority::DATA; }
std::string ProjectVersionTextSensor::unique_id() { return get_mac_address() + "-project-version"; }
void ProjectVersionTextSensor::dump_config() { LOG_TEXT_SENSOR("", "Project Version Text Sensor", this); }
} // namespace version
} // namespace esphome

View File

@@ -0,0 +1,18 @@
#pragma once
#include "esphome/core/component.h"
#include "esphome/components/text_sensor/text_sensor.h"
namespace esphome {
namespace project_version {
class ProjectVersionTextSensor : public text_sensor::TextSensor, public Component {
public:
void setup() override;
void dump_config() override;
float get_setup_priority() const override;
std::string unique_id() override;
};
} // namespace version
} // namespace esphome

View File

@@ -0,0 +1,31 @@
import esphome.codegen as cg
import esphome.config_validation as cv
from esphome.components import text_sensor
from esphome.const import (
ENTITY_CATEGORY_DIAGNOSTIC,
ICON_NEW_BOX,
)
project_version = cg.esphome_ns.namespace("project_version")
ProjectVersionTextSensor = project_version.class_(
"ProjectVersionTextSensor", text_sensor.TextSensor, cg.Component
)
CONFIG_SCHEMA = (
text_sensor.text_sensor_schema(
icon=ICON_NEW_BOX,
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
)
.extend(
{
cv.GenerateID(): cv.declare_id(ProjectVersionTextSensor),
}
)
.extend(cv.COMPONENT_SCHEMA)
)
async def to_code(config):
var = await text_sensor.new_text_sensor(config)
await cg.register_component(var, config)

View File

@@ -1,6 +1,15 @@
packages:
base: !include base.yaml
external_components:
- source: ./components
components: [ project_version ]
text_sensor:
- platform: project_version
name: "Upsy Desky Firmware Version"
internal: true
logger:
level: INFO