esphome 2025.6.2__py3-none-any.whl → 2025.7.0__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 +10 -4
- 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/as3935_spi/as3935_spi.h +0 -2
- 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/esp_ldo/__init__.py +10 -8
- esphome/components/esp_ldo/esp_ldo.h +3 -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/fan/fan.cpp +4 -0
- 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 +39 -1
- 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.cpp +0 -1
- esphome/components/http_request/http_request_arduino.h +1 -0
- esphome/components/http_request/http_request_idf.cpp +0 -1
- esphome/components/http_request/ota/ota_http_request.cpp +1 -1
- esphome/components/http_request/update/http_request_update.cpp +35 -16
- 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/__init__.py +1 -1
- 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/json/__init__.py +1 -1
- esphome/components/json/json_util.cpp +56 -63
- 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/binary_sensor/ld2420_binary_sensor.cpp +2 -2
- esphome/components/ld2420/button/reconfig_buttons.cpp +1 -1
- esphome/components/ld2420/ld2420.cpp +252 -147
- esphome/components/ld2420/ld2420.h +52 -126
- esphome/components/ld2420/number/__init__.py +2 -2
- esphome/components/ld2420/number/gate_config_number.cpp +1 -1
- esphome/components/ld2420/select/operating_mode_select.cpp +1 -1
- esphome/components/ld2420/sensor/__init__.py +6 -2
- esphome/components/ld2420/sensor/ld2420_sensor.cpp +2 -2
- esphome/components/ld2420/sensor/ld2420_sensor.h +1 -1
- esphome/components/ld2420/text_sensor/text_sensor.cpp +2 -2
- 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_json_schema.cpp +17 -16
- 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/lvgl/widgets/meter.py +20 -13
- 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_alarm_control_panel.cpp +2 -1
- 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_binary_sensor.cpp +1 -0
- esphome/components/mqtt/mqtt_button.cpp +4 -1
- esphome/components/mqtt/mqtt_client.cpp +17 -9
- esphome/components/mqtt/mqtt_client.h +8 -3
- esphome/components/mqtt/mqtt_climate.cpp +6 -4
- esphome/components/mqtt/mqtt_component.cpp +3 -1
- esphome/components/mqtt/mqtt_cover.cpp +1 -0
- esphome/components/mqtt/mqtt_date.cpp +4 -3
- esphome/components/mqtt/mqtt_datetime.cpp +7 -6
- esphome/components/mqtt/mqtt_event.cpp +6 -3
- esphome/components/mqtt/mqtt_fan.cpp +1 -0
- esphome/components/mqtt/mqtt_light.cpp +8 -4
- esphome/components/mqtt/mqtt_lock.cpp +3 -1
- esphome/components/mqtt/mqtt_number.cpp +1 -0
- esphome/components/mqtt/mqtt_select.cpp +2 -1
- esphome/components/mqtt/mqtt_sensor.cpp +3 -1
- esphome/components/mqtt/mqtt_switch.cpp +3 -1
- esphome/components/mqtt/mqtt_text.cpp +1 -0
- esphome/components/mqtt/mqtt_text_sensor.cpp +3 -1
- esphome/components/mqtt/mqtt_time.cpp +4 -3
- esphome/components/mqtt/mqtt_update.cpp +1 -0
- esphome/components/mqtt/mqtt_valve.cpp +3 -1
- esphome/components/ms8607/ms8607.cpp +1 -1
- 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 +9 -1
- esphome/components/online_image/online_image.cpp +17 -7
- esphome/components/online_image/online_image.h +10 -2
- esphome/components/opentherm/opentherm.cpp +7 -12
- esphome/components/opentherm/output/output.cpp +1 -1
- 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.cpp +2 -2
- 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 +81 -21
- 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 +1 -5
- 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 +324 -439
- 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 +164 -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 +169 -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 +156 -22
- 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 +165 -105
- 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/platformio_api.py +2 -0
- esphome/wizard.py +17 -4
- esphome/writer.py +44 -3
- esphome/yaml_util.py +0 -2
- {esphome-2025.6.2.dist-info → esphome-2025.7.0.dist-info}/METADATA +10 -9
- {esphome-2025.6.2.dist-info → esphome-2025.7.0.dist-info}/RECORD +639 -580
- 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.2.dist-info → esphome-2025.7.0.dist-info}/WHEEL +0 -0
- {esphome-2025.6.2.dist-info → esphome-2025.7.0.dist-info}/entry_points.txt +0 -0
- {esphome-2025.6.2.dist-info → esphome-2025.7.0.dist-info}/licenses/LICENSE +0 -0
- {esphome-2025.6.2.dist-info → esphome-2025.7.0.dist-info}/top_level.txt +0 -0
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
namespace esphome {
|
|
14
14
|
namespace thermostat {
|
|
15
15
|
|
|
16
|
-
enum ThermostatClimateTimerIndex :
|
|
16
|
+
enum ThermostatClimateTimerIndex : uint8_t {
|
|
17
17
|
TIMER_COOLING_MAX_RUN_TIME = 0,
|
|
18
18
|
TIMER_COOLING_OFF = 1,
|
|
19
19
|
TIMER_COOLING_ON = 2,
|
|
@@ -26,7 +26,11 @@ enum ThermostatClimateTimerIndex : size_t {
|
|
|
26
26
|
TIMER_IDLE_ON = 9,
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
-
enum OnBootRestoreFrom :
|
|
29
|
+
enum OnBootRestoreFrom : uint8_t {
|
|
30
|
+
MEMORY = 0,
|
|
31
|
+
DEFAULT_PRESET = 1,
|
|
32
|
+
};
|
|
33
|
+
|
|
30
34
|
struct ThermostatClimateTimer {
|
|
31
35
|
bool active;
|
|
32
36
|
uint32_t time;
|
|
@@ -65,7 +69,7 @@ class ThermostatClimate : public climate::Climate, public Component {
|
|
|
65
69
|
|
|
66
70
|
void set_default_preset(const std::string &custom_preset);
|
|
67
71
|
void set_default_preset(climate::ClimatePreset preset);
|
|
68
|
-
void set_on_boot_restore_from(
|
|
72
|
+
void set_on_boot_restore_from(OnBootRestoreFrom on_boot_restore_from);
|
|
69
73
|
void set_set_point_minimum_differential(float differential);
|
|
70
74
|
void set_cool_deadband(float deadband);
|
|
71
75
|
void set_cool_overrun(float overrun);
|
|
@@ -240,10 +244,8 @@ class ThermostatClimate : public climate::Climate, public Component {
|
|
|
240
244
|
void dump_preset_config_(const char *preset_name, const ThermostatClimateTargetTempConfig &config,
|
|
241
245
|
bool is_default_preset);
|
|
242
246
|
|
|
243
|
-
///
|
|
244
|
-
|
|
245
|
-
/// The sensor used for getting the current humidity
|
|
246
|
-
sensor::Sensor *humidity_sensor_{nullptr};
|
|
247
|
+
/// Minimum allowable duration in seconds for action timers
|
|
248
|
+
const uint8_t min_timer_duration_{1};
|
|
247
249
|
|
|
248
250
|
/// Whether the controller supports auto/cooling/drying/fanning/heating.
|
|
249
251
|
///
|
|
@@ -310,6 +312,31 @@ class ThermostatClimate : public climate::Climate, public Component {
|
|
|
310
312
|
/// setup_complete_ blocks modifying/resetting the temps immediately after boot
|
|
311
313
|
bool setup_complete_{false};
|
|
312
314
|
|
|
315
|
+
/// Store previously-known temperatures
|
|
316
|
+
///
|
|
317
|
+
/// These are used to determine when the temperature change trigger/action needs to be called
|
|
318
|
+
float prev_target_temperature_{NAN};
|
|
319
|
+
float prev_target_temperature_low_{NAN};
|
|
320
|
+
float prev_target_temperature_high_{NAN};
|
|
321
|
+
|
|
322
|
+
/// Minimum differential required between set points
|
|
323
|
+
float set_point_minimum_differential_{0};
|
|
324
|
+
|
|
325
|
+
/// Hysteresis values used for computing climate actions
|
|
326
|
+
float cooling_deadband_{0};
|
|
327
|
+
float cooling_overrun_{0};
|
|
328
|
+
float heating_deadband_{0};
|
|
329
|
+
float heating_overrun_{0};
|
|
330
|
+
|
|
331
|
+
/// Maximum allowable temperature deltas before engaging supplemental cooling/heating actions
|
|
332
|
+
float supplemental_cool_delta_{0};
|
|
333
|
+
float supplemental_heat_delta_{0};
|
|
334
|
+
|
|
335
|
+
/// The sensor used for getting the current temperature
|
|
336
|
+
sensor::Sensor *sensor_{nullptr};
|
|
337
|
+
/// The sensor used for getting the current humidity
|
|
338
|
+
sensor::Sensor *humidity_sensor_{nullptr};
|
|
339
|
+
|
|
313
340
|
/// The trigger to call when the controller should switch to cooling action/mode.
|
|
314
341
|
///
|
|
315
342
|
/// A null value for this attribute means that the controller has no cooling action
|
|
@@ -399,7 +426,7 @@ class ThermostatClimate : public climate::Climate, public Component {
|
|
|
399
426
|
/// The trigger to call when the target temperature(s) change(es).
|
|
400
427
|
Trigger<> *temperature_change_trigger_{nullptr};
|
|
401
428
|
|
|
402
|
-
/// The
|
|
429
|
+
/// The trigger to call when the preset mode changes
|
|
403
430
|
Trigger<> *preset_change_trigger_{nullptr};
|
|
404
431
|
|
|
405
432
|
/// A reference to the trigger that was previously active.
|
|
@@ -411,6 +438,10 @@ class ThermostatClimate : public climate::Climate, public Component {
|
|
|
411
438
|
Trigger<> *prev_mode_trigger_{nullptr};
|
|
412
439
|
Trigger<> *prev_swing_mode_trigger_{nullptr};
|
|
413
440
|
|
|
441
|
+
/// If set to DEFAULT_PRESET then the default preset is always used. When MEMORY prior
|
|
442
|
+
/// state will attempt to be restored if possible
|
|
443
|
+
OnBootRestoreFrom on_boot_restore_from_{OnBootRestoreFrom::MEMORY};
|
|
444
|
+
|
|
414
445
|
/// Store previously-known states
|
|
415
446
|
///
|
|
416
447
|
/// These are used to determine when a trigger/action needs to be called
|
|
@@ -419,28 +450,10 @@ class ThermostatClimate : public climate::Climate, public Component {
|
|
|
419
450
|
climate::ClimateMode prev_mode_{climate::CLIMATE_MODE_OFF};
|
|
420
451
|
climate::ClimateSwingMode prev_swing_mode_{climate::CLIMATE_SWING_OFF};
|
|
421
452
|
|
|
422
|
-
///
|
|
423
|
-
|
|
424
|
-
///
|
|
425
|
-
|
|
426
|
-
float prev_target_temperature_low_{NAN};
|
|
427
|
-
float prev_target_temperature_high_{NAN};
|
|
428
|
-
|
|
429
|
-
/// Minimum differential required between set points
|
|
430
|
-
float set_point_minimum_differential_{0};
|
|
431
|
-
|
|
432
|
-
/// Hysteresis values used for computing climate actions
|
|
433
|
-
float cooling_deadband_{0};
|
|
434
|
-
float cooling_overrun_{0};
|
|
435
|
-
float heating_deadband_{0};
|
|
436
|
-
float heating_overrun_{0};
|
|
437
|
-
|
|
438
|
-
/// Maximum allowable temperature deltas before engauging supplemental cooling/heating actions
|
|
439
|
-
float supplemental_cool_delta_{0};
|
|
440
|
-
float supplemental_heat_delta_{0};
|
|
441
|
-
|
|
442
|
-
/// Minimum allowable duration in seconds for action timers
|
|
443
|
-
const uint8_t min_timer_duration_{1};
|
|
453
|
+
/// Default standard preset to use on start up
|
|
454
|
+
climate::ClimatePreset default_preset_{};
|
|
455
|
+
/// Default custom preset to use on start up
|
|
456
|
+
std::string default_custom_preset_{};
|
|
444
457
|
|
|
445
458
|
/// Climate action timers
|
|
446
459
|
std::vector<ThermostatClimateTimer> timer_{
|
|
@@ -460,15 +473,6 @@ class ThermostatClimate : public climate::Climate, public Component {
|
|
|
460
473
|
std::map<climate::ClimatePreset, ThermostatClimateTargetTempConfig> preset_config_{};
|
|
461
474
|
/// The set of custom preset configurations this thermostat supports (eg. "My Custom Preset")
|
|
462
475
|
std::map<std::string, ThermostatClimateTargetTempConfig> custom_preset_config_{};
|
|
463
|
-
|
|
464
|
-
/// Default standard preset to use on start up
|
|
465
|
-
climate::ClimatePreset default_preset_{};
|
|
466
|
-
/// Default custom preset to use on start up
|
|
467
|
-
std::string default_custom_preset_{};
|
|
468
|
-
|
|
469
|
-
/// If set to DEFAULT_PRESET then the default preset is always used. When MEMORY prior
|
|
470
|
-
/// state will attempt to be restored if possible
|
|
471
|
-
thermostat::OnBootRestoreFrom on_boot_restore_from_{thermostat::OnBootRestoreFrom::MEMORY};
|
|
472
476
|
};
|
|
473
477
|
|
|
474
478
|
} // namespace thermostat
|
|
@@ -268,7 +268,19 @@ def validate_tz(value: str) -> str:
|
|
|
268
268
|
|
|
269
269
|
TIME_SCHEMA = cv.Schema(
|
|
270
270
|
{
|
|
271
|
-
cv.
|
|
271
|
+
cv.SplitDefault(
|
|
272
|
+
CONF_TIMEZONE,
|
|
273
|
+
esp8266=detect_tz,
|
|
274
|
+
esp32=detect_tz,
|
|
275
|
+
rp2040=detect_tz,
|
|
276
|
+
bk72xx=detect_tz,
|
|
277
|
+
rtl87xx=detect_tz,
|
|
278
|
+
ln882x=detect_tz,
|
|
279
|
+
host=detect_tz,
|
|
280
|
+
): cv.All(
|
|
281
|
+
cv.only_with_framework(["arduino", "esp-idf", "host"]),
|
|
282
|
+
validate_tz,
|
|
283
|
+
),
|
|
272
284
|
cv.Optional(CONF_ON_TIME): automation.validate_automation(
|
|
273
285
|
{
|
|
274
286
|
cv.GenerateID(CONF_TRIGGER_ID): cv.declare_id(CronTrigger),
|
|
@@ -293,7 +305,9 @@ TIME_SCHEMA = cv.Schema(
|
|
|
293
305
|
|
|
294
306
|
|
|
295
307
|
async def setup_time_core_(time_var, config):
|
|
296
|
-
|
|
308
|
+
if timezone := config.get(CONF_TIMEZONE):
|
|
309
|
+
cg.add(time_var.set_timezone(timezone))
|
|
310
|
+
cg.add_define("USE_TIME_TIMEZONE")
|
|
297
311
|
|
|
298
312
|
for conf in config.get(CONF_ON_TIME, []):
|
|
299
313
|
trigger = cg.new_Pvariable(conf[CONF_TRIGGER_ID], time_var)
|
|
@@ -35,8 +35,10 @@ void RealTimeClock::synchronize_epoch_(uint32_t epoch) {
|
|
|
35
35
|
ret = settimeofday(&timev, nullptr);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
+
#ifdef USE_TIME_TIMEZONE
|
|
38
39
|
// Move timezone back to local timezone.
|
|
39
40
|
this->apply_timezone_();
|
|
41
|
+
#endif
|
|
40
42
|
|
|
41
43
|
if (ret != 0) {
|
|
42
44
|
ESP_LOGW(TAG, "setimeofday() failed with code %d", ret);
|
|
@@ -49,10 +51,12 @@ void RealTimeClock::synchronize_epoch_(uint32_t epoch) {
|
|
|
49
51
|
this->time_sync_callback_.call();
|
|
50
52
|
}
|
|
51
53
|
|
|
54
|
+
#ifdef USE_TIME_TIMEZONE
|
|
52
55
|
void RealTimeClock::apply_timezone_() {
|
|
53
56
|
setenv("TZ", this->timezone_.c_str(), 1);
|
|
54
57
|
tzset();
|
|
55
58
|
}
|
|
59
|
+
#endif
|
|
56
60
|
|
|
57
61
|
} // namespace time
|
|
58
62
|
} // namespace esphome
|
|
@@ -20,6 +20,7 @@ class RealTimeClock : public PollingComponent {
|
|
|
20
20
|
public:
|
|
21
21
|
explicit RealTimeClock();
|
|
22
22
|
|
|
23
|
+
#ifdef USE_TIME_TIMEZONE
|
|
23
24
|
/// Set the time zone.
|
|
24
25
|
void set_timezone(const std::string &tz) {
|
|
25
26
|
this->timezone_ = tz;
|
|
@@ -28,6 +29,7 @@ class RealTimeClock : public PollingComponent {
|
|
|
28
29
|
|
|
29
30
|
/// Get the time zone currently in use.
|
|
30
31
|
std::string get_timezone() { return this->timezone_; }
|
|
32
|
+
#endif
|
|
31
33
|
|
|
32
34
|
/// Get the time in the currently defined timezone.
|
|
33
35
|
ESPTime now() { return ESPTime::from_epoch_local(this->timestamp_now()); }
|
|
@@ -38,7 +40,7 @@ class RealTimeClock : public PollingComponent {
|
|
|
38
40
|
/// Get the current time as the UTC epoch since January 1st 1970.
|
|
39
41
|
time_t timestamp_now() { return ::time(nullptr); }
|
|
40
42
|
|
|
41
|
-
void add_on_time_sync_callback(std::function<void()> callback) {
|
|
43
|
+
void add_on_time_sync_callback(std::function<void()> &&callback) {
|
|
42
44
|
this->time_sync_callback_.add(std::move(callback));
|
|
43
45
|
};
|
|
44
46
|
|
|
@@ -46,8 +48,10 @@ class RealTimeClock : public PollingComponent {
|
|
|
46
48
|
/// Report a unix epoch as current time.
|
|
47
49
|
void synchronize_epoch_(uint32_t epoch);
|
|
48
50
|
|
|
51
|
+
#ifdef USE_TIME_TIMEZONE
|
|
49
52
|
std::string timezone_{};
|
|
50
53
|
void apply_timezone_();
|
|
54
|
+
#endif
|
|
51
55
|
|
|
52
56
|
CallbackManager<void()> time_sync_callback_;
|
|
53
57
|
};
|
|
@@ -24,8 +24,10 @@ void TLC5971::dump_config() {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
void TLC5971::loop() {
|
|
27
|
-
if (!this->update_)
|
|
27
|
+
if (!this->update_) {
|
|
28
|
+
this->disable_loop();
|
|
28
29
|
return;
|
|
30
|
+
}
|
|
29
31
|
|
|
30
32
|
uint32_t command;
|
|
31
33
|
|
|
@@ -93,6 +95,7 @@ void TLC5971::set_channel_value(uint16_t channel, uint16_t value) {
|
|
|
93
95
|
return;
|
|
94
96
|
if (this->pwm_amounts_[channel] != value) {
|
|
95
97
|
this->update_ = true;
|
|
98
|
+
this->enable_loop();
|
|
96
99
|
}
|
|
97
100
|
this->pwm_amounts_[channel] = value;
|
|
98
101
|
}
|
|
@@ -58,8 +58,6 @@ class TMP1075Sensor : public PollingComponent, public sensor::Sensor, public i2c
|
|
|
58
58
|
void setup() override;
|
|
59
59
|
void update() override;
|
|
60
60
|
|
|
61
|
-
float get_setup_priority() const override { return setup_priority::DATA; }
|
|
62
|
-
|
|
63
61
|
void dump_config() override;
|
|
64
62
|
|
|
65
63
|
// Call write_config() after calling any of these to send the new config to
|
|
@@ -12,7 +12,6 @@ class TOF10120Sensor : public sensor::Sensor, public PollingComponent, public i2
|
|
|
12
12
|
void setup() override;
|
|
13
13
|
|
|
14
14
|
void dump_config() override;
|
|
15
|
-
float get_setup_priority() const override { return setup_priority::DATA; }
|
|
16
15
|
void update() override;
|
|
17
16
|
};
|
|
18
17
|
} // namespace tof10120
|
|
@@ -16,7 +16,6 @@ class Tormatic : public cover::Cover, public uart::UARTDevice, public PollingCom
|
|
|
16
16
|
void loop() override;
|
|
17
17
|
void update() override;
|
|
18
18
|
void dump_config() override;
|
|
19
|
-
float get_setup_priority() const override { return setup_priority::DATA; };
|
|
20
19
|
|
|
21
20
|
void set_open_duration(uint32_t duration) { this->open_duration_ = duration; }
|
|
22
21
|
void set_close_duration(uint32_t duration) { this->close_duration_ = duration; }
|
|
@@ -23,7 +23,6 @@ class TotalDailyEnergy : public sensor::Sensor, public Component {
|
|
|
23
23
|
void set_method(TotalDailyEnergyMethod method) { method_ = method; }
|
|
24
24
|
void setup() override;
|
|
25
25
|
void dump_config() override;
|
|
26
|
-
float get_setup_priority() const override { return setup_priority::DATA; }
|
|
27
26
|
void loop() override;
|
|
28
27
|
|
|
29
28
|
void publish_state_and_save(float state);
|
|
@@ -232,7 +232,7 @@ void TSL2591Component::set_integration_time_and_gain(TSL2591IntegrationTime inte
|
|
|
232
232
|
this->integration_time_ = integration_time;
|
|
233
233
|
this->gain_ = gain;
|
|
234
234
|
if (!this->write_byte(TSL2591_COMMAND_BIT | TSL2591_REGISTER_CONTROL,
|
|
235
|
-
this->integration_time_ | this->gain_)) {
|
|
235
|
+
static_cast<uint8_t>(this->integration_time_) | static_cast<uint8_t>(this->gain_))) {
|
|
236
236
|
ESP_LOGE(TAG, "I2C write failed");
|
|
237
237
|
}
|
|
238
238
|
// The ADC values can be confused if gain or integration time are changed in the middle of a cycle.
|
|
@@ -25,7 +25,6 @@ class TTP229BSFComponent : public Component {
|
|
|
25
25
|
void register_channel(TTP229BSFChannel *channel) { this->channels_.push_back(channel); }
|
|
26
26
|
void setup() override;
|
|
27
27
|
void dump_config() override;
|
|
28
|
-
float get_setup_priority() const override { return setup_priority::DATA; }
|
|
29
28
|
void loop() override {
|
|
30
29
|
// check datavalid if sdo is high
|
|
31
30
|
if (!this->sdo_pin_->digital_read()) {
|
|
@@ -23,7 +23,6 @@ class TTP229LSFComponent : public Component, public i2c::I2CDevice {
|
|
|
23
23
|
void register_channel(TTP229Channel *channel) { this->channels_.push_back(channel); }
|
|
24
24
|
void setup() override;
|
|
25
25
|
void dump_config() override;
|
|
26
|
-
float get_setup_priority() const override { return setup_priority::DATA; }
|
|
27
26
|
void loop() override;
|
|
28
27
|
|
|
29
28
|
protected:
|
esphome/components/tx20/tx20.cpp
CHANGED
|
@@ -152,7 +152,7 @@ void IRAM_ATTR Tx20ComponentStore::gpio_intr(Tx20ComponentStore *arg) {
|
|
|
152
152
|
}
|
|
153
153
|
arg->buffer[arg->buffer_index] = 1;
|
|
154
154
|
arg->start_time = now;
|
|
155
|
-
arg->buffer_index++;
|
|
155
|
+
arg->buffer_index++; // NOLINT(clang-diagnostic-deprecated-volatile)
|
|
156
156
|
return;
|
|
157
157
|
}
|
|
158
158
|
const uint32_t delay = now - arg->start_time;
|
|
@@ -183,7 +183,7 @@ void IRAM_ATTR Tx20ComponentStore::gpio_intr(Tx20ComponentStore *arg) {
|
|
|
183
183
|
}
|
|
184
184
|
arg->spent_time += delay;
|
|
185
185
|
arg->start_time = now;
|
|
186
|
-
arg->buffer_index++;
|
|
186
|
+
arg->buffer_index++; // NOLINT(clang-diagnostic-deprecated-volatile)
|
|
187
187
|
}
|
|
188
188
|
void IRAM_ATTR Tx20ComponentStore::reset() {
|
|
189
189
|
tx20_available = false;
|
|
@@ -2,6 +2,7 @@ import re
|
|
|
2
2
|
|
|
3
3
|
from esphome import automation, pins
|
|
4
4
|
import esphome.codegen as cg
|
|
5
|
+
from esphome.config_helpers import filter_source_files_from_platform
|
|
5
6
|
import esphome.config_validation as cv
|
|
6
7
|
from esphome.const import (
|
|
7
8
|
CONF_AFTER,
|
|
@@ -27,6 +28,7 @@ from esphome.const import (
|
|
|
27
28
|
CONF_TX_PIN,
|
|
28
29
|
CONF_UART_ID,
|
|
29
30
|
PLATFORM_HOST,
|
|
31
|
+
PlatformFramework,
|
|
30
32
|
)
|
|
31
33
|
from esphome.core import CORE
|
|
32
34
|
import esphome.final_validate as fv
|
|
@@ -438,3 +440,19 @@ async def uart_write_to_code(config, action_id, template_arg, args):
|
|
|
438
440
|
else:
|
|
439
441
|
cg.add(var.set_data_static(data))
|
|
440
442
|
return var
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
FILTER_SOURCE_FILES = filter_source_files_from_platform(
|
|
446
|
+
{
|
|
447
|
+
"uart_component_esp32_arduino.cpp": {PlatformFramework.ESP32_ARDUINO},
|
|
448
|
+
"uart_component_esp_idf.cpp": {PlatformFramework.ESP32_IDF},
|
|
449
|
+
"uart_component_esp8266.cpp": {PlatformFramework.ESP8266_ARDUINO},
|
|
450
|
+
"uart_component_host.cpp": {PlatformFramework.HOST_NATIVE},
|
|
451
|
+
"uart_component_rp2040.cpp": {PlatformFramework.RP2040_ARDUINO},
|
|
452
|
+
"uart_component_libretiny.cpp": {
|
|
453
|
+
PlatformFramework.BK72XX_ARDUINO,
|
|
454
|
+
PlatformFramework.RTL87XX_ARDUINO,
|
|
455
|
+
PlatformFramework.LN882X_ARDUINO,
|
|
456
|
+
},
|
|
457
|
+
}
|
|
458
|
+
)
|
|
@@ -42,17 +42,13 @@ uart_config_t IDFUARTComponent::get_config_() {
|
|
|
42
42
|
break;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
uart_config_t uart_config;
|
|
45
|
+
uart_config_t uart_config{};
|
|
46
46
|
uart_config.baud_rate = this->baud_rate_;
|
|
47
47
|
uart_config.data_bits = data_bits;
|
|
48
48
|
uart_config.parity = parity;
|
|
49
49
|
uart_config.stop_bits = this->stop_bits_ == 1 ? UART_STOP_BITS_1 : UART_STOP_BITS_2;
|
|
50
50
|
uart_config.flow_ctrl = UART_HW_FLOWCTRL_DISABLE;
|
|
51
|
-
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 0, 0)
|
|
52
51
|
uart_config.source_clk = UART_SCLK_DEFAULT;
|
|
53
|
-
#else
|
|
54
|
-
uart_config.source_clk = UART_SCLK_APB;
|
|
55
|
-
#endif
|
|
56
52
|
uart_config.rx_flow_ctrl_thresh = 122;
|
|
57
53
|
|
|
58
54
|
return uart_config;
|
|
@@ -15,8 +15,8 @@ from esphome.const import (
|
|
|
15
15
|
ENTITY_CATEGORY_CONFIG,
|
|
16
16
|
)
|
|
17
17
|
from esphome.core import CORE, coroutine_with_priority
|
|
18
|
+
from esphome.core.entity_helpers import entity_duplicate_validator, setup_entity
|
|
18
19
|
from esphome.cpp_generator import MockObjClass
|
|
19
|
-
from esphome.cpp_helpers import setup_entity
|
|
20
20
|
|
|
21
21
|
CODEOWNERS = ["@jesserockz"]
|
|
22
22
|
IS_PLATFORM_COMPONENT = True
|
|
@@ -58,6 +58,9 @@ _UPDATE_SCHEMA = (
|
|
|
58
58
|
)
|
|
59
59
|
|
|
60
60
|
|
|
61
|
+
_UPDATE_SCHEMA.add_extra(entity_duplicate_validator("update"))
|
|
62
|
+
|
|
63
|
+
|
|
61
64
|
def update_schema(
|
|
62
65
|
class_: MockObjClass = cv.UNDEFINED,
|
|
63
66
|
*,
|
|
@@ -87,7 +90,7 @@ UPDATE_SCHEMA.add_extra(cv.deprecated_schema_constant("update"))
|
|
|
87
90
|
|
|
88
91
|
|
|
89
92
|
async def setup_update_core_(var, config):
|
|
90
|
-
await setup_entity(var, config)
|
|
93
|
+
await setup_entity(var, config, "update")
|
|
91
94
|
|
|
92
95
|
if device_class_config := config.get(CONF_DEVICE_CLASS):
|
|
93
96
|
cg.add(var.set_device_class(device_class_config))
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
|
+
#include <memory>
|
|
3
4
|
#include "esphome/core/automation.h"
|
|
4
5
|
#include "esphome/core/component.h"
|
|
5
6
|
#include "esphome/core/entity_base.h"
|
|
@@ -38,12 +39,19 @@ class UpdateEntity : public EntityBase, public EntityBase_DeviceClass {
|
|
|
38
39
|
const UpdateState &state = state_;
|
|
39
40
|
|
|
40
41
|
void add_on_state_callback(std::function<void()> &&callback) { this->state_callback_.add(std::move(callback)); }
|
|
42
|
+
Trigger<const UpdateInfo &> *get_update_available_trigger() {
|
|
43
|
+
if (!update_available_trigger_) {
|
|
44
|
+
update_available_trigger_ = std::make_unique<Trigger<const UpdateInfo &>>();
|
|
45
|
+
}
|
|
46
|
+
return update_available_trigger_.get();
|
|
47
|
+
}
|
|
41
48
|
|
|
42
49
|
protected:
|
|
43
50
|
UpdateState state_{UPDATE_STATE_UNKNOWN};
|
|
44
51
|
UpdateInfo update_info_;
|
|
45
52
|
|
|
46
53
|
CallbackManager<void()> state_callback_{};
|
|
54
|
+
std::unique_ptr<Trigger<const UpdateInfo &>> update_available_trigger_{nullptr};
|
|
47
55
|
};
|
|
48
56
|
|
|
49
57
|
} // namespace update
|
|
@@ -6,7 +6,7 @@ from esphome.components.esp32 import (
|
|
|
6
6
|
only_on_variant,
|
|
7
7
|
)
|
|
8
8
|
import esphome.config_validation as cv
|
|
9
|
-
from esphome.const import CONF_ID
|
|
9
|
+
from esphome.const import CONF_DEVICES, CONF_ID
|
|
10
10
|
from esphome.cpp_types import Component
|
|
11
11
|
|
|
12
12
|
AUTO_LOAD = ["bytebuffer"]
|
|
@@ -16,9 +16,9 @@ usb_host_ns = cg.esphome_ns.namespace("usb_host")
|
|
|
16
16
|
USBHost = usb_host_ns.class_("USBHost", Component)
|
|
17
17
|
USBClient = usb_host_ns.class_("USBClient", Component)
|
|
18
18
|
|
|
19
|
-
CONF_DEVICES = "devices"
|
|
20
19
|
CONF_VID = "vid"
|
|
21
20
|
CONF_PID = "pid"
|
|
21
|
+
CONF_ENABLE_HUBS = "enable_hubs"
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
def usb_device_schema(cls=USBClient, vid: int = None, pid: [int] = None) -> cv.Schema:
|
|
@@ -42,6 +42,7 @@ CONFIG_SCHEMA = cv.All(
|
|
|
42
42
|
cv.COMPONENT_SCHEMA.extend(
|
|
43
43
|
{
|
|
44
44
|
cv.GenerateID(): cv.declare_id(USBHost),
|
|
45
|
+
cv.Optional(CONF_ENABLE_HUBS, default=False): cv.boolean,
|
|
45
46
|
cv.Optional(CONF_DEVICES): cv.ensure_list(usb_device_schema()),
|
|
46
47
|
}
|
|
47
48
|
),
|
|
@@ -58,6 +59,8 @@ async def register_usb_client(config):
|
|
|
58
59
|
|
|
59
60
|
async def to_code(config):
|
|
60
61
|
add_idf_sdkconfig_option("CONFIG_USB_HOST_CONTROL_TRANSFER_MAX_SIZE", 1024)
|
|
62
|
+
if config.get(CONF_ENABLE_HUBS):
|
|
63
|
+
add_idf_sdkconfig_option("CONFIG_USB_HOST_HUBS_SUPPORTED", True)
|
|
61
64
|
var = cg.new_Pvariable(config[CONF_ID])
|
|
62
65
|
await cg.register_component(var, config)
|
|
63
66
|
for device in config.get(CONF_DEVICES) or ():
|
|
@@ -70,7 +70,7 @@ static void usbh_print_cfg_desc(const usb_config_desc_t *cfg_desc) {
|
|
|
70
70
|
ESP_LOGV(TAG, "bMaxPower %dmA", cfg_desc->bMaxPower * 2);
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
void usb_client_print_device_descriptor(const usb_device_desc_t *devc_desc) {
|
|
73
|
+
static void usb_client_print_device_descriptor(const usb_device_desc_t *devc_desc) {
|
|
74
74
|
if (devc_desc == NULL) {
|
|
75
75
|
return;
|
|
76
76
|
}
|
|
@@ -92,8 +92,8 @@ void usb_client_print_device_descriptor(const usb_device_desc_t *devc_desc) {
|
|
|
92
92
|
ESP_LOGV(TAG, "bNumConfigurations %d", devc_desc->bNumConfigurations);
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
void usb_client_print_config_descriptor(const usb_config_desc_t *cfg_desc,
|
|
96
|
-
|
|
95
|
+
static void usb_client_print_config_descriptor(const usb_config_desc_t *cfg_desc,
|
|
96
|
+
print_class_descriptor_cb class_specific_cb) {
|
|
97
97
|
if (cfg_desc == nullptr) {
|
|
98
98
|
return;
|
|
99
99
|
}
|
|
@@ -128,9 +128,9 @@ void usb_client_print_config_descriptor(const usb_config_desc_t *cfg_desc,
|
|
|
128
128
|
static std::string get_descriptor_string(const usb_str_desc_t *desc) {
|
|
129
129
|
char buffer[256];
|
|
130
130
|
if (desc == nullptr)
|
|
131
|
-
return "(
|
|
131
|
+
return "(unspecified)";
|
|
132
132
|
char *p = buffer;
|
|
133
|
-
for (
|
|
133
|
+
for (int i = 0; i != desc->bLength / 2; i++) {
|
|
134
134
|
auto c = desc->wData[i];
|
|
135
135
|
if (c < 0x100)
|
|
136
136
|
*p++ = static_cast<char>(c);
|
|
@@ -169,7 +169,7 @@ void USBClient::setup() {
|
|
|
169
169
|
this->mark_failed();
|
|
170
170
|
return;
|
|
171
171
|
}
|
|
172
|
-
for (auto trq : this->trq_pool_) {
|
|
172
|
+
for (auto *trq : this->trq_pool_) {
|
|
173
173
|
usb_host_transfer_alloc(64, 0, &trq->transfer);
|
|
174
174
|
trq->client = this;
|
|
175
175
|
}
|
|
@@ -197,7 +197,8 @@ void USBClient::loop() {
|
|
|
197
197
|
ESP_LOGD(TAG, "Device descriptor: vid %X pid %X", desc->idVendor, desc->idProduct);
|
|
198
198
|
if (desc->idVendor == this->vid_ && desc->idProduct == this->pid_ || this->vid_ == 0 && this->pid_ == 0) {
|
|
199
199
|
usb_device_info_t dev_info;
|
|
200
|
-
|
|
200
|
+
err = usb_host_device_info(this->device_handle_, &dev_info);
|
|
201
|
+
if (err != ESP_OK) {
|
|
201
202
|
ESP_LOGW(TAG, "Device info failed: %s", esp_err_to_name(err));
|
|
202
203
|
this->disconnect();
|
|
203
204
|
break;
|
|
@@ -336,7 +337,7 @@ static void transfer_callback(usb_transfer_t *xfer) {
|
|
|
336
337
|
* @throws None.
|
|
337
338
|
*/
|
|
338
339
|
void USBClient::transfer_in(uint8_t ep_address, const transfer_cb_t &callback, uint16_t length) {
|
|
339
|
-
auto trq = this->get_trq_();
|
|
340
|
+
auto *trq = this->get_trq_();
|
|
340
341
|
if (trq == nullptr) {
|
|
341
342
|
ESP_LOGE(TAG, "Too many requests queued");
|
|
342
343
|
return;
|
|
@@ -349,7 +350,6 @@ void USBClient::transfer_in(uint8_t ep_address, const transfer_cb_t &callback, u
|
|
|
349
350
|
if (err != ESP_OK) {
|
|
350
351
|
ESP_LOGE(TAG, "Failed to submit transfer, address=%x, length=%d, err=%x", ep_address, length, err);
|
|
351
352
|
this->release_trq(trq);
|
|
352
|
-
this->disconnect();
|
|
353
353
|
}
|
|
354
354
|
}
|
|
355
355
|
|
|
@@ -364,7 +364,7 @@ void USBClient::transfer_in(uint8_t ep_address, const transfer_cb_t &callback, u
|
|
|
364
364
|
* @throws None.
|
|
365
365
|
*/
|
|
366
366
|
void USBClient::transfer_out(uint8_t ep_address, const transfer_cb_t &callback, const uint8_t *data, uint16_t length) {
|
|
367
|
-
auto trq = this->get_trq_();
|
|
367
|
+
auto *trq = this->get_trq_();
|
|
368
368
|
if (trq == nullptr) {
|
|
369
369
|
ESP_LOGE(TAG, "Too many requests queued");
|
|
370
370
|
return;
|
|
@@ -43,7 +43,7 @@ static constexpr uint8_t SET_BAUDRATE = 0x1E; // Set the baud rate.
|
|
|
43
43
|
static constexpr uint8_t SET_CHARS = 0x19; // Set special characters.
|
|
44
44
|
static constexpr uint8_t VENDOR_SPECIFIC = 0xFF; // Vendor specific command.
|
|
45
45
|
|
|
46
|
-
std::vector<CdcEps> USBUartTypeCP210X::
|
|
46
|
+
std::vector<CdcEps> USBUartTypeCP210X::parse_descriptors(usb_device_handle_t dev_hdl) {
|
|
47
47
|
const usb_config_desc_t *config_desc;
|
|
48
48
|
const usb_device_desc_t *device_desc;
|
|
49
49
|
int conf_offset = 0, ep_offset;
|