ESPHome 2026.11.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_INFRARED
11#endif
12
13#ifdef USE_RADIO_FREQUENCY
15#endif
16
17namespace esphome::ir_rf_proxy {
18
19#ifdef USE_INFRARED
21class IrRfProxy final : public infrared::Infrared {
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 // RF frequency in kHz (Hz / 1000); 0 = infrared, non-zero = RF
40};
41#endif // USE_INFRARED
42
43#ifdef USE_RADIO_FREQUENCY
49 public:
50 RfProxy() = default;
51
52 void setup() override;
53 void dump_config() override;
54
56 void set_frequency_hz(uint32_t freq_hz) { this->traits_.set_fixed_frequency_hz(freq_hz); }
57
58 protected:
60};
61#endif // USE_RADIO_FREQUENCY
62
63} // namespace esphome::ir_rf_proxy
Infrared - Base class for infrared remote control implementations.
Definition infrared.h:44
InfraredTraits & get_traits()
Get the traits for this infrared implementation.
Definition infrared.h:51
void set_receiver_frequency_hz(uint32_t freq)
Definition infrared.h:37
IrRfProxy - Infrared platform implementation using remote_transmitter/receiver as backend.
Definition ir_rf_proxy.h:21
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:48
bool control(const radio_frequency::RadioFrequencyCall &call) override
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:56
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