From cb9f36a15373466e59e97ebeec64e19cd5f50fd5 Mon Sep 17 00:00:00 2001 From: Michiel van Turnhout Date: Sun, 31 Mar 2019 19:00:39 +0200 Subject: [PATCH] TTP229-LSF i2c device support (#489) * setting up non i2c ttp229 * add component * fixed const and multiconf * fixed issues with i2c address (it is fixed for this device renamed component and platform to ttp229_lsf => i2c device. There is another ttp229_bsf device that uses a proprietary bus protocol * max channels is 0 to 15 * folow up on code review * fixed Component ttf229_lsf --- .../components/binary_sensor/ttp229_lsf.py | 24 ++++++++++++++++++ esphome/components/ttp229_lsf.py | 25 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 esphome/components/binary_sensor/ttp229_lsf.py create mode 100644 esphome/components/ttp229_lsf.py diff --git a/esphome/components/binary_sensor/ttp229_lsf.py b/esphome/components/binary_sensor/ttp229_lsf.py new file mode 100644 index 0000000000..76ea5091ed --- /dev/null +++ b/esphome/components/binary_sensor/ttp229_lsf.py @@ -0,0 +1,24 @@ +import voluptuous as vol + +from esphome.components import binary_sensor +from esphome.components.ttp229_lsf import TTP229LSFComponent, CONF_TTP229_ID +import esphome.config_validation as cv +from esphome.const import CONF_CHANNEL, CONF_NAME +from esphome.cpp_generator import get_variable + +DEPENDENCIES = ['ttp229_lsf'] +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_ID): cv.use_variable_id(TTP229LSFComponent), + 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_ID]): + yield + rhs = TTP229Channel.new(config[CONF_NAME], config[CONF_CHANNEL]) + binary_sensor.register_binary_sensor(hub.add_channel(rhs), config) diff --git a/esphome/components/ttp229_lsf.py b/esphome/components/ttp229_lsf.py new file mode 100644 index 0000000000..e945066a59 --- /dev/null +++ b/esphome/components/ttp229_lsf.py @@ -0,0 +1,25 @@ +from esphome.components import binary_sensor +import esphome.config_validation as cv +from esphome.const import CONF_ID +from esphome.cpp_generator import Pvariable +from esphome.cpp_helpers import setup_component +from esphome.cpp_types import App, Component + +DEPENDENCIES = ['i2c'] + +CONF_TTP229_ID = 'ttp229_id' +TTP229LSFComponent = binary_sensor.binary_sensor_ns.class_('TTP229LSFComponent', Component) + +CONFIG_SCHEMA = cv.Schema({ + cv.GenerateID(): cv.declare_variable_id(TTP229LSFComponent), +}).extend(cv.COMPONENT_SCHEMA.schema) + + +def to_code(config): + rhs = App.make_ttp229_lsf() + var = Pvariable(config[CONF_ID], rhs) + + setup_component(var, config) + + +BUILD_FLAGS = '-DUSE_TTP229_LSF'