esphome 2024.7.3__py3-none-any.whl → 2024.8.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 +15 -81
- esphome/automation.py +1 -1
- esphome/codegen.py +53 -53
- esphome/components/ade7953/sensor.py +1 -1
- esphome/components/ade7953_spi/ade7953_spi.cpp +1 -1
- esphome/components/airthings_wave_plus/airthings_wave_plus.cpp +5 -2
- esphome/components/airthings_wave_plus/airthings_wave_plus.h +2 -0
- esphome/components/airthings_wave_plus/sensor.py +12 -0
- esphome/components/alarm_control_panel/__init__.py +75 -66
- esphome/components/apds9306/__init__.py +4 -0
- esphome/components/apds9306/apds9306.cpp +151 -0
- esphome/components/apds9306/apds9306.h +66 -0
- esphome/components/apds9306/sensor.py +95 -0
- esphome/components/api/__init__.py +80 -52
- esphome/components/api/api_connection.cpp +14 -1
- esphome/components/api/api_pb2.cpp +33 -4
- esphome/components/api/api_pb2.h +8 -1
- esphome/components/api/api_server.cpp +10 -0
- esphome/components/api/api_server.h +3 -0
- esphome/components/atm90e32/__init__.py +7 -0
- esphome/components/atm90e32/atm90e32.cpp +68 -16
- esphome/components/atm90e32/atm90e32.h +20 -7
- esphome/components/atm90e32/atm90e32_reg.h +2 -0
- esphome/components/atm90e32/button/__init__.py +43 -0
- esphome/components/atm90e32/button/atm90e32_button.cpp +20 -0
- esphome/components/atm90e32/button/atm90e32_button.h +27 -0
- esphome/components/atm90e32/sensor.py +15 -11
- esphome/components/bedjet/bedjet_codec.h +1 -1
- esphome/components/binary/light/binary_light_output.h +3 -2
- esphome/components/binary_sensor/__init__.py +5 -5
- esphome/components/ble_client/__init__.py +3 -3
- esphome/components/ble_client/output/__init__.py +1 -1
- esphome/components/ble_client/sensor/__init__.py +4 -3
- esphome/components/ble_client/switch/__init__.py +2 -1
- esphome/components/ble_client/text_sensor/__init__.py +4 -3
- esphome/components/ble_presence/binary_sensor.py +3 -3
- esphome/components/ble_rssi/sensor.py +2 -2
- esphome/components/ble_scanner/text_sensor.py +1 -1
- esphome/components/bluetooth_proxy/__init__.py +3 -3
- esphome/components/bme68x_bsec2/__init__.py +196 -0
- esphome/components/bme68x_bsec2/bme68x_bsec2.cpp +523 -0
- esphome/components/bme68x_bsec2/bme68x_bsec2.h +163 -0
- esphome/components/bme68x_bsec2/sensor.py +130 -0
- esphome/components/bme68x_bsec2/text_sensor.py +33 -0
- esphome/components/bme68x_bsec2_i2c/__init__.py +28 -0
- esphome/components/bme68x_bsec2_i2c/bme68x_bsec2_i2c.cpp +53 -0
- esphome/components/bme68x_bsec2_i2c/bme68x_bsec2_i2c.h +28 -0
- esphome/components/bmp3xx/sensor.py +1 -1
- esphome/components/button/__init__.py +4 -4
- esphome/components/climate/__init__.py +5 -5
- esphome/components/climate/climate.h +1 -1
- esphome/components/cover/__init__.py +8 -8
- esphome/components/cst226/touchscreen/cst226_touchscreen.cpp +11 -7
- esphome/components/cst226/touchscreen/cst226_touchscreen.h +1 -1
- esphome/components/datetime/__init__.py +11 -13
- esphome/components/demo/demo_sensor.h +3 -2
- esphome/components/display/display.cpp +31 -0
- esphome/components/display/display.h +3 -0
- esphome/components/display_menu_base/__init__.py +14 -13
- esphome/components/ens160/sensor.py +1 -1
- esphome/components/esp32/__init__.py +22 -10
- esphome/components/esp32/boards.py +1 -1
- esphome/components/esp32/gpio.py +12 -13
- esphome/components/esp32/gpio_esp32.py +1 -2
- esphome/components/esp32/gpio_esp32_c2.py +1 -2
- esphome/components/esp32/gpio_esp32_c3.py +1 -5
- esphome/components/esp32/gpio_esp32_c6.py +1 -2
- esphome/components/esp32/gpio_esp32_h2.py +1 -2
- esphome/components/esp32/gpio_esp32_s2.py +1 -2
- esphome/components/esp32/gpio_esp32_s3.py +1 -6
- esphome/components/esp32_ble/__init__.py +20 -3
- esphome/components/esp32_ble/ble.cpp +9 -1
- esphome/components/esp32_ble/ble.h +9 -0
- esphome/components/esp32_ble/ble_advertising.cpp +42 -9
- esphome/components/esp32_ble/ble_advertising.h +21 -1
- esphome/components/esp32_ble_beacon/__init__.py +17 -7
- esphome/components/esp32_ble_beacon/esp32_ble_beacon.cpp +45 -113
- esphome/components/esp32_ble_beacon/esp32_ble_beacon.h +17 -19
- esphome/components/esp32_ble_client/__init__.py +0 -1
- esphome/components/esp32_ble_server/__init__.py +2 -3
- esphome/components/esp32_ble_tracker/__init__.py +2 -2
- esphome/components/esp32_improv/__init__.py +2 -4
- esphome/components/ethernet/__init__.py +17 -17
- esphome/components/ethernet_info/text_sensor.py +2 -2
- esphome/components/event/__init__.py +5 -5
- esphome/components/fan/__init__.py +14 -14
- esphome/components/fan/fan.cpp +2 -2
- esphome/components/fingerprint_grow/fingerprint_grow.cpp +1 -1
- esphome/components/fingerprint_grow/fingerprint_grow.h +1 -1
- esphome/components/graphical_display_menu/__init__.py +11 -8
- esphome/components/haier/haier_base.h +2 -2
- esphome/components/homeassistant/__init__.py +8 -1
- esphome/components/homeassistant/number/__init__.py +33 -0
- esphome/components/homeassistant/number/homeassistant_number.cpp +100 -0
- esphome/components/homeassistant/number/homeassistant_number.h +31 -0
- esphome/components/homeassistant/switch/__init__.py +30 -0
- esphome/components/homeassistant/switch/homeassistant_switch.cpp +59 -0
- esphome/components/homeassistant/switch/homeassistant_switch.h +22 -0
- esphome/components/host/__init__.py +3 -7
- esphome/components/http_request/__init__.py +12 -1
- esphome/components/http_request/http_request_arduino.cpp +2 -2
- esphome/components/http_request/http_request_idf.cpp +11 -2
- esphome/components/http_request/http_request_idf.h +10 -0
- esphome/components/http_request/ota/ota_http_request.cpp +1 -1
- esphome/components/http_request/update/http_request_update.cpp +2 -2
- esphome/components/http_request/update/http_request_update.h +2 -1
- esphome/components/hx711/hx711.cpp +10 -1
- esphome/components/hydreon_rgxx/hydreon_rgxx.cpp +1 -1
- esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp +11 -2
- esphome/components/i2s_audio/speaker/i2s_audio_speaker.h +2 -0
- esphome/components/ili9xxx/ili9xxx_defines.h +3 -1
- esphome/components/ili9xxx/ili9xxx_display.cpp +9 -22
- esphome/components/ili9xxx/ili9xxx_display.h +5 -7
- esphome/components/ili9xxx/ili9xxx_init.h +4 -4
- esphome/components/improv_base/__init__.py +2 -3
- esphome/components/improv_serial/__init__.py +4 -10
- esphome/components/improv_serial/improv_serial_component.cpp +4 -0
- esphome/components/jsn_sr04t/jsn_sr04t.cpp +18 -1
- esphome/components/jsn_sr04t/jsn_sr04t.h +7 -1
- esphome/components/jsn_sr04t/sensor.py +13 -0
- esphome/components/kalman_combinator/sensor.py +1 -1
- esphome/components/light/__init__.py +16 -15
- esphome/components/light/addressable_light_effect.h +12 -8
- esphome/components/light/automation.h +16 -1
- esphome/components/light/automation.py +21 -0
- esphome/components/light/base_light_effects.h +5 -5
- esphome/components/light/esp_color_correction.h +8 -8
- esphome/components/light/types.py +7 -0
- esphome/components/lock/__init__.py +3 -3
- esphome/components/logger/__init__.py +15 -18
- esphome/components/lvgl/__init__.py +346 -0
- esphome/components/lvgl/automation.py +226 -0
- esphome/components/lvgl/binary_sensor/__init__.py +43 -0
- esphome/components/lvgl/defines.py +508 -0
- esphome/components/lvgl/encoders.py +77 -0
- esphome/components/lvgl/font.cpp +76 -0
- esphome/components/lvgl/helpers.py +49 -0
- esphome/components/lvgl/light/__init__.py +32 -0
- esphome/components/lvgl/light/lvgl_light.h +48 -0
- esphome/components/lvgl/lv_validation.py +303 -0
- esphome/components/lvgl/lvcode.py +349 -0
- esphome/components/lvgl/lvgl_esphome.cpp +407 -0
- esphome/components/lvgl/lvgl_esphome.h +274 -0
- esphome/components/lvgl/lvgl_hal.h +21 -0
- esphome/components/lvgl/number/__init__.py +66 -0
- esphome/components/lvgl/number/lvgl_number.h +34 -0
- esphome/components/lvgl/schemas.py +436 -0
- esphome/components/lvgl/select/__init__.py +55 -0
- esphome/components/lvgl/select/lvgl_select.h +62 -0
- esphome/components/lvgl/sensor/__init__.py +47 -0
- esphome/components/lvgl/styles.py +58 -0
- esphome/components/lvgl/switch/__init__.py +56 -0
- esphome/components/lvgl/switch/lvgl_switch.h +34 -0
- esphome/components/lvgl/text/__init__.py +50 -0
- esphome/components/lvgl/text/lvgl_text.h +34 -0
- esphome/components/lvgl/text_sensor/__init__.py +42 -0
- esphome/components/lvgl/touchscreens.py +45 -0
- esphome/components/lvgl/trigger.py +74 -0
- esphome/components/lvgl/types.py +191 -0
- esphome/components/lvgl/widgets/__init__.py +419 -0
- esphome/components/lvgl/widgets/animimg.py +117 -0
- esphome/components/lvgl/widgets/arc.py +78 -0
- esphome/components/lvgl/widgets/button.py +20 -0
- esphome/components/lvgl/widgets/buttonmatrix.py +275 -0
- esphome/components/lvgl/widgets/checkbox.py +27 -0
- esphome/components/lvgl/widgets/dropdown.py +76 -0
- esphome/components/lvgl/widgets/img.py +85 -0
- esphome/components/lvgl/widgets/keyboard.py +49 -0
- esphome/components/lvgl/widgets/label.py +42 -0
- esphome/components/lvgl/widgets/led.py +29 -0
- esphome/components/lvgl/widgets/line.py +50 -0
- esphome/components/lvgl/widgets/lv_bar.py +55 -0
- esphome/components/lvgl/widgets/meter.py +302 -0
- esphome/components/lvgl/widgets/msgbox.py +134 -0
- esphome/components/lvgl/widgets/obj.py +28 -0
- esphome/components/lvgl/widgets/page.py +113 -0
- esphome/components/lvgl/widgets/roller.py +77 -0
- esphome/components/lvgl/widgets/slider.py +63 -0
- esphome/components/lvgl/widgets/spinbox.py +178 -0
- esphome/components/lvgl/widgets/spinner.py +43 -0
- esphome/components/lvgl/widgets/switch.py +20 -0
- esphome/components/lvgl/widgets/tabview.py +114 -0
- esphome/components/lvgl/widgets/textarea.py +66 -0
- esphome/components/lvgl/widgets/tileview.py +128 -0
- esphome/components/m5stack_8angle/__init__.py +33 -0
- esphome/components/m5stack_8angle/binary_sensor/__init__.py +30 -0
- esphome/components/m5stack_8angle/binary_sensor/m5stack_8angle_binary_sensor.cpp +17 -0
- esphome/components/m5stack_8angle/binary_sensor/m5stack_8angle_binary_sensor.h +19 -0
- esphome/components/m5stack_8angle/light/__init__.py +31 -0
- esphome/components/m5stack_8angle/light/m5stack_8angle_light.cpp +45 -0
- esphome/components/m5stack_8angle/light/m5stack_8angle_light.h +37 -0
- esphome/components/m5stack_8angle/m5stack_8angle.cpp +74 -0
- esphome/components/m5stack_8angle/m5stack_8angle.h +34 -0
- esphome/components/m5stack_8angle/sensor/__init__.py +66 -0
- esphome/components/m5stack_8angle/sensor/m5stack_8angle_sensor.cpp +24 -0
- esphome/components/m5stack_8angle/sensor/m5stack_8angle_sensor.h +27 -0
- esphome/components/matrix_keypad/matrix_keypad.cpp +2 -0
- esphome/components/max31856/sensor.py +5 -5
- esphome/components/media_player/__init__.py +3 -5
- esphome/components/media_player/automation.h +31 -27
- esphome/components/micro_wake_word/__init__.py +20 -25
- esphome/components/microphone/microphone.h +4 -1
- esphome/components/modbus_controller/__init__.py +26 -2
- esphome/components/modbus_controller/automation.h +19 -0
- esphome/components/modbus_controller/const.py +1 -0
- esphome/components/modbus_controller/modbus_controller.cpp +8 -0
- esphome/components/modbus_controller/modbus_controller.h +3 -0
- esphome/components/mqtt/__init__.py +20 -9
- esphome/components/mqtt/mqtt_alarm_control_panel.cpp +128 -0
- esphome/components/mqtt/mqtt_alarm_control_panel.h +39 -0
- esphome/components/mqtt/mqtt_backend.h +3 -1
- esphome/components/mqtt/mqtt_backend_esp32.cpp +4 -1
- esphome/components/mqtt/mqtt_backend_esp32.h +3 -1
- esphome/components/mqtt/mqtt_backend_esp8266.h +3 -1
- esphome/components/mqtt/mqtt_backend_libretiny.h +3 -1
- esphome/components/mqtt/mqtt_client.cpp +16 -3
- esphome/components/mqtt/mqtt_client.h +5 -1
- esphome/components/mqtt/mqtt_component.cpp +32 -4
- esphome/components/mqtt/mqtt_const.h +2 -0
- esphome/components/network/__init__.py +15 -12
- esphome/components/network/ip_address.h +3 -0
- esphome/components/network/util.cpp +2 -1
- esphome/components/network/util.h +3 -1
- esphome/components/nextion/base_component.py +5 -8
- esphome/components/number/__init__.py +7 -8
- esphome/components/online_image/__init__.py +167 -0
- esphome/components/online_image/image_decoder.cpp +44 -0
- esphome/components/online_image/image_decoder.h +112 -0
- esphome/components/online_image/online_image.cpp +283 -0
- esphome/components/online_image/online_image.h +195 -0
- esphome/components/online_image/png_image.cpp +68 -0
- esphome/components/online_image/png_image.h +33 -0
- esphome/components/ota/__init__.py +8 -4
- esphome/components/pid/pid_climate.h +2 -0
- esphome/components/remote_base/pronto_protocol.cpp +0 -3
- esphome/components/remote_transmitter/remote_transmitter.h +1 -1
- esphome/components/rgbct/rgbct_light_output.h +3 -2
- esphome/components/rgbw/rgbw_light_output.h +3 -2
- esphome/components/rgbww/rgbww_light_output.h +3 -2
- esphome/components/rp2040_pio_led_strip/led_strip.cpp +31 -5
- esphome/components/rp2040_pio_led_strip/led_strip.h +5 -0
- esphome/components/rtttl/rtttl.cpp +108 -21
- esphome/components/rtttl/rtttl.h +15 -6
- esphome/components/select/__init__.py +7 -7
- esphome/components/sensor/__init__.py +29 -10
- esphome/components/sensor/filter.cpp +8 -0
- esphome/components/sensor/filter.h +9 -0
- esphome/components/sml/sml_parser.cpp +48 -22
- esphome/components/socket/socket.cpp +11 -14
- esphome/components/speaker/__init__.py +14 -5
- esphome/components/speaker/automation.h +10 -0
- esphome/components/speaker/speaker.h +9 -0
- esphome/components/spi/spi.cpp +0 -6
- esphome/components/spi/spi.h +2 -19
- esphome/components/spi_led_strip/spi_led_strip.h +5 -4
- esphome/components/sprinkler/sprinkler.cpp +2 -2
- esphome/components/sprinkler/sprinkler.h +1 -1
- esphome/components/switch/__init__.py +3 -3
- esphome/components/text/__init__.py +5 -5
- esphome/components/text_sensor/__init__.py +7 -7
- esphome/components/time/__init__.py +8 -8
- esphome/components/touchscreen/binary_sensor/__init__.py +24 -10
- esphome/components/touchscreen/binary_sensor/touchscreen_binary_sensor.cpp +3 -2
- esphome/components/touchscreen/binary_sensor/touchscreen_binary_sensor.h +4 -2
- esphome/components/uart/uart_component_host.cpp +6 -2
- esphome/components/update/__init__.py +33 -15
- esphome/components/update/automation.h +23 -0
- esphome/components/update/update_entity.h +3 -1
- esphome/components/valve/__init__.py +3 -3
- esphome/components/voice_assistant/__init__.py +7 -8
- esphome/components/wake_on_lan/wake_on_lan.cpp +2 -0
- esphome/components/wake_on_lan/wake_on_lan.h +3 -1
- esphome/components/watchdog/__init__.py +1 -0
- esphome/components/{http_request → watchdog}/watchdog.cpp +0 -2
- esphome/components/{http_request → watchdog}/watchdog.h +0 -2
- esphome/components/waveshare_epaper/waveshare_epaper.cpp +5 -5
- esphome/components/web_server/server_index_v3.h +3615 -3603
- esphome/components/web_server/web_server.cpp +0 -209
- esphome/components/web_server/web_server.h +1 -1
- esphome/components/web_server/web_server_v1.cpp +217 -0
- esphome/components/web_server_base/web_server_base.h +1 -0
- esphome/components/wifi/__init__.py +15 -14
- esphome/components/wifi/wifi_component.cpp +2 -0
- esphome/components/wifi/wifi_component.h +7 -1
- esphome/components/wifi/wifi_component_esp32_arduino.cpp +5 -2
- esphome/components/wifi/wifi_component_esp8266.cpp +2 -0
- esphome/components/wifi/wifi_component_esp_idf.cpp +43 -7
- esphome/components/wifi/wifi_component_libretiny.cpp +2 -0
- esphome/components/wifi/wifi_component_pico_w.cpp +2 -0
- esphome/components/wifi/wpa2_eap.py +6 -7
- esphome/components/wifi_info/text_sensor.py +3 -3
- esphome/components/wifi_info/wifi_info_text_sensor.cpp +2 -0
- esphome/components/wifi_info/wifi_info_text_sensor.h +2 -0
- esphome/components/wifi_signal/sensor.py +1 -1
- esphome/components/wifi_signal/wifi_signal_sensor.cpp +2 -0
- esphome/components/wifi_signal/wifi_signal_sensor.h +2 -1
- esphome/components/xiaomi_ble/xiaomi_ble.cpp +20 -3
- esphome/components/xiaomi_ble/xiaomi_ble.h +1 -0
- esphome/components/xiaomi_lywsd02mmc/__init__.py +0 -0
- esphome/components/xiaomi_lywsd02mmc/sensor.py +77 -0
- esphome/components/xiaomi_lywsd02mmc/xiaomi_lywsd02mmc.cpp +73 -0
- esphome/components/xiaomi_lywsd02mmc/xiaomi_lywsd02mmc.h +37 -0
- esphome/config.py +17 -19
- esphome/config_validation.py +55 -23
- esphome/const.py +25 -9
- esphome/core/__init__.py +17 -14
- esphome/core/application.h +42 -21
- esphome/core/automation.h +5 -3
- esphome/core/base_automation.h +3 -2
- esphome/core/bytebuffer.cpp +134 -0
- esphome/core/bytebuffer.h +96 -0
- esphome/core/color.h +24 -16
- esphome/core/config.py +3 -3
- esphome/core/defines.h +14 -1
- esphome/core/entity_base.h +2 -2
- esphome/core/entity_helpers.py +1 -2
- esphome/core/gpio.h +0 -18
- esphome/core/helpers.h +1 -1
- esphome/core/optional.h +15 -16
- esphome/coroutine.py +1 -1
- esphome/cpp_generator.py +1 -1
- esphome/cpp_helpers.py +3 -5
- esphome/dashboard/core.py +3 -3
- esphome/dashboard/dashboard.py +3 -3
- esphome/dashboard/entries.py +1 -1
- esphome/dashboard/util/file.py +1 -1
- esphome/dashboard/web_server.py +3 -3
- esphome/external_files.py +5 -3
- esphome/final_validate.py +2 -2
- esphome/git.py +4 -4
- esphome/helpers.py +5 -5
- esphome/loader.py +15 -10
- esphome/mqtt.py +4 -8
- esphome/pins.py +6 -6
- esphome/platformio_api.py +5 -5
- esphome/storage_json.py +2 -1
- esphome/types.py +1 -1
- esphome/util.py +2 -3
- esphome/voluptuous_schema.py +1 -0
- esphome/vscode.py +5 -4
- esphome/wizard.py +1 -1
- esphome/writer.py +7 -7
- esphome/yaml_util.py +3 -3
- esphome/zeroconf.py +1 -1
- {esphome-2024.7.3.dist-info → esphome-2024.8.0.dist-info}/METADATA +3 -3
- {esphome-2024.7.3.dist-info → esphome-2024.8.0.dist-info}/RECORD +350 -244
- {esphome-2024.7.3.dist-info → esphome-2024.8.0.dist-info}/LICENSE +0 -0
- {esphome-2024.7.3.dist-info → esphome-2024.8.0.dist-info}/WHEEL +0 -0
- {esphome-2024.7.3.dist-info → esphome-2024.8.0.dist-info}/entry_points.txt +0 -0
- {esphome-2024.7.3.dist-info → esphome-2024.8.0.dist-info}/top_level.txt +0 -0
esphome/components/spi/spi.h
CHANGED
@@ -163,8 +163,6 @@ class Utility {
|
|
163
163
|
}
|
164
164
|
};
|
165
165
|
|
166
|
-
class SPIDelegateDummy;
|
167
|
-
|
168
166
|
// represents a device attached to an SPI bus, with a defined clock rate, mode and bit order. On Arduino this is
|
169
167
|
// a thin wrapper over SPIClass.
|
170
168
|
class SPIDelegate {
|
@@ -250,21 +248,6 @@ class SPIDelegate {
|
|
250
248
|
uint32_t data_rate_{1000000};
|
251
249
|
SPIMode mode_{MODE0};
|
252
250
|
GPIOPin *cs_pin_{NullPin::NULL_PIN};
|
253
|
-
static SPIDelegate *const NULL_DELEGATE; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
254
|
-
};
|
255
|
-
|
256
|
-
/**
|
257
|
-
* A dummy SPIDelegate that complains if it's used.
|
258
|
-
*/
|
259
|
-
|
260
|
-
class SPIDelegateDummy : public SPIDelegate {
|
261
|
-
public:
|
262
|
-
SPIDelegateDummy() = default;
|
263
|
-
|
264
|
-
uint8_t transfer(uint8_t data) override { return 0; }
|
265
|
-
void end_transaction() override{};
|
266
|
-
|
267
|
-
void begin_transaction() override;
|
268
251
|
};
|
269
252
|
|
270
253
|
/**
|
@@ -382,7 +365,7 @@ class SPIClient {
|
|
382
365
|
|
383
366
|
virtual void spi_teardown() {
|
384
367
|
this->parent_->unregister_device(this);
|
385
|
-
this->delegate_ =
|
368
|
+
this->delegate_ = nullptr;
|
386
369
|
}
|
387
370
|
|
388
371
|
bool spi_is_ready() { return this->delegate_->is_ready(); }
|
@@ -393,7 +376,7 @@ class SPIClient {
|
|
393
376
|
uint32_t data_rate_{1000000};
|
394
377
|
SPIComponent *parent_{nullptr};
|
395
378
|
GPIOPin *cs_{nullptr};
|
396
|
-
SPIDelegate *delegate_{
|
379
|
+
SPIDelegate *delegate_{nullptr};
|
397
380
|
};
|
398
381
|
|
399
382
|
/**
|
@@ -13,7 +13,7 @@ class SpiLedStrip : public light::AddressableLight,
|
|
13
13
|
public spi::SPIDevice<spi::BIT_ORDER_MSB_FIRST, spi::CLOCK_POLARITY_HIGH, spi::CLOCK_PHASE_TRAILING,
|
14
14
|
spi::DATA_RATE_1MHZ> {
|
15
15
|
public:
|
16
|
-
void setup() { this->spi_setup(); }
|
16
|
+
void setup() override { this->spi_setup(); }
|
17
17
|
|
18
18
|
int32_t size() const override { return this->num_leds_; }
|
19
19
|
|
@@ -43,13 +43,14 @@ class SpiLedStrip : public light::AddressableLight,
|
|
43
43
|
memset(this->buf_, 0, 4);
|
44
44
|
}
|
45
45
|
|
46
|
-
void dump_config() {
|
46
|
+
void dump_config() override {
|
47
47
|
esph_log_config(TAG, "SPI LED Strip:");
|
48
48
|
esph_log_config(TAG, " LEDs: %d", this->num_leds_);
|
49
|
-
if (this->data_rate_ >= spi::DATA_RATE_1MHZ)
|
49
|
+
if (this->data_rate_ >= spi::DATA_RATE_1MHZ) {
|
50
50
|
esph_log_config(TAG, " Data rate: %uMHz", (unsigned) (this->data_rate_ / 1000000));
|
51
|
-
else
|
51
|
+
} else {
|
52
52
|
esph_log_config(TAG, " Data rate: %ukHz", (unsigned) (this->data_rate_ / 1000));
|
53
|
+
}
|
53
54
|
}
|
54
55
|
|
55
56
|
void write_state(light::LightState *state) override {
|
@@ -647,7 +647,7 @@ void Sprinkler::set_valve_run_duration(const optional<size_t> valve_number, cons
|
|
647
647
|
return;
|
648
648
|
}
|
649
649
|
auto call = this->valve_[valve_number.value()].run_duration_number->make_call();
|
650
|
-
if (this->valve_[valve_number.value()].run_duration_number->traits.get_unit_of_measurement() ==
|
650
|
+
if (this->valve_[valve_number.value()].run_duration_number->traits.get_unit_of_measurement() == MIN_STR) {
|
651
651
|
call.set_value(run_duration.value() / 60.0);
|
652
652
|
} else {
|
653
653
|
call.set_value(run_duration.value());
|
@@ -729,7 +729,7 @@ uint32_t Sprinkler::valve_run_duration(const size_t valve_number) {
|
|
729
729
|
return 0;
|
730
730
|
}
|
731
731
|
if (this->valve_[valve_number].run_duration_number != nullptr) {
|
732
|
-
if (this->valve_[valve_number].run_duration_number->traits.get_unit_of_measurement() ==
|
732
|
+
if (this->valve_[valve_number].run_duration_number->traits.get_unit_of_measurement() == MIN_STR) {
|
733
733
|
return static_cast<uint32_t>(roundf(this->valve_[valve_number].run_duration_number->state * 60));
|
734
734
|
} else {
|
735
735
|
return static_cast<uint32_t>(roundf(this->valve_[valve_number].run_duration_number->state));
|
@@ -11,7 +11,7 @@
|
|
11
11
|
namespace esphome {
|
12
12
|
namespace sprinkler {
|
13
13
|
|
14
|
-
const std::string
|
14
|
+
const std::string MIN_STR = "min";
|
15
15
|
|
16
16
|
enum SprinklerState : uint8_t {
|
17
17
|
// NOTE: these states are used by both SprinklerValveOperator and Sprinkler (the controller)!
|
@@ -1,8 +1,8 @@
|
|
1
|
-
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
1
|
from esphome import automation
|
4
2
|
from esphome.automation import Condition, maybe_simple_id
|
3
|
+
import esphome.codegen as cg
|
5
4
|
from esphome.components import mqtt, web_server
|
5
|
+
import esphome.config_validation as cv
|
6
6
|
from esphome.const import (
|
7
7
|
CONF_DEVICE_CLASS,
|
8
8
|
CONF_ENTITY_CATEGORY,
|
@@ -10,11 +10,11 @@ from esphome.const import (
|
|
10
10
|
CONF_ID,
|
11
11
|
CONF_INVERTED,
|
12
12
|
CONF_MQTT_ID,
|
13
|
-
CONF_WEB_SERVER_ID,
|
14
13
|
CONF_ON_TURN_OFF,
|
15
14
|
CONF_ON_TURN_ON,
|
16
15
|
CONF_RESTORE_MODE,
|
17
16
|
CONF_TRIGGER_ID,
|
17
|
+
CONF_WEB_SERVER_ID,
|
18
18
|
DEVICE_CLASS_EMPTY,
|
19
19
|
DEVICE_CLASS_OUTLET,
|
20
20
|
DEVICE_CLASS_SWITCH,
|
@@ -1,18 +1,18 @@
|
|
1
1
|
from typing import Optional
|
2
|
-
|
3
|
-
import esphome.config_validation as cv
|
2
|
+
|
4
3
|
from esphome import automation
|
4
|
+
import esphome.codegen as cg
|
5
5
|
from esphome.components import mqtt, web_server
|
6
|
+
import esphome.config_validation as cv
|
6
7
|
from esphome.const import (
|
7
8
|
CONF_ID,
|
8
9
|
CONF_MODE,
|
10
|
+
CONF_MQTT_ID,
|
9
11
|
CONF_ON_VALUE,
|
10
12
|
CONF_TRIGGER_ID,
|
11
|
-
CONF_MQTT_ID,
|
12
|
-
CONF_WEB_SERVER_ID,
|
13
13
|
CONF_VALUE,
|
14
|
+
CONF_WEB_SERVER_ID,
|
14
15
|
)
|
15
|
-
|
16
16
|
from esphome.core import CORE, coroutine_with_priority
|
17
17
|
from esphome.cpp_helpers import setup_entity
|
18
18
|
|
@@ -1,21 +1,21 @@
|
|
1
|
-
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
1
|
from esphome import automation
|
2
|
+
import esphome.codegen as cg
|
4
3
|
from esphome.components import mqtt, web_server
|
4
|
+
import esphome.config_validation as cv
|
5
5
|
from esphome.const import (
|
6
6
|
CONF_DEVICE_CLASS,
|
7
7
|
CONF_ENTITY_CATEGORY,
|
8
8
|
CONF_FILTERS,
|
9
|
+
CONF_FROM,
|
9
10
|
CONF_ICON,
|
10
11
|
CONF_ID,
|
11
|
-
CONF_ON_VALUE,
|
12
|
-
CONF_ON_RAW_VALUE,
|
13
|
-
CONF_TRIGGER_ID,
|
14
12
|
CONF_MQTT_ID,
|
15
|
-
|
13
|
+
CONF_ON_RAW_VALUE,
|
14
|
+
CONF_ON_VALUE,
|
16
15
|
CONF_STATE,
|
17
|
-
CONF_FROM,
|
18
16
|
CONF_TO,
|
17
|
+
CONF_TRIGGER_ID,
|
18
|
+
CONF_WEB_SERVER_ID,
|
19
19
|
DEVICE_CLASS_DATE,
|
20
20
|
DEVICE_CLASS_EMPTY,
|
21
21
|
DEVICE_CLASS_TIMESTAMP,
|
@@ -1,32 +1,32 @@
|
|
1
|
-
import logging
|
2
1
|
from importlib import resources
|
2
|
+
import logging
|
3
3
|
from typing import Optional
|
4
4
|
|
5
5
|
import tzlocal
|
6
6
|
|
7
|
+
from esphome import automation
|
8
|
+
from esphome.automation import Condition
|
7
9
|
import esphome.codegen as cg
|
8
10
|
import esphome.config_validation as cv
|
9
|
-
from esphome import automation
|
10
11
|
from esphome.const import (
|
11
|
-
|
12
|
+
CONF_AT,
|
12
13
|
CONF_CRON,
|
13
14
|
CONF_DAYS_OF_MONTH,
|
14
15
|
CONF_DAYS_OF_WEEK,
|
16
|
+
CONF_HOUR,
|
15
17
|
CONF_HOURS,
|
18
|
+
CONF_ID,
|
19
|
+
CONF_MINUTE,
|
16
20
|
CONF_MINUTES,
|
17
21
|
CONF_MONTHS,
|
18
22
|
CONF_ON_TIME,
|
19
23
|
CONF_ON_TIME_SYNC,
|
24
|
+
CONF_SECOND,
|
20
25
|
CONF_SECONDS,
|
21
26
|
CONF_TIMEZONE,
|
22
27
|
CONF_TRIGGER_ID,
|
23
|
-
CONF_AT,
|
24
|
-
CONF_SECOND,
|
25
|
-
CONF_HOUR,
|
26
|
-
CONF_MINUTE,
|
27
28
|
)
|
28
29
|
from esphome.core import coroutine_with_priority
|
29
|
-
from esphome.automation import Condition
|
30
30
|
|
31
31
|
_LOGGER = logging.getLogger(__name__)
|
32
32
|
|
@@ -1,10 +1,9 @@
|
|
1
1
|
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
|
-
|
4
2
|
from esphome.components import binary_sensor, display
|
5
|
-
|
3
|
+
import esphome.config_validation as cv
|
4
|
+
from esphome.const import CONF_PAGE_ID, CONF_PAGES
|
6
5
|
|
7
|
-
from .. import
|
6
|
+
from .. import CONF_TOUCHSCREEN_ID, TouchListener, Touchscreen, touchscreen_ns
|
8
7
|
|
9
8
|
DEPENDENCIES = ["touchscreen"]
|
10
9
|
|
@@ -22,7 +21,7 @@ CONF_Y_MIN = "y_min"
|
|
22
21
|
CONF_Y_MAX = "y_max"
|
23
22
|
|
24
23
|
|
25
|
-
def
|
24
|
+
def _validate_coords(config):
|
26
25
|
if (
|
27
26
|
config[CONF_X_MAX] < config[CONF_X_MIN]
|
28
27
|
or config[CONF_Y_MAX] < config[CONF_Y_MIN]
|
@@ -33,6 +32,15 @@ def validate_coords(config):
|
|
33
32
|
return config
|
34
33
|
|
35
34
|
|
35
|
+
def _set_pages(config: dict) -> dict:
|
36
|
+
if CONF_PAGES in config or CONF_PAGE_ID not in config:
|
37
|
+
return config
|
38
|
+
|
39
|
+
config = config.copy()
|
40
|
+
config[CONF_PAGES] = [config.pop(CONF_PAGE_ID)]
|
41
|
+
return config
|
42
|
+
|
43
|
+
|
36
44
|
CONFIG_SCHEMA = cv.All(
|
37
45
|
binary_sensor.binary_sensor_schema(TouchscreenBinarySensor)
|
38
46
|
.extend(
|
@@ -42,11 +50,17 @@ CONFIG_SCHEMA = cv.All(
|
|
42
50
|
cv.Required(CONF_X_MAX): cv.int_range(min=0, max=2000),
|
43
51
|
cv.Required(CONF_Y_MIN): cv.int_range(min=0, max=2000),
|
44
52
|
cv.Required(CONF_Y_MAX): cv.int_range(min=0, max=2000),
|
45
|
-
cv.
|
53
|
+
cv.Exclusive(CONF_PAGE_ID, group_of_exclusion=CONF_PAGES): cv.use_id(
|
54
|
+
display.DisplayPage
|
55
|
+
),
|
56
|
+
cv.Exclusive(CONF_PAGES, group_of_exclusion=CONF_PAGES): cv.ensure_list(
|
57
|
+
cv.use_id(display.DisplayPage)
|
58
|
+
),
|
46
59
|
}
|
47
60
|
)
|
48
61
|
.extend(cv.COMPONENT_SCHEMA),
|
49
|
-
|
62
|
+
_validate_coords,
|
63
|
+
_set_pages,
|
50
64
|
)
|
51
65
|
|
52
66
|
|
@@ -64,6 +78,6 @@ async def to_code(config):
|
|
64
78
|
)
|
65
79
|
)
|
66
80
|
|
67
|
-
|
68
|
-
page = await cg.get_variable(
|
69
|
-
cg.add(var.
|
81
|
+
for page_id in config.get(CONF_PAGES, []):
|
82
|
+
page = await cg.get_variable(page_id)
|
83
|
+
cg.add(var.add_page(page))
|
@@ -11,8 +11,9 @@ void TouchscreenBinarySensor::setup() {
|
|
11
11
|
void TouchscreenBinarySensor::touch(TouchPoint tp) {
|
12
12
|
bool touched = (tp.x >= this->x_min_ && tp.x <= this->x_max_ && tp.y >= this->y_min_ && tp.y <= this->y_max_);
|
13
13
|
|
14
|
-
if (this->
|
15
|
-
|
14
|
+
if (!this->pages_.empty()) {
|
15
|
+
auto *current_page = this->parent_->get_display()->get_active_page();
|
16
|
+
touched &= std::find(this->pages_.begin(), this->pages_.end(), current_page) != this->pages_.end();
|
16
17
|
}
|
17
18
|
if (touched) {
|
18
19
|
this->publish_state(true);
|
@@ -6,6 +6,8 @@
|
|
6
6
|
#include "esphome/core/component.h"
|
7
7
|
#include "esphome/core/helpers.h"
|
8
8
|
|
9
|
+
#include <vector>
|
10
|
+
|
9
11
|
namespace esphome {
|
10
12
|
namespace touchscreen {
|
11
13
|
|
@@ -30,14 +32,14 @@ class TouchscreenBinarySensor : public binary_sensor::BinarySensor,
|
|
30
32
|
int16_t get_width() { return this->x_max_ - this->x_min_; }
|
31
33
|
int16_t get_height() { return this->y_max_ - this->y_min_; }
|
32
34
|
|
33
|
-
void
|
35
|
+
void add_page(display::DisplayPage *page) { this->pages_.push_back(page); }
|
34
36
|
|
35
37
|
void touch(TouchPoint tp) override;
|
36
38
|
void release() override;
|
37
39
|
|
38
40
|
protected:
|
39
41
|
int16_t x_min_, x_max_, y_min_, y_max_;
|
40
|
-
display::DisplayPage
|
42
|
+
std::vector<display::DisplayPage *> pages_{};
|
41
43
|
};
|
42
44
|
|
43
45
|
} // namespace touchscreen
|
@@ -5,8 +5,8 @@
|
|
5
5
|
#include "esphome/core/helpers.h"
|
6
6
|
#include "esphome/core/log.h"
|
7
7
|
|
8
|
-
#
|
9
|
-
#error This HostUartComponent implementation is
|
8
|
+
#if !(defined(__linux__) || defined(__APPLE__))
|
9
|
+
#error This HostUartComponent implementation is not supported on this host OS
|
10
10
|
#endif
|
11
11
|
|
12
12
|
#include <stdio.h>
|
@@ -24,6 +24,9 @@
|
|
24
24
|
namespace {
|
25
25
|
|
26
26
|
speed_t get_baud(int baud) {
|
27
|
+
#ifdef __APPLE__
|
28
|
+
return baud;
|
29
|
+
#else
|
27
30
|
switch (baud) {
|
28
31
|
case 50:
|
29
32
|
return B50;
|
@@ -88,6 +91,7 @@ speed_t get_baud(int baud) {
|
|
88
91
|
default:
|
89
92
|
return B0;
|
90
93
|
}
|
94
|
+
#endif
|
91
95
|
}
|
92
96
|
|
93
97
|
} // namespace
|
@@ -1,10 +1,11 @@
|
|
1
1
|
from esphome import automation
|
2
|
+
import esphome.codegen as cg
|
2
3
|
from esphome.components import mqtt, web_server
|
3
4
|
import esphome.config_validation as cv
|
4
|
-
import esphome.codegen as cg
|
5
5
|
from esphome.const import (
|
6
6
|
CONF_DEVICE_CLASS,
|
7
7
|
CONF_ENTITY_CATEGORY,
|
8
|
+
CONF_FORCE_UPDATE,
|
8
9
|
CONF_ID,
|
9
10
|
CONF_MQTT_ID,
|
10
11
|
CONF_WEB_SERVER_ID,
|
@@ -23,8 +24,12 @@ UpdateEntity = update_ns.class_("UpdateEntity", cg.EntityBase)
|
|
23
24
|
|
24
25
|
UpdateInfo = update_ns.struct("UpdateInfo")
|
25
26
|
|
26
|
-
PerformAction = update_ns.class_(
|
27
|
-
|
27
|
+
PerformAction = update_ns.class_(
|
28
|
+
"PerformAction", automation.Action, cg.Parented.template(UpdateEntity)
|
29
|
+
)
|
30
|
+
IsAvailableCondition = update_ns.class_(
|
31
|
+
"IsAvailableCondition", automation.Condition, cg.Parented.template(UpdateEntity)
|
32
|
+
)
|
28
33
|
|
29
34
|
DEVICE_CLASSES = [
|
30
35
|
DEVICE_CLASS_EMPTY,
|
@@ -92,24 +97,37 @@ async def to_code(config):
|
|
92
97
|
cg.add_global(update_ns.using)
|
93
98
|
|
94
99
|
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
100
|
+
@automation.register_action(
|
101
|
+
"update.perform",
|
102
|
+
PerformAction,
|
103
|
+
automation.maybe_simple_id(
|
104
|
+
{
|
105
|
+
cv.GenerateID(): cv.use_id(UpdateEntity),
|
106
|
+
cv.Optional(CONF_FORCE_UPDATE, default=False): cv.templatable(cv.boolean),
|
107
|
+
}
|
108
|
+
),
|
99
109
|
)
|
100
|
-
|
101
|
-
|
102
|
-
@automation.register_action("update.perform", PerformAction, UPDATE_AUTOMATION_SCHEMA)
|
103
110
|
async def update_perform_action_to_code(config, action_id, template_arg, args):
|
104
|
-
|
105
|
-
|
111
|
+
var = cg.new_Pvariable(action_id, template_arg)
|
112
|
+
await cg.register_parented(var, config[CONF_ID])
|
113
|
+
|
114
|
+
force = await cg.templatable(config[CONF_FORCE_UPDATE], args, cg.bool_)
|
115
|
+
cg.add(var.set_force(force))
|
116
|
+
return var
|
106
117
|
|
107
118
|
|
108
119
|
@automation.register_condition(
|
109
|
-
"update.is_available",
|
120
|
+
"update.is_available",
|
121
|
+
IsAvailableCondition,
|
122
|
+
automation.maybe_simple_id(
|
123
|
+
{
|
124
|
+
cv.GenerateID(): cv.use_id(UpdateEntity),
|
125
|
+
}
|
126
|
+
),
|
110
127
|
)
|
111
128
|
async def update_is_available_condition_to_code(
|
112
129
|
config, condition_id, template_arg, args
|
113
130
|
):
|
114
|
-
|
115
|
-
|
131
|
+
var = cg.new_Pvariable(condition_id, template_arg)
|
132
|
+
await cg.register_parented(var, config[CONF_ID])
|
133
|
+
return var
|
@@ -0,0 +1,23 @@
|
|
1
|
+
#pragma once
|
2
|
+
|
3
|
+
#include "update_entity.h"
|
4
|
+
|
5
|
+
#include "esphome/core/automation.h"
|
6
|
+
|
7
|
+
namespace esphome {
|
8
|
+
namespace update {
|
9
|
+
|
10
|
+
template<typename... Ts> class PerformAction : public Action<Ts...>, public Parented<UpdateEntity> {
|
11
|
+
TEMPLATABLE_VALUE(bool, force)
|
12
|
+
|
13
|
+
public:
|
14
|
+
void play(Ts... x) override { this->parent_->perform(this->force_.value(x...)); }
|
15
|
+
};
|
16
|
+
|
17
|
+
template<typename... Ts> class IsAvailableCondition : public Condition<Ts...>, public Parented<UpdateEntity> {
|
18
|
+
public:
|
19
|
+
bool check(Ts... x) override { return this->parent_->state == UPDATE_STATE_AVAILABLE; }
|
20
|
+
};
|
21
|
+
|
22
|
+
} // namespace update
|
23
|
+
} // namespace esphome
|
@@ -32,7 +32,9 @@ class UpdateEntity : public EntityBase, public EntityBase_DeviceClass {
|
|
32
32
|
|
33
33
|
void publish_state();
|
34
34
|
|
35
|
-
|
35
|
+
void perform() { this->perform(false); }
|
36
|
+
virtual void perform(bool force) = 0;
|
37
|
+
virtual void check() = 0;
|
36
38
|
|
37
39
|
const UpdateInfo &update_info = update_info_;
|
38
40
|
const UpdateState &state = state_;
|
@@ -1,8 +1,8 @@
|
|
1
|
-
import esphome.codegen as cg
|
2
|
-
import esphome.config_validation as cv
|
3
1
|
from esphome import automation
|
4
|
-
from esphome.automation import
|
2
|
+
from esphome.automation import Condition, maybe_simple_id
|
3
|
+
import esphome.codegen as cg
|
5
4
|
from esphome.components import mqtt, web_server
|
5
|
+
import esphome.config_validation as cv
|
6
6
|
from esphome.const import (
|
7
7
|
CONF_DEVICE_CLASS,
|
8
8
|
CONF_ID,
|
@@ -1,18 +1,18 @@
|
|
1
|
-
|
1
|
+
from esphome import automation
|
2
|
+
from esphome.automation import register_action, register_condition
|
2
3
|
import esphome.codegen as cg
|
3
|
-
|
4
|
+
from esphome.components import media_player, microphone, speaker
|
5
|
+
import esphome.config_validation as cv
|
4
6
|
from esphome.const import (
|
5
7
|
CONF_ID,
|
6
|
-
CONF_MICROPHONE,
|
7
|
-
CONF_SPEAKER,
|
8
8
|
CONF_MEDIA_PLAYER,
|
9
|
+
CONF_MICROPHONE,
|
9
10
|
CONF_ON_CLIENT_CONNECTED,
|
10
11
|
CONF_ON_CLIENT_DISCONNECTED,
|
12
|
+
CONF_ON_ERROR,
|
11
13
|
CONF_ON_IDLE,
|
14
|
+
CONF_SPEAKER,
|
12
15
|
)
|
13
|
-
from esphome import automation
|
14
|
-
from esphome.automation import register_action, register_condition
|
15
|
-
from esphome.components import microphone, speaker, media_player
|
16
16
|
|
17
17
|
AUTO_LOAD = ["socket"]
|
18
18
|
DEPENDENCIES = ["api", "microphone"]
|
@@ -20,7 +20,6 @@ DEPENDENCIES = ["api", "microphone"]
|
|
20
20
|
CODEOWNERS = ["@jesserockz"]
|
21
21
|
|
22
22
|
CONF_ON_END = "on_end"
|
23
|
-
CONF_ON_ERROR = "on_error"
|
24
23
|
CONF_ON_INTENT_END = "on_intent_end"
|
25
24
|
CONF_ON_INTENT_START = "on_intent_start"
|
26
25
|
CONF_ON_LISTENING = "on_listening"
|
@@ -1,4 +1,5 @@
|
|
1
1
|
#include "wake_on_lan.h"
|
2
|
+
#ifdef USE_NETWORK
|
2
3
|
#include "esphome/core/log.h"
|
3
4
|
#include "esphome/components/network/ip_address.h"
|
4
5
|
#include "esphome/components/network/util.h"
|
@@ -85,3 +86,4 @@ void WakeOnLanButton::setup() {
|
|
85
86
|
|
86
87
|
} // namespace wake_on_lan
|
87
88
|
} // namespace esphome
|
89
|
+
#endif
|
@@ -1,5 +1,6 @@
|
|
1
1
|
#pragma once
|
2
|
-
|
2
|
+
#include "esphome/core/defines.h"
|
3
|
+
#ifdef USE_NETWORK
|
3
4
|
#include "esphome/components/button/button.h"
|
4
5
|
#include "esphome/core/component.h"
|
5
6
|
#if defined(USE_SOCKET_IMPL_BSD_SOCKETS) || defined(USE_SOCKET_IMPL_LWIP_SOCKETS)
|
@@ -32,3 +33,4 @@ class WakeOnLanButton : public button::Button, public Component {
|
|
32
33
|
|
33
34
|
} // namespace wake_on_lan
|
34
35
|
} // namespace esphome
|
36
|
+
#endif
|
@@ -0,0 +1 @@
|
|
1
|
+
CODEOWNERS = ["@oarcher"]
|
@@ -15,7 +15,6 @@
|
|
15
15
|
#endif
|
16
16
|
|
17
17
|
namespace esphome {
|
18
|
-
namespace http_request {
|
19
18
|
namespace watchdog {
|
20
19
|
|
21
20
|
static const char *const TAG = "http_request.watchdog";
|
@@ -72,5 +71,4 @@ uint32_t WatchdogManager::get_timeout_() {
|
|
72
71
|
}
|
73
72
|
|
74
73
|
} // namespace watchdog
|
75
|
-
} // namespace http_request
|
76
74
|
} // namespace esphome
|
@@ -5,7 +5,6 @@
|
|
5
5
|
#include <cstdint>
|
6
6
|
|
7
7
|
namespace esphome {
|
8
|
-
namespace http_request {
|
9
8
|
namespace watchdog {
|
10
9
|
|
11
10
|
class WatchdogManager {
|
@@ -22,5 +21,4 @@ class WatchdogManager {
|
|
22
21
|
};
|
23
22
|
|
24
23
|
} // namespace watchdog
|
25
|
-
} // namespace http_request
|
26
24
|
} // namespace esphome
|
@@ -480,7 +480,7 @@ void HOT WaveshareEPaperTypeA::display() {
|
|
480
480
|
this->start_data_();
|
481
481
|
switch (this->model_) {
|
482
482
|
case TTGO_EPAPER_2_13_IN_B1: { // block needed because of variable initializations
|
483
|
-
int16_t wb = ((this->
|
483
|
+
int16_t wb = ((this->get_width_controller()) >> 3);
|
484
484
|
for (int i = 0; i < this->get_height_internal(); i++) {
|
485
485
|
for (int j = 0; j < wb; j++) {
|
486
486
|
int idx = j + (this->get_height_internal() - 1 - i) * wb;
|
@@ -766,7 +766,7 @@ void WaveshareEPaper2P7InV2::initialize() {
|
|
766
766
|
// XRAM_START_AND_END_POSITION
|
767
767
|
this->command(0x44);
|
768
768
|
this->data(0x00);
|
769
|
-
this->data(((
|
769
|
+
this->data(((this->get_width_controller() - 1) >> 3) & 0xFF);
|
770
770
|
// YRAM_START_AND_END_POSITION
|
771
771
|
this->command(0x45);
|
772
772
|
this->data(0x00);
|
@@ -928,8 +928,8 @@ void HOT WaveshareEPaper2P7InB::display() {
|
|
928
928
|
|
929
929
|
// TCON_RESOLUTION
|
930
930
|
this->command(0x61);
|
931
|
-
this->data(this->
|
932
|
-
this->data(this->
|
931
|
+
this->data(this->get_width_controller() >> 8);
|
932
|
+
this->data(this->get_width_controller() & 0xff); // 176
|
933
933
|
this->data(this->get_height_internal() >> 8);
|
934
934
|
this->data(this->get_height_internal() & 0xff); // 264
|
935
935
|
|
@@ -994,7 +994,7 @@ void WaveshareEPaper2P7InBV2::initialize() {
|
|
994
994
|
// self.SetWindows(0, 0, self.width-1, self.height-1)
|
995
995
|
// SetWindows(self, Xstart, Ystart, Xend, Yend):
|
996
996
|
|
997
|
-
uint32_t xend = this->
|
997
|
+
uint32_t xend = this->get_width_controller() - 1;
|
998
998
|
uint32_t yend = this->get_height_internal() - 1;
|
999
999
|
this->command(0x44);
|
1000
1000
|
this->data(0x00);
|