コード例 #1
0
def to_code(config):
    for template_ in process_lambda(config[CONF_LAMBDA], [],
                                    return_type=std_vector.template(
                                        text_sensor.TextSensorPtr)):
        yield

    rhs = CustomTextSensorConstructor(template_)
    custom = variable(config[CONF_ID], rhs)
    for i, conf in enumerate(config[CONF_TEXT_SENSORS]):
        rhs = custom.Pget_text_sensor(i)
        add(rhs.set_name(conf[CONF_NAME]))
        text_sensor.register_text_sensor(rhs, conf)
コード例 #2
0
def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    cg.add_library('CountUpDownTimer', None)
    yield cg.register_component(var, config)
    yield text_sensor.register_text_sensor(var, config)

    parent = yield cg.get_variable(config[CONF_MQTT_PARENT_ID])
    cg.add(var.set_parent(parent))
    cg.add(var.set_topic(config[CONF_TOPIC]))

    if CONF_QOS in config:
        cg.add(var.set_qos(config[CONF_QOS]))

    for conf in config.get(CONF_ON_END, []):
        trigger = cg.new_Pvariable(conf[CONF_TRIGGER_ID])
        yield cg.register_component(trigger, conf)
        yield cg.register_parented(trigger, var)
        cg.add(trigger.set_testState(True))
        yield automation.build_automation(trigger, [], conf)

    for conf in config.get(CONF_ON_START, []):
        trigger = cg.new_Pvariable(conf[CONF_TRIGGER_ID])
        yield cg.register_component(trigger, conf)
        yield cg.register_parented(trigger, var)
        cg.add(trigger.set_testState(False))
        yield automation.build_automation(trigger, [], conf)
コード例 #3
0
def setup_conf(config, key, hub, funcName):
    if key in config:
        conf = config[key]
        var = cg.new_Pvariable(conf[CONF_ID])
        yield text_sensor.register_text_sensor(var, conf)
        func = getattr(hub, funcName)
        cg.add(func(var))
コード例 #4
0
def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    yield cg.register_component(var, config)
    yield text_sensor.register_text_sensor(var, config)

    parent_var = yield cg.get_variable(config[CONF_OUTPUT_ID])
    cg.add(var.set_parent(parent_var))
コード例 #5
0
def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    yield cg.register_component(var, config)

    heading = yield cg.get_variable(config[CONF_DEP_HEADING])
    frequency = yield cg.get_variable(config[CONF_DEP_FREQUENCY])
    max_frequency = yield cg.get_variable(config[CONF_DEP_MAX_FREQUENCY])
    cg.add(var.set_dependent_sensors(heading, frequency, max_frequency))

    if CONF_HEADING in config:
        sens = yield sensor.new_sensor(config[CONF_HEADING])
        cg.add(var.set_heading_sensor(sens))
    if CONF_HEADING_COMPASS in config:
        # sens = yield text_sensor.new_sensor(config[CONF_HEADING_COMPASS])
        # cg.add(var.set_heading_compass_sensor(sens))
        sens = cg.new_Pvariable(config[CONF_HEADING_COMPASS][CONF_ID])
        yield text_sensor.register_text_sensor(sens,
                                               config[CONF_HEADING_COMPASS])
        cg.add(var.set_heading_compass_sensor(sens))
    if CONF_SPEED in config:
        sens = yield sensor.new_sensor(config[CONF_SPEED])
        cg.add(var.set_speed_sensor(sens))
    if CONF_MAX_SPEED in config:
        sens = yield sensor.new_sensor(config[CONF_MAX_SPEED])
        cg.add(var.set_max_speed_sensor(sens))
コード例 #6
0
def to_code(config):
    paren = yield cg.get_variable(config[CONF_HUB_ID])
    var = cg.new_Pvariable(config[CONF_ID])

    yield text_sensor.register_text_sensor(var, config)

    cg.add(paren.register_text_sensor(var))
コード例 #7
0
def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    yield cg.register_component(var, config)
    yield text_sensor.register_text_sensor(var, config)

    if CONF_LAMBDA in config:
        template_ = yield cg.process_lambda(config[CONF_LAMBDA], [],
                                            return_type=cg.optional.template(cg.std_string))
        cg.add(var.set_template(template_))
コード例 #8
0
def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    yield cg.register_component(var, config)
    yield text_sensor.register_text_sensor(var, config)

    parent = yield 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]))
コード例 #9
0
def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    yield cg.register_component(var, config)
    yield text_sensor.register_text_sensor(var, config)

    paren = yield cg.get_variable(config[CONF_SUN_ID])
    cg.add(var.set_parent(paren))
    cg.add(var.set_sunrise(SUN_TYPES[config[CONF_TYPE]]))
    cg.add(var.set_elevation(config[CONF_ELEVATION]))
    cg.add(var.set_format(config[CONF_FORMAT]))
コード例 #10
0
def to_code(config):
    template_ = yield 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))
        yield text_sensor.register_text_sensor(text, conf)
コード例 #11
0
def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    yield cg.register_component(var, config)
    yield text_sensor.register_text_sensor(var, config)

    top_pin = yield cg.gpio_pin_expression(config[CONF_TOP_PIN])
    cg.add(var.set_top_pin(top_pin))
    bottom_pin = yield cg.gpio_pin_expression(config[CONF_BOTTOM_PIN])
    cg.add(var.set_bottom_pin(bottom_pin))

    cg.add(var.set_debounce_duration(config[CONF_DEBOUNCE]))
コード例 #12
0
ファイル: __init__.py プロジェクト: loongyh/esphome-keypad
def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    yield cg.register_component(var, config)
    yield text_sensor.register_text_sensor(var, config)
    keypad = yield cg.get_variable(config[CONF_KEYPAD_ID])
    cg.add(keypad.register_listener(var))
    if CONF_MAX_LENGTH in config:
        cg.add(var.set_max_length(config[CONF_MAX_LENGTH]))
    if CONF_END_KEYS in config:
        cg.add(var.set_end_keys(config[CONF_END_KEYS]))
    if CONF_BACK_KEYS in config:
        cg.add(var.set_back_keys(config[CONF_BACK_KEYS]))
    if CONF_ALLOWED_KEYS in config:
        cg.add(var.set_allowed_keys(config[CONF_ALLOWED_KEYS]))
    if CONF_ON_PROGRESS in config:
        yield automation.build_automation(var.get_progress_trigger(),
                                          [(cg.std_string, 'x')],
                                          config[CONF_ON_PROGRESS])
コード例 #13
0
def calibrate_linear_filter_to_code(config, filter_id):
    x = [conf[CONF_FROM] for conf in config[CONF_DATAPOINTS]]
    y = [conf[CONF_TO] for conf in config[CONF_DATAPOINTS]]
    k, b = fit_linear(x, y)

    linear_filter = yield cg.new_Pvariable(filter_id, k, b)

    if (config.get(CONF_CALIBRATION_SENSOR)):
        cg.add_define('USE_MQTT_CALIBRATION')
        CORE.extra_source_files.update({
            Path('esphome/components/mqtt_subscribe/text_sensor/mqtt_subscribe_text_sensor.h'):
            loader.SourceFile('esphome.components.mqtt_subscribe.text_sensor',
                              'mqtt_subscribe_text_sensor.h')
        })
        CORE.extra_source_files.update({
            Path('esphome/components/mqtt_subscribe/text_sensor/mqtt_subscribe_text_sensor.cpp'):
            loader.SourceFile('esphome.components.mqtt_subscribe.text_sensor',
                              'mqtt_subscribe_text_sensor.cpp')
        })
        # TODO: This basically duplicates text_sensor.mqtt_subscribe. Should find a
        # way to either define to_code in such a way that it's callable from here.
        var = cg.new_Pvariable(config[CONF_CALIBRATION_SENSOR][CONF_ID])
        yield cg.register_component(var, config[CONF_CALIBRATION_SENSOR])
        yield register_text_sensor(var, config[CONF_CALIBRATION_SENSOR])

        parent = yield cg.get_variable(
            config[CONF_CALIBRATION_SENSOR][CONF_MQTT_PARENT_ID])
        cg.add(var.set_parent(parent))
        cg.add(var.set_topic(config[CONF_CALIBRATION_SENSOR][CONF_TOPIC]))
        cg.add(var.set_qos(config[CONF_CALIBRATION_SENSOR][CONF_QOS]))

        cg.add(linear_filter.set_calibration_sensor(var))

    if (config.get(CONF_RAW_SENSOR)):
        cg.add_define('USE_RAW_SENSOR')
        raw_sensor = yield new_sensor(config.get(CONF_RAW_SENSOR))
        cg.add(linear_filter.set_raw_sensor(raw_sensor))

    yield linear_filter
コード例 #14
0
ファイル: text_sensor.py プロジェクト: Adi146/EspPrint
def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    yield cg.register_component(var, config)
    yield GCodeQueue.register_gcode_analyzer(var, config)
    yield text_sensor.register_text_sensor(var, config)
コード例 #15
0
def setup_conf(config, key, klass):
    if key in config:
        conf = config[key]
        rhs = App.register_component(klass.new(conf[CONF_NAME]))
        sensor_ = Pvariable(conf[CONF_ID], rhs)
        text_sensor.register_text_sensor(sensor_, conf)
コード例 #16
0
ファイル: text_sensor.py プロジェクト: yevgenb/esphome-1
def setup_conf(config, key):
    if key in config:
        conf = config[key]
        var = cg.new_Pvariable(conf[CONF_ID])
        yield cg.register_component(var, conf)
        yield text_sensor.register_text_sensor(var, conf)
コード例 #17
0
def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID], config[CONF_TAG_NAME])
    yield cg.register_component(var, config)
    yield text_sensor.register_text_sensor(var, config)
    teleinfo = yield cg.get_variable(config[CONF_TELEINFO_ID])
    cg.add(teleinfo.register_teleinfo_listener(var))
コード例 #18
0
def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    yield text_sensor.register_text_sensor(var, config)
    yield cg.register_component(var, config)
    cg.add(var.set_hide_timestamp(config[CONF_HIDE_TIMESTAMP]))
コード例 #19
0
def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    cg.add_library('CountUpDownTimer', None)
    yield cg.register_component(var, config)
    yield text_sensor.register_text_sensor(var, config)
コード例 #20
0
def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    yield cg.register_component(var, config)
    yield esp32_ble_tracker.register_ble_device(var, config)
    yield text_sensor.register_text_sensor(var, config)
コード例 #21
0
def setup_conf(config, key, hub):
    if key in config:
        conf = config[key]
        sens = cg.new_Pvariable(conf[CONF_ID])
        yield text_sensor.register_text_sensor(sens, conf)
        cg.add(getattr(hub, f"set_{key}_text_sensor")(sens))
コード例 #22
0
def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    yield cg.register_component(var, config)
    yield text_sensor.register_text_sensor(var, config)

    cg.add(var.set_entity_id(config[CONF_ENTITY_ID]))
コード例 #23
0
ファイル: __init__.py プロジェクト: thieaux/custom_components
def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    yield cg.register_component(var, config)
    yield text_sensor.register_text_sensor(var, config)
    yield uart.register_uart_device(var, config)