esphome 2025.6.2__py3-none-any.whl → 2025.7.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 +1 -3
- esphome/codegen.py +2 -0
- esphome/components/ac_dimmer/ac_dimmer.cpp +6 -6
- esphome/components/adc/__init__.py +25 -1
- esphome/components/adc/adc_sensor.h +11 -11
- esphome/components/adc/adc_sensor_common.cpp +1 -1
- esphome/components/adc/adc_sensor_esp32.cpp +16 -8
- esphome/components/ade7880/ade7880.h +0 -2
- esphome/components/ads1115/ads1115.h +0 -1
- esphome/components/ads1118/ads1118.h +0 -1
- esphome/components/ags10/ags10.h +0 -2
- esphome/components/aic3204/aic3204.h +0 -1
- esphome/components/alarm_control_panel/__init__.py +5 -2
- esphome/components/alpha3/alpha3.h +0 -1
- esphome/components/am43/cover/am43_cover.h +0 -1
- esphome/components/am43/sensor/am43_sensor.h +0 -1
- esphome/components/analog_threshold/analog_threshold_binary_sensor.h +0 -2
- esphome/components/anova/anova.cpp +5 -1
- esphome/components/anova/anova.h +0 -1
- esphome/components/apds9960/apds9960.cpp +1 -1
- esphome/components/api/__init__.py +42 -20
- esphome/components/api/api_connection.cpp +318 -391
- esphome/components/api/api_connection.h +206 -126
- esphome/components/api/api_frame_helper.cpp +89 -124
- esphome/components/api/api_frame_helper.h +57 -45
- esphome/components/api/api_pb2.cpp +414 -4350
- esphome/components/api/api_pb2.h +287 -198
- esphome/components/api/api_pb2_dump.cpp +4333 -0
- esphome/components/api/api_pb2_service.cpp +180 -425
- esphome/components/api/api_pb2_service.h +7 -6
- esphome/components/api/api_pb2_size.h +2 -4
- esphome/components/api/api_server.cpp +138 -167
- esphome/components/api/api_server.h +66 -12
- esphome/components/api/client.py +10 -4
- esphome/components/api/list_entities.cpp +36 -105
- esphome/components/api/list_entities.h +31 -23
- esphome/components/api/proto.h +26 -3
- esphome/components/api/subscribe_state.cpp +23 -29
- esphome/components/api/subscribe_state.h +26 -19
- esphome/components/as5600/as5600.h +0 -1
- esphome/components/async_tcp/__init__.py +14 -5
- esphome/components/atc_mithermometer/atc_mithermometer.h +0 -1
- esphome/components/atm90e32/atm90e32.cpp +2 -1
- esphome/components/audio/audio_decoder.cpp +1 -1
- esphome/components/audio/audio_transfer_buffer.cpp +2 -2
- esphome/components/b_parasite/b_parasite.h +0 -1
- esphome/components/bedjet/bedjet_hub.cpp +5 -1
- esphome/components/bedjet/climate/bedjet_climate.cpp +5 -1
- esphome/components/beken_spi_led_strip/led_strip.cpp +4 -2
- esphome/components/bh1750/bh1750.cpp +5 -5
- esphome/components/binary_sensor/__init__.py +82 -5
- esphome/components/binary_sensor/automation.h +19 -1
- esphome/components/binary_sensor/binary_sensor.cpp +12 -30
- esphome/components/binary_sensor/binary_sensor.h +11 -25
- esphome/components/binary_sensor/filter.cpp +29 -24
- esphome/components/binary_sensor/filter.h +20 -10
- esphome/components/ble_client/output/ble_binary_output.h +0 -1
- esphome/components/ble_client/sensor/ble_rssi_sensor.cpp +5 -1
- esphome/components/ble_client/sensor/ble_rssi_sensor.h +0 -1
- esphome/components/ble_client/sensor/ble_sensor.cpp +5 -1
- esphome/components/ble_client/sensor/ble_sensor.h +0 -1
- esphome/components/ble_client/switch/ble_switch.h +0 -1
- esphome/components/ble_client/text_sensor/ble_text_sensor.cpp +5 -1
- esphome/components/ble_client/text_sensor/ble_text_sensor.h +0 -1
- esphome/components/ble_presence/ble_presence_device.h +0 -1
- esphome/components/ble_rssi/ble_rssi_sensor.h +0 -1
- esphome/components/ble_scanner/ble_scanner.h +0 -1
- esphome/components/bluetooth_proxy/bluetooth_connection.h +9 -2
- esphome/components/bluetooth_proxy/bluetooth_proxy.cpp +16 -6
- esphome/components/bluetooth_proxy/bluetooth_proxy.h +8 -2
- esphome/components/bme680/sensor.py +1 -1
- esphome/components/bmp581/bmp581.h +0 -2
- esphome/components/button/__init__.py +5 -2
- esphome/components/camera/__init__.py +1 -0
- esphome/components/camera/camera.cpp +22 -0
- esphome/components/camera/camera.h +80 -0
- esphome/components/canbus/__init__.py +1 -0
- esphome/components/cap1188/cap1188.h +0 -1
- esphome/components/captive_portal/__init__.py +12 -2
- esphome/components/captive_portal/captive_portal.cpp +12 -2
- esphome/components/captive_portal/captive_portal.h +5 -2
- esphome/components/ccs811/ccs811.h +0 -2
- esphome/components/climate/__init__.py +5 -2
- esphome/components/cm1106/sensor.py +2 -2
- esphome/components/const/__init__.py +2 -0
- esphome/components/copy/binary_sensor/copy_binary_sensor.h +0 -1
- esphome/components/copy/button/copy_button.h +0 -1
- esphome/components/copy/cover/copy_cover.h +0 -1
- esphome/components/copy/fan/copy_fan.h +0 -1
- esphome/components/copy/lock/copy_lock.h +0 -1
- esphome/components/copy/number/copy_number.h +0 -1
- esphome/components/copy/select/copy_select.h +0 -1
- esphome/components/copy/sensor/copy_sensor.h +0 -1
- esphome/components/copy/switch/copy_switch.h +0 -1
- esphome/components/copy/text/copy_text.h +0 -1
- esphome/components/copy/text_sensor/copy_text_sensor.h +0 -1
- esphome/components/cover/__init__.py +5 -2
- esphome/components/cs5460a/cs5460a.h +0 -1
- esphome/components/datetime/__init__.py +4 -2
- esphome/components/debug/__init__.py +20 -0
- esphome/components/deep_sleep/__init__.py +43 -9
- esphome/components/demo/__init__.py +2 -2
- esphome/components/display/display.cpp +4 -3
- esphome/components/display/display.h +0 -2
- esphome/components/display/display_buffer.cpp +1 -1
- esphome/components/ds2484/__init__.py +1 -0
- esphome/components/ds2484/ds2484.cpp +209 -0
- esphome/components/ds2484/ds2484.h +43 -0
- esphome/components/ds2484/one_wire.py +37 -0
- esphome/components/duty_time/duty_time_sensor.h +0 -1
- esphome/components/ens160_base/ens160_base.h +0 -1
- esphome/components/es7210/es7210.h +0 -1
- esphome/components/es7243e/es7243e.h +0 -1
- esphome/components/es8156/es8156.h +0 -1
- esphome/components/es8311/es8311.h +0 -1
- esphome/components/es8388/es8388.h +0 -1
- esphome/components/esp32/__init__.py +102 -135
- esphome/components/esp32/core.cpp +0 -4
- esphome/components/esp32/gpio.h +1 -1
- esphome/components/esp32/helpers.cpp +69 -0
- esphome/components/esp32_ble/ble.cpp +5 -6
- esphome/components/esp32_ble/ble.h +29 -14
- esphome/components/esp32_ble/ble_event.h +6 -6
- esphome/components/esp32_ble_client/ble_client_base.cpp +21 -6
- esphome/components/esp32_ble_client/ble_client_base.h +24 -9
- esphome/components/esp32_ble_tracker/__init__.py +2 -8
- esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp +5 -5
- esphome/components/esp32_ble_tracker/esp32_ble_tracker.h +11 -7
- esphome/components/esp32_camera/__init__.py +111 -97
- esphome/components/esp32_camera/esp32_camera.cpp +41 -31
- esphome/components/esp32_camera/esp32_camera.h +35 -30
- esphome/components/esp32_camera_web_server/__init__.py +2 -1
- esphome/components/esp32_camera_web_server/camera_web_server.cpp +8 -8
- esphome/components/esp32_camera_web_server/camera_web_server.h +3 -3
- esphome/components/esp32_hall/sensor.py +2 -21
- esphome/components/esp32_hosted/__init__.py +101 -0
- esphome/components/esp32_hosted/esp32_hosted.py.script +12 -0
- esphome/components/esp32_improv/esp32_improv_component.cpp +3 -0
- esphome/components/esp32_rmt/__init__.py +0 -58
- esphome/components/esp32_rmt_led_strip/led_strip.cpp +77 -63
- esphome/components/esp32_rmt_led_strip/led_strip.h +11 -17
- esphome/components/esp32_rmt_led_strip/light.py +14 -76
- esphome/components/esp32_touch/esp32_touch.h +174 -28
- esphome/components/esp32_touch/esp32_touch_common.cpp +162 -0
- esphome/components/esp32_touch/esp32_touch_v1.cpp +238 -0
- esphome/components/esp32_touch/esp32_touch_v2.cpp +397 -0
- esphome/components/esp8266/__init__.py +1 -0
- esphome/components/esp8266/gpio.cpp +10 -10
- esphome/components/esp8266/helpers.cpp +31 -0
- esphome/components/esphome/ota/__init__.py +1 -0
- esphome/components/esphome/ota/ota_esphome.cpp +24 -19
- esphome/components/ethernet/__init__.py +42 -23
- esphome/components/ethernet/esp_eth_phy_jl1101.c +0 -16
- esphome/components/ethernet/ethernet_component.cpp +69 -29
- esphome/components/ethernet/ethernet_component.h +18 -10
- esphome/components/event/__init__.py +5 -2
- esphome/components/ezo/ezo.h +0 -1
- esphome/components/ezo_pmp/ezo_pmp.h +0 -1
- esphome/components/fan/__init__.py +5 -2
- esphome/components/feedback/feedback_cover.h +0 -1
- esphome/components/font/__init__.py +92 -82
- esphome/components/font/font.cpp +9 -2
- esphome/components/font/font.h +20 -5
- esphome/components/fs3000/fs3000.h +0 -1
- esphome/components/gcja5/gcja5.h +0 -1
- esphome/components/gl_r01_i2c/__init__.py +0 -0
- esphome/components/gl_r01_i2c/gl_r01_i2c.cpp +68 -0
- esphome/components/gl_r01_i2c/gl_r01_i2c.h +22 -0
- esphome/components/gl_r01_i2c/sensor.py +36 -0
- esphome/components/gp8403/gp8403.h +0 -1
- esphome/components/gpio/binary_sensor/__init__.py +17 -0
- esphome/components/gpio/binary_sensor/gpio_binary_sensor.cpp +77 -3
- esphome/components/gpio/binary_sensor/gpio_binary_sensor.h +40 -0
- esphome/components/grove_gas_mc_v2/grove_gas_mc_v2.h +0 -2
- esphome/components/he60r/he60r.h +0 -1
- esphome/components/heatpumpir/climate.py +2 -1
- esphome/components/heatpumpir/heatpumpir.cpp +1 -0
- esphome/components/heatpumpir/heatpumpir.h +1 -0
- esphome/components/honeywellabp2_i2c/honeywellabp2.h +0 -1
- esphome/components/host/__init__.py +2 -1
- esphome/components/host/helpers.cpp +57 -0
- esphome/components/http_request/__init__.py +19 -1
- esphome/components/http_request/http_request.h +1 -1
- esphome/components/http_request/http_request_arduino.cpp +0 -1
- esphome/components/http_request/http_request_arduino.h +1 -0
- esphome/components/http_request/http_request_idf.cpp +0 -1
- esphome/components/http_request/ota/ota_http_request.cpp +1 -1
- esphome/components/http_request/update/http_request_update.cpp +28 -9
- esphome/components/hydreon_rgxx/hydreon_rgxx.cpp +3 -9
- esphome/components/hydreon_rgxx/sensor.py +1 -1
- esphome/components/i2c/__init__.py +23 -11
- esphome/components/i2c/i2c_bus.h +8 -1
- esphome/components/i2c/i2c_bus_arduino.cpp +4 -3
- esphome/components/i2c/i2c_bus_arduino.h +6 -3
- esphome/components/i2c/i2c_bus_esp_idf.h +5 -3
- esphome/components/i2c_device/i2c_device.h +0 -1
- esphome/components/i2s_audio/__init__.py +2 -10
- esphome/components/i2s_audio/i2s_audio.cpp +1 -5
- esphome/components/i2s_audio/media_player/__init__.py +2 -2
- esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp +2 -2
- esphome/components/iaqcore/iaqcore.h +0 -2
- esphome/components/image/__init__.py +123 -24
- esphome/components/improv_serial/improv_serial_component.cpp +0 -4
- esphome/components/ina219/ina219.cpp +7 -0
- esphome/components/ina219/ina219.h +1 -0
- esphome/components/ina260/ina260.h +0 -2
- esphome/components/inkbird_ibsth1_mini/inkbird_ibsth1_mini.h +0 -1
- esphome/components/inkplate6/display.py +15 -0
- esphome/components/inkplate6/inkplate.cpp +2 -2
- esphome/components/integration/integration_sensor.h +0 -1
- esphome/components/internal_temperature/internal_temperature.cpp +8 -27
- esphome/components/internal_temperature/sensor.py +0 -26
- esphome/components/interval/interval.h +0 -2
- esphome/components/ld2410/button/__init__.py +3 -3
- esphome/components/ld2410/button/factory_reset_button.cpp +9 -0
- esphome/components/ld2410/button/{reset_button.h → factory_reset_button.h} +2 -2
- esphome/components/ld2410/ld2410.cpp +430 -261
- esphome/components/ld2410/ld2410.h +44 -146
- esphome/components/ld2410/number/__init__.py +2 -2
- esphome/components/ld2410/sensor.py +1 -1
- esphome/components/ld2410/switch/__init__.py +1 -1
- esphome/components/ld2420/ld2420.cpp +196 -100
- esphome/components/ld2420/ld2420.h +46 -118
- esphome/components/ld2420/number/__init__.py +2 -2
- esphome/components/ld2420/sensor/__init__.py +6 -2
- esphome/components/ld2420/sensor/ld2420_sensor.h +1 -1
- esphome/components/ld2450/button/__init__.py +3 -3
- esphome/components/ld2450/button/factory_reset_button.cpp +9 -0
- esphome/components/ld2450/button/{reset_button.h → factory_reset_button.h} +2 -2
- esphome/components/ld2450/ld2450.cpp +384 -232
- esphome/components/ld2450/ld2450.h +60 -69
- esphome/components/ld2450/switch/__init__.py +1 -1
- esphome/components/ledc/ledc_output.cpp +1 -63
- esphome/components/libretiny/__init__.py +4 -3
- esphome/components/libretiny/const.py +5 -0
- esphome/components/libretiny/generate_components.py +1 -0
- esphome/components/libretiny/helpers.cpp +35 -0
- esphome/components/libretiny/lt_component.cpp +5 -3
- esphome/components/light/__init__.py +4 -2
- esphome/components/light/addressable_light.h +3 -3
- esphome/components/light/light_call.cpp +180 -243
- esphome/components/light/light_call.h +72 -20
- esphome/components/light/light_color_values.h +14 -14
- esphome/components/light/light_state.h +15 -13
- esphome/components/light/transformers.h +2 -2
- esphome/components/ln882x/__init__.py +52 -0
- esphome/components/ln882x/boards.py +285 -0
- esphome/components/lock/__init__.py +5 -2
- esphome/components/logger/__init__.py +40 -3
- esphome/components/logger/logger.cpp +47 -12
- esphome/components/logger/logger.h +80 -49
- esphome/components/logger/logger_esp32.cpp +3 -3
- esphome/components/lps22/__init__.py +0 -0
- esphome/components/lps22/lps22.cpp +75 -0
- esphome/components/lps22/lps22.h +27 -0
- esphome/components/lps22/sensor.py +58 -0
- esphome/components/ltr390/ltr390.h +0 -1
- esphome/components/ltr501/ltr501.h +0 -1
- esphome/components/ltr_als_ps/ltr_als_ps.h +0 -1
- esphome/components/lvgl/__init__.py +1 -1
- esphome/components/lvgl/schemas.py +66 -6
- esphome/components/lvgl/styles.py +24 -16
- esphome/components/lvgl/widgets/__init__.py +12 -2
- esphome/components/lvgl/widgets/lv_bar.py +40 -19
- esphome/components/m5stack_8angle/light/m5stack_8angle_light.cpp +1 -1
- esphome/components/max9611/max9611.h +0 -1
- esphome/components/mcp23016/__init__.py +1 -1
- esphome/components/mcp23xxx_base/__init__.py +1 -1
- esphome/components/mcp4461/__init__.py +1 -1
- esphome/components/mcp4461/output/__init__.py +3 -2
- esphome/components/mcp9600/mcp9600.h +0 -2
- esphome/components/md5/md5.cpp +3 -3
- esphome/components/md5/md5.h +1 -6
- esphome/components/mdns/__init__.py +22 -11
- esphome/components/media_player/__init__.py +4 -3
- esphome/components/micro_wake_word/__init__.py +1 -5
- esphome/components/micro_wake_word/streaming_model.cpp +2 -2
- esphome/components/microphone/microphone.cpp +7 -9
- esphome/components/microphone/microphone.h +0 -2
- esphome/components/mipi_spi/display.py +1 -0
- esphome/components/mmc5603/mmc5603.cpp +1 -1
- esphome/components/modbus/modbus.cpp +33 -15
- esphome/components/modbus/modbus.h +9 -0
- esphome/components/modbus_controller/__init__.py +42 -10
- esphome/components/modbus_controller/modbus_controller.cpp +92 -11
- esphome/components/modbus_controller/modbus_controller.h +61 -7
- esphome/components/mopeka_pro_check/mopeka_pro_check.h +0 -1
- esphome/components/mopeka_std_check/mopeka_std_check.h +0 -1
- esphome/components/mpl3115a2/mpl3115a2.h +0 -2
- esphome/components/mqtt/__init__.py +16 -0
- esphome/components/mqtt/mqtt_backend.h +2 -1
- esphome/components/mqtt/mqtt_backend_esp32.cpp +126 -45
- esphome/components/mqtt/mqtt_backend_esp32.h +106 -4
- esphome/components/mqtt/mqtt_client.cpp +15 -9
- esphome/components/mqtt/mqtt_client.h +8 -3
- esphome/components/ms8607/ms8607.h +0 -1
- esphome/components/neopixelbus/light.py +4 -1
- esphome/components/neopixelbus/neopixelbus_light.h +1 -1
- esphome/components/network/__init__.py +4 -1
- esphome/components/network/ip_address.h +1 -0
- esphome/components/nextion/__init__.py +16 -0
- esphome/components/nextion/base_component.py +1 -0
- esphome/components/nextion/binary_sensor/nextion_binarysensor.cpp +1 -1
- esphome/components/nextion/display.py +14 -4
- esphome/components/nextion/nextion.cpp +166 -101
- esphome/components/nextion/nextion.h +84 -53
- esphome/components/nextion/nextion_commands.cpp +11 -10
- esphome/components/nextion/nextion_component.cpp +28 -28
- esphome/components/nextion/nextion_component.h +53 -18
- esphome/components/nextion/nextion_component_base.h +3 -0
- esphome/components/nextion/nextion_upload.cpp +36 -0
- esphome/components/nextion/nextion_upload_arduino.cpp +10 -35
- esphome/components/nextion/nextion_upload_idf.cpp +9 -33
- esphome/components/nextion/sensor/nextion_sensor.cpp +1 -1
- esphome/components/nextion/switch/nextion_switch.cpp +1 -1
- esphome/components/nextion/text_sensor/nextion_textsensor.cpp +1 -1
- esphome/components/nfc/nfc.cpp +3 -22
- esphome/components/nfc/nfc.h +3 -3
- esphome/components/number/__init__.py +5 -2
- esphome/components/online_image/__init__.py +5 -0
- esphome/components/online_image/online_image.cpp +6 -2
- esphome/components/online_image/online_image.h +4 -1
- esphome/components/opentherm/opentherm.cpp +7 -12
- esphome/components/openthread/__init__.py +47 -40
- esphome/components/openthread/const.py +1 -0
- esphome/components/openthread/openthread_esp.cpp +27 -5
- esphome/components/opt3001/__init__.py +0 -0
- esphome/components/opt3001/opt3001.cpp +122 -0
- esphome/components/opt3001/opt3001.h +27 -0
- esphome/components/opt3001/sensor.py +35 -0
- esphome/components/ota/__init__.py +17 -0
- esphome/components/ota/ota_backend.h +27 -1
- esphome/components/ota/ota_backend_arduino_esp32.cpp +12 -2
- esphome/components/ota/ota_backend_arduino_esp32.h +3 -0
- esphome/components/ota/ota_backend_arduino_esp8266.cpp +18 -4
- esphome/components/ota/ota_backend_arduino_esp8266.h +3 -0
- esphome/components/ota/ota_backend_arduino_libretiny.cpp +12 -2
- esphome/components/ota/ota_backend_arduino_libretiny.h +3 -0
- esphome/components/ota/ota_backend_arduino_rp2040.cpp +9 -2
- esphome/components/ota/ota_backend_arduino_rp2040.h +3 -0
- esphome/components/ota/ota_backend_esp_idf.cpp +10 -16
- esphome/components/ota/ota_backend_esp_idf.h +1 -0
- esphome/components/packages/__init__.py +5 -2
- esphome/components/packet_transport/binary_sensor.py +61 -4
- esphome/components/packet_transport/packet_transport.cpp +31 -1
- esphome/components/packet_transport/packet_transport.h +11 -5
- esphome/components/pcf8574/__init__.py +1 -1
- esphome/components/pi4ioe5v6408/__init__.py +84 -0
- esphome/components/pi4ioe5v6408/pi4ioe5v6408.cpp +171 -0
- esphome/components/pi4ioe5v6408/pi4ioe5v6408.h +70 -0
- esphome/components/pmsa003i/pmsa003i.h +0 -1
- esphome/components/pmsx003/pmsx003.h +0 -1
- esphome/components/pn7150/pn7150.cpp +7 -7
- esphome/components/pn7150/pn7150.h +0 -1
- esphome/components/pn7160/pn7160.cpp +7 -7
- esphome/components/pn7160/pn7160.h +0 -1
- esphome/components/preferences/syncer.h +2 -0
- esphome/components/prometheus/prometheus_handler.h +1 -1
- esphome/components/psram/psram.cpp +0 -20
- esphome/components/pulse_counter/pulse_counter_sensor.h +0 -1
- esphome/components/pulse_meter/pulse_meter_sensor.cpp +8 -4
- esphome/components/pulse_width/pulse_width.h +0 -1
- esphome/components/pvvx_mithermometer/display/pvvx_display.cpp +0 -4
- esphome/components/pvvx_mithermometer/display/pvvx_display.h +0 -2
- esphome/components/pvvx_mithermometer/pvvx_mithermometer.h +0 -1
- esphome/components/qr_code/__init__.py +13 -10
- esphome/components/qwiic_pir/qwiic_pir.h +0 -1
- esphome/components/radon_eye_ble/radon_eye_listener.cpp +1 -1
- esphome/components/rc522/rc522.h +0 -1
- esphome/components/rdm6300/rdm6300.h +0 -2
- esphome/components/remote_base/__init__.py +7 -5
- esphome/components/remote_base/remote_base.cpp +24 -21
- esphome/components/remote_base/remote_base.h +3 -26
- esphome/components/remote_receiver/__init__.py +40 -46
- esphome/components/remote_receiver/remote_receiver.h +4 -18
- esphome/components/remote_receiver/remote_receiver_esp32.cpp +0 -87
- esphome/components/remote_receiver/remote_receiver_esp8266.cpp +1 -1
- esphome/components/remote_transmitter/__init__.py +42 -43
- esphome/components/remote_transmitter/remote_transmitter.h +2 -14
- esphome/components/remote_transmitter/remote_transmitter_esp32.cpp +0 -77
- esphome/components/resistance/resistance_sensor.h +0 -1
- esphome/components/rp2040/__init__.py +1 -0
- esphome/components/rp2040/helpers.cpp +55 -0
- esphome/components/rp2040_pio_led_strip/led_strip.cpp +2 -2
- esphome/components/rpi_dpi_rgb/rpi_dpi_rgb.cpp +0 -4
- esphome/components/rtttl/__init__.py +4 -4
- esphome/components/rtttl/rtttl.cpp +10 -1
- esphome/components/ruuvitag/ruuvitag.h +0 -1
- esphome/components/safe_mode/safe_mode.cpp +2 -0
- esphome/components/safe_mode/safe_mode.h +4 -1
- esphome/components/scd30/scd30.h +0 -1
- esphome/components/scd30/sensor.py +2 -2
- esphome/components/scd4x/scd4x.cpp +61 -54
- esphome/components/scd4x/scd4x.h +17 -15
- esphome/components/scd4x/sensor.py +4 -4
- esphome/components/script/script.h +0 -2
- esphome/components/sdp3x/sensor.py +1 -1
- esphome/components/select/__init__.py +5 -2
- esphome/components/sen5x/sen5x.h +0 -1
- esphome/components/senseair/senseair.h +0 -1
- esphome/components/sensor/__init__.py +4 -2
- esphome/components/sensor/filter.cpp +1 -1
- esphome/components/sensor/sensor.cpp +12 -6
- esphome/components/sensor/sensor.h +13 -5
- esphome/components/servo/servo.h +0 -1
- esphome/components/sfa30/sfa30.h +0 -1
- esphome/components/sgp30/sgp30.h +0 -1
- esphome/components/sgp4x/sgp4x.h +0 -1
- esphome/components/shelly_dimmer/stm32flash.cpp +1 -2
- esphome/components/sht4x/sht4x.h +0 -1
- esphome/components/sm300d2/sm300d2.h +0 -2
- esphome/components/smt100/sensor.py +8 -4
- esphome/components/smt100/smt100.cpp +5 -5
- esphome/components/smt100/smt100.h +3 -3
- esphome/components/sn74hc595/__init__.py +1 -1
- esphome/components/sn74hc595/sn74hc595.cpp +5 -4
- esphome/components/sntp/sntp_component.cpp +9 -3
- esphome/components/sntp/time.py +2 -0
- esphome/components/socket/__init__.py +17 -0
- esphome/components/spi/__init__.py +27 -6
- esphome/components/spi/spi.cpp +3 -2
- esphome/components/spi/spi.h +9 -3
- esphome/components/spi/spi_arduino.cpp +3 -5
- esphome/components/spi/spi_esp_idf.cpp +40 -21
- esphome/components/spi_led_strip/spi_led_strip.cpp +1 -1
- esphome/components/sps30/sps30.h +0 -1
- esphome/components/ssd1306_base/ssd1306_base.cpp +1 -1
- esphome/components/st7701s/st7701s.cpp +0 -4
- esphome/components/status/status_binary_sensor.h +0 -2
- esphome/components/substitutions/__init__.py +76 -19
- esphome/components/substitutions/jinja.py +99 -0
- esphome/components/sun/sun.cpp +3 -4
- esphome/components/switch/__init__.py +5 -2
- esphome/components/switch/binary_sensor/switch_binary_sensor.h +0 -1
- esphome/components/sx126x/__init__.py +317 -0
- esphome/components/sx126x/automation.h +62 -0
- esphome/components/sx126x/packet_transport/__init__.py +26 -0
- esphome/components/sx126x/packet_transport/sx126x_transport.cpp +26 -0
- esphome/components/sx126x/packet_transport/sx126x_transport.h +25 -0
- esphome/components/sx126x/sx126x.cpp +523 -0
- esphome/components/sx126x/sx126x.h +140 -0
- esphome/components/sx126x/sx126x_reg.h +163 -0
- esphome/components/sx127x/__init__.py +325 -0
- esphome/components/sx127x/automation.h +62 -0
- esphome/components/sx127x/packet_transport/__init__.py +26 -0
- esphome/components/sx127x/packet_transport/sx127x_transport.cpp +26 -0
- esphome/components/sx127x/packet_transport/sx127x_transport.h +25 -0
- esphome/components/sx127x/sx127x.cpp +498 -0
- esphome/components/sx127x/sx127x.h +128 -0
- esphome/components/sx127x/sx127x_reg.h +295 -0
- esphome/components/syslog/esphome_syslog.cpp +5 -3
- esphome/components/syslog/esphome_syslog.h +1 -1
- esphome/components/tca9555/__init__.py +1 -1
- esphome/components/template/binary_sensor/template_binary_sensor.cpp +1 -9
- esphome/components/text/__init__.py +5 -2
- esphome/components/text_sensor/__init__.py +5 -2
- esphome/components/thermostat/thermostat_climate.cpp +34 -31
- esphome/components/thermostat/thermostat_climate.h +43 -39
- esphome/components/time/__init__.py +16 -2
- esphome/components/time/real_time_clock.cpp +4 -0
- esphome/components/time/real_time_clock.h +5 -1
- esphome/components/tlc5971/tlc5971.cpp +4 -1
- esphome/components/tmp1075/tmp1075.h +0 -2
- esphome/components/tof10120/tof10120_sensor.h +0 -1
- esphome/components/tormatic/tormatic_cover.h +0 -1
- esphome/components/total_daily_energy/total_daily_energy.h +0 -1
- esphome/components/tsl2591/tsl2591.cpp +1 -1
- esphome/components/ttp229_bsf/ttp229_bsf.h +0 -1
- esphome/components/ttp229_lsf/ttp229_lsf.h +0 -1
- esphome/components/tx20/tx20.cpp +2 -2
- esphome/components/uart/__init__.py +18 -0
- esphome/components/uart/uart_component_esp_idf.cpp +1 -5
- esphome/components/update/__init__.py +5 -2
- esphome/components/update/update_entity.h +8 -0
- esphome/components/usb_host/__init__.py +5 -2
- esphome/components/valve/__init__.py +5 -2
- esphome/components/vbus/vbus.h +0 -1
- esphome/components/veml3235/veml3235.h +0 -1
- esphome/components/veml7700/veml7700.h +0 -1
- esphome/components/vl53l0x/vl53l0x_sensor.h +0 -1
- esphome/components/voice_assistant/voice_assistant.cpp +4 -4
- esphome/components/watchdog/watchdog.cpp +0 -4
- esphome/components/waveshare_epaper/waveshare_epaper.cpp +6 -6
- esphome/components/web_server/__init__.py +34 -19
- esphome/components/web_server/ota/__init__.py +32 -0
- esphome/components/web_server/ota/ota_web_server.cpp +210 -0
- esphome/components/web_server/ota/ota_web_server.h +26 -0
- esphome/components/web_server/web_server.cpp +311 -430
- esphome/components/web_server/web_server.h +33 -23
- esphome/components/web_server/web_server_v1.cpp +4 -5
- esphome/components/web_server_base/__init__.py +5 -2
- esphome/components/web_server_base/web_server_base.cpp +2 -94
- esphome/components/web_server_base/web_server_base.h +5 -25
- esphome/components/web_server_idf/multipart.cpp +254 -0
- esphome/components/web_server_idf/multipart.h +86 -0
- esphome/components/web_server_idf/utils.cpp +32 -0
- esphome/components/web_server_idf/utils.h +10 -0
- esphome/components/web_server_idf/web_server_idf.cpp +162 -16
- esphome/components/web_server_idf/web_server_idf.h +11 -10
- esphome/components/wiegand/wiegand.cpp +2 -2
- esphome/components/wifi/__init__.py +18 -0
- esphome/components/wifi/wifi_component.cpp +17 -22
- esphome/components/wifi/wifi_component.h +27 -23
- esphome/components/wifi/wifi_component_esp32_arduino.cpp +52 -59
- esphome/components/wifi/wifi_component_esp8266.cpp +46 -46
- esphome/components/wifi/wifi_component_esp_idf.cpp +35 -36
- esphome/components/wifi/wifi_component_libretiny.cpp +26 -27
- esphome/components/wifi/wifi_component_pico_w.cpp +3 -3
- esphome/components/wifi_info/wifi_info_text_sensor.cpp +6 -6
- esphome/components/wireguard/__init__.py +2 -11
- esphome/components/xiaomi_ble/xiaomi_ble.cpp +13 -1
- esphome/components/xiaomi_ble/xiaomi_ble.h +1 -0
- esphome/components/xiaomi_cgd1/xiaomi_cgd1.h +0 -1
- esphome/components/xiaomi_cgdk2/xiaomi_cgdk2.h +0 -1
- esphome/components/xiaomi_cgg1/xiaomi_cgg1.h +0 -1
- esphome/components/xiaomi_cgpr1/xiaomi_cgpr1.h +0 -1
- esphome/components/xiaomi_gcls002/xiaomi_gcls002.h +0 -1
- esphome/components/xiaomi_hhccjcy01/xiaomi_hhccjcy01.h +0 -1
- esphome/components/xiaomi_hhccjcy10/xiaomi_hhccjcy10.h +0 -1
- esphome/components/xiaomi_hhccpot002/xiaomi_hhccpot002.h +0 -1
- esphome/components/xiaomi_jqjcy01ym/xiaomi_jqjcy01ym.h +0 -1
- esphome/components/xiaomi_lywsd02/xiaomi_lywsd02.h +0 -1
- esphome/components/xiaomi_lywsd02mmc/xiaomi_lywsd02mmc.h +0 -1
- esphome/components/xiaomi_lywsd03mmc/xiaomi_lywsd03mmc.h +0 -1
- esphome/components/xiaomi_lywsdcgq/xiaomi_lywsdcgq.h +0 -1
- esphome/components/xiaomi_mhoc303/xiaomi_mhoc303.h +0 -1
- esphome/components/xiaomi_mhoc401/xiaomi_mhoc401.h +0 -1
- esphome/components/xiaomi_miscale/xiaomi_miscale.h +0 -1
- esphome/components/xiaomi_mjyd02yla/xiaomi_mjyd02yla.h +0 -1
- esphome/components/xiaomi_mue4094rt/xiaomi_mue4094rt.h +0 -1
- esphome/components/xiaomi_rtcgq02lm/xiaomi_rtcgq02lm.h +0 -1
- esphome/components/xiaomi_wx08zm/xiaomi_wx08zm.h +0 -1
- esphome/components/xiaomi_xmwsdj04mmc/__init__.py +0 -0
- esphome/components/xiaomi_xmwsdj04mmc/sensor.py +77 -0
- esphome/components/xiaomi_xmwsdj04mmc/xiaomi_xmwsdj04mmc.cpp +77 -0
- esphome/components/xiaomi_xmwsdj04mmc/xiaomi_xmwsdj04mmc.h +36 -0
- esphome/components/zio_ultrasonic/zio_ultrasonic.h +0 -2
- esphome/components/zyaura/zyaura.h +0 -1
- esphome/config.py +88 -22
- esphome/config_helpers.py +74 -1
- esphome/config_validation.py +12 -1
- esphome/const.py +65 -10
- esphome/core/__init__.py +18 -2
- esphome/core/application.cpp +163 -10
- esphome/core/application.h +145 -165
- esphome/core/area.h +19 -0
- esphome/core/automation.h +58 -9
- esphome/core/color.cpp +3 -5
- esphome/core/color.h +16 -16
- esphome/core/component.cpp +151 -18
- esphome/core/component.h +98 -4
- esphome/core/component_iterator.cpp +7 -7
- esphome/core/component_iterator.h +9 -7
- esphome/core/config.py +155 -6
- esphome/core/controller.cpp +4 -2
- esphome/core/controller.h +1 -1
- esphome/core/datatypes.h +2 -2
- esphome/core/defines.h +17 -2
- esphome/core/device.h +20 -0
- esphome/core/entity_base.cpp +20 -15
- esphome/core/entity_base.h +76 -0
- esphome/core/entity_helpers.py +162 -1
- esphome/core/event_pool.h +81 -0
- esphome/core/helpers.cpp +75 -230
- esphome/core/helpers.h +164 -104
- esphome/core/lock_free_queue.h +151 -0
- esphome/core/log.cpp +2 -2
- esphome/core/log.h +2 -0
- esphome/core/optional.h +5 -0
- esphome/core/ring_buffer.cpp +2 -2
- esphome/core/scheduler.cpp +278 -103
- esphome/core/scheduler.h +157 -17
- esphome/core/time.cpp +5 -5
- esphome/core/time.h +5 -5
- esphome/cpp_generator.py +17 -0
- esphome/cpp_helpers.py +0 -22
- esphome/cpp_types.py +3 -1
- esphome/dashboard/entries.py +1 -1
- esphome/dashboard/util/text.py +5 -21
- esphome/dashboard/web_server.py +9 -1
- esphome/helpers.py +47 -0
- esphome/loader.py +15 -1
- esphome/pins.py +14 -8
- esphome/wizard.py +16 -3
- esphome/writer.py +21 -3
- esphome/yaml_util.py +0 -2
- {esphome-2025.6.2.dist-info → esphome-2025.7.0b1.dist-info}/METADATA +10 -9
- {esphome-2025.6.2.dist-info → esphome-2025.7.0b1.dist-info}/RECORD +593 -533
- esphome/components/esp32_ble/ble_event_pool.h +0 -72
- esphome/components/esp32_ble/queue.h +0 -85
- esphome/components/esp32_hall/esp32_hall.cpp +0 -25
- esphome/components/esp32_hall/esp32_hall.h +0 -23
- esphome/components/esp32_touch/esp32_touch.cpp +0 -355
- esphome/components/ld2410/button/reset_button.cpp +0 -9
- esphome/components/ld2450/button/reset_button.cpp +0 -9
- esphome/components/openthread/tlv.py +0 -65
- /esphome/{dashboard/enum.py → enum.py} +0 -0
- {esphome-2025.6.2.dist-info → esphome-2025.7.0b1.dist-info}/WHEEL +0 -0
- {esphome-2025.6.2.dist-info → esphome-2025.7.0b1.dist-info}/entry_points.txt +0 -0
- {esphome-2025.6.2.dist-info → esphome-2025.7.0b1.dist-info}/licenses/LICENSE +0 -0
- {esphome-2025.6.2.dist-info → esphome-2025.7.0b1.dist-info}/top_level.txt +0 -0
|
@@ -36,7 +36,6 @@ class QwiicPIRComponent : public Component, public i2c::I2CDevice, public binary
|
|
|
36
36
|
void loop() override;
|
|
37
37
|
|
|
38
38
|
void dump_config() override;
|
|
39
|
-
float get_setup_priority() const override { return setup_priority::DATA; }
|
|
40
39
|
|
|
41
40
|
void set_debounce_time(uint16_t debounce_time) { this->debounce_time_ = debounce_time; }
|
|
42
41
|
void set_debounce_mode(DebounceMode mode) { this->debounce_mode_ = mode; }
|
|
@@ -17,7 +17,7 @@ bool RadonEyeListener::parse_device(const esp32_ble_tracker::ESPBTDevice &device
|
|
|
17
17
|
|
|
18
18
|
// Check if the device name starts with any of the prefixes
|
|
19
19
|
if (std::any_of(prefixes.begin(), prefixes.end(),
|
|
20
|
-
[&](const std::string &prefix) { return device.get_name().
|
|
20
|
+
[&](const std::string &prefix) { return device.get_name().starts_with(prefix); })) {
|
|
21
21
|
// Device found
|
|
22
22
|
ESP_LOGD(TAG, "Found Radon Eye device Name: %s (MAC: %s)", device.get_name().c_str(),
|
|
23
23
|
device.address_str().c_str());
|
esphome/components/rc522/rc522.h
CHANGED
|
@@ -21,8 +21,6 @@ class RDM6300Component : public Component, public uart::UARTDevice {
|
|
|
21
21
|
void register_card(RDM6300BinarySensor *obj) { this->cards_.push_back(obj); }
|
|
22
22
|
void register_trigger(RDM6300Trigger *trig) { this->triggers_.push_back(trig); }
|
|
23
23
|
|
|
24
|
-
float get_setup_priority() const override { return setup_priority::DATA; }
|
|
25
|
-
|
|
26
24
|
protected:
|
|
27
25
|
int8_t read_state_{-1};
|
|
28
26
|
uint8_t buffer_[6]{};
|
|
@@ -57,7 +57,7 @@ RemoteReceiverBinarySensorBase = ns.class_(
|
|
|
57
57
|
RemoteReceiverTrigger = ns.class_(
|
|
58
58
|
"RemoteReceiverTrigger", automation.Trigger, RemoteReceiverListener
|
|
59
59
|
)
|
|
60
|
-
|
|
60
|
+
RemoteReceiverDumperBase = ns.class_("RemoteReceiverDumperBase")
|
|
61
61
|
RemoteTransmittable = ns.class_("RemoteTransmittable")
|
|
62
62
|
RemoteTransmitterActionBase = ns.class_(
|
|
63
63
|
"RemoteTransmitterActionBase", RemoteTransmittable, automation.Action
|
|
@@ -126,8 +126,10 @@ def register_trigger(name, type, data_type):
|
|
|
126
126
|
return decorator
|
|
127
127
|
|
|
128
128
|
|
|
129
|
-
def register_dumper(name, type):
|
|
130
|
-
|
|
129
|
+
def register_dumper(name, type, schema=None):
|
|
130
|
+
if schema is None:
|
|
131
|
+
schema = {}
|
|
132
|
+
registerer = DUMPER_REGISTRY.register(name, type, schema)
|
|
131
133
|
|
|
132
134
|
def decorator(func):
|
|
133
135
|
async def new_func(config, dumper_id):
|
|
@@ -189,7 +191,7 @@ def declare_protocol(name):
|
|
|
189
191
|
binary_sensor_ = ns.class_(f"{name}BinarySensor", RemoteReceiverBinarySensorBase)
|
|
190
192
|
trigger = ns.class_(f"{name}Trigger", RemoteReceiverTrigger)
|
|
191
193
|
action = ns.class_(f"{name}Action", RemoteTransmitterActionBase)
|
|
192
|
-
dumper = ns.class_(f"{name}Dumper",
|
|
194
|
+
dumper = ns.class_(f"{name}Dumper", RemoteReceiverDumperBase)
|
|
193
195
|
return data, binary_sensor_, trigger, action, dumper
|
|
194
196
|
|
|
195
197
|
|
|
@@ -1405,7 +1407,7 @@ rc_switch_protocols = ns.RC_SWITCH_PROTOCOLS
|
|
|
1405
1407
|
RCSwitchData = ns.struct("RCSwitchData")
|
|
1406
1408
|
RCSwitchBase = ns.class_("RCSwitchBase")
|
|
1407
1409
|
RCSwitchTrigger = ns.class_("RCSwitchTrigger", RemoteReceiverTrigger)
|
|
1408
|
-
RCSwitchDumper = ns.class_("RCSwitchDumper",
|
|
1410
|
+
RCSwitchDumper = ns.class_("RCSwitchDumper", RemoteReceiverDumperBase)
|
|
1409
1411
|
RCSwitchRawAction = ns.class_("RCSwitchRawAction", RemoteTransmitterActionBase)
|
|
1410
1412
|
RCSwitchTypeAAction = ns.class_("RCSwitchTypeAAction", RemoteTransmitterActionBase)
|
|
1411
1413
|
RCSwitchTypeBAction = ns.class_("RCSwitchTypeBAction", RemoteTransmitterActionBase)
|
|
@@ -8,27 +8,6 @@ namespace remote_base {
|
|
|
8
8
|
|
|
9
9
|
static const char *const TAG = "remote_base";
|
|
10
10
|
|
|
11
|
-
#if defined(USE_ESP32) && ESP_IDF_VERSION_MAJOR < 5
|
|
12
|
-
RemoteRMTChannel::RemoteRMTChannel(uint8_t mem_block_num) : mem_block_num_(mem_block_num) {
|
|
13
|
-
static rmt_channel_t next_rmt_channel = RMT_CHANNEL_0;
|
|
14
|
-
this->channel_ = next_rmt_channel;
|
|
15
|
-
next_rmt_channel = rmt_channel_t(int(next_rmt_channel) + mem_block_num);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
RemoteRMTChannel::RemoteRMTChannel(rmt_channel_t channel, uint8_t mem_block_num)
|
|
19
|
-
: channel_(channel), mem_block_num_(mem_block_num) {}
|
|
20
|
-
|
|
21
|
-
void RemoteRMTChannel::config_rmt(rmt_config_t &rmt) {
|
|
22
|
-
if (rmt_channel_t(int(this->channel_) + this->mem_block_num_) > RMT_CHANNEL_MAX) {
|
|
23
|
-
this->mem_block_num_ = int(RMT_CHANNEL_MAX) - int(this->channel_);
|
|
24
|
-
ESP_LOGW(TAG, "Not enough RMT memory blocks available, reduced to %i blocks.", this->mem_block_num_);
|
|
25
|
-
}
|
|
26
|
-
rmt.channel = this->channel_;
|
|
27
|
-
rmt.clk_div = this->clock_divider_;
|
|
28
|
-
rmt.mem_block_num = this->mem_block_num_;
|
|
29
|
-
}
|
|
30
|
-
#endif
|
|
31
|
-
|
|
32
11
|
/* RemoteReceiveData */
|
|
33
12
|
|
|
34
13
|
bool RemoteReceiveData::peek_mark(uint32_t length, uint32_t offset) const {
|
|
@@ -40,6 +19,22 @@ bool RemoteReceiveData::peek_mark(uint32_t length, uint32_t offset) const {
|
|
|
40
19
|
return value >= 0 && lo <= value && value <= hi;
|
|
41
20
|
}
|
|
42
21
|
|
|
22
|
+
bool RemoteReceiveData::peek_mark_at_least(uint32_t length, uint32_t offset) const {
|
|
23
|
+
if (!this->is_valid(offset))
|
|
24
|
+
return false;
|
|
25
|
+
const int32_t value = this->peek(offset);
|
|
26
|
+
const int32_t lo = this->lower_bound_(length);
|
|
27
|
+
return value >= 0 && lo <= value;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
bool RemoteReceiveData::peek_mark_at_most(uint32_t length, uint32_t offset) const {
|
|
31
|
+
if (!this->is_valid(offset))
|
|
32
|
+
return false;
|
|
33
|
+
const int32_t value = this->peek(offset);
|
|
34
|
+
const int32_t hi = this->upper_bound_(length);
|
|
35
|
+
return value >= 0 && value <= hi;
|
|
36
|
+
}
|
|
37
|
+
|
|
43
38
|
bool RemoteReceiveData::peek_space(uint32_t length, uint32_t offset) const {
|
|
44
39
|
if (!this->is_valid(offset))
|
|
45
40
|
return false;
|
|
@@ -57,6 +52,14 @@ bool RemoteReceiveData::peek_space_at_least(uint32_t length, uint32_t offset) co
|
|
|
57
52
|
return value <= 0 && lo <= -value;
|
|
58
53
|
}
|
|
59
54
|
|
|
55
|
+
bool RemoteReceiveData::peek_space_at_most(uint32_t length, uint32_t offset) const {
|
|
56
|
+
if (!this->is_valid(offset))
|
|
57
|
+
return false;
|
|
58
|
+
const int32_t value = this->peek(offset);
|
|
59
|
+
const int32_t hi = this->upper_bound_(length);
|
|
60
|
+
return value <= 0 && -value <= hi;
|
|
61
|
+
}
|
|
62
|
+
|
|
60
63
|
bool RemoteReceiveData::expect_mark(uint32_t length) {
|
|
61
64
|
if (!this->peek_mark(length))
|
|
62
65
|
return false;
|
|
@@ -8,10 +8,6 @@
|
|
|
8
8
|
#include "esphome/core/component.h"
|
|
9
9
|
#include "esphome/core/hal.h"
|
|
10
10
|
|
|
11
|
-
#if defined(USE_ESP32) && ESP_IDF_VERSION_MAJOR < 5
|
|
12
|
-
#include <driver/rmt.h>
|
|
13
|
-
#endif
|
|
14
|
-
|
|
15
11
|
namespace esphome {
|
|
16
12
|
namespace remote_base {
|
|
17
13
|
|
|
@@ -57,8 +53,11 @@ class RemoteReceiveData {
|
|
|
57
53
|
bool is_valid(uint32_t offset = 0) const { return this->index_ + offset < this->data_.size(); }
|
|
58
54
|
int32_t peek(uint32_t offset = 0) const { return this->data_[this->index_ + offset]; }
|
|
59
55
|
bool peek_mark(uint32_t length, uint32_t offset = 0) const;
|
|
56
|
+
bool peek_mark_at_least(uint32_t length, uint32_t offset = 0) const;
|
|
57
|
+
bool peek_mark_at_most(uint32_t length, uint32_t offset = 0) const;
|
|
60
58
|
bool peek_space(uint32_t length, uint32_t offset = 0) const;
|
|
61
59
|
bool peek_space_at_least(uint32_t length, uint32_t offset = 0) const;
|
|
60
|
+
bool peek_space_at_most(uint32_t length, uint32_t offset = 0) const;
|
|
62
61
|
bool peek_item(uint32_t mark, uint32_t space, uint32_t offset = 0) const {
|
|
63
62
|
return this->peek_space(space, offset + 1) && this->peek_mark(mark, offset);
|
|
64
63
|
}
|
|
@@ -112,43 +111,21 @@ class RemoteComponentBase {
|
|
|
112
111
|
#ifdef USE_ESP32
|
|
113
112
|
class RemoteRMTChannel {
|
|
114
113
|
public:
|
|
115
|
-
#if ESP_IDF_VERSION_MAJOR >= 5
|
|
116
114
|
void set_clock_resolution(uint32_t clock_resolution) { this->clock_resolution_ = clock_resolution; }
|
|
117
115
|
void set_rmt_symbols(uint32_t rmt_symbols) { this->rmt_symbols_ = rmt_symbols; }
|
|
118
|
-
#else
|
|
119
|
-
explicit RemoteRMTChannel(uint8_t mem_block_num = 1);
|
|
120
|
-
explicit RemoteRMTChannel(rmt_channel_t channel, uint8_t mem_block_num = 1);
|
|
121
|
-
|
|
122
|
-
void config_rmt(rmt_config_t &rmt);
|
|
123
|
-
void set_clock_divider(uint8_t clock_divider) { this->clock_divider_ = clock_divider; }
|
|
124
|
-
#endif
|
|
125
116
|
|
|
126
117
|
protected:
|
|
127
118
|
uint32_t from_microseconds_(uint32_t us) {
|
|
128
|
-
#if ESP_IDF_VERSION_MAJOR >= 5
|
|
129
119
|
const uint32_t ticks_per_ten_us = this->clock_resolution_ / 100000u;
|
|
130
|
-
#else
|
|
131
|
-
const uint32_t ticks_per_ten_us = 80000000u / this->clock_divider_ / 100000u;
|
|
132
|
-
#endif
|
|
133
120
|
return us * ticks_per_ten_us / 10;
|
|
134
121
|
}
|
|
135
122
|
uint32_t to_microseconds_(uint32_t ticks) {
|
|
136
|
-
#if ESP_IDF_VERSION_MAJOR >= 5
|
|
137
123
|
const uint32_t ticks_per_ten_us = this->clock_resolution_ / 100000u;
|
|
138
|
-
#else
|
|
139
|
-
const uint32_t ticks_per_ten_us = 80000000u / this->clock_divider_ / 100000u;
|
|
140
|
-
#endif
|
|
141
124
|
return (ticks * 10) / ticks_per_ten_us;
|
|
142
125
|
}
|
|
143
126
|
RemoteComponentBase *remote_base_;
|
|
144
|
-
#if ESP_IDF_VERSION_MAJOR >= 5
|
|
145
127
|
uint32_t clock_resolution_{1000000};
|
|
146
128
|
uint32_t rmt_symbols_;
|
|
147
|
-
#else
|
|
148
|
-
rmt_channel_t channel_{RMT_CHANNEL_0};
|
|
149
|
-
uint8_t mem_block_num_;
|
|
150
|
-
uint8_t clock_divider_{80};
|
|
151
|
-
#endif
|
|
152
129
|
};
|
|
153
130
|
#endif
|
|
154
131
|
|
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
from esphome import pins
|
|
2
2
|
import esphome.codegen as cg
|
|
3
3
|
from esphome.components import esp32, esp32_rmt, remote_base
|
|
4
|
+
from esphome.config_helpers import filter_source_files_from_platform
|
|
4
5
|
import esphome.config_validation as cv
|
|
5
6
|
from esphome.const import (
|
|
6
7
|
CONF_BUFFER_SIZE,
|
|
7
|
-
CONF_CLOCK_DIVIDER,
|
|
8
8
|
CONF_CLOCK_RESOLUTION,
|
|
9
9
|
CONF_DUMP,
|
|
10
10
|
CONF_FILTER,
|
|
11
11
|
CONF_ID,
|
|
12
12
|
CONF_IDLE,
|
|
13
|
-
CONF_MEMORY_BLOCKS,
|
|
14
13
|
CONF_PIN,
|
|
15
|
-
CONF_RMT_CHANNEL,
|
|
16
14
|
CONF_RMT_SYMBOLS,
|
|
17
15
|
CONF_TOLERANCE,
|
|
18
16
|
CONF_TYPE,
|
|
19
17
|
CONF_USE_DMA,
|
|
20
18
|
CONF_VALUE,
|
|
19
|
+
PlatformFramework,
|
|
21
20
|
)
|
|
22
21
|
from esphome.core import CORE, TimePeriod
|
|
23
22
|
|
|
@@ -97,55 +96,43 @@ CONFIG_SCHEMA = remote_base.validate_triggers(
|
|
|
97
96
|
esp32="10000b",
|
|
98
97
|
esp8266="1000b",
|
|
99
98
|
bk72xx="1000b",
|
|
99
|
+
ln882x="1000b",
|
|
100
100
|
rtl87xx="1000b",
|
|
101
101
|
): cv.validate_bytes,
|
|
102
102
|
cv.Optional(CONF_FILTER, default="50us"): cv.All(
|
|
103
103
|
cv.positive_time_period_microseconds,
|
|
104
104
|
cv.Range(max=TimePeriod(microseconds=4294967295)),
|
|
105
105
|
),
|
|
106
|
-
cv.SplitDefault(CONF_CLOCK_DIVIDER, esp32_arduino=80): cv.All(
|
|
107
|
-
cv.only_on_esp32,
|
|
108
|
-
cv.only_with_arduino,
|
|
109
|
-
cv.int_range(min=1, max=255),
|
|
110
|
-
),
|
|
111
106
|
cv.Optional(CONF_CLOCK_RESOLUTION): cv.All(
|
|
112
107
|
cv.only_on_esp32,
|
|
113
|
-
cv.only_with_esp_idf,
|
|
114
108
|
esp32_rmt.validate_clock_resolution(),
|
|
115
109
|
),
|
|
116
110
|
cv.Optional(CONF_IDLE, default="10ms"): cv.All(
|
|
117
111
|
cv.positive_time_period_microseconds,
|
|
118
112
|
cv.Range(max=TimePeriod(microseconds=4294967295)),
|
|
119
113
|
),
|
|
120
|
-
cv.SplitDefault(CONF_MEMORY_BLOCKS, esp32_arduino=3): cv.All(
|
|
121
|
-
cv.only_with_arduino, cv.int_range(min=1, max=8)
|
|
122
|
-
),
|
|
123
|
-
cv.Optional(CONF_RMT_CHANNEL): cv.All(
|
|
124
|
-
cv.only_with_arduino, esp32_rmt.validate_rmt_channel(tx=False)
|
|
125
|
-
),
|
|
126
114
|
cv.SplitDefault(
|
|
127
115
|
CONF_RMT_SYMBOLS,
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
): cv.All(cv.
|
|
116
|
+
esp32=192,
|
|
117
|
+
esp32_s2=192,
|
|
118
|
+
esp32_s3=192,
|
|
119
|
+
esp32_p4=192,
|
|
120
|
+
esp32_c3=96,
|
|
121
|
+
esp32_c5=96,
|
|
122
|
+
esp32_c6=96,
|
|
123
|
+
esp32_h2=96,
|
|
124
|
+
): cv.All(cv.only_on_esp32, cv.int_range(min=2)),
|
|
137
125
|
cv.Optional(CONF_FILTER_SYMBOLS): cv.All(
|
|
138
|
-
cv.
|
|
126
|
+
cv.only_on_esp32, cv.int_range(min=0)
|
|
139
127
|
),
|
|
140
128
|
cv.SplitDefault(
|
|
141
129
|
CONF_RECEIVE_SYMBOLS,
|
|
142
|
-
|
|
143
|
-
): cv.All(cv.
|
|
130
|
+
esp32=192,
|
|
131
|
+
): cv.All(cv.only_on_esp32, cv.int_range(min=2)),
|
|
144
132
|
cv.Optional(CONF_USE_DMA): cv.All(
|
|
145
133
|
esp32.only_on_variant(
|
|
146
134
|
supported=[esp32.const.VARIANT_ESP32S3, esp32.const.VARIANT_ESP32P4]
|
|
147
135
|
),
|
|
148
|
-
cv.only_with_esp_idf,
|
|
149
136
|
cv.boolean,
|
|
150
137
|
),
|
|
151
138
|
}
|
|
@@ -156,24 +143,15 @@ CONFIG_SCHEMA = remote_base.validate_triggers(
|
|
|
156
143
|
async def to_code(config):
|
|
157
144
|
pin = await cg.gpio_pin_expression(config[CONF_PIN])
|
|
158
145
|
if CORE.is_esp32:
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
cg.add(var.set_filter_symbols(config[CONF_FILTER_SYMBOLS]))
|
|
169
|
-
else:
|
|
170
|
-
if (rmt_channel := config.get(CONF_RMT_CHANNEL, None)) is not None:
|
|
171
|
-
var = cg.new_Pvariable(
|
|
172
|
-
config[CONF_ID], pin, rmt_channel, config[CONF_MEMORY_BLOCKS]
|
|
173
|
-
)
|
|
174
|
-
else:
|
|
175
|
-
var = cg.new_Pvariable(config[CONF_ID], pin, config[CONF_MEMORY_BLOCKS])
|
|
176
|
-
cg.add(var.set_clock_divider(config[CONF_CLOCK_DIVIDER]))
|
|
146
|
+
var = cg.new_Pvariable(config[CONF_ID], pin)
|
|
147
|
+
cg.add(var.set_rmt_symbols(config[CONF_RMT_SYMBOLS]))
|
|
148
|
+
cg.add(var.set_receive_symbols(config[CONF_RECEIVE_SYMBOLS]))
|
|
149
|
+
if CONF_USE_DMA in config:
|
|
150
|
+
cg.add(var.set_with_dma(config[CONF_USE_DMA]))
|
|
151
|
+
if CONF_CLOCK_RESOLUTION in config:
|
|
152
|
+
cg.add(var.set_clock_resolution(config[CONF_CLOCK_RESOLUTION]))
|
|
153
|
+
if CONF_FILTER_SYMBOLS in config:
|
|
154
|
+
cg.add(var.set_filter_symbols(config[CONF_FILTER_SYMBOLS]))
|
|
177
155
|
else:
|
|
178
156
|
var = cg.new_Pvariable(config[CONF_ID], pin)
|
|
179
157
|
|
|
@@ -194,3 +172,19 @@ async def to_code(config):
|
|
|
194
172
|
cg.add(var.set_buffer_size(config[CONF_BUFFER_SIZE]))
|
|
195
173
|
cg.add(var.set_filter_us(config[CONF_FILTER]))
|
|
196
174
|
cg.add(var.set_idle_us(config[CONF_IDLE]))
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
FILTER_SOURCE_FILES = filter_source_files_from_platform(
|
|
178
|
+
{
|
|
179
|
+
"remote_receiver_esp32.cpp": {
|
|
180
|
+
PlatformFramework.ESP32_ARDUINO,
|
|
181
|
+
PlatformFramework.ESP32_IDF,
|
|
182
|
+
},
|
|
183
|
+
"remote_receiver_esp8266.cpp": {PlatformFramework.ESP8266_ARDUINO},
|
|
184
|
+
"remote_receiver_libretiny.cpp": {
|
|
185
|
+
PlatformFramework.BK72XX_ARDUINO,
|
|
186
|
+
PlatformFramework.RTL87XX_ARDUINO,
|
|
187
|
+
PlatformFramework.LN882X_ARDUINO,
|
|
188
|
+
},
|
|
189
|
+
}
|
|
190
|
+
)
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
#include <cinttypes>
|
|
7
7
|
|
|
8
|
-
#if defined(USE_ESP32)
|
|
8
|
+
#if defined(USE_ESP32)
|
|
9
9
|
#include <driver/rmt_rx.h>
|
|
10
10
|
#endif
|
|
11
11
|
|
|
@@ -29,7 +29,7 @@ struct RemoteReceiverComponentStore {
|
|
|
29
29
|
uint32_t filter_us{10};
|
|
30
30
|
ISRInternalGPIOPin pin;
|
|
31
31
|
};
|
|
32
|
-
#elif defined(USE_ESP32)
|
|
32
|
+
#elif defined(USE_ESP32)
|
|
33
33
|
struct RemoteReceiverComponentStore {
|
|
34
34
|
/// Stores RMT symbols and rx done event data
|
|
35
35
|
volatile uint8_t *buffer{nullptr};
|
|
@@ -55,21 +55,12 @@ class RemoteReceiverComponent : public remote_base::RemoteReceiverBase,
|
|
|
55
55
|
|
|
56
56
|
{
|
|
57
57
|
public:
|
|
58
|
-
#if defined(USE_ESP32) && ESP_IDF_VERSION_MAJOR < 5
|
|
59
|
-
RemoteReceiverComponent(InternalGPIOPin *pin, uint8_t mem_block_num = 1)
|
|
60
|
-
: RemoteReceiverBase(pin), remote_base::RemoteRMTChannel(mem_block_num) {}
|
|
61
|
-
|
|
62
|
-
RemoteReceiverComponent(InternalGPIOPin *pin, rmt_channel_t channel, uint8_t mem_block_num = 1)
|
|
63
|
-
: RemoteReceiverBase(pin), remote_base::RemoteRMTChannel(channel, mem_block_num) {}
|
|
64
|
-
#else
|
|
65
58
|
RemoteReceiverComponent(InternalGPIOPin *pin) : RemoteReceiverBase(pin) {}
|
|
66
|
-
#endif
|
|
67
59
|
void setup() override;
|
|
68
60
|
void dump_config() override;
|
|
69
61
|
void loop() override;
|
|
70
|
-
float get_setup_priority() const override { return setup_priority::DATA; }
|
|
71
62
|
|
|
72
|
-
#
|
|
63
|
+
#ifdef USE_ESP32
|
|
73
64
|
void set_filter_symbols(uint32_t filter_symbols) { this->filter_symbols_ = filter_symbols; }
|
|
74
65
|
void set_receive_symbols(uint32_t receive_symbols) { this->receive_symbols_ = receive_symbols; }
|
|
75
66
|
void set_with_dma(bool with_dma) { this->with_dma_ = with_dma; }
|
|
@@ -80,21 +71,16 @@ class RemoteReceiverComponent : public remote_base::RemoteReceiverBase,
|
|
|
80
71
|
|
|
81
72
|
protected:
|
|
82
73
|
#ifdef USE_ESP32
|
|
83
|
-
#if ESP_IDF_VERSION_MAJOR >= 5
|
|
84
74
|
void decode_rmt_(rmt_symbol_word_t *item, size_t item_count);
|
|
85
75
|
rmt_channel_handle_t channel_{NULL};
|
|
86
76
|
uint32_t filter_symbols_{0};
|
|
87
77
|
uint32_t receive_symbols_{0};
|
|
88
78
|
bool with_dma_{false};
|
|
89
|
-
#else
|
|
90
|
-
void decode_rmt_(rmt_item32_t *item, size_t item_count);
|
|
91
|
-
RingbufHandle_t ringbuf_;
|
|
92
|
-
#endif
|
|
93
79
|
esp_err_t error_code_{ESP_OK};
|
|
94
80
|
std::string error_string_{""};
|
|
95
81
|
#endif
|
|
96
82
|
|
|
97
|
-
#if defined(USE_ESP8266) || defined(USE_LIBRETINY) ||
|
|
83
|
+
#if defined(USE_ESP8266) || defined(USE_LIBRETINY) || defined(USE_ESP32)
|
|
98
84
|
RemoteReceiverComponentStore store_;
|
|
99
85
|
HighFrequencyLoopRequester high_freq_;
|
|
100
86
|
#endif
|
|
@@ -14,7 +14,6 @@ static const uint32_t RMT_CLK_FREQ = 32000000;
|
|
|
14
14
|
static const uint32_t RMT_CLK_FREQ = 80000000;
|
|
15
15
|
#endif
|
|
16
16
|
|
|
17
|
-
#if ESP_IDF_VERSION_MAJOR >= 5
|
|
18
17
|
static bool IRAM_ATTR HOT rmt_callback(rmt_channel_handle_t channel, const rmt_rx_done_event_data_t *event, void *arg) {
|
|
19
18
|
RemoteReceiverComponentStore *store = (RemoteReceiverComponentStore *) arg;
|
|
20
19
|
rmt_rx_done_event_data_t *event_buffer = (rmt_rx_done_event_data_t *) (store->buffer + store->buffer_write);
|
|
@@ -37,11 +36,9 @@ static bool IRAM_ATTR HOT rmt_callback(rmt_channel_handle_t channel, const rmt_r
|
|
|
37
36
|
store->buffer_write = next_write;
|
|
38
37
|
return false;
|
|
39
38
|
}
|
|
40
|
-
#endif
|
|
41
39
|
|
|
42
40
|
void RemoteReceiverComponent::setup() {
|
|
43
41
|
ESP_LOGCONFIG(TAG, "Running setup");
|
|
44
|
-
#if ESP_IDF_VERSION_MAJOR >= 5
|
|
45
42
|
rmt_rx_channel_config_t channel;
|
|
46
43
|
memset(&channel, 0, sizeof(channel));
|
|
47
44
|
channel.clk_src = RMT_CLK_SRC_DEFAULT;
|
|
@@ -105,62 +102,11 @@ void RemoteReceiverComponent::setup() {
|
|
|
105
102
|
this->mark_failed();
|
|
106
103
|
return;
|
|
107
104
|
}
|
|
108
|
-
#else
|
|
109
|
-
this->pin_->setup();
|
|
110
|
-
rmt_config_t rmt{};
|
|
111
|
-
this->config_rmt(rmt);
|
|
112
|
-
rmt.gpio_num = gpio_num_t(this->pin_->get_pin());
|
|
113
|
-
rmt.rmt_mode = RMT_MODE_RX;
|
|
114
|
-
if (this->filter_us_ == 0) {
|
|
115
|
-
rmt.rx_config.filter_en = false;
|
|
116
|
-
} else {
|
|
117
|
-
rmt.rx_config.filter_en = true;
|
|
118
|
-
rmt.rx_config.filter_ticks_thresh = static_cast<uint8_t>(
|
|
119
|
-
std::min(this->from_microseconds_(this->filter_us_) * this->clock_divider_, (uint32_t) 255));
|
|
120
|
-
}
|
|
121
|
-
rmt.rx_config.idle_threshold =
|
|
122
|
-
static_cast<uint16_t>(std::min(this->from_microseconds_(this->idle_us_), (uint32_t) 65535));
|
|
123
|
-
|
|
124
|
-
esp_err_t error = rmt_config(&rmt);
|
|
125
|
-
if (error != ESP_OK) {
|
|
126
|
-
this->error_code_ = error;
|
|
127
|
-
this->error_string_ = "in rmt_config";
|
|
128
|
-
this->mark_failed();
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
error = rmt_driver_install(this->channel_, this->buffer_size_, 0);
|
|
133
|
-
if (error != ESP_OK) {
|
|
134
|
-
this->error_code_ = error;
|
|
135
|
-
if (error == ESP_ERR_INVALID_STATE) {
|
|
136
|
-
this->error_string_ = str_sprintf("RMT channel %i is already in use by another component", this->channel_);
|
|
137
|
-
} else {
|
|
138
|
-
this->error_string_ = "in rmt_driver_install";
|
|
139
|
-
}
|
|
140
|
-
this->mark_failed();
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
error = rmt_get_ringbuf_handle(this->channel_, &this->ringbuf_);
|
|
144
|
-
if (error != ESP_OK) {
|
|
145
|
-
this->error_code_ = error;
|
|
146
|
-
this->error_string_ = "in rmt_get_ringbuf_handle";
|
|
147
|
-
this->mark_failed();
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
error = rmt_rx_start(this->channel_, true);
|
|
151
|
-
if (error != ESP_OK) {
|
|
152
|
-
this->error_code_ = error;
|
|
153
|
-
this->error_string_ = "in rmt_rx_start";
|
|
154
|
-
this->mark_failed();
|
|
155
|
-
return;
|
|
156
|
-
}
|
|
157
|
-
#endif
|
|
158
105
|
}
|
|
159
106
|
|
|
160
107
|
void RemoteReceiverComponent::dump_config() {
|
|
161
108
|
ESP_LOGCONFIG(TAG, "Remote Receiver:");
|
|
162
109
|
LOG_PIN(" Pin: ", this->pin_);
|
|
163
|
-
#if ESP_IDF_VERSION_MAJOR >= 5
|
|
164
110
|
ESP_LOGCONFIG(TAG,
|
|
165
111
|
" Clock resolution: %" PRIu32 " hz\n"
|
|
166
112
|
" RMT symbols: %" PRIu32 "\n"
|
|
@@ -172,22 +118,6 @@ void RemoteReceiverComponent::dump_config() {
|
|
|
172
118
|
this->clock_resolution_, this->rmt_symbols_, this->filter_symbols_, this->receive_symbols_,
|
|
173
119
|
this->tolerance_, (this->tolerance_mode_ == remote_base::TOLERANCE_MODE_TIME) ? " us" : "%",
|
|
174
120
|
this->filter_us_, this->idle_us_);
|
|
175
|
-
#else
|
|
176
|
-
if (this->pin_->digital_read()) {
|
|
177
|
-
ESP_LOGW(TAG, "Remote Receiver Signal starts with a HIGH value. Usually this means you have to "
|
|
178
|
-
"invert the signal using 'inverted: True' in the pin schema!");
|
|
179
|
-
}
|
|
180
|
-
ESP_LOGCONFIG(TAG,
|
|
181
|
-
" Channel: %d\n"
|
|
182
|
-
" RMT memory blocks: %d\n"
|
|
183
|
-
" Clock divider: %u\n"
|
|
184
|
-
" Tolerance: %" PRIu32 "%s\n"
|
|
185
|
-
" Filter out pulses shorter than: %" PRIu32 " us\n"
|
|
186
|
-
" Signal is done after %" PRIu32 " us of no changes",
|
|
187
|
-
this->channel_, this->mem_block_num_, this->clock_divider_, this->tolerance_,
|
|
188
|
-
(this->tolerance_mode_ == remote_base::TOLERANCE_MODE_TIME) ? " us" : "%", this->filter_us_,
|
|
189
|
-
this->idle_us_);
|
|
190
|
-
#endif
|
|
191
121
|
if (this->is_failed()) {
|
|
192
122
|
ESP_LOGE(TAG, "Configuring RMT driver failed: %s (%s)", esp_err_to_name(this->error_code_),
|
|
193
123
|
this->error_string_.c_str());
|
|
@@ -195,7 +125,6 @@ void RemoteReceiverComponent::dump_config() {
|
|
|
195
125
|
}
|
|
196
126
|
|
|
197
127
|
void RemoteReceiverComponent::loop() {
|
|
198
|
-
#if ESP_IDF_VERSION_MAJOR >= 5
|
|
199
128
|
if (this->store_.error != ESP_OK) {
|
|
200
129
|
ESP_LOGE(TAG, "Receive error");
|
|
201
130
|
this->error_code_ = this->store_.error;
|
|
@@ -221,25 +150,9 @@ void RemoteReceiverComponent::loop() {
|
|
|
221
150
|
this->call_listeners_dumpers_();
|
|
222
151
|
}
|
|
223
152
|
}
|
|
224
|
-
#else
|
|
225
|
-
size_t len = 0;
|
|
226
|
-
auto *item = (rmt_item32_t *) xRingbufferReceive(this->ringbuf_, &len, 0);
|
|
227
|
-
if (item != nullptr) {
|
|
228
|
-
this->decode_rmt_(item, len / sizeof(rmt_item32_t));
|
|
229
|
-
vRingbufferReturnItem(this->ringbuf_, item);
|
|
230
|
-
|
|
231
|
-
if (!this->temp_.empty()) {
|
|
232
|
-
this->call_listeners_dumpers_();
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
#endif
|
|
236
153
|
}
|
|
237
154
|
|
|
238
|
-
#if ESP_IDF_VERSION_MAJOR >= 5
|
|
239
155
|
void RemoteReceiverComponent::decode_rmt_(rmt_symbol_word_t *item, size_t item_count) {
|
|
240
|
-
#else
|
|
241
|
-
void RemoteReceiverComponent::decode_rmt_(rmt_item32_t *item, size_t item_count) {
|
|
242
|
-
#endif
|
|
243
156
|
bool prev_level = false;
|
|
244
157
|
bool idle_level = false;
|
|
245
158
|
uint32_t prev_length = 0;
|
|
@@ -27,7 +27,7 @@ void IRAM_ATTR HOT RemoteReceiverComponentStore::gpio_intr(RemoteReceiverCompone
|
|
|
27
27
|
if (time_since_change <= arg->filter_us)
|
|
28
28
|
return;
|
|
29
29
|
|
|
30
|
-
arg->buffer[arg->buffer_write_at = next] = now;
|
|
30
|
+
arg->buffer[arg->buffer_write_at = next] = now; // NOLINT(clang-diagnostic-deprecated-volatile)
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
void RemoteReceiverComponent::setup() {
|