ESPHome  2024.11.0
Public Member Functions | Data Fields
esphome::emc2101::Emc2101Component Class Reference

This class includes support for the EMC2101 i2c fan controller. More...

#include <emc2101.h>

Inheritance diagram for esphome::emc2101::Emc2101Component:
esphome::Component esphome::i2c::I2CDevice

Public Member Functions

void set_dac_mode (bool dac_mode)
 Sets the mode of the output. More...
 
void set_pwm_resolution (uint8_t resolution)
 Sets the PWM resolution. More...
 
void set_pwm_divider (uint8_t divider)
 Sets the PWM divider used to derive the PWM frequency. More...
 
void set_dac_conversion_rate (Emc2101DACConversionRate conversion_rate)
 Sets the DAC conversion rate (how many conversions per second). More...
 
void set_inverted (bool inverted)
 Inverts the polarity of the Fan output. More...
 
void set_duty_cycle (float value)
 Sets the Fan output duty cycle. More...
 
float get_duty_cycle ()
 Gets the Fan output duty cycle. More...
 
float get_internal_temperature ()
 Gets the internal temperature sensor reading. More...
 
float get_external_temperature ()
 Gets the external temperature sensor reading. More...
 
float get_speed ()
 Gets the tachometer speed sensor reading. More...
 
void setup () override
 Used by ESPHome framework. More...
 
void dump_config () override
 Used by ESPHome framework. More...
 
float get_setup_priority () const override
 Used by ESPHome framework. More...
 
- Public Member Functions inherited from esphome::Component
virtual void loop ()
 This method will be called repeatedly. More...
 
float get_actual_setup_priority () const
 
void set_setup_priority (float priority)
 
virtual float get_loop_priority () const
 priority of loop(). More...
 
void call ()
 
virtual void on_shutdown ()
 
virtual void on_safe_shutdown ()
 
uint32_t get_component_state () const
 
virtual void mark_failed ()
 Mark this component as failed. More...
 
bool is_failed () const
 
bool is_ready () const
 
virtual bool can_proceed ()
 
bool status_has_warning () const
 
bool status_has_error () const
 
void status_set_warning (const char *message="unspecified")
 
void status_set_error (const char *message="unspecified")
 
void status_clear_warning ()
 
void status_clear_error ()
 
void status_momentary_warning (const std::string &name, uint32_t length=5000)
 
void status_momentary_error (const std::string &name, uint32_t length=5000)
 
bool has_overridden_loop () const
 
void set_component_source (const char *source)
 Set where this component was loaded from for some debug messages. More...
 
const char * get_component_source () const
 Get the integration where this component was declared as a string. More...
 
- Public Member Functions inherited from esphome::i2c::I2CDevice
 I2CDevice ()=default
 we use the C++ default constructor More...
 
void set_i2c_address (uint8_t address)
 We store the address of the device on the bus. More...
 
void set_i2c_bus (I2CBus *bus)
 we store the pointer to the I2CBus to use More...
 
I2CRegister reg (uint8_t a_register)
 calls the I2CRegister constructor More...
 
I2CRegister16 reg16 (uint16_t a_register)
 calls the I2CRegister16 constructor More...
 
ErrorCode read (uint8_t *data, size_t len)
 reads an array of bytes from the device using an I2CBus More...
 
ErrorCode read_register (uint8_t a_register, uint8_t *data, size_t len, bool stop=true)
 reads an array of bytes from a specific register in the I²C device More...
 
ErrorCode read_register16 (uint16_t a_register, uint8_t *data, size_t len, bool stop=true)
 reads an array of bytes from a specific register in the I²C device More...
 
ErrorCode write (const uint8_t *data, size_t len, bool stop=true)
 writes an array of bytes to a device using an I2CBus More...
 
ErrorCode write_register (uint8_t a_register, const uint8_t *data, size_t len, bool stop=true)
 writes an array of bytes to a specific register in the I²C device More...
 
ErrorCode write_register16 (uint16_t a_register, const uint8_t *data, size_t len, bool stop=true)
 write an array of bytes to a specific register in the I²C device More...
 
bool read_bytes (uint8_t a_register, uint8_t *data, uint8_t len)
 Compat APIs All methods below have been added for compatibility reasons. More...
 
bool read_bytes_raw (uint8_t *data, uint8_t len)
 
template<size_t N>
optional< std::array< uint8_t, N > > read_bytes (uint8_t a_register)
 
template<size_t N>
optional< std::array< uint8_t, N > > read_bytes_raw ()
 
bool read_bytes_16 (uint8_t a_register, uint16_t *data, uint8_t len)
 
bool read_byte (uint8_t a_register, uint8_t *data, bool stop=true)
 
optional< uint8_t > read_byte (uint8_t a_register)
 
bool read_byte_16 (uint8_t a_register, uint16_t *data)
 
bool write_bytes (uint8_t a_register, const uint8_t *data, uint8_t len, bool stop=true)
 
bool write_bytes (uint8_t a_register, const std::vector< uint8_t > &data)
 
template<size_t N>
bool write_bytes (uint8_t a_register, const std::array< uint8_t, N > &data)
 
bool write_bytes_16 (uint8_t a_register, const uint16_t *data, uint8_t len)
 
bool write_byte (uint8_t a_register, uint8_t data, bool stop=true)
 
bool write_byte_16 (uint8_t a_register, uint16_t data)
 

Data Fields

bool dac_mode_ {false}
 
bool inverted_ {false}
 
uint8_t max_output_value_
 
uint8_t pwm_resolution_
 
uint8_t pwm_divider_
 
Emc2101DACConversionRate dac_conversion_rate_
 

Additional Inherited Members

- Protected Member Functions inherited from esphome::Component
virtual void call_loop ()
 
virtual void call_setup ()
 
virtual void call_dump_config ()
 
void set_interval (const std::string &name, uint32_t interval, std::function< void()> &&f)
 Set an interval function with a unique name. More...
 
void set_interval (uint32_t interval, std::function< void()> &&f)
 
bool cancel_interval (const std::string &name)
 Cancel an interval function. More...
 
void set_retry (const std::string &name, uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f)
 Set an retry function with a unique name. More...
 
void set_retry (uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f)
 
bool cancel_retry (const std::string &name)
 Cancel a retry function. More...
 
void set_timeout (const std::string &name, uint32_t timeout, std::function< void()> &&f)
 Set a timeout function with a unique name. More...
 
void set_timeout (uint32_t timeout, std::function< void()> &&f)
 
bool cancel_timeout (const std::string &name)
 Cancel a timeout function. More...
 
void defer (const std::string &name, std::function< void()> &&f)
 Defer a callback to the next loop() call. More...
 
void defer (std::function< void()> &&f)
 Defer a callback to the next loop() call. More...
 
bool cancel_defer (const std::string &name)
 Cancel a defer callback using the specified name, name must not be empty. More...
 
- Protected Attributes inherited from esphome::Component
uint32_t component_state_ {0x0000}
 State of this component. More...
 
float setup_priority_override_ {NAN}
 
const char * component_source_ {nullptr}
 
- Protected Attributes inherited from esphome::i2c::I2CDevice
uint8_t address_ {0x00}
 store the address of the device on the bus More...
 
I2CBusbus_ {nullptr}
 pointer to I2CBus instance More...
 

Detailed Description

This class includes support for the EMC2101 i2c fan controller.

The device has an output (PWM or DAC) and several sensors and this class is for the EMC2101 configuration.

Definition at line 29 of file emc2101.h.

Member Function Documentation

◆ dump_config()

void esphome::emc2101::Emc2101Component::dump_config ( )
overridevirtual

Used by ESPHome framework.

Reimplemented from esphome::Component.

Definition at line 93 of file emc2101.cpp.

◆ get_duty_cycle()

float esphome::emc2101::Emc2101Component::get_duty_cycle ( )

Gets the Fan output duty cycle.

Returns
The duty cycle percentage from 0.0f to 1.0f.

Definition at line 119 of file emc2101.cpp.

◆ get_external_temperature()

float esphome::emc2101::Emc2101Component::get_external_temperature ( )

Gets the external temperature sensor reading.

Returns
The temperature in degrees celsius.

Definition at line 139 of file emc2101.cpp.

◆ get_internal_temperature()

float esphome::emc2101::Emc2101Component::get_internal_temperature ( )

Gets the internal temperature sensor reading.

Returns
The temperature in degrees celsius.

Definition at line 129 of file emc2101.cpp.

◆ get_setup_priority()

float esphome::emc2101::Emc2101Component::get_setup_priority ( ) const
overridevirtual

Used by ESPHome framework.

Reimplemented from esphome::Component.

Definition at line 57 of file emc2101.cpp.

◆ get_speed()

float esphome::emc2101::Emc2101Component::get_speed ( )

Gets the tachometer speed sensor reading.

Returns
The fan speed in RPMs.

Definition at line 154 of file emc2101.cpp.

◆ set_dac_conversion_rate()

void esphome::emc2101::Emc2101Component::set_dac_conversion_rate ( Emc2101DACConversionRate  conversion_rate)
inline

Sets the DAC conversion rate (how many conversions per second).

Parameters
conversion_rateThe DAC conversion rate.

Definition at line 59 of file emc2101.h.

◆ set_dac_mode()

void esphome::emc2101::Emc2101Component::set_dac_mode ( bool  dac_mode)
inline

Sets the mode of the output.

Parameters
dac_modefalse for PWM output and true for DAC mode.

Definition at line 35 of file emc2101.h.

◆ set_duty_cycle()

void esphome::emc2101::Emc2101Component::set_duty_cycle ( float  value)

Sets the Fan output duty cycle.

Parameters
valueThe duty cycle value, from 0.0f to 1.0f.

Definition at line 109 of file emc2101.cpp.

◆ set_inverted()

void esphome::emc2101::Emc2101Component::set_inverted ( bool  inverted)
inline

Inverts the polarity of the Fan output.

Parameters
invertedInvert or not the Fan output.

Definition at line 67 of file emc2101.h.

◆ set_pwm_divider()

void esphome::emc2101::Emc2101Component::set_pwm_divider ( uint8_t  divider)
inline

Sets the PWM divider used to derive the PWM frequency.

Parameters
dividerThe PWM divider.

Definition at line 53 of file emc2101.h.

◆ set_pwm_resolution()

void esphome::emc2101::Emc2101Component::set_pwm_resolution ( uint8_t  resolution)
inline

Sets the PWM resolution.

Parameters
resolutionthe PWM resolution.

Definition at line 44 of file emc2101.h.

◆ setup()

void esphome::emc2101::Emc2101Component::setup ( )
overridevirtual

Used by ESPHome framework.

Reimplemented from esphome::Component.

Definition at line 59 of file emc2101.cpp.

Field Documentation

◆ dac_conversion_rate_

Emc2101DACConversionRate esphome::emc2101::Emc2101Component::dac_conversion_rate_

Definition at line 111 of file emc2101.h.

◆ dac_mode_

bool esphome::emc2101::Emc2101Component::dac_mode_ {false}

Definition at line 106 of file emc2101.h.

◆ inverted_

bool esphome::emc2101::Emc2101Component::inverted_ {false}

Definition at line 107 of file emc2101.h.

◆ max_output_value_

uint8_t esphome::emc2101::Emc2101Component::max_output_value_

Definition at line 108 of file emc2101.h.

◆ pwm_divider_

uint8_t esphome::emc2101::Emc2101Component::pwm_divider_

Definition at line 110 of file emc2101.h.

◆ pwm_resolution_

uint8_t esphome::emc2101::Emc2101Component::pwm_resolution_

Definition at line 109 of file emc2101.h.


The documentation for this class was generated from the following files: