ESPHome  2022.6.2
Public Member Functions | Protected Attributes
esphome::ct_clamp::CTClampSensor Class Reference

#include <ct_clamp_sensor.h>

Inheritance diagram for esphome::ct_clamp::CTClampSensor:
esphome::sensor::Sensor esphome::PollingComponent esphome::EntityBase esphome::Component

Public Member Functions

void update () override
 
void loop () override
 
void dump_config () override
 
float get_setup_priority () const override
 
void set_sample_duration (uint32_t sample_duration)
 
void set_source (voltage_sampler::VoltageSampler *source)
 
- Public Member Functions inherited from esphome::sensor::Sensor
 Sensor ()
 
 Sensor (const std::string &name)
 
std::string get_unit_of_measurement ()
 Get the unit of measurement, using the manual override if set. More...
 
void set_unit_of_measurement (const std::string &unit_of_measurement)
 Manually set the unit of measurement. More...
 
int8_t get_accuracy_decimals ()
 Get the accuracy in decimals, using the manual override if set. More...
 
void set_accuracy_decimals (int8_t accuracy_decimals)
 Manually set the accuracy in decimals. More...
 
std::string get_device_class ()
 Get the device class, using the manual override if set. More...
 
void set_device_class (const std::string &device_class)
 Manually set the device class. More...
 
StateClass get_state_class ()
 Get the state class, using the manual override if set. More...
 
void set_state_class (StateClass state_class)
 Manually set the state class. More...
 
bool get_force_update () const
 Get whether force update mode is enabled. More...
 
void set_force_update (bool force_update)
 Set force update mode. More...
 
void add_filter (Filter *filter)
 Add a filter to the filter chain. Will be appended to the back. More...
 
void add_filters (const std::vector< Filter *> &filters)
 Add a list of vectors to the back of the filter chain. More...
 
void set_filters (const std::vector< Filter *> &filters)
 Clear the filters and replace them by filters. More...
 
void clear_filters ()
 Clear the entire filter chain. More...
 
float get_state () const
 Getter-syntax for .state. More...
 
float get_raw_state () const
 Getter-syntax for .raw_state. More...
 
void publish_state (float state)
 Publish a new state to the front-end. More...
 
void add_on_state_callback (std::function< void(float)> &&callback)
 Add a callback that will be called every time a filtered value arrives. More...
 
void add_on_raw_state_callback (std::function< void(float)> &&callback)
 Add a callback that will be called every time the sensor sends a raw value. More...
 
bool has_state () const
 Return whether this sensor has gotten a full state (that passed through all filters) yet. More...
 
virtual std::string unique_id ()
 A unique ID for this sensor, empty for no unique id. More...
 
void internal_send_state_to_frontend (float state)
 
- Public Member Functions inherited from esphome::EntityBase
 EntityBase ()
 
 EntityBase (std::string name)
 
const std::string & get_name () const
 
void set_name (const std::string &name)
 
const std::string & get_object_id ()
 
uint32_t get_object_id_hash ()
 
bool is_internal () const
 
void set_internal (bool internal)
 
bool is_disabled_by_default () const
 
void set_disabled_by_default (bool disabled_by_default)
 
EntityCategory get_entity_category () const
 
void set_entity_category (EntityCategory entity_category)
 
const std::string & get_icon () const
 
void set_icon (const std::string &name)
 
- Public Member Functions inherited from esphome::PollingComponent
 PollingComponent ()
 
 PollingComponent (uint32_t update_interval)
 Initialize this polling component with the given update interval in ms. More...
 
virtual void set_update_interval (uint32_t update_interval)
 Manually set the update interval in ms for this polling object. More...
 
void call_setup () override
 
virtual uint32_t get_update_interval () const
 Get the update interval in ms of this sensor. More...
 
- Public Member Functions inherited from esphome::Component
virtual void setup ()
 Where the component's initialization should happen. 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 ()
 
virtual bool can_proceed ()
 
bool status_has_warning ()
 
bool status_has_error ()
 
void status_set_warning ()
 
void status_set_error ()
 
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...
 

Protected Attributes

HighFrequencyLoopRequester high_freq_
 High Frequency loop() requester used during sampling phase. More...
 
uint32_t sample_duration_
 Duration in ms of the sampling phase. More...
 
voltage_sampler::VoltageSamplersource_
 The sampling source to read values from. More...
 
float last_value_ = 0.0f
 The DC offset of the circuit. More...
 
float sample_sum_ = 0.0f
 
float sample_squared_sum_ = 0.0f
 
uint32_t num_samples_ = 0
 
bool is_sampling_ = false
 
- Protected Attributes inherited from esphome::sensor::Sensor
CallbackManager< void(float)> raw_callback_
 Storage for raw state callbacks. More...
 
CallbackManager< void(float)> callback_
 Storage for filtered state callbacks. More...
 
bool has_state_ {false}
 
Filterfilter_list_ {nullptr}
 Store all active filters. More...
 
optional< std::string > unit_of_measurement_
 Unit of measurement override. More...
 
optional< int8_t > accuracy_decimals_
 Accuracy in decimals override. More...
 
optional< std::string > device_class_
 Device class override. More...
 
optional< StateClassstate_class_ {STATE_CLASS_NONE}
 State class override. More...
 
bool force_update_ {false}
 Force update mode. More...
 
- Protected Attributes inherited from esphome::EntityBase
std::string name_
 
std::string object_id_
 
std::string icon_
 
uint32_t object_id_hash_
 
bool internal_ {false}
 
bool disabled_by_default_ {false}
 
EntityCategory entity_category_ {ENTITY_CATEGORY_NONE}
 
- Protected Attributes inherited from esphome::PollingComponent
uint32_t update_interval_
 
- 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
 

Additional Inherited Members

- Data Fields inherited from esphome::sensor::Sensor
float state
 This member variable stores the last state that has passed through all filters. More...
 
float raw_state
 This member variable stores the current raw state of the sensor, without any filters applied. More...
 
- Protected Member Functions inherited from esphome::sensor::Sensor
virtual std::string unit_of_measurement ()
 Override this to set the default unit of measurement. More...
 
virtual int8_t accuracy_decimals ()
 Override this to set the default accuracy in decimals. More...
 
virtual std::string device_class ()
 Override this to set the default device class. More...
 
virtual StateClass state_class ()
 Override this to set the default state class. More...
 
- Protected Member Functions inherited from esphome::EntityBase
virtual uint32_t hash_base ()
 The hash_base() function has been deprecated. More...
 
void calc_object_id_ ()
 
- Protected Member Functions inherited from esphome::Component
virtual void call_loop ()
 
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()> &&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()> &&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...
 

Detailed Description

Definition at line 11 of file ct_clamp_sensor.h.

Member Function Documentation

◆ dump_config()

void esphome::ct_clamp::CTClampSensor::dump_config ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 11 of file ct_clamp_sensor.cpp.

◆ get_setup_priority()

float esphome::ct_clamp::CTClampSensor::get_setup_priority ( ) const
inlineoverridevirtual

Reimplemented from esphome::Component.

Definition at line 16 of file ct_clamp_sensor.h.

◆ loop()

void esphome::ct_clamp::CTClampSensor::loop ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 50 of file ct_clamp_sensor.cpp.

◆ set_sample_duration()

void esphome::ct_clamp::CTClampSensor::set_sample_duration ( uint32_t  sample_duration)
inline

Definition at line 21 of file ct_clamp_sensor.h.

◆ set_source()

void esphome::ct_clamp::CTClampSensor::set_source ( voltage_sampler::VoltageSampler source)
inline

Definition at line 22 of file ct_clamp_sensor.h.

◆ update()

void esphome::ct_clamp::CTClampSensor::update ( )
overridevirtual

Implements esphome::PollingComponent.

Definition at line 17 of file ct_clamp_sensor.cpp.

Field Documentation

◆ high_freq_

HighFrequencyLoopRequester esphome::ct_clamp::CTClampSensor::high_freq_
protected

High Frequency loop() requester used during sampling phase.

Definition at line 26 of file ct_clamp_sensor.h.

◆ is_sampling_

bool esphome::ct_clamp::CTClampSensor::is_sampling_ = false
protected

Definition at line 50 of file ct_clamp_sensor.h.

◆ last_value_

float esphome::ct_clamp::CTClampSensor::last_value_ = 0.0f
protected

The DC offset of the circuit.

Diagram: https://learn.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino

The current clamp only measures AC, so any DC component is an unwanted artifact from the sampling circuit. The AC component is essentially the same as the calculating the Standard-Deviation, which can be done by cumulating 3 values per sample: 1) Number of samples 2) Sum of samples 3) Sum of sample squared https://en.wikipedia.org/wiki/Root_mean_square

Definition at line 46 of file ct_clamp_sensor.h.

◆ num_samples_

uint32_t esphome::ct_clamp::CTClampSensor::num_samples_ = 0
protected

Definition at line 49 of file ct_clamp_sensor.h.

◆ sample_duration_

uint32_t esphome::ct_clamp::CTClampSensor::sample_duration_
protected

Duration in ms of the sampling phase.

Definition at line 29 of file ct_clamp_sensor.h.

◆ sample_squared_sum_

float esphome::ct_clamp::CTClampSensor::sample_squared_sum_ = 0.0f
protected

Definition at line 48 of file ct_clamp_sensor.h.

◆ sample_sum_

float esphome::ct_clamp::CTClampSensor::sample_sum_ = 0.0f
protected

Definition at line 47 of file ct_clamp_sensor.h.

◆ source_

voltage_sampler::VoltageSampler* esphome::ct_clamp::CTClampSensor::source_
protected

The sampling source to read values from.

Definition at line 31 of file ct_clamp_sensor.h.


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