add oil tank sensor

This commit is contained in:
Nicu Hodos 2024-05-09 11:52:40 +02:00
parent 2ef559969c
commit d822e3438c
2 changed files with 11 additions and 31 deletions

View File

@ -69,15 +69,20 @@ namespace Ha {
}
virtual void buildUniqueId(char* uniqueId) = 0;
virtual void buildConfig(JsonDocument& jsonDoc) {
if (String{"diagnostic"}.equals(entityCategory)) {
virtual void buildConfigTopic() {
if (String{"diagnostic"}.equals(entityCategory) && deviceClass) {
sprintf(configTopic, "homeassistant/%s/%s/%s_%s/config", type, MAIN_DEVICE_ID, deviceClass, id);
} else {
sprintf(configTopic, "homeassistant/%s/%s/%s/config", type, MAIN_DEVICE_ID, id);
}
}
virtual void buildConfig(JsonDocument& jsonDoc) {
buildConfigTopic();
if (mainDevice) mainDevice->buildConfig(jsonDoc);
if (entityCategory) jsonDoc["entity_category"] = entityCategory;
if (deviceClass) jsonDoc["device_class"] = deviceClass;
jsonDoc["name"] = name;
char uniqueId[50];
buildUniqueId(uniqueId);
@ -184,9 +189,7 @@ namespace Ha {
void buildConfig(JsonDocument& jsonDoc) override {
EntityConfig::buildConfig(jsonDoc);
if (entityCategory) jsonDoc["entity_category"] = entityCategory;
jsonDoc["device_class"] = deviceClass;
jsonDoc["unit_of_measurement"] = unitMeasure;
if (unitMeasure) jsonDoc["unit_of_measurement"] = unitMeasure;
if (valueTemplate) jsonDoc["value_template"] = valueTemplate;
jsonDoc["state_topic"] = stateTopic;
jsonDoc["suggested_display_precision"] = 2;
@ -241,12 +244,4 @@ namespace Ha {
valueTemplate = "{{ value_json.sensor.pressure }}";
}
};
// struct AltitudeSensor : Sensor {
// AltitudeSensor(const char* name, const char* id) : Sensor(name, id) {
// deviceClass = "distance";
// unitMeasure = "m";
// valueTemplate = "{{ value_json.sensor.altitude }}";
// }
// };
}

View File

@ -13,7 +13,6 @@ namespace Mqtt {
AsyncMqttClient client;
void publishInit();
void publishBme280();
void disconnect();
Task tReConnect(5 * TASK_MINUTE, TASK_FOREVER, []() {
Serial.println("Connecting to MQTT...");
@ -50,11 +49,8 @@ namespace Mqtt {
};
Ha::Sensor* sensors[] = {
SensorBuilder::withVoltage((new Ha::TemperatureSensor{"4"})->copyFromDevice(atTinyDevice)->withDeviceName("Oil tank room")->withArea("Basement"))
// new Ha::TemperatureSensor{"Temperature", "temperature"},
// new Ha::HumiditySensor{"Humidity", "humidity"},
// new Ha::PressureSensor{"Pressure", "pressure"},
// new Ha::AltitudeSensor{"Altitude", "altitude"}
SensorBuilder::withVoltage((new Ha::TemperatureSensor{"4"})->copyFromDevice(atTinyDevice)->withDeviceName("Oil tank room")->withArea("Basement")),
OilSensorBuilder::build("7")
};
void publishComponentConfig(Ha::Component& component) {
@ -81,17 +77,6 @@ namespace Mqtt {
}
}
void publishBme280() {
// StaticJsonDocument<255> jsonDoc;
// jsonDoc["temperature"] = Bme::data.temp;
// jsonDoc["humidity"] = Bme::data.humidity;
// jsonDoc["pressure"] = Bme::data.pressure;
// jsonDoc["altitude"] = Bme::data.altitude;
// char message[255];
// serializeJson(jsonDoc, message);
// publish(Ha::Sensor::stateTopic, message);
}
void onMessage(char* topic, char* payload, AsyncMqttClientMessageProperties properties, size_t len, size_t index, size_t total) {
char msg[len + 1];
memcpy(msg, payload, len);