|
ESPHome 2026.11.0-dev
|
A zone with any polygon shape. More...
#include <polygon_zone.h>
Public Member Functions | |
| void | set_presence_binary_sensor (binary_sensor::BinarySensor *presence) |
| Config validation guarantees every zone gets exactly one presence binary sensor. | |
| void | setup () |
| Load the saved polygon and publish it. Called from the hub's setup(). | |
| void | dump_config () |
| void | update (bool target_inside, uint32_t now, bool timed_out) |
| Publish presence for one radar frame. | |
| uint32_t | get_last_inside_ms () const |
| When a target was last inside the zone, in ms; 0 if never since the polygon was set. | |
| bool | contains (int16_t x, int16_t y) const |
| bool | has_polygon () const |
Public Member Functions inherited from esphome::text::Text | |
| void | publish_state (const std::string &state) |
| void | publish_state (const char *state) |
| void | publish_state (const char *state, size_t len) |
| TextCall | make_call () |
| Instantiate a TextCall object to modify this text component's state. | |
| template<typename F > | |
| void | add_on_state_callback (F &&callback) |
Public Member Functions inherited from esphome::EntityBase | |
| const StringRef & | get_name () const |
| bool | has_own_name () const |
| uint32_t | get_object_id_hash () const |
| StringRef | get_object_id_to (std::span< char, OBJECT_ID_MAX_LEN > buf) const |
| Get object_id with zero heap allocation For static case: returns StringRef to internal storage (buffer unused) For dynamic case: formats into buffer and returns StringRef to buffer. | |
| size_t | write_object_id_to (char *buf, size_t buf_size) const |
| Write object_id directly to buffer, returns length written (excluding null) Useful for building compound strings without intermediate buffer. | |
| bool | is_internal () const |
| void | set_internal (bool internal) |
| bool | is_disabled_by_default () const |
| EntityCategory | get_entity_category () const |
| const char * | get_device_class_to (std::span< char, MAX_DEVICE_CLASS_LENGTH > buffer) const |
| StringRef | get_unit_of_measurement_ref () const |
| const char * | get_icon_to (std::span< char, MAX_ICON_LENGTH > buffer) const |
| uint32_t | get_device_id () const |
| Device * | get_device () const |
| bool | has_state () const |
| void | set_has_state (bool state) |
| ESPDEPRECATED ("Use make_entity_preference<T>() instead, or preferences won't be migrated. " "See https://github.com/esphome/backlog/issues/85. Will be removed in 2027.1.0.", "2026.7.0") uint32_t get_preference_hash() | |
| Get a unique hash for storing preferences/settings for this entity. | |
| template<typename T > | |
| ESPPreferenceObject | make_entity_preference (uint32_t version=0) |
| Create a preference object for storing this entity's state/settings. | |
Protected Member Functions | |
| void | control (const std::string &value) override |
| void | publish_polygon_ () |
Protected Member Functions inherited from esphome::text::Text | |
Protected Member Functions inherited from esphome::EntityBase | |
| friend | void::setup () |
| friend | void::original_setup () |
| void | configure_entity_ (const char *name, uint32_t object_id_hash, uint32_t entity_fields) |
| Combined entity setup from codegen: set name, object_id hash, entity string indices, and flags. | |
| void | set_device_ (Device *device) |
| ESPPreferenceObject | make_entity_preference_ (size_t size, uint32_t version) |
| Non-template helper for make_entity_preference() to avoid code bloat. | |
| void | calc_object_id_ () |
Protected Attributes | |
| binary_sensor::BinarySensor * | presence_ {nullptr} |
| Polygon | polygon_ |
| ESPPreferenceObject | pref_ |
| uint32_t | last_inside_ms_ {0} |
Protected Attributes inherited from esphome::text::Text | |
| LazyCallbackManager< void(const std::string &)> | state_callback_ |
Protected Attributes inherited from esphome::EntityBase | |
| StringRef | name_ |
| uint32_t | object_id_hash_ {} |
| Device * | device_ {} |
| struct esphome::EntityBase::EntityFlags | flags_ |
| uint8_t | device_class_idx_ {} |
| uint8_t | uom_idx_ {} |
| uint8_t | icon_idx_ {} |
Additional Inherited Members | |
Data Fields inherited from esphome::text::Text | |
| std::string | state |
| TextTraits | traits |
A zone with any polygon shape.
The text state holds the polygon, so it can be edited and read back from HA.
The polygon is in the radar's raw coordinates (mm), and targets are checked against it as decoded from each radar frame, before any sensor filter. Filters on the target X/Y sensors change only what they publish, so a filter that changes their values (multiply, offset, lambda, ...) puts them in a different frame from the polygon.
Like the hub's has_target binary sensors, presence stays on until presence_timeout has passed since a target was last inside the zone.
Definition at line 22 of file polygon_zone.h.
|
inline |
Definition at line 48 of file polygon_zone.h.
|
overrideprotectedvirtual |
Implements esphome::text::Text.
Definition at line 33 of file polygon_zone.cpp.
| void esphome::ld2450::PolygonZone::dump_config | ( | ) |
Definition at line 25 of file polygon_zone.cpp.
|
inline |
When a target was last inside the zone, in ms; 0 if never since the polygon was set.
Definition at line 47 of file polygon_zone.h.
|
inline |
Definition at line 49 of file polygon_zone.h.
|
protected |
Definition at line 52 of file polygon_zone.cpp.
|
inline |
Config validation guarantees every zone gets exactly one presence binary sensor.
Definition at line 25 of file polygon_zone.h.
| void esphome::ld2450::PolygonZone::setup | ( | ) |
Load the saved polygon and publish it. Called from the hub's setup().
Definition at line 10 of file polygon_zone.cpp.
|
inline |
Publish presence for one radar frame.
A zone without a polygon keeps presence unknown.
| target_inside | whether any target is inside the zone in this frame. |
| now | the frame's time, in ms. |
| timed_out | whether presence_timeout has passed since get_last_inside_ms(). |
Definition at line 36 of file polygon_zone.h.
|
protected |
Definition at line 58 of file polygon_zone.h.
|
protected |
Definition at line 56 of file polygon_zone.h.
|
protected |
Definition at line 57 of file polygon_zone.h.
|
protected |
Definition at line 55 of file polygon_zone.h.