Пример #1
0
def write_cpp(config):
    _LOGGER.info("Generating C++ source...")

    CORE.add_job(core_config.to_code, config[CONF_PI4HOME], domain='pi4home')
    for domain in PRE_INITIALIZE:
        if domain == CONF_PI4HOME or domain not in config:
            continue
        CORE.add_job(get_component(domain).to_code,
                     config[domain],
                     domain=domain)

    for domain, component, conf in iter_components(config):
        if domain in PRE_INITIALIZE or not hasattr(component, 'to_code'):
            continue
        CORE.add_job(component.to_code, conf, domain=domain)

    CORE.flush_tasks()
    add(RawStatement(''))
    add(RawStatement(''))
    all_code = []
    for exp in CORE.expressions:
        if not config[CONF_PI4HOME][CONF_USE_CUSTOM_CODE]:
            if isinstance(exp, Expression) and not exp.required:
                continue
        all_code.append(text_type(statement(exp)))

    writer.write_platformio_project()

    code_s = indent('\n'.join(line.rstrip() for line in all_code))
    writer.write_cpp(code_s)
    return 0
Пример #2
0
def setup_time(time_var, config):
    CORE.add_job(setup_time_core_, time_var, config)
Пример #3
0
def setup_light(light_obj, config):
    light_var = Pvariable(config[CONF_ID], light_obj, has_side_effects=False)
    CORE.add_job(setup_light_core_, light_var, config)
Пример #4
0
def register_output(var, config):
    output_var = Pvariable(config[CONF_ID], var, has_side_effects=True)
    CORE.add_job(setup_output_platform_, output_var, config)
Пример #5
0
def setup_output_platform(obj, config, skip_power_supply=False):
    CORE.add_job(setup_output_platform_, obj, config, skip_power_supply)
Пример #6
0
def setup_stepper(stepper_var, config):
    CORE.add_job(setup_stepper_core_, stepper_var, config)
Пример #7
0
def setup_fan(fan_obj, config):
    fan_var = Pvariable(config[CONF_ID], fan_obj, has_side_effects=False)
    CORE.add_job(setup_fan_core_, fan_var, config)
Пример #8
0
def build_automations(trigger, args, config):
    CORE.add_job(build_automation_, trigger, args, config)
Пример #9
0
def register_text_sensor(var, config):
    if not CORE.has_id(config[CONF_ID]):
        var = Pvariable(config[CONF_ID], var, has_side_effects=True)
    add(App.register_text_sensor(var))
    CORE.add_job(setup_text_sensor_core_, var, config)
Пример #10
0
def setup_text_sensor(text_sensor_obj, config):
    if not CORE.has_id(config[CONF_ID]):
        text_sensor_obj = Pvariable(config[CONF_ID],
                                    text_sensor_obj,
                                    has_side_effects=True)
    CORE.add_job(setup_text_sensor_core_, text_sensor_obj, config)
Пример #11
0
def register_binary_sensor(var, config):
    binary_sensor_var = Pvariable(config[CONF_ID], var, has_side_effects=True)
    add(App.register_binary_sensor(binary_sensor_var))
    CORE.add_job(setup_binary_sensor_core_, binary_sensor_var, config)
Пример #12
0
def setup_binary_sensor(binary_sensor_obj, config):
    if not CORE.has_id(config[CONF_ID]):
        binary_sensor_obj = Pvariable(config[CONF_ID],
                                      binary_sensor_obj,
                                      has_side_effects=True)
    CORE.add_job(setup_binary_sensor_core_, binary_sensor_obj, config)
Пример #13
0
def setup_cover(cover_obj, config):
    CORE.add_job(setup_cover_core_, cover_obj, config)
Пример #14
0
def setup_display(display_var, config):
    CORE.add_job(setup_display_core_, display_var, config)
Пример #15
0
def register_switch(var, config):
    switch_var = Pvariable(config[CONF_ID], var, has_side_effects=True)
    add(App.register_switch(switch_var))
    CORE.add_job(setup_switch_core_, switch_var, config)
Пример #16
0
def setup_switch(switch_obj, config):
    if not CORE.has_id(config[CONF_ID]):
        switch_obj = Pvariable(config[CONF_ID],
                               switch_obj,
                               has_side_effects=True)
    CORE.add_job(setup_switch_core_, switch_obj, config)