Beispiel #1
0
def add_buses():
    # uart
    from esphome.components.uart import UART_DEVICE_SCHEMA

    get_jschema("uart_bus", UART_DEVICE_SCHEMA)

    # spi
    from esphome.components.spi import spi_device_schema

    get_jschema("spi_bus", spi_device_schema(False))

    # i2c
    from esphome.components.i2c import i2c_device_schema

    get_jschema("i2c_bus", i2c_device_schema(None))
ST7789VRef = ST7789V.operator('ref')

CONFIG_SCHEMA = display.FULL_DISPLAY_SCHEMA.extend({
    cv.GenerateID():
    cv.declare_id(ST7789V),
    cv.Required(CONF_RESET_PIN):
    pins.gpio_output_pin_schema,
    cv.Required(CONF_DC_PIN):
    pins.gpio_output_pin_schema,
    cv.Required(CONF_CS_PIN):
    pins.gpio_output_pin_schema,
    cv.Required(CONF_BACKLIGHT_PIN):
    pins.gpio_output_pin_schema,
    cv.Optional(CONF_BRIGHTNESS, default=1.0):
    cv.percentage,
}).extend(cv.polling_component_schema('5s')).extend(spi.spi_device_schema())


def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    yield cg.register_component(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))

    reset = yield cg.gpio_pin_expression(config[CONF_RESET_PIN])
    cg.add(var.set_reset_pin(reset))

    bl = yield cg.gpio_pin_expression(config[CONF_BACKLIGHT_PIN])
    cg.add(var.set_backlight_pin(bl))
Beispiel #3
0
import esphome.codegen as cg
import esphome.config_validation as cv
from esphome.components import spi, pn532
from esphome.const import CONF_ID

AUTO_LOAD = ["pn532"]
CODEOWNERS = ["@OttoWinter", "@jesserockz"]
DEPENDENCIES = ["spi"]
MULTI_CONF = True

pn532_spi_ns = cg.esphome_ns.namespace("pn532_spi")
PN532Spi = pn532_spi_ns.class_("PN532Spi", pn532.PN532, spi.SPIDevice)

CONFIG_SCHEMA = cv.All(
    pn532.PN532_SCHEMA.extend({
        cv.GenerateID(): cv.declare_id(PN532Spi),
    }).extend(spi.spi_device_schema(cs_pin_required=True)))


async def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    await pn532.setup_pn532(var, config)
    await spi.register_spi_device(var, config)
Beispiel #4
0
ST7735 = st7735_ns.class_('ST7735', cg.PollingComponent, spi.SPIDevice)
ST7735Ref = ST7735.operator('ref')

CONFIG_SCHEMA = display.FULL_DISPLAY_SCHEMA.extend({
    cv.GenerateID():
    cv.declare_id(ST7735),
    cv.Required(CONF_RESET_PIN):
    pins.gpio_output_pin_schema,
    cv.Required(CONF_DC_PIN):
    pins.gpio_output_pin_schema,
    cv.Required(CONF_CS_PIN):
    pins.gpio_output_pin_schema,
    cv.Optional(CONF_BRIGHTNESS, default=1.0):
    cv.percentage,
}).extend(cv.polling_component_schema('1s')).extend(
    spi.spi_device_schema(cs_pin_required=True))


def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    yield cg.register_component(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))

    reset = yield cg.gpio_pin_expression(config[CONF_RESET_PIN])
    cg.add(var.set_reset_pin(reset))

    if CONF_LAMBDA in config:
        lambda_ = yield cg.process_lambda(config[CONF_LAMBDA],
Beispiel #5
0
import esphome.codegen as cg
import esphome.config_validation as cv
from esphome.components import sensor, spi
from esphome.const import (
    CONF_ID,
    DEVICE_CLASS_TEMPERATURE,
    STATE_CLASS_MEASUREMENT,
    UNIT_CELSIUS,
)

max6675_ns = cg.esphome_ns.namespace("max6675")
MAX6675Sensor = max6675_ns.class_("MAX6675Sensor", sensor.Sensor,
                                  cg.PollingComponent, spi.SPIDevice)

CONFIG_SCHEMA = (sensor.sensor_schema(
    unit_of_measurement=UNIT_CELSIUS,
    accuracy_decimals=1,
    device_class=DEVICE_CLASS_TEMPERATURE,
    state_class=STATE_CLASS_MEASUREMENT,
).extend({
    cv.GenerateID(): cv.declare_id(MAX6675Sensor),
}).extend(cv.polling_component_schema("60s")).extend(spi.spi_device_schema()))


async def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    await cg.register_component(var, config)
    await spi.register_spi_device(var, config)
    await sensor.register_sensor(var, config)
Beispiel #6
0
    "MAX31855Sensor", sensor.Sensor, cg.PollingComponent, spi.SPIDevice
)

CONFIG_SCHEMA = (
    sensor.sensor_schema(UNIT_CELSIUS, ICON_EMPTY, 1, DEVICE_CLASS_TEMPERATURE)
    .extend(
        {
            cv.GenerateID(): cv.declare_id(MAX31855Sensor),
            cv.Optional(CONF_REFERENCE_TEMPERATURE): sensor.sensor_schema(
                UNIT_CELSIUS,
                ICON_EMPTY,
                2,
                DEVICE_CLASS_TEMPERATURE,
                STATE_CLASS_MEASUREMENT,
            ),
        }
    )
    .extend(cv.polling_component_schema("60s"))
    .extend(spi.spi_device_schema())
)


async def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    await cg.register_component(var, config)
    await spi.register_spi_device(var, config)
    await sensor.register_sensor(var, config)
    if CONF_REFERENCE_TEMPERATURE in config:
        tc_ref = await sensor.new_sensor(config[CONF_REFERENCE_TEMPERATURE])
        cg.add(var.set_reference_sensor(tc_ref))
Beispiel #7
0
CONFIG_SCHEMA = cv.All(
    display.FULL_DISPLAY_SCHEMA.extend({
        cv.GenerateID():
        cv.declare_id(WaveshareEPaper),
        cv.Required(CONF_DC_PIN):
        pins.gpio_output_pin_schema,
        cv.Required(CONF_MODEL):
        cv.one_of(*MODELS, lower=True),
        cv.Optional(CONF_RESET_PIN):
        pins.gpio_output_pin_schema,
        cv.Optional(CONF_BUSY_PIN):
        pins.gpio_input_pin_schema,
        cv.Optional(CONF_FULL_UPDATE_EVERY):
        cv.uint32_t,
    }).extend(cv.polling_component_schema("1s")).extend(
        spi.spi_device_schema()),
    validate_full_update_every_only_type_a,
    cv.has_at_most_one_key(CONF_PAGES, CONF_LAMBDA),
)


async def to_code(config):
    model_type, model = MODELS[config[CONF_MODEL]]
    if model_type == "a":
        rhs = WaveshareEPaperTypeA.new(model)
        var = cg.Pvariable(config[CONF_ID], rhs, WaveshareEPaperTypeA)
    elif model_type in ("b", "c"):
        rhs = model.new()
        var = cg.Pvariable(config[CONF_ID], rhs, model)
    else:
        raise NotImplementedError()
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))
Beispiel #9
0
from esphome import pins
from esphome.components import spi, ssd1351_base
from esphome.const import CONF_DC_PIN, CONF_ID, CONF_LAMBDA, CONF_PAGES

CODEOWNERS = ['@kbx81']

AUTO_LOAD = ['ssd1351_base']
DEPENDENCIES = ['spi']

ssd1351_spi = cg.esphome_ns.namespace('ssd1351_spi')
SPISSD1351 = ssd1351_spi.class_('SPISSD1351', ssd1351_base.SSD1351,
                                spi.SPIDevice)

CONFIG_SCHEMA = cv.All(
    ssd1351_base.SSD1351_SCHEMA.extend({
        cv.GenerateID():
        cv.declare_id(SPISSD1351),
        cv.Required(CONF_DC_PIN):
        pins.gpio_output_pin_schema,
    }).extend(cv.COMPONENT_SCHEMA).extend(spi.spi_device_schema()),
    cv.has_at_most_one_key(CONF_PAGES, CONF_LAMBDA))


def to_code(config):
    var = cg.new_Pvariable(config[CONF_ID])
    yield ssd1351_base.setup_ssd1351(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))
Beispiel #10
0
}

MCP_MODE = {
    "NORMAL": McpMode.CANCTRL_REQOP_NORMAL,
    "LOOPBACK": McpMode.CANCTRL_REQOP_LOOPBACK,
    "LISTENONLY": McpMode.CANCTRL_REQOP_LISTENONLY,
}

CONFIG_SCHEMA = canbus.CANBUS_SCHEMA.extend({
    cv.GenerateID():
    cv.declare_id(mcp2515),
    cv.Optional(CONF_CLOCK, default="8MHZ"):
    cv.enum(CAN_CLOCK, upper=True),
    cv.Optional(CONF_MODE, default="NORMAL"):
    cv.enum(MCP_MODE, upper=True),
}).extend(spi.spi_device_schema(True))


def to_code(config):
    rhs = mcp2515.new()
    var = cg.Pvariable(config[CONF_ID], rhs)
    yield canbus.register_canbus(var, config)
    if CONF_CLOCK in config:
        canclock = CAN_CLOCK[config[CONF_CLOCK]]
        cg.add(var.set_mcp_clock(canclock))
    if CONF_MODE in config:
        mode = MCP_MODE[config[CONF_MODE]]
        cg.add(var.set_mcp_mode(mode))

    yield spi.register_spi_device(var, config)
Beispiel #11
0
CONFIG_SCHEMA = cv.All(
    display.FULL_DISPLAY_SCHEMA.extend({
        cv.GenerateID():
        cv.declare_id(WaveshareEPaper),
        cv.Required(CONF_DC_PIN):
        pins.gpio_output_pin_schema,
        cv.Required(CONF_MODEL):
        cv.one_of(*MODELS, lower=True),
        cv.Optional(CONF_RESET_PIN):
        pins.gpio_output_pin_schema,
        cv.Optional(CONF_BUSY_PIN):
        pins.gpio_input_pin_schema,
        cv.Optional(CONF_FULL_UPDATE_EVERY):
        cv.uint32_t,
    }).extend(cv.polling_component_schema('1s')).extend(
        spi.spi_device_schema()), validate_full_update_every_only_type_a,
    cv.has_at_most_one_key(CONF_PAGES, CONF_LAMBDA))


def to_code(config):
    model_type, model = MODELS[config[CONF_MODEL]]
    if model_type == 'a':
        rhs = WaveshareEPaperTypeA.new(model)
        var = cg.Pvariable(config[CONF_ID], rhs, WaveshareEPaperTypeA)
    elif model_type == 'b':
        rhs = model.new()
        var = cg.Pvariable(config[CONF_ID], rhs, model)
    else:
        raise NotImplementedError()

    yield cg.register_component(var, config)
Beispiel #12
0
ILI9341_MODEL = cv.enum(MODELS, upper=True, space="_")

CONFIG_SCHEMA = cv.All(
    display.FULL_DISPLAY_SCHEMA.extend({
        cv.GenerateID():
        cv.declare_id(ili9341),
        cv.Required(CONF_MODEL):
        ILI9341_MODEL,
        cv.Required(CONF_DC_PIN):
        pins.gpio_output_pin_schema,
        cv.Optional(CONF_RESET_PIN):
        pins.gpio_output_pin_schema,
        cv.Optional(CONF_LED_PIN):
        pins.gpio_output_pin_schema,
    }).extend(cv.polling_component_schema("1s")).extend(
        spi.spi_device_schema(False)),
    cv.has_at_most_one_key(CONF_PAGES, CONF_LAMBDA),
)


async def to_code(config):
    if config[CONF_MODEL] == "M5STACK":
        lcd_type = ILI9341M5Stack
    if config[CONF_MODEL] == "TFT_2.4":
        lcd_type = ILI9341TFT24
    rhs = lcd_type.new()
    var = cg.Pvariable(config[CONF_ID], rhs)

    await cg.register_component(var, config)
    await display.register_display(var, config)
    await spi.register_spi_device(var, config)
Beispiel #13
0
COLOR_PALETTE = cv.one_of("NONE", "GRAYSCALE")

CONFIG_SCHEMA = cv.All(
    display.FULL_DISPLAY_SCHEMA.extend(
        {
            cv.GenerateID(): cv.declare_id(ili9341),
            cv.Required(CONF_MODEL): ILI9341_MODEL,
            cv.Required(CONF_DC_PIN): pins.gpio_output_pin_schema,
            cv.Optional(CONF_RESET_PIN): pins.gpio_output_pin_schema,
            cv.Optional(CONF_LED_PIN): pins.gpio_output_pin_schema,
            cv.Optional(CONF_COLOR_PALETTE, default="NONE"): COLOR_PALETTE,
            cv.GenerateID(CONF_RAW_DATA_ID): cv.declare_id(cg.uint8),
        }
    )
    .extend(cv.polling_component_schema("1s"))
    .extend(spi.spi_device_schema(False)),
    cv.has_at_most_one_key(CONF_PAGES, CONF_LAMBDA),
)


async def to_code(config):
    if config[CONF_MODEL] == "M5STACK":
        lcd_type = ILI9341M5Stack
    if config[CONF_MODEL] == "TFT_2.4":
        lcd_type = ILI9341TFT24
    rhs = lcd_type.new()
    var = cg.Pvariable(config[CONF_ID], rhs)

    await cg.register_component(var, config)
    await display.register_display(var, config)
    await spi.register_spi_device(var, config)