[rf_bridge] Migrate triggers to callback automation (#15231)

This commit is contained in:
J. Nick Koston
2026-03-27 08:24:25 -10:00
committed by GitHub
parent f9d41bd36a
commit 0d67f91fac
2 changed files with 10 additions and 41 deletions
+10 -27
View File
@@ -12,7 +12,6 @@ from esphome.const import (
CONF_PROTOCOL,
CONF_RAW,
CONF_SYNC,
CONF_TRIGGER_ID,
)
DEPENDENCIES = ["uart"]
@@ -26,14 +25,6 @@ RFBridgeComponent = rf_bridge_ns.class_(
RFBridgeData = rf_bridge_ns.struct("RFBridgeData")
RFBridgeAdvancedData = rf_bridge_ns.struct("RFBridgeAdvancedData")
RFBridgeReceivedCodeTrigger = rf_bridge_ns.class_(
"RFBridgeReceivedCodeTrigger", automation.Trigger.template(RFBridgeData)
)
RFBridgeReceivedAdvancedCodeTrigger = rf_bridge_ns.class_(
"RFBridgeReceivedAdvancedCodeTrigger",
automation.Trigger.template(RFBridgeAdvancedData),
)
RFBridgeSendCodeAction = rf_bridge_ns.class_(
"RFBridgeSendCodeAction", automation.Action
)
@@ -65,19 +56,9 @@ CONFIG_SCHEMA = cv.All(
cv.Schema(
{
cv.GenerateID(): cv.declare_id(RFBridgeComponent),
cv.Optional(CONF_ON_CODE_RECEIVED): automation.validate_automation(
{
cv.GenerateID(CONF_TRIGGER_ID): cv.declare_id(
RFBridgeReceivedCodeTrigger
),
}
),
cv.Optional(CONF_ON_CODE_RECEIVED): automation.validate_automation({}),
cv.Optional(CONF_ON_ADVANCED_CODE_RECEIVED): automation.validate_automation(
{
cv.GenerateID(CONF_TRIGGER_ID): cv.declare_id(
RFBridgeReceivedAdvancedCodeTrigger
),
}
{}
),
}
)
@@ -92,13 +73,15 @@ async def to_code(config):
await uart.register_uart_device(var, config)
for conf in config.get(CONF_ON_CODE_RECEIVED, []):
trigger = cg.new_Pvariable(conf[CONF_TRIGGER_ID], var)
await automation.build_automation(trigger, [(RFBridgeData, "data")], conf)
await automation.build_callback_automation(
var, "add_on_code_received_callback", [(RFBridgeData, "data")], conf
)
for conf in config.get(CONF_ON_ADVANCED_CODE_RECEIVED, []):
trigger = cg.new_Pvariable(conf[CONF_TRIGGER_ID], var)
await automation.build_automation(
trigger, [(RFBridgeAdvancedData, "data")], conf
await automation.build_callback_automation(
var,
"add_on_advanced_code_received_callback",
[(RFBridgeAdvancedData, "data")],
conf,
)
-14
View File
@@ -77,20 +77,6 @@ class RFBridgeComponent : public uart::UARTDevice, public Component {
CallbackManager<void(RFBridgeAdvancedData)> advanced_data_callback_;
};
class RFBridgeReceivedCodeTrigger : public Trigger<RFBridgeData> {
public:
explicit RFBridgeReceivedCodeTrigger(RFBridgeComponent *parent) {
parent->add_on_code_received_callback([this](RFBridgeData data) { this->trigger(data); });
}
};
class RFBridgeReceivedAdvancedCodeTrigger : public Trigger<RFBridgeAdvancedData> {
public:
explicit RFBridgeReceivedAdvancedCodeTrigger(RFBridgeComponent *parent) {
parent->add_on_advanced_code_received_callback([this](const RFBridgeAdvancedData &data) { this->trigger(data); });
}
};
template<typename... Ts> class RFBridgeSendCodeAction : public Action<Ts...> {
public:
RFBridgeSendCodeAction(RFBridgeComponent *parent) : parent_(parent) {}