mirror of
https://github.com/esphome/esphome.git
synced 2025-09-15 01:32:19 +01:00
committed by
Brandon Davidson
parent
c5db457700
commit
0fc267dfc7
@@ -61,6 +61,7 @@ SensorPublishAction = sensor_ns.class_('SensorPublishAction', automation.Action)
|
||||
|
||||
# Filters
|
||||
Filter = sensor_ns.class_('Filter')
|
||||
MedianFilter = sensor_ns.class_('MedianFilter', Filter)
|
||||
SlidingWindowMovingAverageFilter = sensor_ns.class_('SlidingWindowMovingAverageFilter', Filter)
|
||||
ExponentialMovingAverageFilter = sensor_ns.class_('ExponentialMovingAverageFilter', Filter)
|
||||
LambdaFilter = sensor_ns.class_('LambdaFilter', Filter)
|
||||
@@ -127,6 +128,19 @@ def filter_out_filter_to_code(config, filter_id):
|
||||
yield cg.new_Pvariable(filter_id, config)
|
||||
|
||||
|
||||
MEDIAN_SCHEMA = cv.All(cv.Schema({
|
||||
cv.Optional(CONF_WINDOW_SIZE, default=5): cv.positive_not_null_int,
|
||||
cv.Optional(CONF_SEND_EVERY, default=5): cv.positive_not_null_int,
|
||||
cv.Optional(CONF_SEND_FIRST_AT, default=1): cv.positive_not_null_int,
|
||||
}), validate_send_first_at)
|
||||
|
||||
|
||||
@FILTER_REGISTRY.register('median', MedianFilter, MEDIAN_SCHEMA)
|
||||
def median_filter_to_code(config, filter_id):
|
||||
yield cg.new_Pvariable(filter_id, config[CONF_WINDOW_SIZE], config[CONF_SEND_EVERY],
|
||||
config[CONF_SEND_FIRST_AT])
|
||||
|
||||
|
||||
SLIDING_AVERAGE_SCHEMA = cv.All(cv.Schema({
|
||||
cv.Optional(CONF_WINDOW_SIZE, default=15): cv.positive_not_null_int,
|
||||
cv.Optional(CONF_SEND_EVERY, default=15): cv.positive_not_null_int,
|
||||
|
Reference in New Issue
Block a user