mirror of
https://github.com/esphome/esphome.git
synced 2024-11-25 08:28:12 +01:00
Add resistance_sampler interface for config validation (#5718)
This commit is contained in:
parent
9d453f0ba2
commit
3b486084c8
6 changed files with 33 additions and 6 deletions
|
@ -246,6 +246,7 @@ esphome/components/radon_eye_rd200/* @jeffeb3
|
||||||
esphome/components/rc522/* @glmnet
|
esphome/components/rc522/* @glmnet
|
||||||
esphome/components/rc522_i2c/* @glmnet
|
esphome/components/rc522_i2c/* @glmnet
|
||||||
esphome/components/rc522_spi/* @glmnet
|
esphome/components/rc522_spi/* @glmnet
|
||||||
|
esphome/components/resistance_sampler/* @jesserockz
|
||||||
esphome/components/restart/* @esphome/core
|
esphome/components/restart/* @esphome/core
|
||||||
esphome/components/rf_bridge/* @jesserockz
|
esphome/components/rf_bridge/* @jesserockz
|
||||||
esphome/components/rgbct/* @jesserockz
|
esphome/components/rgbct/* @jesserockz
|
||||||
|
|
|
@ -2,7 +2,7 @@ from math import log
|
||||||
|
|
||||||
import esphome.config_validation as cv
|
import esphome.config_validation as cv
|
||||||
import esphome.codegen as cg
|
import esphome.codegen as cg
|
||||||
from esphome.components import sensor
|
from esphome.components import sensor, resistance_sampler
|
||||||
from esphome.const import (
|
from esphome.const import (
|
||||||
CONF_CALIBRATION,
|
CONF_CALIBRATION,
|
||||||
CONF_REFERENCE_RESISTANCE,
|
CONF_REFERENCE_RESISTANCE,
|
||||||
|
@ -15,6 +15,8 @@ from esphome.const import (
|
||||||
UNIT_CELSIUS,
|
UNIT_CELSIUS,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
AUTO_LOAD = ["resistance_sampler"]
|
||||||
|
|
||||||
ntc_ns = cg.esphome_ns.namespace("ntc")
|
ntc_ns = cg.esphome_ns.namespace("ntc")
|
||||||
NTC = ntc_ns.class_("NTC", cg.Component, sensor.Sensor)
|
NTC = ntc_ns.class_("NTC", cg.Component, sensor.Sensor)
|
||||||
|
|
||||||
|
@ -124,7 +126,7 @@ CONFIG_SCHEMA = (
|
||||||
)
|
)
|
||||||
.extend(
|
.extend(
|
||||||
{
|
{
|
||||||
cv.Required(CONF_SENSOR): cv.use_id(sensor.Sensor),
|
cv.Required(CONF_SENSOR): cv.use_id(resistance_sampler.ResistanceSampler),
|
||||||
cv.Required(CONF_CALIBRATION): process_calibration,
|
cv.Required(CONF_CALIBRATION): process_calibration,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "esphome/core/component.h"
|
#include "esphome/components/resistance_sampler/resistance_sampler.h"
|
||||||
#include "esphome/components/sensor/sensor.h"
|
#include "esphome/components/sensor/sensor.h"
|
||||||
|
#include "esphome/core/component.h"
|
||||||
|
|
||||||
namespace esphome {
|
namespace esphome {
|
||||||
namespace resistance {
|
namespace resistance {
|
||||||
|
@ -11,7 +12,7 @@ enum ResistanceConfiguration {
|
||||||
DOWNSTREAM,
|
DOWNSTREAM,
|
||||||
};
|
};
|
||||||
|
|
||||||
class ResistanceSensor : public Component, public sensor::Sensor {
|
class ResistanceSensor : public Component, public sensor::Sensor, resistance_sampler::ResistanceSampler {
|
||||||
public:
|
public:
|
||||||
void set_sensor(Sensor *sensor) { sensor_ = sensor; }
|
void set_sensor(Sensor *sensor) { sensor_ = sensor; }
|
||||||
void set_configuration(ResistanceConfiguration configuration) { configuration_ = configuration; }
|
void set_configuration(ResistanceConfiguration configuration) { configuration_ = configuration; }
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import esphome.codegen as cg
|
import esphome.codegen as cg
|
||||||
import esphome.config_validation as cv
|
import esphome.config_validation as cv
|
||||||
from esphome.components import sensor
|
from esphome.components import sensor, resistance_sampler
|
||||||
from esphome.const import (
|
from esphome.const import (
|
||||||
CONF_SENSOR,
|
CONF_SENSOR,
|
||||||
STATE_CLASS_MEASUREMENT,
|
STATE_CLASS_MEASUREMENT,
|
||||||
|
@ -8,8 +8,15 @@ from esphome.const import (
|
||||||
ICON_FLASH,
|
ICON_FLASH,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
AUTO_LOAD = ["resistance_sampler"]
|
||||||
|
|
||||||
resistance_ns = cg.esphome_ns.namespace("resistance")
|
resistance_ns = cg.esphome_ns.namespace("resistance")
|
||||||
ResistanceSensor = resistance_ns.class_("ResistanceSensor", cg.Component, sensor.Sensor)
|
ResistanceSensor = resistance_ns.class_(
|
||||||
|
"ResistanceSensor",
|
||||||
|
cg.Component,
|
||||||
|
sensor.Sensor,
|
||||||
|
resistance_sampler.ResistanceSampler,
|
||||||
|
)
|
||||||
|
|
||||||
CONF_REFERENCE_VOLTAGE = "reference_voltage"
|
CONF_REFERENCE_VOLTAGE = "reference_voltage"
|
||||||
CONF_CONFIGURATION = "configuration"
|
CONF_CONFIGURATION = "configuration"
|
||||||
|
|
6
esphome/components/resistance_sampler/__init__.py
Normal file
6
esphome/components/resistance_sampler/__init__.py
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
import esphome.codegen as cg
|
||||||
|
|
||||||
|
resistance_sampler_ns = cg.esphome_ns.namespace("resistance_sampler")
|
||||||
|
ResistanceSampler = resistance_sampler_ns.class_("ResistanceSampler")
|
||||||
|
|
||||||
|
CODEOWNERS = ["@jesserockz"]
|
10
esphome/components/resistance_sampler/resistance_sampler.h
Normal file
10
esphome/components/resistance_sampler/resistance_sampler.h
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
namespace esphome {
|
||||||
|
namespace resistance_sampler {
|
||||||
|
|
||||||
|
/// Abstract interface to mark components that provide resistance values.
|
||||||
|
class ResistanceSampler {};
|
||||||
|
|
||||||
|
} // namespace resistance_sampler
|
||||||
|
} // namespace esphome
|
Loading…
Reference in a new issue