esphome 2025.6.2__py3-none-any.whl → 2025.7.0b1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- esphome/__main__.py +1 -3
- esphome/codegen.py +2 -0
- esphome/components/ac_dimmer/ac_dimmer.cpp +6 -6
- esphome/components/adc/__init__.py +25 -1
- esphome/components/adc/adc_sensor.h +11 -11
- esphome/components/adc/adc_sensor_common.cpp +1 -1
- esphome/components/adc/adc_sensor_esp32.cpp +16 -8
- esphome/components/ade7880/ade7880.h +0 -2
- esphome/components/ads1115/ads1115.h +0 -1
- esphome/components/ads1118/ads1118.h +0 -1
- esphome/components/ags10/ags10.h +0 -2
- esphome/components/aic3204/aic3204.h +0 -1
- esphome/components/alarm_control_panel/__init__.py +5 -2
- esphome/components/alpha3/alpha3.h +0 -1
- esphome/components/am43/cover/am43_cover.h +0 -1
- esphome/components/am43/sensor/am43_sensor.h +0 -1
- esphome/components/analog_threshold/analog_threshold_binary_sensor.h +0 -2
- esphome/components/anova/anova.cpp +5 -1
- esphome/components/anova/anova.h +0 -1
- esphome/components/apds9960/apds9960.cpp +1 -1
- esphome/components/api/__init__.py +42 -20
- esphome/components/api/api_connection.cpp +318 -391
- esphome/components/api/api_connection.h +206 -126
- esphome/components/api/api_frame_helper.cpp +89 -124
- esphome/components/api/api_frame_helper.h +57 -45
- esphome/components/api/api_pb2.cpp +414 -4350
- esphome/components/api/api_pb2.h +287 -198
- esphome/components/api/api_pb2_dump.cpp +4333 -0
- esphome/components/api/api_pb2_service.cpp +180 -425
- esphome/components/api/api_pb2_service.h +7 -6
- esphome/components/api/api_pb2_size.h +2 -4
- esphome/components/api/api_server.cpp +138 -167
- esphome/components/api/api_server.h +66 -12
- esphome/components/api/client.py +10 -4
- esphome/components/api/list_entities.cpp +36 -105
- esphome/components/api/list_entities.h +31 -23
- esphome/components/api/proto.h +26 -3
- esphome/components/api/subscribe_state.cpp +23 -29
- esphome/components/api/subscribe_state.h +26 -19
- esphome/components/as5600/as5600.h +0 -1
- esphome/components/async_tcp/__init__.py +14 -5
- esphome/components/atc_mithermometer/atc_mithermometer.h +0 -1
- esphome/components/atm90e32/atm90e32.cpp +2 -1
- esphome/components/audio/audio_decoder.cpp +1 -1
- esphome/components/audio/audio_transfer_buffer.cpp +2 -2
- esphome/components/b_parasite/b_parasite.h +0 -1
- esphome/components/bedjet/bedjet_hub.cpp +5 -1
- esphome/components/bedjet/climate/bedjet_climate.cpp +5 -1
- esphome/components/beken_spi_led_strip/led_strip.cpp +4 -2
- esphome/components/bh1750/bh1750.cpp +5 -5
- esphome/components/binary_sensor/__init__.py +82 -5
- esphome/components/binary_sensor/automation.h +19 -1
- esphome/components/binary_sensor/binary_sensor.cpp +12 -30
- esphome/components/binary_sensor/binary_sensor.h +11 -25
- esphome/components/binary_sensor/filter.cpp +29 -24
- esphome/components/binary_sensor/filter.h +20 -10
- esphome/components/ble_client/output/ble_binary_output.h +0 -1
- esphome/components/ble_client/sensor/ble_rssi_sensor.cpp +5 -1
- esphome/components/ble_client/sensor/ble_rssi_sensor.h +0 -1
- esphome/components/ble_client/sensor/ble_sensor.cpp +5 -1
- esphome/components/ble_client/sensor/ble_sensor.h +0 -1
- esphome/components/ble_client/switch/ble_switch.h +0 -1
- esphome/components/ble_client/text_sensor/ble_text_sensor.cpp +5 -1
- esphome/components/ble_client/text_sensor/ble_text_sensor.h +0 -1
- esphome/components/ble_presence/ble_presence_device.h +0 -1
- esphome/components/ble_rssi/ble_rssi_sensor.h +0 -1
- esphome/components/ble_scanner/ble_scanner.h +0 -1
- esphome/components/bluetooth_proxy/bluetooth_connection.h +9 -2
- esphome/components/bluetooth_proxy/bluetooth_proxy.cpp +16 -6
- esphome/components/bluetooth_proxy/bluetooth_proxy.h +8 -2
- esphome/components/bme680/sensor.py +1 -1
- esphome/components/bmp581/bmp581.h +0 -2
- esphome/components/button/__init__.py +5 -2
- esphome/components/camera/__init__.py +1 -0
- esphome/components/camera/camera.cpp +22 -0
- esphome/components/camera/camera.h +80 -0
- esphome/components/canbus/__init__.py +1 -0
- esphome/components/cap1188/cap1188.h +0 -1
- esphome/components/captive_portal/__init__.py +12 -2
- esphome/components/captive_portal/captive_portal.cpp +12 -2
- esphome/components/captive_portal/captive_portal.h +5 -2
- esphome/components/ccs811/ccs811.h +0 -2
- esphome/components/climate/__init__.py +5 -2
- esphome/components/cm1106/sensor.py +2 -2
- esphome/components/const/__init__.py +2 -0
- esphome/components/copy/binary_sensor/copy_binary_sensor.h +0 -1
- esphome/components/copy/button/copy_button.h +0 -1
- esphome/components/copy/cover/copy_cover.h +0 -1
- esphome/components/copy/fan/copy_fan.h +0 -1
- esphome/components/copy/lock/copy_lock.h +0 -1
- esphome/components/copy/number/copy_number.h +0 -1
- esphome/components/copy/select/copy_select.h +0 -1
- esphome/components/copy/sensor/copy_sensor.h +0 -1
- esphome/components/copy/switch/copy_switch.h +0 -1
- esphome/components/copy/text/copy_text.h +0 -1
- esphome/components/copy/text_sensor/copy_text_sensor.h +0 -1
- esphome/components/cover/__init__.py +5 -2
- esphome/components/cs5460a/cs5460a.h +0 -1
- esphome/components/datetime/__init__.py +4 -2
- esphome/components/debug/__init__.py +20 -0
- esphome/components/deep_sleep/__init__.py +43 -9
- esphome/components/demo/__init__.py +2 -2
- esphome/components/display/display.cpp +4 -3
- esphome/components/display/display.h +0 -2
- esphome/components/display/display_buffer.cpp +1 -1
- esphome/components/ds2484/__init__.py +1 -0
- esphome/components/ds2484/ds2484.cpp +209 -0
- esphome/components/ds2484/ds2484.h +43 -0
- esphome/components/ds2484/one_wire.py +37 -0
- esphome/components/duty_time/duty_time_sensor.h +0 -1
- esphome/components/ens160_base/ens160_base.h +0 -1
- esphome/components/es7210/es7210.h +0 -1
- esphome/components/es7243e/es7243e.h +0 -1
- esphome/components/es8156/es8156.h +0 -1
- esphome/components/es8311/es8311.h +0 -1
- esphome/components/es8388/es8388.h +0 -1
- esphome/components/esp32/__init__.py +102 -135
- esphome/components/esp32/core.cpp +0 -4
- esphome/components/esp32/gpio.h +1 -1
- esphome/components/esp32/helpers.cpp +69 -0
- esphome/components/esp32_ble/ble.cpp +5 -6
- esphome/components/esp32_ble/ble.h +29 -14
- esphome/components/esp32_ble/ble_event.h +6 -6
- esphome/components/esp32_ble_client/ble_client_base.cpp +21 -6
- esphome/components/esp32_ble_client/ble_client_base.h +24 -9
- esphome/components/esp32_ble_tracker/__init__.py +2 -8
- esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp +5 -5
- esphome/components/esp32_ble_tracker/esp32_ble_tracker.h +11 -7
- esphome/components/esp32_camera/__init__.py +111 -97
- esphome/components/esp32_camera/esp32_camera.cpp +41 -31
- esphome/components/esp32_camera/esp32_camera.h +35 -30
- esphome/components/esp32_camera_web_server/__init__.py +2 -1
- esphome/components/esp32_camera_web_server/camera_web_server.cpp +8 -8
- esphome/components/esp32_camera_web_server/camera_web_server.h +3 -3
- esphome/components/esp32_hall/sensor.py +2 -21
- esphome/components/esp32_hosted/__init__.py +101 -0
- esphome/components/esp32_hosted/esp32_hosted.py.script +12 -0
- esphome/components/esp32_improv/esp32_improv_component.cpp +3 -0
- esphome/components/esp32_rmt/__init__.py +0 -58
- esphome/components/esp32_rmt_led_strip/led_strip.cpp +77 -63
- esphome/components/esp32_rmt_led_strip/led_strip.h +11 -17
- esphome/components/esp32_rmt_led_strip/light.py +14 -76
- esphome/components/esp32_touch/esp32_touch.h +174 -28
- esphome/components/esp32_touch/esp32_touch_common.cpp +162 -0
- esphome/components/esp32_touch/esp32_touch_v1.cpp +238 -0
- esphome/components/esp32_touch/esp32_touch_v2.cpp +397 -0
- esphome/components/esp8266/__init__.py +1 -0
- esphome/components/esp8266/gpio.cpp +10 -10
- esphome/components/esp8266/helpers.cpp +31 -0
- esphome/components/esphome/ota/__init__.py +1 -0
- esphome/components/esphome/ota/ota_esphome.cpp +24 -19
- esphome/components/ethernet/__init__.py +42 -23
- esphome/components/ethernet/esp_eth_phy_jl1101.c +0 -16
- esphome/components/ethernet/ethernet_component.cpp +69 -29
- esphome/components/ethernet/ethernet_component.h +18 -10
- esphome/components/event/__init__.py +5 -2
- esphome/components/ezo/ezo.h +0 -1
- esphome/components/ezo_pmp/ezo_pmp.h +0 -1
- esphome/components/fan/__init__.py +5 -2
- esphome/components/feedback/feedback_cover.h +0 -1
- esphome/components/font/__init__.py +92 -82
- esphome/components/font/font.cpp +9 -2
- esphome/components/font/font.h +20 -5
- esphome/components/fs3000/fs3000.h +0 -1
- esphome/components/gcja5/gcja5.h +0 -1
- esphome/components/gl_r01_i2c/__init__.py +0 -0
- esphome/components/gl_r01_i2c/gl_r01_i2c.cpp +68 -0
- esphome/components/gl_r01_i2c/gl_r01_i2c.h +22 -0
- esphome/components/gl_r01_i2c/sensor.py +36 -0
- esphome/components/gp8403/gp8403.h +0 -1
- esphome/components/gpio/binary_sensor/__init__.py +17 -0
- esphome/components/gpio/binary_sensor/gpio_binary_sensor.cpp +77 -3
- esphome/components/gpio/binary_sensor/gpio_binary_sensor.h +40 -0
- esphome/components/grove_gas_mc_v2/grove_gas_mc_v2.h +0 -2
- esphome/components/he60r/he60r.h +0 -1
- esphome/components/heatpumpir/climate.py +2 -1
- esphome/components/heatpumpir/heatpumpir.cpp +1 -0
- esphome/components/heatpumpir/heatpumpir.h +1 -0
- esphome/components/honeywellabp2_i2c/honeywellabp2.h +0 -1
- esphome/components/host/__init__.py +2 -1
- esphome/components/host/helpers.cpp +57 -0
- esphome/components/http_request/__init__.py +19 -1
- esphome/components/http_request/http_request.h +1 -1
- esphome/components/http_request/http_request_arduino.cpp +0 -1
- esphome/components/http_request/http_request_arduino.h +1 -0
- esphome/components/http_request/http_request_idf.cpp +0 -1
- esphome/components/http_request/ota/ota_http_request.cpp +1 -1
- esphome/components/http_request/update/http_request_update.cpp +28 -9
- esphome/components/hydreon_rgxx/hydreon_rgxx.cpp +3 -9
- esphome/components/hydreon_rgxx/sensor.py +1 -1
- esphome/components/i2c/__init__.py +23 -11
- esphome/components/i2c/i2c_bus.h +8 -1
- esphome/components/i2c/i2c_bus_arduino.cpp +4 -3
- esphome/components/i2c/i2c_bus_arduino.h +6 -3
- esphome/components/i2c/i2c_bus_esp_idf.h +5 -3
- esphome/components/i2c_device/i2c_device.h +0 -1
- esphome/components/i2s_audio/__init__.py +2 -10
- esphome/components/i2s_audio/i2s_audio.cpp +1 -5
- esphome/components/i2s_audio/media_player/__init__.py +2 -2
- esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp +2 -2
- esphome/components/iaqcore/iaqcore.h +0 -2
- esphome/components/image/__init__.py +123 -24
- esphome/components/improv_serial/improv_serial_component.cpp +0 -4
- esphome/components/ina219/ina219.cpp +7 -0
- esphome/components/ina219/ina219.h +1 -0
- esphome/components/ina260/ina260.h +0 -2
- esphome/components/inkbird_ibsth1_mini/inkbird_ibsth1_mini.h +0 -1
- esphome/components/inkplate6/display.py +15 -0
- esphome/components/inkplate6/inkplate.cpp +2 -2
- esphome/components/integration/integration_sensor.h +0 -1
- esphome/components/internal_temperature/internal_temperature.cpp +8 -27
- esphome/components/internal_temperature/sensor.py +0 -26
- esphome/components/interval/interval.h +0 -2
- esphome/components/ld2410/button/__init__.py +3 -3
- esphome/components/ld2410/button/factory_reset_button.cpp +9 -0
- esphome/components/ld2410/button/{reset_button.h → factory_reset_button.h} +2 -2
- esphome/components/ld2410/ld2410.cpp +430 -261
- esphome/components/ld2410/ld2410.h +44 -146
- esphome/components/ld2410/number/__init__.py +2 -2
- esphome/components/ld2410/sensor.py +1 -1
- esphome/components/ld2410/switch/__init__.py +1 -1
- esphome/components/ld2420/ld2420.cpp +196 -100
- esphome/components/ld2420/ld2420.h +46 -118
- esphome/components/ld2420/number/__init__.py +2 -2
- esphome/components/ld2420/sensor/__init__.py +6 -2
- esphome/components/ld2420/sensor/ld2420_sensor.h +1 -1
- esphome/components/ld2450/button/__init__.py +3 -3
- esphome/components/ld2450/button/factory_reset_button.cpp +9 -0
- esphome/components/ld2450/button/{reset_button.h → factory_reset_button.h} +2 -2
- esphome/components/ld2450/ld2450.cpp +384 -232
- esphome/components/ld2450/ld2450.h +60 -69
- esphome/components/ld2450/switch/__init__.py +1 -1
- esphome/components/ledc/ledc_output.cpp +1 -63
- esphome/components/libretiny/__init__.py +4 -3
- esphome/components/libretiny/const.py +5 -0
- esphome/components/libretiny/generate_components.py +1 -0
- esphome/components/libretiny/helpers.cpp +35 -0
- esphome/components/libretiny/lt_component.cpp +5 -3
- esphome/components/light/__init__.py +4 -2
- esphome/components/light/addressable_light.h +3 -3
- esphome/components/light/light_call.cpp +180 -243
- esphome/components/light/light_call.h +72 -20
- esphome/components/light/light_color_values.h +14 -14
- esphome/components/light/light_state.h +15 -13
- esphome/components/light/transformers.h +2 -2
- esphome/components/ln882x/__init__.py +52 -0
- esphome/components/ln882x/boards.py +285 -0
- esphome/components/lock/__init__.py +5 -2
- esphome/components/logger/__init__.py +40 -3
- esphome/components/logger/logger.cpp +47 -12
- esphome/components/logger/logger.h +80 -49
- esphome/components/logger/logger_esp32.cpp +3 -3
- esphome/components/lps22/__init__.py +0 -0
- esphome/components/lps22/lps22.cpp +75 -0
- esphome/components/lps22/lps22.h +27 -0
- esphome/components/lps22/sensor.py +58 -0
- esphome/components/ltr390/ltr390.h +0 -1
- esphome/components/ltr501/ltr501.h +0 -1
- esphome/components/ltr_als_ps/ltr_als_ps.h +0 -1
- esphome/components/lvgl/__init__.py +1 -1
- esphome/components/lvgl/schemas.py +66 -6
- esphome/components/lvgl/styles.py +24 -16
- esphome/components/lvgl/widgets/__init__.py +12 -2
- esphome/components/lvgl/widgets/lv_bar.py +40 -19
- esphome/components/m5stack_8angle/light/m5stack_8angle_light.cpp +1 -1
- esphome/components/max9611/max9611.h +0 -1
- esphome/components/mcp23016/__init__.py +1 -1
- esphome/components/mcp23xxx_base/__init__.py +1 -1
- esphome/components/mcp4461/__init__.py +1 -1
- esphome/components/mcp4461/output/__init__.py +3 -2
- esphome/components/mcp9600/mcp9600.h +0 -2
- esphome/components/md5/md5.cpp +3 -3
- esphome/components/md5/md5.h +1 -6
- esphome/components/mdns/__init__.py +22 -11
- esphome/components/media_player/__init__.py +4 -3
- esphome/components/micro_wake_word/__init__.py +1 -5
- esphome/components/micro_wake_word/streaming_model.cpp +2 -2
- esphome/components/microphone/microphone.cpp +7 -9
- esphome/components/microphone/microphone.h +0 -2
- esphome/components/mipi_spi/display.py +1 -0
- esphome/components/mmc5603/mmc5603.cpp +1 -1
- esphome/components/modbus/modbus.cpp +33 -15
- esphome/components/modbus/modbus.h +9 -0
- esphome/components/modbus_controller/__init__.py +42 -10
- esphome/components/modbus_controller/modbus_controller.cpp +92 -11
- esphome/components/modbus_controller/modbus_controller.h +61 -7
- esphome/components/mopeka_pro_check/mopeka_pro_check.h +0 -1
- esphome/components/mopeka_std_check/mopeka_std_check.h +0 -1
- esphome/components/mpl3115a2/mpl3115a2.h +0 -2
- esphome/components/mqtt/__init__.py +16 -0
- esphome/components/mqtt/mqtt_backend.h +2 -1
- esphome/components/mqtt/mqtt_backend_esp32.cpp +126 -45
- esphome/components/mqtt/mqtt_backend_esp32.h +106 -4
- esphome/components/mqtt/mqtt_client.cpp +15 -9
- esphome/components/mqtt/mqtt_client.h +8 -3
- esphome/components/ms8607/ms8607.h +0 -1
- esphome/components/neopixelbus/light.py +4 -1
- esphome/components/neopixelbus/neopixelbus_light.h +1 -1
- esphome/components/network/__init__.py +4 -1
- esphome/components/network/ip_address.h +1 -0
- esphome/components/nextion/__init__.py +16 -0
- esphome/components/nextion/base_component.py +1 -0
- esphome/components/nextion/binary_sensor/nextion_binarysensor.cpp +1 -1
- esphome/components/nextion/display.py +14 -4
- esphome/components/nextion/nextion.cpp +166 -101
- esphome/components/nextion/nextion.h +84 -53
- esphome/components/nextion/nextion_commands.cpp +11 -10
- esphome/components/nextion/nextion_component.cpp +28 -28
- esphome/components/nextion/nextion_component.h +53 -18
- esphome/components/nextion/nextion_component_base.h +3 -0
- esphome/components/nextion/nextion_upload.cpp +36 -0
- esphome/components/nextion/nextion_upload_arduino.cpp +10 -35
- esphome/components/nextion/nextion_upload_idf.cpp +9 -33
- esphome/components/nextion/sensor/nextion_sensor.cpp +1 -1
- esphome/components/nextion/switch/nextion_switch.cpp +1 -1
- esphome/components/nextion/text_sensor/nextion_textsensor.cpp +1 -1
- esphome/components/nfc/nfc.cpp +3 -22
- esphome/components/nfc/nfc.h +3 -3
- esphome/components/number/__init__.py +5 -2
- esphome/components/online_image/__init__.py +5 -0
- esphome/components/online_image/online_image.cpp +6 -2
- esphome/components/online_image/online_image.h +4 -1
- esphome/components/opentherm/opentherm.cpp +7 -12
- esphome/components/openthread/__init__.py +47 -40
- esphome/components/openthread/const.py +1 -0
- esphome/components/openthread/openthread_esp.cpp +27 -5
- esphome/components/opt3001/__init__.py +0 -0
- esphome/components/opt3001/opt3001.cpp +122 -0
- esphome/components/opt3001/opt3001.h +27 -0
- esphome/components/opt3001/sensor.py +35 -0
- esphome/components/ota/__init__.py +17 -0
- esphome/components/ota/ota_backend.h +27 -1
- esphome/components/ota/ota_backend_arduino_esp32.cpp +12 -2
- esphome/components/ota/ota_backend_arduino_esp32.h +3 -0
- esphome/components/ota/ota_backend_arduino_esp8266.cpp +18 -4
- esphome/components/ota/ota_backend_arduino_esp8266.h +3 -0
- esphome/components/ota/ota_backend_arduino_libretiny.cpp +12 -2
- esphome/components/ota/ota_backend_arduino_libretiny.h +3 -0
- esphome/components/ota/ota_backend_arduino_rp2040.cpp +9 -2
- esphome/components/ota/ota_backend_arduino_rp2040.h +3 -0
- esphome/components/ota/ota_backend_esp_idf.cpp +10 -16
- esphome/components/ota/ota_backend_esp_idf.h +1 -0
- esphome/components/packages/__init__.py +5 -2
- esphome/components/packet_transport/binary_sensor.py +61 -4
- esphome/components/packet_transport/packet_transport.cpp +31 -1
- esphome/components/packet_transport/packet_transport.h +11 -5
- esphome/components/pcf8574/__init__.py +1 -1
- esphome/components/pi4ioe5v6408/__init__.py +84 -0
- esphome/components/pi4ioe5v6408/pi4ioe5v6408.cpp +171 -0
- esphome/components/pi4ioe5v6408/pi4ioe5v6408.h +70 -0
- esphome/components/pmsa003i/pmsa003i.h +0 -1
- esphome/components/pmsx003/pmsx003.h +0 -1
- esphome/components/pn7150/pn7150.cpp +7 -7
- esphome/components/pn7150/pn7150.h +0 -1
- esphome/components/pn7160/pn7160.cpp +7 -7
- esphome/components/pn7160/pn7160.h +0 -1
- esphome/components/preferences/syncer.h +2 -0
- esphome/components/prometheus/prometheus_handler.h +1 -1
- esphome/components/psram/psram.cpp +0 -20
- esphome/components/pulse_counter/pulse_counter_sensor.h +0 -1
- esphome/components/pulse_meter/pulse_meter_sensor.cpp +8 -4
- esphome/components/pulse_width/pulse_width.h +0 -1
- esphome/components/pvvx_mithermometer/display/pvvx_display.cpp +0 -4
- esphome/components/pvvx_mithermometer/display/pvvx_display.h +0 -2
- esphome/components/pvvx_mithermometer/pvvx_mithermometer.h +0 -1
- esphome/components/qr_code/__init__.py +13 -10
- esphome/components/qwiic_pir/qwiic_pir.h +0 -1
- esphome/components/radon_eye_ble/radon_eye_listener.cpp +1 -1
- esphome/components/rc522/rc522.h +0 -1
- esphome/components/rdm6300/rdm6300.h +0 -2
- esphome/components/remote_base/__init__.py +7 -5
- esphome/components/remote_base/remote_base.cpp +24 -21
- esphome/components/remote_base/remote_base.h +3 -26
- esphome/components/remote_receiver/__init__.py +40 -46
- esphome/components/remote_receiver/remote_receiver.h +4 -18
- esphome/components/remote_receiver/remote_receiver_esp32.cpp +0 -87
- esphome/components/remote_receiver/remote_receiver_esp8266.cpp +1 -1
- esphome/components/remote_transmitter/__init__.py +42 -43
- esphome/components/remote_transmitter/remote_transmitter.h +2 -14
- esphome/components/remote_transmitter/remote_transmitter_esp32.cpp +0 -77
- esphome/components/resistance/resistance_sensor.h +0 -1
- esphome/components/rp2040/__init__.py +1 -0
- esphome/components/rp2040/helpers.cpp +55 -0
- esphome/components/rp2040_pio_led_strip/led_strip.cpp +2 -2
- esphome/components/rpi_dpi_rgb/rpi_dpi_rgb.cpp +0 -4
- esphome/components/rtttl/__init__.py +4 -4
- esphome/components/rtttl/rtttl.cpp +10 -1
- esphome/components/ruuvitag/ruuvitag.h +0 -1
- esphome/components/safe_mode/safe_mode.cpp +2 -0
- esphome/components/safe_mode/safe_mode.h +4 -1
- esphome/components/scd30/scd30.h +0 -1
- esphome/components/scd30/sensor.py +2 -2
- esphome/components/scd4x/scd4x.cpp +61 -54
- esphome/components/scd4x/scd4x.h +17 -15
- esphome/components/scd4x/sensor.py +4 -4
- esphome/components/script/script.h +0 -2
- esphome/components/sdp3x/sensor.py +1 -1
- esphome/components/select/__init__.py +5 -2
- esphome/components/sen5x/sen5x.h +0 -1
- esphome/components/senseair/senseair.h +0 -1
- esphome/components/sensor/__init__.py +4 -2
- esphome/components/sensor/filter.cpp +1 -1
- esphome/components/sensor/sensor.cpp +12 -6
- esphome/components/sensor/sensor.h +13 -5
- esphome/components/servo/servo.h +0 -1
- esphome/components/sfa30/sfa30.h +0 -1
- esphome/components/sgp30/sgp30.h +0 -1
- esphome/components/sgp4x/sgp4x.h +0 -1
- esphome/components/shelly_dimmer/stm32flash.cpp +1 -2
- esphome/components/sht4x/sht4x.h +0 -1
- esphome/components/sm300d2/sm300d2.h +0 -2
- esphome/components/smt100/sensor.py +8 -4
- esphome/components/smt100/smt100.cpp +5 -5
- esphome/components/smt100/smt100.h +3 -3
- esphome/components/sn74hc595/__init__.py +1 -1
- esphome/components/sn74hc595/sn74hc595.cpp +5 -4
- esphome/components/sntp/sntp_component.cpp +9 -3
- esphome/components/sntp/time.py +2 -0
- esphome/components/socket/__init__.py +17 -0
- esphome/components/spi/__init__.py +27 -6
- esphome/components/spi/spi.cpp +3 -2
- esphome/components/spi/spi.h +9 -3
- esphome/components/spi/spi_arduino.cpp +3 -5
- esphome/components/spi/spi_esp_idf.cpp +40 -21
- esphome/components/spi_led_strip/spi_led_strip.cpp +1 -1
- esphome/components/sps30/sps30.h +0 -1
- esphome/components/ssd1306_base/ssd1306_base.cpp +1 -1
- esphome/components/st7701s/st7701s.cpp +0 -4
- esphome/components/status/status_binary_sensor.h +0 -2
- esphome/components/substitutions/__init__.py +76 -19
- esphome/components/substitutions/jinja.py +99 -0
- esphome/components/sun/sun.cpp +3 -4
- esphome/components/switch/__init__.py +5 -2
- esphome/components/switch/binary_sensor/switch_binary_sensor.h +0 -1
- esphome/components/sx126x/__init__.py +317 -0
- esphome/components/sx126x/automation.h +62 -0
- esphome/components/sx126x/packet_transport/__init__.py +26 -0
- esphome/components/sx126x/packet_transport/sx126x_transport.cpp +26 -0
- esphome/components/sx126x/packet_transport/sx126x_transport.h +25 -0
- esphome/components/sx126x/sx126x.cpp +523 -0
- esphome/components/sx126x/sx126x.h +140 -0
- esphome/components/sx126x/sx126x_reg.h +163 -0
- esphome/components/sx127x/__init__.py +325 -0
- esphome/components/sx127x/automation.h +62 -0
- esphome/components/sx127x/packet_transport/__init__.py +26 -0
- esphome/components/sx127x/packet_transport/sx127x_transport.cpp +26 -0
- esphome/components/sx127x/packet_transport/sx127x_transport.h +25 -0
- esphome/components/sx127x/sx127x.cpp +498 -0
- esphome/components/sx127x/sx127x.h +128 -0
- esphome/components/sx127x/sx127x_reg.h +295 -0
- esphome/components/syslog/esphome_syslog.cpp +5 -3
- esphome/components/syslog/esphome_syslog.h +1 -1
- esphome/components/tca9555/__init__.py +1 -1
- esphome/components/template/binary_sensor/template_binary_sensor.cpp +1 -9
- esphome/components/text/__init__.py +5 -2
- esphome/components/text_sensor/__init__.py +5 -2
- esphome/components/thermostat/thermostat_climate.cpp +34 -31
- esphome/components/thermostat/thermostat_climate.h +43 -39
- esphome/components/time/__init__.py +16 -2
- esphome/components/time/real_time_clock.cpp +4 -0
- esphome/components/time/real_time_clock.h +5 -1
- esphome/components/tlc5971/tlc5971.cpp +4 -1
- esphome/components/tmp1075/tmp1075.h +0 -2
- esphome/components/tof10120/tof10120_sensor.h +0 -1
- esphome/components/tormatic/tormatic_cover.h +0 -1
- esphome/components/total_daily_energy/total_daily_energy.h +0 -1
- esphome/components/tsl2591/tsl2591.cpp +1 -1
- esphome/components/ttp229_bsf/ttp229_bsf.h +0 -1
- esphome/components/ttp229_lsf/ttp229_lsf.h +0 -1
- esphome/components/tx20/tx20.cpp +2 -2
- esphome/components/uart/__init__.py +18 -0
- esphome/components/uart/uart_component_esp_idf.cpp +1 -5
- esphome/components/update/__init__.py +5 -2
- esphome/components/update/update_entity.h +8 -0
- esphome/components/usb_host/__init__.py +5 -2
- esphome/components/valve/__init__.py +5 -2
- esphome/components/vbus/vbus.h +0 -1
- esphome/components/veml3235/veml3235.h +0 -1
- esphome/components/veml7700/veml7700.h +0 -1
- esphome/components/vl53l0x/vl53l0x_sensor.h +0 -1
- esphome/components/voice_assistant/voice_assistant.cpp +4 -4
- esphome/components/watchdog/watchdog.cpp +0 -4
- esphome/components/waveshare_epaper/waveshare_epaper.cpp +6 -6
- esphome/components/web_server/__init__.py +34 -19
- esphome/components/web_server/ota/__init__.py +32 -0
- esphome/components/web_server/ota/ota_web_server.cpp +210 -0
- esphome/components/web_server/ota/ota_web_server.h +26 -0
- esphome/components/web_server/web_server.cpp +311 -430
- esphome/components/web_server/web_server.h +33 -23
- esphome/components/web_server/web_server_v1.cpp +4 -5
- esphome/components/web_server_base/__init__.py +5 -2
- esphome/components/web_server_base/web_server_base.cpp +2 -94
- esphome/components/web_server_base/web_server_base.h +5 -25
- esphome/components/web_server_idf/multipart.cpp +254 -0
- esphome/components/web_server_idf/multipart.h +86 -0
- esphome/components/web_server_idf/utils.cpp +32 -0
- esphome/components/web_server_idf/utils.h +10 -0
- esphome/components/web_server_idf/web_server_idf.cpp +162 -16
- esphome/components/web_server_idf/web_server_idf.h +11 -10
- esphome/components/wiegand/wiegand.cpp +2 -2
- esphome/components/wifi/__init__.py +18 -0
- esphome/components/wifi/wifi_component.cpp +17 -22
- esphome/components/wifi/wifi_component.h +27 -23
- esphome/components/wifi/wifi_component_esp32_arduino.cpp +52 -59
- esphome/components/wifi/wifi_component_esp8266.cpp +46 -46
- esphome/components/wifi/wifi_component_esp_idf.cpp +35 -36
- esphome/components/wifi/wifi_component_libretiny.cpp +26 -27
- esphome/components/wifi/wifi_component_pico_w.cpp +3 -3
- esphome/components/wifi_info/wifi_info_text_sensor.cpp +6 -6
- esphome/components/wireguard/__init__.py +2 -11
- esphome/components/xiaomi_ble/xiaomi_ble.cpp +13 -1
- esphome/components/xiaomi_ble/xiaomi_ble.h +1 -0
- esphome/components/xiaomi_cgd1/xiaomi_cgd1.h +0 -1
- esphome/components/xiaomi_cgdk2/xiaomi_cgdk2.h +0 -1
- esphome/components/xiaomi_cgg1/xiaomi_cgg1.h +0 -1
- esphome/components/xiaomi_cgpr1/xiaomi_cgpr1.h +0 -1
- esphome/components/xiaomi_gcls002/xiaomi_gcls002.h +0 -1
- esphome/components/xiaomi_hhccjcy01/xiaomi_hhccjcy01.h +0 -1
- esphome/components/xiaomi_hhccjcy10/xiaomi_hhccjcy10.h +0 -1
- esphome/components/xiaomi_hhccpot002/xiaomi_hhccpot002.h +0 -1
- esphome/components/xiaomi_jqjcy01ym/xiaomi_jqjcy01ym.h +0 -1
- esphome/components/xiaomi_lywsd02/xiaomi_lywsd02.h +0 -1
- esphome/components/xiaomi_lywsd02mmc/xiaomi_lywsd02mmc.h +0 -1
- esphome/components/xiaomi_lywsd03mmc/xiaomi_lywsd03mmc.h +0 -1
- esphome/components/xiaomi_lywsdcgq/xiaomi_lywsdcgq.h +0 -1
- esphome/components/xiaomi_mhoc303/xiaomi_mhoc303.h +0 -1
- esphome/components/xiaomi_mhoc401/xiaomi_mhoc401.h +0 -1
- esphome/components/xiaomi_miscale/xiaomi_miscale.h +0 -1
- esphome/components/xiaomi_mjyd02yla/xiaomi_mjyd02yla.h +0 -1
- esphome/components/xiaomi_mue4094rt/xiaomi_mue4094rt.h +0 -1
- esphome/components/xiaomi_rtcgq02lm/xiaomi_rtcgq02lm.h +0 -1
- esphome/components/xiaomi_wx08zm/xiaomi_wx08zm.h +0 -1
- esphome/components/xiaomi_xmwsdj04mmc/__init__.py +0 -0
- esphome/components/xiaomi_xmwsdj04mmc/sensor.py +77 -0
- esphome/components/xiaomi_xmwsdj04mmc/xiaomi_xmwsdj04mmc.cpp +77 -0
- esphome/components/xiaomi_xmwsdj04mmc/xiaomi_xmwsdj04mmc.h +36 -0
- esphome/components/zio_ultrasonic/zio_ultrasonic.h +0 -2
- esphome/components/zyaura/zyaura.h +0 -1
- esphome/config.py +88 -22
- esphome/config_helpers.py +74 -1
- esphome/config_validation.py +12 -1
- esphome/const.py +65 -10
- esphome/core/__init__.py +18 -2
- esphome/core/application.cpp +163 -10
- esphome/core/application.h +145 -165
- esphome/core/area.h +19 -0
- esphome/core/automation.h +58 -9
- esphome/core/color.cpp +3 -5
- esphome/core/color.h +16 -16
- esphome/core/component.cpp +151 -18
- esphome/core/component.h +98 -4
- esphome/core/component_iterator.cpp +7 -7
- esphome/core/component_iterator.h +9 -7
- esphome/core/config.py +155 -6
- esphome/core/controller.cpp +4 -2
- esphome/core/controller.h +1 -1
- esphome/core/datatypes.h +2 -2
- esphome/core/defines.h +17 -2
- esphome/core/device.h +20 -0
- esphome/core/entity_base.cpp +20 -15
- esphome/core/entity_base.h +76 -0
- esphome/core/entity_helpers.py +162 -1
- esphome/core/event_pool.h +81 -0
- esphome/core/helpers.cpp +75 -230
- esphome/core/helpers.h +164 -104
- esphome/core/lock_free_queue.h +151 -0
- esphome/core/log.cpp +2 -2
- esphome/core/log.h +2 -0
- esphome/core/optional.h +5 -0
- esphome/core/ring_buffer.cpp +2 -2
- esphome/core/scheduler.cpp +278 -103
- esphome/core/scheduler.h +157 -17
- esphome/core/time.cpp +5 -5
- esphome/core/time.h +5 -5
- esphome/cpp_generator.py +17 -0
- esphome/cpp_helpers.py +0 -22
- esphome/cpp_types.py +3 -1
- esphome/dashboard/entries.py +1 -1
- esphome/dashboard/util/text.py +5 -21
- esphome/dashboard/web_server.py +9 -1
- esphome/helpers.py +47 -0
- esphome/loader.py +15 -1
- esphome/pins.py +14 -8
- esphome/wizard.py +16 -3
- esphome/writer.py +21 -3
- esphome/yaml_util.py +0 -2
- {esphome-2025.6.2.dist-info → esphome-2025.7.0b1.dist-info}/METADATA +10 -9
- {esphome-2025.6.2.dist-info → esphome-2025.7.0b1.dist-info}/RECORD +593 -533
- esphome/components/esp32_ble/ble_event_pool.h +0 -72
- esphome/components/esp32_ble/queue.h +0 -85
- esphome/components/esp32_hall/esp32_hall.cpp +0 -25
- esphome/components/esp32_hall/esp32_hall.h +0 -23
- esphome/components/esp32_touch/esp32_touch.cpp +0 -355
- esphome/components/ld2410/button/reset_button.cpp +0 -9
- esphome/components/ld2450/button/reset_button.cpp +0 -9
- esphome/components/openthread/tlv.py +0 -65
- /esphome/{dashboard/enum.py → enum.py} +0 -0
- {esphome-2025.6.2.dist-info → esphome-2025.7.0b1.dist-info}/WHEEL +0 -0
- {esphome-2025.6.2.dist-info → esphome-2025.7.0b1.dist-info}/entry_points.txt +0 -0
- {esphome-2025.6.2.dist-info → esphome-2025.7.0b1.dist-info}/licenses/LICENSE +0 -0
- {esphome-2025.6.2.dist-info → esphome-2025.7.0b1.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include "esphome/core/hal.h"
|
|
4
|
+
|
|
5
|
+
namespace esphome {
|
|
6
|
+
namespace sx127x {
|
|
7
|
+
|
|
8
|
+
enum SX127xReg : uint8_t {
|
|
9
|
+
// Common registers
|
|
10
|
+
REG_FIFO = 0x00,
|
|
11
|
+
REG_OP_MODE = 0x01,
|
|
12
|
+
REG_BITRATE_MSB = 0x02,
|
|
13
|
+
REG_BITRATE_LSB = 0x03,
|
|
14
|
+
REG_FDEV_MSB = 0x04,
|
|
15
|
+
REG_FDEV_LSB = 0x05,
|
|
16
|
+
REG_FRF_MSB = 0x06,
|
|
17
|
+
REG_FRF_MID = 0x07,
|
|
18
|
+
REG_FRF_LSB = 0x08,
|
|
19
|
+
REG_PA_CONFIG = 0x09,
|
|
20
|
+
REG_PA_RAMP = 0x0A,
|
|
21
|
+
REG_DIO_MAPPING1 = 0x40,
|
|
22
|
+
REG_DIO_MAPPING2 = 0x41,
|
|
23
|
+
REG_VERSION = 0x42,
|
|
24
|
+
// FSK/OOK registers
|
|
25
|
+
REG_RX_CONFIG = 0x0D,
|
|
26
|
+
REG_RSSI_THRESH = 0x10,
|
|
27
|
+
REG_RX_BW = 0x12,
|
|
28
|
+
REG_OOK_PEAK = 0x14,
|
|
29
|
+
REG_OOK_FIX = 0x15,
|
|
30
|
+
REG_OOK_AVG = 0x16,
|
|
31
|
+
REG_AFC_FEI = 0x1A,
|
|
32
|
+
REG_PREAMBLE_DETECT = 0x1F,
|
|
33
|
+
REG_PREAMBLE_SIZE_MSB = 0x25,
|
|
34
|
+
REG_PREAMBLE_SIZE_LSB = 0x26,
|
|
35
|
+
REG_SYNC_CONFIG = 0x27,
|
|
36
|
+
REG_SYNC_VALUE1 = 0x28,
|
|
37
|
+
REG_SYNC_VALUE2 = 0x29,
|
|
38
|
+
REG_SYNC_VALUE3 = 0x2A,
|
|
39
|
+
REG_SYNC_VALUE4 = 0x2B,
|
|
40
|
+
REG_SYNC_VALUE5 = 0x2C,
|
|
41
|
+
REG_SYNC_VALUE6 = 0x2D,
|
|
42
|
+
REG_SYNC_VALUE7 = 0x2E,
|
|
43
|
+
REG_SYNC_VALUE8 = 0x2F,
|
|
44
|
+
REG_PACKET_CONFIG_1 = 0x30,
|
|
45
|
+
REG_PACKET_CONFIG_2 = 0x31,
|
|
46
|
+
REG_PAYLOAD_LENGTH_LSB = 0x32,
|
|
47
|
+
REG_FIFO_THRESH = 0x35,
|
|
48
|
+
REG_IMAGE_CAL = 0x3B,
|
|
49
|
+
// LoRa registers
|
|
50
|
+
REG_FIFO_ADDR_PTR = 0x0D,
|
|
51
|
+
REG_FIFO_TX_BASE_ADDR = 0x0E,
|
|
52
|
+
REG_FIFO_RX_BASE_ADDR = 0x0F,
|
|
53
|
+
REG_FIFO_RX_CURR_ADDR = 0x10,
|
|
54
|
+
REG_IRQ_FLAGS_MASK = 0x11,
|
|
55
|
+
REG_IRQ_FLAGS = 0x12,
|
|
56
|
+
REG_NB_RX_BYTES = 0x13,
|
|
57
|
+
REG_MODEM_STAT = 0x18,
|
|
58
|
+
REG_PKT_SNR_VALUE = 0x19,
|
|
59
|
+
REG_PKT_RSSI_VALUE = 0x1A,
|
|
60
|
+
REG_RSSI_VALUE = 0x1B,
|
|
61
|
+
REG_HOP_CHANNEL = 0x1C,
|
|
62
|
+
REG_MODEM_CONFIG1 = 0x1D,
|
|
63
|
+
REG_MODEM_CONFIG2 = 0x1E,
|
|
64
|
+
REG_SYMB_TIMEOUT_LSB = 0x1F,
|
|
65
|
+
REG_PREAMBLE_LEN_MSB = 0x20,
|
|
66
|
+
REG_PREAMBLE_LEN_LSB = 0x21,
|
|
67
|
+
REG_PAYLOAD_LENGTH = 0x22,
|
|
68
|
+
REG_HOP_PERIOD = 0x24,
|
|
69
|
+
REG_FIFO_RX_BYTE_ADDR = 0x25,
|
|
70
|
+
REG_MODEM_CONFIG3 = 0x26,
|
|
71
|
+
REG_FEI_MSB = 0x28,
|
|
72
|
+
REG_FEI_MIB = 0x29,
|
|
73
|
+
REG_FEI_LSB = 0x2A,
|
|
74
|
+
REG_DETECT_OPTIMIZE = 0x31,
|
|
75
|
+
REG_INVERT_IQ = 0x33,
|
|
76
|
+
REG_DETECT_THRESHOLD = 0x37,
|
|
77
|
+
REG_SYNC_WORD = 0x39,
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
enum SX127xOpMode : uint8_t {
|
|
81
|
+
MOD_LORA = 0x80,
|
|
82
|
+
ACCESS_FSK_REGS = 0x40,
|
|
83
|
+
ACCESS_LORA_REGS = 0x00,
|
|
84
|
+
MOD_OOK = 0x20,
|
|
85
|
+
MOD_FSK = 0x00,
|
|
86
|
+
ACCESS_LF_REGS = 0x08,
|
|
87
|
+
ACCESS_HF_REGS = 0x00,
|
|
88
|
+
MODE_CAD = 0x07,
|
|
89
|
+
MODE_RX_SINGLE = 0x06,
|
|
90
|
+
MODE_RX = 0x05,
|
|
91
|
+
MODE_RX_FS = 0x04,
|
|
92
|
+
MODE_TX = 0x03,
|
|
93
|
+
MODE_TX_FS = 0x02,
|
|
94
|
+
MODE_STDBY = 0x01,
|
|
95
|
+
MODE_SLEEP = 0x00,
|
|
96
|
+
MODE_MASK = 0x07,
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
enum SX127xPaConfig : uint8_t {
|
|
100
|
+
PA_PIN_BOOST = 0x80,
|
|
101
|
+
PA_PIN_RFO = 0x00,
|
|
102
|
+
PA_MAX_POWER = 0x70,
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
enum SX127xPaRamp : uint8_t {
|
|
106
|
+
CUTOFF_BR_X_2 = 0x40,
|
|
107
|
+
CUTOFF_BR_X_1 = 0x20,
|
|
108
|
+
GAUSSIAN_BT_0_3 = 0x60,
|
|
109
|
+
GAUSSIAN_BT_0_5 = 0x40,
|
|
110
|
+
GAUSSIAN_BT_1_0 = 0x20,
|
|
111
|
+
SHAPING_NONE = 0x00,
|
|
112
|
+
PA_RAMP_10 = 0x0F,
|
|
113
|
+
PA_RAMP_12 = 0x0E,
|
|
114
|
+
PA_RAMP_15 = 0x0D,
|
|
115
|
+
PA_RAMP_20 = 0x0C,
|
|
116
|
+
PA_RAMP_25 = 0x0B,
|
|
117
|
+
PA_RAMP_31 = 0x0A,
|
|
118
|
+
PA_RAMP_40 = 0x09,
|
|
119
|
+
PA_RAMP_50 = 0x08,
|
|
120
|
+
PA_RAMP_62 = 0x07,
|
|
121
|
+
PA_RAMP_100 = 0x06,
|
|
122
|
+
PA_RAMP_125 = 0x05,
|
|
123
|
+
PA_RAMP_250 = 0x04,
|
|
124
|
+
PA_RAMP_500 = 0x03,
|
|
125
|
+
PA_RAMP_1000 = 0x02,
|
|
126
|
+
PA_RAMP_2000 = 0x01,
|
|
127
|
+
PA_RAMP_3400 = 0x00,
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
enum SX127xDioMapping1 : uint8_t {
|
|
131
|
+
DIO0_MAPPING_00 = 0x00,
|
|
132
|
+
DIO0_MAPPING_01 = 0x40,
|
|
133
|
+
DIO0_MAPPING_10 = 0x80,
|
|
134
|
+
DIO0_MAPPING_11 = 0xC0,
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
enum SX127xRxConfig : uint8_t {
|
|
138
|
+
RESTART_ON_COLLISION = 0x80,
|
|
139
|
+
RESTART_NO_LOCK = 0x40,
|
|
140
|
+
RESTART_PLL_LOCK = 0x20,
|
|
141
|
+
AFC_AUTO_ON = 0x10,
|
|
142
|
+
AGC_AUTO_ON = 0x08,
|
|
143
|
+
TRIGGER_NONE = 0x00,
|
|
144
|
+
TRIGGER_RSSI = 0x01,
|
|
145
|
+
TRIGGER_PREAMBLE = 0x06,
|
|
146
|
+
TRIGGER_ALL = 0x07,
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
enum SX127xRxBw : uint8_t {
|
|
150
|
+
RX_BW_2_6 = 0x17,
|
|
151
|
+
RX_BW_3_1 = 0x0F,
|
|
152
|
+
RX_BW_3_9 = 0x07,
|
|
153
|
+
RX_BW_5_2 = 0x16,
|
|
154
|
+
RX_BW_6_3 = 0x0E,
|
|
155
|
+
RX_BW_7_8 = 0x06,
|
|
156
|
+
RX_BW_10_4 = 0x15,
|
|
157
|
+
RX_BW_12_5 = 0x0D,
|
|
158
|
+
RX_BW_15_6 = 0x05,
|
|
159
|
+
RX_BW_20_8 = 0x14,
|
|
160
|
+
RX_BW_25_0 = 0x0C,
|
|
161
|
+
RX_BW_31_3 = 0x04,
|
|
162
|
+
RX_BW_41_7 = 0x13,
|
|
163
|
+
RX_BW_50_0 = 0x0B,
|
|
164
|
+
RX_BW_62_5 = 0x03,
|
|
165
|
+
RX_BW_83_3 = 0x12,
|
|
166
|
+
RX_BW_100_0 = 0x0A,
|
|
167
|
+
RX_BW_125_0 = 0x02,
|
|
168
|
+
RX_BW_166_7 = 0x11,
|
|
169
|
+
RX_BW_200_0 = 0x09,
|
|
170
|
+
RX_BW_250_0 = 0x01,
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
enum SX127xOokPeak : uint8_t {
|
|
174
|
+
BIT_SYNC_ON = 0x20,
|
|
175
|
+
BIT_SYNC_OFF = 0x00,
|
|
176
|
+
OOK_THRESH_AVG = 0x10,
|
|
177
|
+
OOK_THRESH_PEAK = 0x08,
|
|
178
|
+
OOK_THRESH_FIXED = 0x00,
|
|
179
|
+
OOK_THRESH_STEP_6_0 = 0x07,
|
|
180
|
+
OOK_THRESH_STEP_5_0 = 0x06,
|
|
181
|
+
OOK_THRESH_STEP_4_0 = 0x05,
|
|
182
|
+
OOK_THRESH_STEP_3_0 = 0x04,
|
|
183
|
+
OOK_THRESH_STEP_2_0 = 0x03,
|
|
184
|
+
OOK_THRESH_STEP_1_5 = 0x02,
|
|
185
|
+
OOK_THRESH_STEP_1_0 = 0x01,
|
|
186
|
+
OOK_THRESH_STEP_0_5 = 0x00,
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
enum SX127xOokAvg : uint8_t {
|
|
190
|
+
OOK_THRESH_DEC_16 = 0xE0,
|
|
191
|
+
OOK_THRESH_DEC_8 = 0xC0,
|
|
192
|
+
OOK_THRESH_DEC_4 = 0xA0,
|
|
193
|
+
OOK_THRESH_DEC_2 = 0x80,
|
|
194
|
+
OOK_THRESH_DEC_1_8 = 0x60,
|
|
195
|
+
OOK_THRESH_DEC_1_4 = 0x40,
|
|
196
|
+
OOK_THRESH_DEC_1_2 = 0x20,
|
|
197
|
+
OOK_THRESH_DEC_1 = 0x00,
|
|
198
|
+
OOK_AVG_RESERVED = 0x10,
|
|
199
|
+
};
|
|
200
|
+
|
|
201
|
+
enum SX127xAfcFei : uint8_t {
|
|
202
|
+
AFC_AUTO_CLEAR_ON = 0x01,
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
enum SX127xPreambleDetect : uint8_t {
|
|
206
|
+
PREAMBLE_DETECTOR_ON = 0x80,
|
|
207
|
+
PREAMBLE_DETECTOR_OFF = 0x00,
|
|
208
|
+
PREAMBLE_DETECTOR_SIZE_SHIFT = 5,
|
|
209
|
+
PREAMBLE_DETECTOR_TOL_SHIFT = 0,
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
enum SX127xSyncConfig : uint8_t {
|
|
213
|
+
AUTO_RESTART_PLL_LOCK = 0x80,
|
|
214
|
+
AUTO_RESTART_NO_LOCK = 0x40,
|
|
215
|
+
AUTO_RESTART_OFF = 0x00,
|
|
216
|
+
PREAMBLE_55 = 0x20,
|
|
217
|
+
PREAMBLE_AA = 0x00,
|
|
218
|
+
SYNC_ON = 0x10,
|
|
219
|
+
SYNC_OFF = 0x00,
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
enum SX127xPacketConfig1 : uint8_t {
|
|
223
|
+
VARIABLE_LENGTH = 0x80,
|
|
224
|
+
FIXED_LENGTH = 0x00,
|
|
225
|
+
CRC_ON = 0x10,
|
|
226
|
+
CRC_OFF = 0x00,
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
enum SX127xPacketConfig2 : uint8_t {
|
|
230
|
+
CONTINUOUS_MODE = 0x00,
|
|
231
|
+
PACKET_MODE = 0x40,
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
enum SX127xFifoThresh : uint8_t {
|
|
235
|
+
TX_START_FIFO_EMPTY = 0x80,
|
|
236
|
+
TX_START_FIFO_LEVEL = 0x00,
|
|
237
|
+
};
|
|
238
|
+
|
|
239
|
+
enum SX127xImageCal : uint8_t {
|
|
240
|
+
AUTO_IMAGE_CAL_ON = 0x80,
|
|
241
|
+
IMAGE_CAL_START = 0x40,
|
|
242
|
+
IMAGE_CAL_RUNNING = 0x20,
|
|
243
|
+
TEMP_CHANGE = 0x08,
|
|
244
|
+
TEMP_THRESHOLD_20C = 0x06,
|
|
245
|
+
TEMP_THRESHOLD_15C = 0x04,
|
|
246
|
+
TEMP_THRESHOLD_10C = 0x02,
|
|
247
|
+
TEMP_THRESHOLD_5C = 0x00,
|
|
248
|
+
TEMP_MONITOR_OFF = 0x01,
|
|
249
|
+
TEMP_MONITOR_ON = 0x00,
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
enum SX127xIrqFlags : uint8_t {
|
|
253
|
+
RX_TIMEOUT = 0x80,
|
|
254
|
+
RX_DONE = 0x40,
|
|
255
|
+
PAYLOAD_CRC_ERROR = 0x20,
|
|
256
|
+
VALID_HEADER = 0x10,
|
|
257
|
+
TX_DONE = 0x08,
|
|
258
|
+
CAD_DONE = 0x04,
|
|
259
|
+
FHSS_CHANGE_CHANNEL = 0x02,
|
|
260
|
+
CAD_DETECTED = 0x01,
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
enum SX127xModemCfg1 : uint8_t {
|
|
264
|
+
BW_7_8 = 0x00,
|
|
265
|
+
BW_10_4 = 0x10,
|
|
266
|
+
BW_15_6 = 0x20,
|
|
267
|
+
BW_20_8 = 0x30,
|
|
268
|
+
BW_31_3 = 0x40,
|
|
269
|
+
BW_41_7 = 0x50,
|
|
270
|
+
BW_62_5 = 0x60,
|
|
271
|
+
BW_125_0 = 0x70,
|
|
272
|
+
BW_250_0 = 0x80,
|
|
273
|
+
BW_500_0 = 0x90,
|
|
274
|
+
CODING_RATE_4_5 = 0x02,
|
|
275
|
+
CODING_RATE_4_6 = 0x04,
|
|
276
|
+
CODING_RATE_4_7 = 0x06,
|
|
277
|
+
CODING_RATE_4_8 = 0x08,
|
|
278
|
+
IMPLICIT_HEADER = 0x01,
|
|
279
|
+
EXPLICIT_HEADER = 0x00,
|
|
280
|
+
};
|
|
281
|
+
|
|
282
|
+
enum SX127xModemCfg2 : uint8_t {
|
|
283
|
+
SPREADING_FACTOR_SHIFT = 4,
|
|
284
|
+
TX_CONTINOUS_MODE = 0x08,
|
|
285
|
+
RX_PAYLOAD_CRC_ON = 0x04,
|
|
286
|
+
RX_PAYLOAD_CRC_OFF = 0x00,
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
enum SX127xModemCfg3 : uint8_t {
|
|
290
|
+
LOW_DATA_RATE_OPTIMIZE_ON = 0x08,
|
|
291
|
+
MODEM_AGC_AUTO_ON = 0x04,
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
} // namespace sx127x
|
|
295
|
+
} // namespace esphome
|
|
@@ -21,10 +21,12 @@ constexpr int LOG_LEVEL_TO_SYSLOG_SEVERITY[] = {
|
|
|
21
21
|
|
|
22
22
|
void Syslog::setup() {
|
|
23
23
|
logger::global_logger->add_on_log_callback(
|
|
24
|
-
[this](int level, const char *tag, const char *message
|
|
24
|
+
[this](int level, const char *tag, const char *message, size_t message_len) {
|
|
25
|
+
this->log_(level, tag, message, message_len);
|
|
26
|
+
});
|
|
25
27
|
}
|
|
26
28
|
|
|
27
|
-
void Syslog::log_(const int level, const char *tag, const char *message) const {
|
|
29
|
+
void Syslog::log_(const int level, const char *tag, const char *message, size_t message_len) const {
|
|
28
30
|
if (level > this->log_level_)
|
|
29
31
|
return;
|
|
30
32
|
// Syslog PRI calculation: facility * 8 + severity
|
|
@@ -34,7 +36,7 @@ void Syslog::log_(const int level, const char *tag, const char *message) const {
|
|
|
34
36
|
}
|
|
35
37
|
int pri = this->facility_ * 8 + severity;
|
|
36
38
|
auto timestamp = this->time_->now().strftime("%b %d %H:%M:%S");
|
|
37
|
-
|
|
39
|
+
size_t len = message_len;
|
|
38
40
|
// remove color formatting
|
|
39
41
|
if (this->strip_ && message[0] == 0x1B && len > 11) {
|
|
40
42
|
message += 7;
|
|
@@ -17,7 +17,7 @@ class Syslog : public Component, public Parented<udp::UDPComponent> {
|
|
|
17
17
|
|
|
18
18
|
protected:
|
|
19
19
|
int log_level_;
|
|
20
|
-
void log_(int level, const char *tag, const char *message) const;
|
|
20
|
+
void log_(int level, const char *tag, const char *message, size_t message_len) const;
|
|
21
21
|
time::RealTimeClock *time_;
|
|
22
22
|
bool strip_{true};
|
|
23
23
|
int facility_{16};
|
|
@@ -53,7 +53,7 @@ TCA9555_PIN_SCHEMA = pins.gpio_base_schema(
|
|
|
53
53
|
cv.int_range(min=0, max=15),
|
|
54
54
|
modes=[CONF_INPUT, CONF_OUTPUT],
|
|
55
55
|
mode_validator=validate_mode,
|
|
56
|
-
|
|
56
|
+
invertible=True,
|
|
57
57
|
).extend(
|
|
58
58
|
{
|
|
59
59
|
cv.Required(CONF_TCA9555): cv.use_id(TCA9555Component),
|
|
@@ -6,16 +6,8 @@ namespace template_ {
|
|
|
6
6
|
|
|
7
7
|
static const char *const TAG = "template.binary_sensor";
|
|
8
8
|
|
|
9
|
-
void TemplateBinarySensor::setup() {
|
|
10
|
-
if (!this->publish_initial_state_)
|
|
11
|
-
return;
|
|
9
|
+
void TemplateBinarySensor::setup() { this->loop(); }
|
|
12
10
|
|
|
13
|
-
if (this->f_ != nullptr) {
|
|
14
|
-
this->publish_initial_state(this->f_().value_or(false));
|
|
15
|
-
} else {
|
|
16
|
-
this->publish_initial_state(false);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
11
|
void TemplateBinarySensor::loop() {
|
|
20
12
|
if (this->f_ == nullptr)
|
|
21
13
|
return;
|
|
@@ -14,8 +14,8 @@ from esphome.const import (
|
|
|
14
14
|
CONF_WEB_SERVER,
|
|
15
15
|
)
|
|
16
16
|
from esphome.core import CORE, coroutine_with_priority
|
|
17
|
+
from esphome.core.entity_helpers import entity_duplicate_validator, setup_entity
|
|
17
18
|
from esphome.cpp_generator import MockObjClass
|
|
18
|
-
from esphome.cpp_helpers import setup_entity
|
|
19
19
|
|
|
20
20
|
CODEOWNERS = ["@mauritskorse"]
|
|
21
21
|
IS_PLATFORM_COMPONENT = True
|
|
@@ -58,6 +58,9 @@ _TEXT_SCHEMA = (
|
|
|
58
58
|
)
|
|
59
59
|
|
|
60
60
|
|
|
61
|
+
_TEXT_SCHEMA.add_extra(entity_duplicate_validator("text"))
|
|
62
|
+
|
|
63
|
+
|
|
61
64
|
def text_schema(
|
|
62
65
|
class_: MockObjClass = cv.UNDEFINED,
|
|
63
66
|
*,
|
|
@@ -94,7 +97,7 @@ async def setup_text_core_(
|
|
|
94
97
|
max_length: int | None,
|
|
95
98
|
pattern: str | None,
|
|
96
99
|
):
|
|
97
|
-
await setup_entity(var, config)
|
|
100
|
+
await setup_entity(var, config, "text")
|
|
98
101
|
|
|
99
102
|
cg.add(var.traits.set_min_length(min_length))
|
|
100
103
|
cg.add(var.traits.set_max_length(max_length))
|
|
@@ -21,8 +21,8 @@ from esphome.const import (
|
|
|
21
21
|
DEVICE_CLASS_TIMESTAMP,
|
|
22
22
|
)
|
|
23
23
|
from esphome.core import CORE, coroutine_with_priority
|
|
24
|
+
from esphome.core.entity_helpers import entity_duplicate_validator, setup_entity
|
|
24
25
|
from esphome.cpp_generator import MockObjClass
|
|
25
|
-
from esphome.cpp_helpers import setup_entity
|
|
26
26
|
from esphome.util import Registry
|
|
27
27
|
|
|
28
28
|
DEVICE_CLASSES = [
|
|
@@ -153,6 +153,9 @@ _TEXT_SENSOR_SCHEMA = (
|
|
|
153
153
|
)
|
|
154
154
|
|
|
155
155
|
|
|
156
|
+
_TEXT_SENSOR_SCHEMA.add_extra(entity_duplicate_validator("text_sensor"))
|
|
157
|
+
|
|
158
|
+
|
|
156
159
|
def text_sensor_schema(
|
|
157
160
|
class_: MockObjClass = cv.UNDEFINED,
|
|
158
161
|
*,
|
|
@@ -186,7 +189,7 @@ async def build_filters(config):
|
|
|
186
189
|
|
|
187
190
|
|
|
188
191
|
async def setup_text_sensor_core_(var, config):
|
|
189
|
-
await setup_entity(var, config)
|
|
192
|
+
await setup_entity(var, config, "text_sensor")
|
|
190
193
|
|
|
191
194
|
if (device_class := config.get(CONF_DEVICE_CLASS)) is not None:
|
|
192
195
|
cg.add(var.set_device_class(device_class))
|
|
@@ -997,7 +997,7 @@ void ThermostatClimate::change_preset_(climate::ClimatePreset preset) {
|
|
|
997
997
|
auto config = this->preset_config_.find(preset);
|
|
998
998
|
|
|
999
999
|
if (config != this->preset_config_.end()) {
|
|
1000
|
-
|
|
1000
|
+
ESP_LOGV(TAG, "Preset %s requested", LOG_STR_ARG(climate::climate_preset_to_string(preset)));
|
|
1001
1001
|
if (this->change_preset_internal_(config->second) || (!this->preset.has_value()) ||
|
|
1002
1002
|
this->preset.value() != preset) {
|
|
1003
1003
|
// Fire any preset changed trigger if defined
|
|
@@ -1015,7 +1015,7 @@ void ThermostatClimate::change_preset_(climate::ClimatePreset preset) {
|
|
|
1015
1015
|
this->custom_preset.reset();
|
|
1016
1016
|
this->preset = preset;
|
|
1017
1017
|
} else {
|
|
1018
|
-
|
|
1018
|
+
ESP_LOGW(TAG, "Preset %s not configured; ignoring", LOG_STR_ARG(climate::climate_preset_to_string(preset)));
|
|
1019
1019
|
}
|
|
1020
1020
|
}
|
|
1021
1021
|
|
|
@@ -1023,7 +1023,7 @@ void ThermostatClimate::change_custom_preset_(const std::string &custom_preset)
|
|
|
1023
1023
|
auto config = this->custom_preset_config_.find(custom_preset);
|
|
1024
1024
|
|
|
1025
1025
|
if (config != this->custom_preset_config_.end()) {
|
|
1026
|
-
|
|
1026
|
+
ESP_LOGV(TAG, "Custom preset %s requested", custom_preset.c_str());
|
|
1027
1027
|
if (this->change_preset_internal_(config->second) || (!this->custom_preset.has_value()) ||
|
|
1028
1028
|
this->custom_preset.value() != custom_preset) {
|
|
1029
1029
|
// Fire any preset changed trigger if defined
|
|
@@ -1041,7 +1041,7 @@ void ThermostatClimate::change_custom_preset_(const std::string &custom_preset)
|
|
|
1041
1041
|
this->preset.reset();
|
|
1042
1042
|
this->custom_preset = custom_preset;
|
|
1043
1043
|
} else {
|
|
1044
|
-
|
|
1044
|
+
ESP_LOGW(TAG, "Custom preset %s not configured; ignoring", custom_preset.c_str());
|
|
1045
1045
|
}
|
|
1046
1046
|
}
|
|
1047
1047
|
|
|
@@ -1298,7 +1298,7 @@ void ThermostatClimate::dump_config() {
|
|
|
1298
1298
|
if (this->supports_two_points_) {
|
|
1299
1299
|
ESP_LOGCONFIG(TAG, " Minimum Set Point Differential: %.1f°C", this->set_point_minimum_differential_);
|
|
1300
1300
|
}
|
|
1301
|
-
ESP_LOGCONFIG(TAG, " Start-up Delay
|
|
1301
|
+
ESP_LOGCONFIG(TAG, " Use Start-up Delay: %s", YESNO(this->use_startup_delay_));
|
|
1302
1302
|
if (this->supports_cool_) {
|
|
1303
1303
|
ESP_LOGCONFIG(TAG,
|
|
1304
1304
|
" Cooling Parameters:\n"
|
|
@@ -1353,44 +1353,47 @@ void ThermostatClimate::dump_config() {
|
|
|
1353
1353
|
}
|
|
1354
1354
|
ESP_LOGCONFIG(TAG, " Minimum Idle Time: %" PRIu32 "s", this->timer_[thermostat::TIMER_IDLE_ON].time / 1000);
|
|
1355
1355
|
ESP_LOGCONFIG(TAG,
|
|
1356
|
-
"
|
|
1357
|
-
"
|
|
1358
|
-
"
|
|
1359
|
-
"
|
|
1360
|
-
"
|
|
1361
|
-
"
|
|
1362
|
-
"
|
|
1363
|
-
|
|
1364
|
-
|
|
1356
|
+
" Supported MODES:\n"
|
|
1357
|
+
" AUTO: %s\n"
|
|
1358
|
+
" HEAT/COOL: %s\n"
|
|
1359
|
+
" HEAT: %s\n"
|
|
1360
|
+
" COOL: %s\n"
|
|
1361
|
+
" DRY: %s\n"
|
|
1362
|
+
" FAN_ONLY: %s\n"
|
|
1363
|
+
" FAN_ONLY_ACTION_USES_FAN_MODE_TIMER: %s\n"
|
|
1364
|
+
" FAN_ONLY_COOLING: %s",
|
|
1365
|
+
YESNO(this->supports_auto_), YESNO(this->supports_heat_cool_), YESNO(this->supports_heat_),
|
|
1366
|
+
YESNO(this->supports_cool_), YESNO(this->supports_dry_), YESNO(this->supports_fan_only_),
|
|
1365
1367
|
YESNO(this->supports_fan_only_action_uses_fan_mode_timer_), YESNO(this->supports_fan_only_cooling_));
|
|
1366
1368
|
if (this->supports_cool_) {
|
|
1367
|
-
ESP_LOGCONFIG(TAG, "
|
|
1369
|
+
ESP_LOGCONFIG(TAG, " FAN_WITH_COOLING: %s", YESNO(this->supports_fan_with_cooling_));
|
|
1368
1370
|
}
|
|
1369
1371
|
if (this->supports_heat_) {
|
|
1370
|
-
ESP_LOGCONFIG(TAG, "
|
|
1372
|
+
ESP_LOGCONFIG(TAG, " FAN_WITH_HEATING: %s", YESNO(this->supports_fan_with_heating_));
|
|
1371
1373
|
}
|
|
1372
|
-
ESP_LOGCONFIG(TAG, " Supports HEAT: %s", YESNO(this->supports_heat_));
|
|
1373
1374
|
ESP_LOGCONFIG(TAG,
|
|
1374
|
-
"
|
|
1375
|
-
"
|
|
1376
|
-
"
|
|
1377
|
-
"
|
|
1378
|
-
"
|
|
1379
|
-
"
|
|
1380
|
-
"
|
|
1381
|
-
"
|
|
1382
|
-
"
|
|
1383
|
-
"
|
|
1375
|
+
" Supported FAN MODES:\n"
|
|
1376
|
+
" ON: %s\n"
|
|
1377
|
+
" OFF: %s\n"
|
|
1378
|
+
" AUTO: %s\n"
|
|
1379
|
+
" LOW: %s\n"
|
|
1380
|
+
" MEDIUM: %s\n"
|
|
1381
|
+
" HIGH: %s\n"
|
|
1382
|
+
" MIDDLE: %s\n"
|
|
1383
|
+
" FOCUS: %s\n"
|
|
1384
|
+
" DIFFUSE: %s\n"
|
|
1385
|
+
" QUIET: %s",
|
|
1384
1386
|
YESNO(this->supports_fan_mode_on_), YESNO(this->supports_fan_mode_off_),
|
|
1385
1387
|
YESNO(this->supports_fan_mode_auto_), YESNO(this->supports_fan_mode_low_),
|
|
1386
1388
|
YESNO(this->supports_fan_mode_medium_), YESNO(this->supports_fan_mode_high_),
|
|
1387
1389
|
YESNO(this->supports_fan_mode_middle_), YESNO(this->supports_fan_mode_focus_),
|
|
1388
1390
|
YESNO(this->supports_fan_mode_diffuse_), YESNO(this->supports_fan_mode_quiet_));
|
|
1389
1391
|
ESP_LOGCONFIG(TAG,
|
|
1390
|
-
"
|
|
1391
|
-
"
|
|
1392
|
-
"
|
|
1393
|
-
"
|
|
1392
|
+
" Supported SWING MODES:\n"
|
|
1393
|
+
" BOTH: %s\n"
|
|
1394
|
+
" OFF: %s\n"
|
|
1395
|
+
" HORIZONTAL: %s\n"
|
|
1396
|
+
" VERTICAL: %s\n"
|
|
1394
1397
|
" Supports TWO SET POINTS: %s",
|
|
1395
1398
|
YESNO(this->supports_swing_mode_both_), YESNO(this->supports_swing_mode_off_),
|
|
1396
1399
|
YESNO(this->supports_swing_mode_horizontal_), YESNO(this->supports_swing_mode_vertical_),
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
namespace esphome {
|
|
14
14
|
namespace thermostat {
|
|
15
15
|
|
|
16
|
-
enum ThermostatClimateTimerIndex :
|
|
16
|
+
enum ThermostatClimateTimerIndex : uint8_t {
|
|
17
17
|
TIMER_COOLING_MAX_RUN_TIME = 0,
|
|
18
18
|
TIMER_COOLING_OFF = 1,
|
|
19
19
|
TIMER_COOLING_ON = 2,
|
|
@@ -26,7 +26,11 @@ enum ThermostatClimateTimerIndex : size_t {
|
|
|
26
26
|
TIMER_IDLE_ON = 9,
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
-
enum OnBootRestoreFrom :
|
|
29
|
+
enum OnBootRestoreFrom : uint8_t {
|
|
30
|
+
MEMORY = 0,
|
|
31
|
+
DEFAULT_PRESET = 1,
|
|
32
|
+
};
|
|
33
|
+
|
|
30
34
|
struct ThermostatClimateTimer {
|
|
31
35
|
bool active;
|
|
32
36
|
uint32_t time;
|
|
@@ -65,7 +69,7 @@ class ThermostatClimate : public climate::Climate, public Component {
|
|
|
65
69
|
|
|
66
70
|
void set_default_preset(const std::string &custom_preset);
|
|
67
71
|
void set_default_preset(climate::ClimatePreset preset);
|
|
68
|
-
void set_on_boot_restore_from(
|
|
72
|
+
void set_on_boot_restore_from(OnBootRestoreFrom on_boot_restore_from);
|
|
69
73
|
void set_set_point_minimum_differential(float differential);
|
|
70
74
|
void set_cool_deadband(float deadband);
|
|
71
75
|
void set_cool_overrun(float overrun);
|
|
@@ -240,10 +244,8 @@ class ThermostatClimate : public climate::Climate, public Component {
|
|
|
240
244
|
void dump_preset_config_(const char *preset_name, const ThermostatClimateTargetTempConfig &config,
|
|
241
245
|
bool is_default_preset);
|
|
242
246
|
|
|
243
|
-
///
|
|
244
|
-
|
|
245
|
-
/// The sensor used for getting the current humidity
|
|
246
|
-
sensor::Sensor *humidity_sensor_{nullptr};
|
|
247
|
+
/// Minimum allowable duration in seconds for action timers
|
|
248
|
+
const uint8_t min_timer_duration_{1};
|
|
247
249
|
|
|
248
250
|
/// Whether the controller supports auto/cooling/drying/fanning/heating.
|
|
249
251
|
///
|
|
@@ -310,6 +312,31 @@ class ThermostatClimate : public climate::Climate, public Component {
|
|
|
310
312
|
/// setup_complete_ blocks modifying/resetting the temps immediately after boot
|
|
311
313
|
bool setup_complete_{false};
|
|
312
314
|
|
|
315
|
+
/// Store previously-known temperatures
|
|
316
|
+
///
|
|
317
|
+
/// These are used to determine when the temperature change trigger/action needs to be called
|
|
318
|
+
float prev_target_temperature_{NAN};
|
|
319
|
+
float prev_target_temperature_low_{NAN};
|
|
320
|
+
float prev_target_temperature_high_{NAN};
|
|
321
|
+
|
|
322
|
+
/// Minimum differential required between set points
|
|
323
|
+
float set_point_minimum_differential_{0};
|
|
324
|
+
|
|
325
|
+
/// Hysteresis values used for computing climate actions
|
|
326
|
+
float cooling_deadband_{0};
|
|
327
|
+
float cooling_overrun_{0};
|
|
328
|
+
float heating_deadband_{0};
|
|
329
|
+
float heating_overrun_{0};
|
|
330
|
+
|
|
331
|
+
/// Maximum allowable temperature deltas before engaging supplemental cooling/heating actions
|
|
332
|
+
float supplemental_cool_delta_{0};
|
|
333
|
+
float supplemental_heat_delta_{0};
|
|
334
|
+
|
|
335
|
+
/// The sensor used for getting the current temperature
|
|
336
|
+
sensor::Sensor *sensor_{nullptr};
|
|
337
|
+
/// The sensor used for getting the current humidity
|
|
338
|
+
sensor::Sensor *humidity_sensor_{nullptr};
|
|
339
|
+
|
|
313
340
|
/// The trigger to call when the controller should switch to cooling action/mode.
|
|
314
341
|
///
|
|
315
342
|
/// A null value for this attribute means that the controller has no cooling action
|
|
@@ -399,7 +426,7 @@ class ThermostatClimate : public climate::Climate, public Component {
|
|
|
399
426
|
/// The trigger to call when the target temperature(s) change(es).
|
|
400
427
|
Trigger<> *temperature_change_trigger_{nullptr};
|
|
401
428
|
|
|
402
|
-
/// The
|
|
429
|
+
/// The trigger to call when the preset mode changes
|
|
403
430
|
Trigger<> *preset_change_trigger_{nullptr};
|
|
404
431
|
|
|
405
432
|
/// A reference to the trigger that was previously active.
|
|
@@ -411,6 +438,10 @@ class ThermostatClimate : public climate::Climate, public Component {
|
|
|
411
438
|
Trigger<> *prev_mode_trigger_{nullptr};
|
|
412
439
|
Trigger<> *prev_swing_mode_trigger_{nullptr};
|
|
413
440
|
|
|
441
|
+
/// If set to DEFAULT_PRESET then the default preset is always used. When MEMORY prior
|
|
442
|
+
/// state will attempt to be restored if possible
|
|
443
|
+
OnBootRestoreFrom on_boot_restore_from_{OnBootRestoreFrom::MEMORY};
|
|
444
|
+
|
|
414
445
|
/// Store previously-known states
|
|
415
446
|
///
|
|
416
447
|
/// These are used to determine when a trigger/action needs to be called
|
|
@@ -419,28 +450,10 @@ class ThermostatClimate : public climate::Climate, public Component {
|
|
|
419
450
|
climate::ClimateMode prev_mode_{climate::CLIMATE_MODE_OFF};
|
|
420
451
|
climate::ClimateSwingMode prev_swing_mode_{climate::CLIMATE_SWING_OFF};
|
|
421
452
|
|
|
422
|
-
///
|
|
423
|
-
|
|
424
|
-
///
|
|
425
|
-
|
|
426
|
-
float prev_target_temperature_low_{NAN};
|
|
427
|
-
float prev_target_temperature_high_{NAN};
|
|
428
|
-
|
|
429
|
-
/// Minimum differential required between set points
|
|
430
|
-
float set_point_minimum_differential_{0};
|
|
431
|
-
|
|
432
|
-
/// Hysteresis values used for computing climate actions
|
|
433
|
-
float cooling_deadband_{0};
|
|
434
|
-
float cooling_overrun_{0};
|
|
435
|
-
float heating_deadband_{0};
|
|
436
|
-
float heating_overrun_{0};
|
|
437
|
-
|
|
438
|
-
/// Maximum allowable temperature deltas before engauging supplemental cooling/heating actions
|
|
439
|
-
float supplemental_cool_delta_{0};
|
|
440
|
-
float supplemental_heat_delta_{0};
|
|
441
|
-
|
|
442
|
-
/// Minimum allowable duration in seconds for action timers
|
|
443
|
-
const uint8_t min_timer_duration_{1};
|
|
453
|
+
/// Default standard preset to use on start up
|
|
454
|
+
climate::ClimatePreset default_preset_{};
|
|
455
|
+
/// Default custom preset to use on start up
|
|
456
|
+
std::string default_custom_preset_{};
|
|
444
457
|
|
|
445
458
|
/// Climate action timers
|
|
446
459
|
std::vector<ThermostatClimateTimer> timer_{
|
|
@@ -460,15 +473,6 @@ class ThermostatClimate : public climate::Climate, public Component {
|
|
|
460
473
|
std::map<climate::ClimatePreset, ThermostatClimateTargetTempConfig> preset_config_{};
|
|
461
474
|
/// The set of custom preset configurations this thermostat supports (eg. "My Custom Preset")
|
|
462
475
|
std::map<std::string, ThermostatClimateTargetTempConfig> custom_preset_config_{};
|
|
463
|
-
|
|
464
|
-
/// Default standard preset to use on start up
|
|
465
|
-
climate::ClimatePreset default_preset_{};
|
|
466
|
-
/// Default custom preset to use on start up
|
|
467
|
-
std::string default_custom_preset_{};
|
|
468
|
-
|
|
469
|
-
/// If set to DEFAULT_PRESET then the default preset is always used. When MEMORY prior
|
|
470
|
-
/// state will attempt to be restored if possible
|
|
471
|
-
thermostat::OnBootRestoreFrom on_boot_restore_from_{thermostat::OnBootRestoreFrom::MEMORY};
|
|
472
476
|
};
|
|
473
477
|
|
|
474
478
|
} // namespace thermostat
|