add text component

This commit is contained in:
Nicu Hodos 2025-02-06 12:58:35 +01:00
parent 70535f3467
commit 935041204e

View File

@ -258,6 +258,27 @@ namespace Ha {
}
};
struct Text : Component, StatefulCommand {
unsigned int min = 1;
unsigned int max = 100;
const char* pattern = nullptr;
Text(const char* name, const char* id, onMessage f) : Component(id, name, "text"), StatefulCommand(this, f) {}
void updateState(unsigned int value) {
State::updateState(to_string(value).c_str());
}
void buildConfig(JsonDocument& jsonDoc) override {
Component::buildConfig(jsonDoc);
StatefulCommand::buildConfig(jsonDoc);
jsonDoc["min"] = min;
jsonDoc["max"] = max;
jsonDoc["platform"] = "text";
if (pattern) jsonDoc["pattern"] = pattern;
}
};
struct Sensor : Component, State {
const char* unitMeasure = nullptr;
const char* valueTemplate = nullptr;
@ -391,6 +412,11 @@ namespace Ha {
return *this;
}
Builder& withPattern(const char* value) {
cmp->pattern = value;
return *this;
}
Builder& withJsonAttributes(const char* value) {
cmp->jsonAttributesTemplate = value;
return *this;