3 #include "list_entities.h" 14 #include <freertos/FreeRTOS.h> 15 #include <freertos/semphr.h> 19 #if USE_WEBSERVER_VERSION >= 2 20 extern const uint8_t ESPHOME_WEBSERVER_INDEX_HTML[]
PROGMEM;
24 #ifdef USE_WEBSERVER_CSS_INCLUDE 25 extern const uint8_t ESPHOME_WEBSERVER_CSS_INCLUDE[]
PROGMEM;
29 #ifdef USE_WEBSERVER_JS_INCLUDE 30 extern const uint8_t ESPHOME_WEBSERVER_JS_INCLUDE[]
PROGMEM;
35 namespace web_server {
70 #if USE_WEBSERVER_VERSION == 1 76 void set_css_url(
const char *css_url);
83 void set_js_url(
const char *js_url);
86 #ifdef USE_WEBSERVER_CSS_INCLUDE 91 void set_css_include(
const char *css_include);
94 #ifdef USE_WEBSERVER_JS_INCLUDE 99 void set_js_include(
const char *js_include);
122 void setup()
override;
123 void loop()
override;
125 void dump_config()
override;
128 float get_setup_priority()
const override;
131 void handle_index_request(AsyncWebServerRequest *request);
134 std::string get_config_json();
136 #ifdef USE_WEBSERVER_CSS_INCLUDE 137 void handle_css_request(AsyncWebServerRequest *request);
141 #ifdef USE_WEBSERVER_JS_INCLUDE 142 void handle_js_request(AsyncWebServerRequest *request);
146 #ifdef USE_WEBSERVER_PRIVATE_NETWORK_ACCESS 148 void handle_pna_cors_request(AsyncWebServerRequest *request);
154 void handle_sensor_request(AsyncWebServerRequest *request,
const UrlMatch &match);
164 void handle_switch_request(AsyncWebServerRequest *request,
const UrlMatch &match);
171 void handle_button_request(AsyncWebServerRequest *request,
const UrlMatch &match);
178 #ifdef USE_BINARY_SENSOR 182 void handle_binary_sensor_request(AsyncWebServerRequest *request,
const UrlMatch &match);
189 void on_fan_update(
fan::Fan *obj)
override;
192 void handle_fan_request(AsyncWebServerRequest *request,
const UrlMatch &match);
202 void handle_light_request(AsyncWebServerRequest *request,
const UrlMatch &match);
208 #ifdef USE_TEXT_SENSOR 212 void handle_text_sensor_request(AsyncWebServerRequest *request,
const UrlMatch &match);
222 void handle_cover_request(AsyncWebServerRequest *request,
const UrlMatch &match);
231 void handle_number_request(AsyncWebServerRequest *request,
const UrlMatch &match);
237 #ifdef USE_DATETIME_DATE 240 void handle_date_request(AsyncWebServerRequest *request,
const UrlMatch &match);
246 #ifdef USE_DATETIME_TIME 249 void handle_time_request(AsyncWebServerRequest *request,
const UrlMatch &match);
255 #ifdef USE_DATETIME_DATETIME 258 void handle_datetime_request(AsyncWebServerRequest *request,
const UrlMatch &match);
265 void on_text_update(
text::Text *obj,
const std::string &state)
override;
267 void handle_text_request(AsyncWebServerRequest *request,
const UrlMatch &match);
274 void on_select_update(
select::Select *obj,
const std::string &state,
size_t index)
override;
276 void handle_select_request(AsyncWebServerRequest *request,
const UrlMatch &match);
285 void handle_climate_request(AsyncWebServerRequest *request,
const UrlMatch &match);
292 void on_lock_update(
lock::Lock *obj)
override;
295 void handle_lock_request(AsyncWebServerRequest *request,
const UrlMatch &match);
305 void handle_valve_request(AsyncWebServerRequest *request,
const UrlMatch &match);
311 #ifdef USE_ALARM_CONTROL_PANEL 315 void handle_alarm_control_panel_request(AsyncWebServerRequest *request,
const UrlMatch &match);
323 void on_event(
event::Event *obj,
const std::string &event_type)
override;
326 void handle_event_request(AsyncWebServerRequest *request,
const UrlMatch &match);
336 void handle_update_request(AsyncWebServerRequest *request,
const UrlMatch &match);
343 bool canHandle(AsyncWebServerRequest *request)
override;
345 void handleRequest(AsyncWebServerRequest *request)
override;
347 bool isRequestHandlerTrivial()
override;
349 void add_entity_config(
EntityBase *entity,
float weight, uint64_t group);
350 void add_sorting_group(uint64_t group_id,
const std::string &group_name,
float weight);
353 void schedule_(std::function<
void()> &&f);
356 AsyncEventSource events_{
"/events"};
361 #if USE_WEBSERVER_VERSION == 1 362 const char *css_url_{
nullptr};
363 const char *js_url_{
nullptr};
365 #ifdef USE_WEBSERVER_CSS_INCLUDE 366 const char *css_include_{
nullptr};
368 #ifdef USE_WEBSERVER_JS_INCLUDE 369 const char *js_include_{
nullptr};
371 bool include_internal_{
false};
372 bool allow_ota_{
true};
373 bool expose_log_{
true};
Base class for all switches.
const size_t ESPHOME_WEBSERVER_CSS_INCLUDE_SIZE
This class represents the communication layer between the front-end MQTT layer and the hardware outpu...
Base class for all cover devices.
void set_allow_ota(bool allow_ota)
Set whether or not the webserver should expose the OTA form and handler.
SemaphoreHandle_t to_schedule_lock_
This class allows users to create a web server with their ESP nodes.
std::map< EntityBase *, SortingComponents > sorting_entitys_
void set_include_internal(bool include_internal)
Determine whether internal components should be displayed on the web server.
Base-class for all text inputs.
void set_expose_log(bool expose_log)
Set whether or not the webserver should expose the Log.
const size_t ESPHOME_WEBSERVER_JS_INCLUDE_SIZE
friend ListEntitiesIterator
Internal helper struct that is used to parse incoming URLs.
std::map< uint64_t, SortingGroup > sorting_groups_
const size_t ESPHOME_WEBSERVER_INDEX_HTML_SIZE
std::string domain
The domain of the component, for example "sensor".
Base-class for all numbers.
bool valid
Whether this match is valid.
std::string id
The id of the device that's being accessed, for example "living_room_fan".
const uint8_t ESPHOME_WEBSERVER_INDEX_HTML [] PROGMEM
Base-class for all selects.
web_server_base::WebServerBase * base_
Implementation of SPI Controller mode.
Base class for all valve devices.
Base class for all binary_sensor-type classes.
LockState
Enum for all states a lock can be in.
Base-class for all sensors.
ListEntitiesIterator entities_iterator_
std::deque< std::function< void()> > to_schedule_
std::string method
The method that's being called, for example "turn_on".
Base class for all locks.
ClimateDevice - This is the base class for all climate integrations.