ESPHome 2026.10.0
Loading...
Searching...
No Matches
infrared.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
9namespace esphome::infrared {
10
13
14class Infrared;
15
17class InfraredCall : public ir_rf_base::IrRfCall<InfraredCall, Infrared> {
18 public:
19 explicit InfraredCall(Infrared *parent) : IrRfCall(parent) {}
20
27 const optional<uint32_t> &get_carrier_frequency() const { return this->carrier_frequency_; }
28
29 protected:
30 optional<uint32_t> carrier_frequency_;
31};
32
35 public:
38
39 protected:
40 uint32_t receiver_frequency_hz_{0}; // Demodulation frequency of the IR receiver in Hz (0 = unspecified)
41};
42
45 public:
46 Infrared() = default;
47
48 void dump_config() override;
49
51 InfraredTraits &get_traits() { return this->traits_; }
52 const InfraredTraits &get_traits() const { return this->traits_; }
53
56
57 protected:
59
60 void on_call_(const InfraredCall &) {}
64 virtual bool control(const InfraredCall &call) {
65 return this->transmit_raw_(call, call.get_carrier_frequency().value_or(0));
66 }
67
68 // Traits describing capabilities
70};
71
72} // namespace esphome::infrared
uint16_le_t frequency
Definition bl0942.h:6
InfraredCall - Builder pattern for transmitting infrared signals.
Definition infrared.h:17
InfraredCall & set_carrier_frequency(uint32_t frequency)
Set the carrier frequency in Hz.
Definition infrared.h:22
const optional< uint32_t > & get_carrier_frequency() const
Get the carrier frequency.
Definition infrared.h:27
optional< uint32_t > carrier_frequency_
Definition infrared.h:30
InfraredCall(Infrared *parent)
Definition infrared.h:19
Infrared - Base class for infrared remote control implementations.
Definition infrared.h:44
void dump_config() override
Definition infrared.cpp:9
InfraredCall make_call()
Create a call object for transmitting.
Definition infrared.h:55
void on_call_(const InfraredCall &)
Definition infrared.h:60
InfraredTraits traits_
Definition infrared.h:69
const InfraredTraits & get_traits() const
Definition infrared.h:52
virtual bool control(const InfraredCall &call)
Perform the actual transmission (called by InfraredCall); false only when no frame was handed to the ...
Definition infrared.h:64
InfraredTraits & get_traits()
Get the traits for this infrared implementation.
Definition infrared.h:51
InfraredTraits - Describes the capabilities of an infrared implementation.
Definition infrared.h:34
uint32_t get_receiver_frequency_hz() const
Definition infrared.h:36
void set_receiver_frequency_hz(uint32_t freq)
Definition infrared.h:37
Builder for a transmit; Call is the concrete call type and Entity its entity, so the fluent setters r...
Definition ir_rf_base.h:187
Everything an infrared or radio frequency entity does that does not depend on the medium: the remote_...
Definition ir_rf_base.h:76
bool transmit_raw_(const IrRfCallData &call, uint32_t carrier_frequency_hz)
Hands the call's timings to the transmitter; the default transmit path of both entity types.
static void uint32_t