ESPHome 2025.7.1
Loading...
Searching...
No Matches
esphome::camera::Camera Class Referenceabstract

Abstract camera base class. More...

#include <camera.h>

Inheritance diagram for esphome::camera::Camera:
esphome::EntityBase esphome::Component esphome::esp32_camera::ESP32Camera

Public Member Functions

 Camera ()
 
virtual void add_image_callback (std::function< void(std::shared_ptr< CameraImage >)> &&callback)=0
 
virtual CameraImageReadercreate_image_reader ()=0
 Returns a new camera image reader that keeps track of the JPEG data in the camera image.
 
virtual void request_image (CameraRequester requester)=0
 
virtual void start_stream (CameraRequester requester)=0
 
virtual void stop_stream (CameraRequester requester)=0
 
virtual ~Camera ()
 
- Public Member Functions inherited from esphome::EntityBase
const StringRefget_name () const
 
void set_name (const char *name)
 
bool has_own_name () const
 
std::string get_object_id () const
 
void set_object_id (const char *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)
 
std::string get_icon () const
 
void set_icon (const char *icon)
 
uint32_t get_device_id () const
 
void set_device (Device *device)
 
bool has_state () const
 
void set_has_state (bool state)
 
- Public Member Functions inherited from esphome::Component
virtual void setup ()
 Where the component's initialization should happen.
 
virtual void loop ()
 This method will be called repeatedly.
 
virtual void dump_config ()
 
virtual float get_setup_priority () const
 priority of setup().
 
float get_actual_setup_priority () const
 
void set_setup_priority (float priority)
 
virtual float get_loop_priority () const
 priority of loop().
 
void call ()
 
virtual void on_shutdown ()
 
virtual void on_safe_shutdown ()
 
virtual bool teardown ()
 Called during teardown to allow component to gracefully finish operations.
 
virtual void on_powerdown ()
 Called after teardown is complete to power down hardware.
 
uint8_t get_component_state () const
 
void reset_to_construction_state ()
 Reset this component back to the construction state to allow setup to run again.
 
bool is_in_loop_state () const
 Check if this component has completed setup and is in the loop state.
 
virtual void mark_failed ()
 Mark this component as failed.
 
void mark_failed (const char *message)
 
void disable_loop ()
 Disable this component's loop.
 
void enable_loop ()
 Enable this component's loop.
 
void enable_loop_soon_any_context ()
 Thread and ISR-safe version of enable_loop() that can be called from any context.
 
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.
 
const char * get_component_source () const
 Get the integration where this component was declared as a string.
 
bool should_warn_of_blocking (uint32_t blocking_time)
 

Static Public Member Functions

static Camerainstance ()
 The singleton instance of the camera implementation.
 

Static Protected Attributes

static Cameraglobal_camera = nullptr
 

Additional Inherited Members

- Protected Member Functions inherited from esphome::EntityBase
virtual uint32_t hash_base ()
 The hash_base() function has been deprecated.
 
void calc_object_id_ ()
 
- 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.
 
void set_interval (const char *name, uint32_t interval, std::function< void()> &&f)
 Set an interval function with a const char* name.
 
void set_interval (uint32_t interval, std::function< void()> &&f)
 
bool cancel_interval (const std::string &name)
 Cancel an interval function.
 
bool cancel_interval (const char *name)
 
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.
 
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.
 
void set_timeout (const std::string &name, uint32_t timeout, std::function< void()> &&f)
 Set a timeout function with a unique name.
 
void set_timeout (const char *name, uint32_t timeout, std::function< void()> &&f)
 Set a timeout function with a const char* name.
 
void set_timeout (uint32_t timeout, std::function< void()> &&f)
 
bool cancel_timeout (const std::string &name)
 Cancel a timeout function.
 
bool cancel_timeout (const char *name)
 
void defer (const std::string &name, std::function< void()> &&f)
 Defer a callback to the next loop() call.
 
void defer (const char *name, std::function< void()> &&f)
 Defer a callback to the next loop() call with a const char* name.
 
void defer (std::function< void()> &&f)
 Defer a callback to the next loop() call.
 
bool cancel_defer (const std::string &name)
 Cancel a defer callback using the specified name, name must not be empty.
 
- Protected Attributes inherited from esphome::EntityBase
StringRef name_
 
const char * object_id_c_str_ {nullptr}
 
const char * icon_c_str_ {nullptr}
 
uint32_t object_id_hash_ {}
 
Devicedevice_ {}
 
struct esphome::EntityBase::EntityFlags flags_
 
- Protected Attributes inherited from esphome::Component
const char * component_source_ {nullptr}
 
uint16_t warn_if_blocking_over_ {WARN_IF_BLOCKING_OVER_MS}
 Warn if blocked for this many ms (max 65.5s)
 
uint8_t component_state_ {0x00}
 State of this component - each bit has a purpose: Bits 0-1: Component state (0x00=CONSTRUCTION, 0x01=SETUP, 0x02=LOOP, 0x03=FAILED) Bit 2: STATUS_LED_WARNING Bit 3: STATUS_LED_ERROR Bits 4-7: Unused - reserved for future expansion (50% of the bits are free)
 
volatile bool pending_enable_loop_ {false}
 ISR-safe flag for enable_loop_soon_any_context.
 

Detailed Description

Abstract camera base class.

Collaborates with API. 1) API server starts and installs callback (add_image_callback) which is called by the camera when a new image is available. 2) New API client connects and creates a new image reader (create_image_reader). 3) API connection receives protobuf CameraImageRequest and calls request_image. 3.a) API connection receives protobuf CameraImageRequest and calls start_stream. 4) Camera implementation provides JPEG data in the CameraImage and calls callback. 5) API connection sets the image in the image reader. 6) API connection consumes data from the image reader and returns the image when finished. 7.a) Camera captures a new image and continues with 4) until start_stream is called.

Definition at line 57 of file camera.h.

Constructor & Destructor Documentation

◆ Camera()

esphome::camera::Camera::Camera ( )

Definition at line 9 of file camera.cpp.

◆ ~Camera()

virtual esphome::camera::Camera::~Camera ( )
inlinevirtual

Definition at line 70 of file camera.h.

Member Function Documentation

◆ add_image_callback()

virtual void esphome::camera::Camera::add_image_callback ( std::function< void(std::shared_ptr< CameraImage >)> && callback)
pure virtual

◆ create_image_reader()

virtual CameraImageReader * esphome::camera::Camera::create_image_reader ( )
pure virtual

Returns a new camera image reader that keeps track of the JPEG data in the camera image.

Implemented in esphome::esp32_camera::ESP32Camera.

◆ instance()

Camera * esphome::camera::Camera::instance ( )
static

The singleton instance of the camera implementation.

Definition at line 19 of file camera.cpp.

◆ request_image()

virtual void esphome::camera::Camera::request_image ( CameraRequester requester)
pure virtual

◆ start_stream()

virtual void esphome::camera::Camera::start_stream ( CameraRequester requester)
pure virtual

◆ stop_stream()

virtual void esphome::camera::Camera::stop_stream ( CameraRequester requester)
pure virtual

Field Documentation

◆ global_camera

Camera * esphome::camera::Camera::global_camera = nullptr
staticprotected

Definition at line 76 of file camera.h.


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