esphome 2025.6.3__py3-none-any.whl → 2025.7.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- esphome/__main__.py +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 +57 -21
- esphome/components/api/api_connection.cpp +344 -539
- esphome/components/api/api_connection.h +224 -141
- esphome/components/api/api_frame_helper.cpp +91 -127
- esphome/components/api/api_frame_helper.h +64 -54
- esphome/components/api/api_pb2.cpp +1837 -9044
- esphome/components/api/api_pb2.h +532 -685
- esphome/components/api/api_pb2_dump.cpp +4432 -0
- esphome/components/api/api_pb2_service.cpp +184 -425
- esphome/components/api/api_pb2_service.h +13 -6
- esphome/components/api/api_server.cpp +131 -167
- esphome/components/api/api_server.h +38 -10
- esphome/components/api/client.py +8 -2
- esphome/components/api/custom_api_device.h +8 -0
- esphome/components/api/list_entities.cpp +37 -104
- esphome/components/api/list_entities.h +33 -23
- esphome/components/api/proto.h +532 -26
- esphome/components/api/subscribe_state.cpp +23 -29
- esphome/components/api/subscribe_state.h +26 -19
- esphome/components/api/user_services.h +2 -0
- esphome/components/as3935_spi/as3935_spi.h +0 -2
- 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/debug/debug_esp32.cpp +2 -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 +103 -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 +112 -98
- 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 +240 -0
- esphome/components/esp32_touch/esp32_touch_v2.cpp +397 -0
- esphome/components/esp8266/__init__.py +2 -0
- esphome/components/esp8266/gpio.cpp +10 -10
- esphome/components/esp8266/helpers.cpp +31 -0
- esphome/components/esp_ldo/__init__.py +10 -8
- esphome/components/esp_ldo/esp_ldo.h +3 -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/fan/fan.cpp +4 -0
- 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 +39 -1
- 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 +3 -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.h +1 -0
- esphome/components/http_request/ota/ota_http_request.cpp +1 -1
- esphome/components/http_request/update/http_request_update.cpp +35 -16
- 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/__init__.py +1 -1
- 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/json/__init__.py +1 -1
- esphome/components/json/json_util.cpp +56 -63
- 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 +421 -268
- 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/binary_sensor/ld2420_binary_sensor.cpp +2 -2
- esphome/components/ld2420/button/reconfig_buttons.cpp +1 -1
- esphome/components/ld2420/ld2420.cpp +252 -147
- esphome/components/ld2420/ld2420.h +52 -126
- esphome/components/ld2420/number/__init__.py +2 -2
- esphome/components/ld2420/number/gate_config_number.cpp +1 -1
- esphome/components/ld2420/select/operating_mode_select.cpp +1 -1
- esphome/components/ld2420/sensor/__init__.py +6 -2
- esphome/components/ld2420/sensor/ld2420_sensor.cpp +2 -2
- esphome/components/ld2420/sensor/ld2420_sensor.h +1 -1
- esphome/components/ld2420/text_sensor/text_sensor.cpp +2 -2
- 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 +5 -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_json_schema.cpp +17 -16
- 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/lvgl/widgets/meter.py +20 -13
- 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_alarm_control_panel.cpp +2 -1
- esphome/components/mqtt/mqtt_backend.h +2 -1
- esphome/components/mqtt/mqtt_backend_esp32.cpp +132 -47
- esphome/components/mqtt/mqtt_backend_esp32.h +106 -4
- esphome/components/mqtt/mqtt_binary_sensor.cpp +1 -0
- esphome/components/mqtt/mqtt_button.cpp +4 -1
- esphome/components/mqtt/mqtt_client.cpp +17 -9
- esphome/components/mqtt/mqtt_client.h +8 -3
- esphome/components/mqtt/mqtt_climate.cpp +6 -4
- esphome/components/mqtt/mqtt_component.cpp +3 -1
- esphome/components/mqtt/mqtt_cover.cpp +1 -0
- esphome/components/mqtt/mqtt_date.cpp +4 -3
- esphome/components/mqtt/mqtt_datetime.cpp +7 -6
- esphome/components/mqtt/mqtt_event.cpp +6 -3
- esphome/components/mqtt/mqtt_fan.cpp +1 -0
- esphome/components/mqtt/mqtt_light.cpp +8 -4
- esphome/components/mqtt/mqtt_lock.cpp +3 -1
- esphome/components/mqtt/mqtt_number.cpp +1 -0
- esphome/components/mqtt/mqtt_select.cpp +2 -1
- esphome/components/mqtt/mqtt_sensor.cpp +3 -1
- esphome/components/mqtt/mqtt_switch.cpp +3 -1
- esphome/components/mqtt/mqtt_text.cpp +1 -0
- esphome/components/mqtt/mqtt_text_sensor.cpp +3 -1
- esphome/components/mqtt/mqtt_time.cpp +4 -3
- esphome/components/mqtt/mqtt_update.cpp +1 -0
- esphome/components/mqtt/mqtt_valve.cpp +3 -1
- esphome/components/ms8607/ms8607.cpp +1 -1
- 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 +9 -1
- esphome/components/online_image/online_image.cpp +17 -7
- esphome/components/online_image/online_image.h +10 -2
- esphome/components/opentherm/opentherm.cpp +7 -12
- esphome/components/opentherm/output/output.cpp +1 -1
- 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 +34 -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 +2 -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.cpp +2 -2
- 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 +81 -21
- 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 +0 -4
- 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/usb_host/usb_host_client.cpp +10 -10
- esphome/components/usb_uart/cp210x.cpp +1 -1
- esphome/components/usb_uart/usb_uart.cpp +41 -44
- esphome/components/usb_uart/usb_uart.h +4 -3
- 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 +318 -436
- 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 +164 -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 +169 -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 +156 -22
- esphome/core/component.h +98 -4
- esphome/core/component_iterator.cpp +11 -9
- esphome/core/component_iterator.h +12 -10
- 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 +168 -1
- esphome/core/event_pool.h +81 -0
- esphome/core/helpers.cpp +75 -230
- esphome/core/helpers.h +165 -105
- 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 +275 -103
- esphome/core/scheduler.h +154 -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/platformio_api.py +2 -0
- esphome/wizard.py +17 -4
- esphome/writer.py +44 -3
- esphome/yaml_util.py +0 -2
- {esphome-2025.6.3.dist-info → esphome-2025.7.0.dist-info}/METADATA +10 -9
- {esphome-2025.6.3.dist-info → esphome-2025.7.0.dist-info}/RECORD +637 -578
- esphome/components/api/api_pb2_size.h +0 -361
- 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.3.dist-info → esphome-2025.7.0.dist-info}/WHEEL +0 -0
- {esphome-2025.6.3.dist-info → esphome-2025.7.0.dist-info}/entry_points.txt +0 -0
- {esphome-2025.6.3.dist-info → esphome-2025.7.0.dist-info}/licenses/LICENSE +0 -0
- {esphome-2025.6.3.dist-info → esphome-2025.7.0.dist-info}/top_level.txt +0 -0
|
@@ -31,6 +31,10 @@ void PulseMeterSensor::setup() {
|
|
|
31
31
|
this->pulse_state_.latched_ = this->last_pin_val_;
|
|
32
32
|
this->pin_->attach_interrupt(PulseMeterSensor::pulse_intr, this, gpio::INTERRUPT_ANY_EDGE);
|
|
33
33
|
}
|
|
34
|
+
|
|
35
|
+
if (this->total_sensor_ != nullptr) {
|
|
36
|
+
this->total_sensor_->publish_state(this->total_pulses_);
|
|
37
|
+
}
|
|
34
38
|
}
|
|
35
39
|
|
|
36
40
|
void PulseMeterSensor::loop() {
|
|
@@ -63,7 +67,7 @@ void PulseMeterSensor::loop() {
|
|
|
63
67
|
// If an edge was peeked, repay the debt
|
|
64
68
|
if (this->peeked_edge_ && this->get_->count_ > 0) {
|
|
65
69
|
this->peeked_edge_ = false;
|
|
66
|
-
this->get_->count_--;
|
|
70
|
+
this->get_->count_--; // NOLINT(clang-diagnostic-deprecated-volatile)
|
|
67
71
|
}
|
|
68
72
|
|
|
69
73
|
// If there is an unprocessed edge, and filter_us_ has passed since, count this edge early
|
|
@@ -71,7 +75,7 @@ void PulseMeterSensor::loop() {
|
|
|
71
75
|
now - this->get_->last_rising_edge_us_ >= this->filter_us_) {
|
|
72
76
|
this->peeked_edge_ = true;
|
|
73
77
|
this->get_->last_detected_edge_us_ = this->get_->last_rising_edge_us_;
|
|
74
|
-
this->get_->count_++;
|
|
78
|
+
this->get_->count_++; // NOLINT(clang-diagnostic-deprecated-volatile)
|
|
75
79
|
}
|
|
76
80
|
|
|
77
81
|
// Check if we detected a pulse this loop
|
|
@@ -146,7 +150,7 @@ void IRAM_ATTR PulseMeterSensor::edge_intr(PulseMeterSensor *sensor) {
|
|
|
146
150
|
state.last_sent_edge_us_ = now;
|
|
147
151
|
set.last_detected_edge_us_ = now;
|
|
148
152
|
set.last_rising_edge_us_ = now;
|
|
149
|
-
set.count_++;
|
|
153
|
+
set.count_++; // NOLINT(clang-diagnostic-deprecated-volatile)
|
|
150
154
|
}
|
|
151
155
|
|
|
152
156
|
// This ISR is bound to rising edges, so the pin is high
|
|
@@ -169,7 +173,7 @@ void IRAM_ATTR PulseMeterSensor::pulse_intr(PulseMeterSensor *sensor) {
|
|
|
169
173
|
} else if (length && !state.latched_ && sensor->last_pin_val_) { // Long enough high edge
|
|
170
174
|
state.latched_ = true;
|
|
171
175
|
set.last_detected_edge_us_ = state.last_intr_;
|
|
172
|
-
set.count_++;
|
|
176
|
+
set.count_++; // NOLINT(clang-diagnostic-deprecated-volatile)
|
|
173
177
|
}
|
|
174
178
|
|
|
175
179
|
// Due to order of operations this includes
|
|
@@ -32,7 +32,6 @@ class PulseWidthSensor : public sensor::Sensor, public PollingComponent {
|
|
|
32
32
|
void set_pin(InternalGPIOPin *pin) { pin_ = pin; }
|
|
33
33
|
void setup() override { this->store_.setup(this->pin_); }
|
|
34
34
|
void dump_config() override;
|
|
35
|
-
float get_setup_priority() const override { return setup_priority::DATA; }
|
|
36
35
|
void update() override;
|
|
37
36
|
|
|
38
37
|
protected:
|
|
@@ -146,11 +146,7 @@ void PVVXDisplay::sync_time_() {
|
|
|
146
146
|
}
|
|
147
147
|
time.recalc_timestamp_utc(true); // calculate timestamp of local time
|
|
148
148
|
uint8_t blk[5] = {};
|
|
149
|
-
#if ESP_IDF_VERSION_MAJOR >= 5
|
|
150
149
|
ESP_LOGD(TAG, "[%s] Sync time with timestamp %" PRIu64 ".", this->parent_->address_str().c_str(), time.timestamp);
|
|
151
|
-
#else
|
|
152
|
-
ESP_LOGD(TAG, "[%s] Sync time with timestamp %lu.", this->parent_->address_str().c_str(), time.timestamp);
|
|
153
|
-
#endif
|
|
154
150
|
blk[0] = 0x23;
|
|
155
151
|
blk[1] = time.timestamp & 0xff;
|
|
156
152
|
blk[2] = (time.timestamp >> 8) & 0xff;
|
|
@@ -39,8 +39,6 @@ class PVVXDisplay : public ble_client::BLEClientNode, public PollingComponent {
|
|
|
39
39
|
|
|
40
40
|
void dump_config() override;
|
|
41
41
|
|
|
42
|
-
float get_setup_priority() const override { return setup_priority::DATA; }
|
|
43
|
-
|
|
44
42
|
void update() override;
|
|
45
43
|
|
|
46
44
|
void gattc_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_t gattc_if,
|
|
@@ -25,7 +25,6 @@ class PVVXMiThermometer : public Component, public esp32_ble_tracker::ESPBTDevic
|
|
|
25
25
|
|
|
26
26
|
bool parse_device(const esp32_ble_tracker::ESPBTDevice &device) override;
|
|
27
27
|
void dump_config() override;
|
|
28
|
-
float get_setup_priority() const override { return setup_priority::DATA; }
|
|
29
28
|
void set_temperature(sensor::Sensor *temperature) { temperature_ = temperature; }
|
|
30
29
|
void set_humidity(sensor::Sensor *humidity) { humidity_ = humidity; }
|
|
31
30
|
void set_battery_level(sensor::Sensor *battery_level) { battery_level_ = battery_level; }
|
|
@@ -21,21 +21,24 @@ ECC = {
|
|
|
21
21
|
"HIGH": qrcodegen_Ecc.qrcodegen_Ecc_HIGH,
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
CONFIG_SCHEMA = cv.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
CONFIG_SCHEMA = cv.ensure_list(
|
|
25
|
+
cv.Schema(
|
|
26
|
+
{
|
|
27
|
+
cv.Required(CONF_ID): cv.declare_id(QRCode),
|
|
28
|
+
cv.Required(CONF_VALUE): cv.string,
|
|
29
|
+
cv.Optional(CONF_ECC, default="LOW"): cv.enum(ECC, upper=True),
|
|
30
|
+
}
|
|
31
|
+
)
|
|
30
32
|
)
|
|
31
33
|
|
|
32
34
|
|
|
33
35
|
async def to_code(config):
|
|
34
36
|
cg.add_library("wjtje/qr-code-generator-library", "^1.7.0")
|
|
35
37
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
for entry in config:
|
|
39
|
+
var = cg.new_Pvariable(entry[CONF_ID])
|
|
40
|
+
cg.add(var.set_value(entry[CONF_VALUE]))
|
|
41
|
+
cg.add(var.set_ecc(ECC[entry[CONF_ECC]]))
|
|
42
|
+
await cg.register_component(var, entry)
|
|
40
43
|
|
|
41
44
|
cg.add_define("USE_QR_CODE")
|
|
@@ -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
|