[senseair] Use register_apply_action for the five senseair actions (#19643)

This commit is contained in:
J. Nick Koston
2026-09-25 14:09:37 -04:00
committed by GitHub
parent 2157ff5b4b
commit 262ade0598
2 changed files with 10 additions and 104 deletions
-51
View File
@@ -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
+10 -53
View File
@@ -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)
)