esphome 2025.3.2__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/display/display.cpp +2 -2
- 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/switch/__init__.py +13 -8
- esphome/components/lvgl/switch/lvgl_switch.h +5 -16
- 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/mdns/__init__.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/speaker/media_player/speaker_media_player.cpp +47 -12
- 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.2.dist-info → esphome-2025.4.0.dist-info}/METADATA +45 -44
- {esphome-2025.3.2.dist-info → esphome-2025.4.0.dist-info}/RECORD +718 -711
- {esphome-2025.3.2.dist-info → esphome-2025.4.0.dist-info}/WHEEL +1 -1
- {esphome-2025.3.2.dist-info → esphome-2025.4.0.dist-info}/entry_points.txt +0 -0
- {esphome-2025.3.2.dist-info → esphome-2025.4.0.dist-info/licenses}/LICENSE +0 -0
- {esphome-2025.3.2.dist-info → esphome-2025.4.0.dist-info}/top_level.txt +0 -0
@@ -1,12 +1,13 @@
|
|
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
5
|
CONF_TYPE,
|
6
|
+
ICON_LIGHTBULB,
|
6
7
|
STATE_CLASS_MEASUREMENT,
|
7
8
|
UNIT_PERCENT,
|
8
|
-
ICON_LIGHTBULB,
|
9
9
|
)
|
10
|
+
|
10
11
|
from . import APDS9960, CONF_APDS9960_ID
|
11
12
|
|
12
13
|
DEPENDENCIES = ["apds9960"]
|
@@ -311,6 +311,10 @@ APIError APINoiseFrameHelper::state_action_() {
|
|
311
311
|
const std::string &name = App.get_name();
|
312
312
|
const uint8_t *name_ptr = reinterpret_cast<const uint8_t *>(name.c_str());
|
313
313
|
msg.insert(msg.end(), name_ptr, name_ptr + name.size() + 1);
|
314
|
+
// node mac, terminated by null byte
|
315
|
+
const std::string &mac = get_mac_address();
|
316
|
+
const uint8_t *mac_ptr = reinterpret_cast<const uint8_t *>(mac.c_str());
|
317
|
+
msg.insert(msg.end(), mac_ptr, mac_ptr + mac.size() + 1);
|
314
318
|
|
315
319
|
aerr = write_frame_(msg.data(), msg.size());
|
316
320
|
if (aerr != APIError::OK)
|
@@ -893,8 +897,28 @@ APIError APIPlaintextFrameHelper::read_packet(ReadPacketBuffer *buffer) {
|
|
893
897
|
|
894
898
|
ParsedFrame frame;
|
895
899
|
aerr = try_read_frame_(&frame);
|
896
|
-
if (aerr != APIError::OK)
|
900
|
+
if (aerr != APIError::OK) {
|
901
|
+
if (aerr == APIError::BAD_INDICATOR) {
|
902
|
+
// Make sure to tell the remote that we don't
|
903
|
+
// understand the indicator byte so it knows
|
904
|
+
// we do not support it.
|
905
|
+
struct iovec iov[1];
|
906
|
+
// The \x00 first byte is the marker for plaintext.
|
907
|
+
//
|
908
|
+
// The remote will know how to handle the indicator byte,
|
909
|
+
// but it likely won't understand the rest of the message.
|
910
|
+
//
|
911
|
+
// We must send at least 3 bytes to be read, so we add
|
912
|
+
// a message after the indicator byte to ensures its long
|
913
|
+
// enough and can aid in debugging.
|
914
|
+
const char msg[] = "\x00"
|
915
|
+
"Bad indicator byte";
|
916
|
+
iov[0].iov_base = (void *) msg;
|
917
|
+
iov[0].iov_len = 19;
|
918
|
+
write_raw_(iov, 1);
|
919
|
+
}
|
897
920
|
return aerr;
|
921
|
+
}
|
898
922
|
|
899
923
|
buffer->container = std::move(frame.msg);
|
900
924
|
buffer->data_offset = 0;
|
@@ -1,17 +1,17 @@
|
|
1
|
+
from esphome import pins
|
1
2
|
import esphome.codegen as cg
|
2
3
|
import esphome.config_validation as cv
|
3
|
-
from esphome import pins
|
4
4
|
from esphome.const import (
|
5
|
+
CONF_CALIBRATION,
|
5
6
|
CONF_CAPACITANCE,
|
6
7
|
CONF_DIV_RATIO,
|
7
8
|
CONF_INDOOR,
|
8
9
|
CONF_IRQ_PIN,
|
9
10
|
CONF_LIGHTNING_THRESHOLD,
|
10
11
|
CONF_MASK_DISTURBER,
|
11
|
-
CONF_CALIBRATION,
|
12
|
-
CONF_TUNE_ANTENNA,
|
13
12
|
CONF_NOISE_LEVEL,
|
14
13
|
CONF_SPIKE_REJECTION,
|
14
|
+
CONF_TUNE_ANTENNA,
|
15
15
|
CONF_WATCHDOG_THRESHOLD,
|
16
16
|
)
|
17
17
|
|
@@ -1,13 +1,14 @@
|
|
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
5
|
CONF_DISTANCE,
|
6
6
|
CONF_LIGHTNING_ENERGY,
|
7
|
-
UNIT_KILOMETER,
|
8
|
-
ICON_SIGNAL_DISTANCE_VARIANT,
|
9
7
|
ICON_FLASH,
|
8
|
+
ICON_SIGNAL_DISTANCE_VARIANT,
|
9
|
+
UNIT_KILOMETER,
|
10
10
|
)
|
11
|
+
|
11
12
|
from . import AS3935, CONF_AS3935_ID
|
12
13
|
|
13
14
|
DEPENDENCIES = ["as3935"]
|
@@ -1,12 +1,12 @@
|
|
1
1
|
from esphome import pins
|
2
2
|
import esphome.codegen as cg
|
3
|
-
import esphome.config_validation as cv
|
4
3
|
from esphome.components import i2c
|
4
|
+
import esphome.config_validation as cv
|
5
5
|
from esphome.const import (
|
6
|
-
CONF_ID,
|
7
6
|
CONF_DIR_PIN,
|
8
7
|
CONF_DIRECTION,
|
9
8
|
CONF_HYSTERESIS,
|
9
|
+
CONF_ID,
|
10
10
|
CONF_RANGE,
|
11
11
|
)
|
12
12
|
|
@@ -1,19 +1,20 @@
|
|
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
|
-
|
6
|
-
STATE_CLASS_MEASUREMENT,
|
7
|
-
ICON_MAGNET,
|
8
|
-
ICON_ROTATE_RIGHT,
|
5
|
+
CONF_ANGLE,
|
9
6
|
CONF_GAIN,
|
10
|
-
|
7
|
+
CONF_ID,
|
11
8
|
CONF_MAGNITUDE,
|
12
|
-
CONF_STATUS,
|
13
9
|
CONF_POSITION,
|
14
|
-
|
10
|
+
CONF_STATUS,
|
11
|
+
ENTITY_CATEGORY_DIAGNOSTIC,
|
12
|
+
ICON_MAGNET,
|
13
|
+
ICON_ROTATE_RIGHT,
|
14
|
+
STATE_CLASS_MEASUREMENT,
|
15
15
|
)
|
16
|
-
|
16
|
+
|
17
|
+
from .. import AS5600Component, as5600_ns
|
17
18
|
|
18
19
|
CODEOWNERS = ["@ammmze"]
|
19
20
|
DEPENDENCIES = ["as5600"]
|
@@ -1,6 +1,6 @@
|
|
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_GAIN,
|
6
6
|
CONF_ID,
|
@@ -9,7 +9,6 @@ from esphome.const import (
|
|
9
9
|
STATE_CLASS_MEASUREMENT,
|
10
10
|
)
|
11
11
|
|
12
|
-
|
13
12
|
CODEOWNERS = ["@mrgnr"]
|
14
13
|
DEPENDENCIES = ["i2c"]
|
15
14
|
|
@@ -1,13 +1,9 @@
|
|
1
|
-
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
1
|
from esphome import automation, core
|
4
|
-
from esphome.components import i2c
|
5
2
|
from esphome.automation import maybe_simple_id
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
3
|
+
import esphome.codegen as cg
|
4
|
+
from esphome.components import i2c
|
5
|
+
import esphome.config_validation as cv
|
6
|
+
from esphome.const import CONF_FREQUENCY, CONF_ID
|
11
7
|
|
12
8
|
CODEOWNERS = ["@X-Ryl669"]
|
13
9
|
DEPENDENCIES = ["i2c"]
|
@@ -1,10 +1,8 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
2
|
from esphome.components import switch
|
3
3
|
import esphome.config_validation as cv
|
4
|
-
from esphome.const import
|
5
|
-
|
6
|
-
ICON_WIFI,
|
7
|
-
)
|
4
|
+
from esphome.const import DEVICE_CLASS_SWITCH, ICON_WIFI
|
5
|
+
|
8
6
|
from .. import CONF_AT581X_ID, AT581XComponent, at581x_ns
|
9
7
|
|
10
8
|
DEPENDENCIES = ["at581x"]
|
@@ -1,14 +1,14 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
+
from esphome.components import esp32_ble_tracker, sensor
|
2
3
|
import esphome.config_validation as cv
|
3
|
-
from esphome.components import sensor, esp32_ble_tracker
|
4
4
|
from esphome.const import (
|
5
5
|
CONF_BATTERY_LEVEL,
|
6
6
|
CONF_BATTERY_VOLTAGE,
|
7
|
-
CONF_MAC_ADDRESS,
|
8
7
|
CONF_HUMIDITY,
|
8
|
+
CONF_ID,
|
9
|
+
CONF_MAC_ADDRESS,
|
9
10
|
CONF_SIGNAL_STRENGTH,
|
10
11
|
CONF_TEMPERATURE,
|
11
|
-
CONF_ID,
|
12
12
|
DEVICE_CLASS_BATTERY,
|
13
13
|
DEVICE_CLASS_HUMIDITY,
|
14
14
|
DEVICE_CLASS_SIGNAL_STRENGTH,
|
@@ -30,8 +30,12 @@ void AXS15231Touchscreen::setup() {
|
|
30
30
|
this->interrupt_pin_->setup();
|
31
31
|
this->attach_interrupt_(this->interrupt_pin_, gpio::INTERRUPT_FALLING_EDGE);
|
32
32
|
}
|
33
|
-
this->x_raw_max_
|
34
|
-
|
33
|
+
if (this->x_raw_max_ == 0) {
|
34
|
+
this->x_raw_max_ = this->display_->get_native_width();
|
35
|
+
}
|
36
|
+
if (this->y_raw_max_ == 0) {
|
37
|
+
this->y_raw_max_ = this->display_->get_native_height();
|
38
|
+
}
|
35
39
|
ESP_LOGCONFIG(TAG, "AXS15231 Touchscreen setup complete");
|
36
40
|
}
|
37
41
|
|
@@ -44,7 +48,7 @@ void AXS15231Touchscreen::update_touches() {
|
|
44
48
|
err = this->read(data, sizeof(data));
|
45
49
|
ERROR_CHECK(err);
|
46
50
|
this->status_clear_warning();
|
47
|
-
if (data[0] != 0) // no touches
|
51
|
+
if (data[0] != 0 || data[1] == 0) // no touches
|
48
52
|
return;
|
49
53
|
uint16_t x = encode_uint16(data[2] & 0xF, data[3]);
|
50
54
|
uint16_t y = encode_uint16(data[4] & 0xF, data[5]);
|
@@ -1,13 +1,13 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
+
from esphome.components import esp32_ble_tracker, sensor
|
2
3
|
import esphome.config_validation as cv
|
3
|
-
from esphome.components import sensor, esp32_ble_tracker
|
4
4
|
from esphome.const import (
|
5
5
|
CONF_BATTERY_VOLTAGE,
|
6
6
|
CONF_HUMIDITY,
|
7
7
|
CONF_ID,
|
8
8
|
CONF_ILLUMINANCE,
|
9
|
-
CONF_MOISTURE,
|
10
9
|
CONF_MAC_ADDRESS,
|
10
|
+
CONF_MOISTURE,
|
11
11
|
CONF_TEMPERATURE,
|
12
12
|
DEVICE_CLASS_HUMIDITY,
|
13
13
|
DEVICE_CLASS_ILLUMINANCE,
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
1
|
from esphome import automation
|
2
|
+
import esphome.codegen as cg
|
4
3
|
from esphome.components import climate, sensor
|
4
|
+
import esphome.config_validation as cv
|
5
5
|
from esphome.const import (
|
6
6
|
CONF_AWAY_CONFIG,
|
7
7
|
CONF_COOL_ACTION,
|
@@ -1,11 +1,7 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
2
|
from esphome.components import ble_client, time
|
4
|
-
|
5
|
-
|
6
|
-
CONF_RECEIVE_TIMEOUT,
|
7
|
-
CONF_TIME_ID,
|
8
|
-
)
|
3
|
+
import esphome.config_validation as cv
|
4
|
+
from esphome.const import CONF_ID, CONF_RECEIVE_TIMEOUT, CONF_TIME_ID
|
9
5
|
|
10
6
|
CODEOWNERS = ["@jhansche"]
|
11
7
|
DEPENDENCIES = ["ble_client"]
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import logging
|
2
2
|
|
3
3
|
import esphome.codegen as cg
|
4
|
+
from esphome.components import ble_client, climate
|
4
5
|
import esphome.config_validation as cv
|
5
|
-
from esphome.components import climate, ble_client
|
6
6
|
from esphome.const import (
|
7
7
|
CONF_HEAT_MODE,
|
8
8
|
CONF_ID,
|
@@ -10,11 +10,8 @@ from esphome.const import (
|
|
10
10
|
CONF_TEMPERATURE_SOURCE,
|
11
11
|
CONF_TIME_ID,
|
12
12
|
)
|
13
|
-
|
14
|
-
|
15
|
-
bedjet_ns,
|
16
|
-
register_bedjet_child,
|
17
|
-
)
|
13
|
+
|
14
|
+
from .. import BEDJET_CLIENT_SCHEMA, bedjet_ns, register_bedjet_child
|
18
15
|
|
19
16
|
_LOGGER = logging.getLogger(__name__)
|
20
17
|
CODEOWNERS = ["@jhansche"]
|
@@ -1,16 +1,11 @@
|
|
1
1
|
import logging
|
2
2
|
|
3
3
|
import esphome.codegen as cg
|
4
|
-
import esphome.config_validation as cv
|
5
4
|
from esphome.components import fan
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
from .. import
|
10
|
-
BEDJET_CLIENT_SCHEMA,
|
11
|
-
bedjet_ns,
|
12
|
-
register_bedjet_child,
|
13
|
-
)
|
5
|
+
import esphome.config_validation as cv
|
6
|
+
from esphome.const import CONF_ID
|
7
|
+
|
8
|
+
from .. import BEDJET_CLIENT_SCHEMA, bedjet_ns, register_bedjet_child
|
14
9
|
|
15
10
|
_LOGGER = logging.getLogger(__name__)
|
16
11
|
CODEOWNERS = ["@jhansche"]
|
@@ -1,19 +1,16 @@
|
|
1
1
|
import logging
|
2
2
|
|
3
3
|
import esphome.codegen as cg
|
4
|
-
import esphome.config_validation as cv
|
5
4
|
from esphome.components import sensor
|
5
|
+
import esphome.config_validation as cv
|
6
6
|
from esphome.const import (
|
7
7
|
CONF_ID,
|
8
8
|
DEVICE_CLASS_TEMPERATURE,
|
9
9
|
STATE_CLASS_MEASUREMENT,
|
10
10
|
UNIT_CELSIUS,
|
11
11
|
)
|
12
|
-
|
13
|
-
|
14
|
-
bedjet_ns,
|
15
|
-
register_bedjet_child,
|
16
|
-
)
|
12
|
+
|
13
|
+
from .. import BEDJET_CLIENT_SCHEMA, bedjet_ns, register_bedjet_child
|
17
14
|
|
18
15
|
_LOGGER = logging.getLogger(__name__)
|
19
16
|
CODEOWNERS = ["@jhansche", "@javawizard"]
|
@@ -1,9 +1,9 @@
|
|
1
1
|
from dataclasses import dataclass
|
2
2
|
|
3
|
-
import esphome.codegen as cg
|
4
|
-
import esphome.config_validation as cv
|
5
3
|
from esphome import pins
|
4
|
+
import esphome.codegen as cg
|
6
5
|
from esphome.components import libretiny, light
|
6
|
+
import esphome.config_validation as cv
|
7
7
|
from esphome.const import (
|
8
8
|
CONF_CHIPSET,
|
9
9
|
CONF_IS_RGBW,
|
@@ -1,11 +1,7 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
2
|
from esphome.components import i2c, sensor
|
4
|
-
|
5
|
-
|
6
|
-
STATE_CLASS_MEASUREMENT,
|
7
|
-
UNIT_LUX,
|
8
|
-
)
|
3
|
+
import esphome.config_validation as cv
|
4
|
+
from esphome.const import DEVICE_CLASS_ILLUMINANCE, STATE_CLASS_MEASUREMENT, UNIT_LUX
|
9
5
|
|
10
6
|
DEPENDENCIES = ["i2c"]
|
11
7
|
CODEOWNERS = ["@OttoWinter"]
|
@@ -1,12 +1,13 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
2
|
from esphome.components import fan, output
|
3
|
+
import esphome.config_validation as cv
|
4
4
|
from esphome.const import (
|
5
5
|
CONF_DIRECTION_OUTPUT,
|
6
6
|
CONF_OSCILLATION_OUTPUT,
|
7
7
|
CONF_OUTPUT,
|
8
8
|
CONF_OUTPUT_ID,
|
9
9
|
)
|
10
|
+
|
10
11
|
from .. import binary_ns
|
11
12
|
|
12
13
|
BinaryFan = binary_ns.class_("BinaryFan", fan.Fan, cg.Component)
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
2
|
from esphome.components import light, output
|
4
|
-
|
3
|
+
import esphome.config_validation as cv
|
4
|
+
from esphome.const import CONF_OUTPUT, CONF_OUTPUT_ID
|
5
|
+
|
5
6
|
from .. import binary_ns
|
6
7
|
|
7
8
|
BinaryLightOutput = binary_ns.class_("BinaryLightOutput", light.LightOutput)
|
@@ -1,15 +1,14 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
+
from esphome.components import binary_sensor, sensor
|
2
3
|
import esphome.config_validation as cv
|
3
|
-
|
4
|
-
from esphome.components import sensor, binary_sensor
|
5
4
|
from esphome.const import (
|
6
|
-
CONF_CHANNELS,
|
7
|
-
CONF_VALUE,
|
8
|
-
CONF_TYPE,
|
9
|
-
ICON_CHECK_CIRCLE_OUTLINE,
|
10
5
|
CONF_BINARY_SENSOR,
|
6
|
+
CONF_CHANNELS,
|
11
7
|
CONF_GROUP,
|
12
8
|
CONF_SUM,
|
9
|
+
CONF_TYPE,
|
10
|
+
CONF_VALUE,
|
11
|
+
ICON_CHECK_CIRCLE_OUTLINE,
|
13
12
|
)
|
14
13
|
|
15
14
|
DEPENDENCIES = ["binary_sensor"]
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
2
|
from esphome.components import sensor, uart
|
3
|
+
import esphome.config_validation as cv
|
4
4
|
from esphome.const import (
|
5
5
|
CONF_CURRENT,
|
6
6
|
CONF_ENERGY,
|
@@ -12,15 +12,15 @@ from esphome.const import (
|
|
12
12
|
DEVICE_CLASS_CURRENT,
|
13
13
|
DEVICE_CLASS_ENERGY,
|
14
14
|
DEVICE_CLASS_POWER,
|
15
|
-
DEVICE_CLASS_VOLTAGE,
|
16
15
|
DEVICE_CLASS_TEMPERATURE,
|
16
|
+
DEVICE_CLASS_VOLTAGE,
|
17
17
|
STATE_CLASS_MEASUREMENT,
|
18
|
+
STATE_CLASS_TOTAL_INCREASING,
|
18
19
|
UNIT_AMPERE,
|
19
20
|
UNIT_CELSIUS,
|
20
21
|
UNIT_KILOWATT_HOURS,
|
21
22
|
UNIT_VOLT,
|
22
23
|
UNIT_WATT,
|
23
|
-
STATE_CLASS_TOTAL_INCREASING,
|
24
24
|
)
|
25
25
|
|
26
26
|
DEPENDENCIES = ["uart"]
|
@@ -67,7 +67,7 @@ CONF_AUTO_CONNECT = "auto_connect"
|
|
67
67
|
|
68
68
|
MULTI_CONF = True
|
69
69
|
|
70
|
-
CONFIG_SCHEMA = (
|
70
|
+
CONFIG_SCHEMA = cv.All(
|
71
71
|
cv.Schema(
|
72
72
|
{
|
73
73
|
cv.GenerateID(): cv.declare_id(BLEClient),
|
@@ -114,7 +114,8 @@ CONFIG_SCHEMA = (
|
|
114
114
|
}
|
115
115
|
)
|
116
116
|
.extend(cv.COMPONENT_SCHEMA)
|
117
|
-
.extend(esp32_ble_tracker.ESP_BLE_DEVICE_SCHEMA)
|
117
|
+
.extend(esp32_ble_tracker.ESP_BLE_DEVICE_SCHEMA),
|
118
|
+
esp32_ble_tracker.consume_connection_slots(1, "ble_client"),
|
118
119
|
)
|
119
120
|
|
120
121
|
CONF_BLE_CLIENT_ID = "ble_client_id"
|
@@ -5,13 +5,13 @@ import esphome.config_validation as cv
|
|
5
5
|
from esphome.const import (
|
6
6
|
CONF_CHARACTERISTIC_UUID,
|
7
7
|
CONF_LAMBDA,
|
8
|
+
CONF_NOTIFY,
|
8
9
|
CONF_SERVICE_UUID,
|
9
10
|
CONF_TRIGGER_ID,
|
10
11
|
CONF_TYPE,
|
11
12
|
DEVICE_CLASS_SIGNAL_STRENGTH,
|
12
13
|
STATE_CLASS_MEASUREMENT,
|
13
14
|
UNIT_DECIBEL_MILLIWATT,
|
14
|
-
CONF_NOTIFY,
|
15
15
|
)
|
16
16
|
|
17
17
|
from .. import ble_client_ns
|
@@ -8,9 +8,10 @@ AUTO_LOAD = ["esp32_ble_client", "esp32_ble_tracker"]
|
|
8
8
|
DEPENDENCIES = ["api", "esp32"]
|
9
9
|
CODEOWNERS = ["@jesserockz"]
|
10
10
|
|
11
|
+
CONF_CONNECTION_SLOTS = "connection_slots"
|
11
12
|
CONF_CACHE_SERVICES = "cache_services"
|
12
13
|
CONF_CONNECTIONS = "connections"
|
13
|
-
|
14
|
+
DEFAULT_CONNECTION_SLOTS = 3
|
14
15
|
|
15
16
|
bluetooth_proxy_ns = cg.esphome_ns.namespace("bluetooth_proxy")
|
16
17
|
|
@@ -34,32 +35,43 @@ def validate_connections(config):
|
|
34
35
|
raise cv.Invalid(
|
35
36
|
"Connections can only be used if the proxy is set to active"
|
36
37
|
)
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
38
|
+
elif config[CONF_ACTIVE]:
|
39
|
+
connection_slots: int = config[CONF_CONNECTION_SLOTS]
|
40
|
+
esp32_ble_tracker.consume_connection_slots(connection_slots, "bluetooth_proxy")(
|
41
|
+
config
|
42
|
+
)
|
43
|
+
return {
|
44
|
+
**config,
|
45
|
+
CONF_CONNECTIONS: [CONNECTION_SCHEMA({}) for _ in range(connection_slots)],
|
46
|
+
}
|
44
47
|
return config
|
45
48
|
|
46
49
|
|
47
50
|
CONFIG_SCHEMA = cv.All(
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
cv.
|
54
|
-
|
55
|
-
|
56
|
-
cv.
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
51
|
+
(
|
52
|
+
cv.Schema(
|
53
|
+
{
|
54
|
+
cv.GenerateID(): cv.declare_id(BluetoothProxy),
|
55
|
+
cv.Optional(CONF_ACTIVE, default=False): cv.boolean,
|
56
|
+
cv.SplitDefault(CONF_CACHE_SERVICES, esp32_idf=True): cv.All(
|
57
|
+
cv.only_with_esp_idf, cv.boolean
|
58
|
+
),
|
59
|
+
cv.Optional(
|
60
|
+
CONF_CONNECTION_SLOTS,
|
61
|
+
default=DEFAULT_CONNECTION_SLOTS,
|
62
|
+
): cv.All(
|
63
|
+
cv.positive_int,
|
64
|
+
cv.Range(min=1, max=esp32_ble_tracker.max_connections()),
|
65
|
+
),
|
66
|
+
cv.Optional(CONF_CONNECTIONS): cv.All(
|
67
|
+
cv.ensure_list(CONNECTION_SCHEMA),
|
68
|
+
cv.Length(min=1, max=esp32_ble_tracker.max_connections()),
|
69
|
+
),
|
70
|
+
}
|
71
|
+
)
|
72
|
+
.extend(esp32_ble_tracker.ESP_BLE_DEVICE_SCHEMA)
|
73
|
+
.extend(cv.COMPONENT_SCHEMA)
|
74
|
+
),
|
63
75
|
validate_connections,
|
64
76
|
)
|
65
77
|
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
2
|
from esphome.components import i2c
|
4
|
-
|
3
|
+
import esphome.config_validation as cv
|
4
|
+
|
5
|
+
from ..bme280_base import CONFIG_SCHEMA_BASE, to_code_base
|
5
6
|
|
6
7
|
AUTO_LOAD = ["bme280_base"]
|
7
8
|
DEPENDENCIES = ["i2c"]
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
2
|
from esphome.components import spi
|
4
|
-
|
3
|
+
import esphome.config_validation as cv
|
4
|
+
|
5
|
+
from ..bme280_base import CONFIG_SCHEMA_BASE, to_code_base
|
5
6
|
|
6
7
|
AUTO_LOAD = ["bme280_base"]
|
7
8
|
CODEOWNERS = ["@apbodrov"]
|