mirror of
https://github.com/esphome/esphome.git
synced 2024-11-23 23:48:11 +01:00
added new sensors
This commit is contained in:
parent
3a8a3cd6e0
commit
43638734e7
1 changed files with 69 additions and 0 deletions
69
esphome/components/dfrobot_sen0395/sensor.py
Normal file
69
esphome/components/dfrobot_sen0395/sensor.py
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
import esphome.codegen as cg
|
||||||
|
import esphome.config_validation as cv
|
||||||
|
from esphome.components import sensor
|
||||||
|
from esphome.components.sensor import (
|
||||||
|
validate_unit_of_measurement,
|
||||||
|
validate_device_class,
|
||||||
|
)
|
||||||
|
from esphome.const import (
|
||||||
|
CONF_DEVICE_CLASS,
|
||||||
|
CONF_TYPE,
|
||||||
|
CONF_UNIT_OF_MEASUREMENT,
|
||||||
|
DEVICE_CLASS_DISTANCE,
|
||||||
|
ENTITY_CATEGORY_DIAGNOSTIC,
|
||||||
|
STATE_CLASS_MEASUREMENT,
|
||||||
|
)
|
||||||
|
from . import CONF_DFROBOT_SEN0395_ID, DfrobotSen0395Component
|
||||||
|
|
||||||
|
DEPENDENCIES = ["dfrobot_sen0395"]
|
||||||
|
|
||||||
|
CONF_TARGET_NUMBER = "target"
|
||||||
|
|
||||||
|
_SENSOR_SCHEMA = (
|
||||||
|
sensor.sensor_schema(
|
||||||
|
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||||
|
state_class=STATE_CLASS_MEASUREMENT,
|
||||||
|
accuracy_decimals=2,
|
||||||
|
)
|
||||||
|
.extend(
|
||||||
|
{
|
||||||
|
cv.GenerateID(CONF_DFROBOT_SEN0395_ID): cv.use_id(DfrobotSen0395Component),
|
||||||
|
cv.Required(CONF_TARGET_NUMBER): cv.int_range(min=1, max=9),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.extend(cv.COMPONENT_SCHEMA)
|
||||||
|
)
|
||||||
|
|
||||||
|
CONFIG_SCHEMA = cv.typed_schema(
|
||||||
|
{
|
||||||
|
"distance": _SENSOR_SCHEMA.extend(
|
||||||
|
{
|
||||||
|
cv.Optional(
|
||||||
|
CONF_UNIT_OF_MEASUREMENT, default="m"
|
||||||
|
): validate_unit_of_measurement,
|
||||||
|
cv.Optional(
|
||||||
|
CONF_DEVICE_CLASS, default=DEVICE_CLASS_DISTANCE
|
||||||
|
): validate_device_class,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
"SNR": _SENSOR_SCHEMA.extend({}),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
async def to_code(config):
|
||||||
|
parent = await cg.get_variable(config[CONF_DFROBOT_SEN0395_ID])
|
||||||
|
binary_sens = await sensor.new_sensor(config)
|
||||||
|
|
||||||
|
if config[CONF_TYPE] == "distance":
|
||||||
|
cg.add(
|
||||||
|
parent.set_detected_target_distance_sensor(
|
||||||
|
config[CONF_TARGET_NUMBER], binary_sens
|
||||||
|
)
|
||||||
|
)
|
||||||
|
elif config[CONF_TYPE] == "SNR":
|
||||||
|
cg.add(
|
||||||
|
parent.set_detected_target_snr_sensor(
|
||||||
|
config[CONF_TARGET_NUMBER], binary_sens
|
||||||
|
)
|
||||||
|
)
|
Loading…
Reference in a new issue