esphome 2025.5.2__py3-none-any.whl → 2025.6.0b1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- esphome/__main__.py +20 -14
- esphome/components/a4988/a4988.cpp +1 -1
- esphome/components/absolute_humidity/absolute_humidity.cpp +6 -4
- esphome/components/ac_dimmer/ac_dimmer.cpp +4 -2
- esphome/components/adc/adc_sensor_esp32.cpp +5 -3
- esphome/components/adc/adc_sensor_esp8266.cpp +5 -3
- esphome/components/adc/adc_sensor_libretiny.cpp +5 -3
- esphome/components/adc/adc_sensor_rp2040.cpp +5 -3
- esphome/components/adc128s102/adc128s102.cpp +1 -1
- esphome/components/ade7880/ade7880.cpp +28 -17
- esphome/components/ade7953_base/ade7953_base.cpp +12 -9
- esphome/components/ade7953_i2c/ade7953_i2c.cpp +1 -1
- esphome/components/ade7953_spi/ade7953_spi.cpp +1 -1
- esphome/components/ads1115/ads1115.cpp +3 -5
- esphome/components/ads1118/ads1118.cpp +2 -1
- esphome/components/ags10/ags10.cpp +3 -2
- esphome/components/aht10/aht10.cpp +27 -29
- esphome/components/aic3204/aic3204.cpp +2 -2
- esphome/components/alarm_control_panel/__init__.py +1 -0
- esphome/components/am2315c/am2315c.cpp +2 -2
- esphome/components/am2320/am2320.cpp +2 -2
- esphome/components/am43/am43_base.h +1 -1
- esphome/components/am43/cover/am43_cover.cpp +4 -2
- esphome/components/analog_threshold/analog_threshold_binary_sensor.cpp +4 -2
- esphome/components/apds9306/apds9306.cpp +8 -5
- esphome/components/apds9960/apds9960.cpp +2 -2
- esphome/components/api/__init__.py +5 -0
- esphome/components/api/api_connection.cpp +712 -358
- esphome/components/api/api_connection.h +343 -284
- esphome/components/api/api_frame_helper.cpp +349 -344
- esphome/components/api/api_frame_helper.h +121 -94
- esphome/components/api/api_pb2.cpp +2 -0
- esphome/components/api/api_pb2.h +637 -1
- esphome/components/api/api_pb2_service.cpp +12 -688
- esphome/components/api/api_pb2_service.h +53 -207
- esphome/components/api/api_server.cpp +71 -29
- esphome/components/api/api_server.h +9 -0
- esphome/components/api/client.py +5 -2
- esphome/components/api/homeassistant_service.h +1 -1
- esphome/components/api/list_entities.cpp +1 -1
- esphome/components/api/proto.cpp +1 -0
- esphome/components/api/proto.h +4 -3
- esphome/components/api/subscribe_state.cpp +8 -16
- esphome/components/as3935/as3935.cpp +3 -3
- esphome/components/as5600/as5600.cpp +9 -7
- esphome/components/as7341/as7341.cpp +7 -5
- esphome/components/at581x/at581x.cpp +13 -10
- esphome/components/atm90e26/atm90e26.cpp +2 -2
- esphome/components/atm90e32/atm90e32.cpp +3 -3
- esphome/components/axs15231/touchscreen/axs15231_touchscreen.cpp +5 -3
- esphome/components/bang_bang/bang_bang_climate.cpp +8 -5
- esphome/components/bedjet/bedjet_hub.cpp +6 -4
- esphome/components/beken_spi_led_strip/led_strip.cpp +11 -7
- esphome/components/bh1750/bh1750.cpp +2 -2
- esphome/components/binary_sensor/__init__.py +1 -0
- esphome/components/binary_sensor/automation.cpp +1 -2
- esphome/components/bl0906/bl0906.cpp +1 -1
- esphome/components/bl0942/bl0942.cpp +11 -8
- esphome/components/bl0942/sensor.py +1 -1
- esphome/components/ble_client/__init__.py +5 -1
- esphome/components/ble_client/output/ble_binary_output.cpp +6 -3
- esphome/components/ble_client/sensor/ble_sensor.cpp +9 -6
- esphome/components/ble_client/text_sensor/ble_text_sensor.cpp +8 -5
- esphome/components/bluetooth_proxy/__init__.py +5 -1
- esphome/components/bluetooth_proxy/bluetooth_connection.cpp +5 -5
- esphome/components/bluetooth_proxy/bluetooth_proxy.cpp +16 -14
- esphome/components/bme280_base/bme280_base.cpp +3 -3
- esphome/components/bme680/bme680.cpp +3 -3
- esphome/components/bme680/sensor.py +2 -2
- esphome/components/bme680_bsec/bme680_bsec.cpp +11 -7
- esphome/components/bme680_bsec/sensor.py +7 -3
- esphome/components/bme68x_bsec2/__init__.py +6 -5
- esphome/components/bme68x_bsec2/bme68x_bsec2.cpp +17 -13
- esphome/components/bme68x_bsec2/sensor.py +4 -4
- esphome/components/bme68x_bsec2_i2c/bme68x_bsec2_i2c.cpp +1 -0
- esphome/components/bmi160/bmi160.cpp +11 -11
- esphome/components/bmp085/bmp085.cpp +2 -2
- esphome/components/bmp280_base/bmp280_base.cpp +3 -3
- esphome/components/bmp3xx_base/bmp3xx_base.cpp +13 -13
- esphome/components/bmp581/bmp581.cpp +33 -27
- esphome/components/bp1658cj/bp1658cj.cpp +5 -3
- esphome/components/bp5758d/bp5758d.cpp +1 -1
- esphome/components/button/__init__.py +1 -0
- esphome/components/canbus/canbus.cpp +1 -1
- esphome/components/cap1188/cap1188.cpp +6 -4
- esphome/components/captive_portal/captive_portal.cpp +1 -1
- esphome/components/ccs811/ccs811.cpp +3 -2
- esphome/components/cd74hc4067/cd74hc4067.cpp +1 -1
- esphome/components/ch422g/ch422g.cpp +2 -2
- esphome/components/chsc6x/chsc6x_touchscreen.cpp +6 -4
- esphome/components/climate/__init__.py +1 -0
- esphome/components/climate/climate.cpp +12 -7
- esphome/components/climate/climate.h +1 -1
- esphome/components/climate_ir/climate_ir.cpp +7 -4
- esphome/components/cm1106/__init__.py +1 -0
- esphome/components/cm1106/cm1106.cpp +112 -0
- esphome/components/cm1106/cm1106.h +40 -0
- esphome/components/cm1106/sensor.py +72 -0
- esphome/components/const/__init__.py +1 -0
- esphome/components/cover/__init__.py +1 -0
- esphome/components/cs5460a/cs5460a.cpp +16 -11
- esphome/components/cse7761/cse7761.cpp +2 -2
- esphome/components/cse7766/cse7766.cpp +0 -5
- esphome/components/cse7766/cse7766.h +5 -1
- esphome/components/cst226/touchscreen/cst226_touchscreen.cpp +1 -1
- esphome/components/cst816/touchscreen/cst816_touchscreen.cpp +6 -3
- esphome/components/current_based/current_based_cover.cpp +4 -2
- esphome/components/dac7678/dac7678_output.cpp +4 -4
- esphome/components/dallas_temp/dallas_temp.cpp +2 -3
- esphome/components/daly_bms/daly_bms.cpp +2 -1
- esphome/components/dashboard_import/__init__.py +1 -2
- esphome/components/datetime/__init__.py +3 -1
- esphome/components/debug/debug_component.cpp +1 -1
- esphome/components/debug/debug_component.h +1 -1
- esphome/components/debug/debug_esp32.cpp +4 -2
- esphome/components/deep_sleep/deep_sleep_component.cpp +11 -5
- esphome/components/deep_sleep/deep_sleep_esp32.cpp +7 -5
- esphome/components/demo/__init__.py +206 -0
- esphome/components/demo/demo_alarm_control_panel.h +65 -0
- esphome/components/demo/demo_button.h +15 -0
- esphome/components/demo/demo_date.h +34 -0
- esphome/components/demo/demo_datetime.h +40 -0
- esphome/components/demo/demo_lock.h +17 -0
- esphome/components/demo/demo_select.h +15 -0
- esphome/components/demo/demo_text.h +18 -0
- esphome/components/demo/demo_time.h +34 -0
- esphome/components/demo/demo_valve.h +54 -0
- esphome/components/dfrobot_sen0395/commands.cpp +3 -3
- esphome/components/dht/dht.cpp +29 -50
- esphome/components/dht12/dht12.cpp +2 -2
- esphome/components/display/display.h +5 -3
- esphome/components/dps310/dps310.cpp +7 -5
- esphome/components/ds1307/ds1307.cpp +2 -2
- esphome/components/dsmr/dsmr.cpp +5 -3
- esphome/components/duty_cycle/duty_cycle_sensor.cpp +2 -2
- esphome/components/duty_time/duty_time_sensor.cpp +5 -3
- esphome/components/ee895/ee895.cpp +3 -3
- esphome/components/ektf2232/touchscreen/ektf2232.cpp +1 -1
- esphome/components/emc2101/emc2101.cpp +11 -9
- esphome/components/ens160_base/ens160_base.cpp +2 -2
- esphome/components/ens210/ens210.cpp +2 -2
- esphome/components/es7210/es7210.cpp +6 -4
- esphome/components/es7243e/es7243e.cpp +1 -1
- esphome/components/es8156/es8156.cpp +1 -1
- esphome/components/es8311/es8311.cpp +8 -6
- esphome/components/es8388/__init__.py +0 -0
- esphome/components/es8388/audio_dac.py +26 -0
- esphome/components/es8388/es8388.cpp +289 -0
- esphome/components/es8388/es8388.h +81 -0
- esphome/components/es8388/es8388_const.h +83 -0
- esphome/components/es8388/select/__init__.py +47 -0
- esphome/components/es8388/select/adc_input_mic_select.cpp +12 -0
- esphome/components/es8388/select/adc_input_mic_select.h +15 -0
- esphome/components/es8388/select/dac_output_select.cpp +12 -0
- esphome/components/es8388/select/dac_output_select.h +15 -0
- esphome/components/esp32/__init__.py +88 -20
- esphome/components/esp32/boards.py +208 -125
- esphome/components/esp32/const.py +6 -0
- esphome/components/esp32/gpio.py +14 -1
- esphome/components/esp32/gpio_esp32_c5.py +45 -0
- esphome/components/esp32/gpio_esp32_p4.py +43 -0
- esphome/components/esp32/preferences.cpp +7 -7
- esphome/components/esp32_ble/__init__.py +115 -0
- esphome/components/esp32_ble/ble.cpp +11 -9
- esphome/components/esp32_ble/ble_uuid.h +1 -1
- esphome/components/esp32_ble_client/ble_client_base.cpp +4 -2
- esphome/components/esp32_ble_server/__init__.py +4 -1
- esphome/components/esp32_ble_server/ble_characteristic.cpp +1 -0
- esphome/components/esp32_ble_server/ble_server.h +0 -1
- esphome/components/esp32_ble_tracker/__init__.py +6 -2
- esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp +12 -9
- esphome/components/esp32_camera/esp32_camera.cpp +35 -27
- esphome/components/esp32_camera_web_server/camera_web_server.cpp +4 -2
- esphome/components/esp32_dac/esp32_dac.cpp +2 -2
- esphome/components/esp32_improv/__init__.py +5 -1
- esphome/components/esp32_improv/esp32_improv_component.cpp +2 -2
- esphome/components/esp32_rmt_led_strip/led_strip.cpp +11 -7
- esphome/components/esp32_rmt_led_strip/light.py +5 -1
- esphome/components/esp32_touch/esp32_touch.cpp +12 -8
- esphome/components/esp8266/preferences.cpp +6 -6
- esphome/components/esp8266_pwm/esp8266_pwm.cpp +3 -3
- esphome/components/esp_ldo/__init__.py +91 -0
- esphome/components/esp_ldo/esp_ldo.cpp +43 -0
- esphome/components/esp_ldo/esp_ldo.h +43 -0
- esphome/components/esphome/ota/ota_esphome.cpp +15 -8
- esphome/components/ethernet/ethernet_component.cpp +38 -26
- esphome/components/ethernet/ethernet_component.h +1 -1
- esphome/components/event/__init__.py +1 -0
- esphome/components/exposure_notifications/exposure_notifications.cpp +1 -1
- esphome/components/ezo/ezo.cpp +1 -1
- esphome/components/ezo_pmp/ezo_pmp.cpp +1 -1
- esphome/components/factory_reset/button/factory_reset_button.cpp +1 -1
- esphome/components/factory_reset/switch/factory_reset_switch.cpp +1 -1
- esphome/components/fan/__init__.py +1 -0
- esphome/components/fan/fan.cpp +4 -2
- esphome/components/fastled_base/fastled_light.cpp +7 -5
- esphome/components/fingerprint_grow/fingerprint_grow.cpp +8 -6
- esphome/components/fs3000/fs3000.cpp +1 -1
- esphome/components/ft5x06/touchscreen/ft5x06_touchscreen.cpp +7 -4
- esphome/components/ft63x6/ft63x6.cpp +5 -3
- esphome/components/gcja5/gcja5.cpp +0 -12
- esphome/components/gcja5/gcja5.h +8 -3
- esphome/components/gdk101/gdk101.cpp +2 -2
- esphome/components/globals/globals_component.h +13 -10
- esphome/components/gp2y1010au0f/gp2y1010au0f.cpp +4 -2
- esphome/components/gp8403/gp8403.cpp +4 -2
- esphome/components/gp8403/output/gp8403_output.cpp +4 -2
- esphome/components/gpio/one_wire/gpio_one_wire.cpp +2 -2
- esphome/components/gpio/output/gpio_binary_output.cpp +1 -1
- esphome/components/gpio/switch/gpio_switch.cpp +1 -1
- esphome/components/graphical_display_menu/graphical_display_menu.cpp +12 -8
- esphome/components/grove_gas_mc_v2/grove_gas_mc_v2.cpp +5 -6
- esphome/components/grove_tb6612fng/grove_tb6612fng.cpp +1 -1
- esphome/components/grove_tb6612fng/grove_tb6612fng.h +1 -1
- esphome/components/growatt_solar/growatt_solar.cpp +6 -3
- esphome/components/gt911/touchscreen/gt911_touchscreen.cpp +1 -1
- esphome/components/haier/haier_base.cpp +2 -2
- esphome/components/haier/hon_climate.cpp +13 -6
- esphome/components/havells_solar/havells_solar.cpp +5 -2
- esphome/components/hbridge/switch/hbridge_switch.cpp +1 -1
- esphome/components/hdc1080/hdc1080.cpp +2 -2
- esphome/components/he60r/he60r.cpp +4 -2
- esphome/components/hlw8012/hlw8012.cpp +6 -4
- esphome/components/hm3301/hm3301.cpp +2 -2
- esphome/components/hmc5883l/hmc5883l.cpp +2 -2
- esphome/components/homeassistant/time/homeassistant_time.cpp +4 -2
- esphome/components/honeywell_hih_i2c/honeywell_hih.cpp +4 -4
- esphome/components/honeywellabp/honeywellabp.cpp +4 -2
- esphome/components/honeywellabp2_i2c/honeywellabp2.cpp +8 -6
- esphome/components/hte501/hte501.cpp +3 -2
- esphome/components/http_request/__init__.py +2 -2
- esphome/components/http_request/http_request.cpp +7 -5
- esphome/components/http_request/http_request_idf.cpp +4 -2
- esphome/components/http_request/ota/ota_http_request.cpp +1 -1
- esphome/components/htu21d/htu21d.cpp +2 -2
- esphome/components/htu31d/htu31d.cpp +2 -2
- esphome/components/hx711/hx711.cpp +2 -2
- esphome/components/hydreon_rgxx/hydreon_rgxx.cpp +5 -3
- esphome/components/hyt271/hyt271.cpp +2 -2
- esphome/components/i2c/i2c_bus_arduino.cpp +14 -11
- esphome/components/i2c/i2c_bus_esp_idf.cpp +13 -11
- esphome/components/i2s_audio/__init__.py +2 -0
- esphome/components/i2s_audio/i2s_audio.cpp +3 -4
- esphome/components/i2s_audio/i2s_audio.h +1 -1
- esphome/components/i2s_audio/media_player/__init__.py +1 -1
- esphome/components/i2s_audio/media_player/i2s_audio_media_player.cpp +5 -3
- esphome/components/i2s_audio/microphone/i2s_audio_microphone.cpp +1 -1
- esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp +1 -1
- esphome/components/iaqcore/iaqcore.cpp +3 -3
- esphome/components/ili9xxx/ili9xxx_display.cpp +12 -7
- esphome/components/ili9xxx/ili9xxx_display.h +1 -1
- esphome/components/image/image.cpp +1 -0
- esphome/components/ina219/ina219.cpp +2 -2
- esphome/components/ina226/ina226.cpp +8 -5
- esphome/components/ina260/ina260.cpp +1 -1
- esphome/components/ina2xx_base/ina2xx_base.cpp +13 -9
- esphome/components/ina3221/ina3221.cpp +2 -2
- esphome/components/inkplate6/display.py +12 -2
- esphome/components/inkplate6/inkplate.cpp +13 -9
- esphome/components/inkplate6/inkplate.h +7 -6
- esphome/components/integration/integration_sensor.cpp +1 -1
- esphome/components/internal_temperature/internal_temperature.cpp +4 -4
- esphome/components/json/json_util.cpp +4 -5
- esphome/components/kamstrup_kmp/kamstrup_kmp.cpp +1 -1
- esphome/components/key_collector/key_collector.cpp +4 -2
- esphome/components/kmeteriso/kmeteriso.cpp +2 -1
- esphome/components/kuntze/kuntze.cpp +4 -2
- esphome/components/lc709203f/__init__.py +1 -0
- esphome/components/lc709203f/lc709203f.cpp +299 -0
- esphome/components/lc709203f/lc709203f.h +55 -0
- esphome/components/lc709203f/sensor.py +93 -0
- esphome/components/lcd_base/lcd_display.cpp +2 -2
- esphome/components/lcd_gpio/gpio_lcd_display.cpp +5 -3
- esphome/components/lcd_menu/lcd_menu.cpp +6 -4
- esphome/components/lcd_pcf8574/pcf8574_display.cpp +6 -4
- esphome/components/ld2410/ld2410.cpp +6 -7
- esphome/components/ld2420/ld2420.cpp +9 -7
- esphome/components/ld2450/ld2450.cpp +6 -4
- esphome/components/ld2450/sensor.py +2 -2
- esphome/components/ledc/ledc_output.cpp +32 -28
- esphome/components/libretiny/const.py +1 -1
- esphome/components/libretiny/preferences.cpp +6 -7
- esphome/components/light/__init__.py +2 -1
- esphome/components/light/esp_hsv_color.h +1 -1
- esphome/components/light/light_state.cpp +9 -5
- esphome/components/light/light_transformer.h +1 -1
- esphome/components/lightwaverf/LwTx.cpp +1 -1
- esphome/components/lightwaverf/lightwaverf.cpp +1 -1
- esphome/components/lilygo_t5_47/touchscreen/lilygo_t5_47_touchscreen.cpp +1 -1
- esphome/components/lock/__init__.py +1 -0
- esphome/components/lock/lock.h +1 -1
- esphome/components/logger/__init__.py +6 -0
- esphome/components/logger/logger.cpp +9 -5
- esphome/components/logger/logger_esp32.cpp +5 -5
- esphome/components/ltr390/ltr390.cpp +8 -5
- esphome/components/ltr501/ltr501.cpp +19 -14
- esphome/components/ltr_als_ps/ltr_als_ps.cpp +20 -13
- esphome/components/lvgl/__init__.py +2 -2
- esphome/components/lvgl/automation.py +5 -4
- esphome/components/lvgl/defines.py +0 -2
- esphome/components/lvgl/lv_validation.py +1 -3
- esphome/components/lvgl/lvcode.py +7 -8
- esphome/components/lvgl/lvgl_esphome.cpp +26 -10
- esphome/components/lvgl/schemas.py +22 -23
- esphome/components/lvgl/trigger.py +8 -3
- esphome/components/lvgl/widgets/__init__.py +2 -2
- esphome/components/lvgl/widgets/canvas.py +9 -3
- esphome/components/lvgl/widgets/line.py +2 -1
- esphome/components/lvgl/widgets/tabview.py +7 -0
- esphome/components/m5stack_8angle/m5stack_8angle.cpp +3 -3
- esphome/components/matrix_keypad/matrix_keypad.cpp +2 -2
- esphome/components/max17043/max17043.cpp +2 -2
- esphome/components/max31855/max31855.cpp +2 -1
- esphome/components/max31856/max31856.cpp +9 -11
- esphome/components/max31865/max31865.cpp +6 -4
- esphome/components/max44009/max44009.cpp +2 -2
- esphome/components/max6675/max6675.cpp +1 -1
- esphome/components/max6956/max6956.cpp +5 -3
- esphome/components/max7219/max7219.cpp +8 -6
- esphome/components/max7219digit/automation.h +52 -0
- esphome/components/max7219digit/display.py +93 -1
- esphome/components/max7219digit/max7219digit.cpp +16 -13
- esphome/components/max9611/max9611.cpp +9 -6
- esphome/components/mcp23008/mcp23008.cpp +1 -1
- esphome/components/mcp23016/mcp23016.cpp +1 -1
- esphome/components/mcp23017/mcp23017.cpp +1 -1
- esphome/components/mcp23s08/mcp23s08.cpp +1 -1
- esphome/components/mcp23s17/mcp23s17.cpp +1 -1
- esphome/components/mcp3008/mcp3008.cpp +1 -1
- esphome/components/mcp3008/sensor/mcp3008_sensor.cpp +5 -3
- esphome/components/mcp3204/mcp3204.cpp +1 -1
- esphome/components/mcp4461/mcp4461.cpp +2 -2
- esphome/components/mcp4725/mcp4725.cpp +2 -2
- esphome/components/mcp4728/mcp4728.cpp +2 -2
- esphome/components/mcp9600/mcp9600.cpp +1 -1
- esphome/components/mcp9808/mcp9808.cpp +4 -4
- esphome/components/mdns/mdns_component.cpp +8 -2
- esphome/components/mdns/mdns_component.h +3 -1
- esphome/components/mdns/mdns_esp32.cpp +2 -2
- esphome/components/media_player/__init__.py +1 -0
- esphome/components/micro_wake_word/micro_wake_word.cpp +1 -1
- esphome/components/micro_wake_word/streaming_model.cpp +10 -6
- esphome/components/micronova/micronova.h +2 -2
- esphome/components/mics_4514/mics_4514.cpp +2 -2
- esphome/components/midea/air_conditioner.cpp +7 -5
- esphome/components/midea_ir/midea_ir.cpp +1 -1
- esphome/components/mipi_spi/mipi_spi.cpp +24 -15
- esphome/components/mixer/speaker/mixer_speaker.cpp +8 -4
- esphome/components/mlx90393/sensor_mlx90393.cpp +2 -2
- esphome/components/mlx90614/mlx90614.cpp +4 -3
- esphome/components/mmc5603/mmc5603.cpp +2 -2
- esphome/components/mmc5983/mmc5983.cpp +1 -1
- esphome/components/modbus/modbus.cpp +7 -5
- esphome/components/modbus_controller/modbus_controller.cpp +6 -4
- esphome/components/modbus_controller/output/modbus_output.cpp +10 -6
- esphome/components/modbus_controller/switch/__init__.py +6 -2
- esphome/components/modbus_controller/switch/modbus_switch.cpp +4 -0
- esphome/components/modbus_controller/switch/modbus_switch.h +3 -0
- esphome/components/mpl3115a2/mpl3115a2.cpp +3 -2
- esphome/components/mpr121/mpr121.cpp +2 -2
- esphome/components/mpu6050/mpu6050.cpp +6 -6
- esphome/components/mpu6886/mpu6886.cpp +6 -6
- esphome/components/mqtt/mqtt_alarm_control_panel.cpp +7 -3
- esphome/components/mqtt/mqtt_backend_esp32.cpp +1 -1
- esphome/components/mqtt/mqtt_client.cpp +31 -24
- esphome/components/mqtt/mqtt_component.cpp +2 -2
- esphome/components/mqtt/mqtt_cover.cpp +8 -4
- esphome/components/mqtt/mqtt_fan.cpp +12 -6
- esphome/components/mqtt/mqtt_valve.cpp +4 -2
- esphome/components/ms5611/ms5611.cpp +2 -2
- esphome/components/ms8607/ms8607.cpp +2 -2
- esphome/components/msa3xx/msa3xx.cpp +16 -12
- esphome/components/my9231/my9231.cpp +7 -5
- esphome/components/nau7802/nau7802.cpp +6 -4
- esphome/components/neopixelbus/neopixelbus_light.h +2 -2
- esphome/components/network/ip_address.h +1 -1
- esphome/components/network/util.cpp +13 -0
- esphome/components/nextion/base_component.py +2 -0
- esphome/components/nextion/binary_sensor/nextion_binarysensor.cpp +2 -3
- esphome/components/nextion/display.py +34 -22
- esphome/components/nextion/nextion.cpp +182 -143
- esphome/components/nextion/nextion.h +36 -0
- esphome/components/nextion/nextion_commands.cpp +3 -3
- esphome/components/nextion/nextion_upload_arduino.cpp +58 -61
- esphome/components/nextion/nextion_upload_idf.cpp +69 -72
- esphome/components/nextion/sensor/nextion_sensor.cpp +4 -4
- esphome/components/nextion/switch/nextion_switch.cpp +2 -2
- esphome/components/nextion/text_sensor/nextion_textsensor.cpp +2 -2
- esphome/components/nfc/nci_message.h +1 -1
- esphome/components/nfc/ndef_record.h +1 -1
- esphome/components/nfc/ndef_record_text.h +1 -1
- esphome/components/nfc/ndef_record_uri.h +1 -1
- esphome/components/nfc/nfc.h +1 -1
- esphome/components/nfc/nfc_tag.h +1 -1
- esphome/components/noblex/noblex.cpp +1 -1
- esphome/components/npi19/npi19.cpp +5 -7
- esphome/components/number/__init__.py +11 -0
- esphome/components/online_image/__init__.py +13 -1
- esphome/components/online_image/online_image.cpp +26 -4
- esphome/components/online_image/online_image.h +21 -4
- esphome/components/opentherm/generate.py +3 -3
- esphome/components/opentherm/hub.cpp +11 -7
- esphome/components/opentherm/number/number.cpp +5 -3
- esphome/components/opentherm/opentherm.h +1 -1
- esphome/components/opentherm/schema.py +13 -13
- esphome/components/opentherm/validate.py +1 -1
- esphome/components/openthread/__init__.py +146 -0
- esphome/components/openthread/const.py +10 -0
- esphome/components/openthread/openthread.cpp +206 -0
- esphome/components/openthread/openthread.h +68 -0
- esphome/components/openthread/openthread_esp.cpp +164 -0
- esphome/components/openthread/tlv.py +58 -0
- esphome/components/openthread_info/__init__.py +0 -0
- esphome/components/openthread_info/openthread_info_text_sensor.cpp +24 -0
- esphome/components/openthread_info/openthread_info_text_sensor.h +218 -0
- esphome/components/openthread_info/text_sensor.py +105 -0
- esphome/components/output/float_output.cpp +1 -1
- esphome/components/output/switch/output_switch.cpp +1 -1
- esphome/components/packet_transport/packet_transport.cpp +6 -4
- esphome/components/pca6416a/pca6416a.cpp +2 -2
- esphome/components/pca9554/pca9554.cpp +6 -4
- esphome/components/pca9685/pca9685_output.cpp +12 -8
- esphome/components/pcd8544/pcd_8544.cpp +1 -1
- esphome/components/pcf85063/pcf85063.cpp +2 -2
- esphome/components/pcf8563/pcf8563.cpp +2 -2
- esphome/components/pcf8574/pcf8574.cpp +2 -2
- esphome/components/pid/pid_climate.cpp +8 -5
- esphome/components/pid/pid_climate.h +1 -1
- esphome/components/pid/sensor/pid_climate_sensor.cpp +1 -1
- esphome/components/pipsolar/output/pipsolar_output.cpp +1 -1
- esphome/components/pipsolar/pipsolar.cpp +3 -3
- esphome/components/pm1006/pm1006.cpp +3 -7
- esphome/components/pm1006/pm1006.h +4 -1
- esphome/components/pm2005/pm2005.cpp +12 -13
- esphome/components/pm2005/sensor.py +1 -1
- esphome/components/pmsa003i/pmsa003i.cpp +2 -2
- esphome/components/pmsx003/pmsx003.cpp +0 -4
- esphome/components/pmsx003/pmsx003.h +5 -2
- esphome/components/pmwcs3/pmwcs3.cpp +9 -13
- esphome/components/pmwcs3/pmwcs3.h +0 -1
- esphome/components/pn532/pn532.cpp +7 -7
- esphome/components/pn532/pn532.h +1 -1
- esphome/components/pn532_spi/pn532_spi.cpp +1 -1
- esphome/components/pn7150/pn7150.cpp +4 -4
- esphome/components/pn7160/pn7160.cpp +4 -4
- esphome/components/power_supply/power_supply.cpp +6 -4
- esphome/components/power_supply/power_supply.h +1 -1
- esphome/components/psram/__init__.py +59 -35
- esphome/components/pulse_counter/pulse_counter_sensor.cpp +7 -4
- esphome/components/pvvx_mithermometer/display/pvvx_display.cpp +8 -5
- esphome/components/pylontech/pylontech.cpp +2 -2
- esphome/components/pylontech/sensor/pylontech_sensor.cpp +4 -2
- esphome/components/pylontech/text_sensor/pylontech_text_sensor.cpp +4 -2
- esphome/components/pzemac/pzemac.cpp +4 -2
- esphome/components/pzemdc/pzemdc.cpp +4 -2
- esphome/components/qmc5883l/qmc5883l.cpp +2 -2
- esphome/components/qmp6988/qmp6988.cpp +2 -2
- esphome/components/qmp6988/qmp6988.h +1 -1
- esphome/components/qr_code/qr_code.cpp +5 -3
- esphome/components/qspi_dbi/qspi_dbi.cpp +1 -1
- esphome/components/qwiic_pir/qwiic_pir.cpp +26 -28
- esphome/components/rc522/rc522.cpp +5 -5
- esphome/components/rdm6300/rdm6300.cpp +1 -0
- esphome/components/remote_receiver/__init__.py +10 -2
- esphome/components/remote_receiver/remote_receiver_esp32.cpp +22 -12
- esphome/components/remote_receiver/remote_receiver_esp8266.cpp +10 -7
- esphome/components/remote_receiver/remote_receiver_libretiny.cpp +10 -7
- esphome/components/remote_transmitter/__init__.py +10 -2
- esphome/components/remote_transmitter/remote_transmitter_esp32.cpp +10 -6
- esphome/components/remote_transmitter/remote_transmitter_esp8266.cpp +5 -3
- esphome/components/remote_transmitter/remote_transmitter_libretiny.cpp +5 -3
- esphome/components/resistance/resistance_sensor.cpp +6 -3
- esphome/components/restart/button/restart_button.cpp +1 -1
- esphome/components/restart/switch/restart_switch.cpp +1 -1
- esphome/components/rotary_encoder/rotary_encoder.cpp +2 -2
- esphome/components/rp2040/__init__.py +7 -0
- esphome/components/rp2040/core.cpp +8 -1
- esphome/components/rp2040/preferences.cpp +3 -3
- esphome/components/rp2040_pio_led_strip/led_strip.cpp +11 -8
- esphome/components/rp2040_pio_led_strip/light.py +1 -1
- esphome/components/rp2040_pwm/rp2040_pwm.cpp +1 -1
- esphome/components/rpi_dpi_rgb/rpi_dpi_rgb.cpp +1 -1
- esphome/components/rtttl/rtttl.cpp +11 -9
- esphome/components/safe_mode/button/safe_mode_button.cpp +1 -1
- esphome/components/safe_mode/safe_mode.cpp +9 -8
- esphome/components/safe_mode/switch/safe_mode_switch.cpp +1 -1
- esphome/components/scd30/scd30.cpp +11 -8
- esphome/components/scd4x/scd4x.cpp +12 -8
- esphome/components/sdl/display.py +40 -0
- esphome/components/sdl/sdl_esphome.cpp +2 -2
- esphome/components/sdl/sdl_esphome.h +8 -0
- esphome/components/sdm_meter/sdm_meter.cpp +5 -2
- esphome/components/sdp3x/sdp3x.cpp +11 -11
- esphome/components/sds011/sds011.cpp +5 -6
- esphome/components/sds011/sds011.h +4 -1
- esphome/components/seeed_mr24hpc1/seeed_mr24hpc1.cpp +3 -2
- esphome/components/seeed_mr60bha2/seeed_mr60bha2.cpp +1 -0
- esphome/components/seeed_mr60fda2/seeed_mr60fda2.cpp +3 -2
- esphome/components/selec_meter/selec_meter.cpp +5 -2
- esphome/components/select/__init__.py +1 -0
- esphome/components/sen0321/sen0321.cpp +2 -2
- esphome/components/sen21231/sen21231.cpp +1 -1
- esphome/components/sen5x/sen5x.cpp +10 -7
- esphome/components/sensirion_common/i2c_sensirion.cpp +2 -1
- esphome/components/sensirion_common/i2c_sensirion.h +1 -0
- esphome/components/sensor/__init__.py +11 -1
- esphome/components/sensor/filter.h +1 -1
- esphome/components/sensor/sensor.h +9 -5
- esphome/components/servo/servo.cpp +12 -9
- esphome/components/servo/servo.h +1 -1
- esphome/components/sfa30/sfa30.cpp +1 -1
- esphome/components/sgp30/sgp30.cpp +10 -8
- esphome/components/sgp4x/sgp4x.cpp +49 -61
- esphome/components/sgp4x/sgp4x.h +0 -1
- esphome/components/shelly_dimmer/shelly_dimmer.cpp +11 -7
- esphome/components/sht3xd/sht3xd.cpp +1 -1
- esphome/components/sht4x/sht4x.cpp +2 -2
- esphome/components/shtcx/shtcx.cpp +13 -16
- esphome/components/shutdown/button/shutdown_button.cpp +1 -1
- esphome/components/shutdown/switch/shutdown_switch.cpp +1 -1
- esphome/components/sim800l/sim800l.cpp +2 -2
- esphome/components/slow_pwm/slow_pwm_output.cpp +4 -2
- esphome/components/sm16716/sm16716.cpp +1 -1
- esphome/components/sm2135/sm2135.cpp +1 -1
- esphome/components/sm2235/sm2235.cpp +5 -3
- esphome/components/sm2335/sm2335.cpp +5 -3
- esphome/components/sml/sml.cpp +1 -1
- esphome/components/sn74hc165/sn74hc165.cpp +1 -2
- esphome/components/sn74hc595/sn74hc595.cpp +1 -2
- esphome/components/sntp/sntp_component.cpp +1 -1
- esphome/components/socket/__init__.py +2 -0
- esphome/components/socket/bsd_sockets_impl.cpp +51 -7
- esphome/components/socket/lwip_raw_tcp_impl.cpp +5 -0
- esphome/components/socket/lwip_sockets_impl.cpp +51 -7
- esphome/components/socket/socket.cpp +31 -0
- esphome/components/socket/socket.h +27 -1
- esphome/components/sonoff_d1/sonoff_d1.cpp +7 -4
- esphome/components/sonoff_d1/sonoff_d1.h +2 -2
- esphome/components/sound_level/sound_level.cpp +4 -2
- esphome/components/speaker/media_player/__init__.py +3 -0
- esphome/components/speaker/media_player/speaker_media_player.cpp +1 -3
- esphome/components/speaker/media_player/speaker_media_player.h +6 -0
- esphome/components/spi/__init__.py +10 -2
- esphome/components/spi/spi.cpp +4 -4
- esphome/components/spi_device/spi_device.cpp +1 -2
- esphome/components/sprinkler/sprinkler.cpp +9 -6
- esphome/components/sps30/sps30.cpp +16 -15
- esphome/components/ssd1306_base/ssd1306_base.cpp +1 -1
- esphome/components/ssd1306_i2c/ssd1306_i2c.cpp +11 -8
- esphome/components/ssd1306_spi/ssd1306_spi.cpp +10 -7
- esphome/components/ssd1322_base/ssd1322_base.cpp +1 -1
- esphome/components/ssd1322_spi/ssd1322_spi.cpp +1 -1
- esphome/components/ssd1325_base/ssd1325_base.cpp +1 -1
- esphome/components/ssd1325_spi/ssd1325_spi.cpp +1 -1
- esphome/components/ssd1327_base/ssd1327_base.cpp +1 -1
- esphome/components/ssd1327_i2c/ssd1327_i2c.cpp +2 -2
- esphome/components/ssd1327_spi/ssd1327_spi.cpp +1 -1
- esphome/components/ssd1331_base/ssd1331_base.cpp +1 -1
- esphome/components/ssd1331_spi/ssd1331_spi.cpp +1 -1
- esphome/components/ssd1351_base/ssd1351_base.cpp +1 -1
- esphome/components/ssd1351_spi/ssd1351_spi.cpp +1 -1
- esphome/components/st7567_base/st7567_base.cpp +3 -3
- esphome/components/st7567_i2c/st7567_i2c.cpp +7 -5
- esphome/components/st7567_spi/st7567_spi.cpp +1 -1
- esphome/components/st7701s/st7701s.cpp +4 -2
- esphome/components/st7735/st7735.cpp +3 -3
- esphome/components/st7789v/st7789v.cpp +10 -7
- esphome/components/st7920/st7920.cpp +6 -4
- esphome/components/statsd/statsd.cpp +9 -5
- esphome/components/status_led/light/status_led_light.cpp +1 -1
- esphome/components/status_led/status_led.cpp +1 -1
- esphome/components/stepper/stepper.h +5 -3
- esphome/components/sts3x/sts3x.cpp +2 -2
- esphome/components/switch/__init__.py +1 -0
- esphome/components/switch/switch.cpp +18 -12
- esphome/components/switch/switch.h +1 -1
- esphome/components/sx1509/__init__.py +53 -20
- esphome/components/sx1509/sx1509.cpp +29 -5
- esphome/components/sx1509/sx1509.h +9 -1
- esphome/components/t6615/t6615.cpp +1 -0
- esphome/components/tc74/tc74.cpp +1 -1
- esphome/components/tca9548a/tca9548a.cpp +1 -1
- esphome/components/tca9555/tca9555.cpp +2 -2
- esphome/components/tcs34725/tcs34725.cpp +4 -4
- esphome/components/tee501/tee501.cpp +3 -2
- esphome/components/tem3200/tem3200.cpp +5 -6
- esphome/components/template/alarm_control_panel/__init__.py +6 -0
- esphome/components/template/alarm_control_panel/template_alarm_control_panel.cpp +38 -12
- esphome/components/template/alarm_control_panel/template_alarm_control_panel.h +3 -1
- esphome/components/template/cover/template_cover.cpp +1 -1
- esphome/components/template/select/template_select.cpp +6 -4
- esphome/components/template/text/template_text.cpp +2 -3
- esphome/components/template/valve/template_valve.cpp +5 -3
- esphome/components/text/__init__.py +10 -11
- esphome/components/text_sensor/__init__.py +1 -0
- esphome/components/thermostat/thermostat_climate.cpp +67 -43
- esphome/components/time/__init__.py +1 -2
- esphome/components/time_based/time_based_cover.cpp +4 -2
- esphome/components/tlc59208f/tlc59208f_output.cpp +8 -6
- esphome/components/tm1621/tm1621.cpp +3 -3
- esphome/components/tm1637/tm1637.cpp +9 -7
- esphome/components/tm1638/tm1638.cpp +7 -5
- esphome/components/tm1651/tm1651.cpp +2 -2
- esphome/components/tmp102/tmp102.cpp +1 -3
- esphome/components/tmp102/tmp102.h +0 -3
- esphome/components/tmp1075/tmp1075.cpp +12 -9
- esphome/components/tmp117/tmp117.cpp +2 -2
- esphome/components/tof10120/tof10120_sensor.cpp +2 -2
- esphome/components/tormatic/tormatic_cover.cpp +4 -2
- esphome/components/tsl2561/tsl2561.cpp +7 -5
- esphome/components/tsl2591/tsl2591.cpp +25 -27
- esphome/components/tt21100/touchscreen/tt21100.cpp +1 -1
- esphome/components/ttp229_bsf/ttp229_bsf.cpp +1 -1
- esphome/components/ttp229_lsf/ttp229_lsf.cpp +2 -2
- esphome/components/tuya/select/tuya_select.cpp +5 -3
- esphome/components/tx20/tx20.cpp +3 -3
- esphome/components/uart/__init__.py +4 -5
- esphome/components/uart/button/uart_button.cpp +1 -1
- esphome/components/uart/switch/uart_switch.cpp +2 -2
- esphome/components/uart/uart.cpp +2 -2
- esphome/components/uart/uart_component_esp32_arduino.cpp +8 -6
- esphome/components/uart/uart_component_esp8266.cpp +9 -7
- esphome/components/uart/uart_component_esp_idf.cpp +9 -7
- esphome/components/uart/uart_component_host.cpp +11 -8
- esphome/components/uart/uart_component_libretiny.cpp +8 -6
- esphome/components/uart/uart_component_rp2040.cpp +8 -6
- esphome/components/udp/udp_component.cpp +9 -5
- esphome/components/ufire_ec/ufire_ec.cpp +5 -3
- esphome/components/ufire_ise/ufire_ise.cpp +1 -1
- esphome/components/ultrasonic/ultrasonic_sensor.cpp +5 -3
- esphome/components/update/__init__.py +1 -0
- esphome/components/uponor_smatrix/climate/uponor_smatrix_climate.cpp +1 -1
- esphome/components/uponor_smatrix/sensor/uponor_smatrix_sensor.cpp +4 -2
- esphome/components/uponor_smatrix/uponor_smatrix.cpp +2 -1
- esphome/components/usb_host/__init__.py +64 -0
- esphome/components/usb_host/usb_host.h +116 -0
- esphome/components/usb_host/usb_host_client.cpp +394 -0
- esphome/components/usb_host/usb_host_component.cpp +35 -0
- esphome/components/usb_uart/__init__.py +134 -0
- esphome/components/usb_uart/ch34x.cpp +80 -0
- esphome/components/usb_uart/cp210x.cpp +126 -0
- esphome/components/usb_uart/usb_uart.cpp +328 -0
- esphome/components/usb_uart/usb_uart.h +151 -0
- esphome/components/valve/__init__.py +1 -0
- esphome/components/veml3235/veml3235.cpp +13 -9
- esphome/components/veml7700/veml7700.cpp +10 -6
- esphome/components/voice_assistant/voice_assistant.cpp +7 -7
- esphome/components/wake_on_lan/wake_on_lan.cpp +1 -1
- esphome/components/waveshare_epaper/waveshare_epaper.cpp +1 -1
- esphome/components/web_server/server_index_v2.h +632 -630
- esphome/components/web_server/server_index_v3.h +411 -409
- esphome/components/web_server/web_server.cpp +5 -3
- esphome/components/web_server_base/web_server_base.cpp +1 -1
- esphome/components/web_server_idf/utils.cpp +1 -1
- esphome/components/web_server_idf/web_server_idf.cpp +1 -1
- esphome/components/weikai/__init__.py +2 -0
- esphome/components/weikai/weikai.cpp +23 -21
- esphome/components/weikai_i2c/weikai_i2c.cpp +14 -9
- esphome/components/weikai_spi/weikai_spi.cpp +11 -6
- esphome/components/wiegand/wiegand.cpp +1 -1
- esphome/components/wifi/wifi_component.cpp +50 -37
- esphome/components/wifi/wifi_component.h +7 -4
- esphome/components/wifi/wifi_component_esp32_arduino.cpp +2 -2
- esphome/components/wifi/wifi_component_esp8266.cpp +3 -3
- esphome/components/wifi/wifi_component_libretiny.cpp +4 -4
- esphome/components/wireguard/wireguard.cpp +21 -21
- esphome/components/wl_134/text_sensor.py +1 -2
- esphome/components/wled/wled_light_effect.cpp +1 -1
- esphome/components/x9c/x9c.cpp +5 -3
- esphome/components/xgzp68xx/xgzp68xx.cpp +8 -6
- esphome/components/xiaomi_cgd1/xiaomi_cgd1.cpp +4 -2
- esphome/components/xiaomi_cgdk2/xiaomi_cgdk2.cpp +4 -2
- esphome/components/xiaomi_cgg1/xiaomi_cgg1.cpp +4 -2
- esphome/components/xiaomi_hhccjcy10/xiaomi_hhccjcy10.cpp +1 -1
- esphome/components/xiaomi_lywsd02mmc/xiaomi_lywsd02mmc.cpp +4 -2
- esphome/components/xiaomi_lywsd03mmc/xiaomi_lywsd03mmc.cpp +4 -2
- esphome/components/xiaomi_mhoc401/xiaomi_mhoc401.cpp +4 -2
- esphome/components/xl9535/xl9535.cpp +2 -2
- esphome/components/xpt2046/touchscreen/xpt2046.cpp +12 -11
- esphome/components/xpt2046/touchscreen/xpt2046.h +2 -2
- esphome/config.py +3 -2
- esphome/config_validation.py +46 -17
- esphome/const.py +10 -1
- esphome/core/__init__.py +37 -18
- esphome/core/application.cpp +188 -5
- esphome/core/application.h +110 -0
- esphome/core/component.h +13 -0
- esphome/core/config.py +12 -0
- esphome/core/defines.h +10 -2
- esphome/core/helpers.cpp +1 -1
- esphome/core/helpers.h +4 -4
- esphome/core/log.h +2 -0
- esphome/core/log_const_en.h +4 -0
- esphome/core/scheduler.cpp +2 -2
- esphome/coroutine.py +3 -4
- esphome/cpp_generator.py +32 -32
- esphome/dashboard/core.py +2 -2
- esphome/dashboard/web_server.py +2 -2
- esphome/git.py +4 -4
- esphome/helpers.py +5 -6
- esphome/loader.py +8 -7
- esphome/log.py +7 -1
- esphome/platformio_api.py +2 -3
- esphome/storage_json.py +13 -5
- esphome/types.py +12 -13
- esphome/util.py +1 -2
- esphome/writer.py +5 -3
- esphome/yaml_util.py +6 -1
- esphome/zeroconf.py +1 -1
- {esphome-2025.5.2.dist-info → esphome-2025.6.0b1.dist-info}/METADATA +12 -11
- {esphome-2025.5.2.dist-info → esphome-2025.6.0b1.dist-info}/RECORD +715 -662
- {esphome-2025.5.2.dist-info → esphome-2025.6.0b1.dist-info}/WHEEL +1 -1
- {esphome-2025.5.2.dist-info → esphome-2025.6.0b1.dist-info}/entry_points.txt +0 -0
- {esphome-2025.5.2.dist-info → esphome-2025.6.0b1.dist-info}/licenses/LICENSE +0 -0
- {esphome-2025.5.2.dist-info → esphome-2025.6.0b1.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,4 @@
|
|
1
1
|
import abc
|
2
|
-
from typing import Union
|
3
2
|
|
4
3
|
from esphome import codegen as cg
|
5
4
|
from esphome.config import Config
|
@@ -75,7 +74,7 @@ class CodeContext(abc.ABC):
|
|
75
74
|
code_context = None
|
76
75
|
|
77
76
|
@abc.abstractmethod
|
78
|
-
def add(self, expression:
|
77
|
+
def add(self, expression: Expression | Statement):
|
79
78
|
pass
|
80
79
|
|
81
80
|
@staticmethod
|
@@ -89,13 +88,13 @@ class CodeContext(abc.ABC):
|
|
89
88
|
CodeContext.append(RawStatement("}"))
|
90
89
|
|
91
90
|
@staticmethod
|
92
|
-
def append(expression:
|
91
|
+
def append(expression: Expression | Statement):
|
93
92
|
if CodeContext.code_context is not None:
|
94
93
|
CodeContext.code_context.add(expression)
|
95
94
|
return expression
|
96
95
|
|
97
96
|
def __init__(self):
|
98
|
-
self.previous:
|
97
|
+
self.previous: CodeContext | None = None
|
99
98
|
self.indent_level = 0
|
100
99
|
|
101
100
|
async def __aenter__(self):
|
@@ -121,7 +120,7 @@ class MainContext(CodeContext):
|
|
121
120
|
Code generation into the main() function
|
122
121
|
"""
|
123
122
|
|
124
|
-
def add(self, expression:
|
123
|
+
def add(self, expression: Expression | Statement):
|
125
124
|
return cg.add(self.indented_statement(expression))
|
126
125
|
|
127
126
|
|
@@ -144,7 +143,7 @@ class LambdaContext(CodeContext):
|
|
144
143
|
self.capture = capture
|
145
144
|
self.where = where
|
146
145
|
|
147
|
-
def add(self, expression:
|
146
|
+
def add(self, expression: Expression | Statement):
|
148
147
|
self.code_list.append(self.indented_statement(expression))
|
149
148
|
return expression
|
150
149
|
|
@@ -186,7 +185,7 @@ class LvContext(LambdaContext):
|
|
186
185
|
async def __aexit__(self, exc_type, exc_val, exc_tb):
|
187
186
|
await super().__aexit__(exc_type, exc_val, exc_tb)
|
188
187
|
|
189
|
-
def add(self, expression:
|
188
|
+
def add(self, expression: Expression | Statement):
|
190
189
|
cg.add(expression)
|
191
190
|
return expression
|
192
191
|
|
@@ -303,7 +302,7 @@ lvgl_static = MockObj("LvglComponent", "::")
|
|
303
302
|
|
304
303
|
|
305
304
|
# equivalent to cg.add() for the current code context
|
306
|
-
def lv_add(expression:
|
305
|
+
def lv_add(expression: Expression | Statement):
|
307
306
|
return CodeContext.append(expression)
|
308
307
|
|
309
308
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
#include "esphome/core/defines.h"
|
2
|
-
#include "esphome/core/log.h"
|
3
|
-
#include "esphome/core/helpers.h"
|
4
2
|
#include "esphome/core/hal.h"
|
3
|
+
#include "esphome/core/helpers.h"
|
4
|
+
#include "esphome/core/log.h"
|
5
5
|
#include "lvgl_hal.h"
|
6
6
|
#include "lvgl_esphome.h"
|
7
7
|
|
@@ -11,6 +11,8 @@ namespace esphome {
|
|
11
11
|
namespace lvgl {
|
12
12
|
static const char *const TAG = "lvgl";
|
13
13
|
|
14
|
+
static const size_t MIN_BUFFER_FRAC = 8;
|
15
|
+
|
14
16
|
static const char *const EVENT_NAMES[] = {
|
15
17
|
"NONE",
|
16
18
|
"PRESSED",
|
@@ -83,10 +85,14 @@ static void rounder_cb(lv_disp_drv_t *disp_drv, lv_area_t *area) {
|
|
83
85
|
lv_event_code_t lv_api_event; // NOLINT
|
84
86
|
lv_event_code_t lv_update_event; // NOLINT
|
85
87
|
void LvglComponent::dump_config() {
|
86
|
-
ESP_LOGCONFIG(TAG,
|
87
|
-
|
88
|
-
|
89
|
-
|
88
|
+
ESP_LOGCONFIG(TAG,
|
89
|
+
"LVGL:\n"
|
90
|
+
" Display width/height: %d x %d\n"
|
91
|
+
" Buffer size: %zu%%\n"
|
92
|
+
" Rotation: %d\n"
|
93
|
+
" Draw rounding: %d",
|
94
|
+
this->disp_drv_.hor_res, this->disp_drv_.ver_res, 100 / this->buffer_frac_, this->rotation,
|
95
|
+
(int) this->draw_rounding);
|
90
96
|
}
|
91
97
|
void LvglComponent::set_paused(bool paused, bool show_snow) {
|
92
98
|
this->paused_ = paused;
|
@@ -432,18 +438,28 @@ void LvglComponent::setup() {
|
|
432
438
|
auto *display = this->displays_[0];
|
433
439
|
auto width = display->get_width();
|
434
440
|
auto height = display->get_height();
|
435
|
-
|
441
|
+
auto frac = this->buffer_frac_;
|
442
|
+
if (frac == 0)
|
443
|
+
frac = 1;
|
444
|
+
size_t buffer_pixels = width * height / frac;
|
436
445
|
auto buf_bytes = buffer_pixels * LV_COLOR_DEPTH / 8;
|
437
446
|
void *buffer = nullptr;
|
438
|
-
if (this->buffer_frac_ >=
|
447
|
+
if (this->buffer_frac_ >= MIN_BUFFER_FRAC / 2)
|
439
448
|
buffer = malloc(buf_bytes); // NOLINT
|
440
449
|
if (buffer == nullptr)
|
441
450
|
buffer = lv_custom_mem_alloc(buf_bytes); // NOLINT
|
451
|
+
// if specific buffer size not set and can't get 100%, try for a smaller one
|
452
|
+
if (buffer == nullptr && this->buffer_frac_ == 0) {
|
453
|
+
frac = MIN_BUFFER_FRAC;
|
454
|
+
buffer_pixels /= MIN_BUFFER_FRAC;
|
455
|
+
buffer = lv_custom_mem_alloc(buf_bytes / MIN_BUFFER_FRAC); // NOLINT
|
456
|
+
}
|
442
457
|
if (buffer == nullptr) {
|
443
|
-
this->mark_failed();
|
444
458
|
this->status_set_error("Memory allocation failure");
|
459
|
+
this->mark_failed();
|
445
460
|
return;
|
446
461
|
}
|
462
|
+
this->buffer_frac_ = frac;
|
447
463
|
lv_disp_draw_buf_init(&this->draw_buf_, buffer, nullptr, buffer_pixels);
|
448
464
|
this->disp_drv_.hor_res = width;
|
449
465
|
this->disp_drv_.ver_res = height;
|
@@ -453,8 +469,8 @@ void LvglComponent::setup() {
|
|
453
469
|
if (this->rotation != display::DISPLAY_ROTATION_0_DEGREES) {
|
454
470
|
this->rotate_buf_ = static_cast<lv_color_t *>(lv_custom_mem_alloc(buf_bytes)); // NOLINT
|
455
471
|
if (this->rotate_buf_ == nullptr) {
|
456
|
-
this->mark_failed();
|
457
472
|
this->status_set_error("Memory allocation failure");
|
473
|
+
this->mark_failed();
|
458
474
|
return;
|
459
475
|
}
|
460
476
|
}
|
@@ -13,13 +13,15 @@ from esphome.const import (
|
|
13
13
|
CONF_TIME,
|
14
14
|
CONF_TRIGGER_ID,
|
15
15
|
CONF_TYPE,
|
16
|
+
CONF_X,
|
17
|
+
CONF_Y,
|
16
18
|
)
|
17
19
|
from esphome.core import TimePeriod
|
18
20
|
from esphome.core.config import StartupTrigger
|
19
21
|
from esphome.schema_extractors import SCHEMA_EXTRACT
|
20
22
|
|
21
23
|
from . import defines as df, lv_validation as lvalid
|
22
|
-
from .defines import CONF_TIME_FORMAT,
|
24
|
+
from .defines import CONF_TIME_FORMAT, LV_GRAD_DIR
|
23
25
|
from .helpers import add_lv_use, requires_component, validate_printf
|
24
26
|
from .lv_validation import lv_color, lv_font, lv_gradient, lv_image, opacity
|
25
27
|
from .lvcode import LvglComponent, lv_event_t_ptr
|
@@ -261,11 +263,13 @@ FLAG_LIST = cv.ensure_list(df.LvConstant("LV_OBJ_FLAG_", *df.OBJ_FLAGS).one_of)
|
|
261
263
|
def part_schema(parts):
|
262
264
|
"""
|
263
265
|
Generate a schema for the various parts (e.g. main:, indicator:) of a widget type
|
264
|
-
:param parts: The parts to include
|
266
|
+
:param parts: The parts to include
|
265
267
|
:return: The schema
|
266
268
|
"""
|
267
|
-
return
|
268
|
-
STATE_SCHEMA
|
269
|
+
return (
|
270
|
+
cv.Schema({cv.Optional(part): STATE_SCHEMA for part in parts})
|
271
|
+
.extend(STATE_SCHEMA)
|
272
|
+
.extend(FLAG_SCHEMA)
|
269
273
|
)
|
270
274
|
|
271
275
|
|
@@ -302,22 +306,18 @@ def base_update_schema(widget_type, parts):
|
|
302
306
|
:param parts: The allowable parts to specify
|
303
307
|
:return:
|
304
308
|
"""
|
305
|
-
return (
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
cv.Optional(CONF_STATE): SET_STATE_SCHEMA,
|
318
|
-
}
|
319
|
-
)
|
320
|
-
.extend(FLAG_SCHEMA)
|
309
|
+
return part_schema(parts).extend(
|
310
|
+
{
|
311
|
+
cv.Required(CONF_ID): cv.ensure_list(
|
312
|
+
cv.maybe_simple_value(
|
313
|
+
{
|
314
|
+
cv.Required(CONF_ID): cv.use_id(widget_type),
|
315
|
+
},
|
316
|
+
key=CONF_ID,
|
317
|
+
)
|
318
|
+
),
|
319
|
+
cv.Optional(CONF_STATE): SET_STATE_SCHEMA,
|
320
|
+
}
|
321
321
|
)
|
322
322
|
|
323
323
|
|
@@ -335,7 +335,6 @@ def obj_schema(widget_type: WidgetType):
|
|
335
335
|
"""
|
336
336
|
return (
|
337
337
|
part_schema(widget_type.parts)
|
338
|
-
.extend(FLAG_SCHEMA)
|
339
338
|
.extend(LAYOUT_SCHEMA)
|
340
339
|
.extend(ALIGN_TO_SCHEMA)
|
341
340
|
.extend(automation_schema(widget_type.w_type))
|
@@ -357,8 +356,8 @@ ALIGN_TO_SCHEMA = {
|
|
357
356
|
{
|
358
357
|
cv.Required(CONF_ID): cv.use_id(lv_obj_t),
|
359
358
|
cv.Required(df.CONF_ALIGN): df.ALIGN_ALIGNMENTS.one_of,
|
360
|
-
cv.Optional(
|
361
|
-
cv.Optional(
|
359
|
+
cv.Optional(CONF_X, default=0): lvalid.pixels_or_percent,
|
360
|
+
cv.Optional(CONF_Y, default=0): lvalid.pixels_or_percent,
|
362
361
|
}
|
363
362
|
)
|
364
363
|
}
|
@@ -1,12 +1,17 @@
|
|
1
1
|
from esphome import automation
|
2
2
|
import esphome.codegen as cg
|
3
|
-
from esphome.const import
|
3
|
+
from esphome.const import (
|
4
|
+
CONF_ID,
|
5
|
+
CONF_ON_BOOT,
|
6
|
+
CONF_ON_VALUE,
|
7
|
+
CONF_TRIGGER_ID,
|
8
|
+
CONF_X,
|
9
|
+
CONF_Y,
|
10
|
+
)
|
4
11
|
|
5
12
|
from .defines import (
|
6
13
|
CONF_ALIGN,
|
7
14
|
CONF_ALIGN_TO,
|
8
|
-
CONF_X,
|
9
|
-
CONF_Y,
|
10
15
|
DIRECTIONS,
|
11
16
|
LV_EVENT_MAP,
|
12
17
|
LV_EVENT_TRIGGERS,
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import sys
|
2
|
-
from typing import Any
|
2
|
+
from typing import Any
|
3
3
|
|
4
4
|
from esphome import codegen as cg, config_validation as cv
|
5
5
|
from esphome.config_validation import Invalid
|
@@ -262,7 +262,7 @@ async def wait_for_widgets():
|
|
262
262
|
await FakeAwaitable(widgets_wait_generator())
|
263
263
|
|
264
264
|
|
265
|
-
async def get_widgets(config:
|
265
|
+
async def get_widgets(config: dict | list, id: str = CONF_ID) -> list[Widget]:
|
266
266
|
if not config:
|
267
267
|
return []
|
268
268
|
if not isinstance(config, list):
|
@@ -1,6 +1,14 @@
|
|
1
1
|
from esphome import automation, codegen as cg, config_validation as cv
|
2
2
|
from esphome.components.display_menu_base import CONF_LABEL
|
3
|
-
from esphome.const import
|
3
|
+
from esphome.const import (
|
4
|
+
CONF_COLOR,
|
5
|
+
CONF_HEIGHT,
|
6
|
+
CONF_ID,
|
7
|
+
CONF_TEXT,
|
8
|
+
CONF_WIDTH,
|
9
|
+
CONF_X,
|
10
|
+
CONF_Y,
|
11
|
+
)
|
4
12
|
from esphome.cpp_generator import Literal, MockObj
|
5
13
|
|
6
14
|
from ..automation import action_to_code
|
@@ -13,8 +21,6 @@ from ..defines import (
|
|
13
21
|
CONF_POINTS,
|
14
22
|
CONF_SRC,
|
15
23
|
CONF_START_ANGLE,
|
16
|
-
CONF_X,
|
17
|
-
CONF_Y,
|
18
24
|
literal,
|
19
25
|
)
|
20
26
|
from ..lv_validation import (
|
@@ -1,8 +1,9 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
2
|
import esphome.config_validation as cv
|
3
|
+
from esphome.const import CONF_X, CONF_Y
|
3
4
|
from esphome.core import Lambda
|
4
5
|
|
5
|
-
from ..defines import CONF_MAIN,
|
6
|
+
from ..defines import CONF_MAIN, call_lambda
|
6
7
|
from ..lvcode import lv_add
|
7
8
|
from ..schemas import point_schema
|
8
9
|
from ..types import LvCompound, LvType
|
@@ -24,6 +24,7 @@ from .obj import obj_spec
|
|
24
24
|
|
25
25
|
CONF_TABVIEW = "tabview"
|
26
26
|
CONF_TAB_STYLE = "tab_style"
|
27
|
+
CONF_CONTENT_STYLE = "content_style"
|
27
28
|
|
28
29
|
lv_tab_t = LvType("lv_obj_t")
|
29
30
|
|
@@ -39,6 +40,7 @@ TABVIEW_SCHEMA = cv.Schema(
|
|
39
40
|
)
|
40
41
|
),
|
41
42
|
cv.Optional(CONF_TAB_STYLE): part_schema(buttonmatrix_spec.parts),
|
43
|
+
cv.Optional(CONF_CONTENT_STYLE): part_schema(obj_spec.parts),
|
42
44
|
cv.Optional(CONF_POSITION, default="top"): DIRECTIONS.one_of,
|
43
45
|
cv.Optional(CONF_SIZE, default="10%"): size,
|
44
46
|
}
|
@@ -79,6 +81,11 @@ class TabviewType(WidgetType):
|
|
79
81
|
"tabview_btnmatrix", lv_obj_t, rhs=lv_expr.tabview_get_tab_btns(w.obj)
|
80
82
|
) as btnmatrix_obj:
|
81
83
|
await set_obj_properties(Widget(btnmatrix_obj, obj_spec), button_style)
|
84
|
+
if content_style := config.get(CONF_CONTENT_STYLE):
|
85
|
+
with LocalVariable(
|
86
|
+
"tabview_content", lv_obj_t, rhs=lv_expr.tabview_get_content(w.obj)
|
87
|
+
) as content_obj:
|
88
|
+
await set_obj_properties(Widget(content_obj, obj_spec), content_style)
|
82
89
|
|
83
90
|
def obj_creator(self, parent: MockObjClass, config: dict):
|
84
91
|
return lv_expr.call(
|
@@ -8,19 +8,19 @@ namespace m5stack_8angle {
|
|
8
8
|
static const char *const TAG = "m5stack_8angle";
|
9
9
|
|
10
10
|
void M5Stack8AngleComponent::setup() {
|
11
|
-
ESP_LOGCONFIG(TAG, "
|
11
|
+
ESP_LOGCONFIG(TAG, "Running setup");
|
12
12
|
i2c::ErrorCode err;
|
13
13
|
|
14
14
|
err = this->read(nullptr, 0);
|
15
15
|
if (err != i2c::NO_ERROR) {
|
16
|
-
ESP_LOGE(TAG, "I2C error %02X
|
16
|
+
ESP_LOGE(TAG, "I2C error %02X", err);
|
17
17
|
this->mark_failed();
|
18
18
|
return;
|
19
19
|
};
|
20
20
|
|
21
21
|
err = this->read_register(M5STACK_8ANGLE_REGISTER_FW_VERSION, &this->fw_version_, 1);
|
22
22
|
if (err != i2c::NO_ERROR) {
|
23
|
-
ESP_LOGE(TAG, "I2C error %02X
|
23
|
+
ESP_LOGE(TAG, "I2C error %02X", err);
|
24
24
|
this->mark_failed();
|
25
25
|
return;
|
26
26
|
};
|
@@ -97,8 +97,8 @@ void MatrixKeypad::loop() {
|
|
97
97
|
}
|
98
98
|
|
99
99
|
void MatrixKeypad::dump_config() {
|
100
|
-
ESP_LOGCONFIG(TAG, "Matrix Keypad
|
101
|
-
|
100
|
+
ESP_LOGCONFIG(TAG, "Matrix Keypad:\n"
|
101
|
+
" Rows:");
|
102
102
|
for (auto &pin : this->rows_) {
|
103
103
|
LOG_PIN(" Pin: ", pin);
|
104
104
|
}
|
@@ -41,7 +41,7 @@ void MAX17043Component::update() {
|
|
41
41
|
}
|
42
42
|
|
43
43
|
void MAX17043Component::setup() {
|
44
|
-
ESP_LOGCONFIG(TAG, "
|
44
|
+
ESP_LOGCONFIG(TAG, "Running setup");
|
45
45
|
|
46
46
|
uint16_t config_reg;
|
47
47
|
if (this->write(&MAX17043_CONFIG, 1) != i2c::ERROR_OK) {
|
@@ -76,7 +76,7 @@ void MAX17043Component::dump_config() {
|
|
76
76
|
ESP_LOGCONFIG(TAG, "MAX17043:");
|
77
77
|
LOG_I2C_DEVICE(this);
|
78
78
|
if (this->is_failed()) {
|
79
|
-
ESP_LOGE(TAG,
|
79
|
+
ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
|
80
80
|
}
|
81
81
|
LOG_UPDATE_INTERVAL(this);
|
82
82
|
LOG_SENSOR(" ", "Battery Voltage", this->voltage_sensor_);
|
@@ -1,5 +1,6 @@
|
|
1
1
|
#include "max31855.h"
|
2
2
|
|
3
|
+
#include "esphome/core/helpers.h"
|
3
4
|
#include "esphome/core/log.h"
|
4
5
|
|
5
6
|
namespace esphome {
|
@@ -19,7 +20,7 @@ void MAX31855Sensor::update() {
|
|
19
20
|
}
|
20
21
|
|
21
22
|
void MAX31855Sensor::setup() {
|
22
|
-
ESP_LOGCONFIG(TAG, "
|
23
|
+
ESP_LOGCONFIG(TAG, "Running setup for '%s'", this->name_.c_str());
|
23
24
|
this->spi_setup();
|
24
25
|
}
|
25
26
|
void MAX31855Sensor::dump_config() {
|
@@ -11,7 +11,7 @@ static const char *const TAG = "max31856";
|
|
11
11
|
// Based on Adafruit's library: https://github.com/adafruit/Adafruit_MAX31856
|
12
12
|
|
13
13
|
void MAX31856Sensor::setup() {
|
14
|
-
ESP_LOGCONFIG(TAG, "
|
14
|
+
ESP_LOGCONFIG(TAG, "Running setup for '%s'", this->name_.c_str());
|
15
15
|
this->spi_setup();
|
16
16
|
|
17
17
|
// assert on any fault
|
@@ -23,8 +23,6 @@ void MAX31856Sensor::setup() {
|
|
23
23
|
|
24
24
|
this->set_thermocouple_type_();
|
25
25
|
this->set_noise_filter_();
|
26
|
-
|
27
|
-
ESP_LOGCONFIG(TAG, "Completed setting up MAX31856Sensor '%s'...", this->name_.c_str());
|
28
26
|
}
|
29
27
|
|
30
28
|
void MAX31856Sensor::dump_config() {
|
@@ -97,28 +95,28 @@ bool MAX31856Sensor::has_fault_() {
|
|
97
95
|
this->status_set_warning();
|
98
96
|
|
99
97
|
if ((faults & MAX31856_FAULT_CJRANGE) == MAX31856_FAULT_CJRANGE) {
|
100
|
-
ESP_LOGW(TAG, "Cold Junction Out-of-Range: '%s'
|
98
|
+
ESP_LOGW(TAG, "Cold Junction Out-of-Range: '%s'", this->name_.c_str());
|
101
99
|
}
|
102
100
|
if ((faults & MAX31856_FAULT_TCRANGE) == MAX31856_FAULT_TCRANGE) {
|
103
|
-
ESP_LOGW(TAG, "Thermocouple Out-of-Range: '%s'
|
101
|
+
ESP_LOGW(TAG, "Thermocouple Out-of-Range: '%s'", this->name_.c_str());
|
104
102
|
}
|
105
103
|
if ((faults & MAX31856_FAULT_CJHIGH) == MAX31856_FAULT_CJHIGH) {
|
106
|
-
ESP_LOGW(TAG, "Cold-Junction High Fault: '%s'
|
104
|
+
ESP_LOGW(TAG, "Cold-Junction High Fault: '%s'", this->name_.c_str());
|
107
105
|
}
|
108
106
|
if ((faults & MAX31856_FAULT_CJLOW) == MAX31856_FAULT_CJLOW) {
|
109
|
-
ESP_LOGW(TAG, "Cold-Junction Low Fault: '%s'
|
107
|
+
ESP_LOGW(TAG, "Cold-Junction Low Fault: '%s'", this->name_.c_str());
|
110
108
|
}
|
111
109
|
if ((faults & MAX31856_FAULT_TCHIGH) == MAX31856_FAULT_TCHIGH) {
|
112
|
-
ESP_LOGW(TAG, "Thermocouple Temperature High Fault: '%s'
|
110
|
+
ESP_LOGW(TAG, "Thermocouple Temperature High Fault: '%s'", this->name_.c_str());
|
113
111
|
}
|
114
112
|
if ((faults & MAX31856_FAULT_TCLOW) == MAX31856_FAULT_TCLOW) {
|
115
|
-
ESP_LOGW(TAG, "Thermocouple Temperature Low Fault: '%s'
|
113
|
+
ESP_LOGW(TAG, "Thermocouple Temperature Low Fault: '%s'", this->name_.c_str());
|
116
114
|
}
|
117
115
|
if ((faults & MAX31856_FAULT_OVUV) == MAX31856_FAULT_OVUV) {
|
118
|
-
ESP_LOGW(TAG, "Overvoltage or Undervoltage Input Fault: '%s'
|
116
|
+
ESP_LOGW(TAG, "Overvoltage or Undervoltage Input Fault: '%s'", this->name_.c_str());
|
119
117
|
}
|
120
118
|
if ((faults & MAX31856_FAULT_OPEN) == MAX31856_FAULT_OPEN) {
|
121
|
-
ESP_LOGW(TAG, "Thermocouple Open-Circuit Fault (possibly not connected): '%s'
|
119
|
+
ESP_LOGW(TAG, "Thermocouple Open-Circuit Fault (possibly not connected): '%s'", this->name_.c_str());
|
122
120
|
}
|
123
121
|
|
124
122
|
return true;
|
@@ -65,7 +65,7 @@ void MAX31865Sensor::update() {
|
|
65
65
|
}
|
66
66
|
|
67
67
|
void MAX31865Sensor::setup() {
|
68
|
-
ESP_LOGCONFIG(TAG, "
|
68
|
+
ESP_LOGCONFIG(TAG, "Running setup for '%s'", this->name_.c_str());
|
69
69
|
this->spi_setup();
|
70
70
|
|
71
71
|
// Build base configuration
|
@@ -83,9 +83,11 @@ void MAX31865Sensor::dump_config() {
|
|
83
83
|
LOG_SENSOR("", "MAX31865", this);
|
84
84
|
LOG_PIN(" CS Pin: ", this->cs_);
|
85
85
|
LOG_UPDATE_INTERVAL(this);
|
86
|
-
ESP_LOGCONFIG(TAG,
|
87
|
-
|
88
|
-
|
86
|
+
ESP_LOGCONFIG(TAG,
|
87
|
+
" Reference Resistance: %.2fΩ\n"
|
88
|
+
" RTD: %u-wire %.2fΩ\n"
|
89
|
+
" Mains Filter: %s",
|
90
|
+
reference_resistance_, rtd_wires_, rtd_nominal_resistance_,
|
89
91
|
(filter_ == FILTER_60HZ ? "60 Hz" : (filter_ == FILTER_50HZ ? "50 Hz" : "Unknown!")));
|
90
92
|
}
|
91
93
|
|
@@ -21,7 +21,7 @@ static const uint8_t MAX44009_ERROR_HIGH_BYTE = -30;
|
|
21
21
|
static const uint8_t MAX44009_ERROR_LOW_BYTE = -31;
|
22
22
|
|
23
23
|
void MAX44009Sensor::setup() {
|
24
|
-
ESP_LOGCONFIG(TAG, "
|
24
|
+
ESP_LOGCONFIG(TAG, "Running setup");
|
25
25
|
bool state_ok = false;
|
26
26
|
if (this->mode_ == MAX44009Mode::MAX44009_MODE_LOW_POWER) {
|
27
27
|
state_ok = this->set_low_power_mode();
|
@@ -48,7 +48,7 @@ void MAX44009Sensor::dump_config() {
|
|
48
48
|
ESP_LOGCONFIG(TAG, "MAX44009:");
|
49
49
|
LOG_I2C_DEVICE(this);
|
50
50
|
if (this->is_failed()) {
|
51
|
-
ESP_LOGE(TAG,
|
51
|
+
ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
|
52
52
|
}
|
53
53
|
}
|
54
54
|
|
@@ -18,7 +18,7 @@ void MAX6675Sensor::update() {
|
|
18
18
|
}
|
19
19
|
|
20
20
|
void MAX6675Sensor::setup() {
|
21
|
-
ESP_LOGCONFIG(TAG, "
|
21
|
+
ESP_LOGCONFIG(TAG, "Running setup for '%s'", this->name_.c_str());
|
22
22
|
this->spi_setup();
|
23
23
|
}
|
24
24
|
void MAX6675Sensor::dump_config() {
|
@@ -20,7 +20,7 @@ const uint8_t MASK_CURRENT_PIN = 0x0F;
|
|
20
20
|
* MAX6956 *
|
21
21
|
**************************************/
|
22
22
|
void MAX6956::setup() {
|
23
|
-
ESP_LOGCONFIG(TAG, "
|
23
|
+
ESP_LOGCONFIG(TAG, "Running setup");
|
24
24
|
uint8_t configuration;
|
25
25
|
if (!this->read_reg_(MAX6956_CONFIGURATION, &configuration)) {
|
26
26
|
this->mark_failed();
|
@@ -146,8 +146,10 @@ void MAX6956::dump_config() {
|
|
146
146
|
ESP_LOGCONFIG(TAG, "MAX6956");
|
147
147
|
|
148
148
|
if (brightness_mode_ == MAX6956CURRENTMODE::GLOBAL) {
|
149
|
-
ESP_LOGCONFIG(TAG,
|
150
|
-
|
149
|
+
ESP_LOGCONFIG(TAG,
|
150
|
+
"current mode: global\n"
|
151
|
+
"global brightness: %u",
|
152
|
+
global_brightness_);
|
151
153
|
} else {
|
152
154
|
ESP_LOGCONFIG(TAG, "current mode: segment");
|
153
155
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
#include "max7219.h"
|
2
|
-
#include "esphome/core/log.h"
|
3
|
-
#include "esphome/core/helpers.h"
|
4
2
|
#include "esphome/core/hal.h"
|
3
|
+
#include "esphome/core/helpers.h"
|
4
|
+
#include "esphome/core/log.h"
|
5
5
|
|
6
6
|
namespace esphome {
|
7
7
|
namespace max7219 {
|
@@ -116,7 +116,7 @@ const uint8_t MAX7219_ASCII_TO_RAW[95] PROGMEM = {
|
|
116
116
|
|
117
117
|
float MAX7219Component::get_setup_priority() const { return setup_priority::PROCESSOR; }
|
118
118
|
void MAX7219Component::setup() {
|
119
|
-
ESP_LOGCONFIG(TAG, "
|
119
|
+
ESP_LOGCONFIG(TAG, "Running setup");
|
120
120
|
this->spi_setup();
|
121
121
|
this->buffer_ = new uint8_t[this->num_chips_ * 8]; // NOLINT
|
122
122
|
for (uint8_t i = 0; i < this->num_chips_ * 8; i++)
|
@@ -133,9 +133,11 @@ void MAX7219Component::setup() {
|
|
133
133
|
this->send_to_all_(MAX7219_REGISTER_SHUTDOWN, 1);
|
134
134
|
}
|
135
135
|
void MAX7219Component::dump_config() {
|
136
|
-
ESP_LOGCONFIG(TAG,
|
137
|
-
|
138
|
-
|
136
|
+
ESP_LOGCONFIG(TAG,
|
137
|
+
"MAX7219:\n"
|
138
|
+
" Number of Chips: %u\n"
|
139
|
+
" Intensity: %u",
|
140
|
+
this->num_chips_, this->intensity_);
|
139
141
|
LOG_PIN(" CS Pin: ", this->cs_);
|
140
142
|
LOG_UPDATE_INTERVAL(this);
|
141
143
|
}
|
@@ -0,0 +1,52 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include "esphome/core/automation.h"
|
4
|
+
#include "esphome/core/helpers.h"
|
5
|
+
|
6
|
+
#include "max7219digit.h"
|
7
|
+
|
8
|
+
namespace esphome {
|
9
|
+
namespace max7219digit {
|
10
|
+
|
11
|
+
template<typename... Ts> class DisplayInvertAction : public Action<Ts...>, public Parented<MAX7219Component> {
|
12
|
+
public:
|
13
|
+
TEMPLATABLE_VALUE(bool, state)
|
14
|
+
|
15
|
+
void play(Ts... x) override {
|
16
|
+
bool state = this->state_.value(x...);
|
17
|
+
this->parent_->invert_on_off(state);
|
18
|
+
}
|
19
|
+
};
|
20
|
+
|
21
|
+
template<typename... Ts> class DisplayVisibilityAction : public Action<Ts...>, public Parented<MAX7219Component> {
|
22
|
+
public:
|
23
|
+
TEMPLATABLE_VALUE(bool, state)
|
24
|
+
|
25
|
+
void play(Ts... x) override {
|
26
|
+
bool state = this->state_.value(x...);
|
27
|
+
this->parent_->turn_on_off(state);
|
28
|
+
}
|
29
|
+
};
|
30
|
+
|
31
|
+
template<typename... Ts> class DisplayReverseAction : public Action<Ts...>, public Parented<MAX7219Component> {
|
32
|
+
public:
|
33
|
+
TEMPLATABLE_VALUE(bool, state)
|
34
|
+
|
35
|
+
void play(Ts... x) override {
|
36
|
+
bool state = this->state_.value(x...);
|
37
|
+
this->parent_->set_reverse(state);
|
38
|
+
}
|
39
|
+
};
|
40
|
+
|
41
|
+
template<typename... Ts> class DisplayIntensityAction : public Action<Ts...>, public Parented<MAX7219Component> {
|
42
|
+
public:
|
43
|
+
TEMPLATABLE_VALUE(uint8_t, state)
|
44
|
+
|
45
|
+
void play(Ts... x) override {
|
46
|
+
uint8_t state = this->state_.value(x...);
|
47
|
+
this->parent_->set_intensity(state);
|
48
|
+
}
|
49
|
+
};
|
50
|
+
|
51
|
+
} // namespace max7219digit
|
52
|
+
} // namespace esphome
|