esphome 2025.3.3__py3-none-any.whl → 2025.4.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 +34 -10
- esphome/components/a01nyub/sensor.py +2 -2
- esphome/components/a02yyuw/sensor.py +2 -2
- esphome/components/a4988/stepper.py +1 -2
- esphome/components/absolute_humidity/sensor.py +3 -3
- esphome/components/ac_dimmer/output.py +3 -3
- esphome/components/adalight/__init__.py +2 -2
- esphome/components/adc128s102/__init__.py +1 -1
- esphome/components/adc128s102/sensor/__init__.py +3 -3
- esphome/components/addressable_light/display.py +5 -5
- esphome/components/ade7880/sensor.py +2 -2
- esphome/components/ade7953_base/__init__.py +10 -10
- esphome/components/ade7953_i2c/sensor.py +1 -2
- esphome/components/ade7953_spi/sensor.py +1 -2
- esphome/components/ads1115/__init__.py +1 -1
- esphome/components/ads1115/sensor/__init__.py +4 -3
- esphome/components/ads1118/__init__.py +1 -1
- esphome/components/ads1118/sensor/__init__.py +5 -4
- esphome/components/ags10/sensor.py +9 -9
- esphome/components/aht10/sensor.py +2 -2
- esphome/components/airthings_ble/__init__.py +1 -1
- esphome/components/airthings_wave_base/__init__.py +2 -3
- esphome/components/airthings_wave_mini/sensor.py +2 -5
- esphome/components/airthings_wave_plus/sensor.py +8 -9
- esphome/components/alpha3/sensor.py +5 -5
- esphome/components/am2315c/am2315c.cpp +4 -4
- esphome/components/am2315c/sensor.py +1 -1
- esphome/components/am2320/sensor.py +1 -1
- esphome/components/am43/cover/__init__.py +1 -1
- esphome/components/am43/sensor/__init__.py +3 -3
- esphome/components/analog_threshold/binary_sensor.py +2 -5
- esphome/components/anova/climate.py +1 -1
- esphome/components/apds9306/sensor.py +1 -1
- esphome/components/apds9960/__init__.py +1 -1
- esphome/components/apds9960/binary_sensor.py +2 -1
- esphome/components/apds9960/sensor.py +3 -2
- esphome/components/api/api_frame_helper.cpp +25 -1
- esphome/components/as3935/__init__.py +3 -3
- esphome/components/as3935/binary_sensor.py +2 -1
- esphome/components/as3935/sensor.py +4 -3
- esphome/components/as3935_i2c/__init__.py +1 -1
- esphome/components/as3935_spi/__init__.py +1 -1
- esphome/components/as5600/__init__.py +2 -2
- esphome/components/as5600/sensor/__init__.py +10 -9
- esphome/components/as7341/sensor.py +1 -2
- esphome/components/at581x/__init__.py +4 -8
- esphome/components/at581x/switch/__init__.py +2 -4
- esphome/components/atc_mithermometer/sensor.py +3 -3
- esphome/components/axs15231/touchscreen/axs15231_touchscreen.cpp +7 -3
- esphome/components/b_parasite/sensor.py +2 -2
- esphome/components/ballu/climate.py +1 -1
- esphome/components/bang_bang/climate.py +2 -2
- esphome/components/bedjet/__init__.py +2 -6
- esphome/components/bedjet/climate/__init__.py +3 -6
- esphome/components/bedjet/fan/__init__.py +4 -9
- esphome/components/bedjet/sensor/__init__.py +3 -6
- esphome/components/beken_spi_led_strip/light.py +2 -2
- esphome/components/bh1750/sensor.py +2 -6
- esphome/components/binary/fan/__init__.py +2 -1
- esphome/components/binary/light/__init__.py +3 -2
- esphome/components/binary_sensor_map/sensor.py +5 -6
- esphome/components/bl0939/sensor.py +1 -1
- esphome/components/bl0940/sensor.py +3 -3
- esphome/components/ble_client/__init__.py +3 -2
- esphome/components/ble_client/sensor/__init__.py +1 -1
- esphome/components/ble_client/text_sensor/__init__.py +1 -1
- esphome/components/bluetooth_proxy/__init__.py +35 -23
- esphome/components/bme280_base/__init__.py +1 -1
- esphome/components/bme280_i2c/sensor.py +3 -2
- esphome/components/bme280_spi/sensor.py +3 -2
- esphome/components/bme680/sensor.py +4 -4
- esphome/components/bme680_bsec/__init__.py +1 -1
- esphome/components/bme680_bsec/sensor.py +3 -6
- esphome/components/bme680_bsec/text_sensor.py +3 -2
- esphome/components/bmi160/sensor.py +6 -6
- esphome/components/bmp085/sensor.py +1 -1
- esphome/components/bmp280_base/__init__.py +1 -1
- esphome/components/bmp280_i2c/sensor.py +3 -2
- esphome/components/bmp280_spi/sensor.py +3 -2
- esphome/components/bmp3xx_base/__init__.py +1 -1
- esphome/components/bmp3xx_i2c/sensor.py +2 -1
- esphome/components/bmp3xx_spi/sensor.py +2 -1
- esphome/components/bmp581/sensor.py +2 -1
- esphome/components/bp1658cj/__init__.py +2 -6
- esphome/components/bp1658cj/output.py +2 -1
- esphome/components/bp5758d/__init__.py +2 -6
- esphome/components/bp5758d/output.py +3 -2
- esphome/components/canbus/__init__.py +13 -2
- esphome/components/canbus/canbus.cpp +7 -1
- esphome/components/cap1188/__init__.py +2 -2
- esphome/components/cap1188/binary_sensor.py +3 -2
- esphome/components/captive_portal/__init__.py +3 -3
- esphome/components/ccs811/sensor.py +10 -10
- esphome/components/cd74hc4067/__init__.py +2 -5
- esphome/components/cd74hc4067/sensor.py +6 -5
- esphome/components/climate_ir/__init__.py +2 -2
- esphome/components/climate_ir_lg/climate.py +1 -1
- esphome/components/color/__init__.py +1 -2
- esphome/components/color_temperature/light.py +2 -2
- esphome/components/combination/sensor.py +1 -1
- esphome/components/coolix/climate.py +1 -1
- esphome/components/copy/binary_sensor/__init__.py +1 -1
- esphome/components/copy/button/__init__.py +1 -1
- esphome/components/copy/cover/__init__.py +1 -1
- esphome/components/copy/fan/__init__.py +2 -7
- esphome/components/copy/lock/__init__.py +2 -7
- esphome/components/copy/number/__init__.py +1 -1
- esphome/components/copy/select/__init__.py +2 -7
- esphome/components/copy/sensor/__init__.py +2 -2
- esphome/components/copy/switch/__init__.py +1 -1
- esphome/components/copy/text/__init__.py +2 -7
- esphome/components/copy/text_sensor/__init__.py +2 -6
- esphome/components/cs5460a/sensor.py +7 -7
- esphome/components/cse7761/sensor.py +2 -2
- esphome/components/cse7766/sensor.py +1 -1
- esphome/components/cst226/touchscreen/__init__.py +3 -4
- esphome/components/ct_clamp/sensor.py +1 -1
- esphome/components/current_based/cover.py +3 -4
- esphome/components/cwww/light.py +3 -3
- esphome/components/dac7678/__init__.py +1 -1
- esphome/components/dac7678/output.py +2 -1
- esphome/components/daikin/climate.py +1 -1
- esphome/components/daikin_arc/climate.py +1 -1
- esphome/components/daikin_brc/climate.py +1 -1
- esphome/components/dallas_temp/sensor.py +1 -1
- esphome/components/daly_bms/__init__.py +2 -2
- esphome/components/daly_bms/binary_sensor.py +3 -2
- esphome/components/daly_bms/sensor.py +14 -13
- esphome/components/daly_bms/text_sensor.py +3 -2
- esphome/components/dashboard_import/__init__.py +5 -5
- esphome/components/debug/sensor.py +7 -6
- esphome/components/debug/text_sensor.py +1 -1
- esphome/components/deep_sleep/__init__.py +12 -13
- esphome/components/delonghi/climate.py +1 -1
- esphome/components/demo/__init__.py +1 -1
- esphome/components/dfplayer/__init__.py +3 -3
- esphome/components/dfrobot_sen0395/__init__.py +3 -3
- esphome/components/dfrobot_sen0395/binary_sensor.py +2 -1
- esphome/components/dfrobot_sen0395/switch/__init__.py +2 -3
- esphome/components/dht/sensor.py +4 -5
- esphome/components/dht12/sensor.py +3 -3
- esphome/components/dps310/sensor.py +3 -3
- esphome/components/ds1307/time.py +2 -3
- esphome/components/dsmr/__init__.py +3 -7
- esphome/components/dsmr/sensor.py +5 -4
- esphome/components/dsmr/text_sensor.py +3 -2
- esphome/components/duty_cycle/sensor.py +3 -8
- esphome/components/duty_time/sensor.py +7 -7
- esphome/components/e131/__init__.py +3 -3
- esphome/components/ee895/sensor.py +5 -5
- esphome/components/ektf2232/touchscreen/__init__.py +2 -3
- esphome/components/emc2101/__init__.py +1 -1
- esphome/components/emc2101/output/__init__.py +3 -2
- esphome/components/emc2101/sensor/__init__.py +4 -3
- esphome/components/emmeti/climate.py +1 -1
- esphome/components/endstop/cover.py +3 -3
- esphome/components/ens160_base/__init__.py +1 -1
- esphome/components/ens160_i2c/sensor.py +2 -1
- esphome/components/ens160_spi/sensor.py +2 -1
- esphome/components/ens210/sensor.py +1 -1
- esphome/components/esp32/__init__.py +10 -0
- esphome/components/esp32_ble_tracker/__init__.py +135 -51
- esphome/components/esp32_camera/__init__.py +7 -8
- esphome/components/esp32_camera_web_server/__init__.py +2 -2
- esphome/components/esp32_can/canbus.py +21 -0
- esphome/components/esp32_can/esp32_can.cpp +1 -1
- esphome/components/esp32_can/esp32_can.h +4 -0
- esphome/components/esp32_dac/output.py +2 -2
- esphome/components/esp32_hall/sensor.py +2 -6
- esphome/components/esp32_touch/__init__.py +7 -7
- esphome/components/esp32_touch/binary_sensor.py +4 -7
- esphome/components/esp8266_pwm/output.py +3 -8
- esphome/components/ethernet/__init__.py +1 -0
- esphome/components/ethernet/ethernet_component.cpp +1 -1
- esphome/components/ethernet_info/ethernet_info_text_sensor.h +1 -0
- esphome/components/exposure_notifications/__init__.py +2 -2
- esphome/components/external_components/__init__.py +1 -1
- esphome/components/ezo/sensor.py +2 -2
- esphome/components/ezo_pmp/__init__.py +4 -4
- esphome/components/ezo_pmp/binary_sensor.py +4 -4
- esphome/components/ezo_pmp/sensor.py +4 -5
- esphome/components/ezo_pmp/text_sensor.py +2 -6
- esphome/components/factory_reset/button/__init__.py +2 -1
- esphome/components/factory_reset/switch/__init__.py +3 -2
- esphome/components/fastled_base/__init__.py +3 -3
- esphome/components/fastled_clockless/light.py +2 -2
- esphome/components/fastled_spi/light.py +2 -2
- esphome/components/feedback/cover.py +3 -3
- esphome/components/fingerprint_grow/__init__.py +5 -6
- esphome/components/fingerprint_grow/binary_sensor.py +2 -1
- esphome/components/fingerprint_grow/sensor.py +2 -1
- esphome/components/fs3000/sensor.py +2 -6
- esphome/components/ft5x06/touchscreen/__init__.py +2 -2
- esphome/components/ft63x6/touchscreen.py +2 -3
- esphome/components/fujitsu_general/climate.py +1 -1
- esphome/components/gcja5/sensor.py +4 -4
- esphome/components/gdk101/__init__.py +1 -1
- esphome/components/gdk101/binary_sensor.py +2 -1
- esphome/components/gdk101/sensor.py +5 -4
- esphome/components/globals/__init__.py +1 -2
- esphome/components/gp2y1010au0f/sensor.py +3 -3
- esphome/components/gp8403/__init__.py +1 -2
- esphome/components/gp8403/output/__init__.py +3 -4
- esphome/components/gpio/binary_sensor/__init__.py +3 -2
- esphome/components/gpio/one_wire/__init__.py +3 -2
- esphome/components/gpio/output/__init__.py +3 -2
- esphome/components/gpio/switch/__init__.py +3 -2
- esphome/components/gps/__init__.py +4 -5
- esphome/components/gps/time/__init__.py +3 -2
- esphome/components/graph/__init__.py +12 -12
- esphome/components/grove_tb6612fng/__init__.py +5 -6
- esphome/components/growatt_solar/sensor.py +1 -1
- esphome/components/gt911/binary_sensor/__init__.py +2 -2
- esphome/components/haier/binary_sensor/__init__.py +4 -10
- esphome/components/haier/button/__init__.py +3 -6
- esphome/components/haier/sensor/__init__.py +4 -6
- esphome/components/haier/switch/__init__.py +4 -7
- esphome/components/haier/text_sensor/__init__.py +4 -9
- esphome/components/havells_solar/sensor.py +1 -1
- esphome/components/hbridge/fan/__init__.py +6 -6
- esphome/components/hbridge/light/__init__.py +2 -1
- esphome/components/hdc1080/sensor.py +1 -1
- esphome/components/he60r/cover.py +2 -6
- esphome/components/heatpumpir/climate.py +1 -1
- esphome/components/hitachi_ac344/climate.py +1 -1
- esphome/components/hitachi_ac424/climate.py +1 -1
- esphome/components/hlw8012/sensor.py +6 -6
- esphome/components/hm3301/sensor.py +3 -3
- esphome/components/hmc5883l/sensor.py +4 -4
- esphome/components/homeassistant/time/__init__.py +2 -1
- esphome/components/honeywell_hih_i2c/sensor.py +3 -3
- esphome/components/honeywellabp/sensor.py +1 -2
- esphome/components/honeywellabp2_i2c/sensor.py +1 -2
- esphome/components/host/time/__init__.py +2 -2
- esphome/components/hrxl_maxsonar_wr/sensor.py +1 -1
- esphome/components/hte501/sensor.py +3 -3
- esphome/components/http_request/ota/__init__.py +5 -9
- esphome/components/http_request/update/__init__.py +3 -7
- esphome/components/htu21d/sensor.py +6 -6
- esphome/components/htu31d/sensor.py +1 -1
- esphome/components/hx711/sensor.py +3 -8
- esphome/components/hydreon_rgxx/binary_sensor.py +3 -7
- esphome/components/hydreon_rgxx/sensor.py +4 -4
- esphome/components/hyt271/sensor.py +1 -1
- esphome/components/i2c_device/__init__.py +1 -1
- esphome/components/i2s_audio/media_player/__init__.py +6 -8
- esphome/components/iaqcore/sensor.py +2 -2
- esphome/components/ina219/sensor.py +2 -2
- esphome/components/ina226/sensor.py +4 -4
- esphome/components/ina260/sensor.py +4 -4
- esphome/components/ina2xx_base/__init__.py +2 -2
- esphome/components/ina2xx_i2c/sensor.py +1 -1
- esphome/components/ina2xx_spi/sensor.py +1 -1
- esphome/components/ina3221/sensor.py +3 -3
- esphome/components/inkbird_ibsth1_mini/sensor.py +2 -2
- esphome/components/inkplate6/display.py +2 -2
- esphome/components/integration/sensor.py +4 -4
- esphome/components/internal_temperature/sensor.py +5 -7
- esphome/components/interval/__init__.py +1 -1
- esphome/components/jsn_sr04t/sensor.py +3 -3
- esphome/components/kamstrup_kmp/sensor.py +1 -1
- esphome/components/key_collector/__init__.py +2 -2
- esphome/components/kmeteriso/sensor.py +2 -2
- esphome/components/kuntze/sensor.py +5 -5
- esphome/components/lcd_base/__init__.py +2 -2
- esphome/components/lcd_gpio/display.py +4 -4
- esphome/components/lcd_menu/__init__.py +3 -7
- esphome/components/lcd_pcf8574/display.py +1 -1
- esphome/components/ld2410/__init__.py +4 -4
- esphome/components/ld2410/binary_sensor.py +5 -4
- esphome/components/ld2410/button/__init__.py +3 -2
- esphome/components/ld2410/number/__init__.py +5 -4
- esphome/components/ld2410/select/__init__.py +4 -3
- esphome/components/ld2410/sensor.py +6 -5
- esphome/components/ld2410/switch/__init__.py +2 -1
- esphome/components/ld2410/text_sensor.py +3 -2
- esphome/components/ld2420/__init__.py +1 -1
- esphome/components/ld2420/binary_sensor/__init__.py +4 -3
- esphome/components/ld2420/button/__init__.py +3 -2
- esphome/components/ld2420/number/__init__.py +3 -2
- esphome/components/ld2420/select/__init__.py +1 -0
- esphome/components/ld2420/sensor/__init__.py +3 -2
- esphome/components/ld2420/text_sensor/__init__.py +2 -6
- esphome/components/ld2450/__init__.py +2 -5
- esphome/components/ledc/output.py +3 -3
- esphome/components/libretiny/text_sensor.py +1 -1
- esphome/components/libretiny_pwm/output.py +3 -7
- esphome/components/lightwaverf/__init__.py +6 -8
- esphome/components/lilygo_t5_47/touchscreen/__init__.py +2 -3
- esphome/components/ltr390/sensor.py +1 -1
- esphome/components/ltr501/sensor.py +2 -2
- esphome/components/ltr_als_ps/sensor.py +2 -2
- esphome/components/lvgl/__init__.py +9 -12
- esphome/components/lvgl/automation.py +15 -3
- esphome/components/lvgl/defines.py +5 -2
- esphome/components/lvgl/encoders.py +3 -2
- esphome/components/lvgl/lv_validation.py +17 -9
- esphome/components/lvgl/lvcode.py +11 -9
- esphome/components/lvgl/lvgl_esphome.h +21 -0
- esphome/components/lvgl/number/__init__.py +23 -20
- esphome/components/lvgl/number/lvgl_number.h +27 -14
- esphome/components/lvgl/schemas.py +70 -19
- esphome/components/lvgl/select/__init__.py +11 -13
- esphome/components/lvgl/select/lvgl_select.h +25 -18
- esphome/components/lvgl/styles.py +42 -11
- esphome/components/lvgl/trigger.py +10 -1
- esphome/components/lvgl/widgets/__init__.py +1 -2
- esphome/components/lvgl/widgets/buttonmatrix.py +2 -2
- esphome/components/lvgl/widgets/canvas.py +407 -0
- esphome/components/lvgl/widgets/line.py +22 -32
- esphome/components/lvgl/widgets/meter.py +3 -1
- esphome/components/m5stack_8angle/__init__.py +1 -2
- esphome/components/m5stack_8angle/binary_sensor/__init__.py +2 -3
- esphome/components/m5stack_8angle/light/__init__.py +2 -4
- esphome/components/m5stack_8angle/sensor/__init__.py +2 -4
- esphome/components/matrix_keypad/binary_sensor/__init__.py +4 -3
- esphome/components/max31855/sensor.py +1 -1
- esphome/components/max31865/sensor.py +1 -1
- esphome/components/max44009/sensor.py +1 -1
- esphome/components/max6675/sensor.py +1 -1
- esphome/components/max6956/__init__.py +5 -5
- esphome/components/max6956/output/__init__.py +4 -3
- esphome/components/max7219/display.py +1 -1
- esphome/components/max7219digit/display.py +1 -1
- esphome/components/max9611/sensor.py +10 -10
- esphome/components/mcp23008/__init__.py +1 -1
- esphome/components/mcp23016/__init__.py +4 -4
- esphome/components/mcp23017/__init__.py +1 -1
- esphome/components/mcp23s08/__init__.py +1 -1
- esphome/components/mcp23s17/__init__.py +1 -1
- esphome/components/mcp23xxx_base/__init__.py +4 -4
- esphome/components/mcp2515/canbus.py +2 -2
- esphome/components/mcp3008/__init__.py +1 -1
- esphome/components/mcp3008/sensor/__init__.py +4 -4
- esphome/components/mcp3204/__init__.py +1 -1
- esphome/components/mcp3204/sensor/__init__.py +3 -2
- esphome/components/mcp4461/__init__.py +42 -0
- esphome/components/mcp4461/mcp4461.cpp +618 -0
- esphome/components/mcp4461/mcp4461.h +171 -0
- esphome/components/mcp4461/output/__init__.py +60 -0
- esphome/components/mcp4461/output/mcp4461_output.cpp +73 -0
- esphome/components/mcp4461/output/mcp4461_output.h +49 -0
- esphome/components/mcp4725/output.py +2 -2
- esphome/components/mcp4728/__init__.py +1 -1
- esphome/components/mcp4728/output/__init__.py +4 -3
- esphome/components/mcp47a1/output.py +2 -2
- esphome/components/mcp9808/sensor.py +1 -1
- esphome/components/mhz19/sensor.py +4 -4
- esphome/components/micronova/__init__.py +3 -5
- esphome/components/micronova/button/__init__.py +5 -5
- esphome/components/micronova/number/__init__.py +6 -10
- esphome/components/micronova/sensor/__init__.py +6 -6
- esphome/components/micronova/switch/__init__.py +6 -8
- esphome/components/micronova/text_sensor/__init__.py +5 -5
- esphome/components/microphone/__init__.py +2 -4
- esphome/components/midea/climate.py +6 -10
- esphome/components/midea_ir/climate.py +1 -1
- esphome/components/mitsubishi/climate.py +1 -1
- esphome/components/mlx90614/sensor.py +1 -1
- esphome/components/mmc5603/sensor.py +4 -4
- esphome/components/mmc5983/sensor.py +1 -1
- esphome/components/modbus/__init__.py +5 -9
- esphome/components/modbus_controller/__init__.py +1 -1
- esphome/components/monochromatic/light.py +2 -2
- esphome/components/mopeka_ble/__init__.py +1 -1
- esphome/components/mopeka_pro_check/sensor.py +12 -12
- esphome/components/mopeka_std_check/sensor.py +8 -8
- esphome/components/mpl3115a2/sensor.py +1 -1
- esphome/components/mpr121/__init__.py +3 -3
- esphome/components/mpr121/binary_sensor/__init__.py +5 -4
- esphome/components/mpu6050/sensor.py +4 -4
- esphome/components/mpu6886/sensor.py +4 -4
- esphome/components/mqtt_subscribe/sensor/__init__.py +3 -5
- esphome/components/mqtt_subscribe/text_sensor/__init__.py +1 -1
- esphome/components/ms5611/sensor.py +2 -2
- esphome/components/ms8607/sensor.py +1 -1
- esphome/components/my9231/__init__.py +1 -1
- esphome/components/my9231/output.py +2 -1
- esphome/components/nau7802/nau7802.cpp +0 -4
- esphome/components/nau7802/nau7802.h +0 -2
- esphome/components/neopixelbus/_methods.py +11 -9
- esphome/components/neopixelbus/light.py +11 -18
- esphome/components/nextion/binary_sensor/__init__.py +6 -14
- esphome/components/nextion/sensor/__init__.py +7 -10
- esphome/components/nextion/switch/__init__.py +3 -5
- esphome/components/nextion/text_sensor/__init__.py +3 -7
- esphome/components/noblex/climate.py +1 -1
- esphome/components/ntc/sensor.py +1 -1
- esphome/components/opentherm/__init__.py +6 -6
- esphome/components/opentherm/input.py +2 -1
- esphome/components/opentherm/number/__init__.py +5 -4
- esphome/components/opentherm/output/__init__.py +3 -2
- esphome/components/opentherm/schema.py +7 -7
- esphome/components/opentherm/switch/__init__.py +3 -2
- esphome/components/opentherm/validate.py +1 -1
- esphome/components/output/__init__.py +2 -3
- esphome/components/output/button/__init__.py +3 -2
- esphome/components/output/lock/__init__.py +2 -1
- esphome/components/output/switch/__init__.py +2 -1
- esphome/components/partition/light.py +4 -4
- esphome/components/pca6416a/__init__.py +4 -4
- esphome/components/pca9554/__init__.py +4 -4
- esphome/components/pca9685/__init__.py +2 -2
- esphome/components/pca9685/output.py +2 -1
- esphome/components/pcf85063/time.py +2 -3
- esphome/components/pcf8563/time.py +2 -2
- esphome/components/pcf8574/__init__.py +4 -4
- esphome/components/pid/climate.py +2 -2
- esphome/components/pid/sensor/__init__.py +4 -8
- esphome/components/pipsolar/__init__.py +1 -1
- esphome/components/pipsolar/binary_sensor/__init__.py +2 -2
- esphome/components/pipsolar/output/__init__.py +4 -3
- esphome/components/pipsolar/sensor/__init__.py +5 -4
- esphome/components/pipsolar/switch/__init__.py +2 -1
- esphome/components/pipsolar/text_sensor/__init__.py +2 -1
- esphome/components/pm1006/sensor.py +2 -2
- esphome/components/pmsa003i/sensor.py +4 -4
- esphome/components/pmsx003/sensor.py +10 -11
- esphome/components/pmwcs3/sensor.py +5 -5
- esphome/components/pn532/__init__.py +3 -3
- esphome/components/pn532_i2c/__init__.py +1 -1
- esphome/components/pn532_spi/__init__.py +1 -1
- esphome/components/pn7150/__init__.py +2 -2
- esphome/components/pn7150_i2c/__init__.py +1 -1
- esphome/components/pn7160/__init__.py +2 -2
- esphome/components/pn7160_i2c/__init__.py +1 -1
- esphome/components/pn7160_spi/__init__.py +1 -1
- esphome/components/power_supply/__init__.py +1 -1
- esphome/components/prometheus/__init__.py +3 -8
- esphome/components/psram/__init__.py +75 -11
- esphome/components/psram/psram.cpp +18 -7
- esphome/components/pulse_counter/sensor.py +4 -4
- esphome/components/pulse_meter/sensor.py +3 -3
- esphome/components/pulse_width/sensor.py +3 -8
- esphome/components/pvvx_mithermometer/display/__init__.py +1 -1
- esphome/components/pvvx_mithermometer/sensor.py +3 -3
- esphome/components/pylontech/__init__.py +1 -0
- esphome/components/pylontech/sensor/__init__.py +8 -13
- esphome/components/pylontech/text_sensor/__init__.py +2 -7
- esphome/components/pzem004t/sensor.py +3 -3
- esphome/components/pzemac/sensor.py +9 -9
- esphome/components/pzemdc/sensor.py +6 -6
- esphome/components/qmc5883l/sensor.py +5 -5
- esphome/components/qmp6988/sensor.py +3 -3
- esphome/components/qr_code/__init__.py +1 -1
- esphome/components/qspi_dbi/display.py +1 -1
- esphome/components/qspi_dbi/qspi_dbi.cpp +1 -1
- esphome/components/qspi_dbi/qspi_dbi.h +1 -1
- esphome/components/qwiic_pir/binary_sensor.py +2 -5
- esphome/components/radon_eye_ble/__init__.py +1 -1
- esphome/components/radon_eye_rd200/sensor.py +3 -4
- esphome/components/rc522/__init__.py +3 -3
- esphome/components/rc522_i2c/__init__.py +1 -1
- esphome/components/rc522_spi/__init__.py +1 -1
- esphome/components/rdm6300/__init__.py +2 -2
- esphome/components/rdm6300/binary_sensor.py +2 -1
- esphome/components/resistance/sensor.py +2 -2
- esphome/components/restart/button/__init__.py +1 -1
- esphome/components/restart/switch/__init__.py +2 -5
- esphome/components/rf_bridge/__init__.py +3 -3
- esphome/components/rgb/light.py +2 -2
- esphome/components/rgbct/light.py +3 -3
- esphome/components/rgbw/light.py +2 -2
- esphome/components/rgbww/light.py +4 -4
- esphome/components/rotary_encoder/sensor.py +8 -8
- esphome/components/rp2040_pio/__init__.py +0 -1
- esphome/components/rp2040_pio_led_strip/light.py +2 -4
- esphome/components/rp2040_pwm/output.py +3 -7
- esphome/components/rtttl/__init__.py +6 -6
- esphome/components/ruuvi_ble/__init__.py +1 -1
- esphome/components/ruuvitag/sensor.py +15 -15
- esphome/components/safe_mode/__init__.py +2 -3
- esphome/components/safe_mode/button/__init__.py +3 -2
- esphome/components/safe_mode/switch/__init__.py +4 -7
- esphome/components/scd30/sensor.py +5 -6
- esphome/components/scd4x/sensor.py +6 -8
- esphome/components/script/__init__.py +2 -2
- esphome/components/sdl/display.py +3 -3
- esphome/components/sdl/touchscreen/__init__.py +2 -2
- esphome/components/sdm_meter/sensor.py +3 -3
- esphome/components/sdp3x/sensor.py +1 -2
- esphome/components/sds011/sensor.py +4 -4
- esphome/components/seeed_mr24hpc1/__init__.py +1 -1
- esphome/components/seeed_mr24hpc1/binary_sensor.py +2 -5
- esphome/components/seeed_mr24hpc1/button/__init__.py +1 -0
- esphome/components/seeed_mr24hpc1/number/__init__.py +2 -4
- esphome/components/seeed_mr24hpc1/select/__init__.py +2 -3
- esphome/components/seeed_mr24hpc1/sensor.py +1 -0
- esphome/components/seeed_mr24hpc1/switch/__init__.py +2 -4
- esphome/components/seeed_mr24hpc1/text_sensor.py +1 -0
- esphome/components/seeed_mr60bha2/binary_sensor.py +2 -4
- esphome/components/seeed_mr60bha2/sensor.py +1 -1
- esphome/components/seeed_mr60fda2/button/__init__.py +1 -1
- esphome/components/seeed_mr60fda2/select/__init__.py +0 -1
- esphome/components/selec_meter/sensor.py +1 -1
- esphome/components/sen0321/sensor.py +2 -2
- esphome/components/sen21231/sensor.py +1 -1
- esphome/components/senseair/sensor.py +3 -3
- esphome/components/sensirion_common/__init__.py +0 -2
- esphome/components/servo/__init__.py +3 -3
- esphome/components/sfa30/sensor.py +4 -5
- esphome/components/sgp4x/sensor.py +2 -2
- esphome/components/shelly_dimmer/light.py +16 -16
- esphome/components/sht3xd/sensor.py +1 -1
- esphome/components/sht4x/sensor.py +6 -6
- esphome/components/shtcx/sensor.py +1 -1
- esphome/components/shutdown/button/__init__.py +2 -6
- esphome/components/shutdown/switch/__init__.py +2 -5
- esphome/components/sigma_delta_output/output.py +2 -7
- esphome/components/sim800l/__init__.py +3 -7
- esphome/components/sim800l/binary_sensor.py +3 -5
- esphome/components/sim800l/sensor.py +2 -1
- esphome/components/slow_pwm/output.py +4 -5
- esphome/components/sm10bit_base/__init__.py +2 -6
- esphome/components/sm16716/__init__.py +1 -1
- esphome/components/sm16716/output.py +2 -1
- esphome/components/sm2135/__init__.py +2 -6
- esphome/components/sm2135/output.py +2 -1
- esphome/components/sm2235/__init__.py +1 -1
- esphome/components/sm2235/output.py +2 -1
- esphome/components/sm2335/__init__.py +1 -1
- esphome/components/sm2335/output.py +2 -1
- esphome/components/sm300d2/sensor.py +13 -13
- esphome/components/sml/__init__.py +1 -1
- esphome/components/sml/sensor/__init__.py +1 -1
- esphome/components/sml/sml.cpp +8 -6
- esphome/components/sml/sml.h +1 -1
- esphome/components/sml/sml_parser.cpp +16 -18
- esphome/components/sml/sml_parser.h +42 -12
- esphome/components/sml/text_sensor/__init__.py +1 -1
- esphome/components/smt100/sensor.py +5 -6
- esphome/components/sn74hc165/__init__.py +5 -5
- esphome/components/sn74hc595/__init__.py +5 -5
- esphome/components/socket/__init__.py +1 -1
- esphome/components/sonoff_d1/light.py +2 -6
- esphome/components/speaker/media_player/audio_pipeline.cpp +3 -2
- esphome/components/speed/fan/__init__.py +2 -2
- esphome/components/spi/__init__.py +45 -36
- esphome/components/spi/spi.h +1 -0
- esphome/components/spi/spi_esp_idf.cpp +13 -5
- esphome/components/sprinkler/__init__.py +4 -5
- esphome/components/sps30/sensor.py +8 -8
- esphome/components/ssd1306_i2c/display.py +2 -2
- esphome/components/ssd1322_base/__init__.py +2 -2
- esphome/components/ssd1325_base/__init__.py +2 -2
- esphome/components/ssd1327_base/__init__.py +2 -2
- esphome/components/ssd1327_i2c/display.py +1 -1
- esphome/components/ssd1331_base/__init__.py +2 -2
- esphome/components/ssd1351_base/__init__.py +2 -2
- esphome/components/st7567_base/__init__.py +4 -4
- esphome/components/st7567_i2c/display.py +1 -1
- esphome/components/st7920/display.py +2 -2
- esphome/components/statsd/__init__.py +3 -3
- esphome/components/status/binary_sensor.py +2 -5
- esphome/components/status_led/__init__.py +1 -1
- esphome/components/status_led/light/__init__.py +2 -1
- esphome/components/stepper/__init__.py +2 -2
- esphome/components/sts3x/sensor.py +1 -1
- esphome/components/substitutions/__init__.py +2 -2
- esphome/components/sun/__init__.py +4 -4
- esphome/components/sun/sensor/__init__.py +4 -7
- esphome/components/sun/text_sensor/__init__.py +5 -4
- esphome/components/sun_gtil2/__init__.py +1 -1
- esphome/components/sun_gtil2/sensor.py +7 -6
- esphome/components/sun_gtil2/text_sensor.py +3 -2
- esphome/components/sx1509/__init__.py +5 -5
- esphome/components/sx1509/binary_sensor/__init__.py +3 -3
- esphome/components/sx1509/output/__init__.py +4 -3
- esphome/components/t6615/sensor.py +1 -1
- esphome/components/tca9548a/__init__.py +1 -1
- esphome/components/tcl112/climate.py +1 -1
- esphome/components/tcs34725/sensor.py +4 -4
- esphome/components/tee501/sensor.py +1 -1
- esphome/components/teleinfo/__init__.py +1 -1
- esphome/components/teleinfo/sensor/__init__.py +1 -7
- esphome/components/teleinfo/text_sensor/__init__.py +1 -1
- esphome/components/tem3200/sensor.py +1 -2
- esphome/components/template/alarm_control_panel/__init__.py +3 -10
- esphome/components/template/cover/__init__.py +4 -3
- esphome/components/template/datetime/__init__.py +8 -9
- esphome/components/template/event/__init__.py +2 -5
- esphome/components/template/fan/__init__.py +2 -6
- esphome/components/template/lock/__init__.py +3 -2
- esphome/components/template/number/__init__.py +3 -2
- esphome/components/template/output/__init__.py +4 -3
- esphome/components/template/select/__init__.py +3 -2
- esphome/components/template/sensor/__init__.py +4 -7
- esphome/components/template/switch/__init__.py +3 -2
- esphome/components/template/text/__init__.py +4 -3
- esphome/components/template/text_sensor/__init__.py +3 -2
- esphome/components/template/valve/__init__.py +3 -2
- esphome/components/time/real_time_clock.cpp +0 -4
- esphome/components/time/real_time_clock.h +4 -3
- esphome/components/time_based/cover.py +3 -3
- esphome/components/tlc59208f/__init__.py +1 -1
- esphome/components/tlc59208f/output.py +2 -1
- esphome/components/tlc5947/__init__.py +1 -1
- esphome/components/tlc5947/output/__init__.py +2 -1
- esphome/components/tlc5971/__init__.py +2 -8
- esphome/components/tlc5971/output/__init__.py +2 -1
- esphome/components/tm1621/display.py +3 -3
- esphome/components/tm1637/binary_sensor.py +1 -1
- esphome/components/tm1637/display.py +3 -3
- esphome/components/tm1651/__init__.py +4 -4
- esphome/components/tmp102/sensor.py +1 -1
- esphome/components/tmp1075/sensor.py +2 -2
- esphome/components/tmp117/sensor.py +1 -1
- esphome/components/tof10120/sensor.py +2 -2
- esphome/components/tormatic/cover.py +2 -6
- esphome/components/toshiba/climate.py +1 -1
- esphome/components/total_daily_energy/sensor.py +4 -4
- esphome/components/tsl2561/sensor.py +1 -1
- esphome/components/tsl2591/sensor.py +9 -9
- esphome/components/tt21100/binary_sensor/__init__.py +2 -2
- esphome/components/tt21100/touchscreen/__init__.py +2 -3
- esphome/components/ttp229_bsf/__init__.py +2 -2
- esphome/components/ttp229_bsf/binary_sensor.py +3 -2
- esphome/components/ttp229_lsf/__init__.py +1 -1
- esphome/components/ttp229_lsf/binary_sensor.py +3 -2
- esphome/components/tuya/__init__.py +3 -5
- esphome/components/tuya/binary_sensor/__init__.py +2 -2
- esphome/components/tuya/climate/__init__.py +6 -5
- esphome/components/tuya/cover/__init__.py +5 -4
- esphome/components/tuya/fan/__init__.py +3 -2
- esphome/components/tuya/light/__init__.py +9 -8
- esphome/components/tuya/number/__init__.py +6 -5
- esphome/components/tuya/select/__init__.py +4 -3
- esphome/components/tuya/sensor/__init__.py +3 -2
- esphome/components/tuya/switch/__init__.py +3 -2
- esphome/components/tuya/text_sensor/__init__.py +3 -2
- esphome/components/tx20/sensor.py +6 -6
- esphome/components/uart/__init__.py +20 -19
- esphome/components/uart/button/__init__.py +2 -1
- esphome/components/uart/switch/__init__.py +2 -1
- esphome/components/ufire_ise/sensor.py +2 -2
- esphome/components/uln2003/stepper.py +2 -2
- esphome/components/ultrasonic/sensor.py +4 -4
- esphome/components/uponor_smatrix/__init__.py +2 -6
- esphome/components/uponor_smatrix/climate/__init__.py +3 -3
- esphome/components/vbus/__init__.py +1 -1
- esphome/components/vbus/binary_sensor/__init__.py +7 -6
- esphome/components/vbus/sensor/__init__.py +7 -6
- esphome/components/veml3235/sensor.py +1 -1
- esphome/components/veml7700/sensor.py +1 -1
- esphome/components/version/text_sensor.py +2 -6
- esphome/components/vl53l0x/sensor.py +6 -6
- esphome/components/web_server_base/__init__.py +2 -2
- esphome/components/web_server_idf/__init__.py +1 -1
- esphome/components/weikai/__init__.py +1 -1
- esphome/components/whirlpool/climate.py +1 -1
- esphome/components/whynter/climate.py +1 -1
- esphome/components/wireguard/binary_sensor.py +1 -1
- esphome/components/wireguard/sensor.py +2 -5
- esphome/components/wireguard/text_sensor.py +2 -5
- esphome/components/wk2132_i2c/__init__.py +1 -1
- esphome/components/wk2132_spi/__init__.py +1 -2
- esphome/components/wk2168_i2c/__init__.py +3 -8
- esphome/components/wk2168_spi/__init__.py +3 -8
- esphome/components/wk2204_i2c/__init__.py +1 -1
- esphome/components/wk2204_spi/__init__.py +1 -1
- esphome/components/wk2212_i2c/__init__.py +3 -8
- esphome/components/wk2212_spi/__init__.py +3 -8
- esphome/components/wl_134/text_sensor.py +2 -4
- esphome/components/wled/__init__.py +2 -2
- esphome/components/x9c/output.py +4 -4
- esphome/components/xgzp68xx/sensor.py +5 -5
- esphome/components/xiaomi_ble/__init__.py +1 -1
- esphome/components/xiaomi_cgd1/sensor.py +3 -3
- esphome/components/xiaomi_cgdk2/sensor.py +3 -3
- esphome/components/xiaomi_cgg1/sensor.py +2 -2
- esphome/components/xiaomi_cgpr1/binary_sensor.py +6 -6
- esphome/components/xiaomi_gcls002/sensor.py +7 -7
- esphome/components/xiaomi_hhccjcy01/sensor.py +9 -9
- esphome/components/xiaomi_hhccjcy10/sensor.py +9 -9
- esphome/components/xiaomi_hhccpot002/sensor.py +7 -7
- esphome/components/xiaomi_jqjcy01ym/sensor.py +6 -6
- esphome/components/xiaomi_lywsd02/sensor.py +4 -4
- esphome/components/xiaomi_lywsd02mmc/sensor.py +5 -5
- esphome/components/xiaomi_lywsd03mmc/sensor.py +6 -6
- esphome/components/xiaomi_lywsdcgq/sensor.py +5 -5
- esphome/components/xiaomi_mhoc303/sensor.py +4 -4
- esphome/components/xiaomi_mhoc401/sensor.py +6 -6
- esphome/components/xiaomi_miscale/sensor.py +6 -6
- esphome/components/xiaomi_mjyd02yla/binary_sensor.py +8 -8
- esphome/components/xiaomi_mue4094rt/binary_sensor.py +2 -7
- esphome/components/xiaomi_rtcgq02lm/__init__.py +2 -3
- esphome/components/xiaomi_rtcgq02lm/binary_sensor.py +3 -3
- esphome/components/xiaomi_rtcgq02lm/sensor.py +3 -3
- esphome/components/xiaomi_wx08zm/binary_sensor.py +2 -3
- esphome/components/xl9535/__init__.py +2 -2
- esphome/components/yashima/climate.py +1 -1
- esphome/components/zhlt01/climate.py +1 -1
- esphome/components/zio_ultrasonic/sensor.py +2 -5
- esphome/components/zyaura/sensor.py +7 -7
- esphome/config_validation.py +0 -42
- esphome/const.py +3 -1
- esphome/core/__init__.py +0 -1
- esphome/core/component.cpp +3 -1
- esphome/core/component.h +15 -2
- esphome/core/config.py +4 -0
- esphome/core/defines.h +21 -0
- esphome/core/helpers.cpp +6 -7
- esphome/core/scheduler.cpp +34 -67
- esphome/core/scheduler.h +7 -17
- esphome/dashboard/status/mqtt.py +0 -2
- esphome/vscode.py +27 -8
- esphome/yaml_util.py +75 -39
- {esphome-2025.3.3.dist-info → esphome-2025.4.0.dist-info}/METADATA +45 -44
- {esphome-2025.3.3.dist-info → esphome-2025.4.0.dist-info}/RECORD +713 -706
- {esphome-2025.3.3.dist-info → esphome-2025.4.0.dist-info}/WHEEL +1 -1
- {esphome-2025.3.3.dist-info → esphome-2025.4.0.dist-info}/entry_points.txt +0 -0
- {esphome-2025.3.3.dist-info → esphome-2025.4.0.dist-info/licenses}/LICENSE +0 -0
- {esphome-2025.3.3.dist-info → esphome-2025.4.0.dist-info}/top_level.txt +0 -0
esphome/__main__.py
CHANGED
@@ -133,7 +133,7 @@ def get_port_type(port):
|
|
133
133
|
return "NETWORK"
|
134
134
|
|
135
135
|
|
136
|
-
def run_miniterm(config, port):
|
136
|
+
def run_miniterm(config, port, args):
|
137
137
|
import serial
|
138
138
|
|
139
139
|
from esphome import platformio_api
|
@@ -154,7 +154,7 @@ def run_miniterm(config, port):
|
|
154
154
|
|
155
155
|
# We can't set to False by default since it leads to toggling and hence
|
156
156
|
# ESP32 resets on some platforms.
|
157
|
-
if config["logger"][CONF_DEASSERT_RTS_DTR]:
|
157
|
+
if config["logger"][CONF_DEASSERT_RTS_DTR] or args.reset:
|
158
158
|
ser.dtr = False
|
159
159
|
ser.rts = False
|
160
160
|
|
@@ -244,11 +244,11 @@ def compile_program(args, config):
|
|
244
244
|
return 0 if idedata is not None else 1
|
245
245
|
|
246
246
|
|
247
|
-
def upload_using_esptool(config, port, file):
|
247
|
+
def upload_using_esptool(config, port, file, speed):
|
248
248
|
from esphome import platformio_api
|
249
249
|
|
250
|
-
first_baudrate = config[CONF_ESPHOME][CONF_PLATFORMIO_OPTIONS].get(
|
251
|
-
"upload_speed", 460800
|
250
|
+
first_baudrate = speed or config[CONF_ESPHOME][CONF_PLATFORMIO_OPTIONS].get(
|
251
|
+
"upload_speed", os.getenv("ESPHOME_UPLOAD_SPEED", "460800")
|
252
252
|
)
|
253
253
|
|
254
254
|
if file is not None:
|
@@ -348,7 +348,7 @@ def upload_program(config, args, host):
|
|
348
348
|
check_permissions(host)
|
349
349
|
if CORE.target_platform in (PLATFORM_ESP32, PLATFORM_ESP8266):
|
350
350
|
file = getattr(args, "file", None)
|
351
|
-
return upload_using_esptool(config, host, file)
|
351
|
+
return upload_using_esptool(config, host, file, args.upload_speed)
|
352
352
|
|
353
353
|
if CORE.target_platform in (PLATFORM_RP2040):
|
354
354
|
return upload_using_platformio(config, args.device)
|
@@ -375,10 +375,12 @@ def upload_program(config, args, host):
|
|
375
375
|
password = ota_conf.get(CONF_PASSWORD, "")
|
376
376
|
|
377
377
|
if (
|
378
|
-
|
379
|
-
and (get_port_type(host) == "MQTT" or config[CONF_MDNS][CONF_DISABLED])
|
380
|
-
and CONF_MQTT in config
|
378
|
+
CONF_MQTT in config # pylint: disable=too-many-boolean-expressions
|
381
379
|
and (not args.device or args.device in ("MQTT", "OTA"))
|
380
|
+
and (
|
381
|
+
((config[CONF_MDNS][CONF_DISABLED]) and not is_ip_address(CORE.address))
|
382
|
+
or get_port_type(host) == "MQTT"
|
383
|
+
)
|
382
384
|
):
|
383
385
|
from esphome import mqtt
|
384
386
|
|
@@ -397,7 +399,7 @@ def show_logs(config, args, port):
|
|
397
399
|
raise EsphomeError("Logger is not configured!")
|
398
400
|
if get_port_type(port) == "SERIAL":
|
399
401
|
check_permissions(port)
|
400
|
-
return run_miniterm(config, port)
|
402
|
+
return run_miniterm(config, port, args)
|
401
403
|
if get_port_type(port) == "NETWORK" and "api" in config:
|
402
404
|
if config[CONF_MDNS][CONF_DISABLED] and CONF_MQTT in config:
|
403
405
|
from esphome import mqtt
|
@@ -842,6 +844,10 @@ def parse_args(argv):
|
|
842
844
|
"--device",
|
843
845
|
help="Manually specify the serial port/address to use, for example /dev/ttyUSB0.",
|
844
846
|
)
|
847
|
+
parser_upload.add_argument(
|
848
|
+
"--upload_speed",
|
849
|
+
help="Override the default or configured upload speed.",
|
850
|
+
)
|
845
851
|
parser_upload.add_argument(
|
846
852
|
"--file",
|
847
853
|
help="Manually specify the binary file to upload.",
|
@@ -860,6 +866,13 @@ def parse_args(argv):
|
|
860
866
|
"--device",
|
861
867
|
help="Manually specify the serial port/address to use, for example /dev/ttyUSB0.",
|
862
868
|
)
|
869
|
+
parser_logs.add_argument(
|
870
|
+
"--reset",
|
871
|
+
"-r",
|
872
|
+
action="store_true",
|
873
|
+
help="Reset the device before starting serial logs.",
|
874
|
+
default=os.getenv("ESPHOME_SERIAL_LOGGING_RESET"),
|
875
|
+
)
|
863
876
|
|
864
877
|
parser_discover = subparsers.add_parser(
|
865
878
|
"discover",
|
@@ -882,9 +895,20 @@ def parse_args(argv):
|
|
882
895
|
"--device",
|
883
896
|
help="Manually specify the serial port/address to use, for example /dev/ttyUSB0.",
|
884
897
|
)
|
898
|
+
parser_run.add_argument(
|
899
|
+
"--upload_speed",
|
900
|
+
help="Override the default or configured upload speed.",
|
901
|
+
)
|
885
902
|
parser_run.add_argument(
|
886
903
|
"--no-logs", help="Disable starting logs.", action="store_true"
|
887
904
|
)
|
905
|
+
parser_run.add_argument(
|
906
|
+
"--reset",
|
907
|
+
"-r",
|
908
|
+
action="store_true",
|
909
|
+
help="Reset the device before starting serial logs.",
|
910
|
+
default=os.getenv("ESPHOME_SERIAL_LOGGING_RESET"),
|
911
|
+
)
|
888
912
|
|
889
913
|
parser_clean = subparsers.add_parser(
|
890
914
|
"clean-mqtt",
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
2
|
from esphome.components import sensor, uart
|
3
3
|
from esphome.const import (
|
4
|
+
DEVICE_CLASS_DISTANCE,
|
5
|
+
ICON_ARROW_EXPAND_VERTICAL,
|
4
6
|
STATE_CLASS_MEASUREMENT,
|
5
7
|
UNIT_METER,
|
6
|
-
ICON_ARROW_EXPAND_VERTICAL,
|
7
|
-
DEVICE_CLASS_DISTANCE,
|
8
8
|
)
|
9
9
|
|
10
10
|
CODEOWNERS = ["@MrSuicideParrot"]
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
2
|
from esphome.components import sensor, uart
|
3
3
|
from esphome.const import (
|
4
|
-
STATE_CLASS_MEASUREMENT,
|
5
|
-
ICON_ARROW_EXPAND_VERTICAL,
|
6
4
|
DEVICE_CLASS_DISTANCE,
|
5
|
+
ICON_ARROW_EXPAND_VERTICAL,
|
6
|
+
STATE_CLASS_MEASUREMENT,
|
7
7
|
UNIT_MILLIMETER,
|
8
8
|
)
|
9
9
|
|
@@ -1,10 +1,9 @@
|
|
1
1
|
from esphome import pins
|
2
|
+
import esphome.codegen as cg
|
2
3
|
from esphome.components import stepper
|
3
4
|
import esphome.config_validation as cv
|
4
|
-
import esphome.codegen as cg
|
5
5
|
from esphome.const import CONF_DIR_PIN, CONF_ID, CONF_SLEEP_PIN, CONF_STEP_PIN
|
6
6
|
|
7
|
-
|
8
7
|
a4988_ns = cg.esphome_ns.namespace("a4988")
|
9
8
|
A4988 = a4988_ns.class_("A4988", stepper.Stepper, cg.Component)
|
10
9
|
|
@@ -1,12 +1,12 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
2
|
from esphome.components import sensor
|
3
|
+
import esphome.config_validation as cv
|
4
4
|
from esphome.const import (
|
5
|
+
CONF_EQUATION,
|
5
6
|
CONF_HUMIDITY,
|
6
7
|
CONF_TEMPERATURE,
|
7
|
-
STATE_CLASS_MEASUREMENT,
|
8
|
-
CONF_EQUATION,
|
9
8
|
ICON_WATER,
|
9
|
+
STATE_CLASS_MEASUREMENT,
|
10
10
|
UNIT_GRAMS_PER_CUBIC_METER,
|
11
11
|
)
|
12
12
|
|
@@ -1,8 +1,8 @@
|
|
1
|
-
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
1
|
from esphome import pins
|
2
|
+
import esphome.codegen as cg
|
4
3
|
from esphome.components import output
|
5
|
-
|
4
|
+
import esphome.config_validation as cv
|
5
|
+
from esphome.const import CONF_ID, CONF_METHOD, CONF_MIN_POWER
|
6
6
|
|
7
7
|
CODEOWNERS = ["@glmnet"]
|
8
8
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
2
|
from esphome.components import uart
|
4
|
-
from esphome.components.light.types import AddressableLightEffect
|
5
3
|
from esphome.components.light.effects import register_addressable_effect
|
4
|
+
from esphome.components.light.types import AddressableLightEffect
|
5
|
+
import esphome.config_validation as cv
|
6
6
|
from esphome.const import CONF_NAME, CONF_UART_ID
|
7
7
|
|
8
8
|
DEPENDENCIES = ["uart"]
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
2
|
from esphome.components import sensor, voltage_sampler
|
4
|
-
|
3
|
+
import esphome.config_validation as cv
|
4
|
+
from esphome.const import CONF_CHANNEL, CONF_ID
|
5
5
|
|
6
|
-
from .. import
|
6
|
+
from .. import ADC128S102, adc128s102_ns
|
7
7
|
|
8
8
|
AUTO_LOAD = ["voltage_sampler"]
|
9
9
|
DEPENDENCIES = ["adc128s102"]
|
@@ -1,15 +1,15 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
2
|
from esphome.components import display, light
|
3
|
+
import esphome.config_validation as cv
|
4
4
|
from esphome.const import (
|
5
|
+
CONF_ADDRESSABLE_LIGHT_ID,
|
6
|
+
CONF_HEIGHT,
|
5
7
|
CONF_ID,
|
6
8
|
CONF_LAMBDA,
|
7
9
|
CONF_PAGES,
|
8
|
-
CONF_ADDRESSABLE_LIGHT_ID,
|
9
|
-
CONF_HEIGHT,
|
10
|
-
CONF_WIDTH,
|
11
|
-
CONF_UPDATE_INTERVAL,
|
12
10
|
CONF_PIXEL_MAPPER,
|
11
|
+
CONF_UPDATE_INTERVAL,
|
12
|
+
CONF_WIDTH,
|
13
13
|
)
|
14
14
|
|
15
15
|
CODEOWNERS = ["@justfalter"]
|
@@ -1,7 +1,7 @@
|
|
1
|
+
from esphome import pins
|
1
2
|
import esphome.codegen as cg
|
3
|
+
from esphome.components import i2c, sensor
|
2
4
|
import esphome.config_validation as cv
|
3
|
-
from esphome.components import sensor, i2c
|
4
|
-
from esphome import pins
|
5
5
|
from esphome.const import (
|
6
6
|
CONF_ACTIVE_POWER,
|
7
7
|
CONF_APPARENT_POWER,
|
@@ -1,27 +1,27 @@
|
|
1
|
+
from esphome import pins
|
1
2
|
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
3
|
from esphome.components import sensor
|
4
|
-
|
4
|
+
import esphome.config_validation as cv
|
5
5
|
from esphome.const import (
|
6
|
+
CONF_FREQUENCY,
|
6
7
|
CONF_IRQ_PIN,
|
7
8
|
CONF_VOLTAGE,
|
8
|
-
CONF_FREQUENCY,
|
9
9
|
CONF_VOLTAGE_GAIN,
|
10
|
-
DEVICE_CLASS_CURRENT,
|
11
10
|
DEVICE_CLASS_APPARENT_POWER,
|
11
|
+
DEVICE_CLASS_CURRENT,
|
12
|
+
DEVICE_CLASS_FREQUENCY,
|
12
13
|
DEVICE_CLASS_POWER,
|
13
|
-
DEVICE_CLASS_REACTIVE_POWER,
|
14
14
|
DEVICE_CLASS_POWER_FACTOR,
|
15
|
+
DEVICE_CLASS_REACTIVE_POWER,
|
15
16
|
DEVICE_CLASS_VOLTAGE,
|
16
|
-
DEVICE_CLASS_FREQUENCY,
|
17
17
|
STATE_CLASS_MEASUREMENT,
|
18
|
-
UNIT_VOLT,
|
19
|
-
UNIT_HERTZ,
|
20
18
|
UNIT_AMPERE,
|
19
|
+
UNIT_HERTZ,
|
20
|
+
UNIT_PERCENT,
|
21
|
+
UNIT_VOLT,
|
21
22
|
UNIT_VOLT_AMPS,
|
22
|
-
UNIT_WATT,
|
23
23
|
UNIT_VOLT_AMPS_REACTIVE,
|
24
|
-
|
24
|
+
UNIT_WATT,
|
25
25
|
)
|
26
26
|
|
27
27
|
CONF_CURRENT_A = "current_a"
|
@@ -1,9 +1,8 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
+
from esphome.components import ade7953_base, i2c
|
2
3
|
import esphome.config_validation as cv
|
3
|
-
from esphome.components import i2c, ade7953_base
|
4
4
|
from esphome.const import CONF_ID
|
5
5
|
|
6
|
-
|
7
6
|
DEPENDENCIES = ["i2c"]
|
8
7
|
AUTO_LOAD = ["ade7953_base"]
|
9
8
|
|
@@ -1,9 +1,8 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
+
from esphome.components import ade7953_base, spi
|
2
3
|
import esphome.config_validation as cv
|
3
|
-
from esphome.components import spi, ade7953_base
|
4
4
|
from esphome.const import CONF_ID
|
5
5
|
|
6
|
-
|
7
6
|
DEPENDENCIES = ["spi"]
|
8
7
|
AUTO_LOAD = ["ade7953_base"]
|
9
8
|
|
@@ -1,17 +1,18 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
2
|
from esphome.components import sensor, voltage_sampler
|
3
|
+
import esphome.config_validation as cv
|
4
4
|
from esphome.const import (
|
5
5
|
CONF_GAIN,
|
6
|
+
CONF_ID,
|
6
7
|
CONF_MULTIPLEXER,
|
7
8
|
CONF_RESOLUTION,
|
8
9
|
CONF_SAMPLE_RATE,
|
9
10
|
DEVICE_CLASS_VOLTAGE,
|
10
11
|
STATE_CLASS_MEASUREMENT,
|
11
12
|
UNIT_VOLT,
|
12
|
-
CONF_ID,
|
13
13
|
)
|
14
|
-
|
14
|
+
|
15
|
+
from .. import CONF_ADS1115_ID, ADS1115Component, ads1115_ns
|
15
16
|
|
16
17
|
AUTO_LOAD = ["voltage_sampler"]
|
17
18
|
DEPENDENCIES = ["ads1115"]
|
@@ -1,17 +1,18 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
2
|
from esphome.components import sensor, voltage_sampler
|
3
|
+
import esphome.config_validation as cv
|
4
4
|
from esphome.const import (
|
5
5
|
CONF_GAIN,
|
6
6
|
CONF_MULTIPLEXER,
|
7
|
-
|
7
|
+
CONF_TYPE,
|
8
8
|
DEVICE_CLASS_TEMPERATURE,
|
9
|
+
DEVICE_CLASS_VOLTAGE,
|
9
10
|
STATE_CLASS_MEASUREMENT,
|
10
11
|
UNIT_CELSIUS,
|
11
12
|
UNIT_VOLT,
|
12
|
-
CONF_TYPE,
|
13
13
|
)
|
14
|
-
|
14
|
+
|
15
|
+
from .. import ADS1118, CONF_ADS1118_ID, ads1118_ns
|
15
16
|
|
16
17
|
AUTO_LOAD = ["voltage_sampler"]
|
17
18
|
DEPENDENCIES = ["ads1118"]
|
@@ -1,21 +1,21 @@
|
|
1
|
-
import esphome.codegen as cg
|
2
1
|
from esphome import automation
|
3
|
-
import esphome.
|
2
|
+
import esphome.codegen as cg
|
4
3
|
from esphome.components import i2c, sensor
|
4
|
+
import esphome.config_validation as cv
|
5
5
|
from esphome.const import (
|
6
|
+
CONF_ADDRESS,
|
6
7
|
CONF_ID,
|
7
|
-
|
8
|
-
|
8
|
+
CONF_MODE,
|
9
|
+
CONF_TVOC,
|
10
|
+
CONF_VALUE,
|
11
|
+
CONF_VERSION,
|
9
12
|
DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS_PARTS,
|
10
13
|
ENTITY_CATEGORY_DIAGNOSTIC,
|
14
|
+
ICON_RADIATOR,
|
15
|
+
ICON_RESTART,
|
11
16
|
STATE_CLASS_MEASUREMENT,
|
12
17
|
UNIT_OHM,
|
13
18
|
UNIT_PARTS_PER_BILLION,
|
14
|
-
CONF_ADDRESS,
|
15
|
-
CONF_TVOC,
|
16
|
-
CONF_VERSION,
|
17
|
-
CONF_MODE,
|
18
|
-
CONF_VALUE,
|
19
19
|
)
|
20
20
|
|
21
21
|
CONF_RESISTANCE = "resistance"
|
@@ -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_HUMIDITY,
|
6
6
|
CONF_ID,
|
7
7
|
CONF_TEMPERATURE,
|
8
|
+
CONF_VARIANT,
|
8
9
|
DEVICE_CLASS_HUMIDITY,
|
9
10
|
DEVICE_CLASS_TEMPERATURE,
|
10
11
|
STATE_CLASS_MEASUREMENT,
|
11
12
|
UNIT_CELSIUS,
|
12
13
|
UNIT_PERCENT,
|
13
|
-
CONF_VARIANT,
|
14
14
|
)
|
15
15
|
|
16
16
|
DEPENDENCIES = ["i2c"]
|
@@ -1,18 +1,17 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
+
from esphome.components import ble_client, sensor
|
2
3
|
import esphome.config_validation as cv
|
3
|
-
from esphome.components import sensor, ble_client
|
4
|
-
|
5
4
|
from esphome.const import (
|
6
5
|
CONF_BATTERY_VOLTAGE,
|
7
6
|
CONF_HUMIDITY,
|
8
7
|
CONF_PRESSURE,
|
9
8
|
CONF_TEMPERATURE,
|
10
9
|
CONF_TVOC,
|
11
|
-
DEVICE_CLASS_VOLTAGE,
|
12
10
|
DEVICE_CLASS_HUMIDITY,
|
13
11
|
DEVICE_CLASS_PRESSURE,
|
14
12
|
DEVICE_CLASS_TEMPERATURE,
|
15
13
|
DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS_PARTS,
|
14
|
+
DEVICE_CLASS_VOLTAGE,
|
16
15
|
ENTITY_CATEGORY_DIAGNOSTIC,
|
17
16
|
STATE_CLASS_MEASUREMENT,
|
18
17
|
UNIT_CELSIUS,
|
@@ -1,10 +1,7 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
2
|
from esphome.components import airthings_wave_base
|
4
|
-
|
5
|
-
from esphome.const import
|
6
|
-
CONF_ID,
|
7
|
-
)
|
3
|
+
import esphome.config_validation as cv
|
4
|
+
from esphome.const import CONF_ID
|
8
5
|
|
9
6
|
DEPENDENCIES = airthings_wave_base.DEPENDENCIES
|
10
7
|
|
@@ -1,20 +1,19 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
+
from esphome.components import airthings_wave_base, sensor
|
2
3
|
import esphome.config_validation as cv
|
3
|
-
from esphome.components import sensor, airthings_wave_base
|
4
|
-
|
5
4
|
from esphome.const import (
|
6
|
-
|
7
|
-
STATE_CLASS_MEASUREMENT,
|
8
|
-
ICON_RADIOACTIVE,
|
5
|
+
CONF_CO2,
|
9
6
|
CONF_ID,
|
7
|
+
CONF_ILLUMINANCE,
|
10
8
|
CONF_RADON,
|
11
9
|
CONF_RADON_LONG_TERM,
|
12
|
-
|
10
|
+
DEVICE_CLASS_CARBON_DIOXIDE,
|
11
|
+
DEVICE_CLASS_ILLUMINANCE,
|
12
|
+
ICON_RADIOACTIVE,
|
13
|
+
STATE_CLASS_MEASUREMENT,
|
13
14
|
UNIT_BECQUEREL_PER_CUBIC_METER,
|
14
|
-
UNIT_PARTS_PER_MILLION,
|
15
|
-
CONF_ILLUMINANCE,
|
16
15
|
UNIT_LUX,
|
17
|
-
|
16
|
+
UNIT_PARTS_PER_MILLION,
|
18
17
|
)
|
19
18
|
|
20
19
|
DEPENDENCIES = airthings_wave_base.DEPENDENCIES
|
@@ -1,20 +1,20 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
+
from esphome.components import ble_client, sensor
|
2
3
|
import esphome.config_validation as cv
|
3
|
-
from esphome.components import sensor, ble_client
|
4
4
|
from esphome.const import (
|
5
|
-
CONF_ID,
|
6
5
|
CONF_CURRENT,
|
7
6
|
CONF_FLOW,
|
8
7
|
CONF_HEAD,
|
8
|
+
CONF_ID,
|
9
9
|
CONF_POWER,
|
10
10
|
CONF_SPEED,
|
11
11
|
CONF_VOLTAGE,
|
12
12
|
UNIT_AMPERE,
|
13
|
-
UNIT_VOLT,
|
14
|
-
UNIT_WATT,
|
15
|
-
UNIT_METER,
|
16
13
|
UNIT_CUBIC_METER_PER_HOUR,
|
14
|
+
UNIT_METER,
|
17
15
|
UNIT_REVOLUTIONS_PER_MINUTE,
|
16
|
+
UNIT_VOLT,
|
17
|
+
UNIT_WATT,
|
18
18
|
)
|
19
19
|
|
20
20
|
alpha3_ns = cg.esphome_ns.namespace("alpha3")
|
@@ -128,7 +128,7 @@ void AM2315C::update() {
|
|
128
128
|
data[2] = 0x00;
|
129
129
|
if (this->write(data, 3) != i2c::ERROR_OK) {
|
130
130
|
ESP_LOGE(TAG, "Write failed!");
|
131
|
-
this->
|
131
|
+
this->status_set_warning();
|
132
132
|
return;
|
133
133
|
}
|
134
134
|
|
@@ -138,12 +138,12 @@ void AM2315C::update() {
|
|
138
138
|
uint8_t status = 0;
|
139
139
|
if (this->read(&status, 1) != i2c::ERROR_OK) {
|
140
140
|
ESP_LOGE(TAG, "Read failed!");
|
141
|
-
this->
|
141
|
+
this->status_set_warning();
|
142
142
|
return;
|
143
143
|
}
|
144
144
|
if ((status & 0x80) == 0x80) {
|
145
145
|
ESP_LOGE(TAG, "HW still busy!");
|
146
|
-
this->
|
146
|
+
this->status_set_warning();
|
147
147
|
return;
|
148
148
|
}
|
149
149
|
|
@@ -151,7 +151,7 @@ void AM2315C::update() {
|
|
151
151
|
uint8_t data[7];
|
152
152
|
if (this->read(data, 7) != i2c::ERROR_OK) {
|
153
153
|
ESP_LOGE(TAG, "Read failed!");
|
154
|
-
this->
|
154
|
+
this->status_set_warning();
|
155
155
|
return;
|
156
156
|
}
|
157
157
|
|
@@ -1,12 +1,12 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
+
from esphome.components import ble_client, sensor
|
2
3
|
import esphome.config_validation as cv
|
3
|
-
from esphome.components import sensor, ble_client
|
4
4
|
from esphome.const import (
|
5
|
-
CONF_ID,
|
6
5
|
CONF_BATTERY_LEVEL,
|
6
|
+
CONF_ID,
|
7
|
+
CONF_ILLUMINANCE,
|
7
8
|
DEVICE_CLASS_BATTERY,
|
8
9
|
ENTITY_CATEGORY_DIAGNOSTIC,
|
9
|
-
CONF_ILLUMINANCE,
|
10
10
|
ICON_BRIGHTNESS_5,
|
11
11
|
UNIT_PERCENT,
|
12
12
|
)
|
@@ -1,10 +1,7 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
2
|
from esphome.components import binary_sensor, sensor
|
4
|
-
|
5
|
-
|
6
|
-
CONF_THRESHOLD,
|
7
|
-
)
|
3
|
+
import esphome.config_validation as cv
|
4
|
+
from esphome.const import CONF_SENSOR_ID, CONF_THRESHOLD
|
8
5
|
|
9
6
|
analog_threshold_ns = cg.esphome_ns.namespace("analog_threshold")
|
10
7
|
|
@@ -2,8 +2,8 @@
|
|
2
2
|
# https://www.mouser.ca/datasheet/2/678/AVGO_S_A0002854364_1-2574547.pdf
|
3
3
|
|
4
4
|
import esphome.codegen as cg
|
5
|
-
import esphome.config_validation as cv
|
6
5
|
from esphome.components import i2c, sensor
|
6
|
+
import esphome.config_validation as cv
|
7
7
|
from esphome.const import (
|
8
8
|
CONF_GAIN,
|
9
9
|
DEVICE_CLASS_ILLUMINANCE,
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
2
|
from esphome.components import binary_sensor
|
3
|
+
import esphome.config_validation as cv
|
4
4
|
from esphome.const import CONF_DIRECTION, DEVICE_CLASS_MOVING
|
5
|
+
|
5
6
|
from . import APDS9960, CONF_APDS9960_ID
|
6
7
|
|
7
8
|
DEPENDENCIES = ["apds9960"]
|