esphome 2025.5.2__py3-none-any.whl → 2025.6.0b1__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 +20 -14
- esphome/components/a4988/a4988.cpp +1 -1
- esphome/components/absolute_humidity/absolute_humidity.cpp +6 -4
- esphome/components/ac_dimmer/ac_dimmer.cpp +4 -2
- esphome/components/adc/adc_sensor_esp32.cpp +5 -3
- esphome/components/adc/adc_sensor_esp8266.cpp +5 -3
- esphome/components/adc/adc_sensor_libretiny.cpp +5 -3
- esphome/components/adc/adc_sensor_rp2040.cpp +5 -3
- esphome/components/adc128s102/adc128s102.cpp +1 -1
- esphome/components/ade7880/ade7880.cpp +28 -17
- esphome/components/ade7953_base/ade7953_base.cpp +12 -9
- esphome/components/ade7953_i2c/ade7953_i2c.cpp +1 -1
- esphome/components/ade7953_spi/ade7953_spi.cpp +1 -1
- esphome/components/ads1115/ads1115.cpp +3 -5
- esphome/components/ads1118/ads1118.cpp +2 -1
- esphome/components/ags10/ags10.cpp +3 -2
- esphome/components/aht10/aht10.cpp +27 -29
- esphome/components/aic3204/aic3204.cpp +2 -2
- esphome/components/alarm_control_panel/__init__.py +1 -0
- esphome/components/am2315c/am2315c.cpp +2 -2
- esphome/components/am2320/am2320.cpp +2 -2
- esphome/components/am43/am43_base.h +1 -1
- esphome/components/am43/cover/am43_cover.cpp +4 -2
- esphome/components/analog_threshold/analog_threshold_binary_sensor.cpp +4 -2
- esphome/components/apds9306/apds9306.cpp +8 -5
- esphome/components/apds9960/apds9960.cpp +2 -2
- esphome/components/api/__init__.py +5 -0
- esphome/components/api/api_connection.cpp +712 -358
- esphome/components/api/api_connection.h +343 -284
- esphome/components/api/api_frame_helper.cpp +349 -344
- esphome/components/api/api_frame_helper.h +121 -94
- esphome/components/api/api_pb2.cpp +2 -0
- esphome/components/api/api_pb2.h +637 -1
- esphome/components/api/api_pb2_service.cpp +12 -688
- esphome/components/api/api_pb2_service.h +53 -207
- esphome/components/api/api_server.cpp +71 -29
- esphome/components/api/api_server.h +9 -0
- esphome/components/api/client.py +5 -2
- esphome/components/api/homeassistant_service.h +1 -1
- esphome/components/api/list_entities.cpp +1 -1
- esphome/components/api/proto.cpp +1 -0
- esphome/components/api/proto.h +4 -3
- esphome/components/api/subscribe_state.cpp +8 -16
- esphome/components/as3935/as3935.cpp +3 -3
- esphome/components/as5600/as5600.cpp +9 -7
- esphome/components/as7341/as7341.cpp +7 -5
- esphome/components/at581x/at581x.cpp +13 -10
- esphome/components/atm90e26/atm90e26.cpp +2 -2
- esphome/components/atm90e32/atm90e32.cpp +3 -3
- esphome/components/axs15231/touchscreen/axs15231_touchscreen.cpp +5 -3
- esphome/components/bang_bang/bang_bang_climate.cpp +8 -5
- esphome/components/bedjet/bedjet_hub.cpp +6 -4
- esphome/components/beken_spi_led_strip/led_strip.cpp +11 -7
- esphome/components/bh1750/bh1750.cpp +2 -2
- esphome/components/binary_sensor/__init__.py +1 -0
- esphome/components/binary_sensor/automation.cpp +1 -2
- esphome/components/bl0906/bl0906.cpp +1 -1
- esphome/components/bl0942/bl0942.cpp +11 -8
- esphome/components/bl0942/sensor.py +1 -1
- esphome/components/ble_client/__init__.py +5 -1
- esphome/components/ble_client/output/ble_binary_output.cpp +6 -3
- esphome/components/ble_client/sensor/ble_sensor.cpp +9 -6
- esphome/components/ble_client/text_sensor/ble_text_sensor.cpp +8 -5
- esphome/components/bluetooth_proxy/__init__.py +5 -1
- esphome/components/bluetooth_proxy/bluetooth_connection.cpp +5 -5
- esphome/components/bluetooth_proxy/bluetooth_proxy.cpp +16 -14
- esphome/components/bme280_base/bme280_base.cpp +3 -3
- esphome/components/bme680/bme680.cpp +3 -3
- esphome/components/bme680/sensor.py +2 -2
- esphome/components/bme680_bsec/bme680_bsec.cpp +11 -7
- esphome/components/bme680_bsec/sensor.py +7 -3
- esphome/components/bme68x_bsec2/__init__.py +6 -5
- esphome/components/bme68x_bsec2/bme68x_bsec2.cpp +17 -13
- esphome/components/bme68x_bsec2/sensor.py +4 -4
- esphome/components/bme68x_bsec2_i2c/bme68x_bsec2_i2c.cpp +1 -0
- esphome/components/bmi160/bmi160.cpp +11 -11
- esphome/components/bmp085/bmp085.cpp +2 -2
- esphome/components/bmp280_base/bmp280_base.cpp +3 -3
- esphome/components/bmp3xx_base/bmp3xx_base.cpp +13 -13
- esphome/components/bmp581/bmp581.cpp +33 -27
- esphome/components/bp1658cj/bp1658cj.cpp +5 -3
- esphome/components/bp5758d/bp5758d.cpp +1 -1
- esphome/components/button/__init__.py +1 -0
- esphome/components/canbus/canbus.cpp +1 -1
- esphome/components/cap1188/cap1188.cpp +6 -4
- esphome/components/captive_portal/captive_portal.cpp +1 -1
- esphome/components/ccs811/ccs811.cpp +3 -2
- esphome/components/cd74hc4067/cd74hc4067.cpp +1 -1
- esphome/components/ch422g/ch422g.cpp +2 -2
- esphome/components/chsc6x/chsc6x_touchscreen.cpp +6 -4
- esphome/components/climate/__init__.py +1 -0
- esphome/components/climate/climate.cpp +12 -7
- esphome/components/climate/climate.h +1 -1
- esphome/components/climate_ir/climate_ir.cpp +7 -4
- esphome/components/cm1106/__init__.py +1 -0
- esphome/components/cm1106/cm1106.cpp +112 -0
- esphome/components/cm1106/cm1106.h +40 -0
- esphome/components/cm1106/sensor.py +72 -0
- esphome/components/const/__init__.py +1 -0
- esphome/components/cover/__init__.py +1 -0
- esphome/components/cs5460a/cs5460a.cpp +16 -11
- esphome/components/cse7761/cse7761.cpp +2 -2
- esphome/components/cse7766/cse7766.cpp +0 -5
- esphome/components/cse7766/cse7766.h +5 -1
- esphome/components/cst226/touchscreen/cst226_touchscreen.cpp +1 -1
- esphome/components/cst816/touchscreen/cst816_touchscreen.cpp +6 -3
- esphome/components/current_based/current_based_cover.cpp +4 -2
- esphome/components/dac7678/dac7678_output.cpp +4 -4
- esphome/components/dallas_temp/dallas_temp.cpp +2 -3
- esphome/components/daly_bms/daly_bms.cpp +2 -1
- esphome/components/dashboard_import/__init__.py +1 -2
- esphome/components/datetime/__init__.py +3 -1
- esphome/components/debug/debug_component.cpp +1 -1
- esphome/components/debug/debug_component.h +1 -1
- esphome/components/debug/debug_esp32.cpp +4 -2
- esphome/components/deep_sleep/deep_sleep_component.cpp +11 -5
- esphome/components/deep_sleep/deep_sleep_esp32.cpp +7 -5
- esphome/components/demo/__init__.py +206 -0
- esphome/components/demo/demo_alarm_control_panel.h +65 -0
- esphome/components/demo/demo_button.h +15 -0
- esphome/components/demo/demo_date.h +34 -0
- esphome/components/demo/demo_datetime.h +40 -0
- esphome/components/demo/demo_lock.h +17 -0
- esphome/components/demo/demo_select.h +15 -0
- esphome/components/demo/demo_text.h +18 -0
- esphome/components/demo/demo_time.h +34 -0
- esphome/components/demo/demo_valve.h +54 -0
- esphome/components/dfrobot_sen0395/commands.cpp +3 -3
- esphome/components/dht/dht.cpp +29 -50
- esphome/components/dht12/dht12.cpp +2 -2
- esphome/components/display/display.h +5 -3
- esphome/components/dps310/dps310.cpp +7 -5
- esphome/components/ds1307/ds1307.cpp +2 -2
- esphome/components/dsmr/dsmr.cpp +5 -3
- esphome/components/duty_cycle/duty_cycle_sensor.cpp +2 -2
- esphome/components/duty_time/duty_time_sensor.cpp +5 -3
- esphome/components/ee895/ee895.cpp +3 -3
- esphome/components/ektf2232/touchscreen/ektf2232.cpp +1 -1
- esphome/components/emc2101/emc2101.cpp +11 -9
- esphome/components/ens160_base/ens160_base.cpp +2 -2
- esphome/components/ens210/ens210.cpp +2 -2
- esphome/components/es7210/es7210.cpp +6 -4
- esphome/components/es7243e/es7243e.cpp +1 -1
- esphome/components/es8156/es8156.cpp +1 -1
- esphome/components/es8311/es8311.cpp +8 -6
- esphome/components/es8388/__init__.py +0 -0
- esphome/components/es8388/audio_dac.py +26 -0
- esphome/components/es8388/es8388.cpp +289 -0
- esphome/components/es8388/es8388.h +81 -0
- esphome/components/es8388/es8388_const.h +83 -0
- esphome/components/es8388/select/__init__.py +47 -0
- esphome/components/es8388/select/adc_input_mic_select.cpp +12 -0
- esphome/components/es8388/select/adc_input_mic_select.h +15 -0
- esphome/components/es8388/select/dac_output_select.cpp +12 -0
- esphome/components/es8388/select/dac_output_select.h +15 -0
- esphome/components/esp32/__init__.py +88 -20
- esphome/components/esp32/boards.py +208 -125
- esphome/components/esp32/const.py +6 -0
- esphome/components/esp32/gpio.py +14 -1
- esphome/components/esp32/gpio_esp32_c5.py +45 -0
- esphome/components/esp32/gpio_esp32_p4.py +43 -0
- esphome/components/esp32/preferences.cpp +7 -7
- esphome/components/esp32_ble/__init__.py +115 -0
- esphome/components/esp32_ble/ble.cpp +11 -9
- esphome/components/esp32_ble/ble_uuid.h +1 -1
- esphome/components/esp32_ble_client/ble_client_base.cpp +4 -2
- esphome/components/esp32_ble_server/__init__.py +4 -1
- esphome/components/esp32_ble_server/ble_characteristic.cpp +1 -0
- esphome/components/esp32_ble_server/ble_server.h +0 -1
- esphome/components/esp32_ble_tracker/__init__.py +6 -2
- esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp +12 -9
- esphome/components/esp32_camera/esp32_camera.cpp +35 -27
- esphome/components/esp32_camera_web_server/camera_web_server.cpp +4 -2
- esphome/components/esp32_dac/esp32_dac.cpp +2 -2
- esphome/components/esp32_improv/__init__.py +5 -1
- esphome/components/esp32_improv/esp32_improv_component.cpp +2 -2
- esphome/components/esp32_rmt_led_strip/led_strip.cpp +11 -7
- esphome/components/esp32_rmt_led_strip/light.py +5 -1
- esphome/components/esp32_touch/esp32_touch.cpp +12 -8
- esphome/components/esp8266/preferences.cpp +6 -6
- esphome/components/esp8266_pwm/esp8266_pwm.cpp +3 -3
- esphome/components/esp_ldo/__init__.py +91 -0
- esphome/components/esp_ldo/esp_ldo.cpp +43 -0
- esphome/components/esp_ldo/esp_ldo.h +43 -0
- esphome/components/esphome/ota/ota_esphome.cpp +15 -8
- esphome/components/ethernet/ethernet_component.cpp +38 -26
- esphome/components/ethernet/ethernet_component.h +1 -1
- esphome/components/event/__init__.py +1 -0
- esphome/components/exposure_notifications/exposure_notifications.cpp +1 -1
- esphome/components/ezo/ezo.cpp +1 -1
- esphome/components/ezo_pmp/ezo_pmp.cpp +1 -1
- esphome/components/factory_reset/button/factory_reset_button.cpp +1 -1
- esphome/components/factory_reset/switch/factory_reset_switch.cpp +1 -1
- esphome/components/fan/__init__.py +1 -0
- esphome/components/fan/fan.cpp +4 -2
- esphome/components/fastled_base/fastled_light.cpp +7 -5
- esphome/components/fingerprint_grow/fingerprint_grow.cpp +8 -6
- esphome/components/fs3000/fs3000.cpp +1 -1
- esphome/components/ft5x06/touchscreen/ft5x06_touchscreen.cpp +7 -4
- esphome/components/ft63x6/ft63x6.cpp +5 -3
- esphome/components/gcja5/gcja5.cpp +0 -12
- esphome/components/gcja5/gcja5.h +8 -3
- esphome/components/gdk101/gdk101.cpp +2 -2
- esphome/components/globals/globals_component.h +13 -10
- esphome/components/gp2y1010au0f/gp2y1010au0f.cpp +4 -2
- esphome/components/gp8403/gp8403.cpp +4 -2
- esphome/components/gp8403/output/gp8403_output.cpp +4 -2
- esphome/components/gpio/one_wire/gpio_one_wire.cpp +2 -2
- esphome/components/gpio/output/gpio_binary_output.cpp +1 -1
- esphome/components/gpio/switch/gpio_switch.cpp +1 -1
- esphome/components/graphical_display_menu/graphical_display_menu.cpp +12 -8
- esphome/components/grove_gas_mc_v2/grove_gas_mc_v2.cpp +5 -6
- esphome/components/grove_tb6612fng/grove_tb6612fng.cpp +1 -1
- esphome/components/grove_tb6612fng/grove_tb6612fng.h +1 -1
- esphome/components/growatt_solar/growatt_solar.cpp +6 -3
- esphome/components/gt911/touchscreen/gt911_touchscreen.cpp +1 -1
- esphome/components/haier/haier_base.cpp +2 -2
- esphome/components/haier/hon_climate.cpp +13 -6
- esphome/components/havells_solar/havells_solar.cpp +5 -2
- esphome/components/hbridge/switch/hbridge_switch.cpp +1 -1
- esphome/components/hdc1080/hdc1080.cpp +2 -2
- esphome/components/he60r/he60r.cpp +4 -2
- esphome/components/hlw8012/hlw8012.cpp +6 -4
- esphome/components/hm3301/hm3301.cpp +2 -2
- esphome/components/hmc5883l/hmc5883l.cpp +2 -2
- esphome/components/homeassistant/time/homeassistant_time.cpp +4 -2
- esphome/components/honeywell_hih_i2c/honeywell_hih.cpp +4 -4
- esphome/components/honeywellabp/honeywellabp.cpp +4 -2
- esphome/components/honeywellabp2_i2c/honeywellabp2.cpp +8 -6
- esphome/components/hte501/hte501.cpp +3 -2
- esphome/components/http_request/__init__.py +2 -2
- esphome/components/http_request/http_request.cpp +7 -5
- esphome/components/http_request/http_request_idf.cpp +4 -2
- esphome/components/http_request/ota/ota_http_request.cpp +1 -1
- esphome/components/htu21d/htu21d.cpp +2 -2
- esphome/components/htu31d/htu31d.cpp +2 -2
- esphome/components/hx711/hx711.cpp +2 -2
- esphome/components/hydreon_rgxx/hydreon_rgxx.cpp +5 -3
- esphome/components/hyt271/hyt271.cpp +2 -2
- esphome/components/i2c/i2c_bus_arduino.cpp +14 -11
- esphome/components/i2c/i2c_bus_esp_idf.cpp +13 -11
- esphome/components/i2s_audio/__init__.py +2 -0
- esphome/components/i2s_audio/i2s_audio.cpp +3 -4
- esphome/components/i2s_audio/i2s_audio.h +1 -1
- esphome/components/i2s_audio/media_player/__init__.py +1 -1
- esphome/components/i2s_audio/media_player/i2s_audio_media_player.cpp +5 -3
- esphome/components/i2s_audio/microphone/i2s_audio_microphone.cpp +1 -1
- esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp +1 -1
- esphome/components/iaqcore/iaqcore.cpp +3 -3
- esphome/components/ili9xxx/ili9xxx_display.cpp +12 -7
- esphome/components/ili9xxx/ili9xxx_display.h +1 -1
- esphome/components/image/image.cpp +1 -0
- esphome/components/ina219/ina219.cpp +2 -2
- esphome/components/ina226/ina226.cpp +8 -5
- esphome/components/ina260/ina260.cpp +1 -1
- esphome/components/ina2xx_base/ina2xx_base.cpp +13 -9
- esphome/components/ina3221/ina3221.cpp +2 -2
- esphome/components/inkplate6/display.py +12 -2
- esphome/components/inkplate6/inkplate.cpp +13 -9
- esphome/components/inkplate6/inkplate.h +7 -6
- esphome/components/integration/integration_sensor.cpp +1 -1
- esphome/components/internal_temperature/internal_temperature.cpp +4 -4
- esphome/components/json/json_util.cpp +4 -5
- esphome/components/kamstrup_kmp/kamstrup_kmp.cpp +1 -1
- esphome/components/key_collector/key_collector.cpp +4 -2
- esphome/components/kmeteriso/kmeteriso.cpp +2 -1
- esphome/components/kuntze/kuntze.cpp +4 -2
- esphome/components/lc709203f/__init__.py +1 -0
- esphome/components/lc709203f/lc709203f.cpp +299 -0
- esphome/components/lc709203f/lc709203f.h +55 -0
- esphome/components/lc709203f/sensor.py +93 -0
- esphome/components/lcd_base/lcd_display.cpp +2 -2
- esphome/components/lcd_gpio/gpio_lcd_display.cpp +5 -3
- esphome/components/lcd_menu/lcd_menu.cpp +6 -4
- esphome/components/lcd_pcf8574/pcf8574_display.cpp +6 -4
- esphome/components/ld2410/ld2410.cpp +6 -7
- esphome/components/ld2420/ld2420.cpp +9 -7
- esphome/components/ld2450/ld2450.cpp +6 -4
- esphome/components/ld2450/sensor.py +2 -2
- esphome/components/ledc/ledc_output.cpp +32 -28
- esphome/components/libretiny/const.py +1 -1
- esphome/components/libretiny/preferences.cpp +6 -7
- esphome/components/light/__init__.py +2 -1
- esphome/components/light/esp_hsv_color.h +1 -1
- esphome/components/light/light_state.cpp +9 -5
- esphome/components/light/light_transformer.h +1 -1
- esphome/components/lightwaverf/LwTx.cpp +1 -1
- esphome/components/lightwaverf/lightwaverf.cpp +1 -1
- esphome/components/lilygo_t5_47/touchscreen/lilygo_t5_47_touchscreen.cpp +1 -1
- esphome/components/lock/__init__.py +1 -0
- esphome/components/lock/lock.h +1 -1
- esphome/components/logger/__init__.py +6 -0
- esphome/components/logger/logger.cpp +9 -5
- esphome/components/logger/logger_esp32.cpp +5 -5
- esphome/components/ltr390/ltr390.cpp +8 -5
- esphome/components/ltr501/ltr501.cpp +19 -14
- esphome/components/ltr_als_ps/ltr_als_ps.cpp +20 -13
- esphome/components/lvgl/__init__.py +2 -2
- esphome/components/lvgl/automation.py +5 -4
- esphome/components/lvgl/defines.py +0 -2
- esphome/components/lvgl/lv_validation.py +1 -3
- esphome/components/lvgl/lvcode.py +7 -8
- esphome/components/lvgl/lvgl_esphome.cpp +26 -10
- esphome/components/lvgl/schemas.py +22 -23
- esphome/components/lvgl/trigger.py +8 -3
- esphome/components/lvgl/widgets/__init__.py +2 -2
- esphome/components/lvgl/widgets/canvas.py +9 -3
- esphome/components/lvgl/widgets/line.py +2 -1
- esphome/components/lvgl/widgets/tabview.py +7 -0
- esphome/components/m5stack_8angle/m5stack_8angle.cpp +3 -3
- esphome/components/matrix_keypad/matrix_keypad.cpp +2 -2
- esphome/components/max17043/max17043.cpp +2 -2
- esphome/components/max31855/max31855.cpp +2 -1
- esphome/components/max31856/max31856.cpp +9 -11
- esphome/components/max31865/max31865.cpp +6 -4
- esphome/components/max44009/max44009.cpp +2 -2
- esphome/components/max6675/max6675.cpp +1 -1
- esphome/components/max6956/max6956.cpp +5 -3
- esphome/components/max7219/max7219.cpp +8 -6
- esphome/components/max7219digit/automation.h +52 -0
- esphome/components/max7219digit/display.py +93 -1
- esphome/components/max7219digit/max7219digit.cpp +16 -13
- esphome/components/max9611/max9611.cpp +9 -6
- esphome/components/mcp23008/mcp23008.cpp +1 -1
- esphome/components/mcp23016/mcp23016.cpp +1 -1
- esphome/components/mcp23017/mcp23017.cpp +1 -1
- esphome/components/mcp23s08/mcp23s08.cpp +1 -1
- esphome/components/mcp23s17/mcp23s17.cpp +1 -1
- esphome/components/mcp3008/mcp3008.cpp +1 -1
- esphome/components/mcp3008/sensor/mcp3008_sensor.cpp +5 -3
- esphome/components/mcp3204/mcp3204.cpp +1 -1
- esphome/components/mcp4461/mcp4461.cpp +2 -2
- esphome/components/mcp4725/mcp4725.cpp +2 -2
- esphome/components/mcp4728/mcp4728.cpp +2 -2
- esphome/components/mcp9600/mcp9600.cpp +1 -1
- esphome/components/mcp9808/mcp9808.cpp +4 -4
- esphome/components/mdns/mdns_component.cpp +8 -2
- esphome/components/mdns/mdns_component.h +3 -1
- esphome/components/mdns/mdns_esp32.cpp +2 -2
- esphome/components/media_player/__init__.py +1 -0
- esphome/components/micro_wake_word/micro_wake_word.cpp +1 -1
- esphome/components/micro_wake_word/streaming_model.cpp +10 -6
- esphome/components/micronova/micronova.h +2 -2
- esphome/components/mics_4514/mics_4514.cpp +2 -2
- esphome/components/midea/air_conditioner.cpp +7 -5
- esphome/components/midea_ir/midea_ir.cpp +1 -1
- esphome/components/mipi_spi/mipi_spi.cpp +24 -15
- esphome/components/mixer/speaker/mixer_speaker.cpp +8 -4
- esphome/components/mlx90393/sensor_mlx90393.cpp +2 -2
- esphome/components/mlx90614/mlx90614.cpp +4 -3
- esphome/components/mmc5603/mmc5603.cpp +2 -2
- esphome/components/mmc5983/mmc5983.cpp +1 -1
- esphome/components/modbus/modbus.cpp +7 -5
- esphome/components/modbus_controller/modbus_controller.cpp +6 -4
- esphome/components/modbus_controller/output/modbus_output.cpp +10 -6
- esphome/components/modbus_controller/switch/__init__.py +6 -2
- esphome/components/modbus_controller/switch/modbus_switch.cpp +4 -0
- esphome/components/modbus_controller/switch/modbus_switch.h +3 -0
- esphome/components/mpl3115a2/mpl3115a2.cpp +3 -2
- esphome/components/mpr121/mpr121.cpp +2 -2
- esphome/components/mpu6050/mpu6050.cpp +6 -6
- esphome/components/mpu6886/mpu6886.cpp +6 -6
- esphome/components/mqtt/mqtt_alarm_control_panel.cpp +7 -3
- esphome/components/mqtt/mqtt_backend_esp32.cpp +1 -1
- esphome/components/mqtt/mqtt_client.cpp +31 -24
- esphome/components/mqtt/mqtt_component.cpp +2 -2
- esphome/components/mqtt/mqtt_cover.cpp +8 -4
- esphome/components/mqtt/mqtt_fan.cpp +12 -6
- esphome/components/mqtt/mqtt_valve.cpp +4 -2
- esphome/components/ms5611/ms5611.cpp +2 -2
- esphome/components/ms8607/ms8607.cpp +2 -2
- esphome/components/msa3xx/msa3xx.cpp +16 -12
- esphome/components/my9231/my9231.cpp +7 -5
- esphome/components/nau7802/nau7802.cpp +6 -4
- esphome/components/neopixelbus/neopixelbus_light.h +2 -2
- esphome/components/network/ip_address.h +1 -1
- esphome/components/network/util.cpp +13 -0
- esphome/components/nextion/base_component.py +2 -0
- esphome/components/nextion/binary_sensor/nextion_binarysensor.cpp +2 -3
- esphome/components/nextion/display.py +34 -22
- esphome/components/nextion/nextion.cpp +182 -143
- esphome/components/nextion/nextion.h +36 -0
- esphome/components/nextion/nextion_commands.cpp +3 -3
- esphome/components/nextion/nextion_upload_arduino.cpp +58 -61
- esphome/components/nextion/nextion_upload_idf.cpp +69 -72
- esphome/components/nextion/sensor/nextion_sensor.cpp +4 -4
- esphome/components/nextion/switch/nextion_switch.cpp +2 -2
- esphome/components/nextion/text_sensor/nextion_textsensor.cpp +2 -2
- esphome/components/nfc/nci_message.h +1 -1
- esphome/components/nfc/ndef_record.h +1 -1
- esphome/components/nfc/ndef_record_text.h +1 -1
- esphome/components/nfc/ndef_record_uri.h +1 -1
- esphome/components/nfc/nfc.h +1 -1
- esphome/components/nfc/nfc_tag.h +1 -1
- esphome/components/noblex/noblex.cpp +1 -1
- esphome/components/npi19/npi19.cpp +5 -7
- esphome/components/number/__init__.py +11 -0
- esphome/components/online_image/__init__.py +13 -1
- esphome/components/online_image/online_image.cpp +26 -4
- esphome/components/online_image/online_image.h +21 -4
- esphome/components/opentherm/generate.py +3 -3
- esphome/components/opentherm/hub.cpp +11 -7
- esphome/components/opentherm/number/number.cpp +5 -3
- esphome/components/opentherm/opentherm.h +1 -1
- esphome/components/opentherm/schema.py +13 -13
- esphome/components/opentherm/validate.py +1 -1
- esphome/components/openthread/__init__.py +146 -0
- esphome/components/openthread/const.py +10 -0
- esphome/components/openthread/openthread.cpp +206 -0
- esphome/components/openthread/openthread.h +68 -0
- esphome/components/openthread/openthread_esp.cpp +164 -0
- esphome/components/openthread/tlv.py +58 -0
- esphome/components/openthread_info/__init__.py +0 -0
- esphome/components/openthread_info/openthread_info_text_sensor.cpp +24 -0
- esphome/components/openthread_info/openthread_info_text_sensor.h +218 -0
- esphome/components/openthread_info/text_sensor.py +105 -0
- esphome/components/output/float_output.cpp +1 -1
- esphome/components/output/switch/output_switch.cpp +1 -1
- esphome/components/packet_transport/packet_transport.cpp +6 -4
- esphome/components/pca6416a/pca6416a.cpp +2 -2
- esphome/components/pca9554/pca9554.cpp +6 -4
- esphome/components/pca9685/pca9685_output.cpp +12 -8
- esphome/components/pcd8544/pcd_8544.cpp +1 -1
- esphome/components/pcf85063/pcf85063.cpp +2 -2
- esphome/components/pcf8563/pcf8563.cpp +2 -2
- esphome/components/pcf8574/pcf8574.cpp +2 -2
- esphome/components/pid/pid_climate.cpp +8 -5
- esphome/components/pid/pid_climate.h +1 -1
- esphome/components/pid/sensor/pid_climate_sensor.cpp +1 -1
- esphome/components/pipsolar/output/pipsolar_output.cpp +1 -1
- esphome/components/pipsolar/pipsolar.cpp +3 -3
- esphome/components/pm1006/pm1006.cpp +3 -7
- esphome/components/pm1006/pm1006.h +4 -1
- esphome/components/pm2005/pm2005.cpp +12 -13
- esphome/components/pm2005/sensor.py +1 -1
- esphome/components/pmsa003i/pmsa003i.cpp +2 -2
- esphome/components/pmsx003/pmsx003.cpp +0 -4
- esphome/components/pmsx003/pmsx003.h +5 -2
- esphome/components/pmwcs3/pmwcs3.cpp +9 -13
- esphome/components/pmwcs3/pmwcs3.h +0 -1
- esphome/components/pn532/pn532.cpp +7 -7
- esphome/components/pn532/pn532.h +1 -1
- esphome/components/pn532_spi/pn532_spi.cpp +1 -1
- esphome/components/pn7150/pn7150.cpp +4 -4
- esphome/components/pn7160/pn7160.cpp +4 -4
- esphome/components/power_supply/power_supply.cpp +6 -4
- esphome/components/power_supply/power_supply.h +1 -1
- esphome/components/psram/__init__.py +59 -35
- esphome/components/pulse_counter/pulse_counter_sensor.cpp +7 -4
- esphome/components/pvvx_mithermometer/display/pvvx_display.cpp +8 -5
- esphome/components/pylontech/pylontech.cpp +2 -2
- esphome/components/pylontech/sensor/pylontech_sensor.cpp +4 -2
- esphome/components/pylontech/text_sensor/pylontech_text_sensor.cpp +4 -2
- esphome/components/pzemac/pzemac.cpp +4 -2
- esphome/components/pzemdc/pzemdc.cpp +4 -2
- esphome/components/qmc5883l/qmc5883l.cpp +2 -2
- esphome/components/qmp6988/qmp6988.cpp +2 -2
- esphome/components/qmp6988/qmp6988.h +1 -1
- esphome/components/qr_code/qr_code.cpp +5 -3
- esphome/components/qspi_dbi/qspi_dbi.cpp +1 -1
- esphome/components/qwiic_pir/qwiic_pir.cpp +26 -28
- esphome/components/rc522/rc522.cpp +5 -5
- esphome/components/rdm6300/rdm6300.cpp +1 -0
- esphome/components/remote_receiver/__init__.py +10 -2
- esphome/components/remote_receiver/remote_receiver_esp32.cpp +22 -12
- esphome/components/remote_receiver/remote_receiver_esp8266.cpp +10 -7
- esphome/components/remote_receiver/remote_receiver_libretiny.cpp +10 -7
- esphome/components/remote_transmitter/__init__.py +10 -2
- esphome/components/remote_transmitter/remote_transmitter_esp32.cpp +10 -6
- esphome/components/remote_transmitter/remote_transmitter_esp8266.cpp +5 -3
- esphome/components/remote_transmitter/remote_transmitter_libretiny.cpp +5 -3
- esphome/components/resistance/resistance_sensor.cpp +6 -3
- esphome/components/restart/button/restart_button.cpp +1 -1
- esphome/components/restart/switch/restart_switch.cpp +1 -1
- esphome/components/rotary_encoder/rotary_encoder.cpp +2 -2
- esphome/components/rp2040/__init__.py +7 -0
- esphome/components/rp2040/core.cpp +8 -1
- esphome/components/rp2040/preferences.cpp +3 -3
- esphome/components/rp2040_pio_led_strip/led_strip.cpp +11 -8
- esphome/components/rp2040_pio_led_strip/light.py +1 -1
- esphome/components/rp2040_pwm/rp2040_pwm.cpp +1 -1
- esphome/components/rpi_dpi_rgb/rpi_dpi_rgb.cpp +1 -1
- esphome/components/rtttl/rtttl.cpp +11 -9
- esphome/components/safe_mode/button/safe_mode_button.cpp +1 -1
- esphome/components/safe_mode/safe_mode.cpp +9 -8
- esphome/components/safe_mode/switch/safe_mode_switch.cpp +1 -1
- esphome/components/scd30/scd30.cpp +11 -8
- esphome/components/scd4x/scd4x.cpp +12 -8
- esphome/components/sdl/display.py +40 -0
- esphome/components/sdl/sdl_esphome.cpp +2 -2
- esphome/components/sdl/sdl_esphome.h +8 -0
- esphome/components/sdm_meter/sdm_meter.cpp +5 -2
- esphome/components/sdp3x/sdp3x.cpp +11 -11
- esphome/components/sds011/sds011.cpp +5 -6
- esphome/components/sds011/sds011.h +4 -1
- esphome/components/seeed_mr24hpc1/seeed_mr24hpc1.cpp +3 -2
- esphome/components/seeed_mr60bha2/seeed_mr60bha2.cpp +1 -0
- esphome/components/seeed_mr60fda2/seeed_mr60fda2.cpp +3 -2
- esphome/components/selec_meter/selec_meter.cpp +5 -2
- esphome/components/select/__init__.py +1 -0
- esphome/components/sen0321/sen0321.cpp +2 -2
- esphome/components/sen21231/sen21231.cpp +1 -1
- esphome/components/sen5x/sen5x.cpp +10 -7
- esphome/components/sensirion_common/i2c_sensirion.cpp +2 -1
- esphome/components/sensirion_common/i2c_sensirion.h +1 -0
- esphome/components/sensor/__init__.py +11 -1
- esphome/components/sensor/filter.h +1 -1
- esphome/components/sensor/sensor.h +9 -5
- esphome/components/servo/servo.cpp +12 -9
- esphome/components/servo/servo.h +1 -1
- esphome/components/sfa30/sfa30.cpp +1 -1
- esphome/components/sgp30/sgp30.cpp +10 -8
- esphome/components/sgp4x/sgp4x.cpp +49 -61
- esphome/components/sgp4x/sgp4x.h +0 -1
- esphome/components/shelly_dimmer/shelly_dimmer.cpp +11 -7
- esphome/components/sht3xd/sht3xd.cpp +1 -1
- esphome/components/sht4x/sht4x.cpp +2 -2
- esphome/components/shtcx/shtcx.cpp +13 -16
- esphome/components/shutdown/button/shutdown_button.cpp +1 -1
- esphome/components/shutdown/switch/shutdown_switch.cpp +1 -1
- esphome/components/sim800l/sim800l.cpp +2 -2
- esphome/components/slow_pwm/slow_pwm_output.cpp +4 -2
- esphome/components/sm16716/sm16716.cpp +1 -1
- esphome/components/sm2135/sm2135.cpp +1 -1
- esphome/components/sm2235/sm2235.cpp +5 -3
- esphome/components/sm2335/sm2335.cpp +5 -3
- esphome/components/sml/sml.cpp +1 -1
- esphome/components/sn74hc165/sn74hc165.cpp +1 -2
- esphome/components/sn74hc595/sn74hc595.cpp +1 -2
- esphome/components/sntp/sntp_component.cpp +1 -1
- esphome/components/socket/__init__.py +2 -0
- esphome/components/socket/bsd_sockets_impl.cpp +51 -7
- esphome/components/socket/lwip_raw_tcp_impl.cpp +5 -0
- esphome/components/socket/lwip_sockets_impl.cpp +51 -7
- esphome/components/socket/socket.cpp +31 -0
- esphome/components/socket/socket.h +27 -1
- esphome/components/sonoff_d1/sonoff_d1.cpp +7 -4
- esphome/components/sonoff_d1/sonoff_d1.h +2 -2
- esphome/components/sound_level/sound_level.cpp +4 -2
- esphome/components/speaker/media_player/__init__.py +3 -0
- esphome/components/speaker/media_player/speaker_media_player.cpp +1 -3
- esphome/components/speaker/media_player/speaker_media_player.h +6 -0
- esphome/components/spi/__init__.py +10 -2
- esphome/components/spi/spi.cpp +4 -4
- esphome/components/spi_device/spi_device.cpp +1 -2
- esphome/components/sprinkler/sprinkler.cpp +9 -6
- esphome/components/sps30/sps30.cpp +16 -15
- esphome/components/ssd1306_base/ssd1306_base.cpp +1 -1
- esphome/components/ssd1306_i2c/ssd1306_i2c.cpp +11 -8
- esphome/components/ssd1306_spi/ssd1306_spi.cpp +10 -7
- esphome/components/ssd1322_base/ssd1322_base.cpp +1 -1
- esphome/components/ssd1322_spi/ssd1322_spi.cpp +1 -1
- esphome/components/ssd1325_base/ssd1325_base.cpp +1 -1
- esphome/components/ssd1325_spi/ssd1325_spi.cpp +1 -1
- esphome/components/ssd1327_base/ssd1327_base.cpp +1 -1
- esphome/components/ssd1327_i2c/ssd1327_i2c.cpp +2 -2
- esphome/components/ssd1327_spi/ssd1327_spi.cpp +1 -1
- esphome/components/ssd1331_base/ssd1331_base.cpp +1 -1
- esphome/components/ssd1331_spi/ssd1331_spi.cpp +1 -1
- esphome/components/ssd1351_base/ssd1351_base.cpp +1 -1
- esphome/components/ssd1351_spi/ssd1351_spi.cpp +1 -1
- esphome/components/st7567_base/st7567_base.cpp +3 -3
- esphome/components/st7567_i2c/st7567_i2c.cpp +7 -5
- esphome/components/st7567_spi/st7567_spi.cpp +1 -1
- esphome/components/st7701s/st7701s.cpp +4 -2
- esphome/components/st7735/st7735.cpp +3 -3
- esphome/components/st7789v/st7789v.cpp +10 -7
- esphome/components/st7920/st7920.cpp +6 -4
- esphome/components/statsd/statsd.cpp +9 -5
- esphome/components/status_led/light/status_led_light.cpp +1 -1
- esphome/components/status_led/status_led.cpp +1 -1
- esphome/components/stepper/stepper.h +5 -3
- esphome/components/sts3x/sts3x.cpp +2 -2
- esphome/components/switch/__init__.py +1 -0
- esphome/components/switch/switch.cpp +18 -12
- esphome/components/switch/switch.h +1 -1
- esphome/components/sx1509/__init__.py +53 -20
- esphome/components/sx1509/sx1509.cpp +29 -5
- esphome/components/sx1509/sx1509.h +9 -1
- esphome/components/t6615/t6615.cpp +1 -0
- esphome/components/tc74/tc74.cpp +1 -1
- esphome/components/tca9548a/tca9548a.cpp +1 -1
- esphome/components/tca9555/tca9555.cpp +2 -2
- esphome/components/tcs34725/tcs34725.cpp +4 -4
- esphome/components/tee501/tee501.cpp +3 -2
- esphome/components/tem3200/tem3200.cpp +5 -6
- esphome/components/template/alarm_control_panel/__init__.py +6 -0
- esphome/components/template/alarm_control_panel/template_alarm_control_panel.cpp +38 -12
- esphome/components/template/alarm_control_panel/template_alarm_control_panel.h +3 -1
- esphome/components/template/cover/template_cover.cpp +1 -1
- esphome/components/template/select/template_select.cpp +6 -4
- esphome/components/template/text/template_text.cpp +2 -3
- esphome/components/template/valve/template_valve.cpp +5 -3
- esphome/components/text/__init__.py +10 -11
- esphome/components/text_sensor/__init__.py +1 -0
- esphome/components/thermostat/thermostat_climate.cpp +67 -43
- esphome/components/time/__init__.py +1 -2
- esphome/components/time_based/time_based_cover.cpp +4 -2
- esphome/components/tlc59208f/tlc59208f_output.cpp +8 -6
- esphome/components/tm1621/tm1621.cpp +3 -3
- esphome/components/tm1637/tm1637.cpp +9 -7
- esphome/components/tm1638/tm1638.cpp +7 -5
- esphome/components/tm1651/tm1651.cpp +2 -2
- esphome/components/tmp102/tmp102.cpp +1 -3
- esphome/components/tmp102/tmp102.h +0 -3
- esphome/components/tmp1075/tmp1075.cpp +12 -9
- esphome/components/tmp117/tmp117.cpp +2 -2
- esphome/components/tof10120/tof10120_sensor.cpp +2 -2
- esphome/components/tormatic/tormatic_cover.cpp +4 -2
- esphome/components/tsl2561/tsl2561.cpp +7 -5
- esphome/components/tsl2591/tsl2591.cpp +25 -27
- esphome/components/tt21100/touchscreen/tt21100.cpp +1 -1
- esphome/components/ttp229_bsf/ttp229_bsf.cpp +1 -1
- esphome/components/ttp229_lsf/ttp229_lsf.cpp +2 -2
- esphome/components/tuya/select/tuya_select.cpp +5 -3
- esphome/components/tx20/tx20.cpp +3 -3
- esphome/components/uart/__init__.py +4 -5
- esphome/components/uart/button/uart_button.cpp +1 -1
- esphome/components/uart/switch/uart_switch.cpp +2 -2
- esphome/components/uart/uart.cpp +2 -2
- esphome/components/uart/uart_component_esp32_arduino.cpp +8 -6
- esphome/components/uart/uart_component_esp8266.cpp +9 -7
- esphome/components/uart/uart_component_esp_idf.cpp +9 -7
- esphome/components/uart/uart_component_host.cpp +11 -8
- esphome/components/uart/uart_component_libretiny.cpp +8 -6
- esphome/components/uart/uart_component_rp2040.cpp +8 -6
- esphome/components/udp/udp_component.cpp +9 -5
- esphome/components/ufire_ec/ufire_ec.cpp +5 -3
- esphome/components/ufire_ise/ufire_ise.cpp +1 -1
- esphome/components/ultrasonic/ultrasonic_sensor.cpp +5 -3
- esphome/components/update/__init__.py +1 -0
- esphome/components/uponor_smatrix/climate/uponor_smatrix_climate.cpp +1 -1
- esphome/components/uponor_smatrix/sensor/uponor_smatrix_sensor.cpp +4 -2
- esphome/components/uponor_smatrix/uponor_smatrix.cpp +2 -1
- esphome/components/usb_host/__init__.py +64 -0
- esphome/components/usb_host/usb_host.h +116 -0
- esphome/components/usb_host/usb_host_client.cpp +394 -0
- esphome/components/usb_host/usb_host_component.cpp +35 -0
- esphome/components/usb_uart/__init__.py +134 -0
- esphome/components/usb_uart/ch34x.cpp +80 -0
- esphome/components/usb_uart/cp210x.cpp +126 -0
- esphome/components/usb_uart/usb_uart.cpp +328 -0
- esphome/components/usb_uart/usb_uart.h +151 -0
- esphome/components/valve/__init__.py +1 -0
- esphome/components/veml3235/veml3235.cpp +13 -9
- esphome/components/veml7700/veml7700.cpp +10 -6
- esphome/components/voice_assistant/voice_assistant.cpp +7 -7
- esphome/components/wake_on_lan/wake_on_lan.cpp +1 -1
- esphome/components/waveshare_epaper/waveshare_epaper.cpp +1 -1
- esphome/components/web_server/server_index_v2.h +632 -630
- esphome/components/web_server/server_index_v3.h +411 -409
- esphome/components/web_server/web_server.cpp +5 -3
- esphome/components/web_server_base/web_server_base.cpp +1 -1
- esphome/components/web_server_idf/utils.cpp +1 -1
- esphome/components/web_server_idf/web_server_idf.cpp +1 -1
- esphome/components/weikai/__init__.py +2 -0
- esphome/components/weikai/weikai.cpp +23 -21
- esphome/components/weikai_i2c/weikai_i2c.cpp +14 -9
- esphome/components/weikai_spi/weikai_spi.cpp +11 -6
- esphome/components/wiegand/wiegand.cpp +1 -1
- esphome/components/wifi/wifi_component.cpp +50 -37
- esphome/components/wifi/wifi_component.h +7 -4
- esphome/components/wifi/wifi_component_esp32_arduino.cpp +2 -2
- esphome/components/wifi/wifi_component_esp8266.cpp +3 -3
- esphome/components/wifi/wifi_component_libretiny.cpp +4 -4
- esphome/components/wireguard/wireguard.cpp +21 -21
- esphome/components/wl_134/text_sensor.py +1 -2
- esphome/components/wled/wled_light_effect.cpp +1 -1
- esphome/components/x9c/x9c.cpp +5 -3
- esphome/components/xgzp68xx/xgzp68xx.cpp +8 -6
- esphome/components/xiaomi_cgd1/xiaomi_cgd1.cpp +4 -2
- esphome/components/xiaomi_cgdk2/xiaomi_cgdk2.cpp +4 -2
- esphome/components/xiaomi_cgg1/xiaomi_cgg1.cpp +4 -2
- esphome/components/xiaomi_hhccjcy10/xiaomi_hhccjcy10.cpp +1 -1
- esphome/components/xiaomi_lywsd02mmc/xiaomi_lywsd02mmc.cpp +4 -2
- esphome/components/xiaomi_lywsd03mmc/xiaomi_lywsd03mmc.cpp +4 -2
- esphome/components/xiaomi_mhoc401/xiaomi_mhoc401.cpp +4 -2
- esphome/components/xl9535/xl9535.cpp +2 -2
- esphome/components/xpt2046/touchscreen/xpt2046.cpp +12 -11
- esphome/components/xpt2046/touchscreen/xpt2046.h +2 -2
- esphome/config.py +3 -2
- esphome/config_validation.py +46 -17
- esphome/const.py +10 -1
- esphome/core/__init__.py +37 -18
- esphome/core/application.cpp +188 -5
- esphome/core/application.h +110 -0
- esphome/core/component.h +13 -0
- esphome/core/config.py +12 -0
- esphome/core/defines.h +10 -2
- esphome/core/helpers.cpp +1 -1
- esphome/core/helpers.h +4 -4
- esphome/core/log.h +2 -0
- esphome/core/log_const_en.h +4 -0
- esphome/core/scheduler.cpp +2 -2
- esphome/coroutine.py +3 -4
- esphome/cpp_generator.py +32 -32
- esphome/dashboard/core.py +2 -2
- esphome/dashboard/web_server.py +2 -2
- esphome/git.py +4 -4
- esphome/helpers.py +5 -6
- esphome/loader.py +8 -7
- esphome/log.py +7 -1
- esphome/platformio_api.py +2 -3
- esphome/storage_json.py +13 -5
- esphome/types.py +12 -13
- esphome/util.py +1 -2
- esphome/writer.py +5 -3
- esphome/yaml_util.py +6 -1
- esphome/zeroconf.py +1 -1
- {esphome-2025.5.2.dist-info → esphome-2025.6.0b1.dist-info}/METADATA +12 -11
- {esphome-2025.5.2.dist-info → esphome-2025.6.0b1.dist-info}/RECORD +715 -662
- {esphome-2025.5.2.dist-info → esphome-2025.6.0b1.dist-info}/WHEEL +1 -1
- {esphome-2025.5.2.dist-info → esphome-2025.6.0b1.dist-info}/entry_points.txt +0 -0
- {esphome-2025.5.2.dist-info → esphome-2025.6.0b1.dist-info}/licenses/LICENSE +0 -0
- {esphome-2025.5.2.dist-info → esphome-2025.6.0b1.dist-info}/top_level.txt +0 -0
@@ -235,7 +235,7 @@ std::string WebServer::get_config_json() {
|
|
235
235
|
}
|
236
236
|
|
237
237
|
void WebServer::setup() {
|
238
|
-
ESP_LOGCONFIG(TAG, "
|
238
|
+
ESP_LOGCONFIG(TAG, "Running setup");
|
239
239
|
this->setup_controller(this->include_internal_);
|
240
240
|
this->base_->init();
|
241
241
|
|
@@ -282,8 +282,10 @@ void WebServer::loop() {
|
|
282
282
|
this->events_.loop();
|
283
283
|
}
|
284
284
|
void WebServer::dump_config() {
|
285
|
-
ESP_LOGCONFIG(TAG,
|
286
|
-
|
285
|
+
ESP_LOGCONFIG(TAG,
|
286
|
+
"Web Server:\n"
|
287
|
+
" Address: %s:%u",
|
288
|
+
network::get_use_address().c_str(), this->base_->get_port());
|
287
289
|
}
|
288
290
|
float WebServer::get_setup_priority() const { return setup_priority::WIFI - 1.0f; }
|
289
291
|
|
@@ -16,6 +16,7 @@ CODEOWNERS = ["@DrCoolZic"]
|
|
16
16
|
AUTO_LOAD = ["uart"]
|
17
17
|
|
18
18
|
MULTI_CONF = True
|
19
|
+
CONF_DATA_BITS = "data_bits"
|
19
20
|
CONF_STOP_BITS = "stop_bits"
|
20
21
|
CONF_PARITY = "parity"
|
21
22
|
CONF_CRYSTAL = "crystal"
|
@@ -60,6 +61,7 @@ WKBASE_SCHEMA = cv.Schema(
|
|
60
61
|
cv.Required(CONF_ID): cv.declare_id(WeikaiChannel),
|
61
62
|
cv.Optional(CONF_CHANNEL, default=0): cv.int_range(min=0, max=3),
|
62
63
|
cv.Required(CONF_BAUD_RATE): cv.int_range(min=1),
|
64
|
+
cv.Optional(CONF_DATA_BITS, default=8): cv.one_of(8, int=True),
|
63
65
|
cv.Optional(CONF_STOP_BITS, default=1): cv.one_of(1, 2, int=True),
|
64
66
|
cv.Optional(CONF_PARITY, default="NONE"): cv.enum(
|
65
67
|
uart.UART_PARITY_OPTIONS, upper=True
|
@@ -112,7 +112,7 @@ void WeikaiComponent::loop() {
|
|
112
112
|
transferred += child->xfer_fifo_to_buffer_();
|
113
113
|
}
|
114
114
|
if (transferred > 0) {
|
115
|
-
ESP_LOGV(TAG, "
|
115
|
+
ESP_LOGV(TAG, "transferred %d bytes from fifo to buffer", transferred);
|
116
116
|
}
|
117
117
|
|
118
118
|
#ifdef TEST_COMPONENT
|
@@ -121,8 +121,8 @@ void WeikaiComponent::loop() {
|
|
121
121
|
uint32_t time = 0;
|
122
122
|
|
123
123
|
if (test_mode_ == 1) { // test component in loopback
|
124
|
-
ESP_LOGI(TAG, "Component loop %" PRIu32 " for %s : %" PRIu32 " ms since last call
|
125
|
-
|
124
|
+
ESP_LOGI(TAG, "Component loop %" PRIu32 " for %s : %" PRIu32 " ms since last call", loop_count++, this->get_name(),
|
125
|
+
millis() - loop_time);
|
126
126
|
loop_time = millis();
|
127
127
|
char message[64];
|
128
128
|
elapsed_ms(time); // set time to now
|
@@ -134,14 +134,14 @@ void WeikaiComponent::loop() {
|
|
134
134
|
uint32_t const start_time = millis();
|
135
135
|
while (children_[i]->tx_fifo_is_not_empty_()) { // wait until buffer empty
|
136
136
|
if (millis() - start_time > 1500) {
|
137
|
-
ESP_LOGE(TAG, "timeout while flushing - %d bytes left in buffer
|
137
|
+
ESP_LOGE(TAG, "timeout while flushing - %d bytes left in buffer", children_[i]->tx_in_fifo_());
|
138
138
|
break;
|
139
139
|
}
|
140
140
|
yield(); // reschedule our thread to avoid blocking
|
141
141
|
}
|
142
142
|
bool status = children_[i]->uart_receive_test_(message);
|
143
|
-
ESP_LOGI(TAG, "Test %s => send/received %u bytes %s - execution time %" PRIu32 " ms
|
144
|
-
|
143
|
+
ESP_LOGI(TAG, "Test %s => send/received %u bytes %s - execution time %" PRIu32 " ms", message, RING_BUFFER_SIZE,
|
144
|
+
status ? "correctly" : "with error", elapsed_ms(time));
|
145
145
|
}
|
146
146
|
}
|
147
147
|
|
@@ -255,10 +255,10 @@ std::string WeikaiGPIOPin::dump_summary() const {
|
|
255
255
|
// The WeikaiChannel methods
|
256
256
|
///////////////////////////////////////////////////////////////////////////////
|
257
257
|
void WeikaiChannel::setup_channel() {
|
258
|
-
ESP_LOGCONFIG(TAG, " Setting up UART %s:%s
|
258
|
+
ESP_LOGCONFIG(TAG, " Setting up UART %s:%s", this->parent_->get_name(), this->get_channel_name());
|
259
259
|
// we enable transmit and receive on this channel
|
260
260
|
if (this->check_channel_down()) {
|
261
|
-
ESP_LOGCONFIG(TAG, " Error channel %s not working
|
261
|
+
ESP_LOGCONFIG(TAG, " Error channel %s not working", this->get_channel_name());
|
262
262
|
}
|
263
263
|
this->reset_fifo_();
|
264
264
|
this->receive_buffer_.clear();
|
@@ -267,11 +267,13 @@ void WeikaiChannel::setup_channel() {
|
|
267
267
|
}
|
268
268
|
|
269
269
|
void WeikaiChannel::dump_channel() {
|
270
|
-
ESP_LOGCONFIG(TAG,
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
270
|
+
ESP_LOGCONFIG(TAG,
|
271
|
+
" UART %s\n"
|
272
|
+
" Baud rate: %" PRIu32 " Bd\n"
|
273
|
+
" Data bits: %u\n"
|
274
|
+
" Stop bits: %u\n"
|
275
|
+
" Parity: %s",
|
276
|
+
this->get_channel_name(), this->baud_rate_, this->data_bits_, this->stop_bits_, p2s(this->parity_));
|
275
277
|
}
|
276
278
|
|
277
279
|
void WeikaiChannel::reset_fifo_() {
|
@@ -407,7 +409,7 @@ bool WeikaiChannel::read_array(uint8_t *buffer, size_t length) {
|
|
407
409
|
bool status = true;
|
408
410
|
auto available = this->receive_buffer_.count();
|
409
411
|
if (length > available) {
|
410
|
-
ESP_LOGW(TAG, "read_array: buffer underflow requested %d bytes only %d bytes available
|
412
|
+
ESP_LOGW(TAG, "read_array: buffer underflow requested %d bytes only %d bytes available", length, available);
|
411
413
|
length = available;
|
412
414
|
status = false;
|
413
415
|
}
|
@@ -422,7 +424,7 @@ bool WeikaiChannel::read_array(uint8_t *buffer, size_t length) {
|
|
422
424
|
|
423
425
|
void WeikaiChannel::write_array(const uint8_t *buffer, size_t length) {
|
424
426
|
if (length > XFER_MAX_SIZE) {
|
425
|
-
ESP_LOGE(TAG, "Write_array: invalid call - requested %d bytes but max size %d
|
427
|
+
ESP_LOGE(TAG, "Write_array: invalid call - requested %d bytes but max size %d", length, XFER_MAX_SIZE);
|
426
428
|
length = XFER_MAX_SIZE;
|
427
429
|
}
|
428
430
|
this->reg(0).write_fifo(const_cast<uint8_t *>(buffer), length);
|
@@ -432,7 +434,7 @@ void WeikaiChannel::flush() {
|
|
432
434
|
uint32_t const start_time = millis();
|
433
435
|
while (this->tx_fifo_is_not_empty_()) { // wait until buffer empty
|
434
436
|
if (millis() - start_time > 200) {
|
435
|
-
ESP_LOGW(TAG, "WARNING flush timeout - still %d bytes not sent after 200 ms
|
437
|
+
ESP_LOGW(TAG, "WARNING flush timeout - still %d bytes not sent after 200 ms", this->tx_in_fifo_());
|
436
438
|
return;
|
437
439
|
}
|
438
440
|
yield(); // reschedule our thread to avoid blocking
|
@@ -509,7 +511,7 @@ void WeikaiChannel::uart_send_test_(char *message) {
|
|
509
511
|
this->flush();
|
510
512
|
to_send -= XFER_MAX_SIZE;
|
511
513
|
}
|
512
|
-
ESP_LOGV(TAG, "%s => sent %d bytes - exec time %d µs
|
514
|
+
ESP_LOGV(TAG, "%s => sent %d bytes - exec time %d µs", message, RING_BUFFER_SIZE, micros() - start_exec);
|
513
515
|
}
|
514
516
|
|
515
517
|
/// @brief test read_array method
|
@@ -526,7 +528,7 @@ bool WeikaiChannel::uart_receive_test_(char *message) {
|
|
526
528
|
while (XFER_MAX_SIZE > this->available()) {
|
527
529
|
this->xfer_fifo_to_buffer_();
|
528
530
|
if (millis() - start_time > 1500) {
|
529
|
-
ESP_LOGE(TAG, "uart_receive_test_() timeout: only %d bytes received
|
531
|
+
ESP_LOGE(TAG, "uart_receive_test_() timeout: only %d bytes received", this->available());
|
530
532
|
break;
|
531
533
|
}
|
532
534
|
yield(); // reschedule our thread to avoid blocking
|
@@ -538,20 +540,20 @@ bool WeikaiChannel::uart_receive_test_(char *message) {
|
|
538
540
|
uint8_t peek_value = 0;
|
539
541
|
this->peek_byte(&peek_value);
|
540
542
|
if (peek_value != 0) {
|
541
|
-
ESP_LOGE(TAG, "Peek first byte value error
|
543
|
+
ESP_LOGE(TAG, "Peek first byte value error");
|
542
544
|
status = false;
|
543
545
|
}
|
544
546
|
|
545
547
|
for (size_t i = 0; i < RING_BUFFER_SIZE; i++) {
|
546
548
|
if (buffer[i] != i % XFER_MAX_SIZE) {
|
547
|
-
ESP_LOGE(TAG, "Read buffer contains error
|
549
|
+
ESP_LOGE(TAG, "Read buffer contains error b=%x i=%x", buffer[i], i % XFER_MAX_SIZE);
|
548
550
|
print_buffer(buffer);
|
549
551
|
status = false;
|
550
552
|
break;
|
551
553
|
}
|
552
554
|
}
|
553
555
|
|
554
|
-
ESP_LOGV(TAG, "%s => received %d bytes status %s - exec time %d µs
|
556
|
+
ESP_LOGV(TAG, "%s => received %d bytes status %s - exec time %d µs", message, received, status ? "OK" : "ERROR",
|
555
557
|
micros() - start_exec);
|
556
558
|
return status;
|
557
559
|
}
|
@@ -96,7 +96,7 @@ void WeikaiRegisterI2C::read_fifo(uint8_t *data, size_t length) const {
|
|
96
96
|
#endif
|
97
97
|
} else { // error
|
98
98
|
this->comp_->status_set_warning();
|
99
|
-
ESP_LOGE(TAG, "WeikaiRegisterI2C::read_fifo() @%02X reg=N/A ch=%d I2C_code:%d len=%d buf=%02X
|
99
|
+
ESP_LOGE(TAG, "WeikaiRegisterI2C::read_fifo() @%02X reg=N/A ch=%d I2C_code:%d len=%d buf=%02X", address,
|
100
100
|
this->channel_, (int) error, length, data[0]);
|
101
101
|
}
|
102
102
|
}
|
@@ -131,8 +131,8 @@ void WeikaiRegisterI2C::write_fifo(uint8_t *data, size_t length) {
|
|
131
131
|
#endif
|
132
132
|
} else { // error
|
133
133
|
this->comp_->status_set_warning();
|
134
|
-
ESP_LOGE(TAG, "WK2168Reg::write_fifo() @%02X reg=N/A, ch=%d I2C_code:%d len=%d, buf=%02X
|
135
|
-
|
134
|
+
ESP_LOGE(TAG, "WK2168Reg::write_fifo() @%02X reg=N/A, ch=%d I2C_code:%d len=%d, buf=%02X", address, this->channel_,
|
135
|
+
(int) error, length, data[0]);
|
136
136
|
}
|
137
137
|
}
|
138
138
|
|
@@ -142,7 +142,7 @@ void WeikaiRegisterI2C::write_fifo(uint8_t *data, size_t length) {
|
|
142
142
|
void WeikaiComponentI2C::setup() {
|
143
143
|
// before any manipulation we store the address to base_address_ for future use
|
144
144
|
this->base_address_ = this->address_;
|
145
|
-
ESP_LOGCONFIG(TAG, "
|
145
|
+
ESP_LOGCONFIG(TAG, "Running setup for '%s' with %d UARTs at @%02X", this->get_name(), this->children_.size(),
|
146
146
|
this->base_address_);
|
147
147
|
|
148
148
|
// enable all channels
|
@@ -160,11 +160,16 @@ void WeikaiComponentI2C::setup() {
|
|
160
160
|
}
|
161
161
|
|
162
162
|
void WeikaiComponentI2C::dump_config() {
|
163
|
-
ESP_LOGCONFIG(TAG,
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
163
|
+
ESP_LOGCONFIG(TAG,
|
164
|
+
"Initialization of %s with %d UARTs completed\n"
|
165
|
+
" Crystal: %" PRIu32,
|
166
|
+
this->get_name(), this->children_.size(), this->crystal_);
|
167
|
+
if (test_mode_) {
|
168
|
+
ESP_LOGCONFIG(TAG,
|
169
|
+
" Test mode: %d\n"
|
170
|
+
" Transfer buffer size: %d",
|
171
|
+
test_mode_, XFER_MAX_SIZE);
|
172
|
+
}
|
168
173
|
this->address_ = this->base_address_; // we restore the base_address before display (less confusing)
|
169
174
|
LOG_I2C_DEVICE(this);
|
170
175
|
|
@@ -156,7 +156,7 @@ void WeikaiRegisterSPI::write_fifo(uint8_t *data, size_t length) {
|
|
156
156
|
///////////////////////////////////////////////////////////////////////////////
|
157
157
|
void WeikaiComponentSPI::setup() {
|
158
158
|
using namespace weikai;
|
159
|
-
ESP_LOGCONFIG(TAG, "
|
159
|
+
ESP_LOGCONFIG(TAG, "Running setup for '%s' with %d UARTs", this->get_name(), this->children_.size());
|
160
160
|
this->spi_setup();
|
161
161
|
// enable all channels
|
162
162
|
this->reg(WKREG_GENA, 0) = GENA_C1EN | GENA_C2EN | GENA_C3EN | GENA_C4EN;
|
@@ -173,11 +173,16 @@ void WeikaiComponentSPI::setup() {
|
|
173
173
|
}
|
174
174
|
|
175
175
|
void WeikaiComponentSPI::dump_config() {
|
176
|
-
ESP_LOGCONFIG(TAG,
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
176
|
+
ESP_LOGCONFIG(TAG,
|
177
|
+
"Initialization of %s with %d UARTs completed\n"
|
178
|
+
" Crystal: %" PRIu32,
|
179
|
+
this->get_name(), this->children_.size(), this->crystal_);
|
180
|
+
if (test_mode_) {
|
181
|
+
ESP_LOGCONFIG(TAG,
|
182
|
+
" Test mode: %d\n"
|
183
|
+
" Transfer buffer size: %d",
|
184
|
+
test_mode_, XFER_MAX_SIZE);
|
185
|
+
}
|
181
186
|
LOG_PIN(" CS Pin: ", this->cs_);
|
182
187
|
|
183
188
|
for (auto *child : this->children_) {
|
@@ -45,7 +45,7 @@ static const char *const TAG = "wifi";
|
|
45
45
|
float WiFiComponent::get_setup_priority() const { return setup_priority::WIFI; }
|
46
46
|
|
47
47
|
void WiFiComponent::setup() {
|
48
|
-
ESP_LOGCONFIG(TAG, "
|
48
|
+
ESP_LOGCONFIG(TAG, "Running setup");
|
49
49
|
this->wifi_pre_setup_();
|
50
50
|
if (this->enable_on_boot_) {
|
51
51
|
this->start();
|
@@ -58,8 +58,10 @@ void WiFiComponent::setup() {
|
|
58
58
|
}
|
59
59
|
|
60
60
|
void WiFiComponent::start() {
|
61
|
-
ESP_LOGCONFIG(TAG,
|
62
|
-
|
61
|
+
ESP_LOGCONFIG(TAG,
|
62
|
+
"Starting\n"
|
63
|
+
" Local MAC: %s",
|
64
|
+
get_mac_address_pretty().c_str());
|
63
65
|
this->last_connected_ = millis();
|
64
66
|
|
65
67
|
uint32_t hash = this->has_sta() ? fnv1_hash(App.get_compilation_time()) : 88491487UL;
|
@@ -71,7 +73,7 @@ void WiFiComponent::start() {
|
|
71
73
|
|
72
74
|
SavedWifiSettings save{};
|
73
75
|
if (this->pref_.load(&save)) {
|
74
|
-
ESP_LOGD(TAG, "Loaded saved
|
76
|
+
ESP_LOGD(TAG, "Loaded saved settings: %s", save.ssid);
|
75
77
|
|
76
78
|
WiFiAP sta{};
|
77
79
|
sta.set_ssid(save.ssid);
|
@@ -122,7 +124,7 @@ void WiFiComponent::start() {
|
|
122
124
|
|
123
125
|
void WiFiComponent::loop() {
|
124
126
|
this->wifi_loop_();
|
125
|
-
const uint32_t now =
|
127
|
+
const uint32_t now = App.get_loop_component_start_time();
|
126
128
|
|
127
129
|
if (this->has_sta()) {
|
128
130
|
if (this->is_connected() != this->handled_connected_state_) {
|
@@ -160,7 +162,7 @@ void WiFiComponent::loop() {
|
|
160
162
|
|
161
163
|
case WIFI_COMPONENT_STATE_STA_CONNECTED: {
|
162
164
|
if (!this->is_connected()) {
|
163
|
-
ESP_LOGW(TAG, "
|
165
|
+
ESP_LOGW(TAG, "Connection lost; reconnecting");
|
164
166
|
this->state_ = WIFI_COMPONENT_STATE_STA_CONNECTING;
|
165
167
|
this->retry_connect();
|
166
168
|
} else {
|
@@ -201,7 +203,7 @@ void WiFiComponent::loop() {
|
|
201
203
|
|
202
204
|
if (!this->has_ap() && this->reboot_timeout_ != 0) {
|
203
205
|
if (now - this->last_connected_ > this->reboot_timeout_) {
|
204
|
-
ESP_LOGE(TAG, "Can't connect
|
206
|
+
ESP_LOGE(TAG, "Can't connect; rebooting");
|
205
207
|
App.reboot();
|
206
208
|
}
|
207
209
|
}
|
@@ -260,15 +262,19 @@ void WiFiComponent::setup_ap_config_() {
|
|
260
262
|
this->ap_.set_ssid(name);
|
261
263
|
}
|
262
264
|
|
263
|
-
ESP_LOGCONFIG(TAG, "Setting up AP
|
265
|
+
ESP_LOGCONFIG(TAG, "Setting up AP");
|
264
266
|
|
265
|
-
ESP_LOGCONFIG(TAG,
|
266
|
-
|
267
|
+
ESP_LOGCONFIG(TAG,
|
268
|
+
" AP SSID: '%s'\n"
|
269
|
+
" AP Password: '%s'",
|
270
|
+
this->ap_.get_ssid().c_str(), this->ap_.get_password().c_str());
|
267
271
|
if (this->ap_.get_manual_ip().has_value()) {
|
268
272
|
auto manual = *this->ap_.get_manual_ip();
|
269
|
-
ESP_LOGCONFIG(TAG,
|
270
|
-
|
271
|
-
|
273
|
+
ESP_LOGCONFIG(TAG,
|
274
|
+
" AP Static IP: '%s'\n"
|
275
|
+
" AP Gateway: '%s'\n"
|
276
|
+
" AP Subnet: '%s'",
|
277
|
+
manual.static_ip.str().c_str(), manual.gateway.str().c_str(), manual.subnet.str().c_str());
|
272
278
|
}
|
273
279
|
|
274
280
|
this->ap_setup_ = this->wifi_start_ap_(this->ap_);
|
@@ -310,7 +316,7 @@ void WiFiComponent::save_wifi_sta(const std::string &ssid, const std::string &pa
|
|
310
316
|
}
|
311
317
|
|
312
318
|
void WiFiComponent::start_connecting(const WiFiAP &ap, bool two) {
|
313
|
-
ESP_LOGI(TAG, "
|
319
|
+
ESP_LOGI(TAG, "Connecting to '%s'", ap.get_ssid().c_str());
|
314
320
|
#ifdef ESPHOME_LOG_HAS_VERBOSE
|
315
321
|
ESP_LOGV(TAG, "Connection Params:");
|
316
322
|
ESP_LOGV(TAG, " SSID: '%s'", ap.get_ssid().c_str());
|
@@ -427,7 +433,7 @@ void WiFiComponent::print_connect_params_() {
|
|
427
433
|
|
428
434
|
ESP_LOGCONFIG(TAG, " Local MAC: %s", get_mac_address_pretty().c_str());
|
429
435
|
if (this->is_disabled()) {
|
430
|
-
ESP_LOGCONFIG(TAG, "
|
436
|
+
ESP_LOGCONFIG(TAG, " Disabled");
|
431
437
|
return;
|
432
438
|
}
|
433
439
|
ESP_LOGCONFIG(TAG, " SSID: " LOG_SECRET("'%s'"), wifi_ssid().c_str());
|
@@ -436,22 +442,29 @@ void WiFiComponent::print_connect_params_() {
|
|
436
442
|
ESP_LOGCONFIG(TAG, " IP Address: %s", ip.str().c_str());
|
437
443
|
}
|
438
444
|
}
|
439
|
-
ESP_LOGCONFIG(TAG, " BSSID: " LOG_SECRET("%02X:%02X:%02X:%02X:%02X:%02X"), bssid[0], bssid[1], bssid[2], bssid[3],
|
440
|
-
bssid[4], bssid[5]);
|
441
|
-
ESP_LOGCONFIG(TAG, " Hostname: '%s'", App.get_name().c_str());
|
442
445
|
int8_t rssi = wifi_rssi();
|
443
|
-
ESP_LOGCONFIG(TAG,
|
446
|
+
ESP_LOGCONFIG(TAG,
|
447
|
+
" BSSID: " LOG_SECRET("%02X:%02X:%02X:%02X:%02X:%02X") "\n"
|
448
|
+
" Hostname: '%s'\n"
|
449
|
+
" Signal strength: %d dB %s",
|
450
|
+
bssid[0], bssid[1], bssid[2], bssid[3], bssid[4], bssid[5], App.get_name().c_str(), rssi,
|
451
|
+
LOG_STR_ARG(get_signal_bars(rssi)));
|
444
452
|
if (this->selected_ap_.get_bssid().has_value()) {
|
445
453
|
ESP_LOGV(TAG, " Priority: %.1f", this->get_sta_priority(*this->selected_ap_.get_bssid()));
|
446
454
|
}
|
447
|
-
ESP_LOGCONFIG(TAG,
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
455
|
+
ESP_LOGCONFIG(TAG,
|
456
|
+
" Channel: %" PRId32 "\n"
|
457
|
+
" Subnet: %s\n"
|
458
|
+
" Gateway: %s\n"
|
459
|
+
" DNS1: %s\n"
|
460
|
+
" DNS2: %s",
|
461
|
+
get_wifi_channel(), wifi_subnet_mask_().str().c_str(), wifi_gateway_ip_().str().c_str(),
|
462
|
+
wifi_dns_ip_(0).str().c_str(), wifi_dns_ip_(1).str().c_str());
|
452
463
|
#ifdef USE_WIFI_11KV_SUPPORT
|
453
|
-
ESP_LOGCONFIG(TAG,
|
454
|
-
|
464
|
+
ESP_LOGCONFIG(TAG,
|
465
|
+
" BTM: %s\n"
|
466
|
+
" RRM: %s",
|
467
|
+
this->btm_ ? "enabled" : "disabled", this->rrm_ ? "enabled" : "disabled");
|
455
468
|
#endif
|
456
469
|
}
|
457
470
|
|
@@ -459,7 +472,7 @@ void WiFiComponent::enable() {
|
|
459
472
|
if (this->state_ != WIFI_COMPONENT_STATE_DISABLED)
|
460
473
|
return;
|
461
474
|
|
462
|
-
ESP_LOGD(TAG, "Enabling
|
475
|
+
ESP_LOGD(TAG, "Enabling");
|
463
476
|
this->error_from_callback_ = false;
|
464
477
|
this->state_ = WIFI_COMPONENT_STATE_OFF;
|
465
478
|
this->start();
|
@@ -469,7 +482,7 @@ void WiFiComponent::disable() {
|
|
469
482
|
if (this->state_ == WIFI_COMPONENT_STATE_DISABLED)
|
470
483
|
return;
|
471
484
|
|
472
|
-
ESP_LOGD(TAG, "Disabling
|
485
|
+
ESP_LOGD(TAG, "Disabling");
|
473
486
|
this->state_ = WIFI_COMPONENT_STATE_DISABLED;
|
474
487
|
this->wifi_disconnect_();
|
475
488
|
this->wifi_mode_(false, false);
|
@@ -479,7 +492,7 @@ bool WiFiComponent::is_disabled() { return this->state_ == WIFI_COMPONENT_STATE_
|
|
479
492
|
|
480
493
|
void WiFiComponent::start_scanning() {
|
481
494
|
this->action_started_ = millis();
|
482
|
-
ESP_LOGD(TAG, "Starting scan
|
495
|
+
ESP_LOGD(TAG, "Starting scan");
|
483
496
|
this->wifi_scan_start_(this->passive_scan_);
|
484
497
|
this->state_ = WIFI_COMPONENT_STATE_STA_SCANNING;
|
485
498
|
}
|
@@ -614,7 +627,7 @@ void WiFiComponent::check_connecting_finished() {
|
|
614
627
|
// We won't retry hidden networks unless a reconnect fails more than three times again
|
615
628
|
this->retry_hidden_ = false;
|
616
629
|
|
617
|
-
ESP_LOGI(TAG, "
|
630
|
+
ESP_LOGI(TAG, "Connected");
|
618
631
|
this->print_connect_params_();
|
619
632
|
|
620
633
|
if (this->has_ap()) {
|
@@ -623,7 +636,7 @@ void WiFiComponent::check_connecting_finished() {
|
|
623
636
|
captive_portal::global_captive_portal->end();
|
624
637
|
}
|
625
638
|
#endif
|
626
|
-
ESP_LOGD(TAG, "Disabling AP
|
639
|
+
ESP_LOGD(TAG, "Disabling AP");
|
627
640
|
this->wifi_mode_({}, false);
|
628
641
|
}
|
629
642
|
#ifdef USE_IMPROV
|
@@ -644,7 +657,7 @@ void WiFiComponent::check_connecting_finished() {
|
|
644
657
|
|
645
658
|
uint32_t now = millis();
|
646
659
|
if (now - this->action_started_ > 30000) {
|
647
|
-
ESP_LOGW(TAG, "
|
660
|
+
ESP_LOGW(TAG, "Connection timeout");
|
648
661
|
this->retry_connect();
|
649
662
|
return;
|
650
663
|
}
|
@@ -660,18 +673,18 @@ void WiFiComponent::check_connecting_finished() {
|
|
660
673
|
}
|
661
674
|
|
662
675
|
if (status == WiFiSTAConnectStatus::ERROR_NETWORK_NOT_FOUND) {
|
663
|
-
ESP_LOGW(TAG, "
|
676
|
+
ESP_LOGW(TAG, "Network no longer found");
|
664
677
|
this->retry_connect();
|
665
678
|
return;
|
666
679
|
}
|
667
680
|
|
668
681
|
if (status == WiFiSTAConnectStatus::ERROR_CONNECT_FAILED) {
|
669
|
-
ESP_LOGW(TAG, "
|
682
|
+
ESP_LOGW(TAG, "Connection failed. Check credentials");
|
670
683
|
this->retry_connect();
|
671
684
|
return;
|
672
685
|
}
|
673
686
|
|
674
|
-
ESP_LOGW(TAG, "
|
687
|
+
ESP_LOGW(TAG, "Unknown connection status %d", (int) status);
|
675
688
|
this->retry_connect();
|
676
689
|
}
|
677
690
|
|
@@ -687,14 +700,14 @@ void WiFiComponent::retry_connect() {
|
|
687
700
|
(this->num_retried_ > 3 || this->error_from_callback_)) {
|
688
701
|
if (this->num_retried_ > 5) {
|
689
702
|
// If retry failed for more than 5 times, let's restart STA
|
690
|
-
ESP_LOGW(TAG, "Restarting WiFi adapter
|
703
|
+
ESP_LOGW(TAG, "Restarting WiFi adapter");
|
691
704
|
this->wifi_mode_(false, {});
|
692
705
|
delay(100); // NOLINT
|
693
706
|
this->num_retried_ = 0;
|
694
707
|
this->retry_hidden_ = false;
|
695
708
|
} else {
|
696
709
|
// Try hidden networks after 3 failed retries
|
697
|
-
ESP_LOGD(TAG, "Retrying with hidden networks
|
710
|
+
ESP_LOGD(TAG, "Retrying with hidden networks");
|
698
711
|
this->retry_hidden_ = true;
|
699
712
|
this->num_retried_++;
|
700
713
|
}
|
@@ -483,14 +483,16 @@ template<typename... Ts> class WiFiConfigureAction : public Action<Ts...>, publi
|
|
483
483
|
// Enable WiFi
|
484
484
|
global_wifi_component->enable();
|
485
485
|
// Set timeout for the connection
|
486
|
-
this->set_timeout("wifi-connect-timeout", this->connection_timeout_.value(x...), [this]() {
|
487
|
-
this->connecting_ = false;
|
486
|
+
this->set_timeout("wifi-connect-timeout", this->connection_timeout_.value(x...), [this, x...]() {
|
488
487
|
// If the timeout is reached, stop connecting and revert to the old AP
|
489
488
|
global_wifi_component->disable();
|
490
489
|
global_wifi_component->save_wifi_sta(old_sta_.get_ssid(), old_sta_.get_password());
|
491
490
|
global_wifi_component->enable();
|
492
|
-
//
|
493
|
-
this->
|
491
|
+
// Start a timeout for the fallback if the connection to the old AP fails
|
492
|
+
this->set_timeout("wifi-fallback-timeout", this->connection_timeout_.value(x...), [this]() {
|
493
|
+
this->connecting_ = false;
|
494
|
+
this->error_trigger_->trigger();
|
495
|
+
});
|
494
496
|
});
|
495
497
|
}
|
496
498
|
|
@@ -503,6 +505,7 @@ template<typename... Ts> class WiFiConfigureAction : public Action<Ts...>, publi
|
|
503
505
|
if (global_wifi_component->is_connected()) {
|
504
506
|
// The WiFi is connected, stop the timeout and reset the connecting flag
|
505
507
|
this->cancel_timeout("wifi-connect-timeout");
|
508
|
+
this->cancel_timeout("wifi-fallback-timeout");
|
506
509
|
this->connecting_ = false;
|
507
510
|
if (global_wifi_component->wifi_ssid() == this->new_sta_.get_ssid()) {
|
508
511
|
// Callback to notify the user that the connection was successful
|
@@ -91,7 +91,7 @@ bool WiFiComponent::wifi_mode_(optional<bool> sta, optional<bool> ap) {
|
|
91
91
|
bool ret = WiFiClass::mode(set_mode);
|
92
92
|
|
93
93
|
if (!ret) {
|
94
|
-
ESP_LOGW(TAG, "Setting
|
94
|
+
ESP_LOGW(TAG, "Setting mode failed");
|
95
95
|
return false;
|
96
96
|
}
|
97
97
|
|
@@ -590,7 +590,7 @@ void WiFiComponent::wifi_event_callback_(esphome_wifi_event_id_t event, esphome_
|
|
590
590
|
// Mitigate CVE-2020-12638
|
591
591
|
// https://lbsfilm.at/blog/wpa2-authenticationmode-downgrade-in-espressif-microprocessors
|
592
592
|
if (it.old_mode != WIFI_AUTH_OPEN && it.new_mode == WIFI_AUTH_OPEN) {
|
593
|
-
ESP_LOGW(TAG, "Potential Authmode downgrade detected, disconnecting
|
593
|
+
ESP_LOGW(TAG, "Potential Authmode downgrade detected, disconnecting");
|
594
594
|
// we can't call retry_connect() from this context, so disconnect immediately
|
595
595
|
// and notify main thread with error_from_callback_
|
596
596
|
err_t err = esp_wifi_disconnect();
|
@@ -32,11 +32,11 @@ extern "C" {
|
|
32
32
|
#endif
|
33
33
|
}
|
34
34
|
|
35
|
+
#include "esphome/core/application.h"
|
36
|
+
#include "esphome/core/hal.h"
|
35
37
|
#include "esphome/core/helpers.h"
|
36
38
|
#include "esphome/core/log.h"
|
37
|
-
#include "esphome/core/hal.h"
|
38
39
|
#include "esphome/core/util.h"
|
39
|
-
#include "esphome/core/application.h"
|
40
40
|
|
41
41
|
namespace esphome {
|
42
42
|
namespace wifi {
|
@@ -525,7 +525,7 @@ void WiFiComponent::wifi_event_callback(System_Event_t *event) {
|
|
525
525
|
// Mitigate CVE-2020-12638
|
526
526
|
// https://lbsfilm.at/blog/wpa2-authenticationmode-downgrade-in-espressif-microprocessors
|
527
527
|
if (it.old_mode != AUTH_OPEN && it.new_mode == AUTH_OPEN) {
|
528
|
-
ESP_LOGW(TAG, "Potential Authmode downgrade detected, disconnecting
|
528
|
+
ESP_LOGW(TAG, "Potential Authmode downgrade detected, disconnecting");
|
529
529
|
// we can't call retry_connect() from this context, so disconnect immediately
|
530
530
|
// and notify main thread with error_from_callback_
|
531
531
|
wifi_station_disconnect();
|
@@ -9,10 +9,10 @@
|
|
9
9
|
#include "lwip/err.h"
|
10
10
|
#include "lwip/dns.h"
|
11
11
|
|
12
|
+
#include "esphome/core/application.h"
|
13
|
+
#include "esphome/core/hal.h"
|
12
14
|
#include "esphome/core/helpers.h"
|
13
15
|
#include "esphome/core/log.h"
|
14
|
-
#include "esphome/core/hal.h"
|
15
|
-
#include "esphome/core/application.h"
|
16
16
|
#include "esphome/core/util.h"
|
17
17
|
|
18
18
|
namespace esphome {
|
@@ -50,7 +50,7 @@ bool WiFiComponent::wifi_mode_(optional<bool> sta, optional<bool> ap) {
|
|
50
50
|
bool ret = WiFi.mode(static_cast<wifi_mode_t>(mode));
|
51
51
|
|
52
52
|
if (!ret) {
|
53
|
-
ESP_LOGW(TAG, "Setting
|
53
|
+
ESP_LOGW(TAG, "Setting mode failed");
|
54
54
|
}
|
55
55
|
|
56
56
|
return ret;
|
@@ -315,7 +315,7 @@ void WiFiComponent::wifi_event_callback_(esphome_wifi_event_id_t event, esphome_
|
|
315
315
|
// Mitigate CVE-2020-12638
|
316
316
|
// https://lbsfilm.at/blog/wpa2-authenticationmode-downgrade-in-espressif-microprocessors
|
317
317
|
if (it.old_mode != WIFI_AUTH_OPEN && it.new_mode == WIFI_AUTH_OPEN) {
|
318
|
-
ESP_LOGW(TAG, "Potential Authmode downgrade detected, disconnecting
|
318
|
+
ESP_LOGW(TAG, "Potential Authmode downgrade detected, disconnecting");
|
319
319
|
// we can't call retry_connect() from this context, so disconnect immediately
|
320
320
|
// and notify main thread with error_from_callback_
|
321
321
|
WiFi.disconnect();
|