1
0
mirror of https://github.com/esphome/esphome.git synced 2025-03-13 22:28:14 +00:00

Refactore ppd42x.py

This commit is contained in:
pi4homez 2019-04-06 17:27:52 +02:00
parent 422daeb0ab
commit 3f867afbc7

View File

@ -35,21 +35,11 @@ def validate_PPD42X_sensors(value):
return value
PPD42X_SENSOR_SCHEMA = sensor.SENSOR_SCHEMA.extend({
cv.GenerateID(): cv.declare_variable_id(PPD42XSensor),
vol.Required(CONF_NAME): cv.string,
vol.Required(CONF_PIN): pins.gpio_input_pin_schema,
})
PLATFORM_SCHEMA = cv.nameable(sensor.PLATFORM_SCHEMA.extend({
cv.GenerateID(): cv.declare_variable_id(PPD42XComponent),
vol.Required(CONF_TYPE): cv.one_of(*PPD42X_TYPES, upper=True),
vol.Optional(CONF_PM_2_5): sensor.SENSOR_SCHEMA.extend({
cv.GenerateID(): cv.declare_variable_id(PPD42XSensor),
vol.Required(CONF_NAME): cv.string,
vol.Required(CONF_PIN): pins.gpio_input_pin_schema,
}),
vol.Optional(CONF_PM_10_0): cv.nameable(PPD42X_SENSOR_SCHEMA),
vol.Optional(CONF_PM_2_5): pins.gpio_input_pin_schema,
vol.Optional(CONF_PM_10_0): pins.gpio_input_pin_schema,
vol.Optional(CONF_UPDATE_INTERVAL): cv.update_interval,
vol.Optional(CONF_TIMEOUT): cv.positive_time_period_microseconds,
}).extend(cv.COMPONENT_SCHEMA.schema), cv.has_at_least_one_key(*SENSORS_TO_TYPE))
@ -59,13 +49,11 @@ def to_code(config):
rhs = App.make_ppd42x(PPD42X_TYPES[config[CONF_TYPE]])
ppd = Pvariable(config[CONF_ID], rhs)
if CONF_PM_2_5 in config:
conf_02_5 = config[CONF_PM_2_5]
for pm_02_5 in get_variable(conf_02_5.get(CONF_PIN)):
for pm_02_5 in get_variable(config.get(CONF_PIN)):
yield
sensor.register_sensor(ppd.make_pm_02_5_sensor(conf_02_5[CONF_NAME]), pm_02_5)
if CONF_PM_10_0 in config:
conf_10_0 = config[CONF_PM_10_0]
for pm_10_0 in get_variable(conf_10_0[CONF_PIN]):
for pm_10_0 in get_variable(config.get(CONF_PIN):
yield
sensor.register_sensor(ppd.make_pm_10_0_sensor(conf_10_0[CONF_NAME]), pm_10_0)
setup_component(ppd, config)