Exemplo n.º 1
0
from esphome.components import text_sensor
from esphome.const import CONF_STATUS
from . import DalyBmsComponent, CONF_BMS_DALY_ID

ICON_CAR_BATTERY = "mdi:car-battery"

TYPES = [
    CONF_STATUS,
]

CONFIG_SCHEMA = cv.All(
    cv.Schema({
        cv.GenerateID(CONF_BMS_DALY_ID):
        cv.use_id(DalyBmsComponent),
        cv.Optional(CONF_STATUS):
        text_sensor.text_sensor_schema(icon=ICON_CAR_BATTERY),
    }).extend(cv.COMPONENT_SCHEMA))


async def setup_conf(config, key, hub):
    if key in config:
        conf = config[key]
        sens = await text_sensor.new_text_sensor(conf)
        cg.add(getattr(hub, f"set_{key}_text_sensor")(sens))


async def to_code(config):
    hub = await cg.get_variable(config[CONF_BMS_DALY_ID])
    for key in TYPES:
        await setup_conf(config, key, hub)
Exemplo n.º 2
0
import esphome.codegen as cg
import esphome.config_validation as cv
from esphome.components import text_sensor

from . import Dsmr, CONF_DSMR_ID

AUTO_LOAD = ["dsmr"]

CONFIG_SCHEMA = cv.Schema(
    {
        cv.GenerateID(CONF_DSMR_ID): cv.use_id(Dsmr),
        cv.Optional("identification"): text_sensor.text_sensor_schema(),
        cv.Optional("p1_version"): text_sensor.text_sensor_schema(),
        cv.Optional("p1_version_be"): text_sensor.text_sensor_schema(),
        cv.Optional("timestamp"): text_sensor.text_sensor_schema(),
        cv.Optional("electricity_tariff"): text_sensor.text_sensor_schema(),
        cv.Optional("electricity_failure_log"): text_sensor.text_sensor_schema(),
        cv.Optional("message_short"): text_sensor.text_sensor_schema(),
        cv.Optional("message_long"): text_sensor.text_sensor_schema(),
        cv.Optional("gas_equipment_id"): text_sensor.text_sensor_schema(),
        cv.Optional("thermal_equipment_id"): text_sensor.text_sensor_schema(),
        cv.Optional("water_equipment_id"): text_sensor.text_sensor_schema(),
        cv.Optional("sub_equipment_id"): text_sensor.text_sensor_schema(),
        cv.Optional("gas_delivered_text"): text_sensor.text_sensor_schema(),
    }
).extend(cv.COMPONENT_SCHEMA)


async def to_code(config):
    hub = await cg.get_variable(config[CONF_DSMR_ID])
Exemplo n.º 3
0
            cv.Required(CONF_ECO2): sensor.sensor_schema(
                unit_of_measurement=UNIT_PARTS_PER_MILLION,
                icon=ICON_MOLECULE_CO2,
                accuracy_decimals=0,
                device_class=DEVICE_CLASS_CARBON_DIOXIDE,
                state_class=STATE_CLASS_MEASUREMENT,
            ),
            cv.Required(CONF_TVOC): sensor.sensor_schema(
                unit_of_measurement=UNIT_PARTS_PER_BILLION,
                icon=ICON_RADIATOR,
                accuracy_decimals=0,
                device_class=DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS,
                state_class=STATE_CLASS_MEASUREMENT,
            ),
            cv.Optional(CONF_VERSION): text_sensor.text_sensor_schema(
                icon=ICON_RESTART
            ),
            cv.Optional(CONF_BASELINE): cv.hex_uint16_t,
            cv.Optional(CONF_TEMPERATURE): cv.use_id(sensor.Sensor),
            cv.Optional(CONF_HUMIDITY): cv.use_id(sensor.Sensor),
        }
    )
    .extend(cv.polling_component_schema("60s"))
    .extend(i2c.i2c_device_schema(0x5A))
)


async def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    await cg.register_component(var, config)
    await i2c.register_i2c_device(var, config)
Exemplo n.º 4
0
import esphome.config_validation as cv
from esphome.components import text_sensor
from . import BME680BSECComponent, CONF_BME680_BSEC_ID

DEPENDENCIES = ["bme680_bsec"]

CONF_IAQ_ACCURACY = "iaq_accuracy"
ICON_ACCURACY = "mdi:checkbox-marked-circle-outline"

TYPES = [CONF_IAQ_ACCURACY]

CONFIG_SCHEMA = cv.Schema({
    cv.GenerateID(CONF_BME680_BSEC_ID):
    cv.use_id(BME680BSECComponent),
    cv.Optional(CONF_IAQ_ACCURACY):
    text_sensor.text_sensor_schema(icon=ICON_ACCURACY),
})


async def setup_conf(config, key, hub):
    if key in config:
        conf = config[key]
        sens = await text_sensor.new_text_sensor(conf)
        cg.add(getattr(hub, f"set_{key}_text_sensor")(sens))


async def to_code(config):
    hub = await cg.get_variable(config[CONF_BME680_BSEC_ID])
    for key in TYPES:
        await setup_conf(config, key, hub)
Exemplo n.º 5
0
from esphome.components import text_sensor
import esphome.config_validation as cv
import esphome.codegen as cg
from esphome.const import CONF_SENSOR_DATAPOINT
from .. import tuya_ns, CONF_TUYA_ID, Tuya

DEPENDENCIES = ["tuya"]
CODEOWNERS = ["@dentra"]

TuyaTextSensor = tuya_ns.class_("TuyaTextSensor", text_sensor.TextSensor,
                                cg.Component)

CONFIG_SCHEMA = (text_sensor.text_sensor_schema().extend({
    cv.GenerateID():
    cv.declare_id(TuyaTextSensor),
    cv.GenerateID(CONF_TUYA_ID):
    cv.use_id(Tuya),
    cv.Required(CONF_SENSOR_DATAPOINT):
    cv.uint8_t,
}).extend(cv.COMPONENT_SCHEMA))


async def to_code(config):
    var = await text_sensor.new_text_sensor(config)
    await cg.register_component(var, config)

    paren = await cg.get_variable(config[CONF_TUYA_ID])
    cg.add(var.set_tuya_parent(paren))

    cg.add(var.set_sensor_id(config[CONF_SENSOR_DATAPOINT]))
Exemplo n.º 6
0
import esphome.codegen as cg
import esphome.config_validation as cv
from esphome.components import text_sensor
from esphome.const import CONF_ATTRIBUTE, CONF_ENTITY_ID

from .. import homeassistant_ns

DEPENDENCIES = ["api"]

HomeassistantTextSensor = homeassistant_ns.class_("HomeassistantTextSensor",
                                                  text_sensor.TextSensor,
                                                  cg.Component)

CONFIG_SCHEMA = text_sensor.text_sensor_schema().extend({
    cv.GenerateID():
    cv.declare_id(HomeassistantTextSensor),
    cv.Required(CONF_ENTITY_ID):
    cv.entity_id,
    cv.Optional(CONF_ATTRIBUTE):
    cv.string,
})


async def to_code(config):
    var = await text_sensor.new_text_sensor(config)
    await cg.register_component(var, config)

    cg.add(var.set_entity_id(config[CONF_ENTITY_ID]))
    if CONF_ATTRIBUTE in config:
        cg.add(var.set_attribute(config[CONF_ATTRIBUTE]))
Exemplo n.º 7
0
    if CONF_ICON not in config:
        config = config.copy()
        config[CONF_ICON] = {
            "sunset": ICON_WEATHER_SUNSET_DOWN,
            "sunrise": ICON_WEATHER_SUNSET_UP,
        }[config[CONF_TYPE]]
    return config


CONFIG_SCHEMA = cv.All(
    text_sensor.text_sensor_schema().extend({
        cv.GenerateID():
        cv.declare_id(SunTextSensor),
        cv.GenerateID(CONF_SUN_ID):
        cv.use_id(Sun),
        cv.Required(CONF_TYPE):
        cv.one_of(*SUN_TYPES, lower=True),
        cv.Optional(CONF_ELEVATION, default=DEFAULT_ELEVATION):
        elevation,
        cv.Optional(CONF_FORMAT, default="%X"):
        cv.string_strict,
    }).extend(cv.polling_component_schema("60s")),
    validate_optional_icon,
)


async def to_code(config):
    var = await text_sensor.new_text_sensor(config)
    await cg.register_component(var, config)

    paren = await cg.get_variable(config[CONF_SUN_ID])
    cg.add(var.set_parent(paren))
Exemplo n.º 8
0
from .. import nextion_ns, CONF_NEXTION_ID

from ..base_component import (
    setup_component_core_,
    CONFIG_TEXT_COMPONENT_SCHEMA,
)

CODEOWNERS = ["@senexcrenshaw"]

NextionTextSensor = nextion_ns.class_(
    "NextionTextSensor", text_sensor.TextSensor, cg.PollingComponent
)

CONFIG_SCHEMA = (
    text_sensor.text_sensor_schema(NextionTextSensor)
    .extend(CONFIG_TEXT_COMPONENT_SCHEMA)
    .extend(cv.polling_component_schema("never"))
)


async def to_code(config):
    hub = await cg.get_variable(config[CONF_NEXTION_ID])
    var = cg.new_Pvariable(config[CONF_ID], hub)
    await text_sensor.register_text_sensor(var, config)
    await cg.register_component(var, config)

    cg.add(hub.register_textsensor_component(var))

    await setup_component_core_(var, config, ".txt")
Exemplo n.º 9
0
RawEncoding_ns = modbus_controller_ns.namespace("RawEncoding")
RawEncoding = RawEncoding_ns.enum("RawEncoding")
RAW_ENCODING = {
    "NONE": RawEncoding.NONE,
    "HEXBYTES": RawEncoding.HEXBYTES,
    "COMMA": RawEncoding.COMMA,
}

CONFIG_SCHEMA = cv.All(
    text_sensor.text_sensor_schema().extend(
        cv.COMPONENT_SCHEMA).extend(ModbusItemBaseSchema).extend({
            cv.GenerateID():
            cv.declare_id(ModbusTextSensor),
            cv.Optional(CONF_REGISTER_TYPE):
            cv.enum(MODBUS_REGISTER_TYPE),
            cv.Optional(CONF_REGISTER_COUNT, default=0):
            cv.positive_int,
            cv.Optional(CONF_RESPONSE_SIZE, default=2):
            cv.positive_int,
            cv.Optional(CONF_RAW_ENCODE, default="NONE"):
            cv.enum(RAW_ENCODING),
        }),
    validate_modbus_register,
)


async def to_code(config):
    byte_offset, reg_count = modbus_calc_properties(config)
    response_size = config[CONF_RESPONSE_SIZE]
    reg_count = config[CONF_REGISTER_COUNT]
    if reg_count == 0:
Exemplo n.º 10
0
import esphome.config_validation as cv
from esphome.components import text_sensor
from esphome.const import (
    CONF_ENTITY_CATEGORY,
    CONF_ICON,
    CONF_SOURCE_ID,
)
from esphome.core.entity_helpers import inherit_property_from

from .. import copy_ns

CopyTextSensor = copy_ns.class_("CopyTextSensor", text_sensor.TextSensor,
                                cg.Component)

CONFIG_SCHEMA = (text_sensor.text_sensor_schema(CopyTextSensor).extend({
    cv.Required(CONF_SOURCE_ID):
    cv.use_id(text_sensor.TextSensor),
}).extend(cv.COMPONENT_SCHEMA))

FINAL_VALIDATE_SCHEMA = cv.All(
    inherit_property_from(CONF_ICON, CONF_SOURCE_ID),
    inherit_property_from(CONF_ENTITY_CATEGORY, CONF_SOURCE_ID),
)


async def to_code(config):
    var = await text_sensor.new_text_sensor(config)
    await cg.register_component(var, config)

    source = await cg.get_variable(config[CONF_SOURCE_ID])
    cg.add(var.set_source(source))
Exemplo n.º 11
0
import esphome.codegen as cg
import esphome.config_validation as cv
from esphome.components import text_sensor
from esphome.const import CONF_ID, CONF_LAMBDA, CONF_TEXT_SENSORS
from .. import custom_ns

CustomTextSensorConstructor = custom_ns.class_("CustomTextSensorConstructor")

CONFIG_SCHEMA = cv.Schema({
    cv.GenerateID():
    cv.declare_id(CustomTextSensorConstructor),
    cv.Required(CONF_LAMBDA):
    cv.returning_lambda,
    cv.Required(CONF_TEXT_SENSORS):
    cv.ensure_list(text_sensor.text_sensor_schema()),
})


async def to_code(config):
    template_ = await cg.process_lambda(
        config[CONF_LAMBDA],
        [],
        return_type=cg.std_vector.template(text_sensor.TextSensorPtr),
    )

    rhs = CustomTextSensorConstructor(template_)
    var = cg.variable(config[CONF_ID], rhs)

    for i, conf in enumerate(config[CONF_TEXT_SENSORS]):
        text = cg.Pvariable(conf[CONF_ID], var.get_text_sensor(i))
        await text_sensor.register_text_sensor(text, conf)
Exemplo n.º 12
0
from esphome.const import CONF_QOS, CONF_TOPIC

from .. import mqtt_subscribe_ns

DEPENDENCIES = ["mqtt"]

CONF_MQTT_PARENT_ID = "mqtt_parent_id"
MQTTSubscribeTextSensor = mqtt_subscribe_ns.class_("MQTTSubscribeTextSensor",
                                                   text_sensor.TextSensor,
                                                   cg.Component)

CONFIG_SCHEMA = (text_sensor.text_sensor_schema().extend({
    cv.GenerateID():
    cv.declare_id(MQTTSubscribeTextSensor),
    cv.GenerateID(CONF_MQTT_PARENT_ID):
    cv.use_id(mqtt.MQTTClientComponent),
    cv.Required(CONF_TOPIC):
    cv.subscribe_topic,
    cv.Optional(CONF_QOS, default=0):
    cv.mqtt_qos,
}).extend(cv.COMPONENT_SCHEMA))


async def to_code(config):
    var = await text_sensor.new_text_sensor(config)
    await cg.register_component(var, config)

    parent = await cg.get_variable(config[CONF_MQTT_PARENT_ID])
    cg.add(var.set_parent(parent))
    cg.add(var.set_topic(config[CONF_TOPIC]))
    cg.add(var.set_qos(config[CONF_QOS]))
Exemplo n.º 13
0
                                        text_sensor.TextSensor,
                                        cg.PollingComponent)
ScanResultsWiFiInfo = wifi_info_ns.class_("ScanResultsWiFiInfo",
                                          text_sensor.TextSensor,
                                          cg.PollingComponent)
SSIDWiFiInfo = wifi_info_ns.class_("SSIDWiFiInfo", text_sensor.TextSensor,
                                   cg.PollingComponent)
BSSIDWiFiInfo = wifi_info_ns.class_("BSSIDWiFiInfo", text_sensor.TextSensor,
                                    cg.PollingComponent)
MacAddressWifiInfo = wifi_info_ns.class_("MacAddressWifiInfo",
                                         text_sensor.TextSensor, cg.Component)

CONFIG_SCHEMA = cv.Schema({
    cv.Optional(CONF_IP_ADDRESS):
    text_sensor.text_sensor_schema(
        klass=IPAddressWiFiInfo,
        entity_category=ENTITY_CATEGORY_DIAGNOSTIC).extend(
            cv.polling_component_schema("1s")),
    cv.Optional(CONF_SCAN_RESULTS):
    text_sensor.text_sensor_schema(
        klass=ScanResultsWiFiInfo,
        entity_category=ENTITY_CATEGORY_DIAGNOSTIC).extend(
            cv.polling_component_schema("60s")),
    cv.Optional(CONF_SSID):
    text_sensor.text_sensor_schema(
        klass=SSIDWiFiInfo, entity_category=ENTITY_CATEGORY_DIAGNOSTIC).extend(
            cv.polling_component_schema("1s")),
    cv.Optional(CONF_BSSID):
    text_sensor.text_sensor_schema(
        klass=BSSIDWiFiInfo,
        entity_category=ENTITY_CATEGORY_DIAGNOSTIC).extend(
            cv.polling_component_schema("1s")),
Exemplo n.º 14
0
import esphome.codegen as cg
import esphome.config_validation as cv
from esphome.components import text_sensor, esp32_ble_tracker

DEPENDENCIES = ["esp32_ble_tracker"]

ble_scanner_ns = cg.esphome_ns.namespace("ble_scanner")
BLEScanner = ble_scanner_ns.class_(
    "BLEScanner",
    text_sensor.TextSensor,
    cg.Component,
    esp32_ble_tracker.ESPBTDeviceListener,
)

CONFIG_SCHEMA = cv.All(
    text_sensor.text_sensor_schema(BLEScanner)
    .extend(esp32_ble_tracker.ESP_BLE_DEVICE_SCHEMA)
    .extend(cv.COMPONENT_SCHEMA)
)


async def to_code(config):
    var = await text_sensor.new_text_sensor(config)
    await cg.register_component(var, config)
    await esp32_ble_tracker.register_ble_device(var, config)
Exemplo n.º 15
0
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"

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()
     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 = await text_sensor.new_text_sensor(conf)
            cg.add(getattr(paren, f"set_{type}")(var))
Exemplo n.º 16
0
import esphome.codegen as cg
from esphome.components import text_sensor

from .. import (
    HOME_ASSISTANT_IMPORT_SCHEMA,
    homeassistant_ns,
    setup_home_assistant_entity,
)

DEPENDENCIES = ["api"]

HomeassistantTextSensor = homeassistant_ns.class_("HomeassistantTextSensor",
                                                  text_sensor.TextSensor,
                                                  cg.Component)

CONFIG_SCHEMA = text_sensor.text_sensor_schema(HomeassistantTextSensor).extend(
    HOME_ASSISTANT_IMPORT_SCHEMA)


async def to_code(config):
    var = await text_sensor.new_text_sensor(config)
    await cg.register_component(var, config)
    setup_home_assistant_entity(var, config)
Exemplo n.º 17
0
            cv.declare_id(DemoSwitch),
        })
    ],
    cv.Optional(
        CONF_TEXT_SENSORS,
        default=[
            {
                CONF_NAME: "Demo Text Sensor 1",
            },
            {
                CONF_NAME: "Demo Text Sensor 2",
                CONF_ICON: ICON_BLUR,
            },
        ],
    ): [
        text_sensor.text_sensor_schema(klass=DemoTextSensor).extend(
            cv.polling_component_schema("60s"))
    ],
})


async def to_code(config):
    for conf in config[CONF_BINARY_SENSORS]:
        var = cg.new_Pvariable(conf[CONF_ID])
        await cg.register_component(var, conf)
        await binary_sensor.register_binary_sensor(var, conf)

    for conf in config[CONF_CLIMATES]:
        var = cg.new_Pvariable(conf[CONF_ID])
        await cg.register_component(var, conf)
        await climate.register_climate(var, conf)
        cg.add(var.set_type(conf[CONF_TYPE]))
Exemplo n.º 18
0
                                        text_sensor.TextSensor,
                                        cg.PollingComponent)
ScanResultsWiFiInfo = wifi_info_ns.class_("ScanResultsWiFiInfo",
                                          text_sensor.TextSensor,
                                          cg.PollingComponent)
SSIDWiFiInfo = wifi_info_ns.class_("SSIDWiFiInfo", text_sensor.TextSensor,
                                   cg.PollingComponent)
BSSIDWiFiInfo = wifi_info_ns.class_("BSSIDWiFiInfo", text_sensor.TextSensor,
                                    cg.PollingComponent)
MacAddressWifiInfo = wifi_info_ns.class_("MacAddressWifiInfo",
                                         text_sensor.TextSensor, cg.Component)

CONFIG_SCHEMA = cv.Schema({
    cv.Optional(CONF_IP_ADDRESS):
    text_sensor.text_sensor_schema(
        IPAddressWiFiInfo, entity_category=ENTITY_CATEGORY_DIAGNOSTIC).extend(
            cv.polling_component_schema("1s")),
    cv.Optional(CONF_SCAN_RESULTS):
    text_sensor.text_sensor_schema(
        ScanResultsWiFiInfo,
        entity_category=ENTITY_CATEGORY_DIAGNOSTIC).extend({
            cv.Optional(CONF_VERBOSE, default=False):
            cv.boolean
        }).extend(cv.polling_component_schema("60s")),
    cv.Optional(CONF_SSID):
    text_sensor.text_sensor_schema(
        SSIDWiFiInfo, entity_category=ENTITY_CATEGORY_DIAGNOSTIC).extend(
            cv.polling_component_schema("1s")),
    cv.Optional(CONF_BSSID):
    text_sensor.text_sensor_schema(
        BSSIDWiFiInfo, entity_category=ENTITY_CATEGORY_DIAGNOSTIC).extend(
Exemplo n.º 19
0
import esphome.config_validation as cv
import esphome.codegen as cg
from esphome.const import (
    CONF_DEVICE,
    CONF_BLOCKING_COMPONENT,
    ENTITY_CATEGORY_DIAGNOSTIC,
)
from . import CONF_DEBUG_ID, DebugComponent

DEPENDENCIES = ["debug"]

CONFIG_SCHEMA = cv.Schema({
    cv.GenerateID(CONF_DEBUG_ID):
    cv.use_id(DebugComponent),
    cv.Optional(CONF_DEVICE):
    text_sensor.text_sensor_schema(entity_category=ENTITY_CATEGORY_DIAGNOSTIC),
    cv.Optional(CONF_BLOCKING_COMPONENT):
    text_sensor.text_sensor_schema(entity_category=ENTITY_CATEGORY_DIAGNOSTIC),
})


async def to_code(config):
    debug_component = await cg.get_variable(config[CONF_DEBUG_ID])

    if CONF_DEVICE in config:
        sens = await text_sensor.new_text_sensor(config[CONF_DEVICE])
        cg.add(debug_component.set_device_info_sensor(sens))

    if CONF_BLOCKING_COMPONENT in config:
        sens = await text_sensor.new_text_sensor(
            config[CONF_BLOCKING_COMPONENT])
Exemplo n.º 20
0
from esphome.const import (
    ENTITY_CATEGORY_DIAGNOSTIC,
    ICON_NEW_BOX,
    CONF_HIDE_TIMESTAMP,
)

version_ns = cg.esphome_ns.namespace("version")
VersionTextSensor = version_ns.class_(
    "VersionTextSensor", text_sensor.TextSensor, cg.Component
)

CONFIG_SCHEMA = (
    text_sensor.text_sensor_schema(
        icon=ICON_NEW_BOX,
        entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
    )
    .extend(
        {
            cv.GenerateID(): cv.declare_id(VersionTextSensor),
            cv.Optional(CONF_HIDE_TIMESTAMP, default=False): cv.boolean,
        }
    )
    .extend(cv.COMPONENT_SCHEMA)
)


async def to_code(config):
    var = await text_sensor.new_text_sensor(config)
    await cg.register_component(var, config)
    cg.add(var.set_hide_timestamp(config[CONF_HIDE_TIMESTAMP]))
Exemplo n.º 21
0
import esphome.codegen as cg
import esphome.config_validation as cv
from esphome import automation
from esphome.components import text_sensor
from esphome.components.text_sensor import TextSensorPublishAction
from esphome.const import CONF_ID, CONF_LAMBDA, CONF_STATE
from .. import template_ns

TemplateTextSensor = template_ns.class_("TemplateTextSensor",
                                        text_sensor.TextSensor,
                                        cg.PollingComponent)

CONFIG_SCHEMA = (text_sensor.text_sensor_schema().extend({
    cv.GenerateID():
    cv.declare_id(TemplateTextSensor),
    cv.Optional(CONF_LAMBDA):
    cv.returning_lambda,
}).extend(cv.polling_component_schema("60s")))


async def to_code(config):
    var = await text_sensor.new_text_sensor(config)
    await cg.register_component(var, config)

    if CONF_LAMBDA in config:
        template_ = await cg.process_lambda(config[CONF_LAMBDA], [],
                                            return_type=cg.optional.template(
                                                cg.std_string))
        cg.add(var.set_template(template_))

Exemplo n.º 22
0
import esphome.codegen as cg
from esphome.components import text_sensor
from esphome.const import CONF_ID

from .. import CONF_TAG_NAME, TELEINFO_LISTENER_SCHEMA, teleinfo_ns, CONF_TELEINFO_ID

TeleInfoTextSensor = teleinfo_ns.class_(
    "TeleInfoTextSensor", text_sensor.TextSensor, cg.Component
)

CONFIG_SCHEMA = text_sensor.text_sensor_schema(klass=TeleInfoTextSensor).extend(
    TELEINFO_LISTENER_SCHEMA
)


async def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID], config[CONF_TAG_NAME])
    await cg.register_component(var, config)
    await text_sensor.register_text_sensor(var, config)
    teleinfo = await cg.get_variable(config[CONF_TELEINFO_ID])
    cg.add(teleinfo.register_teleinfo_listener(var))
Exemplo n.º 23
0
    "ScanResultsWiFiInfo", text_sensor.TextSensor, cg.PollingComponent
)
SSIDWiFiInfo = wifi_info_ns.class_(
    "SSIDWiFiInfo", text_sensor.TextSensor, cg.PollingComponent
)
BSSIDWiFiInfo = wifi_info_ns.class_(
    "BSSIDWiFiInfo", text_sensor.TextSensor, cg.PollingComponent
)
MacAddressWifiInfo = wifi_info_ns.class_(
    "MacAddressWifiInfo", text_sensor.TextSensor, cg.Component
)

CONFIG_SCHEMA = cv.Schema(
    {
        cv.Optional(CONF_IP_ADDRESS): text_sensor.text_sensor_schema(
            IPAddressWiFiInfo, entity_category=ENTITY_CATEGORY_DIAGNOSTIC
        ).extend(cv.polling_component_schema("1s")),
        cv.Optional(CONF_SCAN_RESULTS): text_sensor.text_sensor_schema(
            ScanResultsWiFiInfo, entity_category=ENTITY_CATEGORY_DIAGNOSTIC
        ).extend(cv.polling_component_schema("60s")),
        cv.Optional(CONF_SSID): text_sensor.text_sensor_schema(
            SSIDWiFiInfo, entity_category=ENTITY_CATEGORY_DIAGNOSTIC
        ).extend(cv.polling_component_schema("1s")),
        cv.Optional(CONF_BSSID): text_sensor.text_sensor_schema(
            BSSIDWiFiInfo, entity_category=ENTITY_CATEGORY_DIAGNOSTIC
        ).extend(cv.polling_component_schema("1s")),
        cv.Optional(CONF_MAC_ADDRESS): text_sensor.text_sensor_schema(
            MacAddressWifiInfo, entity_category=ENTITY_CATEGORY_DIAGNOSTIC
        ),
    }
)