parent
583a375876
commit
6aede26cd4
@ -0,0 +1,31 @@
|
|||||||
|
#include "esphome/core/log.h"
|
||||||
|
#include "empty_compound_sensor.h"
|
||||||
|
|
||||||
|
namespace esphome {
|
||||||
|
namespace empty_compound_sensor {
|
||||||
|
|
||||||
|
static const char *TAG = "empty_compound_sensor.sensor";
|
||||||
|
|
||||||
|
void EmptyCompoundSensor::setup() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void EmptyCompoundSensor::loop() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void EmptyCompoundSensor::update() {
|
||||||
|
if (this->sensor1_ != nullptr)
|
||||||
|
this->sensor1_->publish_state(1.0f);
|
||||||
|
if (this->sensor2_ != nullptr)
|
||||||
|
this->sensor2_->publish_state(2.0f);
|
||||||
|
if (this->sensor3_ != nullptr)
|
||||||
|
this->sensor3_->publish_state(3.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
void EmptyCompoundSensor::dump_config() {
|
||||||
|
ESP_LOGCONFIG(TAG, "Empty compound sensor");
|
||||||
|
}
|
||||||
|
|
||||||
|
} //namespace empty_compound_sensor
|
||||||
|
} //namespace esphome
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "esphome/core/component.h"
|
||||||
|
#include "esphome/components/sensor/sensor.h"
|
||||||
|
|
||||||
|
namespace esphome {
|
||||||
|
namespace empty_compound_sensor {
|
||||||
|
|
||||||
|
class EmptyCompoundSensor : public sensor::Sensor, public PollingComponent {
|
||||||
|
public:
|
||||||
|
void set_sensor1(sensor::Sensor *sensor1) { sensor1_ = sensor1; }
|
||||||
|
void set_sensor2(sensor::Sensor *sensor2) { sensor2_ = sensor2; }
|
||||||
|
void set_sensor3(sensor::Sensor *sensor3) { sensor3_ = sensor3; }
|
||||||
|
|
||||||
|
void setup() override;
|
||||||
|
void loop() override;
|
||||||
|
void update() override;
|
||||||
|
void dump_config() override;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
sensor::Sensor *sensor1_;
|
||||||
|
sensor::Sensor *sensor2_;
|
||||||
|
sensor::Sensor *sensor3_;
|
||||||
|
};
|
||||||
|
|
||||||
|
} //namespace empty_compound_sensor
|
||||||
|
} //namespace esphome
|
||||||
@ -0,0 +1,51 @@
|
|||||||
|
import esphome.codegen as cg
|
||||||
|
import esphome.config_validation as cv
|
||||||
|
from esphome.components import sensor
|
||||||
|
from esphome.const import CONF_ID, UNIT_EMPTY, ICON_EMPTY
|
||||||
|
|
||||||
|
empty_compound_sensor_ns = cg.esphome_ns.namespace('empty_compound_sensor')
|
||||||
|
EmptyCompoundSensor = empty_compound_sensor_ns.class_('EmptyCompoundSensor', cg.PollingComponent)
|
||||||
|
|
||||||
|
CONF_SENSOR1 = "sensor1"
|
||||||
|
CONF_SENSOR2 = "sensor2"
|
||||||
|
CONF_SENSOR3 = "sensor3"
|
||||||
|
|
||||||
|
CONFIG_SCHEMA = cv.Schema({
|
||||||
|
cv.GenerateID(): cv.declare_id(EmptyCompoundSensor),
|
||||||
|
cv.Optional(CONF_SENSOR1):
|
||||||
|
sensor.sensor_schema(UNIT_EMPTY, ICON_EMPTY, 1).extend({
|
||||||
|
#cv.Optional(CONF_OVERSAMPLING, default='16X'):
|
||||||
|
# cv.enum(OVERSAMPLING_OPTIONS, upper=True),
|
||||||
|
}),
|
||||||
|
cv.Optional(CONF_SENSOR2):
|
||||||
|
sensor.sensor_schema(UNIT_EMPTY, ICON_EMPTY, 1).extend({
|
||||||
|
#cv.Optional(CONF_OVERSAMPLING, default='16X'):
|
||||||
|
# cv.enum(OVERSAMPLING_OPTIONS, upper=True),
|
||||||
|
}),
|
||||||
|
cv.Optional(CONF_SENSOR3):
|
||||||
|
sensor.sensor_schema(UNIT_EMPTY, ICON_EMPTY, 1).extend({
|
||||||
|
#cv.Optional(CONF_OVERSAMPLING, default='16X'):
|
||||||
|
# cv.enum(OVERSAMPLING_OPTIONS, upper=True),
|
||||||
|
})
|
||||||
|
}).extend(cv.polling_component_schema('60s'))
|
||||||
|
|
||||||
|
|
||||||
|
def to_code(config):
|
||||||
|
var = cg.new_Pvariable(config[CONF_ID])
|
||||||
|
yield cg.register_component(var, config)
|
||||||
|
|
||||||
|
if CONF_SENSOR1 in config:
|
||||||
|
conf = config[CONF_SENSOR1]
|
||||||
|
sens = yield sensor.new_sensor(conf)
|
||||||
|
cg.add(var.set_sensor1(sens))
|
||||||
|
|
||||||
|
if CONF_SENSOR2 in config:
|
||||||
|
conf = config[CONF_SENSOR2]
|
||||||
|
sens = yield sensor.new_sensor(conf)
|
||||||
|
cg.add(var.set_sensor2(sens))
|
||||||
|
|
||||||
|
if CONF_SENSOR3 in config:
|
||||||
|
conf = config[CONF_SENSOR3]
|
||||||
|
sens = yield sensor.new_sensor(conf)
|
||||||
|
cg.add(var.set_sensor3(sens))
|
||||||
|
|
||||||
Loading…
Reference in new issue