mirror of
https://github.com/esphome/esphome.git
synced 2026-09-15 09:08:41 +00:00
7d0cb4afe6f1fcc3a0e0b91894dfa02b0f1cbb74
Introduce entity_types.inc X-macro and entity_includes.h shared header to eliminate ~1000 lines of repetitive #ifdef/entity-type blocks across core files. entity_types.inc defines each entity type once with two macros: - ENTITY_TYPE_ for non-controller entities (button, infrared) - ENTITY_CONTROLLER_TYPE_ for entities with controller callbacks Each consumer includes the file with appropriate macro definitions. Sites wanting all entities delegate ENTITY_CONTROLLER_TYPE_ to ENTITY_TYPE_. Sites wanting only controller entities define ENTITY_TYPE_ as empty. entity_includes.h consolidates the conditional entity header includes shared by application.h, controller.h, and controller_registry.h. Also makes ComponentIterator::on_media_player pure virtual for consistency (trivial override added to web_server::ListEntitiesIterator).
Description
ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
Readme
Multiple Licenses
594 MiB
Languages
C++
55.8%
Python
43.6%
C
0.3%
JavaScript
0.2%
