From c6bfa40a106da3dc561f9c1422b43680da5db741 Mon Sep 17 00:00:00 2001 From: mvturnho Date: Sat, 30 Mar 2019 10:22:42 +0100 Subject: [PATCH] add ttp229_besf support --- .../components/binary_sensor/ttp229_bsf.py | 25 +++++++++++++ esphome/components/ttp229_bsf.py | 35 +++++++++++++++++++ esphome/const.py | 2 +- 3 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 esphome/components/binary_sensor/ttp229_bsf.py create mode 100644 esphome/components/ttp229_bsf.py diff --git a/esphome/components/binary_sensor/ttp229_bsf.py b/esphome/components/binary_sensor/ttp229_bsf.py new file mode 100644 index 0000000000..9340309b0e --- /dev/null +++ b/esphome/components/binary_sensor/ttp229_bsf.py @@ -0,0 +1,25 @@ +import voluptuous as vol + +from esphome.components import binary_sensor +from esphome.components.ttp229_bsf import TTP229BSFComponent, CONF_TTP229_BSF_ID +import esphome.config_validation as cv +from esphome.const import CONF_CHANNEL, CONF_NAME +from esphome.cpp_generator import get_variable + +DEPENDENCIES = ['ttp229_bsf'] + +TTP229Channel = binary_sensor.binary_sensor_ns.class_( + 'TTP229Channel', binary_sensor.BinarySensor) + +PLATFORM_SCHEMA = cv.nameable(binary_sensor.BINARY_SENSOR_PLATFORM_SCHEMA.extend({ + cv.GenerateID(): cv.declare_variable_id(TTP229Channel), + cv.GenerateID(CONF_TTP229_BSF_ID): cv.use_variable_id(TTP229BSFComponent), + vol.Required(CONF_CHANNEL): vol.All(vol.Coerce(int), vol.Range(min=0, max=15)) +})) + + +def to_code(config): + for hub in get_variable(config[CONF_TTP229_BSF_ID]): + yield + rhs = TTP229Channel.new(config[CONF_NAME], config[CONF_CHANNEL]) + binary_sensor.register_binary_sensor(hub.add_channel(rhs), config) \ No newline at end of file diff --git a/esphome/components/ttp229_bsf.py b/esphome/components/ttp229_bsf.py new file mode 100644 index 0000000000..3e6987f1b0 --- /dev/null +++ b/esphome/components/ttp229_bsf.py @@ -0,0 +1,35 @@ +import voluptuous as vol + +from esphome.components import binary_sensor +import esphome.config_validation as cv +from esphome.const import CONF_ID, CONF_SCL, CONF_SDO +from esphome.cpp_generator import Pvariable +from esphome.cpp_helpers import setup_component +from esphome.cpp_types import App, Component +from esphome.cpp_helpers import gpio_output_pin_expression +from esphome.pins import gpio_input_pullup_pin_schema + +MULTI_CONF = True + +CONF_TTP229_BSF_ID = 'ttp229_bsf_id' +TTP229BSFComponent = binary_sensor.binary_sensor_ns.class_('TTP229BSFComponent', Component) + +CONFIG_SCHEMA = cv.Schema({ + cv.GenerateID(): cv.declare_variable_id(TTP229BSFComponent), + vol.Required(CONF_SDO): gpio_input_pullup_pin_schema, + vol.Required(CONF_SCL): gpio_input_pullup_pin_schema, +}).extend(cv.COMPONENT_SCHEMA.schema) + + +def to_code(config): + for sdo_pin in gpio_output_pin_expression(config[CONF_SDO]): + yield + for scl_pin in gpio_output_pin_expression(config[CONF_SCL]): + yield + rhs = App.make_ttp229_bsf(sdo_pin, scl_pin) + var = Pvariable(config[CONF_ID], rhs) + + setup_component(var, config) + + +BUILD_FLAGS = '-DUSE_TTP229_BSF' \ No newline at end of file diff --git a/esphome/const.py b/esphome/const.py index afa7d06418..bebfc30f81 100644 --- a/esphome/const.py +++ b/esphome/const.py @@ -59,7 +59,7 @@ CONF_INVERTED = 'inverted' CONF_I2C = 'i2c' CONF_SDA = 'sda' CONF_SCL = 'scl' -COND_SDO = 'sdo' +CONF_SDO = 'sdo' CONF_FREQUENCY = 'frequency' CONF_PCA9685 = 'pca9685' CONF_PCA9685_ID = 'pca9685_id'