Example #1
0
            "Commit option only accepts commit hashes in hex format.")
    return value


ESPHOME_CORE_VERSION_SCHEMA = vol.Any(
    validate_simple_esphome_core_version,
    cv.Schema({
        vol.Required(CONF_LOCAL): validate_local_esphome_core_version,
    }),
    vol.All(
        cv.Schema({
            vol.Optional(CONF_REPOSITORY, default=LIBRARY_URI_REPO): cv.string,
            vol.Optional(CONF_COMMIT): validate_commit,
            vol.Optional(CONF_BRANCH): cv.string,
            vol.Optional(CONF_TAG): cv.string,
        }), cv.has_at_most_one_key(CONF_COMMIT, CONF_BRANCH, CONF_TAG)),
)


def validate_platform(value):
    value = cv.string(value)
    if value.upper() in ('ESP8266', 'ESPRESSIF8266'):
        return ESP_PLATFORM_ESP8266
    if value.upper() in ('ESP32', 'ESPRESSIF32'):
        return ESP_PLATFORM_ESP32
    raise vol.Invalid(
        u"Invalid platform '{}'. Only options are ESP8266 and ESP32. Please note "
        u"the old way to use the latest arduino framework version has been split up "
        u"into the arduino_version configuration option.".format(value))

Example #2
0
import esphome.const as ehc
from esphome.core import coroutine, HexInt

from . import const as c
from . import cpp_types as t
from .aes_key import create_aes_key
from .md5sum import get_md5sum_hexint

PEER_SCHEMA = cv.All(
    cv.Schema({
        cv.GenerateID():
        cv.declare_id(t.Peer),
        cv.Required(ehc.CONF_BSSID):
        cv.mac_address,
        cv.Optional(ehc.CONF_PASSWORD):
        cv.All(cv.string, cv.Length(min=2)),
        cv.Optional(c.CONF_AESKEY):
        create_aes_key,
    }), cv.has_at_most_one_key(ehc.CONF_PASSWORD, c.CONF_AESKEY))


@coroutine
def peer_to_code(config):
    var = cg.new_Pvariable(config[ehc.CONF_ID])
    cg.add(var.set_bssid([HexInt(i) for i in config[ehc.CONF_BSSID].parts]))
    if ehc.CONF_PASSWORD in config:
        cg.add(var.set_aeskey(get_md5sum_hexint(config[ehc.CONF_PASSWORD])))
    if c.CONF_AESKEY in config:
        cg.add(var.set_aeskey(*config[c.CONF_AESKEY].as_hex_int()))
    yield var
Example #3
0
        cv.Optional(CONF_TEMPERATURE_MULTIPLIER):
        cv.positive_float,
        cv.Optional(CONF_CURRENT_TEMPERATURE_MULTIPLIER):
        cv.positive_float,
        cv.Optional(CONF_TARGET_TEMPERATURE_MULTIPLIER):
        cv.positive_float,
        cv.Optional(CONF_ECO_DATAPOINT):
        cv.uint8_t,
        cv.Optional(CONF_ECO_TEMPERATURE):
        cv.temperature,
    }).extend(cv.COMPONENT_SCHEMA),
    cv.has_at_least_one_key(CONF_TARGET_TEMPERATURE_DATAPOINT,
                            CONF_SWITCH_DATAPOINT),
    validate_temperature_multipliers,
    validate_active_state_values,
    cv.has_at_most_one_key(CONF_ACTIVE_STATE_DATAPOINT,
                           CONF_HEATING_STATE_PIN),
    cv.has_at_most_one_key(CONF_ACTIVE_STATE_DATAPOINT,
                           CONF_COOLING_STATE_PIN),
    validate_eco_values,
)


async def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    await cg.register_component(var, config)
    await climate.register_climate(var, config)

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

    cg.add(var.set_supports_heat(config[CONF_SUPPORTS_HEAT]))
Example #4
0
from esphome.const import CONF_DC_PIN, CONF_ID, CONF_LAMBDA, CONF_PAGES

CODEOWNERS = ["@kbx81"]

AUTO_LOAD = ["ssd1327_base"]
DEPENDENCIES = ["spi"]

ssd1327_spi = cg.esphome_ns.namespace("ssd1327_spi")
SPISSD1327 = ssd1327_spi.class_("SPISSD1327", ssd1327_base.SSD1327,
                                spi.SPIDevice)

CONFIG_SCHEMA = cv.All(
    ssd1327_base.SSD1327_SCHEMA.extend({
        cv.GenerateID():
        cv.declare_id(SPISSD1327),
        cv.Required(CONF_DC_PIN):
        pins.gpio_output_pin_schema,
    }).extend(cv.COMPONENT_SCHEMA).extend(
        spi.spi_device_schema(cs_pin_required=False)),
    cv.has_at_most_one_key(CONF_PAGES, CONF_LAMBDA),
)


def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    yield ssd1327_base.setup_ssd1327(var, config)
    yield spi.register_spi_device(var, config)

    dc = yield cg.gpio_pin_expression(config[CONF_DC_PIN])
    cg.add(var.set_dc_pin(dc))
Example #5
0
from esphome import automation

from . import const as c
from . import cpp_types as t
from .service_key import create_service_key
from .md5sum import get_md5sum_hexint
from .payload_setter import validate_payload_setter_list, build_payload_setter_list

validate_receive_trigger = automation.validate_automation(
    {
        cv.GenerateID(ehc.CONF_TRIGGER_ID): cv.declare_id(t.ReceiveTrigger),
        cv.Optional(c.CONF_PEERID): cv.use_id(t.Peer),
        cv.Optional(ehc.CONF_SERVICE): cv.All(cv.string, cv.Length(min=2)),
        cv.Optional(c.CONF_SERVICEKEY): create_service_key,
        cv.Optional(c.CONF_PAYLOADS): validate_payload_setter_list,
    }, cv.has_at_most_one_key(ehc.CONF_SERVICE, c.CONF_SERVICEKEY))


@coroutine
def receive_trigger_to_code(component, config):
    var = cg.new_Pvariable(config[ehc.CONF_TRIGGER_ID], component)
    if c.CONF_PEERID in config:
        peer = yield cg.get_variable(config[c.CONF_PEERID])
        cg.add(var.set_peer(peer))
    if ehc.CONF_SERVICE in config:
        cg.add(
            var.set_servicekey(get_md5sum_hexint(config[ehc.CONF_SERVICE], 7)))
    if c.CONF_SERVICEKEY in config:
        cg.add(var.set_servicekey(*config[c.CONF_SERVICEKEY].to_hex_int()))
    payload_setters = yield build_payload_setter_list(config[c.CONF_PAYLOADS],
                                                      cg.TemplateArguments([]),