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
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#include "nextion.h"
|
|
2
|
-
#include "esphome/core/util.h"
|
|
3
|
-
#include "esphome/core/log.h"
|
|
4
|
-
#include "esphome/core/application.h"
|
|
5
2
|
#include <cinttypes>
|
|
3
|
+
#include "esphome/core/application.h"
|
|
4
|
+
#include "esphome/core/log.h"
|
|
5
|
+
#include "esphome/core/util.h"
|
|
6
6
|
|
|
7
7
|
namespace esphome {
|
|
8
8
|
namespace nextion {
|
|
@@ -11,28 +11,25 @@ static const char *const TAG = "nextion";
|
|
|
11
11
|
|
|
12
12
|
void Nextion::setup() {
|
|
13
13
|
this->is_setup_ = false;
|
|
14
|
-
this->ignore_is_setup_ = true;
|
|
14
|
+
this->connection_state_.ignore_is_setup_ = true;
|
|
15
15
|
|
|
16
|
-
// Wake up the nextion
|
|
17
|
-
this->send_command_("
|
|
18
|
-
this->send_command_("
|
|
16
|
+
// Wake up the nextion and ensure clean communication state
|
|
17
|
+
this->send_command_("sleep=0"); // Exit sleep mode if sleeping
|
|
18
|
+
this->send_command_("bkcmd=0"); // Disable return data during init sequence
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
this->send_command_("sleep=0");
|
|
22
|
-
|
|
23
|
-
// Reboot it
|
|
20
|
+
// Reset device for clean state - critical for reliable communication
|
|
24
21
|
this->send_command_("rest");
|
|
25
22
|
|
|
26
|
-
this->ignore_is_setup_ = false;
|
|
23
|
+
this->connection_state_.ignore_is_setup_ = false;
|
|
27
24
|
}
|
|
28
25
|
|
|
29
26
|
bool Nextion::send_command_(const std::string &command) {
|
|
30
|
-
if (!this->ignore_is_setup_ && !this->is_setup()) {
|
|
27
|
+
if (!this->connection_state_.ignore_is_setup_ && !this->is_setup()) {
|
|
31
28
|
return false;
|
|
32
29
|
}
|
|
33
30
|
|
|
34
31
|
#ifdef USE_NEXTION_COMMAND_SPACING
|
|
35
|
-
if (!this->ignore_is_setup_ && !this->command_pacer_.can_send()) {
|
|
32
|
+
if (!this->connection_state_.ignore_is_setup_ && !this->command_pacer_.can_send()) {
|
|
36
33
|
ESP_LOGN(TAG, "Command spacing: delaying command '%s'", command.c_str());
|
|
37
34
|
return false;
|
|
38
35
|
}
|
|
@@ -48,36 +45,31 @@ bool Nextion::send_command_(const std::string &command) {
|
|
|
48
45
|
}
|
|
49
46
|
|
|
50
47
|
bool Nextion::check_connect_() {
|
|
51
|
-
if (this->is_connected_)
|
|
48
|
+
if (this->connection_state_.is_connected_)
|
|
52
49
|
return true;
|
|
53
50
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
this->is_connected_ = true;
|
|
60
|
-
// Return true indicating the connection is set
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
63
|
-
|
|
51
|
+
#ifdef USE_NEXTION_CONFIG_SKIP_CONNECTION_HANDSHAKE
|
|
52
|
+
ESP_LOGW(TAG, "Connected (no handshake)"); // Log the connection status without handshake
|
|
53
|
+
this->is_connected_ = true; // Set the connection status to true
|
|
54
|
+
return true; // Return true indicating the connection is set
|
|
55
|
+
#else // USE_NEXTION_CONFIG_SKIP_CONNECTION_HANDSHAKE
|
|
64
56
|
if (this->comok_sent_ == 0) {
|
|
65
57
|
this->reset_(false);
|
|
66
58
|
|
|
67
|
-
this->ignore_is_setup_ = true;
|
|
59
|
+
this->connection_state_.ignore_is_setup_ = true;
|
|
68
60
|
this->send_command_("boguscommand=0"); // bogus command. needed sometimes after updating
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
61
|
+
#ifdef USE_NEXTION_CONFIG_EXIT_REPARSE_ON_START
|
|
62
|
+
this->send_command_("DRAKJHSUYDGBNCJHGJKSHBDN");
|
|
63
|
+
#endif // USE_NEXTION_CONFIG_EXIT_REPARSE_ON_START
|
|
72
64
|
this->send_command_("connect");
|
|
73
65
|
|
|
74
|
-
this->comok_sent_ =
|
|
75
|
-
this->ignore_is_setup_ = false;
|
|
66
|
+
this->comok_sent_ = App.get_loop_component_start_time();
|
|
67
|
+
this->connection_state_.ignore_is_setup_ = false;
|
|
76
68
|
|
|
77
69
|
return false;
|
|
78
70
|
}
|
|
79
71
|
|
|
80
|
-
if (
|
|
72
|
+
if (App.get_loop_component_start_time() - this->comok_sent_ <= 500) // Wait 500 ms
|
|
81
73
|
return false;
|
|
82
74
|
|
|
83
75
|
std::string response;
|
|
@@ -94,16 +86,16 @@ bool Nextion::check_connect_() {
|
|
|
94
86
|
for (size_t i = 0; i < response.length(); i++) {
|
|
95
87
|
ESP_LOGN(TAG, "resp: %s %d %d %c", response.c_str(), i, response[i], response[i]);
|
|
96
88
|
}
|
|
97
|
-
#endif
|
|
89
|
+
#endif // NEXTION_PROTOCOL_LOG
|
|
98
90
|
|
|
99
91
|
ESP_LOGW(TAG, "Not connected");
|
|
100
92
|
comok_sent_ = 0;
|
|
101
93
|
return false;
|
|
102
94
|
}
|
|
103
95
|
|
|
104
|
-
this->ignore_is_setup_ = true;
|
|
96
|
+
this->connection_state_.ignore_is_setup_ = true;
|
|
105
97
|
ESP_LOGI(TAG, "Connected");
|
|
106
|
-
this->is_connected_ = true;
|
|
98
|
+
this->connection_state_.is_connected_ = true;
|
|
107
99
|
|
|
108
100
|
ESP_LOGN(TAG, "connect: %s", response.c_str());
|
|
109
101
|
|
|
@@ -118,18 +110,27 @@ bool Nextion::check_connect_() {
|
|
|
118
110
|
this->is_detected_ = (connect_info.size() == 7);
|
|
119
111
|
if (this->is_detected_) {
|
|
120
112
|
ESP_LOGN(TAG, "Connect info: %zu", connect_info.size());
|
|
121
|
-
|
|
113
|
+
#ifdef USE_NEXTION_CONFIG_DUMP_DEVICE_INFO
|
|
122
114
|
this->device_model_ = connect_info[2];
|
|
123
115
|
this->firmware_version_ = connect_info[3];
|
|
124
116
|
this->serial_number_ = connect_info[5];
|
|
125
117
|
this->flash_size_ = connect_info[6];
|
|
118
|
+
#else // USE_NEXTION_CONFIG_DUMP_DEVICE_INFO
|
|
119
|
+
ESP_LOGI(TAG,
|
|
120
|
+
" Device Model: %s\n"
|
|
121
|
+
" FW Version: %s\n"
|
|
122
|
+
" Serial Number: %s\n"
|
|
123
|
+
" Flash Size: %s\n",
|
|
124
|
+
connect_info[2].c_str(), connect_info[3].c_str(), connect_info[5].c_str(), connect_info[6].c_str());
|
|
125
|
+
#endif // USE_NEXTION_CONFIG_DUMP_DEVICE_INFO
|
|
126
126
|
} else {
|
|
127
127
|
ESP_LOGE(TAG, "Bad connect value: '%s'", response.c_str());
|
|
128
128
|
}
|
|
129
129
|
|
|
130
|
-
this->ignore_is_setup_ = false;
|
|
130
|
+
this->connection_state_.ignore_is_setup_ = false;
|
|
131
131
|
this->dump_config();
|
|
132
132
|
return true;
|
|
133
|
+
#endif // USE_NEXTION_CONFIG_SKIP_CONNECTION_HANDSHAKE
|
|
133
134
|
}
|
|
134
135
|
|
|
135
136
|
void Nextion::reset_(bool reset_nextion) {
|
|
@@ -144,36 +145,42 @@ void Nextion::reset_(bool reset_nextion) {
|
|
|
144
145
|
|
|
145
146
|
void Nextion::dump_config() {
|
|
146
147
|
ESP_LOGCONFIG(TAG, "Nextion:");
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
" Device Model: %s\n"
|
|
152
|
-
" FW Version: %s\n"
|
|
153
|
-
" Serial Number: %s\n"
|
|
154
|
-
" Flash Size: %s",
|
|
155
|
-
this->device_model_.c_str(), this->firmware_version_.c_str(), this->serial_number_.c_str(),
|
|
156
|
-
this->flash_size_.c_str());
|
|
157
|
-
}
|
|
148
|
+
|
|
149
|
+
#ifdef USE_NEXTION_CONFIG_SKIP_CONNECTION_HANDSHAKE
|
|
150
|
+
ESP_LOGCONFIG(TAG, " Skip handshake: YES");
|
|
151
|
+
#else // USE_NEXTION_CONFIG_SKIP_CONNECTION_HANDSHAKE
|
|
158
152
|
ESP_LOGCONFIG(TAG,
|
|
153
|
+
#ifdef USE_NEXTION_CONFIG_DUMP_DEVICE_INFO
|
|
154
|
+
" Device Model: %s\n"
|
|
155
|
+
" FW Version: %s\n"
|
|
156
|
+
" Serial Number: %s\n"
|
|
157
|
+
" Flash Size: %s\n"
|
|
158
|
+
#endif // USE_NEXTION_CONFIG_DUMP_DEVICE_INFO
|
|
159
|
+
#ifdef USE_NEXTION_CONFIG_EXIT_REPARSE_ON_START
|
|
160
|
+
" Exit reparse: YES\n"
|
|
161
|
+
#endif // USE_NEXTION_CONFIG_EXIT_REPARSE_ON_START
|
|
159
162
|
" Wake On Touch: %s\n"
|
|
160
|
-
"
|
|
161
|
-
|
|
163
|
+
" Touch Timeout: %" PRIu16,
|
|
164
|
+
#ifdef USE_NEXTION_CONFIG_DUMP_DEVICE_INFO
|
|
165
|
+
this->device_model_.c_str(), this->firmware_version_.c_str(), this->serial_number_.c_str(),
|
|
166
|
+
this->flash_size_.c_str(),
|
|
167
|
+
#endif // USE_NEXTION_CONFIG_DUMP_DEVICE_INFO
|
|
168
|
+
YESNO(this->connection_state_.auto_wake_on_touch_), this->touch_sleep_timeout_);
|
|
169
|
+
#endif // USE_NEXTION_CONFIG_SKIP_CONNECTION_HANDSHAKE
|
|
170
|
+
|
|
162
171
|
#ifdef USE_NEXTION_MAX_COMMANDS_PER_LOOP
|
|
163
172
|
ESP_LOGCONFIG(TAG, " Max commands per loop: %u", this->max_commands_per_loop_);
|
|
164
173
|
#endif // USE_NEXTION_MAX_COMMANDS_PER_LOOP
|
|
165
174
|
|
|
166
|
-
if (this->
|
|
167
|
-
ESP_LOGCONFIG(TAG, "
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
if (this->wake_up_page_ != -1) {
|
|
171
|
-
ESP_LOGCONFIG(TAG, " Wake Up Page: %d", this->wake_up_page_);
|
|
175
|
+
if (this->wake_up_page_ != 255) {
|
|
176
|
+
ESP_LOGCONFIG(TAG, " Wake Up Page: %u", this->wake_up_page_);
|
|
172
177
|
}
|
|
173
178
|
|
|
174
|
-
|
|
175
|
-
|
|
179
|
+
#ifdef USE_NEXTION_CONF_START_UP_PAGE
|
|
180
|
+
if (this->start_up_page_ != 255) {
|
|
181
|
+
ESP_LOGCONFIG(TAG, " Start Up Page: %u", this->start_up_page_);
|
|
176
182
|
}
|
|
183
|
+
#endif // USE_NEXTION_CONF_START_UP_PAGE
|
|
177
184
|
|
|
178
185
|
#ifdef USE_NEXTION_COMMAND_SPACING
|
|
179
186
|
ESP_LOGCONFIG(TAG, " Cmd spacing: %u ms", this->command_pacer_.get_spacing());
|
|
@@ -219,7 +226,7 @@ void Nextion::add_buffer_overflow_event_callback(std::function<void()> &&callbac
|
|
|
219
226
|
}
|
|
220
227
|
|
|
221
228
|
void Nextion::update_all_components() {
|
|
222
|
-
if ((!this->is_setup() && !this->ignore_is_setup_) || this->is_sleeping())
|
|
229
|
+
if ((!this->is_setup() && !this->connection_state_.ignore_is_setup_) || this->is_sleeping())
|
|
223
230
|
return;
|
|
224
231
|
|
|
225
232
|
for (auto *binarysensortype : this->binarysensortype_) {
|
|
@@ -237,7 +244,7 @@ void Nextion::update_all_components() {
|
|
|
237
244
|
}
|
|
238
245
|
|
|
239
246
|
bool Nextion::send_command(const char *command) {
|
|
240
|
-
if ((!this->is_setup() && !this->ignore_is_setup_) || this->is_sleeping())
|
|
247
|
+
if ((!this->is_setup() && !this->connection_state_.ignore_is_setup_) || this->is_sleeping())
|
|
241
248
|
return false;
|
|
242
249
|
|
|
243
250
|
if (this->send_command_(command)) {
|
|
@@ -248,7 +255,7 @@ bool Nextion::send_command(const char *command) {
|
|
|
248
255
|
}
|
|
249
256
|
|
|
250
257
|
bool Nextion::send_command_printf(const char *format, ...) {
|
|
251
|
-
if ((!this->is_setup() && !this->ignore_is_setup_) || this->is_sleeping())
|
|
258
|
+
if ((!this->is_setup() && !this->connection_state_.ignore_is_setup_) || this->is_sleeping())
|
|
252
259
|
return false;
|
|
253
260
|
|
|
254
261
|
char buffer[256];
|
|
@@ -289,43 +296,72 @@ void Nextion::print_queue_members_() {
|
|
|
289
296
|
#endif
|
|
290
297
|
|
|
291
298
|
void Nextion::loop() {
|
|
292
|
-
if (!this->check_connect_() || this->is_updating_)
|
|
299
|
+
if (!this->check_connect_() || this->connection_state_.is_updating_)
|
|
293
300
|
return;
|
|
294
301
|
|
|
295
|
-
if (this->nextion_reports_is_setup_ && !this->sent_setup_commands_) {
|
|
296
|
-
this->ignore_is_setup_ = true;
|
|
297
|
-
this->sent_setup_commands_ = true;
|
|
302
|
+
if (this->connection_state_.nextion_reports_is_setup_ && !this->connection_state_.sent_setup_commands_) {
|
|
303
|
+
this->connection_state_.ignore_is_setup_ = true;
|
|
304
|
+
this->connection_state_.sent_setup_commands_ = true;
|
|
298
305
|
this->send_command_("bkcmd=3"); // Always, returns 0x00 to 0x23 result of serial command.
|
|
299
306
|
|
|
300
307
|
if (this->brightness_.has_value()) {
|
|
301
308
|
this->set_backlight_brightness(this->brightness_.value());
|
|
302
309
|
}
|
|
303
310
|
|
|
311
|
+
#ifdef USE_NEXTION_CONF_START_UP_PAGE
|
|
304
312
|
// Check if a startup page has been set and send the command
|
|
305
|
-
if (this->start_up_page_ !=
|
|
313
|
+
if (this->start_up_page_ != 255) {
|
|
306
314
|
this->goto_page(this->start_up_page_);
|
|
307
315
|
}
|
|
316
|
+
#endif // USE_NEXTION_CONF_START_UP_PAGE
|
|
308
317
|
|
|
309
|
-
if (this->wake_up_page_ !=
|
|
318
|
+
if (this->wake_up_page_ != 255) {
|
|
310
319
|
this->set_wake_up_page(this->wake_up_page_);
|
|
311
320
|
}
|
|
312
321
|
|
|
313
|
-
this->
|
|
322
|
+
if (this->touch_sleep_timeout_ != 0) {
|
|
323
|
+
this->set_touch_sleep_timeout(this->touch_sleep_timeout_);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
this->connection_state_.ignore_is_setup_ = false;
|
|
314
327
|
}
|
|
315
328
|
|
|
316
329
|
this->process_serial_(); // Receive serial data
|
|
317
330
|
this->process_nextion_commands_(); // Process nextion return commands
|
|
318
331
|
|
|
319
|
-
if (!this->nextion_reports_is_setup_) {
|
|
332
|
+
if (!this->connection_state_.nextion_reports_is_setup_) {
|
|
320
333
|
if (this->started_ms_ == 0)
|
|
321
|
-
this->started_ms_ =
|
|
334
|
+
this->started_ms_ = App.get_loop_component_start_time();
|
|
322
335
|
|
|
323
|
-
if (this->started_ms_ + this->startup_override_ms_ <
|
|
336
|
+
if (this->started_ms_ + this->startup_override_ms_ < App.get_loop_component_start_time()) {
|
|
324
337
|
ESP_LOGD(TAG, "Manual ready set");
|
|
325
|
-
this->nextion_reports_is_setup_ = true;
|
|
338
|
+
this->connection_state_.nextion_reports_is_setup_ = true;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
#ifdef USE_NEXTION_COMMAND_SPACING
|
|
343
|
+
// Try to send any pending commands if spacing allows
|
|
344
|
+
this->process_pending_in_queue_();
|
|
345
|
+
#endif // USE_NEXTION_COMMAND_SPACING
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
#ifdef USE_NEXTION_COMMAND_SPACING
|
|
349
|
+
void Nextion::process_pending_in_queue_() {
|
|
350
|
+
if (this->nextion_queue_.empty() || !this->command_pacer_.can_send()) {
|
|
351
|
+
return;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
// Check if first item in queue has a pending command
|
|
355
|
+
auto *front_item = this->nextion_queue_.front();
|
|
356
|
+
if (front_item && !front_item->pending_command.empty()) {
|
|
357
|
+
if (this->send_command_(front_item->pending_command)) {
|
|
358
|
+
// Command sent successfully, clear the pending command
|
|
359
|
+
front_item->pending_command.clear();
|
|
360
|
+
ESP_LOGVV(TAG, "Pending command sent: %s", front_item->component->get_variable_name().c_str());
|
|
326
361
|
}
|
|
327
362
|
}
|
|
328
363
|
}
|
|
364
|
+
#endif // USE_NEXTION_COMMAND_SPACING
|
|
329
365
|
|
|
330
366
|
bool Nextion::remove_from_q_(bool report_empty) {
|
|
331
367
|
if (this->nextion_queue_.empty()) {
|
|
@@ -395,12 +431,12 @@ void Nextion::process_nextion_commands_() {
|
|
|
395
431
|
ESP_LOGN(TAG, "Add 0xFF");
|
|
396
432
|
}
|
|
397
433
|
|
|
398
|
-
|
|
434
|
+
const uint8_t nextion_event = this->command_data_[0];
|
|
399
435
|
|
|
400
436
|
to_process_length -= 1;
|
|
401
437
|
to_process = this->command_data_.substr(1, to_process_length);
|
|
402
438
|
|
|
403
|
-
switch (
|
|
439
|
+
switch (nextion_event) {
|
|
404
440
|
case 0x00: // instruction sent by user has failed
|
|
405
441
|
ESP_LOGW(TAG, "Invalid instruction");
|
|
406
442
|
this->remove_from_q_();
|
|
@@ -409,7 +445,7 @@ void Nextion::process_nextion_commands_() {
|
|
|
409
445
|
case 0x01: // instruction sent by user was successful
|
|
410
446
|
|
|
411
447
|
ESP_LOGVV(TAG, "Cmd OK");
|
|
412
|
-
ESP_LOGN(TAG, "this->nextion_queue_.empty() %s", this->nextion_queue_.empty()
|
|
448
|
+
ESP_LOGN(TAG, "this->nextion_queue_.empty() %s", YESNO(this->nextion_queue_.empty()));
|
|
413
449
|
|
|
414
450
|
this->remove_from_q_();
|
|
415
451
|
if (!this->is_setup_) {
|
|
@@ -421,7 +457,7 @@ void Nextion::process_nextion_commands_() {
|
|
|
421
457
|
}
|
|
422
458
|
#ifdef USE_NEXTION_COMMAND_SPACING
|
|
423
459
|
this->command_pacer_.mark_sent(); // Here is where we should mark the command as sent
|
|
424
|
-
ESP_LOGN(TAG, "Command spacing: marked command sent
|
|
460
|
+
ESP_LOGN(TAG, "Command spacing: marked command sent");
|
|
425
461
|
#endif
|
|
426
462
|
break;
|
|
427
463
|
case 0x02: // invalid Component ID or name was used
|
|
@@ -539,9 +575,9 @@ void Nextion::process_nextion_commands_() {
|
|
|
539
575
|
break;
|
|
540
576
|
}
|
|
541
577
|
|
|
542
|
-
uint16_t x = (uint16_t(to_process[0]) << 8) | to_process[1];
|
|
543
|
-
uint16_t y = (uint16_t(to_process[2]) << 8) | to_process[3];
|
|
544
|
-
uint8_t touch_event = to_process[4]; // 0 -> release, 1 -> press
|
|
578
|
+
const uint16_t x = (uint16_t(to_process[0]) << 8) | to_process[1];
|
|
579
|
+
const uint16_t y = (uint16_t(to_process[2]) << 8) | to_process[3];
|
|
580
|
+
const uint8_t touch_event = to_process[4]; // 0 -> release, 1 -> press
|
|
545
581
|
ESP_LOGD(TAG, "Touch %s at %u,%u", touch_event ? "PRESS" : "RELEASE", x, y);
|
|
546
582
|
break;
|
|
547
583
|
}
|
|
@@ -642,7 +678,7 @@ void Nextion::process_nextion_commands_() {
|
|
|
642
678
|
case 0x88: // system successful start up
|
|
643
679
|
{
|
|
644
680
|
ESP_LOGD(TAG, "System start: %zu", to_process_length);
|
|
645
|
-
this->nextion_reports_is_setup_ = true;
|
|
681
|
+
this->connection_state_.nextion_reports_is_setup_ = true;
|
|
646
682
|
break;
|
|
647
683
|
}
|
|
648
684
|
case 0x89: { // start SD card upgrade
|
|
@@ -797,15 +833,14 @@ void Nextion::process_nextion_commands_() {
|
|
|
797
833
|
break;
|
|
798
834
|
}
|
|
799
835
|
default:
|
|
800
|
-
ESP_LOGW(TAG, "Unknown event: 0x%02X",
|
|
836
|
+
ESP_LOGW(TAG, "Unknown event: 0x%02X", nextion_event);
|
|
801
837
|
break;
|
|
802
838
|
}
|
|
803
839
|
|
|
804
|
-
// ESP_LOGN(TAG, "nextion_event_ deleting from 0 to %d", to_process_length + COMMAND_DELIMITER.length() + 1);
|
|
805
840
|
this->command_data_.erase(0, to_process_length + COMMAND_DELIMITER.length() + 1);
|
|
806
841
|
}
|
|
807
842
|
|
|
808
|
-
uint32_t ms =
|
|
843
|
+
const uint32_t ms = App.get_loop_component_start_time();
|
|
809
844
|
|
|
810
845
|
if (!this->nextion_queue_.empty() && this->nextion_queue_.front()->queue_time + this->max_q_age_ms_ < ms) {
|
|
811
846
|
for (size_t i = 0; i < this->nextion_queue_.size(); i++) {
|
|
@@ -937,14 +972,12 @@ void Nextion::update_components_by_prefix(const std::string &prefix) {
|
|
|
937
972
|
}
|
|
938
973
|
|
|
939
974
|
uint16_t Nextion::recv_ret_string_(std::string &response, uint32_t timeout, bool recv_flag) {
|
|
940
|
-
uint16_t ret = 0;
|
|
941
975
|
uint8_t c = 0;
|
|
942
976
|
uint8_t nr_of_ff_bytes = 0;
|
|
943
|
-
uint64_t start;
|
|
944
977
|
bool exit_flag = false;
|
|
945
978
|
bool ff_flag = false;
|
|
946
979
|
|
|
947
|
-
start = millis();
|
|
980
|
+
const uint32_t start = millis();
|
|
948
981
|
|
|
949
982
|
while ((timeout == 0 && this->available()) || millis() - start <= timeout) {
|
|
950
983
|
if (!this->available()) {
|
|
@@ -981,8 +1014,7 @@ uint16_t Nextion::recv_ret_string_(std::string &response, uint32_t timeout, bool
|
|
|
981
1014
|
if (ff_flag)
|
|
982
1015
|
response = response.substr(0, response.length() - 3); // Remove last 3 0xFF
|
|
983
1016
|
|
|
984
|
-
|
|
985
|
-
return ret;
|
|
1017
|
+
return response.length();
|
|
986
1018
|
}
|
|
987
1019
|
|
|
988
1020
|
/**
|
|
@@ -1003,7 +1035,7 @@ void Nextion::add_no_result_to_queue_(const std::string &variable_name) {
|
|
|
1003
1035
|
}
|
|
1004
1036
|
#endif
|
|
1005
1037
|
|
|
1006
|
-
|
|
1038
|
+
RAMAllocator<nextion::NextionQueue> allocator;
|
|
1007
1039
|
nextion::NextionQueue *nextion_queue = allocator.allocate(1);
|
|
1008
1040
|
if (nextion_queue == nullptr) {
|
|
1009
1041
|
ESP_LOGW(TAG, "Queue alloc failed");
|
|
@@ -1029,17 +1061,50 @@ void Nextion::add_no_result_to_queue_(const std::string &variable_name) {
|
|
|
1029
1061
|
* @param command
|
|
1030
1062
|
*/
|
|
1031
1063
|
void Nextion::add_no_result_to_queue_with_command_(const std::string &variable_name, const std::string &command) {
|
|
1032
|
-
if ((!this->is_setup() && !this->ignore_is_setup_) || command.empty())
|
|
1064
|
+
if ((!this->is_setup() && !this->connection_state_.ignore_is_setup_) || command.empty())
|
|
1033
1065
|
return;
|
|
1034
1066
|
|
|
1035
1067
|
if (this->send_command_(command)) {
|
|
1036
1068
|
this->add_no_result_to_queue_(variable_name);
|
|
1069
|
+
#ifdef USE_NEXTION_COMMAND_SPACING
|
|
1070
|
+
} else {
|
|
1071
|
+
// Command blocked by spacing, add to queue WITH the command for retry
|
|
1072
|
+
this->add_no_result_to_queue_with_pending_command_(variable_name, command);
|
|
1073
|
+
#endif // USE_NEXTION_COMMAND_SPACING
|
|
1074
|
+
}
|
|
1075
|
+
}
|
|
1076
|
+
|
|
1077
|
+
#ifdef USE_NEXTION_COMMAND_SPACING
|
|
1078
|
+
void Nextion::add_no_result_to_queue_with_pending_command_(const std::string &variable_name,
|
|
1079
|
+
const std::string &command) {
|
|
1080
|
+
#ifdef USE_NEXTION_MAX_QUEUE_SIZE
|
|
1081
|
+
if (this->max_queue_size_ > 0 && this->nextion_queue_.size() >= this->max_queue_size_) {
|
|
1082
|
+
ESP_LOGW(TAG, "Queue full (%zu), drop: %s", this->nextion_queue_.size(), variable_name.c_str());
|
|
1083
|
+
return;
|
|
1084
|
+
}
|
|
1085
|
+
#endif
|
|
1086
|
+
|
|
1087
|
+
RAMAllocator<nextion::NextionQueue> allocator;
|
|
1088
|
+
nextion::NextionQueue *nextion_queue = allocator.allocate(1);
|
|
1089
|
+
if (nextion_queue == nullptr) {
|
|
1090
|
+
ESP_LOGW(TAG, "Queue alloc failed");
|
|
1091
|
+
return;
|
|
1037
1092
|
}
|
|
1093
|
+
new (nextion_queue) nextion::NextionQueue();
|
|
1094
|
+
|
|
1095
|
+
nextion_queue->component = new nextion::NextionComponentBase;
|
|
1096
|
+
nextion_queue->component->set_variable_name(variable_name);
|
|
1097
|
+
nextion_queue->queue_time = App.get_loop_component_start_time();
|
|
1098
|
+
nextion_queue->pending_command = command; // Store command for retry
|
|
1099
|
+
|
|
1100
|
+
this->nextion_queue_.push_back(nextion_queue);
|
|
1101
|
+
ESP_LOGVV(TAG, "Queue with pending command: %s", variable_name.c_str());
|
|
1038
1102
|
}
|
|
1103
|
+
#endif // USE_NEXTION_COMMAND_SPACING
|
|
1039
1104
|
|
|
1040
1105
|
bool Nextion::add_no_result_to_queue_with_ignore_sleep_printf_(const std::string &variable_name, const char *format,
|
|
1041
1106
|
...) {
|
|
1042
|
-
if ((!this->is_setup() && !this->ignore_is_setup_))
|
|
1107
|
+
if ((!this->is_setup() && !this->connection_state_.ignore_is_setup_))
|
|
1043
1108
|
return false;
|
|
1044
1109
|
|
|
1045
1110
|
char buffer[256];
|
|
@@ -1064,7 +1129,7 @@ bool Nextion::add_no_result_to_queue_with_ignore_sleep_printf_(const std::string
|
|
|
1064
1129
|
* @param ... The format arguments
|
|
1065
1130
|
*/
|
|
1066
1131
|
bool Nextion::add_no_result_to_queue_with_printf_(const std::string &variable_name, const char *format, ...) {
|
|
1067
|
-
if ((!this->is_setup() && !this->ignore_is_setup_) || this->is_sleeping())
|
|
1132
|
+
if ((!this->is_setup() && !this->connection_state_.ignore_is_setup_) || this->is_sleeping())
|
|
1068
1133
|
return false;
|
|
1069
1134
|
|
|
1070
1135
|
char buffer[256];
|
|
@@ -1103,7 +1168,7 @@ void Nextion::add_no_result_to_queue_with_set(const std::string &variable_name,
|
|
|
1103
1168
|
void Nextion::add_no_result_to_queue_with_set_internal_(const std::string &variable_name,
|
|
1104
1169
|
const std::string &variable_name_to_send, int32_t state_value,
|
|
1105
1170
|
bool is_sleep_safe) {
|
|
1106
|
-
if ((!this->is_setup() && !this->ignore_is_setup_) || (!is_sleep_safe && this->is_sleeping()))
|
|
1171
|
+
if ((!this->is_setup() && !this->connection_state_.ignore_is_setup_) || (!is_sleep_safe && this->is_sleeping()))
|
|
1107
1172
|
return;
|
|
1108
1173
|
|
|
1109
1174
|
this->add_no_result_to_queue_with_ignore_sleep_printf_(variable_name, "%s=%" PRId32, variable_name_to_send.c_str(),
|
|
@@ -1131,7 +1196,7 @@ void Nextion::add_no_result_to_queue_with_set(const std::string &variable_name,
|
|
|
1131
1196
|
void Nextion::add_no_result_to_queue_with_set_internal_(const std::string &variable_name,
|
|
1132
1197
|
const std::string &variable_name_to_send,
|
|
1133
1198
|
const std::string &state_value, bool is_sleep_safe) {
|
|
1134
|
-
if ((!this->is_setup() && !this->ignore_is_setup_) || (!is_sleep_safe && this->is_sleeping()))
|
|
1199
|
+
if ((!this->is_setup() && !this->connection_state_.ignore_is_setup_) || (!is_sleep_safe && this->is_sleeping()))
|
|
1135
1200
|
return;
|
|
1136
1201
|
|
|
1137
1202
|
this->add_no_result_to_queue_with_printf_(variable_name, "%s=\"%s\"", variable_name_to_send.c_str(),
|
|
@@ -1148,7 +1213,7 @@ void Nextion::add_no_result_to_queue_with_set_internal_(const std::string &varia
|
|
|
1148
1213
|
* @param component Pointer to the Nextion component that will handle the response.
|
|
1149
1214
|
*/
|
|
1150
1215
|
void Nextion::add_to_get_queue(NextionComponentBase *component) {
|
|
1151
|
-
if ((!this->is_setup() && !this->ignore_is_setup_))
|
|
1216
|
+
if ((!this->is_setup() && !this->connection_state_.ignore_is_setup_))
|
|
1152
1217
|
return;
|
|
1153
1218
|
|
|
1154
1219
|
#ifdef USE_NEXTION_MAX_QUEUE_SIZE
|
|
@@ -1159,7 +1224,7 @@ void Nextion::add_to_get_queue(NextionComponentBase *component) {
|
|
|
1159
1224
|
}
|
|
1160
1225
|
#endif
|
|
1161
1226
|
|
|
1162
|
-
|
|
1227
|
+
RAMAllocator<nextion::NextionQueue> allocator;
|
|
1163
1228
|
nextion::NextionQueue *nextion_queue = allocator.allocate(1);
|
|
1164
1229
|
if (nextion_queue == nullptr) {
|
|
1165
1230
|
ESP_LOGW(TAG, "Queue alloc failed");
|
|
@@ -1168,7 +1233,7 @@ void Nextion::add_to_get_queue(NextionComponentBase *component) {
|
|
|
1168
1233
|
new (nextion_queue) nextion::NextionQueue();
|
|
1169
1234
|
|
|
1170
1235
|
nextion_queue->component = component;
|
|
1171
|
-
nextion_queue->queue_time =
|
|
1236
|
+
nextion_queue->queue_time = App.get_loop_component_start_time();
|
|
1172
1237
|
|
|
1173
1238
|
ESP_LOGN(TAG, "Queue %s: %s", component->get_queue_type_string().c_str(), component->get_variable_name().c_str());
|
|
1174
1239
|
|
|
@@ -1188,10 +1253,10 @@ void Nextion::add_to_get_queue(NextionComponentBase *component) {
|
|
|
1188
1253
|
* @param buffer_size The buffer data
|
|
1189
1254
|
*/
|
|
1190
1255
|
void Nextion::add_addt_command_to_queue(NextionComponentBase *component) {
|
|
1191
|
-
if ((!this->is_setup() && !this->ignore_is_setup_) || this->is_sleeping())
|
|
1256
|
+
if ((!this->is_setup() && !this->connection_state_.ignore_is_setup_) || this->is_sleeping())
|
|
1192
1257
|
return;
|
|
1193
1258
|
|
|
1194
|
-
|
|
1259
|
+
RAMAllocator<nextion::NextionQueue> allocator;
|
|
1195
1260
|
nextion::NextionQueue *nextion_queue = allocator.allocate(1);
|
|
1196
1261
|
if (nextion_queue == nullptr) {
|
|
1197
1262
|
ESP_LOGW(TAG, "Queue alloc failed");
|
|
@@ -1200,7 +1265,7 @@ void Nextion::add_addt_command_to_queue(NextionComponentBase *component) {
|
|
|
1200
1265
|
new (nextion_queue) nextion::NextionQueue();
|
|
1201
1266
|
|
|
1202
1267
|
nextion_queue->component = component;
|
|
1203
|
-
nextion_queue->queue_time =
|
|
1268
|
+
nextion_queue->queue_time = App.get_loop_component_start_time();
|
|
1204
1269
|
|
|
1205
1270
|
this->waveform_queue_.push_back(nextion_queue);
|
|
1206
1271
|
if (this->waveform_queue_.size() == 1)
|
|
@@ -1229,7 +1294,7 @@ void Nextion::set_writer(const nextion_writer_t &writer) { this->writer_ = write
|
|
|
1229
1294
|
ESPDEPRECATED("set_wait_for_ack(bool) deprecated, no effect", "v1.20")
|
|
1230
1295
|
void Nextion::set_wait_for_ack(bool wait_for_ack) { ESP_LOGE(TAG, "Deprecated"); }
|
|
1231
1296
|
|
|
1232
|
-
bool Nextion::is_updating() { return this->is_updating_; }
|
|
1297
|
+
bool Nextion::is_updating() { return this->connection_state_.is_updating_; }
|
|
1233
1298
|
|
|
1234
1299
|
} // namespace nextion
|
|
1235
1300
|
} // namespace esphome
|