From 3769567ebf6eedf351881fadfc72efb7c04a9615 Mon Sep 17 00:00:00 2001 From: pi4homez Date: Sun, 31 Mar 2019 20:46:17 +0200 Subject: [PATCH] ppd42x PIN added --- esphome/components/sensor/ppd42x.py | 25 ++++++++++++------------- tests/test1.yaml | 8 +++++--- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/esphome/components/sensor/ppd42x.py b/esphome/components/sensor/ppd42x.py index 410ceef1c8..cf9ddbc10e 100644 --- a/esphome/components/sensor/ppd42x.py +++ b/esphome/components/sensor/ppd42x.py @@ -4,7 +4,7 @@ from esphome import pins from esphome.components import sensor import esphome.config_validation as cv from esphome.const import CONF_ID, CONF_PM_10_0, CONF_PM_2_5, CONF_NAME, \ - CONF_UPDATE_INTERVAL, CONF_TIMEOUT + CONF_UPDATE_INTERVAL, CONF_TIMEOUT, CONF_PIN from esphome.cpp_generator import Pvariable, add from esphome.cpp_helpers import gpio_input_pin_expression, \ setup_component @@ -25,24 +25,23 @@ PLATFORM_SCHEMA = sensor.PLATFORM_SCHEMA.extend({ def to_code(config): - for pm_10_0 in gpio_input_pin_expression(config[CONF_PM_10_0]): - yield - for pm_02_5 in gpio_input_pin_expression(config[CONF_PM_2_5]): - yield - rhs = App.make_ppd42x_sensor(config[CONF_NAME], pm_10_0, pm_02_5, - config.get(CONF_UPDATE_INTERVAL)) - ppd42x = Pvariable(config[CONF_ID], rhs) - if CONF_TIMEOUT in config: add(ppd42x.set_timeout_us(config[CONF_TIMEOUT])) if CONF_PM_2_5 in config: - conf = config[CONF_PM_2_5] - sensor.register_sensor(ppd42x.make_pm_02_5_sensor(conf[CONF_NAME]), conf) + conf_02_5 = config[CONF_PM_2_5] + for auto pm_02_5 in gpio_input_pin_expression(conf_02_5[CONF_PIN]): + yield + sensor.register_sensor(ppd42x.make_pm_02_5_sensor(conf_02_5[CONF_NAME]), conf_02_5) if CONF_PM_10_0 in config: - conf = config[CONF_PM_10_0] - sensor.register_sensor(ppd42x.make_pm_10_0_sensor(conf[CONF_NAME]), conf) + conf_10_0 = config[CONF_PM_10_0] + for auto pm_10_0 in gpio_input_pin_expression(conf_10_0[CONF_PIN]): + yield + sensor.register_sensor(ppd42x.make_pm_10_0_sensor(conf_10_0[CONF_NAME]), conf_10_0) + rhs = App.make_ppd42x_sensor(config[CONF_NAME], pm_10_0, pm_02_5, + config.get(CONF_UPDATE_INTERVAL)) + ppd42x = Pvariable(config[CONF_ID], rhs) sensor.setup_sensor(ppd42x, config) setup_component(ppd42x, config) diff --git a/tests/test1.yaml b/tests/test1.yaml index 63af77f02c..ea863d73f1 100644 --- a/tests/test1.yaml +++ b/tests/test1.yaml @@ -503,12 +503,14 @@ sensor: rx_only: false - platform: ppd42x - timeout: 30000 # mandatory pm_2_5: - name: "SDS011 PM2.5" + pin: GPIO32 + name: "ppd42 PM2.5" pm_10_0: - name: "SDS011 PM10.0" + pin: GPIO35 + name: "ppd42 PM10.0" update_interval: 5min + timeout: 30000us # default value