esphome 2025.7.5__py3-none-any.whl → 2025.8.0b2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- esphome/__main__.py +189 -82
- esphome/automation.py +2 -4
- esphome/build_gen/__init__.py +0 -0
- esphome/build_gen/platformio.py +102 -0
- esphome/components/a4988/a4988.cpp +0 -1
- esphome/components/absolute_humidity/absolute_humidity.cpp +0 -2
- esphome/components/absolute_humidity/sensor.py +2 -2
- esphome/components/adc/__init__.py +123 -85
- esphome/components/adc/adc_sensor.h +98 -35
- esphome/components/adc/adc_sensor_common.cpp +10 -4
- esphome/components/adc/adc_sensor_esp32.cpp +291 -123
- esphome/components/adc/adc_sensor_esp8266.cpp +1 -4
- esphome/components/adc/adc_sensor_libretiny.cpp +1 -2
- esphome/components/adc/adc_sensor_rp2040.cpp +1 -2
- esphome/components/adc/adc_sensor_zephyr.cpp +207 -0
- esphome/components/adc/sensor.py +61 -27
- esphome/components/adc128s102/adc128s102.cpp +1 -4
- esphome/components/ade7880/sensor.py +75 -49
- esphome/components/ads1115/ads1115.cpp +0 -1
- esphome/components/ads1118/ads1118.cpp +0 -1
- esphome/components/ags10/ags10.cpp +0 -4
- esphome/components/aht10/aht10.cpp +0 -4
- esphome/components/aic3204/aic3204.cpp +0 -2
- esphome/components/airthings_wave_plus/__init__.py +1 -1
- esphome/components/airthings_wave_plus/airthings_wave_plus.cpp +22 -4
- esphome/components/airthings_wave_plus/airthings_wave_plus.h +10 -1
- esphome/components/airthings_wave_plus/sensor.py +55 -28
- esphome/components/alarm_control_panel/__init__.py +4 -9
- esphome/components/am2315c/am2315c.cpp +0 -2
- esphome/components/am2320/am2320.cpp +0 -1
- esphome/components/animation/__init__.py +14 -11
- esphome/components/apds9306/apds9306.cpp +0 -4
- esphome/components/apds9960/apds9960.cpp +0 -1
- esphome/components/api/__init__.py +29 -4
- esphome/components/api/api_connection.cpp +378 -401
- esphome/components/api/api_connection.h +102 -52
- esphome/components/api/api_frame_helper.cpp +69 -896
- esphome/components/api/api_frame_helper.h +31 -126
- esphome/components/api/api_frame_helper_noise.cpp +583 -0
- esphome/components/api/api_frame_helper_noise.h +68 -0
- esphome/components/api/api_frame_helper_plaintext.cpp +290 -0
- esphome/components/api/api_frame_helper_plaintext.h +53 -0
- esphome/components/api/api_noise_context.h +2 -4
- esphome/components/api/api_pb2.cpp +1601 -1808
- esphome/components/api/api_pb2.h +367 -323
- esphome/components/api/api_pb2_dump.cpp +1137 -3466
- esphome/components/api/api_pb2_includes.h +34 -0
- esphome/components/api/api_pb2_service.cpp +94 -105
- esphome/components/api/api_pb2_service.h +27 -16
- esphome/components/api/api_server.cpp +18 -17
- esphome/components/api/api_server.h +8 -5
- esphome/components/api/client.py +16 -8
- esphome/components/api/custom_api_device.h +68 -14
- esphome/components/api/homeassistant_service.h +24 -19
- esphome/components/api/list_entities.cpp +3 -5
- esphome/components/api/list_entities.h +2 -4
- esphome/components/api/proto.cpp +3 -5
- esphome/components/api/proto.h +239 -274
- esphome/components/api/subscribe_state.cpp +2 -4
- esphome/components/api/subscribe_state.h +2 -4
- esphome/components/api/user_services.cpp +2 -4
- esphome/components/api/user_services.h +8 -8
- esphome/components/as3935/as3935.cpp +0 -2
- esphome/components/as3935_spi/as3935_spi.cpp +0 -2
- esphome/components/as5600/__init__.py +1 -1
- esphome/components/as5600/as5600.cpp +0 -2
- esphome/components/as5600/sensor/__init__.py +0 -1
- esphome/components/as7341/as7341.cpp +0 -1
- esphome/components/async_tcp/__init__.py +1 -1
- esphome/components/at581x/at581x.cpp +1 -1
- esphome/components/atm90e26/atm90e26.cpp +0 -1
- esphome/components/atm90e32/atm90e32.cpp +488 -118
- esphome/components/atm90e32/atm90e32.h +44 -5
- esphome/components/audio/audio.h +2 -2
- esphome/components/axs15231/touchscreen/axs15231_touchscreen.cpp +0 -2
- esphome/components/beken_spi_led_strip/led_strip.cpp +0 -2
- esphome/components/bh1750/bh1750.cpp +0 -1
- esphome/components/binary_sensor/__init__.py +14 -12
- esphome/components/ble_client/__init__.py +4 -7
- esphome/components/bluetooth_proxy/__init__.py +40 -3
- esphome/components/bluetooth_proxy/bluetooth_connection.cpp +387 -82
- esphome/components/bluetooth_proxy/bluetooth_connection.h +16 -5
- esphome/components/bluetooth_proxy/bluetooth_proxy.cpp +102 -311
- esphome/components/bluetooth_proxy/bluetooth_proxy.h +30 -14
- esphome/components/bme280_base/bme280_base.cpp +15 -16
- esphome/components/bme680/bme680.cpp +2 -3
- esphome/components/bme680_bsec/bme680_bsec.cpp +0 -2
- esphome/components/bme68x_bsec2/bme68x_bsec2.cpp +0 -2
- esphome/components/bmi160/bmi160.cpp +0 -1
- esphome/components/bmp085/bmp085.cpp +0 -1
- esphome/components/bmp280_base/bmp280_base.cpp +13 -14
- esphome/components/bmp3xx_base/bmp3xx_base.cpp +0 -1
- esphome/components/bmp581/bmp581.cpp +0 -2
- esphome/components/bp1658cj/bp1658cj.cpp +0 -1
- esphome/components/bp5758d/bp5758d.cpp +0 -1
- esphome/components/button/__init__.py +0 -1
- esphome/components/canbus/__init__.py +2 -3
- esphome/components/canbus/canbus.cpp +0 -1
- esphome/components/cap1188/cap1188.cpp +0 -2
- esphome/components/captive_portal/__init__.py +1 -1
- esphome/components/cd74hc4067/cd74hc4067.cpp +0 -2
- esphome/components/ch422g/ch422g.cpp +0 -1
- esphome/components/chsc6x/chsc6x_touchscreen.cpp +0 -3
- esphome/components/climate/__init__.py +0 -1
- esphome/components/climate/climate_traits.h +24 -0
- esphome/components/cm1106/cm1106.cpp +0 -1
- esphome/components/const/__init__.py +6 -0
- esphome/components/cover/__init__.py +0 -1
- esphome/components/cover/cover.cpp +9 -13
- esphome/components/cs5460a/cs5460a.cpp +0 -2
- esphome/components/cse7761/cse7761.cpp +0 -1
- esphome/components/cst226/touchscreen/cst226_touchscreen.cpp +0 -2
- esphome/components/cst816/touchscreen/cst816_touchscreen.cpp +0 -2
- esphome/components/dac7678/dac7678_output.cpp +0 -2
- esphome/components/dallas_temp/dallas_temp.cpp +0 -1
- esphome/components/datetime/__init__.py +0 -2
- esphome/components/debug/__init__.py +15 -1
- esphome/components/debug/debug_zephyr.cpp +281 -0
- esphome/components/debug/sensor.py +2 -1
- esphome/components/deep_sleep/deep_sleep_component.cpp +0 -1
- esphome/components/deep_sleep/deep_sleep_esp32.cpp +20 -1
- esphome/components/dfrobot_sen0395/__init__.py +1 -2
- esphome/components/dht/dht.cpp +0 -1
- esphome/components/dht12/dht12.cpp +0 -1
- esphome/components/display/__init__.py +16 -3
- esphome/components/display_menu_base/__init__.py +1 -1
- esphome/components/dps310/dps310.cpp +0 -2
- esphome/components/ds1307/ds1307.cpp +0 -1
- esphome/components/ds2484/ds2484.cpp +0 -1
- esphome/components/duty_cycle/duty_cycle_sensor.cpp +0 -1
- esphome/components/ee895/ee895.cpp +0 -1
- esphome/components/ektf2232/touchscreen/ektf2232.cpp +0 -1
- esphome/components/emc2101/emc2101.cpp +0 -2
- esphome/components/ens160_base/ens160_base.cpp +0 -2
- esphome/components/ens210/ens210.cpp +0 -1
- esphome/components/es7210/es7210.cpp +0 -2
- esphome/components/es7243e/es7243e.cpp +0 -2
- esphome/components/es8156/es8156.cpp +0 -2
- esphome/components/es8311/es8311.cpp +0 -2
- esphome/components/es8388/es8388.cpp +0 -2
- esphome/components/esp32/__init__.py +199 -58
- esphome/components/esp32/boards.py +17 -0
- esphome/components/esp32/gpio.cpp +0 -1
- esphome/components/esp32/gpio.py +1 -2
- esphome/components/esp32/gpio_esp32_h2.py +2 -7
- esphome/components/esp32/gpio_esp32_p4.py +2 -7
- esphome/components/esp32/post_build.py.script +112 -61
- esphome/components/esp32_ble/__init__.py +40 -2
- esphome/components/esp32_ble/ble.cpp +12 -8
- esphome/components/esp32_ble/ble.h +18 -18
- esphome/components/esp32_ble/ble_advertising.cpp +5 -5
- esphome/components/esp32_ble/ble_advertising.h +7 -5
- esphome/components/esp32_ble/ble_event.h +2 -4
- esphome/components/esp32_ble/ble_scan_result.h +2 -4
- esphome/components/esp32_ble/ble_uuid.cpp +5 -5
- esphome/components/esp32_ble/ble_uuid.h +6 -5
- esphome/components/esp32_ble_beacon/__init__.py +4 -0
- esphome/components/esp32_ble_client/__init__.py +1 -1
- esphome/components/esp32_ble_client/ble_characteristic.cpp +4 -4
- esphome/components/esp32_ble_client/ble_characteristic.h +6 -4
- esphome/components/esp32_ble_client/ble_client_base.cpp +155 -104
- esphome/components/esp32_ble_client/ble_client_base.h +17 -6
- esphome/components/esp32_ble_client/ble_descriptor.h +6 -4
- esphome/components/esp32_ble_client/ble_service.cpp +4 -4
- esphome/components/esp32_ble_client/ble_service.h +6 -4
- esphome/components/esp32_ble_server/__init__.py +15 -12
- esphome/components/esp32_ble_tracker/__init__.py +79 -11
- esphome/components/esp32_ble_tracker/automation.h +4 -4
- esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp +264 -261
- esphome/components/esp32_ble_tracker/esp32_ble_tracker.h +103 -37
- esphome/components/esp32_camera/__init__.py +13 -1
- esphome/components/esp32_camera/esp32_camera.cpp +7 -2
- esphome/components/esp32_camera/esp32_camera.h +1 -0
- esphome/components/esp32_dac/esp32_dac.cpp +3 -19
- esphome/components/esp32_dac/esp32_dac.h +4 -8
- esphome/components/esp32_rmt_led_strip/led_strip.cpp +1 -6
- esphome/components/esp32_rmt_led_strip/light.py +1 -1
- esphome/components/esp32_touch/__init__.py +2 -3
- esphome/components/esp32_touch/esp32_touch.h +9 -6
- esphome/components/esp32_touch/esp32_touch_common.cpp +2 -0
- esphome/components/esp32_touch/esp32_touch_v1.cpp +7 -9
- esphome/components/esp32_touch/esp32_touch_v2.cpp +10 -6
- esphome/components/esp8266/__init__.py +3 -1
- esphome/components/esp8266_pwm/esp8266_pwm.cpp +0 -1
- esphome/components/esphome/ota/__init__.py +1 -2
- esphome/components/esphome/ota/ota_esphome.cpp +150 -77
- esphome/components/esphome/ota/ota_esphome.h +8 -1
- esphome/components/espnow/__init__.py +309 -0
- esphome/components/espnow/automation.h +175 -0
- esphome/components/espnow/espnow_component.cpp +468 -0
- esphome/components/espnow/espnow_component.h +183 -0
- esphome/components/espnow/espnow_err.h +19 -0
- esphome/components/espnow/espnow_packet.h +166 -0
- esphome/components/ethernet/__init__.py +7 -1
- esphome/components/ethernet/esp_eth_phy_jl1101.c +5 -0
- esphome/components/ethernet/ethernet_component.cpp +0 -1
- esphome/components/ethernet/ethernet_component.h +4 -0
- esphome/components/ethernet_info/ethernet_info_text_sensor.h +0 -3
- esphome/components/event/__init__.py +0 -1
- esphome/components/factory_reset/__init__.py +92 -0
- esphome/components/factory_reset/factory_reset.cpp +76 -0
- esphome/components/factory_reset/factory_reset.h +43 -0
- esphome/components/fan/__init__.py +0 -1
- esphome/components/fan/fan_traits.h +16 -0
- esphome/components/fastled_base/fastled_light.cpp +0 -1
- esphome/components/fastled_spi/light.py +1 -3
- esphome/components/fingerprint_grow/fingerprint_grow.cpp +0 -2
- esphome/components/fs3000/fs3000.cpp +0 -2
- esphome/components/ft5x06/touchscreen/ft5x06_touchscreen.cpp +0 -2
- esphome/components/ft63x6/ft63x6.cpp +0 -1
- esphome/components/gdk101/gdk101.cpp +0 -1
- esphome/components/gl_r01_i2c/gl_r01_i2c.cpp +0 -1
- esphome/components/gl_r01_i2c/sensor.py +1 -1
- esphome/components/gpio/one_wire/gpio_one_wire.cpp +0 -1
- esphome/components/gpio/switch/gpio_switch.cpp +0 -2
- esphome/components/gpio_expander/cached_gpio.h +24 -15
- esphome/components/gps/__init__.py +6 -2
- esphome/components/gps/gps.cpp +50 -49
- esphome/components/gps/gps.h +4 -8
- esphome/components/gps/time/gps_time.cpp +3 -9
- esphome/components/gps/time/gps_time.h +4 -7
- esphome/components/graph/__init__.py +1 -1
- esphome/components/grove_gas_mc_v2/grove_gas_mc_v2.cpp +0 -1
- esphome/components/grove_tb6612fng/grove_tb6612fng.cpp +0 -1
- esphome/components/gt911/touchscreen/gt911_touchscreen.cpp +21 -12
- esphome/components/gt911/touchscreen/gt911_touchscreen.h +26 -2
- esphome/components/haier/climate.py +5 -10
- esphome/components/haier/haier_base.cpp +0 -1
- esphome/components/hbridge/switch/hbridge_switch.cpp +0 -2
- esphome/components/hdc1080/hdc1080.cpp +0 -2
- esphome/components/heatpumpir/climate.py +2 -2
- esphome/components/hlw8012/hlw8012.cpp +0 -1
- esphome/components/hm3301/hm3301.cpp +0 -1
- esphome/components/hmc5883l/hmc5883l.cpp +0 -1
- esphome/components/homeassistant/__init__.py +1 -0
- esphome/components/homeassistant/number/__init__.py +1 -0
- esphome/components/homeassistant/number/homeassistant_number.cpp +11 -7
- esphome/components/homeassistant/switch/__init__.py +1 -0
- esphome/components/homeassistant/switch/homeassistant_switch.cpp +9 -5
- esphome/components/honeywellabp/honeywellabp.cpp +1 -4
- esphome/components/host/__init__.py +2 -0
- esphome/components/hte501/hte501.cpp +0 -1
- esphome/components/http_request/__init__.py +2 -3
- esphome/components/http_request/http_request_idf.cpp +2 -2
- esphome/components/htu21d/htu21d.cpp +0 -2
- esphome/components/htu31d/htu31d.cpp +0 -2
- esphome/components/hx711/hx711.cpp +0 -1
- esphome/components/hydreon_rgxx/hydreon_rgxx.cpp +0 -1
- esphome/components/hydreon_rgxx/sensor.py +4 -5
- esphome/components/i2c/i2c_bus.h +1 -1
- esphome/components/i2c/i2c_bus_arduino.cpp +1 -2
- esphome/components/i2c/i2c_bus_esp_idf.cpp +192 -17
- esphome/components/i2c/i2c_bus_esp_idf.h +11 -1
- esphome/components/i2s_audio/__init__.py +6 -5
- esphome/components/i2s_audio/i2s_audio.cpp +0 -2
- esphome/components/i2s_audio/media_player/i2s_audio_media_player.cpp +1 -4
- esphome/components/i2s_audio/microphone/__init__.py +4 -6
- esphome/components/i2s_audio/microphone/i2s_audio_microphone.cpp +0 -1
- esphome/components/i2s_audio/microphone/i2s_audio_microphone.h +2 -2
- esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp +273 -269
- esphome/components/i2s_audio/speaker/i2s_audio_speaker.h +19 -34
- esphome/components/ili9xxx/display.py +4 -3
- esphome/components/ili9xxx/ili9xxx_display.cpp +0 -2
- esphome/components/image/__init__.py +123 -92
- esphome/components/improv_serial/__init__.py +7 -8
- esphome/components/ina219/ina219.cpp +0 -1
- esphome/components/ina226/ina226.cpp +0 -2
- esphome/components/ina260/ina260.cpp +0 -2
- esphome/components/ina2xx_base/__init__.py +2 -5
- esphome/components/ina2xx_base/ina2xx_base.cpp +0 -2
- esphome/components/ina3221/ina3221.cpp +0 -1
- esphome/components/internal_temperature/internal_temperature.cpp +0 -2
- esphome/components/interval/interval.h +5 -9
- esphome/components/json/__init__.py +1 -1
- esphome/components/kmeteriso/kmeteriso.cpp +0 -2
- esphome/components/lc709203f/lc709203f.cpp +0 -2
- esphome/components/lcd_gpio/display.py +1 -3
- esphome/components/lcd_gpio/gpio_lcd_display.cpp +0 -1
- esphome/components/lcd_pcf8574/pcf8574_display.cpp +0 -1
- esphome/components/ld2410/__init__.py +4 -6
- esphome/components/ld2410/binary_sensor.py +4 -0
- esphome/components/ld2410/ld2410.cpp +56 -100
- esphome/components/ld2410/ld2410.h +17 -15
- esphome/components/ld2410/sensor.py +24 -10
- esphome/components/ld2412/__init__.py +46 -0
- esphome/components/ld2412/binary_sensor.py +70 -0
- esphome/components/ld2412/button/__init__.py +74 -0
- esphome/components/ld2412/button/factory_reset_button.cpp +9 -0
- esphome/components/ld2412/button/factory_reset_button.h +18 -0
- esphome/components/ld2412/button/query_button.cpp +9 -0
- esphome/components/ld2412/button/query_button.h +18 -0
- esphome/components/ld2412/button/restart_button.cpp +9 -0
- esphome/components/ld2412/button/restart_button.h +18 -0
- esphome/components/ld2412/button/start_dynamic_background_correction_button.cpp +11 -0
- esphome/components/ld2412/button/start_dynamic_background_correction_button.h +18 -0
- esphome/components/ld2412/ld2412.cpp +861 -0
- esphome/components/ld2412/ld2412.h +141 -0
- esphome/components/ld2412/number/__init__.py +126 -0
- esphome/components/ld2412/number/gate_threshold_number.cpp +14 -0
- esphome/components/ld2412/number/gate_threshold_number.h +19 -0
- esphome/components/ld2412/number/light_threshold_number.cpp +12 -0
- esphome/components/ld2412/number/light_threshold_number.h +18 -0
- esphome/components/ld2412/number/max_distance_timeout_number.cpp +12 -0
- esphome/components/ld2412/number/max_distance_timeout_number.h +18 -0
- esphome/components/ld2412/select/__init__.py +82 -0
- esphome/components/ld2412/select/baud_rate_select.cpp +12 -0
- esphome/components/ld2412/select/baud_rate_select.h +18 -0
- esphome/components/ld2412/select/distance_resolution_select.cpp +12 -0
- esphome/components/ld2412/select/distance_resolution_select.h +18 -0
- esphome/components/ld2412/select/light_out_control_select.cpp +12 -0
- esphome/components/ld2412/select/light_out_control_select.h +18 -0
- esphome/components/ld2412/sensor.py +124 -0
- esphome/components/ld2412/switch/__init__.py +45 -0
- esphome/components/ld2412/switch/bluetooth_switch.cpp +12 -0
- esphome/components/ld2412/switch/bluetooth_switch.h +18 -0
- esphome/components/ld2412/switch/engineering_mode_switch.cpp +12 -0
- esphome/components/ld2412/switch/engineering_mode_switch.h +18 -0
- esphome/components/ld2412/text_sensor.py +34 -0
- esphome/components/ld2420/ld2420.cpp +0 -1
- esphome/components/ld2450/__init__.py +3 -4
- esphome/components/ld2450/binary_sensor.py +3 -0
- esphome/components/ld2450/ld2450.cpp +77 -165
- esphome/components/ld2450/ld2450.h +26 -54
- esphome/components/ld2450/sensor.py +120 -6
- esphome/components/ld2450/text_sensor.py +5 -4
- esphome/components/ld24xx/__init__.py +1 -0
- esphome/components/ld24xx/ld24xx.h +65 -0
- esphome/components/ledc/ledc_output.cpp +0 -1
- esphome/components/libretiny/__init__.py +2 -0
- esphome/components/light/__init__.py +0 -1
- esphome/components/light/effects.py +70 -45
- esphome/components/light/light_call.cpp +101 -66
- esphome/components/light/light_color_values.h +16 -11
- esphome/components/light/light_json_schema.cpp +46 -44
- esphome/components/light/light_state.cpp +8 -11
- esphome/components/light/light_traits.h +17 -0
- esphome/components/lightwaverf/lightwaverf.cpp +0 -2
- esphome/components/lilygo_t5_47/touchscreen/lilygo_t5_47_touchscreen.cpp +0 -1
- esphome/components/lock/__init__.py +0 -1
- esphome/components/logger/__init__.py +31 -9
- esphome/components/logger/logger.cpp +12 -7
- esphome/components/logger/logger.h +25 -14
- esphome/components/logger/logger_esp32.cpp +2 -7
- esphome/components/logger/logger_esp8266.cpp +2 -4
- esphome/components/logger/logger_host.cpp +2 -4
- esphome/components/logger/logger_libretiny.cpp +2 -4
- esphome/components/logger/logger_rp2040.cpp +2 -4
- esphome/components/logger/logger_zephyr.cpp +86 -0
- esphome/components/logger/select/logger_level_select.cpp +2 -4
- esphome/components/logger/select/logger_level_select.h +2 -4
- esphome/components/logger/task_log_buffer.cpp +2 -4
- esphome/components/logger/task_log_buffer.h +2 -4
- esphome/components/lps22/sensor.py +5 -5
- esphome/components/ltr390/ltr390.cpp +0 -2
- esphome/components/ltr501/ltr501.cpp +0 -1
- esphome/components/ltr_als_ps/ltr_als_ps.cpp +0 -1
- esphome/components/lvgl/__init__.py +14 -13
- esphome/components/lvgl/automation.py +2 -4
- esphome/components/lvgl/defines.py +0 -2
- esphome/components/lvgl/helpers.py +1 -1
- esphome/components/lvgl/lv_validation.py +7 -4
- esphome/components/lvgl/lvgl_esphome.cpp +2 -3
- esphome/components/lvgl/styles.py +2 -2
- esphome/components/lvgl/types.py +1 -1
- esphome/components/lvgl/widgets/__init__.py +2 -2
- esphome/components/lvgl/widgets/arc.py +14 -11
- esphome/components/lvgl/widgets/buttonmatrix.py +1 -1
- esphome/components/lvgl/widgets/qrcode.py +7 -7
- esphome/components/lvgl/widgets/spinner.py +6 -6
- esphome/components/lvgl/widgets/switch.py +2 -2
- esphome/components/lvgl/widgets/tabview.py +3 -3
- esphome/components/m5stack_8angle/m5stack_8angle.cpp +0 -1
- esphome/components/matrix_keypad/__init__.py +4 -3
- esphome/components/max17043/max17043.cpp +0 -2
- esphome/components/max31855/max31855.cpp +1 -4
- esphome/components/max31856/max31856.cpp +0 -4
- esphome/components/max31865/max31865.cpp +0 -1
- esphome/components/max44009/max44009.cpp +0 -1
- esphome/components/max6675/max6675.cpp +1 -4
- esphome/components/max6956/max6956.cpp +0 -1
- esphome/components/max7219/max7219.cpp +0 -1
- esphome/components/max7219digit/display.py +1 -1
- esphome/components/max7219digit/max7219digit.cpp +0 -1
- esphome/components/max9611/max9611.cpp +0 -1
- esphome/components/mcp23008/__init__.py +1 -1
- esphome/components/mcp23008/mcp23008.cpp +0 -1
- esphome/components/mcp23016/mcp23016.cpp +0 -1
- esphome/components/mcp23017/__init__.py +1 -1
- esphome/components/mcp23017/mcp23017.cpp +0 -1
- esphome/components/mcp23s08/__init__.py +1 -1
- esphome/components/mcp23s08/mcp23s08.cpp +0 -1
- esphome/components/mcp23s17/__init__.py +1 -1
- esphome/components/mcp23s17/mcp23s17.cpp +0 -1
- esphome/components/mcp23x08_base/__init__.py +2 -0
- esphome/components/mcp23x08_base/mcp23x08_base.cpp +9 -7
- esphome/components/mcp23x08_base/mcp23x08_base.h +9 -4
- esphome/components/mcp23x17_base/__init__.py +2 -0
- esphome/components/mcp23x17_base/mcp23x17_base.cpp +20 -7
- esphome/components/mcp23x17_base/mcp23x17_base.h +9 -4
- esphome/components/mcp23xxx_base/__init__.py +11 -5
- esphome/components/mcp23xxx_base/mcp23xxx_base.cpp +15 -12
- esphome/components/mcp23xxx_base/mcp23xxx_base.h +8 -7
- esphome/components/mcp3008/mcp3008.cpp +1 -4
- esphome/components/mcp3204/mcp3204.cpp +1 -4
- esphome/components/mcp4461/mcp4461.cpp +0 -1
- esphome/components/mcp4725/mcp4725.cpp +0 -1
- esphome/components/mcp4728/mcp4728.cpp +0 -1
- esphome/components/mcp9600/mcp9600.cpp +0 -2
- esphome/components/mcp9808/mcp9808.cpp +0 -2
- esphome/components/mdns/__init__.py +3 -0
- esphome/components/mdns/mdns_component.cpp +2 -0
- esphome/components/mdns/mdns_component.h +4 -0
- esphome/components/media_player/__init__.py +40 -0
- esphome/components/media_player/automation.h +16 -0
- esphome/components/media_player/media_player.cpp +13 -0
- esphome/components/media_player/media_player.h +50 -3
- esphome/components/micro_wake_word/micro_wake_word.cpp +0 -3
- esphome/components/mics_4514/mics_4514.cpp +1 -6
- esphome/components/midea/ir_transmitter.h +4 -4
- esphome/components/mipi/__init__.py +416 -0
- esphome/components/mipi_dsi/__init__.py +5 -0
- esphome/components/mipi_dsi/display.py +233 -0
- esphome/components/mipi_dsi/mipi_dsi.cpp +379 -0
- esphome/components/mipi_dsi/mipi_dsi.h +123 -0
- esphome/components/mipi_dsi/models/__init__.py +0 -0
- esphome/components/mipi_dsi/models/guition.py +38 -0
- esphome/components/mipi_dsi/models/m5stack.py +57 -0
- esphome/components/mipi_dsi/models/waveshare.py +105 -0
- esphome/components/mipi_rgb/models/lilygo.py +0 -0
- esphome/components/mipi_spi/__init__.py +0 -9
- esphome/components/mipi_spi/display.py +220 -256
- esphome/components/mipi_spi/mipi_spi.cpp +1 -485
- esphome/components/mipi_spi/mipi_spi.h +556 -108
- esphome/components/mipi_spi/models/__init__.py +0 -65
- esphome/components/mipi_spi/models/adafruit.py +30 -0
- esphome/components/mipi_spi/models/amoled.py +41 -5
- esphome/components/mipi_spi/models/ili.py +5 -5
- esphome/components/mipi_spi/models/jc.py +1 -3
- esphome/components/mipi_spi/models/lilygo.py +1 -1
- esphome/components/mipi_spi/models/waveshare.py +16 -1
- esphome/components/mixer/speaker/__init__.py +4 -5
- esphome/components/mlx90393/sensor.py +7 -5
- esphome/components/mlx90393/sensor_mlx90393.cpp +0 -1
- esphome/components/mlx90614/mlx90614.cpp +0 -1
- esphome/components/mmc5603/mmc5603.cpp +0 -1
- esphome/components/mmc5983/mmc5983.cpp +0 -2
- esphome/components/mpl3115a2/mpl3115a2.cpp +0 -2
- esphome/components/mpr121/__init__.py +7 -6
- esphome/components/mpr121/mpr121.cpp +0 -1
- esphome/components/mpu6050/mpu6050.cpp +0 -1
- esphome/components/mpu6886/mpu6886.cpp +0 -1
- esphome/components/mqtt/__init__.py +1 -2
- esphome/components/mqtt/mqtt_button.cpp +1 -1
- esphome/components/mqtt/mqtt_client.cpp +0 -1
- esphome/components/mqtt/mqtt_component.cpp +8 -14
- esphome/components/mqtt/mqtt_component.h +0 -7
- esphome/components/mqtt/mqtt_sensor.cpp +0 -1
- esphome/components/mqtt/mqtt_sensor.h +0 -1
- esphome/components/mqtt/mqtt_text_sensor.cpp +0 -1
- esphome/components/mqtt/mqtt_text_sensor.h +0 -1
- esphome/components/ms5611/ms5611.cpp +0 -1
- esphome/components/ms8607/ms8607.cpp +0 -1
- esphome/components/msa3xx/msa3xx.cpp +0 -2
- esphome/components/my9231/my9231.cpp +0 -2
- esphome/components/nau7802/nau7802.cpp +0 -1
- esphome/components/neopixelbus/light.py +3 -0
- esphome/components/network/util.cpp +29 -0
- esphome/components/nextion/nextion.cpp +0 -1
- esphome/components/nfc/binary_sensor/{binary_sensor.cpp → nfc_binary_sensor.cpp} +1 -1
- esphome/components/npi19/npi19.cpp +0 -2
- esphome/components/nrf52/__init__.py +223 -0
- esphome/components/nrf52/boards.py +34 -0
- esphome/components/nrf52/const.py +18 -0
- esphome/components/nrf52/gpio.py +79 -0
- esphome/components/number/__init__.py +2 -1
- esphome/components/one_wire/__init__.py +1 -2
- esphome/components/one_wire/one_wire.cpp +0 -2
- esphome/components/one_wire/one_wire.h +0 -2
- esphome/components/opentherm/hub.cpp +0 -1
- esphome/components/opentherm/number/__init__.py +2 -2
- esphome/components/openthread/__init__.py +2 -3
- esphome/components/openthread/openthread.cpp +30 -13
- esphome/components/openthread/openthread.h +3 -0
- esphome/components/openthread/openthread_esp.cpp +3 -1
- esphome/components/opt3001/sensor.py +2 -6
- esphome/components/output/__init__.py +38 -0
- esphome/components/output/automation.h +24 -0
- esphome/components/output/switch/output_switch.cpp +0 -2
- esphome/components/packages/__init__.py +1 -2
- esphome/components/packet_transport/__init__.py +4 -3
- esphome/components/pca6416a/pca6416a.cpp +0 -1
- esphome/components/pca9554/pca9554.cpp +0 -1
- esphome/components/pca9685/pca9685_output.cpp +0 -2
- esphome/components/pcf85063/pcf85063.cpp +0 -1
- esphome/components/pcf8563/pcf8563.cpp +0 -1
- esphome/components/pcf8574/pcf8574.cpp +0 -1
- esphome/components/pi4ioe5v6408/pi4ioe5v6408.cpp +0 -1
- esphome/components/pipsolar/sensor/__init__.py +1 -1
- esphome/components/pm2005/pm2005.cpp +0 -1
- esphome/components/pmsa003i/pmsa003i.cpp +0 -2
- esphome/components/pmwcs3/sensor.py +1 -2
- esphome/components/pn532/pn532.cpp +0 -2
- esphome/components/pn532_spi/pn532_spi.cpp +0 -2
- esphome/components/power_supply/power_supply.cpp +7 -10
- esphome/components/power_supply/power_supply.h +1 -1
- esphome/components/psram/__init__.py +6 -1
- esphome/components/pulse_counter/pulse_counter_sensor.cpp +0 -1
- esphome/components/pulse_counter/sensor.py +9 -6
- esphome/components/pylontech/pylontech.cpp +0 -1
- esphome/components/qmc5883l/qmc5883l.cpp +0 -1
- esphome/components/qmp6988/qmp6988.cpp +0 -2
- esphome/components/qspi_dbi/display.py +2 -3
- esphome/components/qspi_dbi/qspi_dbi.cpp +0 -2
- esphome/components/qwiic_pir/binary_sensor.py +2 -3
- esphome/components/qwiic_pir/qwiic_pir.cpp +0 -2
- esphome/components/rc522/rc522.cpp +9 -31
- esphome/components/rc522_spi/rc522_spi.cpp +0 -1
- esphome/components/remote_base/__init__.py +5 -6
- esphome/components/remote_receiver/remote_receiver_esp32.cpp +0 -1
- esphome/components/remote_receiver/remote_receiver_esp8266.cpp +0 -1
- esphome/components/remote_receiver/remote_receiver_libretiny.cpp +0 -1
- esphome/components/remote_transmitter/__init__.py +26 -0
- esphome/components/remote_transmitter/automation.h +18 -0
- esphome/components/remote_transmitter/remote_transmitter.h +2 -1
- esphome/components/remote_transmitter/remote_transmitter_esp32.cpp +0 -1
- esphome/components/remote_transmitter/remote_transmitter_esp8266.cpp +2 -0
- esphome/components/remote_transmitter/remote_transmitter_libretiny.cpp +2 -0
- esphome/components/resampler/speaker/__init__.py +4 -5
- esphome/components/rf_bridge/__init__.py +4 -8
- esphome/components/rotary_encoder/rotary_encoder.cpp +0 -2
- esphome/components/rp2040/__init__.py +3 -1
- esphome/components/rp2040_pio_led_strip/led_strip.cpp +0 -2
- esphome/components/rp2040_pio_led_strip/light.py +1 -2
- esphome/components/rp2040_pwm/rp2040_pwm.cpp +1 -5
- esphome/components/rpi_dpi_rgb/display.py +13 -15
- esphome/components/rpi_dpi_rgb/rpi_dpi_rgb.cpp +0 -3
- esphome/components/runtime_stats/__init__.py +34 -0
- esphome/components/runtime_stats/runtime_stats.cpp +102 -0
- esphome/components/runtime_stats/runtime_stats.h +132 -0
- esphome/components/scd30/scd30.cpp +0 -2
- esphome/components/scd30/sensor.py +1 -2
- esphome/components/scd4x/scd4x.cpp +0 -1
- esphome/components/scd4x/sensor.py +1 -3
- esphome/components/sdl/display.py +3 -1
- esphome/components/sdl/sdl_esphome.cpp +0 -2
- esphome/components/sdp3x/sdp3x.cpp +0 -2
- esphome/components/seeed_mr24hpc1/seeed_mr24hpc1.cpp +0 -2
- esphome/components/seeed_mr60fda2/seeed_mr60fda2.cpp +0 -3
- esphome/components/select/__init__.py +2 -3
- esphome/components/select/select_traits.cpp +1 -1
- esphome/components/select/select_traits.h +1 -1
- esphome/components/sen0321/sen0321.cpp +0 -1
- esphome/components/sen5x/sen5x.cpp +0 -2
- esphome/components/sensor/__init__.py +36 -4
- esphome/components/sensor/filter.cpp +49 -10
- esphome/components/sensor/filter.h +22 -7
- esphome/components/sensor/sensor.cpp +0 -1
- esphome/components/sensor/sensor.h +0 -9
- esphome/components/sfa30/sfa30.cpp +0 -4
- esphome/components/sgp30/sgp30.cpp +0 -2
- esphome/components/sgp4x/sensor.py +1 -1
- esphome/components/sgp4x/sgp4x.cpp +0 -2
- esphome/components/shelly_dimmer/shelly_dimmer.cpp +0 -2
- esphome/components/sht3xd/sht3xd.cpp +0 -2
- esphome/components/sht4x/sht4x.cpp +0 -2
- esphome/components/shtcx/shtcx.cpp +0 -1
- esphome/components/sim800l/__init__.py +2 -4
- esphome/components/sm16716/sm16716.cpp +0 -1
- esphome/components/sm2135/sm2135.cpp +0 -1
- esphome/components/sm2235/sm2235.cpp +0 -1
- esphome/components/sm2335/sm2335.cpp +0 -1
- esphome/components/sn74hc165/sn74hc165.cpp +0 -1
- esphome/components/sn74hc595/sn74hc595.cpp +0 -1
- esphome/components/sntp/sntp_component.cpp +0 -1
- esphome/components/sound_level/sensor.py +1 -1
- esphome/components/speaker/media_player/__init__.py +21 -33
- esphome/components/speaker/media_player/audio_pipeline.cpp +4 -7
- esphome/components/spi/__init__.py +29 -13
- esphome/components/spi/spi.cpp +0 -2
- esphome/components/spi_device/spi_device.cpp +1 -4
- esphome/components/sprinkler/__init__.py +4 -4
- esphome/components/sps30/sps30.cpp +0 -1
- esphome/components/ssd1306_base/__init__.py +11 -11
- esphome/components/ssd1306_base/ssd1306_base.cpp +1 -1
- esphome/components/ssd1306_i2c/ssd1306_i2c.cpp +0 -1
- esphome/components/ssd1306_spi/ssd1306_spi.cpp +0 -1
- esphome/components/ssd1322_spi/ssd1322_spi.cpp +0 -1
- esphome/components/ssd1325_spi/ssd1325_spi.cpp +0 -1
- esphome/components/ssd1327_i2c/ssd1327_i2c.cpp +0 -1
- esphome/components/ssd1327_spi/ssd1327_spi.cpp +0 -1
- esphome/components/ssd1331_spi/ssd1331_spi.cpp +0 -1
- esphome/components/ssd1351_spi/ssd1351_spi.cpp +0 -1
- esphome/components/st7567_i2c/st7567_i2c.cpp +0 -1
- esphome/components/st7567_spi/st7567_spi.cpp +0 -1
- esphome/components/st7701s/display.py +10 -14
- esphome/components/st7701s/st7701s.cpp +0 -3
- esphome/components/st7735/st7735.cpp +0 -1
- esphome/components/st7789v/st7789v.cpp +0 -1
- esphome/components/st7920/st7920.cpp +0 -1
- esphome/components/status_led/light/status_led_light.cpp +0 -2
- esphome/components/status_led/status_led.cpp +0 -1
- esphome/components/stepper/__init__.py +2 -4
- esphome/components/sts3x/sts3x.cpp +0 -1
- esphome/components/substitutions/__init__.py +10 -16
- esphome/components/substitutions/jinja.py +24 -1
- esphome/components/sun/__init__.py +2 -3
- esphome/components/switch/__init__.py +31 -1
- esphome/components/switch/automation.h +24 -0
- esphome/components/switch/switch.cpp +8 -0
- esphome/components/switch/switch.h +8 -0
- esphome/components/sx126x/sx126x.cpp +0 -2
- esphome/components/sx127x/sx127x.cpp +0 -2
- esphome/components/sx1509/__init__.py +7 -5
- esphome/components/sx1509/output/sx1509_float_output.cpp +1 -1
- esphome/components/sx1509/sx1509.cpp +0 -2
- esphome/components/syslog/esphome_syslog.cpp +1 -1
- esphome/components/tc74/tc74.cpp +0 -1
- esphome/components/tca9548a/tca9548a.cpp +0 -1
- esphome/components/tca9555/tca9555.cpp +0 -1
- esphome/components/tcs34725/tcs34725.cpp +0 -1
- esphome/components/tee501/tee501.cpp +0 -1
- esphome/components/tem3200/tem3200.cpp +0 -2
- esphome/components/template/alarm_control_panel/template_alarm_control_panel.cpp +0 -1
- esphome/components/template/cover/template_cover.cpp +0 -1
- esphome/components/template/select/template_select.cpp +0 -1
- esphome/components/template/text/template_text.cpp +0 -2
- esphome/components/template/valve/template_valve.cpp +0 -1
- esphome/components/text/__init__.py +0 -1
- esphome/components/text/text_traits.h +2 -0
- esphome/components/text_sensor/__init__.py +2 -1
- esphome/components/text_sensor/text_sensor.cpp +0 -2
- esphome/components/text_sensor/text_sensor.h +0 -8
- esphome/components/thermostat/climate.py +4 -4
- esphome/components/time/__init__.py +7 -4
- esphome/components/time/real_time_clock.cpp +16 -3
- esphome/components/tlc59208f/tlc59208f_output.cpp +0 -2
- esphome/components/tlc5947/tlc5947.cpp +0 -2
- esphome/components/tlc5971/tlc5971.cpp +0 -2
- esphome/components/tm1621/tm1621.cpp +0 -2
- esphome/components/tm1637/tm1637.cpp +0 -2
- esphome/components/tm1638/tm1638.cpp +0 -2
- esphome/components/tm1651/__init__.py +45 -48
- esphome/components/tm1651/tm1651.cpp +213 -47
- esphome/components/tm1651/tm1651.h +37 -32
- esphome/components/tmp117/tmp117.cpp +0 -2
- esphome/components/tsl2561/tsl2561.cpp +0 -1
- esphome/components/tsl2591/tsl2591.cpp +0 -1
- esphome/components/tt21100/touchscreen/tt21100.cpp +0 -2
- esphome/components/ttp229_bsf/ttp229_bsf.cpp +0 -1
- esphome/components/ttp229_lsf/ttp229_lsf.cpp +0 -1
- esphome/components/tuya/climate/__init__.py +9 -10
- esphome/components/tuya/number/__init__.py +8 -6
- esphome/components/tx20/tx20.cpp +0 -1
- esphome/components/uart/uart_component_esp32_arduino.cpp +0 -1
- esphome/components/uart/uart_component_esp8266.cpp +0 -1
- esphome/components/uart/uart_component_esp_idf.cpp +0 -2
- esphome/components/uart/uart_component_libretiny.cpp +0 -2
- esphome/components/uart/uart_component_rp2040.cpp +0 -2
- esphome/components/udp/__init__.py +1 -1
- esphome/components/ufire_ec/sensor.py +1 -2
- esphome/components/ufire_ec/ufire_ec.cpp +0 -2
- esphome/components/ufire_ise/sensor.py +1 -2
- esphome/components/ufire_ise/ufire_ise.cpp +0 -2
- esphome/components/ultrasonic/ultrasonic_sensor.cpp +0 -1
- esphome/components/update/__init__.py +0 -1
- esphome/components/uptime/sensor/uptime_seconds_sensor.cpp +0 -1
- esphome/components/uptime/sensor/uptime_seconds_sensor.h +0 -2
- esphome/components/usb_host/usb_host_client.cpp +0 -1
- esphome/components/usb_host/usb_host_component.cpp +0 -1
- esphome/components/valve/__init__.py +0 -1
- esphome/components/veml3235/veml3235.cpp +0 -3
- esphome/components/veml7700/veml7700.cpp +0 -2
- esphome/components/version/version_text_sensor.cpp +0 -1
- esphome/components/version/version_text_sensor.h +0 -1
- esphome/components/vl53l0x/vl53l0x_sensor.cpp +0 -4
- esphome/components/voice_assistant/voice_assistant.cpp +9 -8
- esphome/components/web_server/__init__.py +13 -0
- esphome/components/web_server/web_server.cpp +187 -352
- esphome/components/web_server/web_server.h +61 -1
- esphome/components/web_server_base/__init__.py +1 -1
- esphome/components/web_server_base/web_server_base.cpp +2 -0
- esphome/components/web_server_base/web_server_base.h +6 -0
- esphome/components/web_server_idf/web_server_idf.cpp +10 -8
- esphome/components/web_server_idf/web_server_idf.h +2 -0
- esphome/components/weikai_i2c/weikai_i2c.cpp +1 -2
- esphome/components/weikai_spi/weikai_spi.cpp +1 -1
- esphome/components/wifi/__init__.py +8 -43
- esphome/components/wifi/wifi_component.cpp +100 -36
- esphome/components/wifi/wifi_component.h +5 -1
- esphome/components/wifi/wifi_component_esp32_arduino.cpp +30 -0
- esphome/components/wifi/wifi_component_esp_idf.cpp +30 -0
- esphome/components/wifi_info/wifi_info_text_sensor.h +0 -6
- esphome/components/wifi_signal/wifi_signal_sensor.h +0 -1
- esphome/components/wireguard/wireguard.cpp +0 -2
- esphome/components/x9c/x9c.cpp +0 -2
- esphome/components/xgzp68xx/xgzp68xx.cpp +0 -1
- esphome/components/xl9535/xl9535.cpp +0 -2
- esphome/components/zephyr/__init__.py +252 -0
- esphome/components/zephyr/const.py +16 -0
- esphome/components/zephyr/core.cpp +90 -0
- esphome/components/zephyr/gpio.cpp +120 -0
- esphome/components/zephyr/gpio.h +38 -0
- esphome/components/zephyr/pre_build.py.script +4 -0
- esphome/components/zephyr/preferences.cpp +156 -0
- esphome/components/zephyr/preferences.h +13 -0
- esphome/config.py +38 -16
- esphome/config_helpers.py +1 -2
- esphome/config_validation.py +12 -16
- esphome/const.py +26 -1
- esphome/core/__init__.py +88 -51
- esphome/core/application.cpp +75 -21
- esphome/core/application.h +106 -171
- esphome/core/color.h +10 -0
- esphome/core/component.cpp +41 -25
- esphome/core/component.h +9 -6
- esphome/core/component_iterator.cpp +61 -261
- esphome/core/component_iterator.h +15 -0
- esphome/core/config.py +26 -11
- esphome/core/defines.h +40 -2
- esphome/core/entity_base.h +18 -0
- esphome/core/entity_helpers.py +45 -10
- esphome/core/helpers.cpp +8 -15
- esphome/core/helpers.h +60 -6
- esphome/core/lock_free_queue.h +1 -1
- esphome/core/scheduler.cpp +277 -74
- esphome/core/scheduler.h +89 -27
- esphome/cpp_generator.py +2 -6
- esphome/cpp_helpers.py +1 -1
- esphome/dashboard/dashboard.py +2 -3
- esphome/dashboard/dns.py +2 -8
- esphome/dashboard/web_server.py +34 -19
- esphome/espota2.py +1 -4
- esphome/git.py +3 -1
- esphome/helpers.py +23 -4
- esphome/log.py +3 -1
- esphome/mqtt.py +3 -5
- esphome/platformio_api.py +7 -4
- esphome/types.py +12 -0
- esphome/util.py +20 -8
- esphome/voluptuous_schema.py +4 -3
- esphome/vscode.py +1 -2
- esphome/wizard.py +1 -4
- esphome/writer.py +5 -107
- esphome/yaml_util.py +7 -5
- {esphome-2025.7.5.dist-info → esphome-2025.8.0b2.dist-info}/METADATA +13 -14
- {esphome-2025.7.5.dist-info → esphome-2025.8.0b2.dist-info}/RECORD +751 -671
- esphome/components/mipi_spi/models/commands.py +0 -82
- /esphome/components/nfc/binary_sensor/{binary_sensor.h → nfc_binary_sensor.h} +0 -0
- {esphome-2025.7.5.dist-info → esphome-2025.8.0b2.dist-info}/WHEEL +0 -0
- {esphome-2025.7.5.dist-info → esphome-2025.8.0b2.dist-info}/entry_points.txt +0 -0
- {esphome-2025.7.5.dist-info → esphome-2025.8.0b2.dist-info}/licenses/LICENSE +0 -0
- {esphome-2025.7.5.dist-info → esphome-2025.8.0b2.dist-info}/top_level.txt +0 -0
|
@@ -21,6 +21,11 @@ from esphome.components.libretiny.const import (
|
|
|
21
21
|
COMPONENT_LN882X,
|
|
22
22
|
COMPONENT_RTL87XX,
|
|
23
23
|
)
|
|
24
|
+
from esphome.components.zephyr import (
|
|
25
|
+
zephyr_add_cdc_acm,
|
|
26
|
+
zephyr_add_overlay,
|
|
27
|
+
zephyr_add_prj_conf,
|
|
28
|
+
)
|
|
24
29
|
from esphome.config_helpers import filter_source_files_from_platform
|
|
25
30
|
import esphome.config_validation as cv
|
|
26
31
|
from esphome.const import (
|
|
@@ -41,6 +46,7 @@ from esphome.const import (
|
|
|
41
46
|
PLATFORM_ESP32,
|
|
42
47
|
PLATFORM_ESP8266,
|
|
43
48
|
PLATFORM_LN882X,
|
|
49
|
+
PLATFORM_NRF52,
|
|
44
50
|
PLATFORM_RP2040,
|
|
45
51
|
PLATFORM_RTL87XX,
|
|
46
52
|
PlatformFramework,
|
|
@@ -115,6 +121,8 @@ ESP_ARDUINO_UNSUPPORTED_USB_UARTS = [USB_SERIAL_JTAG]
|
|
|
115
121
|
|
|
116
122
|
UART_SELECTION_RP2040 = [USB_CDC, UART0, UART1]
|
|
117
123
|
|
|
124
|
+
UART_SELECTION_NRF52 = [USB_CDC, UART0]
|
|
125
|
+
|
|
118
126
|
HARDWARE_UART_TO_UART_SELECTION = {
|
|
119
127
|
UART0: logger_ns.UART_SELECTION_UART0,
|
|
120
128
|
UART0_SWAP: logger_ns.UART_SELECTION_UART0_SWAP,
|
|
@@ -167,6 +175,8 @@ def uart_selection(value):
|
|
|
167
175
|
return cv.one_of(*UART_SELECTION_LIBRETINY[component], upper=True)(value)
|
|
168
176
|
if CORE.is_host:
|
|
169
177
|
raise cv.Invalid("Uart selection not valid for host platform")
|
|
178
|
+
if CORE.is_nrf52:
|
|
179
|
+
return cv.one_of(*UART_SELECTION_NRF52, upper=True)(value)
|
|
170
180
|
raise NotImplementedError
|
|
171
181
|
|
|
172
182
|
|
|
@@ -186,6 +196,7 @@ LoggerMessageTrigger = logger_ns.class_(
|
|
|
186
196
|
automation.Trigger.template(cg.uint8, cg.const_char_ptr, cg.const_char_ptr),
|
|
187
197
|
)
|
|
188
198
|
|
|
199
|
+
|
|
189
200
|
CONF_ESP8266_STORE_LOG_STRINGS_IN_FLASH = "esp8266_store_log_strings_in_flash"
|
|
190
201
|
CONFIG_SCHEMA = cv.All(
|
|
191
202
|
cv.Schema(
|
|
@@ -227,6 +238,7 @@ CONFIG_SCHEMA = cv.All(
|
|
|
227
238
|
bk72xx=DEFAULT,
|
|
228
239
|
ln882x=DEFAULT,
|
|
229
240
|
rtl87xx=DEFAULT,
|
|
241
|
+
nrf52=USB_CDC,
|
|
230
242
|
): cv.All(
|
|
231
243
|
cv.only_on(
|
|
232
244
|
[
|
|
@@ -236,6 +248,7 @@ CONFIG_SCHEMA = cv.All(
|
|
|
236
248
|
PLATFORM_BK72XX,
|
|
237
249
|
PLATFORM_LN882X,
|
|
238
250
|
PLATFORM_RTL87XX,
|
|
251
|
+
PLATFORM_NRF52,
|
|
239
252
|
]
|
|
240
253
|
),
|
|
241
254
|
uart_selection,
|
|
@@ -333,14 +346,13 @@ async def to_code(config):
|
|
|
333
346
|
if config.get(CONF_ESP8266_STORE_LOG_STRINGS_IN_FLASH):
|
|
334
347
|
cg.add_build_flag("-DUSE_STORE_LOG_STR_IN_FLASH")
|
|
335
348
|
|
|
336
|
-
if CORE.using_arduino:
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
)
|
|
343
|
-
cg.add_build_flag("-DARDUINO_USB_MODE=1")
|
|
349
|
+
if CORE.using_arduino and config[CONF_HARDWARE_UART] == USB_CDC:
|
|
350
|
+
cg.add_build_flag("-DARDUINO_USB_CDC_ON_BOOT=1")
|
|
351
|
+
if CORE.is_esp32 and get_esp32_variant() in (
|
|
352
|
+
VARIANT_ESP32C3,
|
|
353
|
+
VARIANT_ESP32C6,
|
|
354
|
+
):
|
|
355
|
+
cg.add_build_flag("-DARDUINO_USB_MODE=1")
|
|
344
356
|
|
|
345
357
|
if CORE.using_esp_idf:
|
|
346
358
|
if config[CONF_HARDWARE_UART] == USB_CDC:
|
|
@@ -358,6 +370,15 @@ async def to_code(config):
|
|
|
358
370
|
except cv.Invalid:
|
|
359
371
|
pass
|
|
360
372
|
|
|
373
|
+
if CORE.using_zephyr:
|
|
374
|
+
if config[CONF_HARDWARE_UART] == UART0:
|
|
375
|
+
zephyr_add_overlay("""&uart0 { status = "okay";};""")
|
|
376
|
+
if config[CONF_HARDWARE_UART] == UART1:
|
|
377
|
+
zephyr_add_overlay("""&uart1 { status = "okay";};""")
|
|
378
|
+
if config[CONF_HARDWARE_UART] == USB_CDC:
|
|
379
|
+
zephyr_add_prj_conf("UART_LINE_CTRL", True)
|
|
380
|
+
zephyr_add_cdc_acm(config, 0)
|
|
381
|
+
|
|
361
382
|
# Register at end for safe mode
|
|
362
383
|
await cg.register_component(log, config)
|
|
363
384
|
|
|
@@ -388,7 +409,7 @@ def validate_printf(value):
|
|
|
388
409
|
[cCdiouxXeEfgGaAnpsSZ] # type
|
|
389
410
|
)
|
|
390
411
|
""" # noqa
|
|
391
|
-
matches = re.findall(cfmt, value[CONF_FORMAT], flags=re.
|
|
412
|
+
matches = re.findall(cfmt, value[CONF_FORMAT], flags=re.VERBOSE)
|
|
392
413
|
if len(matches) != len(value[CONF_ARGS]):
|
|
393
414
|
raise cv.Invalid(
|
|
394
415
|
f"Found {len(matches)} printf-patterns ({', '.join(matches)}), but {len(value[CONF_ARGS])} args were given!"
|
|
@@ -463,6 +484,7 @@ FILTER_SOURCE_FILES = filter_source_files_from_platform(
|
|
|
463
484
|
PlatformFramework.RTL87XX_ARDUINO,
|
|
464
485
|
PlatformFramework.LN882X_ARDUINO,
|
|
465
486
|
},
|
|
487
|
+
"logger_zephyr.cpp": {PlatformFramework.NRF52_ZEPHYR},
|
|
466
488
|
"task_log_buffer.cpp": {
|
|
467
489
|
PlatformFramework.ESP32_ARDUINO,
|
|
468
490
|
PlatformFramework.ESP32_IDF,
|
|
@@ -4,12 +4,11 @@
|
|
|
4
4
|
#include <memory> // For unique_ptr
|
|
5
5
|
#endif
|
|
6
6
|
|
|
7
|
+
#include "esphome/core/application.h"
|
|
7
8
|
#include "esphome/core/hal.h"
|
|
8
9
|
#include "esphome/core/log.h"
|
|
9
|
-
#include "esphome/core/application.h"
|
|
10
10
|
|
|
11
|
-
namespace esphome {
|
|
12
|
-
namespace logger {
|
|
11
|
+
namespace esphome::logger {
|
|
13
12
|
|
|
14
13
|
static const char *const TAG = "logger";
|
|
15
14
|
|
|
@@ -160,6 +159,8 @@ Logger::Logger(uint32_t baud_rate, size_t tx_buffer_size) : baud_rate_(baud_rate
|
|
|
160
159
|
this->tx_buffer_ = new char[this->tx_buffer_size_ + 1]; // NOLINT
|
|
161
160
|
#if defined(USE_ESP32) || defined(USE_LIBRETINY)
|
|
162
161
|
this->main_task_ = xTaskGetCurrentTaskHandle();
|
|
162
|
+
#elif defined(USE_ZEPHYR)
|
|
163
|
+
this->main_task_ = k_current_get();
|
|
163
164
|
#endif
|
|
164
165
|
}
|
|
165
166
|
#ifdef USE_ESPHOME_TASK_LOG_BUFFER
|
|
@@ -172,6 +173,7 @@ void Logger::init_log_buffer(size_t total_buffer_size) {
|
|
|
172
173
|
}
|
|
173
174
|
#endif
|
|
174
175
|
|
|
176
|
+
#ifndef USE_ZEPHYR
|
|
175
177
|
#if defined(USE_LOGGER_USB_CDC) || defined(USE_ESP32)
|
|
176
178
|
void Logger::loop() {
|
|
177
179
|
#if defined(USE_LOGGER_USB_CDC) && defined(USE_ARDUINO)
|
|
@@ -185,8 +187,13 @@ void Logger::loop() {
|
|
|
185
187
|
}
|
|
186
188
|
opened = !opened;
|
|
187
189
|
}
|
|
190
|
+
#endif
|
|
191
|
+
this->process_messages_();
|
|
192
|
+
}
|
|
193
|
+
#endif
|
|
188
194
|
#endif
|
|
189
195
|
|
|
196
|
+
void Logger::process_messages_() {
|
|
190
197
|
#ifdef USE_ESPHOME_TASK_LOG_BUFFER
|
|
191
198
|
// Process any buffered messages when available
|
|
192
199
|
if (this->log_buffer_->has_messages()) {
|
|
@@ -227,12 +234,11 @@ void Logger::loop() {
|
|
|
227
234
|
}
|
|
228
235
|
#endif
|
|
229
236
|
}
|
|
230
|
-
#endif
|
|
231
237
|
|
|
232
238
|
void Logger::set_baud_rate(uint32_t baud_rate) { this->baud_rate_ = baud_rate; }
|
|
233
239
|
void Logger::set_log_level(const std::string &tag, uint8_t log_level) { this->log_levels_[tag] = log_level; }
|
|
234
240
|
|
|
235
|
-
#if defined(USE_ESP32) || defined(USE_ESP8266) || defined(USE_RP2040) || defined(USE_LIBRETINY)
|
|
241
|
+
#if defined(USE_ESP32) || defined(USE_ESP8266) || defined(USE_RP2040) || defined(USE_LIBRETINY) || defined(USE_ZEPHYR)
|
|
236
242
|
UARTSelection Logger::get_uart() const { return this->uart_; }
|
|
237
243
|
#endif
|
|
238
244
|
|
|
@@ -276,5 +282,4 @@ void Logger::set_log_level(uint8_t level) {
|
|
|
276
282
|
|
|
277
283
|
Logger *global_logger = nullptr; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
|
278
284
|
|
|
279
|
-
} // namespace logger
|
|
280
|
-
} // namespace esphome
|
|
285
|
+
} // namespace esphome::logger
|
|
@@ -29,9 +29,12 @@
|
|
|
29
29
|
#include <driver/uart.h>
|
|
30
30
|
#endif // USE_ESP_IDF
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
#ifdef USE_ZEPHYR
|
|
33
|
+
#include <zephyr/kernel.h>
|
|
34
|
+
struct device;
|
|
35
|
+
#endif
|
|
33
36
|
|
|
34
|
-
namespace logger {
|
|
37
|
+
namespace esphome::logger {
|
|
35
38
|
|
|
36
39
|
// Color and letter constants for log levels
|
|
37
40
|
static const char *const LOG_LEVEL_COLORS[] = {
|
|
@@ -56,7 +59,7 @@ static const char *const LOG_LEVEL_LETTERS[] = {
|
|
|
56
59
|
"VV", // VERY_VERBOSE
|
|
57
60
|
};
|
|
58
61
|
|
|
59
|
-
#if defined(USE_ESP32) || defined(USE_ESP8266) || defined(USE_RP2040) || defined(USE_LIBRETINY)
|
|
62
|
+
#if defined(USE_ESP32) || defined(USE_ESP8266) || defined(USE_RP2040) || defined(USE_LIBRETINY) || defined(USE_ZEPHYR)
|
|
60
63
|
/** Enum for logging UART selection
|
|
61
64
|
*
|
|
62
65
|
* Advanced configuration (pin selection, etc) is not supported.
|
|
@@ -82,7 +85,7 @@ enum UARTSelection : uint8_t {
|
|
|
82
85
|
UART_SELECTION_UART0_SWAP,
|
|
83
86
|
#endif // USE_ESP8266
|
|
84
87
|
};
|
|
85
|
-
#endif // USE_ESP32 || USE_ESP8266 || USE_RP2040 || USE_LIBRETINY
|
|
88
|
+
#endif // USE_ESP32 || USE_ESP8266 || USE_RP2040 || USE_LIBRETINY || USE_ZEPHYR
|
|
86
89
|
|
|
87
90
|
/**
|
|
88
91
|
* @brief Logger component for all ESPHome logging.
|
|
@@ -107,7 +110,7 @@ class Logger : public Component {
|
|
|
107
110
|
#ifdef USE_ESPHOME_TASK_LOG_BUFFER
|
|
108
111
|
void init_log_buffer(size_t total_buffer_size);
|
|
109
112
|
#endif
|
|
110
|
-
#if defined(USE_LOGGER_USB_CDC) || defined(USE_ESP32)
|
|
113
|
+
#if defined(USE_LOGGER_USB_CDC) || defined(USE_ESP32) || defined(USE_ZEPHYR)
|
|
111
114
|
void loop() override;
|
|
112
115
|
#endif
|
|
113
116
|
/// Manually set the baud rate for serial, set to 0 to disable.
|
|
@@ -122,7 +125,7 @@ class Logger : public Component {
|
|
|
122
125
|
#ifdef USE_ESP32
|
|
123
126
|
void create_pthread_key() { pthread_key_create(&log_recursion_key_, nullptr); }
|
|
124
127
|
#endif
|
|
125
|
-
#if defined(USE_ESP32) || defined(USE_ESP8266) || defined(USE_RP2040) || defined(USE_LIBRETINY)
|
|
128
|
+
#if defined(USE_ESP32) || defined(USE_ESP8266) || defined(USE_RP2040) || defined(USE_LIBRETINY) || defined(USE_ZEPHYR)
|
|
126
129
|
void set_uart_selection(UARTSelection uart_selection) { uart_ = uart_selection; }
|
|
127
130
|
/// Get the UART used by the logger.
|
|
128
131
|
UARTSelection get_uart() const;
|
|
@@ -157,6 +160,7 @@ class Logger : public Component {
|
|
|
157
160
|
#endif
|
|
158
161
|
|
|
159
162
|
protected:
|
|
163
|
+
void process_messages_();
|
|
160
164
|
void write_msg_(const char *msg);
|
|
161
165
|
|
|
162
166
|
// Format a log message with printf-style arguments and write it to a buffer with header, footer, and null terminator
|
|
@@ -164,7 +168,7 @@ class Logger : public Component {
|
|
|
164
168
|
inline void HOT format_log_to_buffer_with_terminator_(uint8_t level, const char *tag, int line, const char *format,
|
|
165
169
|
va_list args, char *buffer, uint16_t *buffer_at,
|
|
166
170
|
uint16_t buffer_size) {
|
|
167
|
-
#if defined(USE_ESP32) || defined(USE_LIBRETINY)
|
|
171
|
+
#if defined(USE_ESP32) || defined(USE_LIBRETINY) || defined(USE_ZEPHYR)
|
|
168
172
|
this->write_header_to_buffer_(level, tag, line, this->get_thread_name_(), buffer, buffer_at, buffer_size);
|
|
169
173
|
#else
|
|
170
174
|
this->write_header_to_buffer_(level, tag, line, nullptr, buffer, buffer_at, buffer_size);
|
|
@@ -231,7 +235,10 @@ class Logger : public Component {
|
|
|
231
235
|
#ifdef USE_ARDUINO
|
|
232
236
|
Stream *hw_serial_{nullptr};
|
|
233
237
|
#endif
|
|
234
|
-
#if defined(
|
|
238
|
+
#if defined(USE_ZEPHYR)
|
|
239
|
+
const device *uart_dev_{nullptr};
|
|
240
|
+
#endif
|
|
241
|
+
#if defined(USE_ESP32) || defined(USE_LIBRETINY) || defined(USE_ZEPHYR)
|
|
235
242
|
void *main_task_ = nullptr; // Only used for thread name identification
|
|
236
243
|
#endif
|
|
237
244
|
#ifdef USE_ESP32
|
|
@@ -256,7 +263,7 @@ class Logger : public Component {
|
|
|
256
263
|
uint16_t tx_buffer_at_{0};
|
|
257
264
|
uint16_t tx_buffer_size_{0};
|
|
258
265
|
uint8_t current_level_{ESPHOME_LOG_LEVEL_VERY_VERBOSE};
|
|
259
|
-
#if defined(USE_ESP32) || defined(USE_ESP8266) || defined(USE_RP2040)
|
|
266
|
+
#if defined(USE_ESP32) || defined(USE_ESP8266) || defined(USE_RP2040) || defined(USE_ZEPHYR)
|
|
260
267
|
UARTSelection uart_{UART_SELECTION_UART0};
|
|
261
268
|
#endif
|
|
262
269
|
#ifdef USE_LIBRETINY
|
|
@@ -268,9 +275,13 @@ class Logger : public Component {
|
|
|
268
275
|
bool global_recursion_guard_{false}; // Simple global recursion guard for single-task platforms
|
|
269
276
|
#endif
|
|
270
277
|
|
|
271
|
-
#if defined(USE_ESP32) || defined(USE_LIBRETINY)
|
|
278
|
+
#if defined(USE_ESP32) || defined(USE_LIBRETINY) || defined(USE_ZEPHYR)
|
|
272
279
|
const char *HOT get_thread_name_() {
|
|
280
|
+
#ifdef USE_ZEPHYR
|
|
281
|
+
k_tid_t current_task = k_current_get();
|
|
282
|
+
#else
|
|
273
283
|
TaskHandle_t current_task = xTaskGetCurrentTaskHandle();
|
|
284
|
+
#endif
|
|
274
285
|
if (current_task == main_task_) {
|
|
275
286
|
return nullptr; // Main task
|
|
276
287
|
} else {
|
|
@@ -278,6 +289,8 @@ class Logger : public Component {
|
|
|
278
289
|
return pcTaskGetName(current_task);
|
|
279
290
|
#elif defined(USE_LIBRETINY)
|
|
280
291
|
return pcTaskGetTaskName(current_task);
|
|
292
|
+
#elif defined(USE_ZEPHYR)
|
|
293
|
+
return k_thread_name_get(current_task);
|
|
281
294
|
#endif
|
|
282
295
|
}
|
|
283
296
|
}
|
|
@@ -319,7 +332,7 @@ class Logger : public Component {
|
|
|
319
332
|
const char *color = esphome::logger::LOG_LEVEL_COLORS[level];
|
|
320
333
|
const char *letter = esphome::logger::LOG_LEVEL_LETTERS[level];
|
|
321
334
|
|
|
322
|
-
#if defined(USE_ESP32) || defined(USE_LIBRETINY)
|
|
335
|
+
#if defined(USE_ESP32) || defined(USE_LIBRETINY) || defined(USE_ZEPHYR)
|
|
323
336
|
if (thread_name != nullptr) {
|
|
324
337
|
// Non-main task with thread name
|
|
325
338
|
this->printf_to_buffer_(buffer, buffer_at, buffer_size, "%s[%s][%s:%03u]%s[%s]%s: ", color, letter, tag, line,
|
|
@@ -396,6 +409,4 @@ class LoggerMessageTrigger : public Trigger<uint8_t, const char *, const char *>
|
|
|
396
409
|
uint8_t level_;
|
|
397
410
|
};
|
|
398
411
|
|
|
399
|
-
} // namespace logger
|
|
400
|
-
|
|
401
|
-
} // namespace esphome
|
|
412
|
+
} // namespace esphome::logger
|
|
@@ -29,8 +29,7 @@
|
|
|
29
29
|
|
|
30
30
|
#include "esphome/core/log.h"
|
|
31
31
|
|
|
32
|
-
namespace esphome {
|
|
33
|
-
namespace logger {
|
|
32
|
+
namespace esphome::logger {
|
|
34
33
|
|
|
35
34
|
static const char *const TAG = "logger";
|
|
36
35
|
|
|
@@ -119,9 +118,6 @@ void Logger::pre_setup() {
|
|
|
119
118
|
#ifdef USE_LOGGER_USB_CDC
|
|
120
119
|
case UART_SELECTION_USB_CDC:
|
|
121
120
|
this->hw_serial_ = &Serial;
|
|
122
|
-
#if ARDUINO_USB_CDC_ON_BOOT
|
|
123
|
-
Serial.setTxTimeoutMs(0); // workaround for 2.0.9 crash when there's no data connection
|
|
124
|
-
#endif
|
|
125
121
|
Serial.begin(this->baud_rate_);
|
|
126
122
|
break;
|
|
127
123
|
#endif
|
|
@@ -209,6 +205,5 @@ const char *const UART_SELECTIONS[] = {
|
|
|
209
205
|
|
|
210
206
|
const char *Logger::get_uart_selection_() { return UART_SELECTIONS[this->uart_]; }
|
|
211
207
|
|
|
212
|
-
} // namespace logger
|
|
213
|
-
} // namespace esphome
|
|
208
|
+
} // namespace esphome::logger
|
|
214
209
|
#endif
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
#include "logger.h"
|
|
3
3
|
#include "esphome/core/log.h"
|
|
4
4
|
|
|
5
|
-
namespace esphome {
|
|
6
|
-
namespace logger {
|
|
5
|
+
namespace esphome::logger {
|
|
7
6
|
|
|
8
7
|
static const char *const TAG = "logger";
|
|
9
8
|
|
|
@@ -40,6 +39,5 @@ const char *const UART_SELECTIONS[] = {"UART0", "UART1", "UART0_SWAP"};
|
|
|
40
39
|
|
|
41
40
|
const char *Logger::get_uart_selection_() { return UART_SELECTIONS[this->uart_]; }
|
|
42
41
|
|
|
43
|
-
} // namespace logger
|
|
44
|
-
} // namespace esphome
|
|
42
|
+
} // namespace esphome::logger
|
|
45
43
|
#endif
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
#if defined(USE_HOST)
|
|
2
2
|
#include "logger.h"
|
|
3
3
|
|
|
4
|
-
namespace esphome {
|
|
5
|
-
namespace logger {
|
|
4
|
+
namespace esphome::logger {
|
|
6
5
|
|
|
7
6
|
void HOT Logger::write_msg_(const char *msg) {
|
|
8
7
|
time_t rawtime;
|
|
@@ -18,7 +17,6 @@ void HOT Logger::write_msg_(const char *msg) {
|
|
|
18
17
|
|
|
19
18
|
void Logger::pre_setup() { global_logger = this; }
|
|
20
19
|
|
|
21
|
-
} // namespace logger
|
|
22
|
-
} // namespace esphome
|
|
20
|
+
} // namespace esphome::logger
|
|
23
21
|
|
|
24
22
|
#endif
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
#ifdef USE_LIBRETINY
|
|
2
2
|
#include "logger.h"
|
|
3
3
|
|
|
4
|
-
namespace esphome {
|
|
5
|
-
namespace logger {
|
|
4
|
+
namespace esphome::logger {
|
|
6
5
|
|
|
7
6
|
static const char *const TAG = "logger";
|
|
8
7
|
|
|
@@ -56,7 +55,6 @@ const char *const UART_SELECTIONS[] = {"DEFAULT", "UART0", "UART1", "UART2"};
|
|
|
56
55
|
|
|
57
56
|
const char *Logger::get_uart_selection_() { return UART_SELECTIONS[this->uart_]; }
|
|
58
57
|
|
|
59
|
-
} // namespace logger
|
|
60
|
-
} // namespace esphome
|
|
58
|
+
} // namespace esphome::logger
|
|
61
59
|
|
|
62
60
|
#endif // USE_LIBRETINY
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
#include "logger.h"
|
|
3
3
|
#include "esphome/core/log.h"
|
|
4
4
|
|
|
5
|
-
namespace esphome {
|
|
6
|
-
namespace logger {
|
|
5
|
+
namespace esphome::logger {
|
|
7
6
|
|
|
8
7
|
static const char *const TAG = "logger";
|
|
9
8
|
|
|
@@ -34,6 +33,5 @@ const char *const UART_SELECTIONS[] = {"UART0", "UART1", "USB_CDC"};
|
|
|
34
33
|
|
|
35
34
|
const char *Logger::get_uart_selection_() { return UART_SELECTIONS[this->uart_]; }
|
|
36
35
|
|
|
37
|
-
} // namespace logger
|
|
38
|
-
} // namespace esphome
|
|
36
|
+
} // namespace esphome::logger
|
|
39
37
|
#endif // USE_RP2040
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
#ifdef USE_ZEPHYR
|
|
2
|
+
|
|
3
|
+
#include "esphome/core/application.h"
|
|
4
|
+
#include "esphome/core/log.h"
|
|
5
|
+
#include "logger.h"
|
|
6
|
+
|
|
7
|
+
#include <zephyr/device.h>
|
|
8
|
+
#include <zephyr/drivers/uart.h>
|
|
9
|
+
#include <zephyr/usb/usb_device.h>
|
|
10
|
+
|
|
11
|
+
namespace esphome::logger {
|
|
12
|
+
|
|
13
|
+
static const char *const TAG = "logger";
|
|
14
|
+
|
|
15
|
+
void Logger::loop() {
|
|
16
|
+
#ifdef USE_LOGGER_USB_CDC
|
|
17
|
+
if (this->uart_ != UART_SELECTION_USB_CDC || nullptr == this->uart_dev_) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
static bool opened = false;
|
|
21
|
+
uint32_t dtr = 0;
|
|
22
|
+
uart_line_ctrl_get(this->uart_dev_, UART_LINE_CTRL_DTR, &dtr);
|
|
23
|
+
|
|
24
|
+
/* Poll if the DTR flag was set, optional */
|
|
25
|
+
if (opened == dtr) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (!opened) {
|
|
30
|
+
App.schedule_dump_config();
|
|
31
|
+
}
|
|
32
|
+
opened = !opened;
|
|
33
|
+
#endif
|
|
34
|
+
this->process_messages_();
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
void Logger::pre_setup() {
|
|
38
|
+
if (this->baud_rate_ > 0) {
|
|
39
|
+
static const struct device *uart_dev = nullptr;
|
|
40
|
+
switch (this->uart_) {
|
|
41
|
+
case UART_SELECTION_UART0:
|
|
42
|
+
uart_dev = DEVICE_DT_GET_OR_NULL(DT_NODELABEL(uart0));
|
|
43
|
+
break;
|
|
44
|
+
case UART_SELECTION_UART1:
|
|
45
|
+
uart_dev = DEVICE_DT_GET_OR_NULL(DT_NODELABEL(uart1));
|
|
46
|
+
break;
|
|
47
|
+
#ifdef USE_LOGGER_USB_CDC
|
|
48
|
+
case UART_SELECTION_USB_CDC:
|
|
49
|
+
uart_dev = DEVICE_DT_GET_OR_NULL(DT_NODELABEL(cdc_acm_uart0));
|
|
50
|
+
if (device_is_ready(uart_dev)) {
|
|
51
|
+
usb_enable(nullptr);
|
|
52
|
+
}
|
|
53
|
+
break;
|
|
54
|
+
#endif
|
|
55
|
+
}
|
|
56
|
+
if (!device_is_ready(uart_dev)) {
|
|
57
|
+
ESP_LOGE(TAG, "%s is not ready.", get_uart_selection_());
|
|
58
|
+
} else {
|
|
59
|
+
this->uart_dev_ = uart_dev;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
global_logger = this;
|
|
63
|
+
ESP_LOGI(TAG, "Log initialized");
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
void HOT Logger::write_msg_(const char *msg) {
|
|
67
|
+
#ifdef CONFIG_PRINTK
|
|
68
|
+
printk("%s\n", msg);
|
|
69
|
+
#endif
|
|
70
|
+
if (nullptr == this->uart_dev_) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
while (*msg) {
|
|
74
|
+
uart_poll_out(this->uart_dev_, *msg);
|
|
75
|
+
++msg;
|
|
76
|
+
}
|
|
77
|
+
uart_poll_out(this->uart_dev_, '\n');
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const char *const UART_SELECTIONS[] = {"UART0", "UART1", "USB_CDC"};
|
|
81
|
+
|
|
82
|
+
const char *Logger::get_uart_selection_() { return UART_SELECTIONS[this->uart_]; }
|
|
83
|
+
|
|
84
|
+
} // namespace esphome::logger
|
|
85
|
+
|
|
86
|
+
#endif
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
#include "logger_level_select.h"
|
|
2
2
|
|
|
3
|
-
namespace esphome {
|
|
4
|
-
namespace logger {
|
|
3
|
+
namespace esphome::logger {
|
|
5
4
|
|
|
6
5
|
void LoggerLevelSelect::publish_state(int level) {
|
|
7
6
|
auto value = this->at(level);
|
|
@@ -23,5 +22,4 @@ void LoggerLevelSelect::control(const std::string &value) {
|
|
|
23
22
|
this->parent_->set_log_level(level.value());
|
|
24
23
|
}
|
|
25
24
|
|
|
26
|
-
} // namespace logger
|
|
27
|
-
} // namespace esphome
|
|
25
|
+
} // namespace esphome::logger
|
|
@@ -3,13 +3,11 @@
|
|
|
3
3
|
#include "esphome/components/select/select.h"
|
|
4
4
|
#include "esphome/core/component.h"
|
|
5
5
|
#include "esphome/components/logger/logger.h"
|
|
6
|
-
namespace esphome {
|
|
7
|
-
namespace logger {
|
|
6
|
+
namespace esphome::logger {
|
|
8
7
|
class LoggerLevelSelect : public Component, public select::Select, public Parented<Logger> {
|
|
9
8
|
public:
|
|
10
9
|
void publish_state(int level);
|
|
11
10
|
void setup() override;
|
|
12
11
|
void control(const std::string &value) override;
|
|
13
12
|
};
|
|
14
|
-
} // namespace logger
|
|
15
|
-
} // namespace esphome
|
|
13
|
+
} // namespace esphome::logger
|
|
@@ -5,8 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
#ifdef USE_ESPHOME_TASK_LOG_BUFFER
|
|
7
7
|
|
|
8
|
-
namespace esphome {
|
|
9
|
-
namespace logger {
|
|
8
|
+
namespace esphome::logger {
|
|
10
9
|
|
|
11
10
|
TaskLogBuffer::TaskLogBuffer(size_t total_buffer_size) {
|
|
12
11
|
// Store the buffer size
|
|
@@ -132,7 +131,6 @@ bool TaskLogBuffer::send_message_thread_safe(uint8_t level, const char *tag, uin
|
|
|
132
131
|
return true;
|
|
133
132
|
}
|
|
134
133
|
|
|
135
|
-
} // namespace logger
|
|
136
|
-
} // namespace esphome
|
|
134
|
+
} // namespace esphome::logger
|
|
137
135
|
|
|
138
136
|
#endif // USE_ESPHOME_TASK_LOG_BUFFER
|
|
@@ -11,8 +11,7 @@
|
|
|
11
11
|
#include <freertos/FreeRTOS.h>
|
|
12
12
|
#include <freertos/ringbuf.h>
|
|
13
13
|
|
|
14
|
-
namespace esphome {
|
|
15
|
-
namespace logger {
|
|
14
|
+
namespace esphome::logger {
|
|
16
15
|
|
|
17
16
|
class TaskLogBuffer {
|
|
18
17
|
public:
|
|
@@ -63,7 +62,6 @@ class TaskLogBuffer {
|
|
|
63
62
|
mutable uint16_t last_processed_counter_{0}; // Tracks last processed message
|
|
64
63
|
};
|
|
65
64
|
|
|
66
|
-
} // namespace logger
|
|
67
|
-
} // namespace esphome
|
|
65
|
+
} // namespace esphome::logger
|
|
68
66
|
|
|
69
67
|
#endif // USE_ESPHOME_TASK_LOG_BUFFER
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import esphome.codegen as cg
|
|
2
|
-
import esphome.config_validation as cv
|
|
3
2
|
from esphome.components import i2c, sensor
|
|
3
|
+
import esphome.config_validation as cv
|
|
4
4
|
from esphome.const import (
|
|
5
5
|
CONF_ID,
|
|
6
|
-
CONF_TEMPERATURE,
|
|
7
6
|
CONF_PRESSURE,
|
|
7
|
+
CONF_TEMPERATURE,
|
|
8
|
+
DEVICE_CLASS_PRESSURE,
|
|
9
|
+
DEVICE_CLASS_TEMPERATURE,
|
|
10
|
+
ICON_THERMOMETER,
|
|
8
11
|
STATE_CLASS_MEASUREMENT,
|
|
9
12
|
UNIT_CELSIUS,
|
|
10
13
|
UNIT_HECTOPASCAL,
|
|
11
|
-
ICON_THERMOMETER,
|
|
12
|
-
DEVICE_CLASS_TEMPERATURE,
|
|
13
|
-
DEVICE_CLASS_PRESSURE,
|
|
14
14
|
)
|
|
15
15
|
|
|
16
16
|
CODEOWNERS = ["@nagisa"]
|
|
@@ -74,7 +74,6 @@ static float get_ps_gain_coeff(PsGain501 gain) {
|
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
void LTRAlsPs501Component::setup() {
|
|
77
|
-
ESP_LOGCONFIG(TAG, "Running setup");
|
|
78
77
|
// As per datasheet we need to wait at least 100ms after power on to get ALS chip responsive
|
|
79
78
|
this->set_timeout(100, [this]() { this->state_ = State::DELAYED_SETUP; });
|
|
80
79
|
}
|
|
@@ -63,7 +63,6 @@ static float get_ps_gain_coeff(PsGain gain) {
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
void LTRAlsPsComponent::setup() {
|
|
66
|
-
ESP_LOGCONFIG(TAG, "Running setup");
|
|
67
66
|
// As per datasheet we need to wait at least 100ms after power on to get ALS chip responsive
|
|
68
67
|
this->set_timeout(100, [this]() { this->state_ = State::DELAYED_SETUP; });
|
|
69
68
|
}
|