esphome 2025.6.3__py3-none-any.whl → 2025.7.0b2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- esphome/__main__.py +1 -3
- esphome/codegen.py +2 -0
- esphome/components/ac_dimmer/ac_dimmer.cpp +6 -6
- esphome/components/adc/__init__.py +25 -1
- esphome/components/adc/adc_sensor.h +11 -11
- esphome/components/adc/adc_sensor_common.cpp +1 -1
- esphome/components/adc/adc_sensor_esp32.cpp +16 -8
- esphome/components/ade7880/ade7880.h +0 -2
- esphome/components/ads1115/ads1115.h +0 -1
- esphome/components/ads1118/ads1118.h +0 -1
- esphome/components/ags10/ags10.h +0 -2
- esphome/components/aic3204/aic3204.h +0 -1
- esphome/components/alarm_control_panel/__init__.py +5 -2
- esphome/components/alpha3/alpha3.h +0 -1
- esphome/components/am43/cover/am43_cover.h +0 -1
- esphome/components/am43/sensor/am43_sensor.h +0 -1
- esphome/components/analog_threshold/analog_threshold_binary_sensor.h +0 -2
- esphome/components/anova/anova.cpp +5 -1
- esphome/components/anova/anova.h +0 -1
- esphome/components/apds9960/apds9960.cpp +1 -1
- esphome/components/api/__init__.py +57 -21
- esphome/components/api/api_connection.cpp +344 -539
- esphome/components/api/api_connection.h +224 -141
- esphome/components/api/api_frame_helper.cpp +91 -127
- esphome/components/api/api_frame_helper.h +64 -54
- esphome/components/api/api_pb2.cpp +1837 -9044
- esphome/components/api/api_pb2.h +532 -685
- esphome/components/api/api_pb2_dump.cpp +4432 -0
- esphome/components/api/api_pb2_service.cpp +184 -425
- esphome/components/api/api_pb2_service.h +13 -6
- esphome/components/api/api_server.cpp +131 -167
- esphome/components/api/api_server.h +38 -10
- esphome/components/api/client.py +8 -2
- esphome/components/api/custom_api_device.h +8 -0
- esphome/components/api/list_entities.cpp +37 -104
- esphome/components/api/list_entities.h +33 -23
- esphome/components/api/proto.h +532 -26
- esphome/components/api/subscribe_state.cpp +23 -29
- esphome/components/api/subscribe_state.h +26 -19
- esphome/components/api/user_services.h +2 -0
- esphome/components/as5600/as5600.h +0 -1
- esphome/components/async_tcp/__init__.py +14 -5
- esphome/components/atc_mithermometer/atc_mithermometer.h +0 -1
- esphome/components/atm90e32/atm90e32.cpp +2 -1
- esphome/components/audio/audio_decoder.cpp +1 -1
- esphome/components/audio/audio_transfer_buffer.cpp +2 -2
- esphome/components/b_parasite/b_parasite.h +0 -1
- esphome/components/bedjet/bedjet_hub.cpp +5 -1
- esphome/components/bedjet/climate/bedjet_climate.cpp +5 -1
- esphome/components/beken_spi_led_strip/led_strip.cpp +4 -2
- esphome/components/bh1750/bh1750.cpp +5 -5
- esphome/components/binary_sensor/__init__.py +82 -5
- esphome/components/binary_sensor/automation.h +19 -1
- esphome/components/binary_sensor/binary_sensor.cpp +12 -30
- esphome/components/binary_sensor/binary_sensor.h +11 -25
- esphome/components/binary_sensor/filter.cpp +29 -24
- esphome/components/binary_sensor/filter.h +20 -10
- esphome/components/ble_client/output/ble_binary_output.h +0 -1
- esphome/components/ble_client/sensor/ble_rssi_sensor.cpp +5 -1
- esphome/components/ble_client/sensor/ble_rssi_sensor.h +0 -1
- esphome/components/ble_client/sensor/ble_sensor.cpp +5 -1
- esphome/components/ble_client/sensor/ble_sensor.h +0 -1
- esphome/components/ble_client/switch/ble_switch.h +0 -1
- esphome/components/ble_client/text_sensor/ble_text_sensor.cpp +5 -1
- esphome/components/ble_client/text_sensor/ble_text_sensor.h +0 -1
- esphome/components/ble_presence/ble_presence_device.h +0 -1
- esphome/components/ble_rssi/ble_rssi_sensor.h +0 -1
- esphome/components/ble_scanner/ble_scanner.h +0 -1
- esphome/components/bluetooth_proxy/bluetooth_connection.h +9 -2
- esphome/components/bluetooth_proxy/bluetooth_proxy.cpp +16 -6
- esphome/components/bluetooth_proxy/bluetooth_proxy.h +8 -2
- esphome/components/bme680/sensor.py +1 -1
- esphome/components/bmp581/bmp581.h +0 -2
- esphome/components/button/__init__.py +5 -2
- esphome/components/camera/__init__.py +1 -0
- esphome/components/camera/camera.cpp +22 -0
- esphome/components/camera/camera.h +80 -0
- esphome/components/canbus/__init__.py +1 -0
- esphome/components/cap1188/cap1188.h +0 -1
- esphome/components/captive_portal/__init__.py +12 -2
- esphome/components/captive_portal/captive_portal.cpp +12 -2
- esphome/components/captive_portal/captive_portal.h +5 -2
- esphome/components/ccs811/ccs811.h +0 -2
- esphome/components/climate/__init__.py +5 -2
- esphome/components/cm1106/sensor.py +2 -2
- esphome/components/const/__init__.py +2 -0
- esphome/components/copy/binary_sensor/copy_binary_sensor.h +0 -1
- esphome/components/copy/button/copy_button.h +0 -1
- esphome/components/copy/cover/copy_cover.h +0 -1
- esphome/components/copy/fan/copy_fan.h +0 -1
- esphome/components/copy/lock/copy_lock.h +0 -1
- esphome/components/copy/number/copy_number.h +0 -1
- esphome/components/copy/select/copy_select.h +0 -1
- esphome/components/copy/sensor/copy_sensor.h +0 -1
- esphome/components/copy/switch/copy_switch.h +0 -1
- esphome/components/copy/text/copy_text.h +0 -1
- esphome/components/copy/text_sensor/copy_text_sensor.h +0 -1
- esphome/components/cover/__init__.py +5 -2
- esphome/components/cs5460a/cs5460a.h +0 -1
- esphome/components/datetime/__init__.py +4 -2
- esphome/components/debug/__init__.py +20 -0
- esphome/components/debug/debug_esp32.cpp +2 -0
- esphome/components/deep_sleep/__init__.py +43 -9
- esphome/components/demo/__init__.py +2 -2
- esphome/components/display/display.cpp +4 -3
- esphome/components/display/display.h +0 -2
- esphome/components/display/display_buffer.cpp +1 -1
- esphome/components/ds2484/__init__.py +1 -0
- esphome/components/ds2484/ds2484.cpp +209 -0
- esphome/components/ds2484/ds2484.h +43 -0
- esphome/components/ds2484/one_wire.py +37 -0
- esphome/components/duty_time/duty_time_sensor.h +0 -1
- esphome/components/ens160_base/ens160_base.h +0 -1
- esphome/components/es7210/es7210.h +0 -1
- esphome/components/es7243e/es7243e.h +0 -1
- esphome/components/es8156/es8156.h +0 -1
- esphome/components/es8311/es8311.h +0 -1
- esphome/components/es8388/es8388.h +0 -1
- esphome/components/esp32/__init__.py +103 -135
- esphome/components/esp32/core.cpp +0 -4
- esphome/components/esp32/gpio.h +1 -1
- esphome/components/esp32/helpers.cpp +69 -0
- esphome/components/esp32_ble/ble.cpp +5 -6
- esphome/components/esp32_ble/ble.h +29 -14
- esphome/components/esp32_ble/ble_event.h +6 -6
- esphome/components/esp32_ble_client/ble_client_base.cpp +21 -6
- esphome/components/esp32_ble_client/ble_client_base.h +24 -9
- esphome/components/esp32_ble_tracker/__init__.py +2 -8
- esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp +5 -5
- esphome/components/esp32_ble_tracker/esp32_ble_tracker.h +11 -7
- esphome/components/esp32_camera/__init__.py +112 -98
- esphome/components/esp32_camera/esp32_camera.cpp +41 -31
- esphome/components/esp32_camera/esp32_camera.h +35 -30
- esphome/components/esp32_camera_web_server/__init__.py +2 -1
- esphome/components/esp32_camera_web_server/camera_web_server.cpp +8 -8
- esphome/components/esp32_camera_web_server/camera_web_server.h +3 -3
- esphome/components/esp32_hall/sensor.py +2 -21
- esphome/components/esp32_hosted/__init__.py +101 -0
- esphome/components/esp32_hosted/esp32_hosted.py.script +12 -0
- esphome/components/esp32_improv/esp32_improv_component.cpp +3 -0
- esphome/components/esp32_rmt/__init__.py +0 -58
- esphome/components/esp32_rmt_led_strip/led_strip.cpp +77 -63
- esphome/components/esp32_rmt_led_strip/led_strip.h +11 -17
- esphome/components/esp32_rmt_led_strip/light.py +14 -76
- esphome/components/esp32_touch/esp32_touch.h +174 -28
- esphome/components/esp32_touch/esp32_touch_common.cpp +162 -0
- esphome/components/esp32_touch/esp32_touch_v1.cpp +240 -0
- esphome/components/esp32_touch/esp32_touch_v2.cpp +397 -0
- esphome/components/esp8266/__init__.py +2 -0
- esphome/components/esp8266/gpio.cpp +10 -10
- esphome/components/esp8266/helpers.cpp +31 -0
- esphome/components/esphome/ota/__init__.py +1 -0
- esphome/components/esphome/ota/ota_esphome.cpp +24 -19
- esphome/components/ethernet/__init__.py +42 -23
- esphome/components/ethernet/esp_eth_phy_jl1101.c +0 -16
- esphome/components/ethernet/ethernet_component.cpp +69 -29
- esphome/components/ethernet/ethernet_component.h +18 -10
- esphome/components/event/__init__.py +5 -2
- esphome/components/ezo/ezo.h +0 -1
- esphome/components/ezo_pmp/ezo_pmp.h +0 -1
- esphome/components/fan/__init__.py +5 -2
- esphome/components/feedback/feedback_cover.h +0 -1
- esphome/components/font/__init__.py +92 -82
- esphome/components/font/font.cpp +9 -2
- esphome/components/font/font.h +20 -5
- esphome/components/fs3000/fs3000.h +0 -1
- esphome/components/gcja5/gcja5.h +0 -1
- esphome/components/gl_r01_i2c/__init__.py +0 -0
- esphome/components/gl_r01_i2c/gl_r01_i2c.cpp +68 -0
- esphome/components/gl_r01_i2c/gl_r01_i2c.h +22 -0
- esphome/components/gl_r01_i2c/sensor.py +36 -0
- esphome/components/gp8403/gp8403.h +0 -1
- esphome/components/gpio/binary_sensor/__init__.py +17 -0
- esphome/components/gpio/binary_sensor/gpio_binary_sensor.cpp +77 -3
- esphome/components/gpio/binary_sensor/gpio_binary_sensor.h +40 -0
- esphome/components/grove_gas_mc_v2/grove_gas_mc_v2.h +0 -2
- esphome/components/he60r/he60r.h +0 -1
- esphome/components/heatpumpir/climate.py +2 -1
- esphome/components/heatpumpir/heatpumpir.cpp +1 -0
- esphome/components/heatpumpir/heatpumpir.h +1 -0
- esphome/components/honeywellabp2_i2c/honeywellabp2.h +0 -1
- esphome/components/host/__init__.py +3 -1
- esphome/components/host/helpers.cpp +57 -0
- esphome/components/http_request/__init__.py +19 -1
- esphome/components/http_request/http_request.h +1 -1
- esphome/components/http_request/http_request_arduino.h +1 -0
- esphome/components/http_request/ota/ota_http_request.cpp +1 -1
- esphome/components/http_request/update/http_request_update.cpp +28 -9
- esphome/components/hydreon_rgxx/hydreon_rgxx.cpp +3 -9
- esphome/components/hydreon_rgxx/sensor.py +1 -1
- esphome/components/i2c/__init__.py +23 -11
- esphome/components/i2c/i2c_bus.h +8 -1
- esphome/components/i2c/i2c_bus_arduino.cpp +4 -3
- esphome/components/i2c/i2c_bus_arduino.h +6 -3
- esphome/components/i2c/i2c_bus_esp_idf.h +5 -3
- esphome/components/i2c_device/i2c_device.h +0 -1
- esphome/components/i2s_audio/__init__.py +2 -10
- esphome/components/i2s_audio/i2s_audio.cpp +1 -5
- esphome/components/i2s_audio/media_player/__init__.py +2 -2
- esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp +2 -2
- esphome/components/iaqcore/iaqcore.h +0 -2
- esphome/components/image/__init__.py +123 -24
- esphome/components/improv_serial/improv_serial_component.cpp +0 -4
- esphome/components/ina219/ina219.cpp +7 -0
- esphome/components/ina219/ina219.h +1 -0
- esphome/components/ina260/ina260.h +0 -2
- esphome/components/inkbird_ibsth1_mini/inkbird_ibsth1_mini.h +0 -1
- esphome/components/inkplate6/display.py +15 -0
- esphome/components/inkplate6/inkplate.cpp +2 -2
- esphome/components/integration/integration_sensor.h +0 -1
- esphome/components/internal_temperature/internal_temperature.cpp +8 -27
- esphome/components/internal_temperature/sensor.py +0 -26
- esphome/components/interval/interval.h +0 -2
- esphome/components/ld2410/button/__init__.py +3 -3
- esphome/components/ld2410/button/factory_reset_button.cpp +9 -0
- esphome/components/ld2410/button/{reset_button.h → factory_reset_button.h} +2 -2
- esphome/components/ld2410/ld2410.cpp +421 -268
- esphome/components/ld2410/ld2410.h +44 -146
- esphome/components/ld2410/number/__init__.py +2 -2
- esphome/components/ld2410/sensor.py +1 -1
- esphome/components/ld2410/switch/__init__.py +1 -1
- esphome/components/ld2420/ld2420.cpp +196 -100
- esphome/components/ld2420/ld2420.h +46 -118
- esphome/components/ld2420/number/__init__.py +2 -2
- esphome/components/ld2420/sensor/__init__.py +6 -2
- esphome/components/ld2420/sensor/ld2420_sensor.h +1 -1
- esphome/components/ld2450/button/__init__.py +3 -3
- esphome/components/ld2450/button/factory_reset_button.cpp +9 -0
- esphome/components/ld2450/button/{reset_button.h → factory_reset_button.h} +2 -2
- esphome/components/ld2450/ld2450.cpp +384 -232
- esphome/components/ld2450/ld2450.h +60 -69
- esphome/components/ld2450/switch/__init__.py +1 -1
- esphome/components/ledc/ledc_output.cpp +1 -63
- esphome/components/libretiny/__init__.py +5 -3
- esphome/components/libretiny/const.py +5 -0
- esphome/components/libretiny/generate_components.py +1 -0
- esphome/components/libretiny/helpers.cpp +35 -0
- esphome/components/libretiny/lt_component.cpp +5 -3
- esphome/components/light/__init__.py +4 -2
- esphome/components/light/addressable_light.h +3 -3
- esphome/components/light/light_call.cpp +180 -243
- esphome/components/light/light_call.h +72 -20
- esphome/components/light/light_color_values.h +14 -14
- esphome/components/light/light_state.h +15 -13
- esphome/components/light/transformers.h +2 -2
- esphome/components/ln882x/__init__.py +52 -0
- esphome/components/ln882x/boards.py +285 -0
- esphome/components/lock/__init__.py +5 -2
- esphome/components/logger/__init__.py +40 -3
- esphome/components/logger/logger.cpp +47 -12
- esphome/components/logger/logger.h +80 -49
- esphome/components/logger/logger_esp32.cpp +3 -3
- esphome/components/lps22/__init__.py +0 -0
- esphome/components/lps22/lps22.cpp +75 -0
- esphome/components/lps22/lps22.h +27 -0
- esphome/components/lps22/sensor.py +58 -0
- esphome/components/ltr390/ltr390.h +0 -1
- esphome/components/ltr501/ltr501.h +0 -1
- esphome/components/ltr_als_ps/ltr_als_ps.h +0 -1
- esphome/components/lvgl/__init__.py +1 -1
- esphome/components/lvgl/schemas.py +66 -6
- esphome/components/lvgl/styles.py +24 -16
- esphome/components/lvgl/widgets/__init__.py +12 -2
- esphome/components/lvgl/widgets/lv_bar.py +40 -19
- esphome/components/m5stack_8angle/light/m5stack_8angle_light.cpp +1 -1
- esphome/components/max9611/max9611.h +0 -1
- esphome/components/mcp23016/__init__.py +1 -1
- esphome/components/mcp23xxx_base/__init__.py +1 -1
- esphome/components/mcp4461/__init__.py +1 -1
- esphome/components/mcp4461/output/__init__.py +3 -2
- esphome/components/mcp9600/mcp9600.h +0 -2
- esphome/components/md5/md5.cpp +3 -3
- esphome/components/md5/md5.h +1 -6
- esphome/components/mdns/__init__.py +22 -11
- esphome/components/media_player/__init__.py +4 -3
- esphome/components/micro_wake_word/__init__.py +1 -5
- esphome/components/micro_wake_word/streaming_model.cpp +2 -2
- esphome/components/microphone/microphone.cpp +7 -9
- esphome/components/microphone/microphone.h +0 -2
- esphome/components/mipi_spi/display.py +1 -0
- esphome/components/mmc5603/mmc5603.cpp +1 -1
- esphome/components/modbus/modbus.cpp +33 -15
- esphome/components/modbus/modbus.h +9 -0
- esphome/components/modbus_controller/__init__.py +42 -10
- esphome/components/modbus_controller/modbus_controller.cpp +92 -11
- esphome/components/modbus_controller/modbus_controller.h +61 -7
- esphome/components/mopeka_pro_check/mopeka_pro_check.h +0 -1
- esphome/components/mopeka_std_check/mopeka_std_check.h +0 -1
- esphome/components/mpl3115a2/mpl3115a2.h +0 -2
- esphome/components/mqtt/__init__.py +16 -0
- esphome/components/mqtt/mqtt_backend.h +2 -1
- esphome/components/mqtt/mqtt_backend_esp32.cpp +132 -47
- esphome/components/mqtt/mqtt_backend_esp32.h +106 -4
- esphome/components/mqtt/mqtt_client.cpp +15 -9
- esphome/components/mqtt/mqtt_client.h +8 -3
- esphome/components/ms8607/ms8607.h +0 -1
- esphome/components/neopixelbus/light.py +4 -1
- esphome/components/neopixelbus/neopixelbus_light.h +1 -1
- esphome/components/network/__init__.py +4 -1
- esphome/components/network/ip_address.h +1 -0
- esphome/components/nextion/__init__.py +16 -0
- esphome/components/nextion/base_component.py +1 -0
- esphome/components/nextion/binary_sensor/nextion_binarysensor.cpp +1 -1
- esphome/components/nextion/display.py +14 -4
- esphome/components/nextion/nextion.cpp +166 -101
- esphome/components/nextion/nextion.h +84 -53
- esphome/components/nextion/nextion_commands.cpp +11 -10
- esphome/components/nextion/nextion_component.cpp +28 -28
- esphome/components/nextion/nextion_component.h +53 -18
- esphome/components/nextion/nextion_component_base.h +3 -0
- esphome/components/nextion/nextion_upload.cpp +36 -0
- esphome/components/nextion/nextion_upload_arduino.cpp +10 -35
- esphome/components/nextion/nextion_upload_idf.cpp +9 -33
- esphome/components/nextion/sensor/nextion_sensor.cpp +1 -1
- esphome/components/nextion/switch/nextion_switch.cpp +1 -1
- esphome/components/nextion/text_sensor/nextion_textsensor.cpp +1 -1
- esphome/components/nfc/nfc.cpp +3 -22
- esphome/components/nfc/nfc.h +3 -3
- esphome/components/number/__init__.py +5 -2
- esphome/components/online_image/__init__.py +5 -0
- esphome/components/online_image/online_image.cpp +6 -2
- esphome/components/online_image/online_image.h +4 -1
- esphome/components/opentherm/opentherm.cpp +7 -12
- esphome/components/openthread/__init__.py +47 -40
- esphome/components/openthread/const.py +1 -0
- esphome/components/openthread/openthread_esp.cpp +27 -5
- esphome/components/opt3001/__init__.py +0 -0
- esphome/components/opt3001/opt3001.cpp +122 -0
- esphome/components/opt3001/opt3001.h +27 -0
- esphome/components/opt3001/sensor.py +35 -0
- esphome/components/ota/__init__.py +17 -0
- esphome/components/ota/ota_backend.h +27 -1
- esphome/components/ota/ota_backend_arduino_esp32.cpp +12 -2
- esphome/components/ota/ota_backend_arduino_esp32.h +3 -0
- esphome/components/ota/ota_backend_arduino_esp8266.cpp +18 -4
- esphome/components/ota/ota_backend_arduino_esp8266.h +3 -0
- esphome/components/ota/ota_backend_arduino_libretiny.cpp +12 -2
- esphome/components/ota/ota_backend_arduino_libretiny.h +3 -0
- esphome/components/ota/ota_backend_arduino_rp2040.cpp +9 -2
- esphome/components/ota/ota_backend_arduino_rp2040.h +3 -0
- esphome/components/ota/ota_backend_esp_idf.cpp +10 -16
- esphome/components/ota/ota_backend_esp_idf.h +1 -0
- esphome/components/packages/__init__.py +5 -2
- esphome/components/packet_transport/binary_sensor.py +61 -4
- esphome/components/packet_transport/packet_transport.cpp +34 -1
- esphome/components/packet_transport/packet_transport.h +11 -5
- esphome/components/pcf8574/__init__.py +1 -1
- esphome/components/pi4ioe5v6408/__init__.py +84 -0
- esphome/components/pi4ioe5v6408/pi4ioe5v6408.cpp +171 -0
- esphome/components/pi4ioe5v6408/pi4ioe5v6408.h +70 -0
- esphome/components/pmsa003i/pmsa003i.h +0 -1
- esphome/components/pmsx003/pmsx003.h +0 -1
- esphome/components/pn7150/pn7150.cpp +7 -7
- esphome/components/pn7150/pn7150.h +0 -1
- esphome/components/pn7160/pn7160.cpp +7 -7
- esphome/components/pn7160/pn7160.h +0 -1
- esphome/components/preferences/syncer.h +2 -0
- esphome/components/prometheus/prometheus_handler.h +1 -1
- esphome/components/psram/psram.cpp +0 -20
- esphome/components/pulse_counter/pulse_counter_sensor.h +0 -1
- esphome/components/pulse_meter/pulse_meter_sensor.cpp +8 -4
- esphome/components/pulse_width/pulse_width.h +0 -1
- esphome/components/pvvx_mithermometer/display/pvvx_display.cpp +0 -4
- esphome/components/pvvx_mithermometer/display/pvvx_display.h +0 -2
- esphome/components/pvvx_mithermometer/pvvx_mithermometer.h +0 -1
- esphome/components/qr_code/__init__.py +13 -10
- esphome/components/qwiic_pir/qwiic_pir.h +0 -1
- esphome/components/radon_eye_ble/radon_eye_listener.cpp +1 -1
- esphome/components/rc522/rc522.h +0 -1
- esphome/components/rdm6300/rdm6300.h +0 -2
- esphome/components/remote_base/__init__.py +7 -5
- esphome/components/remote_base/remote_base.cpp +24 -21
- esphome/components/remote_base/remote_base.h +3 -26
- esphome/components/remote_receiver/__init__.py +40 -46
- esphome/components/remote_receiver/remote_receiver.h +4 -18
- esphome/components/remote_receiver/remote_receiver_esp32.cpp +0 -87
- esphome/components/remote_receiver/remote_receiver_esp8266.cpp +1 -1
- esphome/components/remote_transmitter/__init__.py +42 -43
- esphome/components/remote_transmitter/remote_transmitter.h +2 -14
- esphome/components/remote_transmitter/remote_transmitter_esp32.cpp +0 -77
- esphome/components/resistance/resistance_sensor.h +0 -1
- esphome/components/rp2040/__init__.py +2 -0
- esphome/components/rp2040/helpers.cpp +55 -0
- esphome/components/rp2040_pio_led_strip/led_strip.cpp +2 -2
- esphome/components/rpi_dpi_rgb/rpi_dpi_rgb.cpp +0 -4
- esphome/components/rtttl/__init__.py +4 -4
- esphome/components/rtttl/rtttl.cpp +10 -1
- esphome/components/ruuvitag/ruuvitag.h +0 -1
- esphome/components/safe_mode/safe_mode.cpp +2 -0
- esphome/components/safe_mode/safe_mode.h +4 -1
- esphome/components/scd30/scd30.h +0 -1
- esphome/components/scd30/sensor.py +2 -2
- esphome/components/scd4x/scd4x.cpp +61 -54
- esphome/components/scd4x/scd4x.h +17 -15
- esphome/components/scd4x/sensor.py +4 -4
- esphome/components/script/script.h +0 -2
- esphome/components/sdp3x/sensor.py +1 -1
- esphome/components/select/__init__.py +5 -2
- esphome/components/sen5x/sen5x.h +0 -1
- esphome/components/senseair/senseair.h +0 -1
- esphome/components/sensor/__init__.py +4 -2
- esphome/components/sensor/filter.cpp +1 -1
- esphome/components/sensor/sensor.cpp +12 -6
- esphome/components/sensor/sensor.h +13 -5
- esphome/components/servo/servo.h +0 -1
- esphome/components/sfa30/sfa30.h +0 -1
- esphome/components/sgp30/sgp30.h +0 -1
- esphome/components/sgp4x/sgp4x.h +0 -1
- esphome/components/shelly_dimmer/stm32flash.cpp +1 -2
- esphome/components/sht4x/sht4x.h +0 -1
- esphome/components/sm300d2/sm300d2.h +0 -2
- esphome/components/smt100/sensor.py +8 -4
- esphome/components/smt100/smt100.cpp +5 -5
- esphome/components/smt100/smt100.h +3 -3
- esphome/components/sn74hc595/__init__.py +1 -1
- esphome/components/sn74hc595/sn74hc595.cpp +5 -4
- esphome/components/sntp/sntp_component.cpp +9 -3
- esphome/components/sntp/time.py +2 -0
- esphome/components/socket/__init__.py +17 -0
- esphome/components/spi/__init__.py +27 -6
- esphome/components/spi/spi.cpp +3 -2
- esphome/components/spi/spi.h +9 -3
- esphome/components/spi/spi_arduino.cpp +3 -5
- esphome/components/spi/spi_esp_idf.cpp +40 -21
- esphome/components/spi_led_strip/spi_led_strip.cpp +1 -1
- esphome/components/sps30/sps30.h +0 -1
- esphome/components/ssd1306_base/ssd1306_base.cpp +1 -1
- esphome/components/st7701s/st7701s.cpp +0 -4
- esphome/components/status/status_binary_sensor.h +0 -2
- esphome/components/substitutions/__init__.py +76 -19
- esphome/components/substitutions/jinja.py +99 -0
- esphome/components/sun/sun.cpp +3 -4
- esphome/components/switch/__init__.py +5 -2
- esphome/components/switch/binary_sensor/switch_binary_sensor.h +0 -1
- esphome/components/sx126x/__init__.py +317 -0
- esphome/components/sx126x/automation.h +62 -0
- esphome/components/sx126x/packet_transport/__init__.py +26 -0
- esphome/components/sx126x/packet_transport/sx126x_transport.cpp +26 -0
- esphome/components/sx126x/packet_transport/sx126x_transport.h +25 -0
- esphome/components/sx126x/sx126x.cpp +523 -0
- esphome/components/sx126x/sx126x.h +140 -0
- esphome/components/sx126x/sx126x_reg.h +163 -0
- esphome/components/sx127x/__init__.py +325 -0
- esphome/components/sx127x/automation.h +62 -0
- esphome/components/sx127x/packet_transport/__init__.py +26 -0
- esphome/components/sx127x/packet_transport/sx127x_transport.cpp +26 -0
- esphome/components/sx127x/packet_transport/sx127x_transport.h +25 -0
- esphome/components/sx127x/sx127x.cpp +498 -0
- esphome/components/sx127x/sx127x.h +128 -0
- esphome/components/sx127x/sx127x_reg.h +295 -0
- esphome/components/syslog/esphome_syslog.cpp +5 -3
- esphome/components/syslog/esphome_syslog.h +1 -1
- esphome/components/tca9555/__init__.py +1 -1
- esphome/components/template/binary_sensor/template_binary_sensor.cpp +1 -9
- esphome/components/text/__init__.py +5 -2
- esphome/components/text_sensor/__init__.py +5 -2
- esphome/components/thermostat/thermostat_climate.cpp +34 -31
- esphome/components/thermostat/thermostat_climate.h +43 -39
- esphome/components/time/__init__.py +16 -2
- esphome/components/time/real_time_clock.cpp +4 -0
- esphome/components/time/real_time_clock.h +5 -1
- esphome/components/tlc5971/tlc5971.cpp +4 -1
- esphome/components/tmp1075/tmp1075.h +0 -2
- esphome/components/tof10120/tof10120_sensor.h +0 -1
- esphome/components/tormatic/tormatic_cover.h +0 -1
- esphome/components/total_daily_energy/total_daily_energy.h +0 -1
- esphome/components/tsl2591/tsl2591.cpp +1 -1
- esphome/components/ttp229_bsf/ttp229_bsf.h +0 -1
- esphome/components/ttp229_lsf/ttp229_lsf.h +0 -1
- esphome/components/tx20/tx20.cpp +2 -2
- esphome/components/uart/__init__.py +18 -0
- esphome/components/uart/uart_component_esp_idf.cpp +0 -4
- esphome/components/update/__init__.py +5 -2
- esphome/components/update/update_entity.h +8 -0
- esphome/components/usb_host/__init__.py +5 -2
- esphome/components/usb_host/usb_host_client.cpp +10 -10
- esphome/components/usb_uart/cp210x.cpp +1 -1
- esphome/components/usb_uart/usb_uart.cpp +41 -44
- esphome/components/usb_uart/usb_uart.h +4 -3
- esphome/components/valve/__init__.py +5 -2
- esphome/components/vbus/vbus.h +0 -1
- esphome/components/veml3235/veml3235.h +0 -1
- esphome/components/veml7700/veml7700.h +0 -1
- esphome/components/vl53l0x/vl53l0x_sensor.h +0 -1
- esphome/components/voice_assistant/voice_assistant.cpp +4 -4
- esphome/components/watchdog/watchdog.cpp +0 -4
- esphome/components/waveshare_epaper/waveshare_epaper.cpp +6 -6
- esphome/components/web_server/__init__.py +34 -19
- esphome/components/web_server/ota/__init__.py +32 -0
- esphome/components/web_server/ota/ota_web_server.cpp +210 -0
- esphome/components/web_server/ota/ota_web_server.h +26 -0
- esphome/components/web_server/web_server.cpp +305 -427
- esphome/components/web_server/web_server.h +33 -23
- esphome/components/web_server/web_server_v1.cpp +4 -5
- esphome/components/web_server_base/__init__.py +5 -2
- esphome/components/web_server_base/web_server_base.cpp +2 -94
- esphome/components/web_server_base/web_server_base.h +5 -25
- esphome/components/web_server_idf/multipart.cpp +254 -0
- esphome/components/web_server_idf/multipart.h +86 -0
- esphome/components/web_server_idf/utils.cpp +32 -0
- esphome/components/web_server_idf/utils.h +10 -0
- esphome/components/web_server_idf/web_server_idf.cpp +162 -16
- esphome/components/web_server_idf/web_server_idf.h +11 -10
- esphome/components/wiegand/wiegand.cpp +2 -2
- esphome/components/wifi/__init__.py +18 -0
- esphome/components/wifi/wifi_component.cpp +17 -22
- esphome/components/wifi/wifi_component.h +27 -23
- esphome/components/wifi/wifi_component_esp32_arduino.cpp +52 -59
- esphome/components/wifi/wifi_component_esp8266.cpp +46 -46
- esphome/components/wifi/wifi_component_esp_idf.cpp +35 -36
- esphome/components/wifi/wifi_component_libretiny.cpp +26 -27
- esphome/components/wifi/wifi_component_pico_w.cpp +3 -3
- esphome/components/wifi_info/wifi_info_text_sensor.cpp +6 -6
- esphome/components/wireguard/__init__.py +2 -11
- esphome/components/xiaomi_ble/xiaomi_ble.cpp +13 -1
- esphome/components/xiaomi_ble/xiaomi_ble.h +1 -0
- esphome/components/xiaomi_cgd1/xiaomi_cgd1.h +0 -1
- esphome/components/xiaomi_cgdk2/xiaomi_cgdk2.h +0 -1
- esphome/components/xiaomi_cgg1/xiaomi_cgg1.h +0 -1
- esphome/components/xiaomi_cgpr1/xiaomi_cgpr1.h +0 -1
- esphome/components/xiaomi_gcls002/xiaomi_gcls002.h +0 -1
- esphome/components/xiaomi_hhccjcy01/xiaomi_hhccjcy01.h +0 -1
- esphome/components/xiaomi_hhccjcy10/xiaomi_hhccjcy10.h +0 -1
- esphome/components/xiaomi_hhccpot002/xiaomi_hhccpot002.h +0 -1
- esphome/components/xiaomi_jqjcy01ym/xiaomi_jqjcy01ym.h +0 -1
- esphome/components/xiaomi_lywsd02/xiaomi_lywsd02.h +0 -1
- esphome/components/xiaomi_lywsd02mmc/xiaomi_lywsd02mmc.h +0 -1
- esphome/components/xiaomi_lywsd03mmc/xiaomi_lywsd03mmc.h +0 -1
- esphome/components/xiaomi_lywsdcgq/xiaomi_lywsdcgq.h +0 -1
- esphome/components/xiaomi_mhoc303/xiaomi_mhoc303.h +0 -1
- esphome/components/xiaomi_mhoc401/xiaomi_mhoc401.h +0 -1
- esphome/components/xiaomi_miscale/xiaomi_miscale.h +0 -1
- esphome/components/xiaomi_mjyd02yla/xiaomi_mjyd02yla.h +0 -1
- esphome/components/xiaomi_mue4094rt/xiaomi_mue4094rt.h +0 -1
- esphome/components/xiaomi_rtcgq02lm/xiaomi_rtcgq02lm.h +0 -1
- esphome/components/xiaomi_wx08zm/xiaomi_wx08zm.h +0 -1
- esphome/components/xiaomi_xmwsdj04mmc/__init__.py +0 -0
- esphome/components/xiaomi_xmwsdj04mmc/sensor.py +77 -0
- esphome/components/xiaomi_xmwsdj04mmc/xiaomi_xmwsdj04mmc.cpp +77 -0
- esphome/components/xiaomi_xmwsdj04mmc/xiaomi_xmwsdj04mmc.h +36 -0
- esphome/components/zio_ultrasonic/zio_ultrasonic.h +0 -2
- esphome/components/zyaura/zyaura.h +0 -1
- esphome/config.py +88 -22
- esphome/config_helpers.py +74 -1
- esphome/config_validation.py +12 -1
- esphome/const.py +65 -10
- esphome/core/__init__.py +18 -2
- esphome/core/application.cpp +163 -10
- esphome/core/application.h +145 -165
- esphome/core/area.h +19 -0
- esphome/core/automation.h +58 -9
- esphome/core/color.cpp +3 -5
- esphome/core/color.h +16 -16
- esphome/core/component.cpp +151 -18
- esphome/core/component.h +98 -4
- esphome/core/component_iterator.cpp +11 -9
- esphome/core/component_iterator.h +12 -10
- esphome/core/config.py +155 -6
- esphome/core/controller.cpp +4 -2
- esphome/core/controller.h +1 -1
- esphome/core/datatypes.h +2 -2
- esphome/core/defines.h +17 -2
- esphome/core/device.h +20 -0
- esphome/core/entity_base.cpp +20 -15
- esphome/core/entity_base.h +76 -0
- esphome/core/entity_helpers.py +168 -1
- esphome/core/event_pool.h +81 -0
- esphome/core/helpers.cpp +75 -230
- esphome/core/helpers.h +164 -104
- esphome/core/lock_free_queue.h +151 -0
- esphome/core/log.cpp +2 -2
- esphome/core/log.h +2 -0
- esphome/core/optional.h +5 -0
- esphome/core/ring_buffer.cpp +2 -2
- esphome/core/scheduler.cpp +275 -103
- esphome/core/scheduler.h +154 -17
- esphome/core/time.cpp +5 -5
- esphome/core/time.h +5 -5
- esphome/cpp_generator.py +17 -0
- esphome/cpp_helpers.py +0 -22
- esphome/cpp_types.py +3 -1
- esphome/dashboard/entries.py +1 -1
- esphome/dashboard/util/text.py +5 -21
- esphome/dashboard/web_server.py +9 -1
- esphome/helpers.py +47 -0
- esphome/loader.py +15 -1
- esphome/pins.py +14 -8
- esphome/wizard.py +17 -4
- esphome/writer.py +21 -3
- esphome/yaml_util.py +0 -2
- {esphome-2025.6.3.dist-info → esphome-2025.7.0b2.dist-info}/METADATA +10 -9
- {esphome-2025.6.3.dist-info → esphome-2025.7.0b2.dist-info}/RECORD +597 -538
- esphome/components/api/api_pb2_size.h +0 -361
- esphome/components/esp32_ble/ble_event_pool.h +0 -72
- esphome/components/esp32_ble/queue.h +0 -85
- esphome/components/esp32_hall/esp32_hall.cpp +0 -25
- esphome/components/esp32_hall/esp32_hall.h +0 -23
- esphome/components/esp32_touch/esp32_touch.cpp +0 -355
- esphome/components/ld2410/button/reset_button.cpp +0 -9
- esphome/components/ld2450/button/reset_button.cpp +0 -9
- esphome/components/openthread/tlv.py +0 -65
- /esphome/{dashboard/enum.py → enum.py} +0 -0
- {esphome-2025.6.3.dist-info → esphome-2025.7.0b2.dist-info}/WHEEL +0 -0
- {esphome-2025.6.3.dist-info → esphome-2025.7.0b2.dist-info}/entry_points.txt +0 -0
- {esphome-2025.6.3.dist-info → esphome-2025.7.0b2.dist-info}/licenses/LICENSE +0 -0
- {esphome-2025.6.3.dist-info → esphome-2025.7.0b2.dist-info}/top_level.txt +0 -0
|
@@ -59,17 +59,17 @@ bool WiFiComponent::wifi_mode_(optional<bool> sta, optional<bool> ap) {
|
|
|
59
59
|
return true;
|
|
60
60
|
|
|
61
61
|
if (target_sta && !current_sta) {
|
|
62
|
-
ESP_LOGV(TAG, "Enabling STA
|
|
62
|
+
ESP_LOGV(TAG, "Enabling STA");
|
|
63
63
|
} else if (!target_sta && current_sta) {
|
|
64
|
-
ESP_LOGV(TAG, "Disabling STA
|
|
64
|
+
ESP_LOGV(TAG, "Disabling STA");
|
|
65
65
|
// Stop DHCP client when disabling STA
|
|
66
66
|
// See https://github.com/esp8266/Arduino/pull/5703
|
|
67
67
|
wifi_station_dhcpc_stop();
|
|
68
68
|
}
|
|
69
69
|
if (target_ap && !current_ap) {
|
|
70
|
-
ESP_LOGV(TAG, "Enabling AP
|
|
70
|
+
ESP_LOGV(TAG, "Enabling AP");
|
|
71
71
|
} else if (!target_ap && current_ap) {
|
|
72
|
-
ESP_LOGV(TAG, "Disabling AP
|
|
72
|
+
ESP_LOGV(TAG, "Disabling AP");
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
ETS_UART_INTR_DISABLE();
|
|
@@ -82,7 +82,7 @@ bool WiFiComponent::wifi_mode_(optional<bool> sta, optional<bool> ap) {
|
|
|
82
82
|
ETS_UART_INTR_ENABLE();
|
|
83
83
|
|
|
84
84
|
if (!ret) {
|
|
85
|
-
ESP_LOGW(TAG, "
|
|
85
|
+
ESP_LOGW(TAG, "Set mode failed");
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
return ret;
|
|
@@ -133,7 +133,7 @@ bool WiFiComponent::wifi_sta_ip_config_(optional<ManualIP> manual_ip) {
|
|
|
133
133
|
if (dhcp_status != DHCP_STARTED) {
|
|
134
134
|
bool ret = wifi_station_dhcpc_start();
|
|
135
135
|
if (!ret) {
|
|
136
|
-
ESP_LOGV(TAG, "Starting DHCP client failed
|
|
136
|
+
ESP_LOGV(TAG, "Starting DHCP client failed");
|
|
137
137
|
}
|
|
138
138
|
return ret;
|
|
139
139
|
}
|
|
@@ -157,13 +157,13 @@ bool WiFiComponent::wifi_sta_ip_config_(optional<ManualIP> manual_ip) {
|
|
|
157
157
|
if (dhcp_status == DHCP_STARTED) {
|
|
158
158
|
bool dhcp_stop_ret = wifi_station_dhcpc_stop();
|
|
159
159
|
if (!dhcp_stop_ret) {
|
|
160
|
-
ESP_LOGV(TAG, "Stopping DHCP client failed
|
|
160
|
+
ESP_LOGV(TAG, "Stopping DHCP client failed");
|
|
161
161
|
ret = false;
|
|
162
162
|
}
|
|
163
163
|
}
|
|
164
164
|
bool wifi_set_info_ret = wifi_set_ip_info(STATION_IF, &info);
|
|
165
165
|
if (!wifi_set_info_ret) {
|
|
166
|
-
ESP_LOGV(TAG, "
|
|
166
|
+
ESP_LOGV(TAG, "Set manual IP info failed");
|
|
167
167
|
ret = false;
|
|
168
168
|
}
|
|
169
169
|
|
|
@@ -202,7 +202,7 @@ bool WiFiComponent::wifi_apply_hostname_() {
|
|
|
202
202
|
const std::string &hostname = App.get_name();
|
|
203
203
|
bool ret = wifi_station_set_hostname(const_cast<char *>(hostname.c_str()));
|
|
204
204
|
if (!ret) {
|
|
205
|
-
ESP_LOGV(TAG, "
|
|
205
|
+
ESP_LOGV(TAG, "Set hostname failed");
|
|
206
206
|
}
|
|
207
207
|
|
|
208
208
|
// inform dhcp server of hostname change using dhcp_renew()
|
|
@@ -237,11 +237,11 @@ bool WiFiComponent::wifi_sta_connect_(const WiFiAP &ap) {
|
|
|
237
237
|
struct station_config conf {};
|
|
238
238
|
memset(&conf, 0, sizeof(conf));
|
|
239
239
|
if (ap.get_ssid().size() > sizeof(conf.ssid)) {
|
|
240
|
-
ESP_LOGE(TAG, "SSID
|
|
240
|
+
ESP_LOGE(TAG, "SSID too long");
|
|
241
241
|
return false;
|
|
242
242
|
}
|
|
243
243
|
if (ap.get_password().size() > sizeof(conf.password)) {
|
|
244
|
-
ESP_LOGE(TAG, "
|
|
244
|
+
ESP_LOGE(TAG, "Password too long");
|
|
245
245
|
return false;
|
|
246
246
|
}
|
|
247
247
|
memcpy(reinterpret_cast<char *>(conf.ssid), ap.get_ssid().c_str(), ap.get_ssid().size());
|
|
@@ -269,7 +269,7 @@ bool WiFiComponent::wifi_sta_connect_(const WiFiAP &ap) {
|
|
|
269
269
|
ETS_UART_INTR_ENABLE();
|
|
270
270
|
|
|
271
271
|
if (!ret) {
|
|
272
|
-
ESP_LOGV(TAG, "
|
|
272
|
+
ESP_LOGV(TAG, "Set Station config failed");
|
|
273
273
|
return false;
|
|
274
274
|
}
|
|
275
275
|
|
|
@@ -284,7 +284,7 @@ bool WiFiComponent::wifi_sta_connect_(const WiFiAP &ap) {
|
|
|
284
284
|
EAPAuth eap = ap.get_eap().value();
|
|
285
285
|
ret = wifi_station_set_enterprise_identity((uint8_t *) eap.identity.c_str(), eap.identity.length());
|
|
286
286
|
if (ret) {
|
|
287
|
-
ESP_LOGV(TAG, "esp_wifi_sta_wpa2_ent_set_identity failed
|
|
287
|
+
ESP_LOGV(TAG, "esp_wifi_sta_wpa2_ent_set_identity failed: %d", ret);
|
|
288
288
|
}
|
|
289
289
|
int ca_cert_len = strlen(eap.ca_cert);
|
|
290
290
|
int client_cert_len = strlen(eap.client_cert);
|
|
@@ -292,7 +292,7 @@ bool WiFiComponent::wifi_sta_connect_(const WiFiAP &ap) {
|
|
|
292
292
|
if (ca_cert_len) {
|
|
293
293
|
ret = wifi_station_set_enterprise_ca_cert((uint8_t *) eap.ca_cert, ca_cert_len + 1);
|
|
294
294
|
if (ret) {
|
|
295
|
-
ESP_LOGV(TAG, "esp_wifi_sta_wpa2_ent_set_ca_cert failed
|
|
295
|
+
ESP_LOGV(TAG, "esp_wifi_sta_wpa2_ent_set_ca_cert failed: %d", ret);
|
|
296
296
|
}
|
|
297
297
|
}
|
|
298
298
|
// workout what type of EAP this is
|
|
@@ -303,22 +303,22 @@ bool WiFiComponent::wifi_sta_connect_(const WiFiAP &ap) {
|
|
|
303
303
|
(uint8_t *) eap.client_key, client_key_len + 1,
|
|
304
304
|
(uint8_t *) eap.password.c_str(), strlen(eap.password.c_str()));
|
|
305
305
|
if (ret) {
|
|
306
|
-
ESP_LOGV(TAG, "esp_wifi_sta_wpa2_ent_set_cert_key failed
|
|
306
|
+
ESP_LOGV(TAG, "esp_wifi_sta_wpa2_ent_set_cert_key failed: %d", ret);
|
|
307
307
|
}
|
|
308
308
|
} else {
|
|
309
309
|
// in the absence of certs, assume this is username/password based
|
|
310
310
|
ret = wifi_station_set_enterprise_username((uint8_t *) eap.username.c_str(), eap.username.length());
|
|
311
311
|
if (ret) {
|
|
312
|
-
ESP_LOGV(TAG, "esp_wifi_sta_wpa2_ent_set_username failed
|
|
312
|
+
ESP_LOGV(TAG, "esp_wifi_sta_wpa2_ent_set_username failed: %d", ret);
|
|
313
313
|
}
|
|
314
314
|
ret = wifi_station_set_enterprise_password((uint8_t *) eap.password.c_str(), eap.password.length());
|
|
315
315
|
if (ret) {
|
|
316
|
-
ESP_LOGV(TAG, "esp_wifi_sta_wpa2_ent_set_password failed
|
|
316
|
+
ESP_LOGV(TAG, "esp_wifi_sta_wpa2_ent_set_password failed: %d", ret);
|
|
317
317
|
}
|
|
318
318
|
}
|
|
319
319
|
ret = wifi_station_set_wpa2_enterprise_auth(true);
|
|
320
320
|
if (ret) {
|
|
321
|
-
ESP_LOGV(TAG, "esp_wifi_sta_wpa2_ent_enable failed
|
|
321
|
+
ESP_LOGV(TAG, "esp_wifi_sta_wpa2_ent_enable failed: %d", ret);
|
|
322
322
|
}
|
|
323
323
|
}
|
|
324
324
|
#endif // USE_WIFI_WPA2_EAP
|
|
@@ -337,7 +337,7 @@ bool WiFiComponent::wifi_sta_connect_(const WiFiAP &ap) {
|
|
|
337
337
|
ret = wifi_station_connect();
|
|
338
338
|
ETS_UART_INTR_ENABLE();
|
|
339
339
|
if (!ret) {
|
|
340
|
-
ESP_LOGV(TAG, "wifi_station_connect failed
|
|
340
|
+
ESP_LOGV(TAG, "wifi_station_connect failed");
|
|
341
341
|
return false;
|
|
342
342
|
}
|
|
343
343
|
|
|
@@ -359,7 +359,7 @@ bool WiFiComponent::wifi_sta_connect_(const WiFiAP &ap) {
|
|
|
359
359
|
if (ap.get_channel().has_value()) {
|
|
360
360
|
ret = wifi_set_channel(*ap.get_channel());
|
|
361
361
|
if (!ret) {
|
|
362
|
-
ESP_LOGV(TAG, "wifi_set_channel failed
|
|
362
|
+
ESP_LOGV(TAG, "wifi_set_channel failed");
|
|
363
363
|
return false;
|
|
364
364
|
}
|
|
365
365
|
}
|
|
@@ -496,7 +496,7 @@ void WiFiComponent::wifi_event_callback(System_Event_t *event) {
|
|
|
496
496
|
char buf[33];
|
|
497
497
|
memcpy(buf, it.ssid, it.ssid_len);
|
|
498
498
|
buf[it.ssid_len] = '\0';
|
|
499
|
-
ESP_LOGV(TAG, "
|
|
499
|
+
ESP_LOGV(TAG, "Connected ssid='%s' bssid=%s channel=%u", buf, format_mac_address_pretty(it.bssid).c_str(),
|
|
500
500
|
it.channel);
|
|
501
501
|
s_sta_connected = true;
|
|
502
502
|
break;
|
|
@@ -507,11 +507,11 @@ void WiFiComponent::wifi_event_callback(System_Event_t *event) {
|
|
|
507
507
|
memcpy(buf, it.ssid, it.ssid_len);
|
|
508
508
|
buf[it.ssid_len] = '\0';
|
|
509
509
|
if (it.reason == REASON_NO_AP_FOUND) {
|
|
510
|
-
ESP_LOGW(TAG, "
|
|
510
|
+
ESP_LOGW(TAG, "Disconnected ssid='%s' reason='Probe Request Unsuccessful'", buf);
|
|
511
511
|
s_sta_connect_not_found = true;
|
|
512
512
|
} else {
|
|
513
|
-
ESP_LOGW(TAG, "
|
|
514
|
-
|
|
513
|
+
ESP_LOGW(TAG, "Disconnected ssid='%s' bssid=" LOG_SECRET("%s") " reason='%s'", buf,
|
|
514
|
+
format_mac_address_pretty(it.bssid).c_str(), LOG_STR_ARG(get_disconnect_reason_str(it.reason)));
|
|
515
515
|
s_sta_connect_error = true;
|
|
516
516
|
}
|
|
517
517
|
s_sta_connected = false;
|
|
@@ -520,7 +520,7 @@ void WiFiComponent::wifi_event_callback(System_Event_t *event) {
|
|
|
520
520
|
}
|
|
521
521
|
case EVENT_STAMODE_AUTHMODE_CHANGE: {
|
|
522
522
|
auto it = event->event_info.auth_change;
|
|
523
|
-
ESP_LOGV(TAG, "
|
|
523
|
+
ESP_LOGV(TAG, "Changed Authmode old=%s new=%s", LOG_STR_ARG(get_auth_mode_str(it.old_mode)),
|
|
524
524
|
LOG_STR_ARG(get_auth_mode_str(it.new_mode)));
|
|
525
525
|
// Mitigate CVE-2020-12638
|
|
526
526
|
// https://lbsfilm.at/blog/wpa2-authenticationmode-downgrade-in-espressif-microprocessors
|
|
@@ -535,40 +535,40 @@ void WiFiComponent::wifi_event_callback(System_Event_t *event) {
|
|
|
535
535
|
}
|
|
536
536
|
case EVENT_STAMODE_GOT_IP: {
|
|
537
537
|
auto it = event->event_info.got_ip;
|
|
538
|
-
ESP_LOGV(TAG, "
|
|
539
|
-
format_ip_addr(it.
|
|
538
|
+
ESP_LOGV(TAG, "static_ip=%s gateway=%s netmask=%s", format_ip_addr(it.ip).c_str(), format_ip_addr(it.gw).c_str(),
|
|
539
|
+
format_ip_addr(it.mask).c_str());
|
|
540
540
|
s_sta_got_ip = true;
|
|
541
541
|
break;
|
|
542
542
|
}
|
|
543
543
|
case EVENT_STAMODE_DHCP_TIMEOUT: {
|
|
544
|
-
ESP_LOGW(TAG, "
|
|
544
|
+
ESP_LOGW(TAG, "DHCP request timeout");
|
|
545
545
|
break;
|
|
546
546
|
}
|
|
547
547
|
case EVENT_SOFTAPMODE_STACONNECTED: {
|
|
548
548
|
auto it = event->event_info.sta_connected;
|
|
549
|
-
ESP_LOGV(TAG, "
|
|
549
|
+
ESP_LOGV(TAG, "AP client connected MAC=%s aid=%u", format_mac_address_pretty(it.mac).c_str(), it.aid);
|
|
550
550
|
break;
|
|
551
551
|
}
|
|
552
552
|
case EVENT_SOFTAPMODE_STADISCONNECTED: {
|
|
553
553
|
auto it = event->event_info.sta_disconnected;
|
|
554
|
-
ESP_LOGV(TAG, "
|
|
554
|
+
ESP_LOGV(TAG, "AP client disconnected MAC=%s aid=%u", format_mac_address_pretty(it.mac).c_str(), it.aid);
|
|
555
555
|
break;
|
|
556
556
|
}
|
|
557
557
|
case EVENT_SOFTAPMODE_PROBEREQRECVED: {
|
|
558
558
|
auto it = event->event_info.ap_probereqrecved;
|
|
559
|
-
ESP_LOGVV(TAG, "
|
|
559
|
+
ESP_LOGVV(TAG, "AP receive Probe Request MAC=%s RSSI=%d", format_mac_address_pretty(it.mac).c_str(), it.rssi);
|
|
560
560
|
break;
|
|
561
561
|
}
|
|
562
562
|
#if USE_ARDUINO_VERSION_CODE >= VERSION_CODE(2, 4, 0)
|
|
563
563
|
case EVENT_OPMODE_CHANGED: {
|
|
564
564
|
auto it = event->event_info.opmode_changed;
|
|
565
|
-
ESP_LOGV(TAG, "
|
|
565
|
+
ESP_LOGV(TAG, "Changed Mode old=%s new=%s", LOG_STR_ARG(get_op_mode_str(it.old_opmode)),
|
|
566
566
|
LOG_STR_ARG(get_op_mode_str(it.new_opmode)));
|
|
567
567
|
break;
|
|
568
568
|
}
|
|
569
569
|
case EVENT_SOFTAPMODE_DISTRIBUTE_STA_IP: {
|
|
570
570
|
auto it = event->event_info.distribute_sta_ip;
|
|
571
|
-
ESP_LOGV(TAG, "
|
|
571
|
+
ESP_LOGV(TAG, "AP Distribute Station IP MAC=%s IP=%s aid=%u", format_mac_address_pretty(it.mac).c_str(),
|
|
572
572
|
format_ip_addr(it.ip).c_str(), it.aid);
|
|
573
573
|
break;
|
|
574
574
|
}
|
|
@@ -600,7 +600,7 @@ bool WiFiComponent::wifi_sta_pre_setup_() {
|
|
|
600
600
|
ETS_UART_INTR_ENABLE();
|
|
601
601
|
|
|
602
602
|
if (!ret1 || !ret2) {
|
|
603
|
-
ESP_LOGV(TAG, "Disabling Auto-Connect failed
|
|
603
|
+
ESP_LOGV(TAG, "Disabling Auto-Connect failed");
|
|
604
604
|
}
|
|
605
605
|
|
|
606
606
|
delay(10);
|
|
@@ -666,7 +666,7 @@ bool WiFiComponent::wifi_scan_start_(bool passive) {
|
|
|
666
666
|
first_scan = false;
|
|
667
667
|
bool ret = wifi_station_scan(&config, &WiFiComponent::s_wifi_scan_done_callback);
|
|
668
668
|
if (!ret) {
|
|
669
|
-
ESP_LOGV(TAG, "wifi_station_scan failed
|
|
669
|
+
ESP_LOGV(TAG, "wifi_station_scan failed");
|
|
670
670
|
return false;
|
|
671
671
|
}
|
|
672
672
|
|
|
@@ -692,7 +692,7 @@ void WiFiComponent::wifi_scan_done_callback_(void *arg, STATUS status) {
|
|
|
692
692
|
this->scan_result_.clear();
|
|
693
693
|
|
|
694
694
|
if (status != OK) {
|
|
695
|
-
ESP_LOGV(TAG, "Scan failed
|
|
695
|
+
ESP_LOGV(TAG, "Scan failed: %d", status);
|
|
696
696
|
this->retry_connect();
|
|
697
697
|
return;
|
|
698
698
|
}
|
|
@@ -725,12 +725,12 @@ bool WiFiComponent::wifi_ap_ip_config_(optional<ManualIP> manual_ip) {
|
|
|
725
725
|
|
|
726
726
|
if (wifi_softap_dhcps_status() == DHCP_STARTED) {
|
|
727
727
|
if (!wifi_softap_dhcps_stop()) {
|
|
728
|
-
ESP_LOGW(TAG, "Stopping DHCP server failed
|
|
728
|
+
ESP_LOGW(TAG, "Stopping DHCP server failed");
|
|
729
729
|
}
|
|
730
730
|
}
|
|
731
731
|
|
|
732
732
|
if (!wifi_set_ip_info(SOFTAP_IF, &info)) {
|
|
733
|
-
ESP_LOGE(TAG, "
|
|
733
|
+
ESP_LOGE(TAG, "Set SoftAP info failed");
|
|
734
734
|
return false;
|
|
735
735
|
}
|
|
736
736
|
|
|
@@ -748,13 +748,13 @@ bool WiFiComponent::wifi_ap_ip_config_(optional<ManualIP> manual_ip) {
|
|
|
748
748
|
lease.end_ip = start_address;
|
|
749
749
|
ESP_LOGV(TAG, "DHCP server IP lease end: %s", start_address.str().c_str());
|
|
750
750
|
if (!wifi_softap_set_dhcps_lease(&lease)) {
|
|
751
|
-
ESP_LOGE(TAG, "
|
|
751
|
+
ESP_LOGE(TAG, "Set SoftAP DHCP lease failed");
|
|
752
752
|
return false;
|
|
753
753
|
}
|
|
754
754
|
|
|
755
755
|
// lease time 1440 minutes (=24 hours)
|
|
756
756
|
if (!wifi_softap_set_dhcps_lease_time(1440)) {
|
|
757
|
-
ESP_LOGE(TAG, "
|
|
757
|
+
ESP_LOGE(TAG, "Set SoftAP DHCP lease time failed");
|
|
758
758
|
return false;
|
|
759
759
|
}
|
|
760
760
|
|
|
@@ -764,13 +764,13 @@ bool WiFiComponent::wifi_ap_ip_config_(optional<ManualIP> manual_ip) {
|
|
|
764
764
|
uint8_t mode = 1;
|
|
765
765
|
// bit0, 1 enables router information from ESP8266 SoftAP DHCP server.
|
|
766
766
|
if (!wifi_softap_set_dhcps_offer_option(OFFER_ROUTER, &mode)) {
|
|
767
|
-
ESP_LOGE(TAG, "wifi_softap_set_dhcps_offer_option failed
|
|
767
|
+
ESP_LOGE(TAG, "wifi_softap_set_dhcps_offer_option failed");
|
|
768
768
|
return false;
|
|
769
769
|
}
|
|
770
770
|
#endif
|
|
771
771
|
|
|
772
772
|
if (!wifi_softap_dhcps_start()) {
|
|
773
|
-
ESP_LOGE(TAG, "Starting SoftAP DHCPS failed
|
|
773
|
+
ESP_LOGE(TAG, "Starting SoftAP DHCPS failed");
|
|
774
774
|
return false;
|
|
775
775
|
}
|
|
776
776
|
|
|
@@ -784,7 +784,7 @@ bool WiFiComponent::wifi_start_ap_(const WiFiAP &ap) {
|
|
|
784
784
|
|
|
785
785
|
struct softap_config conf {};
|
|
786
786
|
if (ap.get_ssid().size() > sizeof(conf.ssid)) {
|
|
787
|
-
ESP_LOGE(TAG, "AP SSID
|
|
787
|
+
ESP_LOGE(TAG, "AP SSID too long");
|
|
788
788
|
return false;
|
|
789
789
|
}
|
|
790
790
|
memcpy(reinterpret_cast<char *>(conf.ssid), ap.get_ssid().c_str(), ap.get_ssid().size());
|
|
@@ -800,7 +800,7 @@ bool WiFiComponent::wifi_start_ap_(const WiFiAP &ap) {
|
|
|
800
800
|
} else {
|
|
801
801
|
conf.authmode = AUTH_WPA2_PSK;
|
|
802
802
|
if (ap.get_password().size() > sizeof(conf.password)) {
|
|
803
|
-
ESP_LOGE(TAG, "AP password
|
|
803
|
+
ESP_LOGE(TAG, "AP password too long");
|
|
804
804
|
return false;
|
|
805
805
|
}
|
|
806
806
|
memcpy(reinterpret_cast<char *>(conf.password), ap.get_password().c_str(), ap.get_password().size());
|
|
@@ -811,12 +811,12 @@ bool WiFiComponent::wifi_start_ap_(const WiFiAP &ap) {
|
|
|
811
811
|
ETS_UART_INTR_ENABLE();
|
|
812
812
|
|
|
813
813
|
if (!ret) {
|
|
814
|
-
ESP_LOGV(TAG, "wifi_softap_set_config_current failed
|
|
814
|
+
ESP_LOGV(TAG, "wifi_softap_set_config_current failed");
|
|
815
815
|
return false;
|
|
816
816
|
}
|
|
817
817
|
|
|
818
818
|
if (!this->wifi_ap_ip_config_(ap.get_manual_ip())) {
|
|
819
|
-
ESP_LOGV(TAG, "wifi_ap_ip_config_ failed
|
|
819
|
+
ESP_LOGV(TAG, "wifi_ap_ip_config_ failed");
|
|
820
820
|
return false;
|
|
821
821
|
}
|
|
822
822
|
|
|
@@ -219,14 +219,14 @@ bool WiFiComponent::wifi_mode_(optional<bool> sta, optional<bool> ap) {
|
|
|
219
219
|
return true;
|
|
220
220
|
|
|
221
221
|
if (set_sta && !current_sta) {
|
|
222
|
-
ESP_LOGV(TAG, "Enabling STA
|
|
222
|
+
ESP_LOGV(TAG, "Enabling STA");
|
|
223
223
|
} else if (!set_sta && current_sta) {
|
|
224
|
-
ESP_LOGV(TAG, "Disabling STA
|
|
224
|
+
ESP_LOGV(TAG, "Disabling STA");
|
|
225
225
|
}
|
|
226
226
|
if (set_ap && !current_ap) {
|
|
227
|
-
ESP_LOGV(TAG, "Enabling AP
|
|
227
|
+
ESP_LOGV(TAG, "Enabling AP");
|
|
228
228
|
} else if (!set_ap && current_ap) {
|
|
229
|
-
ESP_LOGV(TAG, "Disabling AP
|
|
229
|
+
ESP_LOGV(TAG, "Disabling AP");
|
|
230
230
|
}
|
|
231
231
|
|
|
232
232
|
if (set_mode == WIFI_MODE_NULL && s_wifi_started) {
|
|
@@ -290,11 +290,11 @@ bool WiFiComponent::wifi_sta_connect_(const WiFiAP &ap) {
|
|
|
290
290
|
wifi_config_t conf;
|
|
291
291
|
memset(&conf, 0, sizeof(conf));
|
|
292
292
|
if (ap.get_ssid().size() > sizeof(conf.sta.ssid)) {
|
|
293
|
-
ESP_LOGE(TAG, "SSID
|
|
293
|
+
ESP_LOGE(TAG, "SSID too long");
|
|
294
294
|
return false;
|
|
295
295
|
}
|
|
296
296
|
if (ap.get_password().size() > sizeof(conf.sta.password)) {
|
|
297
|
-
ESP_LOGE(TAG, "
|
|
297
|
+
ESP_LOGE(TAG, "Password too long");
|
|
298
298
|
return false;
|
|
299
299
|
}
|
|
300
300
|
memcpy(reinterpret_cast<char *>(conf.sta.ssid), ap.get_ssid().c_str(), ap.get_ssid().size());
|
|
@@ -490,7 +490,7 @@ bool WiFiComponent::wifi_sta_ip_config_(optional<ManualIP> manual_ip) {
|
|
|
490
490
|
if (dhcp_status != ESP_NETIF_DHCP_STARTED) {
|
|
491
491
|
err = esp_netif_dhcpc_start(s_sta_netif);
|
|
492
492
|
if (err != ESP_OK) {
|
|
493
|
-
ESP_LOGV(TAG, "Starting DHCP client failed
|
|
493
|
+
ESP_LOGV(TAG, "Starting DHCP client failed: %d", err);
|
|
494
494
|
}
|
|
495
495
|
return err == ESP_OK;
|
|
496
496
|
}
|
|
@@ -503,12 +503,12 @@ bool WiFiComponent::wifi_sta_ip_config_(optional<ManualIP> manual_ip) {
|
|
|
503
503
|
info.netmask = manual_ip->subnet;
|
|
504
504
|
err = esp_netif_dhcpc_stop(s_sta_netif);
|
|
505
505
|
if (err != ESP_OK && err != ESP_ERR_ESP_NETIF_DHCP_ALREADY_STOPPED) {
|
|
506
|
-
ESP_LOGV(TAG, "Stopping DHCP client failed
|
|
506
|
+
ESP_LOGV(TAG, "Stopping DHCP client failed: %s", esp_err_to_name(err));
|
|
507
507
|
}
|
|
508
508
|
|
|
509
509
|
err = esp_netif_set_ip_info(s_sta_netif, &info);
|
|
510
510
|
if (err != ESP_OK) {
|
|
511
|
-
ESP_LOGV(TAG, "Setting manual IP info failed
|
|
511
|
+
ESP_LOGV(TAG, "Setting manual IP info failed: %s", esp_err_to_name(err));
|
|
512
512
|
}
|
|
513
513
|
|
|
514
514
|
esp_netif_dns_info_t dns;
|
|
@@ -665,7 +665,7 @@ void WiFiComponent::wifi_loop_() {
|
|
|
665
665
|
void WiFiComponent::wifi_process_event_(IDFWiFiEvent *data) {
|
|
666
666
|
esp_err_t err;
|
|
667
667
|
if (data->event_base == WIFI_EVENT && data->event_id == WIFI_EVENT_STA_START) {
|
|
668
|
-
ESP_LOGV(TAG, "
|
|
668
|
+
ESP_LOGV(TAG, "STA start");
|
|
669
669
|
// apply hostname
|
|
670
670
|
err = esp_netif_set_hostname(s_sta_netif, App.get_name().c_str());
|
|
671
671
|
if (err != ERR_OK) {
|
|
@@ -677,13 +677,12 @@ void WiFiComponent::wifi_process_event_(IDFWiFiEvent *data) {
|
|
|
677
677
|
wifi_apply_power_save_();
|
|
678
678
|
|
|
679
679
|
} else if (data->event_base == WIFI_EVENT && data->event_id == WIFI_EVENT_STA_STOP) {
|
|
680
|
-
ESP_LOGV(TAG, "
|
|
680
|
+
ESP_LOGV(TAG, "STA stop");
|
|
681
681
|
s_sta_started = false;
|
|
682
682
|
|
|
683
683
|
} else if (data->event_base == WIFI_EVENT && data->event_id == WIFI_EVENT_STA_AUTHMODE_CHANGE) {
|
|
684
684
|
const auto &it = data->data.sta_authmode_change;
|
|
685
|
-
ESP_LOGV(TAG, "
|
|
686
|
-
get_auth_mode_str(it.new_mode));
|
|
685
|
+
ESP_LOGV(TAG, "Authmode Change old=%s new=%s", get_auth_mode_str(it.old_mode), get_auth_mode_str(it.new_mode));
|
|
687
686
|
|
|
688
687
|
} else if (data->event_base == WIFI_EVENT && data->event_id == WIFI_EVENT_STA_CONNECTED) {
|
|
689
688
|
const auto &it = data->data.sta_connected;
|
|
@@ -691,8 +690,8 @@ void WiFiComponent::wifi_process_event_(IDFWiFiEvent *data) {
|
|
|
691
690
|
assert(it.ssid_len <= 32);
|
|
692
691
|
memcpy(buf, it.ssid, it.ssid_len);
|
|
693
692
|
buf[it.ssid_len] = '\0';
|
|
694
|
-
ESP_LOGV(TAG, "
|
|
695
|
-
|
|
693
|
+
ESP_LOGV(TAG, "Connected ssid='%s' bssid=" LOG_SECRET("%s") " channel=%u, authmode=%s", buf,
|
|
694
|
+
format_mac_address_pretty(it.bssid).c_str(), it.channel, get_auth_mode_str(it.authmode));
|
|
696
695
|
s_sta_connected = true;
|
|
697
696
|
|
|
698
697
|
} else if (data->event_base == WIFI_EVENT && data->event_id == WIFI_EVENT_STA_DISCONNECTED) {
|
|
@@ -702,14 +701,14 @@ void WiFiComponent::wifi_process_event_(IDFWiFiEvent *data) {
|
|
|
702
701
|
memcpy(buf, it.ssid, it.ssid_len);
|
|
703
702
|
buf[it.ssid_len] = '\0';
|
|
704
703
|
if (it.reason == WIFI_REASON_NO_AP_FOUND) {
|
|
705
|
-
ESP_LOGW(TAG, "
|
|
704
|
+
ESP_LOGW(TAG, "Disconnected ssid='%s' reason='Probe Request Unsuccessful'", buf);
|
|
706
705
|
s_sta_connect_not_found = true;
|
|
707
706
|
} else if (it.reason == WIFI_REASON_ROAMING) {
|
|
708
|
-
ESP_LOGI(TAG, "
|
|
707
|
+
ESP_LOGI(TAG, "Disconnected ssid='%s' reason='Station Roaming'", buf);
|
|
709
708
|
return;
|
|
710
709
|
} else {
|
|
711
|
-
ESP_LOGW(TAG, "
|
|
712
|
-
|
|
710
|
+
ESP_LOGW(TAG, "Disconnected ssid='%s' bssid=" LOG_SECRET("%s") " reason='%s'", buf,
|
|
711
|
+
format_mac_address_pretty(it.bssid).c_str(), get_disconnect_reason_str(it.reason));
|
|
713
712
|
s_sta_connect_error = true;
|
|
714
713
|
}
|
|
715
714
|
s_sta_connected = false;
|
|
@@ -721,24 +720,24 @@ void WiFiComponent::wifi_process_event_(IDFWiFiEvent *data) {
|
|
|
721
720
|
#if USE_NETWORK_IPV6
|
|
722
721
|
esp_netif_create_ip6_linklocal(s_sta_netif);
|
|
723
722
|
#endif /* USE_NETWORK_IPV6 */
|
|
724
|
-
ESP_LOGV(TAG, "
|
|
723
|
+
ESP_LOGV(TAG, "static_ip=%s gateway=%s", format_ip4_addr(it.ip_info.ip).c_str(),
|
|
725
724
|
format_ip4_addr(it.ip_info.gw).c_str());
|
|
726
725
|
this->got_ipv4_address_ = true;
|
|
727
726
|
|
|
728
727
|
#if USE_NETWORK_IPV6
|
|
729
728
|
} else if (data->event_base == IP_EVENT && data->event_id == IP_EVENT_GOT_IP6) {
|
|
730
729
|
const auto &it = data->data.ip_got_ip6;
|
|
731
|
-
ESP_LOGV(TAG, "
|
|
730
|
+
ESP_LOGV(TAG, "IPv6 address=%s", format_ip6_addr(it.ip6_info.ip).c_str());
|
|
732
731
|
this->num_ipv6_addresses_++;
|
|
733
732
|
#endif /* USE_NETWORK_IPV6 */
|
|
734
733
|
|
|
735
734
|
} else if (data->event_base == IP_EVENT && data->event_id == IP_EVENT_STA_LOST_IP) {
|
|
736
|
-
ESP_LOGV(TAG, "
|
|
735
|
+
ESP_LOGV(TAG, "Lost IP");
|
|
737
736
|
this->got_ipv4_address_ = false;
|
|
738
737
|
|
|
739
738
|
} else if (data->event_base == WIFI_EVENT && data->event_id == WIFI_EVENT_SCAN_DONE) {
|
|
740
739
|
const auto &it = data->data.sta_scan_done;
|
|
741
|
-
ESP_LOGV(TAG, "
|
|
740
|
+
ESP_LOGV(TAG, "Scan done: status=%" PRIu32 " number=%u scan_id=%u", it.status, it.number, it.scan_id);
|
|
742
741
|
|
|
743
742
|
scan_result_.clear();
|
|
744
743
|
this->scan_done_ = true;
|
|
@@ -772,28 +771,28 @@ void WiFiComponent::wifi_process_event_(IDFWiFiEvent *data) {
|
|
|
772
771
|
}
|
|
773
772
|
|
|
774
773
|
} else if (data->event_base == WIFI_EVENT && data->event_id == WIFI_EVENT_AP_START) {
|
|
775
|
-
ESP_LOGV(TAG, "
|
|
774
|
+
ESP_LOGV(TAG, "AP start");
|
|
776
775
|
s_ap_started = true;
|
|
777
776
|
|
|
778
777
|
} else if (data->event_base == WIFI_EVENT && data->event_id == WIFI_EVENT_AP_STOP) {
|
|
779
|
-
ESP_LOGV(TAG, "
|
|
778
|
+
ESP_LOGV(TAG, "AP stop");
|
|
780
779
|
s_ap_started = false;
|
|
781
780
|
|
|
782
781
|
} else if (data->event_base == WIFI_EVENT && data->event_id == WIFI_EVENT_AP_PROBEREQRECVED) {
|
|
783
782
|
const auto &it = data->data.ap_probe_req_rx;
|
|
784
|
-
ESP_LOGVV(TAG, "
|
|
783
|
+
ESP_LOGVV(TAG, "AP receive Probe Request MAC=%s RSSI=%d", format_mac_address_pretty(it.mac).c_str(), it.rssi);
|
|
785
784
|
|
|
786
785
|
} else if (data->event_base == WIFI_EVENT && data->event_id == WIFI_EVENT_AP_STACONNECTED) {
|
|
787
786
|
const auto &it = data->data.ap_staconnected;
|
|
788
|
-
ESP_LOGV(TAG, "
|
|
787
|
+
ESP_LOGV(TAG, "AP client connected MAC=%s", format_mac_address_pretty(it.mac).c_str());
|
|
789
788
|
|
|
790
789
|
} else if (data->event_base == WIFI_EVENT && data->event_id == WIFI_EVENT_AP_STADISCONNECTED) {
|
|
791
790
|
const auto &it = data->data.ap_stadisconnected;
|
|
792
|
-
ESP_LOGV(TAG, "
|
|
791
|
+
ESP_LOGV(TAG, "AP client disconnected MAC=%s", format_mac_address_pretty(it.mac).c_str());
|
|
793
792
|
|
|
794
793
|
} else if (data->event_base == IP_EVENT && data->event_id == IP_EVENT_AP_STAIPASSIGNED) {
|
|
795
794
|
const auto &it = data->data.ip_ap_staipassigned;
|
|
796
|
-
ESP_LOGV(TAG, "
|
|
795
|
+
ESP_LOGV(TAG, "AP client assigned IP %s", format_ip4_addr(it.ip).c_str());
|
|
797
796
|
}
|
|
798
797
|
}
|
|
799
798
|
|
|
@@ -873,7 +872,7 @@ bool WiFiComponent::wifi_ap_ip_config_(optional<ManualIP> manual_ip) {
|
|
|
873
872
|
|
|
874
873
|
err = esp_netif_set_ip_info(s_ap_netif, &info);
|
|
875
874
|
if (err != ESP_OK) {
|
|
876
|
-
ESP_LOGE(TAG, "esp_netif_set_ip_info failed
|
|
875
|
+
ESP_LOGE(TAG, "esp_netif_set_ip_info failed: %d", err);
|
|
877
876
|
return false;
|
|
878
877
|
}
|
|
879
878
|
|
|
@@ -889,14 +888,14 @@ bool WiFiComponent::wifi_ap_ip_config_(optional<ManualIP> manual_ip) {
|
|
|
889
888
|
err = esp_netif_dhcps_option(s_ap_netif, ESP_NETIF_OP_SET, ESP_NETIF_REQUESTED_IP_ADDRESS, &lease, sizeof(lease));
|
|
890
889
|
|
|
891
890
|
if (err != ESP_OK) {
|
|
892
|
-
ESP_LOGE(TAG, "esp_netif_dhcps_option failed
|
|
891
|
+
ESP_LOGE(TAG, "esp_netif_dhcps_option failed: %d", err);
|
|
893
892
|
return false;
|
|
894
893
|
}
|
|
895
894
|
|
|
896
895
|
err = esp_netif_dhcps_start(s_ap_netif);
|
|
897
896
|
|
|
898
897
|
if (err != ESP_OK) {
|
|
899
|
-
ESP_LOGE(TAG, "esp_netif_dhcps_start failed
|
|
898
|
+
ESP_LOGE(TAG, "esp_netif_dhcps_start failed: %d", err);
|
|
900
899
|
return false;
|
|
901
900
|
}
|
|
902
901
|
|
|
@@ -911,7 +910,7 @@ bool WiFiComponent::wifi_start_ap_(const WiFiAP &ap) {
|
|
|
911
910
|
wifi_config_t conf;
|
|
912
911
|
memset(&conf, 0, sizeof(conf));
|
|
913
912
|
if (ap.get_ssid().size() > sizeof(conf.ap.ssid)) {
|
|
914
|
-
ESP_LOGE(TAG, "AP SSID
|
|
913
|
+
ESP_LOGE(TAG, "AP SSID too long");
|
|
915
914
|
return false;
|
|
916
915
|
}
|
|
917
916
|
memcpy(reinterpret_cast<char *>(conf.ap.ssid), ap.get_ssid().c_str(), ap.get_ssid().size());
|
|
@@ -926,7 +925,7 @@ bool WiFiComponent::wifi_start_ap_(const WiFiAP &ap) {
|
|
|
926
925
|
} else {
|
|
927
926
|
conf.ap.authmode = WIFI_AUTH_WPA2_PSK;
|
|
928
927
|
if (ap.get_password().size() > sizeof(conf.ap.password)) {
|
|
929
|
-
ESP_LOGE(TAG, "AP password
|
|
928
|
+
ESP_LOGE(TAG, "AP password too long");
|
|
930
929
|
return false;
|
|
931
930
|
}
|
|
932
931
|
memcpy(reinterpret_cast<char *>(conf.ap.password), ap.get_password().c_str(), ap.get_password().size());
|
|
@@ -937,12 +936,12 @@ bool WiFiComponent::wifi_start_ap_(const WiFiAP &ap) {
|
|
|
937
936
|
|
|
938
937
|
esp_err_t err = esp_wifi_set_config(WIFI_IF_AP, &conf);
|
|
939
938
|
if (err != ESP_OK) {
|
|
940
|
-
ESP_LOGE(TAG, "esp_wifi_set_config failed
|
|
939
|
+
ESP_LOGE(TAG, "esp_wifi_set_config failed: %d", err);
|
|
941
940
|
return false;
|
|
942
941
|
}
|
|
943
942
|
|
|
944
943
|
if (!this->wifi_ap_ip_config_(ap.get_manual_ip())) {
|
|
945
|
-
ESP_LOGE(TAG, "wifi_ap_ip_config_ failed
|
|
944
|
+
ESP_LOGE(TAG, "wifi_ap_ip_config_ failed:");
|
|
946
945
|
return false;
|
|
947
946
|
}
|
|
948
947
|
|