mirror of
https://github.com/esphome/esphome.git
synced 2025-01-05 20:31:44 +01:00
d3375193a9
Co-authored-by: Andreas Hergert <andreas.hergert@otrs.com> Co-authored-by: Otto Winter <otto@otto-winter.com> Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
import esphome.codegen as cg
|
|
import esphome.config_validation as cv
|
|
from esphome.components import text_sensor
|
|
from esphome.const import CONF_ID
|
|
from .. import CONF_PIPSOLAR_ID, PIPSOLAR_COMPONENT_SCHEMA, pipsolar_ns
|
|
|
|
DEPENDENCIES = ["uart"]
|
|
|
|
CONF_DEVICE_MODE = "device_mode"
|
|
CONF_LAST_QPIGS = "last_qpigs"
|
|
CONF_LAST_QPIRI = "last_qpiri"
|
|
CONF_LAST_QMOD = "last_qmod"
|
|
CONF_LAST_QFLAG = "last_qflag"
|
|
CONF_LAST_QPIWS = "last_qpiws"
|
|
CONF_LAST_QT = "last_qt"
|
|
CONF_LAST_QMN = "last_qmn"
|
|
|
|
PipsolarTextSensor = pipsolar_ns.class_(
|
|
"PipsolarTextSensor", text_sensor.TextSensor, cg.Component
|
|
)
|
|
|
|
TYPES = [
|
|
CONF_DEVICE_MODE,
|
|
CONF_LAST_QPIGS,
|
|
CONF_LAST_QPIRI,
|
|
CONF_LAST_QMOD,
|
|
CONF_LAST_QFLAG,
|
|
CONF_LAST_QPIWS,
|
|
CONF_LAST_QT,
|
|
CONF_LAST_QMN,
|
|
]
|
|
|
|
CONFIG_SCHEMA = PIPSOLAR_COMPONENT_SCHEMA.extend(
|
|
{
|
|
cv.Optional(type): text_sensor.TEXT_SENSOR_SCHEMA.extend(
|
|
{cv.GenerateID(): cv.declare_id(PipsolarTextSensor)}
|
|
)
|
|
for type in TYPES
|
|
}
|
|
)
|
|
|
|
|
|
async def to_code(config):
|
|
paren = await cg.get_variable(config[CONF_PIPSOLAR_ID])
|
|
|
|
for type in TYPES:
|
|
if type in config:
|
|
conf = config[type]
|
|
var = cg.new_Pvariable(conf[CONF_ID])
|
|
await text_sensor.register_text_sensor(var, conf)
|
|
await cg.register_component(var, conf)
|
|
cg.add(getattr(paren, f"set_{type}")(var))
|