ESPHome 2026.6.0-dev
Loading...
Searching...
No Matches
ir_rf_proxy.h
Go to the documentation of this file.
1#pragma once
2
3// WARNING: This component is EXPERIMENTAL. The API may change at any time
4// without following the normal breaking changes policy. Use at your own risk.
5// Once the API is considered stable, this warning will be removed.
6
8
9#ifdef USE_IR_RF
11#endif
12
13#ifdef USE_RADIO_FREQUENCY
15#endif
16
17namespace esphome::ir_rf_proxy {
18
19#ifdef USE_IR_RF
22 public:
23 IrRfProxy() = default;
24
25 void dump_config() override;
26
28 void set_frequency(uint32_t frequency_khz) { this->frequency_khz_ = frequency_khz; }
30 uint32_t get_frequency() const { return this->frequency_khz_; }
32 bool is_rf() const { return this->frequency_khz_ > 0; }
33
35 void set_receiver_frequency(uint32_t frequency_hz) { this->get_traits().set_receiver_frequency_hz(frequency_hz); }
36
37 protected:
38 void control(const infrared::InfraredCall &call) override;
39
40 // RF frequency in kHz (Hz / 1000); 0 = infrared, non-zero = RF
42};
43#endif // USE_IR_RF
44
45#ifdef USE_RADIO_FREQUENCY
51 public:
52 RfProxy() = default;
53
54 void setup() override;
55 void dump_config() override;
56
58 void set_transmitter(remote_base::RemoteTransmitterBase *transmitter) { this->transmitter_ = transmitter; }
60 void set_receiver(remote_base::RemoteReceiverBase *receiver) { this->receiver_ = receiver; }
61
63 void set_frequency_hz(uint32_t freq_hz) { this->traits_.set_fixed_frequency_hz(freq_hz); }
64
65 protected:
67
70};
71#endif // USE_RADIO_FREQUENCY
72
73} // namespace esphome::ir_rf_proxy
InfraredCall - Builder pattern for transmitting infrared signals.
Definition infrared.h:25
Infrared - Base class for infrared remote control implementations.
Definition infrared.h:114
InfraredTraits & get_traits()
Get the traits for this infrared implementation.
Definition infrared.h:133
void set_receiver_frequency_hz(uint32_t freq)
Definition infrared.h:105
IrRfProxy - Infrared platform implementation using remote_transmitter/receiver as backend.
Definition ir_rf_proxy.h:21
void control(const infrared::InfraredCall &call) override
void set_frequency(uint32_t frequency_khz)
Set RF frequency in kHz (0 = infrared, non-zero = RF)
Definition ir_rf_proxy.h:28
uint32_t get_frequency() const
Get RF frequency in kHz.
Definition ir_rf_proxy.h:30
void set_receiver_frequency(uint32_t frequency_hz)
Set the receiver's hardware demodulation frequency in Hz (metadata only, does not affect hardware)
Definition ir_rf_proxy.h:35
bool is_rf() const
Check if this is RF mode (non-zero frequency)
Definition ir_rf_proxy.h:32
RfProxy - Radio Frequency platform implementation using remote_transmitter/receiver as backend.
Definition ir_rf_proxy.h:50
remote_base::RemoteTransmitterBase * transmitter_
Definition ir_rf_proxy.h:68
void set_transmitter(remote_base::RemoteTransmitterBase *transmitter)
Set the remote transmitter component.
Definition ir_rf_proxy.h:58
void set_frequency_hz(uint32_t freq_hz)
Set the fixed carrier frequency in Hz (metadata: advertised via traits, does not tune hardware)
Definition ir_rf_proxy.h:63
void set_receiver(remote_base::RemoteReceiverBase *receiver)
Set the remote receiver component.
Definition ir_rf_proxy.h:60
void control(const radio_frequency::RadioFrequencyCall &call) override
remote_base::RemoteReceiverBase * receiver_
Definition ir_rf_proxy.h:69
RadioFrequencyCall - Builder pattern for transmitting radio frequency signals.
RadioFrequency - Base class for radio frequency implementations.
void set_fixed_frequency_hz(uint32_t freq)
Convenience setter for fixed-frequency hardware (sets min == max).
static void uint32_t