mirror of
https://github.com/esphome/esphome.git
synced 2026-09-29 07:50:21 +00:00
[senseair] Use register_apply_action for the five senseair actions (#19643)
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "esphome/core/component.h"
|
||||
#include "esphome/core/automation.h"
|
||||
#include "esphome/components/sensor/sensor.h"
|
||||
#include "esphome/components/uart/uart.h"
|
||||
|
||||
@@ -37,54 +36,4 @@ class SenseAirComponent final : public PollingComponent, public uart::UARTDevice
|
||||
sensor::Sensor *co2_sensor_{nullptr};
|
||||
};
|
||||
|
||||
template<typename... Ts> class SenseAirBackgroundCalibrationAction final : public Action<Ts...> {
|
||||
public:
|
||||
SenseAirBackgroundCalibrationAction(SenseAirComponent *senseair) : senseair_(senseair) {}
|
||||
|
||||
void play(const Ts &...x) override { this->senseair_->background_calibration(); }
|
||||
|
||||
protected:
|
||||
SenseAirComponent *senseair_;
|
||||
};
|
||||
|
||||
template<typename... Ts> class SenseAirBackgroundCalibrationResultAction final : public Action<Ts...> {
|
||||
public:
|
||||
SenseAirBackgroundCalibrationResultAction(SenseAirComponent *senseair) : senseair_(senseair) {}
|
||||
|
||||
void play(const Ts &...x) override { this->senseair_->background_calibration_result(); }
|
||||
|
||||
protected:
|
||||
SenseAirComponent *senseair_;
|
||||
};
|
||||
|
||||
template<typename... Ts> class SenseAirABCEnableAction final : public Action<Ts...> {
|
||||
public:
|
||||
SenseAirABCEnableAction(SenseAirComponent *senseair) : senseair_(senseair) {}
|
||||
|
||||
void play(const Ts &...x) override { this->senseair_->abc_enable(); }
|
||||
|
||||
protected:
|
||||
SenseAirComponent *senseair_;
|
||||
};
|
||||
|
||||
template<typename... Ts> class SenseAirABCDisableAction final : public Action<Ts...> {
|
||||
public:
|
||||
SenseAirABCDisableAction(SenseAirComponent *senseair) : senseair_(senseair) {}
|
||||
|
||||
void play(const Ts &...x) override { this->senseair_->abc_disable(); }
|
||||
|
||||
protected:
|
||||
SenseAirComponent *senseair_;
|
||||
};
|
||||
|
||||
template<typename... Ts> class SenseAirABCGetPeriodAction final : public Action<Ts...> {
|
||||
public:
|
||||
SenseAirABCGetPeriodAction(SenseAirComponent *senseair) : senseair_(senseair) {}
|
||||
|
||||
void play(const Ts &...x) override { this->senseair_->abc_get_period(); }
|
||||
|
||||
protected:
|
||||
SenseAirComponent *senseair_;
|
||||
};
|
||||
|
||||
} // namespace esphome::senseair
|
||||
|
||||
@@ -19,21 +19,6 @@ senseair_ns = cg.esphome_ns.namespace("senseair")
|
||||
SenseAirComponent = senseair_ns.class_(
|
||||
"SenseAirComponent", cg.PollingComponent, uart.UARTDevice
|
||||
)
|
||||
SenseAirBackgroundCalibrationAction = senseair_ns.class_(
|
||||
"SenseAirBackgroundCalibrationAction", automation.Action
|
||||
)
|
||||
SenseAirBackgroundCalibrationResultAction = senseair_ns.class_(
|
||||
"SenseAirBackgroundCalibrationResultAction", automation.Action
|
||||
)
|
||||
SenseAirABCEnableAction = senseair_ns.class_(
|
||||
"SenseAirABCEnableAction", automation.Action
|
||||
)
|
||||
SenseAirABCDisableAction = senseair_ns.class_(
|
||||
"SenseAirABCDisableAction", automation.Action
|
||||
)
|
||||
SenseAirABCGetPeriodAction = senseair_ns.class_(
|
||||
"SenseAirABCGetPeriodAction", automation.Action
|
||||
)
|
||||
|
||||
CONFIG_SCHEMA = (
|
||||
cv.Schema(
|
||||
@@ -80,41 +65,13 @@ CALIBRATION_ACTION_SCHEMA = maybe_simple_id(
|
||||
)
|
||||
|
||||
|
||||
automation.register_simple_action(
|
||||
"senseair.background_calibration",
|
||||
SenseAirBackgroundCalibrationAction,
|
||||
CALIBRATION_ACTION_SCHEMA,
|
||||
synchronous=True,
|
||||
)
|
||||
|
||||
|
||||
automation.register_simple_action(
|
||||
"senseair.background_calibration_result",
|
||||
SenseAirBackgroundCalibrationResultAction,
|
||||
CALIBRATION_ACTION_SCHEMA,
|
||||
synchronous=True,
|
||||
)
|
||||
|
||||
|
||||
automation.register_simple_action(
|
||||
"senseair.abc_enable",
|
||||
SenseAirABCEnableAction,
|
||||
CALIBRATION_ACTION_SCHEMA,
|
||||
synchronous=True,
|
||||
)
|
||||
|
||||
|
||||
automation.register_simple_action(
|
||||
"senseair.abc_disable",
|
||||
SenseAirABCDisableAction,
|
||||
CALIBRATION_ACTION_SCHEMA,
|
||||
synchronous=True,
|
||||
)
|
||||
|
||||
|
||||
automation.register_simple_action(
|
||||
"senseair.abc_get_period",
|
||||
SenseAirABCGetPeriodAction,
|
||||
CALIBRATION_ACTION_SCHEMA,
|
||||
synchronous=True,
|
||||
)
|
||||
for _name, _call in (
|
||||
("senseair.background_calibration", "background_calibration()"),
|
||||
("senseair.background_calibration_result", "background_calibration_result()"),
|
||||
("senseair.abc_enable", "abc_enable()"),
|
||||
("senseair.abc_disable", "abc_disable()"),
|
||||
("senseair.abc_get_period", "abc_get_period()"),
|
||||
):
|
||||
automation.register_apply_action(
|
||||
_name, CALIBRATION_ACTION_SCHEMA, automation.ApplyCall(_call)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user