From 842cbff0c9ccbce8eeaf33205b6d76e43f284210 Mon Sep 17 00:00:00 2001 From: Jesse Hills <3060199+jesserockz@users.noreply.github.com> Date: Thu, 11 Nov 2021 10:10:06 +1300 Subject: [PATCH 01/34] Bump version to 2021.12.0-dev --- Doxygen | 2 +- _static/version | 2 +- conf.py | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Doxygen b/Doxygen index aad0168cb..aabf3a3f3 100644 --- a/Doxygen +++ b/Doxygen @@ -38,7 +38,7 @@ PROJECT_NAME = "ESPHome" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 2021.11.0-dev +PROJECT_NUMBER = 2021.12.0-dev # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/_static/version b/_static/version index a6eb7bb61..f69ab25f7 100644 --- a/_static/version +++ b/_static/version @@ -1 +1 @@ -2021.11.0-dev +2021.12.0-dev \ No newline at end of file diff --git a/conf.py b/conf.py index 815fcad81..d26a45b71 100644 --- a/conf.py +++ b/conf.py @@ -67,9 +67,9 @@ author = "Otto Winter" # built documents. # # The short X.Y version. -version = "2021.11" +version = "2021.12" # The full version, including alpha/beta/rc tags. -release = "2021.11.0-dev" +release = "2021.12.0-dev" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From feb40084976fe64e22b6d58cf95d571c42a2d07c Mon Sep 17 00:00:00 2001 From: Maurice Makaay Date: Wed, 10 Nov 2021 23:34:21 +0100 Subject: [PATCH 02/34] Add documentation for the UART debugger (#1536) Co-authored-by: Maurice Makaay --- components/uart.rst | 65 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/components/uart.rst b/components/uart.rst index 3c30a1129..beb68c4da 100644 --- a/components/uart.rst +++ b/components/uart.rst @@ -58,6 +58,7 @@ Configuration variables: - **parity** (*Optional*): The parity used on the UART bus. Options: ``NONE``, ``EVEN``, ``ODD``. Defaults to ``NONE``. - **stop_bits** (*Optional*, int): The number of stop bits to send. Options: 1, 2. Defaults to 1. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this UART hub if you need multiple UART hubs. +- **debug** (*Optional*, mapping): Options for debugging communication on the UART hub, see :ref:`uart-debugging`. ESP32 options: @@ -110,6 +111,70 @@ This :ref:`Action ` sends a defined UART signal to the given UART id: my_second_uart data: 'other data' +.. _uart-debugging: + +Debugging +--------- + +If you need insight in the communication that is being sent and/or received over a UART bus, then you can make use +of the debugging feature. + +.. code-block:: yaml + + # Example configuration entry + uart: + baud_rate: 115200 + debug: + direction: BOTH + dummy_receiver: false + after: + bytes: 60 + sequence: + - lambda: UARTDebug::log_hex(direction, bytes, ':'); + +- **direction** (*Optional*, enum): The direction of communication to debug, one of: "RX" (receive, incoming), + "TX" (send, outgoing) or "BOTH". Defaults to "BOTH". +- **dummy_receiver** (*Optional*, boolean): Whether or not to enable the dummy receiver feature. The debugger + will only accumulate bytes that are actually read or sent by a UART device component. This feature is + useful when you want to debug all incoming communication, while no UART device component is configured + for the UART bus (yet). This is especially useful for developers. Normally you'd want to leave this + option disabled. Defaults to false. +- **after** (*Optional*, mapping): The debugger accumulates bytes of communication. This option defines when + to trigger publishing the accumulated bytes. The possible options are: + + - **bytes** (*Optional*, int): Trigger after accumulating the specified number of bytes. Defaults to 256. + - **timeout** (*Optional*, :ref:`config-time`): Trigger after no communication has been seen during the + specified timeout, while one or more bytes have been accumulated. Defaults to 100ms. + - **sequence** (*Optional*, string or list of bytes): Trigger after the specified sequence of bytes is + detected in the communication. + +- **sequence** (*Required*, :ref:`config-action`): Action(s) to perform for publishing debugging data. The + actions can make use of the following variables: + + - **direction**: ``uart::UART_DIRECTION_RX`` or ``uart::UART_DIRECTION_TX`` + - **bytes**: ``std::vector`` containing the accumulated bytes + +**Helper functions for logging** + +Helper functions are provided to make logging of debug data in various formats easy: + +- **UARTDebug::log_hex(direction, bytes, char separator)** Log the bytes as hex values, separated by the provided + separator character. +- **UARTDebug::log_string(direction, bytes)** Log the bytes as string values, escaping unprintable characters. +- **UARTDebug::log_int(direction, bytes, char separator)** Log the bytes as integer values, separated by the provided + separator character. +- **UARTDebug::log_binary(direction, bytes, char separator)** Log the bytes as `` ()`` values, + separated by the provided separator character. + +**Logger buffer size** + +Beware that the ``logger`` component uses a limited buffer size of 512 bytes by default. If the UART +debugger log lines become too long, then you will notice that they end up truncated in the log output. + +In that case, either make sure that the debugger outputs less data per log line (e.g. by setting the +``after.bytes`` option to a lower value) or increase the logger buffer size using the logger +``tx_buffer_size`` option. + See Also -------- From 56862eac260129d7ccfe5c4e695bbfa15d602c3d Mon Sep 17 00:00:00 2001 From: NeoAcheron <12508986+NeoAcheron@users.noreply.github.com> Date: Sat, 13 Nov 2021 15:43:52 +0100 Subject: [PATCH 03/34] pmsx003: add config options for the PMS5003S (#1615) --- components/sensor/pmsx003.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/sensor/pmsx003.rst b/components/sensor/pmsx003.rst index f04b294f2..741362297 100644 --- a/components/sensor/pmsx003.rst +++ b/components/sensor/pmsx003.rst @@ -17,6 +17,7 @@ This platform supports three sensor types, which you need to specify using the ` value: - ``PMSX003`` for generic PMS5003, PMS7003, ...; these sensors support ``pm_1_0``, ``pm_2_5`` and ``pm_10_0`` output. +- ``PMS5003S`` for PMS5003ST. These support ``pm_1_0``, ``pm_2_5`` and ``pm_10_0`` and ``formaldehyde``. - ``PMS5003T`` for PMS5003T. These support ``pm_2_5``, ``temperature`` and ``humidity``. - ``PMS5003ST`` for PMS5003ST. These support ``pm_2_5``, ``temperature``, ``humidity`` and ``formaldehyde``. @@ -68,7 +69,7 @@ Configuration variables: All options from :ref:`Sensor `. - **humidity** (*Optional*): Use the humidity value in % for the ``PMS5003T`` and ``PMS5003ST``. All options from :ref:`Sensor `. -- **formaldehyde** (*Optional*): Use the formaldehyde (HCHO) concentration in µg per cubic meter for the ``PMS5003ST``. +- **formaldehyde** (*Optional*): Use the formaldehyde (HCHO) concentration in µg per cubic meter for the ``PMS5003S`` and ``PMS5003ST``. All options from :ref:`Sensor `. - **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`UART Component ` if you want to use multiple UART buses. From 5a134a12eaaacf54cd5755d30ee5dd0c8e90bfeb Mon Sep 17 00:00:00 2001 From: "Sergey V. DUDANOV" Date: Sat, 13 Nov 2021 18:47:38 +0400 Subject: [PATCH 04/34] Add new climate on_state trigger info (#1614) --- components/climate/index.rst | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/components/climate/index.rst b/components/climate/index.rst index 7c1f3e75b..3a130a4da 100644 --- a/components/climate/index.rst +++ b/components/climate/index.rst @@ -184,6 +184,21 @@ advanced stuff. // etc. see API reference call.perform(); +.. _climate-on_state_trigger: + +``climate.on_state`` Trigger +****************************************************** + +This trigger is activated each time the state of the climate device is updated +(for example, if the current temperature measurement or the mode set by the users changes). + +.. code-block:: yaml + + climate: + - platform: midea # or any other platform + # ... + on_state: + - logger.log: "State updated!" See Also -------- From efc3ee797bc1f0e072c97e1d0f0d95167cd82b5f Mon Sep 17 00:00:00 2001 From: Clifford Roche Date: Sun, 14 Nov 2021 10:13:04 -0500 Subject: [PATCH 05/34] Add support for greeyac and I-Feel (#1607) --- components/climate/ir_climate.rst | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/components/climate/ir_climate.rst b/components/climate/ir_climate.rst index 4152dfa6e..62db46695 100755 --- a/components/climate/ir_climate.rst +++ b/components/climate/ir_climate.rst @@ -96,11 +96,23 @@ This platform utilises the library's generic one-size-fits-all API, which might Additional configuration must be specified for this platform: -- **protocol** (**Required**, string): Choose one of Arduino-HeatpumpIR's supported protcols: ``aux``, ``ballu``, ``carrier_mca``, ``carrier_nqv``, ``daikin_arc417``, ``daikin_arc480``, ``daikin``, ``fuego``, ``fujitsu_awyz``, ``gree``, ``greeya``, ``greeyan``, ``hisense_aud``, ``hitachi``, ``hyundai``, ``ivt``, ``midea``, ``mitsubishi_fa``, ``mitsubishi_fd``, ``mitsubishi_fe``, ``mitsubishi_heavy_fdtc``, ``mitsubishi_heavy_zj``, ``mitsubishi_heavy_zm``, ``mitsubishi_heavy_zmp``, ``mitsubishi_heavy_kj``, ``mitsubishi_msc``, ``mitsubishi_msy``, ``mitsubishi_sez``, ``panasonic_ckp``, ``panasonic_dke``, ``panasonic_jke``, ``panasonic_lke``, ``panasonic_nke``, ``samsung_aqv``, ``samsung_fjm``, ``sharp``, ``toshiba_daiseikai``, ``toshiba`` +- **protocol** (**Required**, string): Choose one of Arduino-HeatpumpIR's supported protcols: ``aux``, ``ballu``, ``carrier_mca``, ``carrier_nqv``, ``daikin_arc417``, ``daikin_arc480``, ``daikin``, ``fuego``, ``fujitsu_awyz``, ``gree``, ``greeya``, ``greeyac``, ``greeyan``, ``hisense_aud``, ``hitachi``, ``hyundai``, ``ivt``, ``midea``, ``mitsubishi_fa``, ``mitsubishi_fd``, ``mitsubishi_fe``, ``mitsubishi_heavy_fdtc``, ``mitsubishi_heavy_zj``, ``mitsubishi_heavy_zm``, ``mitsubishi_heavy_zmp``, ``mitsubishi_heavy_kj``, ``mitsubishi_msc``, ``mitsubishi_msy``, ``mitsubishi_sez``, ``panasonic_ckp``, ``panasonic_dke``, ``panasonic_jke``, ``panasonic_lke``, ``panasonic_nke``, ``samsung_aqv``, ``samsung_fjm``, ``sharp``, ``toshiba_daiseikai``, ``toshiba`` - **horizontal_default** (**Required**, string): What to default to when the AC unit's horizontal direction is *not* set to swing. Options are: ``left``, ``mleft``, ``middle``, ``mright``, ``right``, ``auto`` - **vertical_default** (**Required**, string): What to default to when the AC unit's vertical direction is *not* set to swing. Options are: ``down``, ``mdown``, ``middle``, ``mup``, ``up``, ``auto`` - **max_temperature** (**Required**, float): The maximum temperature that the AC unit supports being set to. - **min_temperature** (**Required**, float): The minimum temperature that the AC unit supports being set to. +- **sensor** (*Optional*, :ref:`config-id`): The sensor that is used to measure the ambient temperature. + +.. note:: + + - The ``greeyac`` protocol supports a feature Gree calls "I-Feel". The handheld remote control + has a built-in temperature sensor and it will periodically transmit the temperature from this sensor to the + AC unit. If a ``sensor`` is provided in the configuration with this model, the sensor's temperature will be + transmitted to the ``greeyac`` device in the same manner as the original remote controller. How often the + temperature is transmitted is determined by the ``update_interval`` assigned to the ``sensor``. Note that + ``update_interval`` must be less than 10 minutes or the ``greeyac`` device will revert to using its own + internal temperature sensor; a value of 2 minutes seems to work well. See :doc:`/components/sensor/index` + for more information. .. _ir-receiver_id: From 22ada42896c3f0bdef90277a3d38eacfc861713f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20Bia=C5=82ek?= Date: Mon, 15 Nov 2021 15:49:51 +0100 Subject: [PATCH 06/34] Document mqtt.discovery_unique_id_generator option (#1610) --- components/mqtt.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/components/mqtt.rst b/components/mqtt.rst index 03df201c5..18da4c639 100644 --- a/components/mqtt.rst +++ b/components/mqtt.rst @@ -43,6 +43,10 @@ Configuration variables: - **discovery_prefix** (*Optional*, string): The prefix to use for Home Assistant’s MQTT discovery. Should not contain trailing slash. Defaults to ``homeassistant``. +- **discovery_unique_id_generator** (*Optional*, string): The unique_id generator + to use. Can be one of ``legacy`` or ``mac``. Defaults to ``legacy``, which + generates unique_id in format ``ESP``. + ``mac`` generator uses format ``--``. - **use_abbreviations** (*Optional*, boolean): Whether to use `Abbreviations `__ in discovery messages. Defaults to ``true``. From 6053f490b5d52b78aa1757c6cf1d864dd9c949a3 Mon Sep 17 00:00:00 2001 From: Otto Winter Date: Tue, 16 Nov 2021 03:19:33 +0100 Subject: [PATCH 07/34] Update svg2png and seo.py (#1380) Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com> --- components/api.rst | 2 +- components/binary_sensor/ble_presence.rst | 2 +- components/binary_sensor/esp32_touch.rst | 2 +- components/binary_sensor/gpio.rst | 2 +- components/binary_sensor/homeassistant.rst | 2 +- components/binary_sensor/index.rst | 2 +- components/binary_sensor/status.rst | 2 +- components/binary_sensor/template.rst | 2 +- components/canbus.rst | 2 +- components/captive_portal.rst | 2 +- components/climate/bang_bang.rst | 2 +- components/climate/index.rst | 2 +- components/climate/ir_climate.rst | 2 +- components/climate/midea.rst | 2 +- components/climate/pid.rst | 2 +- components/climate/thermostat.rst | 2 +- components/climate/tuya.rst | 2 +- components/cover/am43.rst | 2 +- components/cover/current_based.rst | 66 ++++++++---------- components/cover/endstop.rst | 2 +- components/cover/index.rst | 2 +- components/cover/template.rst | 2 +- components/cover/time_based.rst | 2 +- components/debug.rst | 2 +- components/deep_sleep.rst | 2 +- components/demo.rst | 2 +- components/dfplayer.rst | 2 +- components/display/ili9341.rst | 2 +- components/display/index.rst | 2 +- components/display/st7735.rst | 2 +- components/display/st7789v.rst | 2 +- components/esp32.rst | 8 +-- components/esp32_ble_beacon.rst | 2 +- components/esp32_ble_tracker.rst | 2 +- components/esp32_camera.rst | 2 +- components/esp32_camera_web_server.rst | 2 +- components/esp8266.rst | 6 +- components/esphome.rst | 2 +- components/ethernet.rst | 2 +- components/fan/binary.rst | 2 +- components/fan/hbridge.rst | 2 +- components/fan/index.rst | 2 +- components/fan/speed.rst | 2 +- components/fingerprint_grow.rst | 2 +- components/gps.rst | 2 +- components/http_request.rst | 2 +- components/i2c.rst | 2 +- components/light/binary.rst | 2 +- components/light/color_temperature.rst | 2 +- components/light/cwww.rst | 2 +- components/light/fastled.rst | 2 +- components/light/hbridge.rst | 2 +- components/light/index.rst | 2 +- components/light/monochromatic.rst | 2 +- components/light/neopixelbus.rst | 2 +- components/light/partition.rst | 2 +- components/light/status_led.rst | 10 +-- components/light/tuya.rst | 2 +- components/logger.rst | 2 +- components/mcp230xx.rst | 2 +- components/mcp23Sxx.rst | 2 +- components/number/index.rst | 2 +- components/number/modbus_controller.rst | 1 - components/number/template.rst | 2 +- components/ota.rst | 2 +- components/output/gpio.rst | 2 +- components/output/index.rst | 2 +- components/output/mcp4725.rst | 2 +- components/output/modbus_controller.rst | 1 - components/output/my9231.rst | 2 +- components/output/sm16716.rst | 2 +- components/output/template.rst | 2 +- components/output/tlc5947.rst | 2 +- components/power_supply.rst | 2 +- components/prometheus.rst | 2 +- components/remote_receiver.rst | 2 +- components/remote_transmitter.rst | 2 +- components/rtttl.rst | 2 +- components/select/index.rst | 2 +- components/select/template.rst | 2 +- components/sensor/adc.rst | 2 +- components/sensor/ade7953.rst | 2 +- components/sensor/am43.rst | 2 +- components/sensor/as3935.rst | 2 +- components/sensor/atm90e32.rst | 2 +- components/sensor/ble_rssi.rst | 2 +- components/sensor/cse7761.rst | 2 +- components/sensor/cse7766.rst | 2 +- components/sensor/custom.rst | 2 +- components/sensor/dsmr.rst | 2 +- components/sensor/duty_cycle.rst | 2 +- components/sensor/esp32_hall.rst | 2 +- components/sensor/havells_solar.rst | 2 +- components/sensor/hlw8012.rst | 2 +- components/sensor/hm3301.rst | 2 +- components/sensor/homeassistant.rst | 2 +- components/sensor/hx711.rst | 2 +- components/sensor/index.rst | 2 +- components/sensor/integration.rst | 2 +- components/sensor/ltr390.rst | 2 +- components/sensor/max31856.rst | 2 +- components/sensor/mcp3008.rst | 2 +- components/sensor/pmsa003i.rst | 2 +- components/sensor/pmsx003.rst | 2 +- components/sensor/pulse_counter.rst | 2 +- components/sensor/pulse_meter.rst | 2 +- components/sensor/pulse_width.rst | 2 +- components/sensor/pzem004t.rst | 10 +-- components/sensor/pzemac.rst | 2 +- components/sensor/pzemdc.rst | 2 +- components/sensor/resistance.rst | 2 +- components/sensor/sdm_meter.rst | 2 +- components/sensor/sdp3x.rst | 4 +- components/sensor/selec_meter.rst | 2 +- components/sensor/sgp30.rst | 2 +- components/sensor/sht4x.rst | 2 +- components/sensor/sm300d2.rst | 2 +- components/sensor/t6615.rst | 2 +- components/sensor/template.rst | 2 +- components/sensor/total_daily_energy.rst | 2 +- components/sensor/tx20.rst | 2 +- components/sensor/uptime.rst | 2 +- components/sensor/wifi_signal.rst | 2 +- components/servo.rst | 2 +- components/spi.rst | 2 +- components/status_led.rst | 2 +- components/stepper/index.rst | 2 +- components/sun.rst | 2 +- components/switch/gpio.rst | 2 +- components/switch/index.rst | 2 +- components/switch/modbus_controller.rst | 1 - components/switch/output.rst | 2 +- components/switch/restart.rst | 2 +- components/switch/safe_mode.rst | 2 +- components/switch/shutdown.rst | 2 +- components/switch/template.rst | 2 +- components/switch/uart.rst | 2 +- components/text_sensor/ble_scanner.rst | 2 +- components/text_sensor/homeassistant.rst | 2 +- components/text_sensor/index.rst | 2 +- components/text_sensor/modbus_controller.rst | 1 - components/text_sensor/template.rst | 2 +- components/text_sensor/version.rst | 2 +- components/text_sensor/wifi_info.rst | 2 +- components/time.rst | 2 +- components/uart.rst | 2 +- components/web_server.rst | 2 +- components/wifi.rst | 2 +- cookbook/arduino_port_extender.rst | 2 +- cookbook/display_time_temp_oled.rst | 1 - cookbook/endstop-cover.rst | 2 +- cookbook/garage-door.rst | 2 +- cookbook/infostrip.rst | 2 +- cookbook/leak-detector-m5stickC.rst | 1 - cookbook/sonoff-basic-light-switch.rst | 1 - cookbook/sonoff-dual-light-switch.rst | 1 - cookbook/sonoff-fishpond-pump.rst | 2 +- cookbook/sonoff-light-switch.rst | 1 - cookbook/teckin_sb50.rst | 2 +- cookbook/tracer-an.rst | 12 ++-- cookbook/uart_text_sensor.rst | 2 +- devices/esp32.rst | 2 +- devices/esp8266.rst | 2 +- devices/sonoff.rst | 2 +- guides/automations.rst | 2 +- guides/configuration-types.rst | 2 +- guides/contributing.rst | 2 +- guides/diy.rst | 2 +- guides/faq.rst | 2 +- guides/getting_started_command_line.rst | 2 +- guides/getting_started_hassio.rst | 2 +- guides/migrate_espeasy.rst | 2 +- guides/migrate_espurna.rst | 2 +- guides/migrate_sonoff_tasmota.rst | 2 +- images/pmsa003i-full.jpg | Bin 0 -> 112565 bytes index.rst | 2 +- seo.py | 9 +++ svg2png.py | 18 ++--- svg2png/canbus.png | Bin 0 -> 25130 bytes svg2png/dsmr.png | Bin 0 -> 20168 bytes svg2png/external_components.png | Bin 0 -> 18302 bytes svg2png/fingerprint.png | Bin 0 -> 61324 bytes svg2png/improv.png | Bin 0 -> 18762 bytes .../made-for-esphome-black-on-transparent.png | Bin 0 -> 29662 bytes svg2png/made-for-esphome-black-on-white.png | Bin 0 -> 29945 bytes svg2png/made-for-esphome-white-on-black.png | Bin 0 -> 27753 bytes .../made-for-esphome-white-on-transparent.png | Bin 0 -> 1514 bytes svg2png/midea.png | Bin 0 -> 27704 bytes svg2png/restart-alert.png | Bin 0 -> 25141 bytes svg2png/sm2135.png | Bin 0 -> 19336 bytes web-api/index.rst | 2 +- 191 files changed, 231 insertions(+), 241 deletions(-) create mode 100644 images/pmsa003i-full.jpg create mode 100644 svg2png/canbus.png create mode 100644 svg2png/dsmr.png create mode 100644 svg2png/external_components.png create mode 100644 svg2png/fingerprint.png create mode 100644 svg2png/improv.png create mode 100644 svg2png/made-for-esphome-black-on-transparent.png create mode 100644 svg2png/made-for-esphome-black-on-white.png create mode 100644 svg2png/made-for-esphome-white-on-black.png create mode 100644 svg2png/made-for-esphome-white-on-transparent.png create mode 100644 svg2png/midea.png create mode 100644 svg2png/restart-alert.png create mode 100644 svg2png/sm2135.png diff --git a/components/api.rst b/components/api.rst index 50bec505f..474b06fad 100644 --- a/components/api.rst +++ b/components/api.rst @@ -3,7 +3,7 @@ Native API Component .. seo:: :description: Instructions for setting up the native ESPHome API for communication with Home Assistant. - :image: server-network.png + :image: server-network.svg :keywords: Native API, ESPHome, Home Assistant The ESPHome native API is used to communicate with clients directly, with a highly-optimized diff --git a/components/binary_sensor/ble_presence.rst b/components/binary_sensor/ble_presence.rst index 93fe5393f..ec531b8dd 100644 --- a/components/binary_sensor/ble_presence.rst +++ b/components/binary_sensor/ble_presence.rst @@ -3,7 +3,7 @@ ESP32 Bluetooth Low Energy Device .. seo:: :description: Instructions for setting up BLE binary sensors for the ESP32. - :image: bluetooth.png + :image: bluetooth.svg The ``ble_presence`` binary sensor platform lets you track the presence of a Bluetooth Low Energy device. diff --git a/components/binary_sensor/esp32_touch.rst b/components/binary_sensor/esp32_touch.rst index 5f137ba40..30b301d9b 100644 --- a/components/binary_sensor/esp32_touch.rst +++ b/components/binary_sensor/esp32_touch.rst @@ -3,7 +3,7 @@ ESP32 Touch Pad .. seo:: :description: Instructions for setting up the touch pad on the ESP32. - :image: touch.png + :image: touch.svg .. _esp32-touch-component: diff --git a/components/binary_sensor/gpio.rst b/components/binary_sensor/gpio.rst index 7c869459f..96bbca3be 100644 --- a/components/binary_sensor/gpio.rst +++ b/components/binary_sensor/gpio.rst @@ -3,7 +3,7 @@ GPIO Binary Sensor .. seo:: :description: Instructions for setting up GPIO binary sensors with ESPHome. - :image: pin.png + :image: pin.svg The GPIO Binary Sensor platform allows you to use any input pin on your device as a binary sensor. diff --git a/components/binary_sensor/homeassistant.rst b/components/binary_sensor/homeassistant.rst index db99d7637..f98924abd 100644 --- a/components/binary_sensor/homeassistant.rst +++ b/components/binary_sensor/homeassistant.rst @@ -3,7 +3,7 @@ Home Assistant Binary Sensor .. seo:: :description: Instructions for setting up Home Assistant binary sensors with ESPHome that import states from your Home Assistant instance. - :image: home-assistant.png + :image: home-assistant.svg The ``homeassistant`` binary sensor platform allows you to create binary sensors that **import** states from your Home Assistant instance using the :doc:`native API `. diff --git a/components/binary_sensor/index.rst b/components/binary_sensor/index.rst index 30a6cec8b..133c1be10 100644 --- a/components/binary_sensor/index.rst +++ b/components/binary_sensor/index.rst @@ -3,7 +3,7 @@ Binary Sensor Component .. seo:: :description: Information about the base representation of all binary sensors. - :image: folder-open.png + :image: folder-open.svg With ESPHome you can use different types of binary sensors. They will automatically appear in the Home Assistant front-end and have several diff --git a/components/binary_sensor/status.rst b/components/binary_sensor/status.rst index 9a873e58e..cdaac910a 100644 --- a/components/binary_sensor/status.rst +++ b/components/binary_sensor/status.rst @@ -3,7 +3,7 @@ Status Binary Sensor .. seo:: :description: Instructions for setting up MQTT status binary sensors. - :image: server-network.png + :image: server-network.svg The Status Binary Sensor exposes the node state (if it’s connected to via MQTT/native API) for Home Assistant. diff --git a/components/binary_sensor/template.rst b/components/binary_sensor/template.rst index f83745c7b..55e62fd5f 100644 --- a/components/binary_sensor/template.rst +++ b/components/binary_sensor/template.rst @@ -3,7 +3,7 @@ Template Binary Sensor .. seo:: :description: Instructions for setting up template binary sensors. - :image: description.png + :image: description.svg The ``template`` binary sensor platform allows you to define any :ref:`lambda template ` and construct a binary sensor out if it. diff --git a/components/canbus.rst b/components/canbus.rst index 2a32675cd..d53d6ffeb 100644 --- a/components/canbus.rst +++ b/components/canbus.rst @@ -5,7 +5,7 @@ CAN bus .. seo:: :description: Instructions for setting up an CAN bus in ESPHome - :image: canbus.png + :image: canbus.svg :keywords: CAN Controller Area Network (CAN bus) is a serial bus protocol to connect individual systems and sensors diff --git a/components/captive_portal.rst b/components/captive_portal.rst index cefd84933..f41324a96 100644 --- a/components/captive_portal.rst +++ b/components/captive_portal.rst @@ -3,7 +3,7 @@ Captive Portal .. seo:: :description: Instructions for setting up the Captive Portal fallback mechanism in ESPHome. - :image: wifi-strength-alert-outline.png + :image: wifi-strength-alert-outline.svg The captive portal component in ESPHome is a fallback mechanism for when connecting to the configured :doc:`WiFi ` fails. diff --git a/components/climate/bang_bang.rst b/components/climate/bang_bang.rst index 91555e84b..cbe696c9f 100644 --- a/components/climate/bang_bang.rst +++ b/components/climate/bang_bang.rst @@ -3,7 +3,7 @@ Bang Bang Climate Controller .. seo:: :description: Instructions for setting up Bang Bang climate controllers with ESPHome. - :image: air-conditioner.png + :image: air-conditioner.svg The ``bang_bang`` climate platform allows you to regulate a value with a `bang-bang controller `__ (also called hysteresis controller). diff --git a/components/climate/index.rst b/components/climate/index.rst index 3a130a4da..3551fcf64 100644 --- a/components/climate/index.rst +++ b/components/climate/index.rst @@ -3,7 +3,7 @@ Climate Component .. seo:: :description: Information about the base representation of all climate devices. - :image: folder-open.png + :image: folder-open.svg ESPHome has support for climate devices. Climate devices can represent different types of hardware, but the defining factor is that climate devices have a settable target temperature diff --git a/components/climate/ir_climate.rst b/components/climate/ir_climate.rst index 62db46695..6d4f05d01 100755 --- a/components/climate/ir_climate.rst +++ b/components/climate/ir_climate.rst @@ -3,7 +3,7 @@ IR Remote Climate .. seo:: :description: Controls a variety of compatible Climate devices via IR - :image: air-conditioner-ir.png + :image: air-conditioner-ir.svg This climate component allows you to control compatible AC units by sending an infrared (IR) control signal, just as the unit's handheld remote controller would. diff --git a/components/climate/midea.rst b/components/climate/midea.rst index 33093243e..8525e0c50 100644 --- a/components/climate/midea.rst +++ b/components/climate/midea.rst @@ -3,7 +3,7 @@ Midea Air Conditioner .. seo:: :description: Instructions for setting up a Midea climate device - :image: air-conditioner.png + :image: air-conditioner.svg The ``midea`` component creates a Midea air conditioner climate device. diff --git a/components/climate/pid.rst b/components/climate/pid.rst index 23f57295d..a20de5579 100644 --- a/components/climate/pid.rst +++ b/components/climate/pid.rst @@ -3,7 +3,7 @@ PID Climate .. seo:: :description: Instructions for setting up PID climate controllers with ESPHome. - :image: function.png + :image: function.svg The ``pid`` climate platform allows you to regulate a value with a `PID controller `__. diff --git a/components/climate/thermostat.rst b/components/climate/thermostat.rst index 239ab383c..27a8a1102 100644 --- a/components/climate/thermostat.rst +++ b/components/climate/thermostat.rst @@ -3,7 +3,7 @@ Thermostat Climate Controller .. seo:: :description: Instructions for setting up Thermostat climate controllers with ESPHome. - :image: air-conditioner.png + :image: air-conditioner.svg The ``thermostat`` climate platform allows you to control a climate control system in much the same manner as a physical thermostat. Its operation is similar to the :doc:`bang-bang ` controller; a sensor measures a value diff --git a/components/climate/tuya.rst b/components/climate/tuya.rst index 6a2843dc6..cbc00eba7 100644 --- a/components/climate/tuya.rst +++ b/components/climate/tuya.rst @@ -3,7 +3,7 @@ Tuya Climate .. seo:: :description: Instructions for setting up a Tuya climate device. - :image: air-conditioner.png + :image: air-conditioner.svg The ``tuya`` climate platform creates a climate device from a tuya component. diff --git a/components/cover/am43.rst b/components/cover/am43.rst index c096fb221..c1f05f505 100644 --- a/components/cover/am43.rst +++ b/components/cover/am43.rst @@ -3,7 +3,7 @@ AM43 Cover .. seo:: :description: Setting up AM43/BLE covers in ESPHome. - :image: am43.png + :image: am43.jpg The ``am43`` cover platform allows you to control an AM43 based BLE cover motor. These devices are sold under various brands, such diff --git a/components/cover/current_based.rst b/components/cover/current_based.rst index ee4581dc1..dd6d09c97 100644 --- a/components/cover/current_based.rst +++ b/components/cover/current_based.rst @@ -3,14 +3,14 @@ Current Based Cover .. seo:: :description: Instructions for setting up current-based covers in ESPHome. - :image: window-open.jpg + :image: window-open.svg The ``current_based`` cover platform allows you to create covers with position control by using current -sensors to detect the fully-open and fully-closed states. This is pretty useful when using motors with -integrated mechanical endstops. During cover operation, the component monitors the current consumption -to detect when the motor has stopped. +sensors to detect the fully-open and fully-closed states. This is pretty useful when using motors with +integrated mechanical endstops. During cover operation, the component monitors the current consumption +to detect when the motor has stopped. -When fully open or close is requested, the corresponding relay will stay on until the current the motor is +When fully open or close is requested, the corresponding relay will stay on until the current the motor is consuming goes below a certain amount. The amount of current needs to be specified in the configuration. Open and close durations can be specified to allow ESPHome to approximate the current position of the cover. @@ -19,14 +19,14 @@ Open and close durations can be specified to allow ESPHome to approximate the cu :align: center :width: 75.0% -This type of cover also provides safety features like current-based obstacle detection with automatic configurable -rollback as well as relay malfunction detection: operation cancels if there's a current flowing in the opposite -operation circuit (typically caused by welded relays). +This type of cover also provides safety features like current-based obstacle detection with automatic configurable +rollback as well as relay malfunction detection: operation cancels if there's a current flowing in the opposite +operation circuit (typically caused by welded relays). .. warning:: - Depending on the cover and motor type, obstacles can physically damage the cover before being detectable. - Verify your setup to ensure the current consumption will increase enough to be detectable before causing + Depending on the cover and motor type, obstacles can physically damage the cover before being detectable. + Verify your setup to ensure the current consumption will increase enough to be detectable before causing any physical damage. Use it at your own risk. .. code-block:: yaml @@ -56,7 +56,7 @@ operation circuit (typically caused by welded relays). obstacle_rollback: 30% start_sensing_delay: 0.8s - + Configuration variables: @@ -68,32 +68,32 @@ Configuration variables: be performed when the remote requests the cover to be opened. - **open_duration** (**Required**, :ref:`config-time`): The amount of time it takes the cover to open up from the fully-closed state. -- **open_moving_current_threshold** (**Required**, float): The amount of current in Amps the motor - should drain to consider the cover is opening. -- **open_obstacle_current_threshold** (**Required**, float): The amount of current in Amps the motor +- **open_moving_current_threshold** (**Required**, float): The amount of current in Amps the motor + should drain to consider the cover is opening. +- **open_obstacle_current_threshold** (**Required**, float): The amount of current in Amps the motor should drain to consider the cover is blocked during opening. - **close_sensor** (**Required**, :ref:`config-id`): The close current sensor. - **close_action** (*Optional*, :ref:`Action `): The action that should be performed when the remote requests the cover to be closed. - **close_duration** (**Required**, :ref:`config-time`): The amount of time it takes the cover to close from the fully-open state. -- **close_moving_current_threshold** (**Required**, float): The amount of current in Amps the motor +- **close_moving_current_threshold** (**Required**, float): The amount of current in Amps the motor should drain to consider the cover is closing. -- **close_obstacle_current_threshold** (**Required**, float): The amount of current in Amps the motor +- **close_obstacle_current_threshold** (**Required**, float): The amount of current in Amps the motor should drain to consider the cover is blocked during closing. - **stop_action** (**Required**, :ref:`Action `): The action that should be performed to stop the cover. - **max_duration** (*Optional*, :ref:`config-time`): The maximum duration the cover should be opening or closing. Useful for protecting from dysfunctional motor integrated endstops. -- **start_sensing_delay** (*Optional*, :ref:`config-time`): The amount of time the current sensing will be - disabled when the movement starts. Motors can take some time before reaching their average consumption. - Low values can cause an immediate stop because of the first current reading happening in the current-rising period. +- **start_sensing_delay** (*Optional*, :ref:`config-time`): The amount of time the current sensing will be + disabled when the movement starts. Motors can take some time before reaching their average consumption. + Low values can cause an immediate stop because of the first current reading happening in the current-rising period. Defaults to ``500ms``. -- **obstacle_rollback** (*Optional*, percentage): The percentage of rollback the cover will perform in case of +- **obstacle_rollback** (*Optional*, percentage): The percentage of rollback the cover will perform in case of obstacle detection. Defaults to ``10%``. - **malfunction_detection** (*Optional*, boolean): Enable to detect malfunction detection (Tipically welded realys). Defaults to ``True``. - **malfunction_action** (*Optional*, :ref:`Action `): The action that should - be performed when relay malfunction is detected. Malfunction may require device servicing. You can use this action + be performed when relay malfunction is detected. Malfunction may require device servicing. You can use this action to notify other systems about this situation - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. - All other options from :ref:`Cover `. @@ -101,25 +101,21 @@ Configuration variables: Use with Shelly 2.5 ------------------- -.. seo:: - :description: Instructions for setting up current-based covers in ESPHome using a Shelly 2.5. - :image: shelly2.5.png - The Shelly 2.5 is the perfect hardware for this platform. It features two outputs with current monitoring -(thanks to an embedded :doc:`ADE7953 `) in a very small form factor (39mm x 36mm x 17 mm). +(thanks to an embedded :doc:`ADE7953 `) in a very small form factor (39mm x 36mm x 17 mm). It also features an :doc:`NTC temperature sensor `. .. figure:: images/shelly2.5.png :align: center :width: 30.0% -These devices typically run hot (~55Cº at 20ºC room temperature). Long-term heavy loads (near to its rated limit) can overheat the device. -It is strongly recommended to monitor the device temperature using the NTC temperature sensor, shutting down the device if it exceeds 90ºC. +These devices typically run hot (~55Cº at 20ºC room temperature). Long-term heavy loads (near to its rated limit) can overheat the device. +It is strongly recommended to monitor the device temperature using the NTC temperature sensor, shutting down the device if it exceeds 90ºC. This safety feature is also present in the original firmware. .. warning:: - The ADE7953 IRQ line is connected to the GPIO16. The ``irq_pin`` parameter for the :doc:`ADE7953 ` MUST be + The ADE7953 IRQ line is connected to the GPIO16. The ``irq_pin`` parameter for the :doc:`ADE7953 ` MUST be set to GPIO16 to prevent device overheat (>70ºC idling). Configuration example: @@ -135,7 +131,7 @@ Configuration example: i2c: sda: GPIO12 scl: GPIO14 - + sensor: - platform: ade7953 irq_pin: GPIO16 @@ -153,7 +149,7 @@ Configuration example: id: close_current internal: true update_interval: 0.5s - + # NTC Temperature - platform: ntc sensor: temp_resistance_reading @@ -164,7 +160,7 @@ Configuration example: b_constant: 3350 reference_resistance: 10kOhm reference_temperature: 298.15K - on_value_range: + on_value_range: above: 90 then: # Security shutdown by overheating - switch.turn_on: _shutdown @@ -182,7 +178,7 @@ Configuration example: internal: true binary_sensor: - - platform: gpio + - platform: gpio pin: number: GPIO13 name: Shelly 2.5 Open Button @@ -243,8 +239,8 @@ Configuration example: malfunction_detection: true malfunction_action: then: - - logger.log: "Malfunction detected. Relay welded." - + - logger.log: "Malfunction detected. Relay welded." + status_led: diff --git a/components/cover/endstop.rst b/components/cover/endstop.rst index 9f7e6c502..1637f8d72 100644 --- a/components/cover/endstop.rst +++ b/components/cover/endstop.rst @@ -3,7 +3,7 @@ Endstop Cover .. seo:: :description: Instructions for setting up time-based covers in ESPHome. - :image: electric-switch.png + :image: electric-switch.svg The ``endstop`` cover platform allows you to create covers with position control that have endstops at both ends of the cover to detect the fully-open and fully-closed states. diff --git a/components/cover/index.rst b/components/cover/index.rst index 33d5471b4..cc418a643 100644 --- a/components/cover/index.rst +++ b/components/cover/index.rst @@ -3,7 +3,7 @@ Cover Component .. seo:: :description: Instructions for setting up base covers in ESPHome. - :image: folder-opn.png + :image: folder-open.svg The ``cover`` component is a generic representation of covers in ESPHome. A cover can (currently) either be *closed* or *open* and supports three types of diff --git a/components/cover/template.rst b/components/cover/template.rst index face67eea..e93b54c61 100644 --- a/components/cover/template.rst +++ b/components/cover/template.rst @@ -3,7 +3,7 @@ Template Cover .. seo:: :description: Instructions for setting up template covers in ESPHome. - :image: description.png + :image: description.svg The ``template`` cover platform allows you to create simple covers out of just a few actions and a value lambda. Once defined, it will automatically appear in Home Assistant diff --git a/components/cover/time_based.rst b/components/cover/time_based.rst index dcbfa07ba..a2da02d76 100644 --- a/components/cover/time_based.rst +++ b/components/cover/time_based.rst @@ -3,7 +3,7 @@ Time-Based Cover .. seo:: :description: Instructions for setting up time-based covers in ESPHome. - :image: timer.png + :image: timer.svg The ``time_based`` cover platform allows you to create covers with position control that do not have any position feedback. The state of the cover is thus always an assumed one, the current diff --git a/components/debug.rst b/components/debug.rst index 182326a03..c632ff41a 100644 --- a/components/debug.rst +++ b/components/debug.rst @@ -3,7 +3,7 @@ Debug Component .. seo:: :description: Instructions for setting up the debug component in ESPHome - :image: bug-report.png + :image: bug-report.svg The ``debug`` component can be used to debug problems with ESPHome. At startup, it prints a bunch of useful information like reset reason, free heap size, ESPHome version and so on. diff --git a/components/deep_sleep.rst b/components/deep_sleep.rst index 7f886e296..97e152605 100644 --- a/components/deep_sleep.rst +++ b/components/deep_sleep.rst @@ -5,7 +5,7 @@ Deep Sleep Component .. seo:: :description: Instructions for setting up the deep sleep support for minimizing power consumption on ESPs. - :image: hotel.png + :image: hotel.svg The ``deep_sleep`` component can be used to automatically enter a deep sleep mode on the ESP8266/ESP32 after a certain amount of time. This is especially useful with nodes that operate diff --git a/components/demo.rst b/components/demo.rst index 8fe294d11..faccce99f 100644 --- a/components/demo.rst +++ b/components/demo.rst @@ -3,7 +3,7 @@ Demo Integration .. seo:: :description: Instructions for setting up the demo integration in ESPHome - :image: description.png + :image: description.svg The ``demo`` integration can be used for testing to generate sample instances of many different integrations (sensors, lights, ...) diff --git a/components/dfplayer.rst b/components/dfplayer.rst index 830829faa..30a5bdb2f 100644 --- a/components/dfplayer.rst +++ b/components/dfplayer.rst @@ -3,7 +3,7 @@ DF-Player mini .. seo:: :description: Instructions for setting up DF Player Mini integration in ESPHome. - :image: crosshair-gps.png + :image: dfplayer.svg The ``dfplayer`` (`datasheet `__), component allows you to play sound and music stored in an SD card or USB flash drive. diff --git a/components/display/ili9341.rst b/components/display/ili9341.rst index e48bf31f4..04229e353 100644 --- a/components/display/ili9341.rst +++ b/components/display/ili9341.rst @@ -3,7 +3,7 @@ ILI9341 TFT LCD .. seo:: :description: Instructions for setting up ILI9341 TFT LCD display drivers. - :image: ili9341-full.jpg + :image: ili9341.jpg .. _ili9341: diff --git a/components/display/index.rst b/components/display/index.rst index b312ba18c..8ee67ce04 100644 --- a/components/display/index.rst +++ b/components/display/index.rst @@ -3,7 +3,7 @@ Display Component .. seo:: :description: Instructions for setting up the display integration. - :image: folder-open.png + :image: folder-open.svg The ``display`` component houses ESPHome's powerful rendering and display engine. Fundamentally, there are these types of displays: diff --git a/components/display/st7735.rst b/components/display/st7735.rst index 39897a3ab..70bd055ee 100644 --- a/components/display/st7735.rst +++ b/components/display/st7735.rst @@ -4,7 +4,7 @@ ST7735 Display .. seo:: :description: Instructions for setting up a ST7735 display drivers. :keywords: ST7735 - :image: ST7735.png + :image: st7735.jpg ST7735 Display Driver. diff --git a/components/display/st7789v.rst b/components/display/st7789v.rst index a0b52a5ee..fd47c065a 100644 --- a/components/display/st7789v.rst +++ b/components/display/st7789v.rst @@ -3,7 +3,7 @@ ST7789V TFT LCD .. seo:: :description: Instructions for setting up ST7789V TFT LCD display drivers. - :image: st7789v-full.jpg + :image: st7789v.jpg .. _st7789v: diff --git a/components/esp32.rst b/components/esp32.rst index 9d70e2b05..84bfcf7da 100644 --- a/components/esp32.rst +++ b/components/esp32.rst @@ -3,7 +3,7 @@ ESP32 Platform .. seo:: :description: Configuration for the ESP32 platform for ESPHome. - :image: esp32.png + :image: esp32.svg This component contains platform-specific options for the ESP32 platform. @@ -18,7 +18,7 @@ Configuration variables: - **board** (**Required**, string): The PlatformIO board ID that should be used. Choose the appropriate board from - `this list `__. + `this list `__. *This only affects pin aliases, flash size and some internal settings*, if unsure choose a generic board. - **framework** (*Optional*): Options for the underlying framework used by ESPHome. See :ref:`esp32-arduino_framework` and :ref:`esp32-espidf_framework`. @@ -42,7 +42,7 @@ This is the default framework for ESP32 chips at the moment. type: arduino version: 2.0.0 -- **version** (*Optional*, string): The base framework version number to use, from +- **version** (*Optional*, string): The base framework version number to use, from `ESP32 arduino releases `__. Defaults to ``recommended``. Additional values are: - ``dev``: Use the latest commit from https://github.com/espressif/arduino-esp32, note this may break at any time @@ -72,7 +72,7 @@ of the ESP32 like ESP32S2, ESP32S3, ESP32C3 and single-core ESP32 chips. sdkconfig_options: CONFIG_COMPILER_OPTIMIZATION_SIZE: y -- **version** (*Optional*, string): The base framework version number to use, from +- **version** (*Optional*, string): The base framework version number to use, from `ESP32 ESP-IDF releases `__. Defaults to ``recommended``. Additional values are: - ``dev``: Use the latest commit from https://github.com/espressif/esp-idf, note this may break at any time diff --git a/components/esp32_ble_beacon.rst b/components/esp32_ble_beacon.rst index 220ce9830..57bca25da 100644 --- a/components/esp32_ble_beacon.rst +++ b/components/esp32_ble_beacon.rst @@ -3,7 +3,7 @@ ESP32 Bluetooth Low Energy Beacon .. seo:: :description: Instructions for setting up Bluetooth Low Energy iBeacons using the BLE feature on ESP32s. - :image: bluetooth.png + :image: bluetooth.svg The ``esp32_ble_beacon`` component creates a Bluetooth Low Energy Beacon with your ESP32 device. Beacons are BLE devices that repeatedly just send out a pre-defined packet of data. This packet diff --git a/components/esp32_ble_tracker.rst b/components/esp32_ble_tracker.rst index fca8d51f2..22882bdc1 100644 --- a/components/esp32_ble_tracker.rst +++ b/components/esp32_ble_tracker.rst @@ -3,7 +3,7 @@ ESP32 Bluetooth Low Energy Tracker Hub .. seo:: :description: Instructions for setting up ESP32 bluetooth low energy device trackers using ESPHome. - :image: bluetooth.png + :image: bluetooth.svg The ``esp32_ble_tracker`` component creates a global hub so that you can track bluetooth low energy devices using your ESP32 node. diff --git a/components/esp32_camera.rst b/components/esp32_camera.rst index abf273817..1e88b339c 100644 --- a/components/esp32_camera.rst +++ b/components/esp32_camera.rst @@ -3,7 +3,7 @@ ESP32 Camera Component .. seo:: :description: Instructions for setting up the ESP32 Cameras in ESPHome - :image: camera.png + :image: camera.svg The ``esp32_camera`` component allows you to use ESP32-based camera boards in ESPHome that directly integrate into Home Assistant through the native API. diff --git a/components/esp32_camera_web_server.rst b/components/esp32_camera_web_server.rst index 48e345e08..6cc560258 100644 --- a/components/esp32_camera_web_server.rst +++ b/components/esp32_camera_web_server.rst @@ -3,7 +3,7 @@ ESP32 Camera Web Server Component .. seo:: :description: Instructions for setting up the ESP32 Camera Web Server in ESPHome - :image: camera.png + :image: camera.svg The ``esp32_camera_web_server`` component allows you to use expose web server of ESP32-based camera boards in ESPHome that directly can be integrated into external diff --git a/components/esp8266.rst b/components/esp8266.rst index be11a4b5d..2e0f7f936 100644 --- a/components/esp8266.rst +++ b/components/esp8266.rst @@ -3,7 +3,7 @@ ESP8266 Platform .. seo:: :description: Configuration for the ESP8266 platform for ESPHome. - :image: esp8266.png + :image: esp8266.svg This component contains platform-specific options for the ESP8266 platform. @@ -20,11 +20,11 @@ Configuration variables: - **board** (**Required**, string): The PlatformIO board ID that should be used. Choose the appropriate board from - `this list `__. + `this list `__. *This only affects pin aliases, flash size and some internal settings*, if unsure choose a generic board. - **framework** (*Optional*): Options for the underlying framework used by ESPHome. - - **version** (*Optional*, string): The base framework version number to use, from + - **version** (*Optional*, string): The base framework version number to use, from `esp8266 arduino releases `__. Defaults to ``recommended``. Additional values - ``dev``: Use the latest commit from https://github.com/esp8266/Arduino, note this may break at any time diff --git a/components/esphome.rst b/components/esphome.rst index 43d3dcfbb..38ac55417 100644 --- a/components/esphome.rst +++ b/components/esphome.rst @@ -3,7 +3,7 @@ ESPHome Core Configuration .. seo:: :description: Instructions for setting up the core ESPHome configuration. - :image: cloud-circle.png + :image: cloud-circle.svg Here you specify some core information that ESPHome needs to create firmwares. Most importantly, this is the section of the configuration diff --git a/components/ethernet.rst b/components/ethernet.rst index 74127a50f..1a296c886 100644 --- a/components/ethernet.rst +++ b/components/ethernet.rst @@ -3,7 +3,7 @@ Ethernet Component .. seo:: :description: Instructions for setting up the Ethernet configuration for your ESP32 node in ESPHome. - :image: ethernet.png + :image: ethernet.svg :keywords: Ethernet, ESP32 This core ESPHome component sets up ethernet connections for ESP32s. diff --git a/components/fan/binary.rst b/components/fan/binary.rst index 62bccd49c..78e967d09 100644 --- a/components/fan/binary.rst +++ b/components/fan/binary.rst @@ -3,7 +3,7 @@ Binary Fan .. seo:: :description: Instructions for setting up binary fans. - :image: fan.png + :image: fan.svg The ``binary`` fan platform lets you represent any binary :ref:`output` as a fan. diff --git a/components/fan/hbridge.rst b/components/fan/hbridge.rst index f0f827748..cf04d1f7c 100644 --- a/components/fan/hbridge.rst +++ b/components/fan/hbridge.rst @@ -3,7 +3,7 @@ H-bridge Fan .. seo:: :description: Instructions for setting up hbridge controlled fans (or motors). - :image: fan.png + :image: fan.svg The `'hbridge`' fan platform allows you to use a compatible `h-bridge` (L298N, DRV8871, MX1508, BTS7960, L9110S, DRV8833, TB6612, etc.) to control a fan (or motor/solenoid). diff --git a/components/fan/index.rst b/components/fan/index.rst index 33e2df0e4..4809f2432 100644 --- a/components/fan/index.rst +++ b/components/fan/index.rst @@ -3,7 +3,7 @@ Fan Component .. seo:: :description: Instructions for setting up the base fan component. - :image: folder-open.png + :image: folder-open.svg With the ``fan`` domain you can create components that appear as fans in the Home Assistant frontend. A fan can be switched ON or OFF, optionally diff --git a/components/fan/speed.rst b/components/fan/speed.rst index b9080022d..9969d0cdc 100644 --- a/components/fan/speed.rst +++ b/components/fan/speed.rst @@ -3,7 +3,7 @@ Speed Fan .. seo:: :description: Instructions for setting up speed-controllable fans. - :image: fan.png + :image: fan.svg The ``speed`` fan platform lets you represent any float :ref:`output` as a fan that supports speed settings. diff --git a/components/fingerprint_grow.rst b/components/fingerprint_grow.rst index 9a5813a1c..6edddd3ff 100644 --- a/components/fingerprint_grow.rst +++ b/components/fingerprint_grow.rst @@ -3,7 +3,7 @@ Grow Fingerprint Reader .. seo:: :description: Instructions for setting up Grow Fingerprint Reader integration in ESPHome. - :image: fingerprint.png + :image: fingerprint.svg The ``fingerprint_grow`` component allows you to use your R307, R503, ZFM-20, ... fingerprint sensors with ESPHome. diff --git a/components/gps.rst b/components/gps.rst index 648080349..d219b7d34 100644 --- a/components/gps.rst +++ b/components/gps.rst @@ -3,7 +3,7 @@ GPS Component .. seo:: :description: Instructions for setting up GPS integration in ESPHome. - :image: crosshair-gps.png + :image: crosshairs-gps.svg The ``gps`` component allows you to connect GPS modules to your ESPHome project. Any GPS module that uses the standardized NMEA communication protocol will work. diff --git a/components/http_request.rst b/components/http_request.rst index 107580cdb..f69091c99 100644 --- a/components/http_request.rst +++ b/components/http_request.rst @@ -3,7 +3,7 @@ HTTP Request .. seo:: :description: Instructions for setting up HTTP Requests in ESPHome - :image: connection.png + :image: connection.svg :keywords: http, request diff --git a/components/i2c.rst b/components/i2c.rst index 5f1bfcb8c..0ae58c066 100644 --- a/components/i2c.rst +++ b/components/i2c.rst @@ -5,7 +5,7 @@ I²C Bus .. seo:: :description: Instructions for setting up the I²C bus to communicate with 2-wire devices in ESPHome - :image: i2c.png + :image: i2c.svg :keywords: i2c, iic, bus This component sets up the I²C bus for your ESP32 or ESP8266. In order for these components diff --git a/components/light/binary.rst b/components/light/binary.rst index 42bff3c7b..43e1ee7bc 100644 --- a/components/light/binary.rst +++ b/components/light/binary.rst @@ -3,7 +3,7 @@ Binary Light .. seo:: :description: Instructions for setting up binary ON/OFF lights in ESPHome. - :image: lightbulb.png + :image: lightbulb.svg The ``binary`` light platform creates a simple ON/OFF-only light from a :ref:`binary output component `. diff --git a/components/light/color_temperature.rst b/components/light/color_temperature.rst index 4689b9653..b66a94248 100644 --- a/components/light/color_temperature.rst +++ b/components/light/color_temperature.rst @@ -3,7 +3,7 @@ Color Temperature Light .. seo:: :description: Instructions for setting up Color Temperature lights. - :image: brightness-medium.png + :image: brightness-medium.svg The ``color_temperature`` light platform creates a Color Temperature light from 2 :ref:`float output components `. One channel controls the LED temperature, diff --git a/components/light/cwww.rst b/components/light/cwww.rst index 6c008644e..66fb02edb 100644 --- a/components/light/cwww.rst +++ b/components/light/cwww.rst @@ -3,7 +3,7 @@ Cold White + Warm White Light .. seo:: :description: Instructions for setting up Cold White + Warm White lights. - :image: brightness-medium.png + :image: brightness-medium.svg The ``cwww`` light platform creates a cold white + warm white light from 2 :ref:`float output components ` (one for each channel). The two channels diff --git a/components/light/fastled.rst b/components/light/fastled.rst index 271e7ffad..a7a1e8171 100644 --- a/components/light/fastled.rst +++ b/components/light/fastled.rst @@ -3,7 +3,7 @@ FastLED Light .. seo:: :description: Instructions for setting up FastLED addressable lights like NEOPIXEL. - :image: color_lens.png + :image: color_lens.svg .. _fastled-clockless: diff --git a/components/light/hbridge.rst b/components/light/hbridge.rst index 5b5f0236d..6dcd095d6 100644 --- a/components/light/hbridge.rst +++ b/components/light/hbridge.rst @@ -3,7 +3,7 @@ H-bridge Light .. seo:: :description: Instructions for setting up a hbridge light. - :image: brightness-medium.png + :image: brightness-medium.svg The ``hbridge`` light platform creates a dual color brightness controlled light from two :ref:`float output component `. diff --git a/components/light/index.rst b/components/light/index.rst index 6c8e8af7a..277c76c88 100644 --- a/components/light/index.rst +++ b/components/light/index.rst @@ -3,7 +3,7 @@ Light Component .. seo:: :description: Instructions for setting up lights and light effects in ESPHome. - :image: folder-open.png + :image: folder-open.svg The ``light`` domain in ESPHome lets you create lights that will automatically be shown in Home Assistant’s frontend and have many diff --git a/components/light/monochromatic.rst b/components/light/monochromatic.rst index 65b850246..2b86555d2 100644 --- a/components/light/monochromatic.rst +++ b/components/light/monochromatic.rst @@ -3,7 +3,7 @@ Monochromatic Light .. seo:: :description: Instructions for setting up monochromatic (brightness-only) lights. - :image: brightness-medium.png + :image: brightness-medium.svg The ``monochromatic`` light platform creates a simple brightness-only light from an :ref:`float output component `. diff --git a/components/light/neopixelbus.rst b/components/light/neopixelbus.rst index 1354d69c2..33ea9257b 100644 --- a/components/light/neopixelbus.rst +++ b/components/light/neopixelbus.rst @@ -3,7 +3,7 @@ NeoPixelBus Light .. seo:: :description: Instructions for setting up Neopixel addressable lights. - :image: color_lens.png + :image: color_lens.svg The ``neopixelbus`` light platform allows you to create RGB lights in ESPHome for an individually addressable lights like NeoPixel or WS2812. diff --git a/components/light/partition.rst b/components/light/partition.rst index 960681d36..7198c6145 100644 --- a/components/light/partition.rst +++ b/components/light/partition.rst @@ -3,7 +3,7 @@ Light Partition .. seo:: :description: Instructions for setting up light partitions. - :image: color_lens.png + :image: color_lens.svg The ``partition`` light platform allows you to combine multiple addressable light segments (like :doc:`fastled` or :doc:`neopixelbus`) and/or individual lights (like :doc:`rgb`) into a single addressable light. diff --git a/components/light/status_led.rst b/components/light/status_led.rst index c6157e4e4..7dc670a90 100644 --- a/components/light/status_led.rst +++ b/components/light/status_led.rst @@ -3,14 +3,14 @@ Status LED Light .. seo:: :description: Instructions for setting up a Status LED shared also as binary ON/OFF light in ESPHome. - :image: led-on.png + :image: led-on.svg The ``status_led`` light platform allows to share a single LED for indicating the status of -the device (when on error/warning state) or as binary light (when on OK state). +the device (when on error/warning state) or as binary light (when on OK state). This is useful for devices with only one LED available. -It provides the combined functionality of :doc:`status_led component ` and a -:doc:`binary light component ` over a single shared GPIO led. +It provides the combined functionality of :doc:`status_led component ` and a +:doc:`binary light component ` over a single shared GPIO led. When the device is on error/warning state, the function of ``status_led`` will take precedence and control the blinking of the LED. When the device is in OK state, the LED will be restored to the state of the ``binary light`` function and can be controlled as such. @@ -26,7 +26,7 @@ When the device is in OK state, the LED will be restored to the state of the ``b .. note:: When using this platform the high level ``status_led`` component should not be included (at least over the same pin), - as its functionality is directly provided by this platform. + as its functionality is directly provided by this platform. The only difference is that the platform won't be loaded in OTA safe mode, while the component would be. diff --git a/components/light/tuya.rst b/components/light/tuya.rst index 59c197aaf..01df5ebae 100644 --- a/components/light/tuya.rst +++ b/components/light/tuya.rst @@ -3,7 +3,7 @@ Tuya Dimmer .. seo:: :description: Instructions for setting up a Tuya dimmer switch. - :image: brightness-medium.png + :image: brightness-medium.svg The ``tuya`` light platform creates a simple brightness-only light from a tuya serial component. diff --git a/components/logger.rst b/components/logger.rst index 80d93023c..243202470 100644 --- a/components/logger.rst +++ b/components/logger.rst @@ -3,7 +3,7 @@ Logger Component .. seo:: :description: Instructions for setting up the central logging component in ESPHome. - :image: file-document-box.png + :image: file-document-box.svg The logger component automatically logs all log messages through the serial port and through MQTT topics. By default, all logs with a diff --git a/components/mcp230xx.rst b/components/mcp230xx.rst index bd6b00dc4..0ee71a343 100644 --- a/components/mcp230xx.rst +++ b/components/mcp230xx.rst @@ -3,7 +3,7 @@ MCP230xx I/O Expander .. seo:: :description: Instructions for setting up MCP23008, MCP23016 or MCP23017 digital port expander in ESPHome. - :image: mcp230xx.png + :image: mcp230xx.svg The Microchip MCP230xx series of general purpose, parallel I/O expansion for I²C bus applications. diff --git a/components/mcp23Sxx.rst b/components/mcp23Sxx.rst index 88aa2853f..655c81343 100644 --- a/components/mcp23Sxx.rst +++ b/components/mcp23Sxx.rst @@ -3,7 +3,7 @@ MCP23Sxx I/O Expander .. seo:: :description: Instructions for setting up MCP23S08, MCP23S16 or MCP23S17 digital port expander in ESPHome. This is exactly the same API as the MCP23SXX I/O Expander except talks on the SPI bus - :image: mcp23Sxx.png + :image: mcp230xx.svg The Microchip MCP23Sxx series of general purpose, parallel I/O expansion for SPI bus applications. This is exactly the same API as the MCP23SXX I/O Expander except talks on the SPI bus diff --git a/components/number/index.rst b/components/number/index.rst index c386efb32..6a64463c0 100644 --- a/components/number/index.rst +++ b/components/number/index.rst @@ -3,7 +3,7 @@ Number Component .. seo:: :description: Instructions for setting up number components in ESPHome. - :image: folder-open.png + :image: folder-open.svg ESPHome has support for components to create a number entity. A number entity is like a sensor that can read a value from a device, but is useful when that value diff --git a/components/number/modbus_controller.rst b/components/number/modbus_controller.rst index 905839a40..e669ff8c9 100644 --- a/components/number/modbus_controller.rst +++ b/components/number/modbus_controller.rst @@ -3,7 +3,6 @@ Modbus Controller Number .. seo:: :description: Instructions for setting up a modbus_controller device sensor. - :image: modbus_controller.png The ``modbus_controller`` platform creates a Number from a modbus_controller. When the Number is updated a modbus write command is created sent to the device. diff --git a/components/number/template.rst b/components/number/template.rst index d07f1e9a1..13cbef2f7 100644 --- a/components/number/template.rst +++ b/components/number/template.rst @@ -3,7 +3,7 @@ Template Number .. seo:: :description: Instructions for setting up template numbers with ESPHome. - :image: description.png + :image: description.svg The ``template`` number platform allows you to create a number with templated values using :ref:`lambdas `. diff --git a/components/ota.rst b/components/ota.rst index a0412e962..d58ac023f 100644 --- a/components/ota.rst +++ b/components/ota.rst @@ -3,7 +3,7 @@ OTA Update Component .. seo:: :description: Instructions for setting up Over-The-Air (OTA) updates for ESPs to upload firmwares remotely. - :image: system-update.png + :image: system-update.svg .. _config-ota: diff --git a/components/output/gpio.rst b/components/output/gpio.rst index 0f269617c..ba946b971 100644 --- a/components/output/gpio.rst +++ b/components/output/gpio.rst @@ -3,7 +3,7 @@ GPIO Output .. seo:: :description: Instructions for setting up binary outputs for GPIO pins. - :image: pin.png + :image: pin.svg The GPIO output component is quite simple: It exposes a single GPIO pin as an output component. Note that output components are **not** switches and diff --git a/components/output/index.rst b/components/output/index.rst index 05c77ec6d..12ab21389 100644 --- a/components/output/index.rst +++ b/components/output/index.rst @@ -5,7 +5,7 @@ Output Component .. seo:: :description: Instructions for setting up generic outputs in ESPHome - :image: folder-open.png + :image: folder-open.svg Each platform of the ``output`` domain exposes some output to ESPHome. These are grouped into two categories: ``binary`` outputs diff --git a/components/output/mcp4725.rst b/components/output/mcp4725.rst index 71749d428..c337bc892 100644 --- a/components/output/mcp4725.rst +++ b/components/output/mcp4725.rst @@ -3,7 +3,7 @@ MCP4725 Output .. seo:: :description: Instructions for setting up MCP4725 outputs on the ESP. - :image: mcp4725.png + :image: mcp4725.jpg The MCP4725 output component allows to use `12bit external DAC `__ diff --git a/components/output/modbus_controller.rst b/components/output/modbus_controller.rst index 9196ff178..baec36459 100644 --- a/components/output/modbus_controller.rst +++ b/components/output/modbus_controller.rst @@ -3,7 +3,6 @@ Modbus Controller Output .. seo:: :description: Instructions for setting up a modbus_controller device sensor. - :image: modbus_controller.png The ``modbus_controller`` platform creates a output from a modbus_controller. diff --git a/components/output/my9231.rst b/components/output/my9231.rst index 568d572e4..0b162dff6 100644 --- a/components/output/my9231.rst +++ b/components/output/my9231.rst @@ -3,7 +3,7 @@ MY9231/MY9291 LED driver .. seo:: :description: Instructions for setting up MY9231 and MY9291 LED drives in ESPHome. - :image: my9231.png + :image: my9231.svg :keywords: MY9231, MY9291, Sonoff B1, Ai-thinker AiLight WiFi light bulb, Arilux E27 Smart Bulb .. _my9231-component: diff --git a/components/output/sm16716.rst b/components/output/sm16716.rst index 88b2d22ff..655f20951 100644 --- a/components/output/sm16716.rst +++ b/components/output/sm16716.rst @@ -3,7 +3,7 @@ SM16716 LED driver .. seo:: :description: Instructions for setting up SM16716 LED drivers in ESPHome. - :image: sm16716.png + :image: sm16716.svg :keywords: SM16716, Feit Electric A19 Smart WiFi Bulb, Merkury Innovations A21 Smart Wi-Fi Bulb .. _sm16716-component: diff --git a/components/output/template.rst b/components/output/template.rst index 5edda1d9c..6a60c249a 100644 --- a/components/output/template.rst +++ b/components/output/template.rst @@ -3,7 +3,7 @@ Template Output .. seo:: :description: Instructions for setting up template outputs with ESPHome. - :image: description.png + :image: description.svg The ``template`` output component can be used to create templated binary and float outputs in ESPHome. diff --git a/components/output/tlc5947.rst b/components/output/tlc5947.rst index 40022ea52..64439d035 100644 --- a/components/output/tlc5947.rst +++ b/components/output/tlc5947.rst @@ -3,7 +3,7 @@ TLC5947 LED driver .. seo:: :description: Instructions for setting up TLC5947 LED drivers in ESPHome. - :image: images/tlc5947.jpg + :image: tlc5947.jpg :keywords: tlc5947, .. _tlc5947-component: diff --git a/components/power_supply.rst b/components/power_supply.rst index 5a33a2e38..b08311ee5 100644 --- a/components/power_supply.rst +++ b/components/power_supply.rst @@ -3,7 +3,7 @@ Power Supply Component .. seo:: :description: Instructions for setting up power supplies which will automatically turn on together with outputs. - :image: power.png + :image: power.svg :keywords: power, ATX The ``power_supply`` component allows you to have a high power mode for diff --git a/components/prometheus.rst b/components/prometheus.rst index e49480ac9..acc4b5fbc 100644 --- a/components/prometheus.rst +++ b/components/prometheus.rst @@ -3,7 +3,7 @@ Prometheus Component .. seo:: :description: Instructions for setting up a prometheus exporter with ESPHome. - :image: prometheus.png + :image: prometheus.svg The ``prometheus`` component enables an HTTP endpoint for the :doc:`web_server` in order to integrate a `Prometheus `__ installation. diff --git a/components/remote_receiver.rst b/components/remote_receiver.rst index 9e2c21dce..ef0ad8a79 100644 --- a/components/remote_receiver.rst +++ b/components/remote_receiver.rst @@ -3,7 +3,7 @@ Remote Receiver .. seo:: :description: Instructions for setting up remote receiver binary sensors for infrared and RF codes. - :image: remote.png + :image: remote.svg :keywords: RF, infrared The ``remote_receiver`` component lets you receive and decode any remote signal, these can diff --git a/components/remote_transmitter.rst b/components/remote_transmitter.rst index 47837be50..8461c3a45 100644 --- a/components/remote_transmitter.rst +++ b/components/remote_transmitter.rst @@ -3,7 +3,7 @@ Remote Transmitter .. seo:: :description: Instructions for setting up switches that send out pre-defined sequences of IR or RF signals - :image: remote.png + :image: remote.svg :keywords: Infrared, IR, RF, Remote, TX The ``remote_transmitter`` component lets you send digital packets to control diff --git a/components/rtttl.rst b/components/rtttl.rst index cc6b88fa6..1b71b8b76 100644 --- a/components/rtttl.rst +++ b/components/rtttl.rst @@ -3,7 +3,7 @@ Rtttl Buzzer .. seo:: :description: Instructions for setting up a buzzer to play tones and rtttl songs with ESPHome. - :image: crosshair-gps.png + :image: buzzer.jpg The ``rtttl``, component allows you to easily connect a passive piezo buzzer to your microcontroller and play monophonic songs. It accepts the Ring Tone Text Transfer Language, rtttl format (`Wikipedia diff --git a/components/select/index.rst b/components/select/index.rst index 8ef140408..450d4bac1 100644 --- a/components/select/index.rst +++ b/components/select/index.rst @@ -3,7 +3,7 @@ Select Component .. seo:: :description: Instructions for setting up select components in ESPHome. - :image: folder-open.png + :image: folder-open.svg ESPHome has support for components to create a select entity. A select entity is basically an option list that can be set by either yaml, hardware or the user/frontend. diff --git a/components/select/template.rst b/components/select/template.rst index 23cb9126d..c6d011cb1 100644 --- a/components/select/template.rst +++ b/components/select/template.rst @@ -3,7 +3,7 @@ Template Select .. seo:: :description: Instructions for setting up Template Select(s) with ESPHome. - :image: description.png + :image: description.svg The ``template`` Select platform allows you to create a Select with templated values using :ref:`lambdas `. diff --git a/components/sensor/adc.rst b/components/sensor/adc.rst index d50736681..51a8feacd 100644 --- a/components/sensor/adc.rst +++ b/components/sensor/adc.rst @@ -3,7 +3,7 @@ Analog To Digital Sensor .. seo:: :description: Instructions for setting up built-in analog voltage sensors. - :image: flash.png + :image: flash.svg The Analog To Digital (``adc``) Sensor allows you to use the built-in ADC in your device to measure a voltage on certain pins. On the ESP8266 diff --git a/components/sensor/ade7953.rst b/components/sensor/ade7953.rst index 94f661596..e9fb99ac9 100644 --- a/components/sensor/ade7953.rst +++ b/components/sensor/ade7953.rst @@ -3,7 +3,7 @@ ADE7953 Power Sensor .. seo:: :description: Instructions for setting up ADE7953 power sensors - :image: ade7953.png + :image: ade7953.svg .. note:: diff --git a/components/sensor/am43.rst b/components/sensor/am43.rst index e0fcc6192..108c75f5e 100644 --- a/components/sensor/am43.rst +++ b/components/sensor/am43.rst @@ -3,7 +3,7 @@ AM43 Sensor .. seo:: :description: Sensors on AM43/BLE covers in ESPHome. - :image: am43.png + :image: am43.jpg The ``am43`` sensor platform allows you to read the light and battery sensors on an AM43 BLE cover motor. The platform connects diff --git a/components/sensor/as3935.rst b/components/sensor/as3935.rst index d4ade816a..d1fa71886 100644 --- a/components/sensor/as3935.rst +++ b/components/sensor/as3935.rst @@ -3,7 +3,7 @@ AMS AS3935 Franklin Lightning Sensor .. seo:: :description: Instructions for setting up AS3935 lightning sensor - :image: images/as3935.jpg + :image: as3935.jpg :keywords: as3935 The **AS3935** sensor platform allows you to use your AS3935 sensor diff --git a/components/sensor/atm90e32.rst b/components/sensor/atm90e32.rst index 07509a624..84ac5ede2 100644 --- a/components/sensor/atm90e32.rst +++ b/components/sensor/atm90e32.rst @@ -3,7 +3,7 @@ ATM90E32 Power Sensor .. seo:: :description: Instructions for setting up ATM90E32 energy metering sensors - :image: atm90e32.png + :image: atm90e32.jpg :keywords: ATM90E32, CircuitSetup, Split Single Phase Real Time Whole House Energy Meter, Expandable 6 Channel ESP32 Energy Meter Main Board The ``atm90e32`` sensor platform allows you to use your ATM90E32 voltage/current and power sensors diff --git a/components/sensor/ble_rssi.rst b/components/sensor/ble_rssi.rst index 7c8a9f665..3e880aec4 100644 --- a/components/sensor/ble_rssi.rst +++ b/components/sensor/ble_rssi.rst @@ -3,7 +3,7 @@ ESP32 Bluetooth Low Energy RSSI Sensor .. seo:: :description: Instructions for setting up RSSI sensors for the ESP32 BLE. - :image: bluetooth.png + :image: bluetooth.svg :keywords: ESP32 The ``ble_rssi`` sensor platform lets you track the RSSI value or signal strength of a diff --git a/components/sensor/cse7761.rst b/components/sensor/cse7761.rst index 999047aa8..64bb889c0 100644 --- a/components/sensor/cse7761.rst +++ b/components/sensor/cse7761.rst @@ -3,7 +3,7 @@ CSE7761 Power Sensor .. seo:: :description: Instructions for setting up CSE7761 power sensors for the Sonoff Dual R3 v1.x - :image: cse7761.png + :image: cse7761.svg :keywords: cse7761, Sonoff Dual R3 The ``cse7761`` sensor platform allows you to use your CSE7761 voltage/current and power sensors diff --git a/components/sensor/cse7766.rst b/components/sensor/cse7766.rst index 642ea7ca6..0d2108051 100644 --- a/components/sensor/cse7766.rst +++ b/components/sensor/cse7766.rst @@ -3,7 +3,7 @@ CSE7766 Power Sensor .. seo:: :description: Instructions for setting up CSE7766 power sensors for the Sonoff Pow R2 - :image: cse7766.png + :image: cse7766.svg :keywords: cse7766, cse7759b, Sonoff Pow R2 The ``cse7766`` sensor platform allows you to use your CSE7766 voltage/current and power sensors diff --git a/components/sensor/custom.rst b/components/sensor/custom.rst index 7e26b97d0..6fa2d7eb4 100644 --- a/components/sensor/custom.rst +++ b/components/sensor/custom.rst @@ -3,7 +3,7 @@ Custom Sensor Component .. seo:: :description: Instructions for setting up Custom C++ sensors with ESPHome. - :image: language-cpp.png + :image: language-cpp.svg :keywords: C++, Custom .. warning:: diff --git a/components/sensor/dsmr.rst b/components/sensor/dsmr.rst index a8f2ad0fc..5a5612216 100644 --- a/components/sensor/dsmr.rst +++ b/components/sensor/dsmr.rst @@ -3,7 +3,7 @@ DSMR Component .. seo:: :description: Instructions for setting up DSMR Meter component in ESPHome. - :image: dsmr.png + :image: dsmr.svg Component/Hub ************* diff --git a/components/sensor/duty_cycle.rst b/components/sensor/duty_cycle.rst index eb691c216..9bed5b9c2 100644 --- a/components/sensor/duty_cycle.rst +++ b/components/sensor/duty_cycle.rst @@ -3,7 +3,7 @@ Duty Cycle Sensor .. seo:: :description: Instructions for setting up duty cycle sensors in ESPHome - :image: percent.png + :image: percent.svg The duty cycle sensor allows you to measure for what percentage of time a signal on a GPIO pin is HIGH or LOW. diff --git a/components/sensor/esp32_hall.rst b/components/sensor/esp32_hall.rst index e49bb0884..00cf7a13d 100644 --- a/components/sensor/esp32_hall.rst +++ b/components/sensor/esp32_hall.rst @@ -3,7 +3,7 @@ ESP32 Hall Sensor .. seo:: :description: Instructions for setting up the integrated hall-effect sensor of the ESP32. - :image: magnet.png + :image: magnet.svg :keywords: esp32, hall The ``esp32_hall`` sensor platform allows you to use the integrated diff --git a/components/sensor/havells_solar.rst b/components/sensor/havells_solar.rst index 7cfb0d496..9e6992007 100644 --- a/components/sensor/havells_solar.rst +++ b/components/sensor/havells_solar.rst @@ -3,7 +3,7 @@ Havells Solar .. seo:: :description: Instructions for setting up Havells inverter reading on modbus. - :image: images/havellsgti5000d.jpg + :image: havellsgti5000d_s.jpg :keywords: Havells Enviro, Havells GTI The ``Havells Inverter`` sensor platform allows you to use Havells inverter data reading on modbus diff --git a/components/sensor/hlw8012.rst b/components/sensor/hlw8012.rst index ada0e1bd3..48f38b0a1 100644 --- a/components/sensor/hlw8012.rst +++ b/components/sensor/hlw8012.rst @@ -3,7 +3,7 @@ HLW8012 Power Sensor .. seo:: :description: Instructions for setting up HLW8012 power sensors for the Sonoff Pow R1 - :image: hlw8012.png + :image: hlw8012.svg :keywords: HLW8012, CSE7759, BL0937, Sonoff Pow R1 The ``hlw8012`` sensor platform allows you to use your HLW8012 voltage/current and power sensors diff --git a/components/sensor/hm3301.rst b/components/sensor/hm3301.rst index 544e75476..d6f71e7f5 100644 --- a/components/sensor/hm3301.rst +++ b/components/sensor/hm3301.rst @@ -3,7 +3,7 @@ The Grove - Laser PM2.5 Sensor (HM3301) .. seo:: :description: Instructions for setting up HM3301 Particulate matter sensor - :image: hm3301.png + :image: hm3301.jpg The ``HM3301`` sensor platform allows you to use your HM3301 particulate matter sensor (`more info `__) diff --git a/components/sensor/homeassistant.rst b/components/sensor/homeassistant.rst index 67bb02a34..35f8c5d44 100644 --- a/components/sensor/homeassistant.rst +++ b/components/sensor/homeassistant.rst @@ -3,7 +3,7 @@ Home Assistant Sensor .. seo:: :description: Instructions for setting up Home Assistant sensors with ESPHome that import states from your Home Assistant instance. - :image: home-assistant.png + :image: home-assistant.svg The ``homeassistant`` sensor platform allows you to create sensors that import states from your Home Assistant instance using the :doc:`native API `. diff --git a/components/sensor/hx711.rst b/components/sensor/hx711.rst index 0cb322d43..22f17c39d 100644 --- a/components/sensor/hx711.rst +++ b/components/sensor/hx711.rst @@ -3,7 +3,7 @@ HX711 Load Cell Amplifier .. seo:: :description: Instructions for setting up HX711 load cell amplifiers with ESPHome - :image: hx711.png + :image: hx711.jpg :keywords: HX711 The ``hx711`` sensor platform allows you to use your HX711 diff --git a/components/sensor/index.rst b/components/sensor/index.rst index 8e1f7a681..d2fb72363 100644 --- a/components/sensor/index.rst +++ b/components/sensor/index.rst @@ -3,7 +3,7 @@ Sensor Component .. seo:: :description: Instructions for setting up sensor components in ESPHome. - :image: folder-open.png + :image: folder-open.svg ESPHome has support for many different sensors. Each of them is a platform of the ``sensor`` domain and each sensor has several base diff --git a/components/sensor/integration.rst b/components/sensor/integration.rst index 15f22b323..5b6ef472d 100644 --- a/components/sensor/integration.rst +++ b/components/sensor/integration.rst @@ -3,7 +3,7 @@ Integration Sensor .. seo:: :description: Instructions for setting up sensors that integrate values over time. - :image: sigma.png + :image: sigma.svg The ``integration`` sensor is a helper sensor that can integrate values from other sensors over time. This can for example be useful to integrate the values of a water flow sensor (in m^3/s) over diff --git a/components/sensor/ltr390.rst b/components/sensor/ltr390.rst index 3af449cde..b466f35d8 100644 --- a/components/sensor/ltr390.rst +++ b/components/sensor/ltr390.rst @@ -3,7 +3,7 @@ LTR390 UV and Ambient Light Sensor .. seo:: :description: Instructions for setting up LTR390 UV and light sensor - :image: images/ltr390-full.jpg + :image: ltr390.jpg The ``ltr390`` sensor platform allows you to use your LTR390 UV and ambient light sensor diff --git a/components/sensor/max31856.rst b/components/sensor/max31856.rst index cf966fa02..24669e62f 100644 --- a/components/sensor/max31856.rst +++ b/components/sensor/max31856.rst @@ -3,7 +3,7 @@ MAX31856 Thermocouple Temperature Sensor .. seo:: :description: Instructions for setting up MAX31856 Thermocouple temperature sensors. - :image: max31865.png + :image: max31865.jpg The ``MAX31856`` temperature sensor allows you to use your MAX31856 Thermocouple temperature sensor (`datasheet `__) with ESPHome diff --git a/components/sensor/mcp3008.rst b/components/sensor/mcp3008.rst index ccb8f0976..0b05680b0 100644 --- a/components/sensor/mcp3008.rst +++ b/components/sensor/mcp3008.rst @@ -4,7 +4,7 @@ MCP3008 I/O Expander .. seo:: :description: Instructions for setting up MCP3008 10 Bit Analog to Digital Converter in ESPHome. :keywords: MCP3008 - :image: images/mcp3008.jpg + :image: mcp3008.jpg The Microchip Technology Inc. MCP3008 devices are successive approximation 10-bit Analog-to-Digital (A/D) converters with on-board sample and diff --git a/components/sensor/pmsa003i.rst b/components/sensor/pmsa003i.rst index 87b34a78c..ca828dce2 100644 --- a/components/sensor/pmsa003i.rst +++ b/components/sensor/pmsa003i.rst @@ -3,7 +3,7 @@ PMSA003I Particulate Matter Sensor .. seo:: :description: Instructions for setting up PMSX003 Particulate matter sensors - :image: images/pmsa003i-full.jpg + :image: pmsa003i-full.jpg The ``pmsa003i`` sensor platform allows you to use your Plantower PMSA003I particulate matter sensor diff --git a/components/sensor/pmsx003.rst b/components/sensor/pmsx003.rst index 741362297..e7fb05fa9 100644 --- a/components/sensor/pmsx003.rst +++ b/components/sensor/pmsx003.rst @@ -3,7 +3,7 @@ PMSX003 Particulate Matter Sensor .. seo:: :description: Instructions for setting up PMSX003 Particulate matter sensors - :image: pmsx003.png + :image: pmsx003.svg The ``pmsx003`` sensor platform allows you to use your PMS5003, PMS7003, ... particulate matter (`datasheet `__) diff --git a/components/sensor/pulse_counter.rst b/components/sensor/pulse_counter.rst index 48c50d5a1..3acba1982 100644 --- a/components/sensor/pulse_counter.rst +++ b/components/sensor/pulse_counter.rst @@ -3,7 +3,7 @@ Pulse Counter Sensor .. seo:: :description: Instructions for setting up pulse counter sensors. - :image: pulse.png + :image: pulse.svg The pulse counter sensor allows you to count the number of pulses and the frequency of a signal on any pin. diff --git a/components/sensor/pulse_meter.rst b/components/sensor/pulse_meter.rst index 21d47212b..b8fcdb9b7 100644 --- a/components/sensor/pulse_meter.rst +++ b/components/sensor/pulse_meter.rst @@ -3,7 +3,7 @@ Pulse Meter Sensor .. seo:: :description: Instructions for setting up pulse meter sensors. - :image: pulse.png + :image: pulse.svg The pulse meter sensor allows you to count the number and frequency of pulses on any pin. It is intended to be a drop-in replacement for :doc:`integration sensor `, but offering better resolution. diff --git a/components/sensor/pulse_width.rst b/components/sensor/pulse_width.rst index 67d9bc2a4..38bff673f 100644 --- a/components/sensor/pulse_width.rst +++ b/components/sensor/pulse_width.rst @@ -3,7 +3,7 @@ Pulse Width Sensor .. seo:: :description: Instructions for setting up pulse width sensors in ESPHome - :image: pulse.png + :image: pulse.svg The ``pulse_width`` sensor allows you to measure how long a given digital signal is HIGH. For example this can be used to measure PWM signals to transmit some diff --git a/components/sensor/pzem004t.rst b/components/sensor/pzem004t.rst index a87af2a34..2e339e37a 100644 --- a/components/sensor/pzem004t.rst +++ b/components/sensor/pzem004t.rst @@ -3,7 +3,7 @@ Peacefair PZEM-004T Energy Monitor .. seo:: :description: Instructions for setting up PZEM-004 and PZEM-004T V1 power monitors. - :image: pzem-004.jpg + :image: pzem004t.svg :keywords: PZEM-004T, PZEM-004 .. note:: @@ -20,7 +20,7 @@ ESPHome. .. warning:: - This page refers to version V1 of the PZEM-004T, which has been out of stock for a while. + This page refers to version V1 of the PZEM-004T, which has been out of stock for a while. The PZEM-004, however, is still working (and selling) with this protocol and does not use modbus. For using the newer V3 variant of this sensor please see :doc:`pzemac `. @@ -64,14 +64,14 @@ Configuration variables: Hardware considerations: ------------------------ -These devices have optocouplers on the UART port and the resistors mounted on the board have been designed to work with 5V devices. -ESPs need a `Level Shifter `__ to be compatible with TTL levels. +These devices have optocouplers on the UART port and the resistors mounted on the board have been designed to work with 5V devices. +ESPs need a `Level Shifter `__ to be compatible with TTL levels. .. note:: You need a IC level shifter and not a `Mosfet-based `__ level shifter, because you need to power the optocoupler's LEDs without an additional resistor in the path. - + If prefer, you could change the value of the optocoupler's resistors by following `this `__ or `this `__ guide. Your ESP shall be powered by an external power supply and cannot be connected to the PZEM for power. diff --git a/components/sensor/pzemac.rst b/components/sensor/pzemac.rst index ebec5df7a..90f8a8896 100644 --- a/components/sensor/pzemac.rst +++ b/components/sensor/pzemac.rst @@ -3,7 +3,7 @@ Peacefair PZEM-004T V3 Energy Monitor .. seo:: :description: Instructions for setting up PZEM-004T power monitors. - :image: pzemac.png + :image: pzem-ac.png :keywords: PZEM-004T V3 .. note:: diff --git a/components/sensor/pzemdc.rst b/components/sensor/pzemdc.rst index b89343e96..9e76a1fa4 100644 --- a/components/sensor/pzemdc.rst +++ b/components/sensor/pzemdc.rst @@ -3,7 +3,7 @@ Peacefair PZEM-00X DC Energy Monitor .. seo:: :description: Instructions for setting up DC PZEM power monitors. - :image: pzemdc.png + :image: pzem-dc.png .. note:: diff --git a/components/sensor/resistance.rst b/components/sensor/resistance.rst index 0f132be72..21d42c2c4 100644 --- a/components/sensor/resistance.rst +++ b/components/sensor/resistance.rst @@ -3,7 +3,7 @@ Resistance Sensor .. seo:: :description: Instructions for setting up resistance sensors in ESPHome - :image: omega.png + :image: omega.svg The ``resistance`` platform is a helper sensor that allows you to convert readings from a voltage sensor (such as the :doc:`ADC Sensor `) into resistance readings diff --git a/components/sensor/sdm_meter.rst b/components/sensor/sdm_meter.rst index f47bd9adc..8a5338229 100644 --- a/components/sensor/sdm_meter.rst +++ b/components/sensor/sdm_meter.rst @@ -3,7 +3,7 @@ Eastron SDM Energy Monitor .. seo:: :description: Instructions for setting up SDM power monitors. - :image: images/sdm220m-full.png + :image: sdm220m.png :keywords: SDM220M, SDM220, SDM630 The ``sdm_meter`` sensor platform allows you to use Eastron SDM modbus energy monitors diff --git a/components/sensor/sdp3x.rst b/components/sensor/sdp3x.rst index 3e09ea7b5..0ff717b27 100644 --- a/components/sensor/sdp3x.rst +++ b/components/sensor/sdp3x.rst @@ -3,7 +3,7 @@ SDP3x Differential Pressure Sensor .. seo:: :description: Instructions for setting up the SDP3x Differential Pressure sensor. - :image: images/sdp31.jpg + :image: sdp31.jpg :keywords: SDP3x, SDP31, SDP32 The SDP3x Differential Pressure sensor allows you to use your SDP3x @@ -20,7 +20,7 @@ sensors with ESPHome. .. _Sparkfun: https://www.sparkfun.com/products/17874 -To use the sensor, set up an :ref:`I²C Bus ` and connect the sensor to the specified pins. +To use the sensor, set up an :ref:`I²C Bus ` and connect the sensor to the specified pins. .. code-block:: yaml diff --git a/components/sensor/selec_meter.rst b/components/sensor/selec_meter.rst index 70ad1aa64..392583905 100644 --- a/components/sensor/selec_meter.rst +++ b/components/sensor/selec_meter.rst @@ -3,7 +3,7 @@ Selec Energy Monitor .. seo:: :description: Instructions for setting up Selec power monitors. - :image: images/selec_meter_em2m.jpg + :image: selec_meter_em2m.jpg :keywords: EM2M The ``selec_meter`` sensor platform allows you to use Selec Modbus energy monitors diff --git a/components/sensor/sgp30.rst b/components/sensor/sgp30.rst index 06100a5fb..448b8431e 100644 --- a/components/sensor/sgp30.rst +++ b/components/sensor/sgp30.rst @@ -3,7 +3,7 @@ SGP30 CO₂ and Volatile Organic Compound Sensor .. seo:: :description: Instructions for setting up SGP30 CO₂eq and Volatile Organic Compound sensor - :image: sgp30.png + :image: sgp30.jpg The ``sgp30`` sensor platform allows you to use your Sensirion SGP30 multi-pixel gas (`datasheet `__) sensors or the SVM30 breakout-boards (`product page `__) with ESPHome. diff --git a/components/sensor/sht4x.rst b/components/sensor/sht4x.rst index 92fb76643..60205edd2 100644 --- a/components/sensor/sht4x.rst +++ b/components/sensor/sht4x.rst @@ -3,7 +3,7 @@ SHT4X Temperature and Humidity Sensor .. seo:: :description: Instructions for setting up SHT4X temperature and humidity sensor - :image: images/sht4x-full.jpg + :image: sht4x.jpg The ``sht4x`` sensor platform allows you to use your SHT4X temperature and humidity sensor (`datasheet `__, `Adafruit`_) with ESPHome. diff --git a/components/sensor/sm300d2.rst b/components/sensor/sm300d2.rst index 286dd9953..2a2d1dc71 100644 --- a/components/sensor/sm300d2.rst +++ b/components/sensor/sm300d2.rst @@ -3,7 +3,7 @@ SM300D2 7-in-1 Air Quality Sensor .. seo:: :description: Instructions for setting up SM300D2 sensor to work with ESPHome - :image: sm300d2-full.jpg + :image: sm300d2.jpg :keywords: sm300d2 The ``sm300d2`` sensor platform allows you to use the SM300D2 7-in-1 Air Quality Sensor with ESPHome. diff --git a/components/sensor/t6615.rst b/components/sensor/t6615.rst index e03b21172..a49e98ebc 100644 --- a/components/sensor/t6615.rst +++ b/components/sensor/t6615.rst @@ -3,7 +3,7 @@ T6613/15 CO2 Sensors .. seo:: :description: Instructions for setting up T6613 and T6615 sensors for ESPHome - :image: images/t6615.png + :image: t6615.png :keywords: t6613 t6615 The ``t6615`` sensor platform allows you to use T6613 and T6615 family sensors diff --git a/components/sensor/template.rst b/components/sensor/template.rst index 342f5d93a..a962f86b7 100644 --- a/components/sensor/template.rst +++ b/components/sensor/template.rst @@ -3,7 +3,7 @@ Template Sensor .. seo:: :description: Instructions for setting up template sensors with ESPHome. - :image: description.png + :image: description.svg The ``template`` sensor platform allows you to create a sensor with templated values using :ref:`lambdas `. diff --git a/components/sensor/total_daily_energy.rst b/components/sensor/total_daily_energy.rst index f55271d47..8dcd7f32a 100644 --- a/components/sensor/total_daily_energy.rst +++ b/components/sensor/total_daily_energy.rst @@ -3,7 +3,7 @@ Total Daily Energy Sensor .. seo:: :description: Instructions for setting up sensors that track the total daily energy usage per day and accumulate the power usage. - :image: sigma.png + :image: sigma.svg The ``total_daily_energy`` sensor is a helper sensor that can use the energy value of other sensors like the :doc:`HLW8012 `, :doc:`CSE7766 `, :doc:`ATM90E32 `, etc and integrate diff --git a/components/sensor/tx20.rst b/components/sensor/tx20.rst index 8790d75e9..566e8ca8b 100644 --- a/components/sensor/tx20.rst +++ b/components/sensor/tx20.rst @@ -3,7 +3,7 @@ TX20/TX23 Wind Speed/Direction Sensor .. seo:: :description: Instructions for setting up TX20/TX23 wind speed and direction sensors - :image: images/tx20.jpg + :image: tx20.jpg :keywords: TX20 The ``tx20`` sensor platform allows you to use your TX20/TX23 diff --git a/components/sensor/uptime.rst b/components/sensor/uptime.rst index 58fbff2d0..c8ea1a9e6 100644 --- a/components/sensor/uptime.rst +++ b/components/sensor/uptime.rst @@ -3,7 +3,7 @@ Uptime Sensor .. seo:: :description: Instructions for setting up a sensor that tracks the uptime of the ESP. - :image: timer.png + :image: timer.svg The ``uptime`` sensor allows you to track the time the ESP has stayed up for in seconds. Time rollovers are automatically handled. diff --git a/components/sensor/wifi_signal.rst b/components/sensor/wifi_signal.rst index f2a5b57f5..1fa639678 100644 --- a/components/sensor/wifi_signal.rst +++ b/components/sensor/wifi_signal.rst @@ -3,7 +3,7 @@ WiFi Signal Sensor .. seo:: :description: Instructions for setting up WiFi signal sensors that track the RSSI connection strength value to the network. - :image: network-wifi.png + :image: network-wifi.svg The ``wifi_signal`` sensor platform allows you to read the signal strength of the currently connected :doc:`WiFi Access Point `. diff --git a/components/servo.rst b/components/servo.rst index b125e6958..341eae970 100644 --- a/components/servo.rst +++ b/components/servo.rst @@ -3,7 +3,7 @@ Servo Component .. seo:: :description: Instructions for setting up servos in ESPHome - :image: servo.png + :image: servo.svg The ``servo`` component allows you to use servo motors with ESPHome. Servos are motor controllers that contain all the electronics necessary for driving the motor and provide diff --git a/components/spi.rst b/components/spi.rst index 5839b0547..d6a433ced 100644 --- a/components/spi.rst +++ b/components/spi.rst @@ -5,7 +5,7 @@ SPI Bus .. seo:: :description: Instructions for setting up an SPI bus in ESPHome - :image: spi.png + :image: spi.svg :keywords: SPI SPI is a very common high-speed protocol for a lot of devices. The SPI bus usually consists of 4 wires: diff --git a/components/status_led.rst b/components/status_led.rst index b0711bab8..28af3bd75 100644 --- a/components/status_led.rst +++ b/components/status_led.rst @@ -3,7 +3,7 @@ Status LED .. seo:: :description: Instructions for setting up status LEDs in ESPHome to monitor the status of an ESP. - :image: led-on.png + :image: led-on.svg The ``status_led`` hooks into all ESPHome components and can indicate the status of the device. Specifically, it will: diff --git a/components/stepper/index.rst b/components/stepper/index.rst index 78dfbfc80..d31208c17 100644 --- a/components/stepper/index.rst +++ b/components/stepper/index.rst @@ -3,7 +3,7 @@ Stepper Component .. seo:: :description: Instructions for setting up stepper motor drivers in ESPHome - :image: folder-open.png + :image: folder-open.svg :keywords: stepper motor, stepper driver, a4988 The ``stepper`` component allows you to use stepper motors with ESPHome. diff --git a/components/sun.rst b/components/sun.rst index dda62a5a3..614f070a8 100644 --- a/components/sun.rst +++ b/components/sun.rst @@ -3,7 +3,7 @@ Sun .. seo:: :description: Instructions for setting up tracking the sun position in ESPHome. - :image: weather-sunny.png + :image: weather-sunny.svg The ``sun`` component allows you to track the sun's position in the sky. diff --git a/components/switch/gpio.rst b/components/switch/gpio.rst index e9b0c8291..56361bb74 100644 --- a/components/switch/gpio.rst +++ b/components/switch/gpio.rst @@ -3,7 +3,7 @@ GPIO Switch .. seo:: :description: Instructions for setting up GPIO pin switches in ESPHome that control GPIO outputs. - :image: pin.png + :image: pin.svg The ``gpio`` switch platform allows you to use any pin on your node as a switch. You can for example hook up a relay to a GPIO pin and use it diff --git a/components/switch/index.rst b/components/switch/index.rst index 9d7d36215..531c57623 100644 --- a/components/switch/index.rst +++ b/components/switch/index.rst @@ -3,7 +3,7 @@ Switch Component .. seo:: :description: Instructions for setting up generic switches in ESPHome. - :image: folder-open.png + :image: folder-open.svg The ``switch`` domain includes all platforms that should show up like a switch and can only be turned ON or OFF. diff --git a/components/switch/modbus_controller.rst b/components/switch/modbus_controller.rst index bf9e8e1d0..1e2545fc5 100644 --- a/components/switch/modbus_controller.rst +++ b/components/switch/modbus_controller.rst @@ -3,7 +3,6 @@ Modbus Switch .. seo:: :description: Instructions for setting up a modbus_controller device sensor. - :image: modbus_controller.png The ``modbus_controller`` sensor platform creates a sensor from a modbus_controller component and requires :doc:`/components/modbus_controller` to be configured. diff --git a/components/switch/output.rst b/components/switch/output.rst index b846feb86..a5b600578 100644 --- a/components/switch/output.rst +++ b/components/switch/output.rst @@ -3,7 +3,7 @@ Generic Output Switch .. seo:: :description: Instructions for setting up generic output switches in ESPHome that control an output component. - :image: upload.png + :image: upload.svg The ``output`` switch platform allows you to use any output component as a switch. diff --git a/components/switch/restart.rst b/components/switch/restart.rst index 57f243c09..5ab846890 100644 --- a/components/switch/restart.rst +++ b/components/switch/restart.rst @@ -3,7 +3,7 @@ Restart Switch .. seo:: :description: Instructions for setting up switches that can remotely reboot the ESP in ESPHome. - :image: restart.png + :image: restart.svg The ``restart`` switch platform allows you to restart your node remotely through Home Assistant. diff --git a/components/switch/safe_mode.rst b/components/switch/safe_mode.rst index c3168e191..17ad39c44 100644 --- a/components/switch/safe_mode.rst +++ b/components/switch/safe_mode.rst @@ -3,7 +3,7 @@ Safe Mode Switch .. seo:: :description: Instructions for setting up switches that can remotely reboot the ESP in ESPHome into safe mode. - :image: restart.png + :image: restart.svg The ``safe_mode`` switch allows you to remotely reboot your node into :ref:`Safe Mode `. This is useful in certain situations where a misbehaving component is preventing Over-The-Air updates from completing successfully. diff --git a/components/switch/shutdown.rst b/components/switch/shutdown.rst index e843b4c65..814ba446e 100644 --- a/components/switch/shutdown.rst +++ b/components/switch/shutdown.rst @@ -3,7 +3,7 @@ Shutdown Switch .. seo:: :description: Instructions for setting up switches that can remotely shut down the ESP. - :image: power_settings.png + :image: power_settings.svg The ``shutdown`` switch platform allows you to shutdown your node remotely through Home Assistant. It does this by putting the node into deep sleep mode with no diff --git a/components/switch/template.rst b/components/switch/template.rst index b47b30324..fe39a3c69 100644 --- a/components/switch/template.rst +++ b/components/switch/template.rst @@ -3,7 +3,7 @@ Template Switch .. seo:: :description: Instructions for setting up template switches that can execute arbitrary actions when turned on or off. - :image: description.png + :image: description.svg The ``template`` switch platform allows you to create simple switches out of just actions and an optional value lambda. Once defined, it will automatically appear in Home Assistant diff --git a/components/switch/uart.rst b/components/switch/uart.rst index 4aefa9344..cf1518a03 100644 --- a/components/switch/uart.rst +++ b/components/switch/uart.rst @@ -3,7 +3,7 @@ UART Switch .. seo:: :description: Instructions for setting up UART switches in ESPHome that can output arbitrary UART sequences when activated. - :image: uart.png + :image: uart.svg The ``uart`` switch platform allows you to send a pre-defined sequence of bytes on a :doc:`UART bus ` when triggered. diff --git a/components/text_sensor/ble_scanner.rst b/components/text_sensor/ble_scanner.rst index 4fccf2d37..3d21c3df1 100644 --- a/components/text_sensor/ble_scanner.rst +++ b/components/text_sensor/ble_scanner.rst @@ -3,7 +3,7 @@ ESP32 Bluetooth Low Energy Scanner .. seo:: :description: Instructions for setting up BLE text sensors for the ESP32. - :image: bluetooth.png + :image: bluetooth.svg :keywords: ESP32 The ``ble_scanner`` text sensor platform lets you track reachable BLE devices. diff --git a/components/text_sensor/homeassistant.rst b/components/text_sensor/homeassistant.rst index 08ab13580..ed9ce523b 100644 --- a/components/text_sensor/homeassistant.rst +++ b/components/text_sensor/homeassistant.rst @@ -3,7 +3,7 @@ Home Assistant Text Sensor .. seo:: :description: Instructions for setting up Home Assistant text sensors with ESPHome that import states from your Home Assistant instance. - :image: home-assistant.png + :image: home-assistant.svg The ``homeassistant`` text sensor platform allows you to create a sensors that import states from your Home Assistant instance using the :doc:`native API `. diff --git a/components/text_sensor/index.rst b/components/text_sensor/index.rst index 5a23856b5..c2a643442 100644 --- a/components/text_sensor/index.rst +++ b/components/text_sensor/index.rst @@ -3,7 +3,7 @@ Text Sensor Component .. seo:: :description: Instructions for setting up text sensors that represent their state as a string of text. - :image: folder-open.png + :image: folder-open.svg Text sensors are a lot like normal :doc:`sensors `. But where the "normal" sensors only represent sensors that output **numbers**, this diff --git a/components/text_sensor/modbus_controller.rst b/components/text_sensor/modbus_controller.rst index 9d918ddd9..51ef36880 100644 --- a/components/text_sensor/modbus_controller.rst +++ b/components/text_sensor/modbus_controller.rst @@ -3,7 +3,6 @@ Modbus Text Sensor .. seo:: :description: Instructions for setting up a modbus_controller modbus text sensor. - :image: modbus_controller.png The ``modbus_controller`` sensor platform creates a text sensor from a modbus_controller component and requires :doc:`/components/modbus_controller` to be configured. diff --git a/components/text_sensor/template.rst b/components/text_sensor/template.rst index 3f50cd28d..60994ed8c 100644 --- a/components/text_sensor/template.rst +++ b/components/text_sensor/template.rst @@ -3,7 +3,7 @@ Template Text Sensor .. seo:: :description: Instructions for setting up template text sensors in ESPHome - :image: description.png + :image: description.svg The ``template`` text sensor platform allows you to create a text sensor with templated values using :ref:`lambdas `. diff --git a/components/text_sensor/version.rst b/components/text_sensor/version.rst index 3d9a44c1d..606de874a 100644 --- a/components/text_sensor/version.rst +++ b/components/text_sensor/version.rst @@ -3,7 +3,7 @@ Version Text Sensor .. seo:: :description: Instructions for setting up version text sensors. - :image: new-box.png + :image: new-box.svg The ``version`` text sensor platform exposes the ESPHome version the firmware was compiled against as a text sensor. diff --git a/components/text_sensor/wifi_info.rst b/components/text_sensor/wifi_info.rst index 28ea7f6ce..127c98a04 100644 --- a/components/text_sensor/wifi_info.rst +++ b/components/text_sensor/wifi_info.rst @@ -3,7 +3,7 @@ WiFi Info Text Sensor .. seo:: :description: Instructions for setting up WiFi info text sensors. - :image: network-wifi.png + :image: network-wifi.svg The ``wifi_info`` text sensor platform exposes different WiFi information via text sensors. diff --git a/components/time.rst b/components/time.rst index 36be7588f..6e418db43 100644 --- a/components/time.rst +++ b/components/time.rst @@ -5,7 +5,7 @@ Time .. seo:: :description: Instructions for setting up real time clock sources in ESPHome like network based time. - :image: clock-outline.png + :image: clock-outline.svg :keywords: GPS, NTP, RTC, SNTP The ``time`` component allows you to set up real time clock time sources for ESPHome. diff --git a/components/uart.rst b/components/uart.rst index beb68c4da..214842b34 100644 --- a/components/uart.rst +++ b/components/uart.rst @@ -5,7 +5,7 @@ UART Bus .. seo:: :description: Instructions for setting up a UART serial bus on ESPs - :image: uart.png + :image: uart.svg :keywords: UART, serial bus UART is a common serial protocol for a lot of devices. For example, when uploading a binary to your ESP diff --git a/components/web_server.rst b/components/web_server.rst index ebe569eef..fdc4ff25a 100644 --- a/components/web_server.rst +++ b/components/web_server.rst @@ -3,7 +3,7 @@ Web Server Component .. seo:: :description: Instructions for setting up a web server in ESPHome. - :image: http.png + :image: http.svg :keywords: web server, http, REST API The ``web_server`` component creates a simple web server on the node that can be accessed diff --git a/components/wifi.rst b/components/wifi.rst index fb2570a0b..7468c9412 100644 --- a/components/wifi.rst +++ b/components/wifi.rst @@ -3,7 +3,7 @@ WiFi Component .. seo:: :description: Instructions for setting up the WiFi configuration for your ESP node in ESPHome. - :image: network-wifi.png + :image: network-wifi.svg :keywords: WiFi, WLAN, ESP8266, ESP32 This core ESPHome component sets up WiFi connections to access points diff --git a/cookbook/arduino_port_extender.rst b/cookbook/arduino_port_extender.rst index 03c49d73e..3635b5d89 100644 --- a/cookbook/arduino_port_extender.rst +++ b/cookbook/arduino_port_extender.rst @@ -3,7 +3,7 @@ Arduino Port Expander .. seo:: :description: Instructions on using an Arduino board, like the Pro Mini for expanding ports of an ESPHome node - :image: arduino_pro_mini.jpg + :image: arduino_logo.svg :keywords: Arduino port expander extender ESPHome With this sketch you can control pins of a remote Arduino board through ESPHome. The Arduino acts as a port diff --git a/cookbook/display_time_temp_oled.rst b/cookbook/display_time_temp_oled.rst index e8ea37642..ea3317f12 100644 --- a/cookbook/display_time_temp_oled.rst +++ b/cookbook/display_time_temp_oled.rst @@ -3,7 +3,6 @@ Time & Temperature on OLED Display .. seo:: :description: Instructions for setting up a display in ESPHome to show sensor values from Home Assistant - :image: display_time_temp_oled_1.jpg :keywords: Display .. figure:: images/display_time_temp_oled_1.jpg diff --git a/cookbook/endstop-cover.rst b/cookbook/endstop-cover.rst index 501c15155..eafc4c86e 100644 --- a/cookbook/endstop-cover.rst +++ b/cookbook/endstop-cover.rst @@ -3,7 +3,7 @@ Template Cover with Endstops .. seo:: :description: An example of how to integrate covers with endstops in ESPHome. - :image: window-open.jpg + :image: window-open.svg The following is an example configuration for controlling covers (like window blinds etc) with ESPHome. This guide assumes that the cover is set up with two endstops at the top diff --git a/cookbook/garage-door.rst b/cookbook/garage-door.rst index 319cb8683..542bf4d14 100644 --- a/cookbook/garage-door.rst +++ b/cookbook/garage-door.rst @@ -3,7 +3,7 @@ Simple Garage Door .. seo:: :description: Instructions for setting up a simple garage door in ESPHome. - :image: window-open.png + :image: window-open.svg The following is a possible configuration file for garage doors that are controlled by two relays: One for opening and another one for closing the garage door. When either one of them is turned on diff --git a/cookbook/infostrip.rst b/cookbook/infostrip.rst index ec6c1d9a3..323a97114 100644 --- a/cookbook/infostrip.rst +++ b/cookbook/infostrip.rst @@ -3,7 +3,7 @@ Infostripe .. seo:: :description: Simple visualisation of Home Assistant states using a Neopixel stripe - :image: infostrip-detai.jpg + :image: /cookbook/images/infostrip-detail.jpg :keywords: Neopixel Showing the current status of sensor states using a Neopixel (WS2812B) strip is a simple way to communicate states to the user. diff --git a/cookbook/leak-detector-m5stickC.rst b/cookbook/leak-detector-m5stickC.rst index f42a737f3..378cbe518 100644 --- a/cookbook/leak-detector-m5stickC.rst +++ b/cookbook/leak-detector-m5stickC.rst @@ -4,7 +4,6 @@ ESP32 Water Leak Detector (with notification) .. seo:: :description: Water leak detector with ESPHome on an M5StickC ESP32 - :image: images/leak-detector-m5stickC_dry.jpg :keywords: Leak Detector M5StickC M5Stack M5Atom Using the ESP32's capacitive touch GPIOs, it's relatively easy to build a water leak detector using ESPHome. M5StickC was chosen as a platform due to the integrated Grove connector for clean connections and the fact it's well housed. The built-in display is a bonus, but not strictly necessary. Notifications are performed via HomeAssistant's 'alert' and 'notify' facilities, which send via Pushover to iOS & Android. diff --git a/cookbook/sonoff-basic-light-switch.rst b/cookbook/sonoff-basic-light-switch.rst index 6fa6bab26..f1de674cf 100644 --- a/cookbook/sonoff-basic-light-switch.rst +++ b/cookbook/sonoff-basic-light-switch.rst @@ -3,7 +3,6 @@ DIY Light switch using a Sonoff Basic .. seo:: :description: An example of how to integrate a light switch into Home Assistant using ESPHome - :image: sonoff_light_switch.png :keywords: Relay, Sonoff Basic, Sonoff Dual Dual R1, Light, HASS, Home Assistant, ESPHome .. note:: diff --git a/cookbook/sonoff-dual-light-switch.rst b/cookbook/sonoff-dual-light-switch.rst index 60a224058..3612fccac 100644 --- a/cookbook/sonoff-dual-light-switch.rst +++ b/cookbook/sonoff-dual-light-switch.rst @@ -3,7 +3,6 @@ DIY Light switch using a Sonoff Dual .. seo:: :description: An example of how to integrate a dual light switch into Home Assistant using ESPHome - :image: sonoff_light_switch.png :keywords: Relay, Sonoff Dual Dual R1, Light, HASS, Home Assistant, ESPHome .. note:: diff --git a/cookbook/sonoff-fishpond-pump.rst b/cookbook/sonoff-fishpond-pump.rst index 8091a8228..0a9a63a00 100644 --- a/cookbook/sonoff-fishpond-pump.rst +++ b/cookbook/sonoff-fishpond-pump.rst @@ -3,7 +3,7 @@ Sonoff Fish Pond Pump .. seo:: :description: Making an automated fish pond pump with timing and auto stop safety with Sonoff Basic ESP8266 chip - :image: images/sonoff-fishpond-pump-installed.jpg + :image: cookbook-sonoff-fishpond-pump.jpg :keywords: sonoff, esp8266, home automation, ESPHome, hass, home assistant .. figure:: images/sonoff-fishpond.jpg diff --git a/cookbook/sonoff-light-switch.rst b/cookbook/sonoff-light-switch.rst index c5e72a171..e6cf29a9a 100644 --- a/cookbook/sonoff-light-switch.rst +++ b/cookbook/sonoff-light-switch.rst @@ -3,7 +3,6 @@ Sonoff Light switch options .. seo:: :description: A series of options on using Sonoff devices as a light switch within ESPHome - :image: sonoff_light_switch.jpg :keywords: Relay, Sonoff Basic, Sonoff Dual Dual R1, Light, HASS, Home Assistant, ESPHome There are a number of options for using Sonoff Devices as light switches, including purpose built ones diff --git a/cookbook/teckin_sb50.rst b/cookbook/teckin_sb50.rst index acdbb379e..53133dba8 100644 --- a/cookbook/teckin_sb50.rst +++ b/cookbook/teckin_sb50.rst @@ -3,7 +3,7 @@ TECKIN SB50 LED Bulb .. seo:: :description: ESPHome configuration for Teckin SB50 LED Bulb. - :image: images/teckin_sb50.jpg + :image: teckin_sb50.jpg :keywords: Teckin SB50 .. figure:: images/teckin_sb50.jpg diff --git a/cookbook/tracer-an.rst b/cookbook/tracer-an.rst index 3ccb1ea41..9828a30e2 100644 --- a/cookbook/tracer-an.rst +++ b/cookbook/tracer-an.rst @@ -2,7 +2,7 @@ EPEVER® MPPT Solar Charge Controller Tracer-AN Series ===================================================== .. seo:: :description: ESPHome configuration for EPEVER® MPPT Solar Charge Controller Tracer-AN Series - :image: images/mages/tracer-an.jpg + :image: tracer-an.jpg :keywords: EPEVER Tracer .. figure:: images/tracer-an.jpg @@ -33,7 +33,7 @@ Below is the ESPHome configuration file that will get you up and running. This a arduino_version: latest platformio_options: ## larger stack size required with all registers enable_load_test - ## reduce registers or wait for integration of 2.0.0 arduinoespressif32 + ## reduce registers or wait for integration of 2.0.0 arduinoespressif32 ## not yet working needs 2.0 build_flags: - -DCONFIG_ARDUINO_LOOP_STACK_SIZE=32768 @@ -136,7 +136,7 @@ Below is the ESPHome configuration file that will get you up and running. This a mqtt: id: mqtt_client - + uart: id: mod_bus tx_pin: 19 @@ -163,7 +163,7 @@ Below is the ESPHome configuration file that will get you up and running. This a tracer-real-time: !include tracer-real-time.yaml tracer-stats: !include tracer-stats.yaml #tracer-settings: !include tracer-settings.yaml - + sensor: - platform: template accuracy_decimals: 0 @@ -305,7 +305,7 @@ Below is the ESPHome configuration file that will get you up and running. This a The definitions for most sensors is included using Packages -Rated Datum registers +Rated Datum registers tracer-rated-datum.yaml @@ -624,7 +624,7 @@ tracer-real-time.yaml Statistic registers tracer-stats.yaml - + .. code-block:: yaml sensor: diff --git a/cookbook/uart_text_sensor.rst b/cookbook/uart_text_sensor.rst index 5a578aa29..5278d8fb5 100644 --- a/cookbook/uart_text_sensor.rst +++ b/cookbook/uart_text_sensor.rst @@ -3,7 +3,7 @@ Custom UART Text Sensor .. seo:: :description: Instructions for setting up a custom uart text sensor. - :image: language-cpp.png + :image: language-cpp.svg Lots of devices communicate using the UART protocol. If you want to read lines from uart to a Text Sensor you can do so using this code example. diff --git a/devices/esp32.rst b/devices/esp32.rst index 0ecaafb1e..2e236bc04 100644 --- a/devices/esp32.rst +++ b/devices/esp32.rst @@ -3,7 +3,7 @@ Generic ESP32 .. seo:: :description: Information about how to use generic ESP32 boards in ESPHome. - :image: esp32.png + :image: esp32.svg :keywords: ESP32 All devices based on the original ESP32 are supported by ESPHome. Simply select ``ESP32`` when diff --git a/devices/esp8266.rst b/devices/esp8266.rst index a2cf4c7d2..92045866d 100644 --- a/devices/esp8266.rst +++ b/devices/esp8266.rst @@ -3,7 +3,7 @@ Generic ESP8266 .. seo:: :description: Instructions for using generic ESP8266s with ESPHome. - :image: esp8266.png + :image: esp8266.svg :keywords: ESP8266 All ESP8266-based devices are supported by ESPHome. Simply select ``ESP8266`` when diff --git a/devices/sonoff.rst b/devices/sonoff.rst index 9bb2eca46..e0ec5fe0e 100644 --- a/devices/sonoff.rst +++ b/devices/sonoff.rst @@ -3,7 +3,7 @@ Generic Sonoff .. seo:: :description: Instructions for using generic Sonoff devices with ESPHome. - :image: sonoff.png + :image: sonoff.svg In principle ESPHome supports all Sonoff devices, but as these devices are quite cheap and shipping from China takes a long time, I've only set up dedicated guides for the diff --git a/guides/automations.rst b/guides/automations.rst index 9f88b36a0..7e737147e 100644 --- a/guides/automations.rst +++ b/guides/automations.rst @@ -5,7 +5,7 @@ Automations and Templates .. seo:: :description: Getting started guide for automations in ESPHome. - :image: auto-fix.png + :image: auto-fix.svg Automations and templates are two very powerful aspects of ESPHome. Automations allow you to perform actions under certain conditions and templates are a way to easily diff --git a/guides/configuration-types.rst b/guides/configuration-types.rst index c75032db6..16b63c774 100644 --- a/guides/configuration-types.rst +++ b/guides/configuration-types.rst @@ -3,7 +3,7 @@ Configuration Types .. seo:: :description: Documentation of different configuration types in ESPHome - :image: settings.png + :image: settings.svg ESPHome’s configuration files have several configuration types. This page describes them. diff --git a/guides/contributing.rst b/guides/contributing.rst index 75e8be922..336cae91f 100644 --- a/guides/contributing.rst +++ b/guides/contributing.rst @@ -3,7 +3,7 @@ Contributing .. seo:: :description: Getting started guide for contributing to the ESPHome project - :image: github-circle.png + :image: github-circle.svg Contributions to the ESPHome suite are very welcome! All the code for the projects is hosted on GitHub and you can find the sources here: diff --git a/guides/diy.rst b/guides/diy.rst index 2126c8560..0aff2efe5 100644 --- a/guides/diy.rst +++ b/guides/diy.rst @@ -3,7 +3,7 @@ DIY Examples .. seo:: :description: Community curated list of DIY creations and custom code for ESPHome. - :image: earth.png + :image: earth.svg This is a curated list of awesome creations with ESPHome containing various custom components, blog posts, videos and sample configurations. It should serve as a means of diff --git a/guides/faq.rst b/guides/faq.rst index cddaad5c1..9947f4ade 100644 --- a/guides/faq.rst +++ b/guides/faq.rst @@ -3,7 +3,7 @@ Frequently Asked Questions .. seo:: :description: Frequently asked questions in ESPHome. - :image: question_answer.png + :image: question_answer.svg Tips for using ESPHome ---------------------- diff --git a/guides/getting_started_command_line.rst b/guides/getting_started_command_line.rst index 525696804..cd574c44f 100644 --- a/guides/getting_started_command_line.rst +++ b/guides/getting_started_command_line.rst @@ -3,7 +3,7 @@ Getting Started with ESPHome .. seo:: :description: Getting Started guide for installing ESPHome using the command line and creating a basic configuration. - :image: console.png + :image: console.svg ESPHome is the perfect solution for creating custom firmwares for your ESP8266/ESP32 boards. In this guide we’ll go through how to set up a diff --git a/guides/getting_started_hassio.rst b/guides/getting_started_hassio.rst index 00f8643ab..2569063d9 100644 --- a/guides/getting_started_hassio.rst +++ b/guides/getting_started_hassio.rst @@ -3,7 +3,7 @@ Getting Started with ESPHome and Home Assistant .. seo:: :description: Getting Started guide for installing ESPHome Dashboard as a Home Assistant add-on and creating a basic configuration. - :image: home-assistant.png + :image: home-assistant.svg ESPHome is the perfect solution for creating custom firmware for your ESP8266/ESP32 boards. In this guide we’ll go through how to setup a diff --git a/guides/migrate_espeasy.rst b/guides/migrate_espeasy.rst index bfc61a8ec..6eba19454 100644 --- a/guides/migrate_espeasy.rst +++ b/guides/migrate_espeasy.rst @@ -3,7 +3,7 @@ Migrating from ESPEasy .. seo:: :description: Migration guide for installing ESPHome on ESPs running ESPEasy. - :image: espeasy.png + :image: espeasy.svg Migrating from previous ESPEasy setups is very easy. You just need to have ESPHome create a binary for you and then upload that in the ESPEasy web interface. diff --git a/guides/migrate_espurna.rst b/guides/migrate_espurna.rst index 6de6d808c..3d5b82a44 100644 --- a/guides/migrate_espurna.rst +++ b/guides/migrate_espurna.rst @@ -3,7 +3,7 @@ Migrating from ESPurna .. seo:: :description: Migration guide for installing ESPHome on ESPs running ESPurna. - :image: espurna.png + :image: espurna.svg Migrating from previous ESPurna setups is very easy. You just need to have ESPHome create a binary for you and then upload that in the ESPurna web interface. diff --git a/guides/migrate_sonoff_tasmota.rst b/guides/migrate_sonoff_tasmota.rst index d7b7c9172..a0ada06e4 100644 --- a/guides/migrate_sonoff_tasmota.rst +++ b/guides/migrate_sonoff_tasmota.rst @@ -3,7 +3,7 @@ Migrating from Sonoff Tasmota .. seo:: :description: Migration guide for installing ESPHome on ESPs running Sonoff Tasmota. - :image: tasmota.png + :image: tasmota.svg Migrating from previous Sonoff Tasmota setups is very easy. You just need to have ESPHome create a binary for you and then upload that in the Tasmota web interface. diff --git a/images/pmsa003i-full.jpg b/images/pmsa003i-full.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9adbd3bbb1d809ca78036160481c6a64d3c18e53 GIT binary patch literal 112565 zcmeEtWmKEp@^5h0;_jtDfZ*;<@#0b-cz_^5OIx5wp*TfK(Ndrkf(Lh6ytoE0?oJCW z?M+`h@BN>1);jloxa)p6PY6u*o|!!}`?u$rOv2B(pQ`{;Ej3Lw02&$qpn-Y-ey)+n zs0O+^0RTEW03HAUfD6DzBL`rhC^XaqfCd7fqi9;x(*#ZEH<|)Pd!b4HMsuR*i15tc zXmJ$%KH3$4iTaC@1bjw40m^n>Fh3th7Clc#7LXu|jvd(569)Bl0RV&qg#@Jp#ic-^ zEFe)SkcgD9B!J~VxB&kV*FP&l8H1gK@uvr9f=QTv(JCp)ztNb2lH!1Tw10S?kN&4O z=&AV_f6)TJJo~%-!cu~$ABlfC<^qFxNeKve`tsX3KImw1DLcBjY6SZ@8U^b<00%?Bk`8S0ax5}| zQh^>`9*!_OmOu}8PhY7(S+?JlOQGmr!vbt9zp=m|vTSBL`Yg&&)E0>Hi|`Awp`?8r zoTLm@)c%k~y^>}7!^nVu0R8}BeyESL07z0&Qb15hKu8FP;sE*vdBW@hfu6qXe`-*1 z^acC4dcjV6tqem47$M!|N}#|I+tA8SVT~*8i&@Iig_sTa-{7za08g zt&YyW=KnLO9v**j`@&THQ8xW6?SFFnJ_z!16fku3h5Gq`9aa4uJz?yBF6IFKOV-QJ z$NjgsIDiEl-5otpY`!StKz}Xef5A=a zzN51pI7n0ffwGFLv!gGHPeoNxQcz7*4J0WjuBaj@A}S#S5(9yRl~qMmg+WTnf0x!& zR@V1{I=Q-|5aw&BuEe6Lsw@VQ6cYmq@uPO>AItoL%MU#Jr-z|O}}(HRw8SvJLA z8I?u<&!fkptjr=L2$E#s{_8$-kL?dhu#26ivm?ql)YD8|Iej?aPc@z!)l?S0de^~H$g#Aa${?A4J z@cDmJ{P&dod)|fmC__=VPcZCPHe>nU=UpE-x|>3MP&aC}|2bpq^Y3O99eh*+QMnqG zP5(&>HKz>o3HsMF`rzM=+`klZh5Z{LLsV(46*l&XiF>z^k60`_ll|65(~=Mbvc z_(lFzwfsk+{=Wjje}(=Vf&WI}zY+Lv1pXU=|3={d-w6Dp@8Rf)s>uUTT@Ap`L%`xc zN_k;^L4bskrVi$>b`k(k$be=6z@X<;XF#>1&;jTS==uPT|HMBAbU6U-uOeSi93;ws zE)T#42@47fN-&^{|9xEMALB59*ngtDd zpC14WsIa1Ap#5sx{c)k8128aAR^p;&=};4>$-m74&@izu(6N6a0fZQ60CZ9eQdHM( zP0`?UV|fzWNAx-Xi;-KnR9u|a5I{;IRP4AS9eStMA{jWGlEX|5fa!it$QYJCeP$DrFZpTN>7pfj z1xyD{)*$bsj8Kc?;8Q`pQAB$->yt(R;Cn!at1-yug2f}rV!{$@hi4Gm_*q`&_0>jCG23i(cOW1C6+U8hP+=Cw!?NeH8 zAH4faX48UaZYz|erts1(Rhp$|AS86jk|@zFEG_a8ANf~xw@u83QLc1* zs!j&xNnUT&9O*b%ISBKUV|4PL6A%z`xb<>sC{m_o%03#I4)Bzk* zW(DDqp;&L|uecf>QCJxzDRd@hYK-tI;b7Xj6TPsdLw|`-p;jg_ZuuaBSKUSR(N4w3 zlp#!^D<31g-V6A=aQ*=u4O@yLfFZvtKVJgZu#3Wvn7yCXkJhHz(@fP~K@$^`?G7)q z%rfDy{rmkPL5mWa_f#BS2>(bcY-)lsYFSUACA&~D((VSHn%E;{^Rk_n8?yzInNg&& z?)O*_0E!HrbQ6o@NW#rKT$IZCn&`cuKrH@nwQ#FAJT&_@EQC}dE?YPOBOW2k@P6CL zy0@%e-gwvgz2h5Qu_oh<8+>V#$>cibdjKpoVVF{j{2glXgz2PYD~nG0Ys-fwYF$aE&7zJ3NYQE>?|&Y>JZ)V5t&?MXQWQ zI&apXpm6J45mIS6whwEEg5URMt;n3{X4eRL>E$t!#M~60Q}4He8_)M^pCs1AYbKlc zWKufbi}z9b@-_okqZ?C=`+n@Oo6w%%ss95Sf%Jk>p*X(ynf}>x%W~KAvR9Eb#z=PL z3(_ESj)?br{r!Uu_g$o-?*$l`dy>87O&&zZ+2Ri5iMZeFAK5d6sLWqG zDWwN0+#d-2pp4FZm#no<{d0RxWADuqYUd%S&yU=LNVqtULz=yVp|KnJTsb9-P|4hI z3g~YFbRn?#)CFHMF3eooY1Yje@r?F+*E@B6zpX<&ZKjg3;)+D%!?zp>SmooGcl-~O z_B2@?H1ubt_;vU>)2gPMlRy+ARAv#?49ddJyO^NrdfT#-8ZLW{gq5qW8Zu& z8%HJzp`#tX_9ei1dkC!E^e(CPSB27xBnk&;Q%j)57Hqkr3w+xkiElLJXe+3#8W!;a z{|LaLAc(*NPl%jLdy$u1^A%TgL|Zr+W52) zhHBi3#wQ{x=ITLPKRQazk&ZhekC^#G6GI9jl0GQdvZ6US@KgsArnB(!u$SR>E6iJ| zosR~?d!4qUgSnbpp|#6FUka}82fMe@C#uhS3dQ;>rqGZl}IAy`f)|sRN3Z(-GVUzQ5V3v+v zGE_`L+2?l81@!k{UZg;8I>nLqeLkVQ(?X^`jz;026?u(6P>bQajwqljZ!E;vs!wwMUl$G-B{rhYRy8k7g6)kWn^^+V_G8nJ5>(p6(0W5zAu)t?ITew^eGIg0d+Lq#5mN9mg!okU0OT-izw(*Mvfj?4ibbnb0ecGUJz^OI?HQ^Or`VVyTh%4XIY?5rlX z?+$B%_D3q&e7VkFZo#4^a~nho14cY=PRbzBc^49v)^a1m`&LJqv%6D+NSDgpo*BsM zqZ?z9vgXP8e!xh!T@))Apvg&?gc(6oPAl~N=Hn|^P^`s*^Q2KCF7B7lwCIG-G2d$t z$jx~)^H@sdq$iF_x?FzeLU(z@quxG@t7$TPDiIW9YJ3st1x`b@)$^8*bdPi`zJG{c z2;xo0|74J{XLDy)EyHr!Yil;Ak4x74Dl@2MWNhnHRCfN8?FGfk$j5=94rTIOU%w1( zb;Z)5z8QF0>*RJ>FsD_XrCwBuXWgt|Px+T#GW0||iXIJ#MV{EFagCGEZK}(gb)yFL_|3GbrhOadaVWph>K9-JB=HqY8gB5=SMPOB z3D!7<(IR=BvQnr-= zk645Z&V?bcLT>x>%_o>*O{9>td6{oU2;J@GT_I7ghmo5S{yQ!o8kKrAeDi`cJ+!;%YA^gT*X}A&>+zGx30S%}#TTg&jMtqlM>qEKJGLYW^z73?uS_3Y z6@dy9bVV#>a!jJjy!~#82)=*uSe#8QtlA2EOfC1S(Lda*0r$#`6CPw8Z(BS|NE!vg zjm%<1=5z-ozR&Qv^?V?66{oZGr1c9VI_W}E?)+tKr;~^8h>>HZvb=I=@m4}h3UJBU ztK{9u{B80_Mo*_Gerz=ps$$tXt2#fCZ_RZL`wy#T51PF%@EZlx%GA|>wM7g%TVD+H ze4&G<+1rn#bquv9Y=sZ;%rX}kntziNfc^B5ChkT-n;cU+s@M4Ksp3z5_Dlo0Hzo@U7>ZmXl#KC@j*FraNyz%SBdvD?Ai z&N^Y!X_G7yccfc2QlYW>Wu!Z%HrksNjPcpN+m|0UTkdT3aN(#wtbf)z<#d0)o(5Sa zBmIPWTqb&WEBHsWDWM#g?&!(+O#%UUCHF6Fnott)(HY?`TmKCd9pb{ zSy&x@{zIO6^i91PXH=JYB~Sejo?`;22M92|W#-mxgeJ^t( z%_2*oilK4gN}sj>-mOb_|7<+itZUu-1qQYHai)a`#1YkiZGu@kFF7xH3k`lJpo=|} z6+@dfwt8^Dko>Lfh7lm4ke1Nmyqd(~v*b^JiA>^SHR_lpH-t4a)8cx7%$G{3qy^pY zRsK?kim5eplWimC4&a?o`&?`XJ>BwkPMYE|Q7<(CoYhP9OzDIx03ZOJt6iPNY%#skw zMYr^BB6nc(I;VOo&DlN^>`nx6GU1e@V2oyes^Zp0G9aZ~e(u3lWwl(HFIh3M)Gzv7 zj{+vMG(%xFL%9g0gtr#59)r%@tKQGp);5`Q@Uh&tF9~%_U?;#buuV#)Qvjexyx_nj z&8Np-M+XkF7ll99-~-rUzwaf*;f?EkQPw%mgy{6V5gzeqcoU_k9W&&NJc70R%?BM0 z*x!sM@8}=-S>qTT$v~l1J47S~Z_d`6&O;!PZD;tpI#G=CgvNdqoEdY*jupJESkS$6%r^9QL`^XA zE{Wx{WPO?9r$pN=kD7<~pU_W!xy9)KZstt;@1HG2wm+VbP6TarB|foHe36UxN4aAz2x^OI;GkaD=1V^4rhXCam&N_ z-XGHac_1s}Yi->@sFOWu5)vFS6n3_^ZvXTNV z(b77LK5!%nqJ@Trfx}g+R9K<}t7fEL5(wkCWP$d!6>*m6%R!L;mo*CU%4c0)6zGZ%!_sH z_=^p=EAeJ;*eX9dZ~uwJ-SzbxxQB0tw*qC?{qx=*A(gqyBrm1J7cBv9p3jHBJZ_X$ zk9@YW^ofAOp*%#FgN2$Ugo&CP2#1z?^24=LWQuw_RP3YcbeWgcjH`5FammtuHM64b%8C`^_kJiBjWJQcZ ztppeuu)_|OArX`9&xZW!g1xY3l1`@2L`?VSV$?6MrFa`M_+igk8DUa8fsAjtDyZFN zx!D_75~6jaE!WawAz-{hL;zMB+(QZ|-*I0^WAn!>m+7Hu{AAW6j`&Zi&>R>N$xvay zG>YpA$(tr8Q7?eIlcK3GlGTZJ<;l7$cUm z{^lCU>CW1ID3I0$-z5%)DtJZJ>mdqrO-Gu}+NmSoT6Uha=H+oD1l`R!GmXHWl@+1B zTikSwdDt0=K%Cc6%SI$Iwt2cfs`V^XrH^0J?`z-QJLd%6zOXMlMxFNNu`=lLa6gA81z`73U zW^b(fmThujaXL`elIRj<5B1eAslPC_#;;<>*V9O5VB%F{<0japlnUBQKjf z=o=Me3_eu1eT%Vc#1`nhX~;z0ZH@hhb3rVwB@kr27KWlnpp}PsYQ;uxG&fJh^3<2$ z6sCu>+AXC>g6$KG($fw9Hy_M$$X{jIkh;wzFTc=EVj3xU>RmnQx+n=S<-O$ho>Na< zMc2o|@wz;dv@w|Z&QFR34b`7@<@E5%j^QQ=h#0Rj?V3SKY%(SnA^k826C7CK7}|AQ zF706YY?6k@_%j)du)1JZw0=gw1a~CTNO8A2AjZ7z>)^#~u-;#3R6LADgr3_N;5eSg^$B1{EK$w!|;QM zg#j*FWpeu}=_b@&E=XmUh$$N$|Dz=+=yT{>z~B}Je8Bz* z8ZmrtqQ1T*BbeVNf3k#N+NOBsDi4|4X%dd%0&Q8huAG=tj@s8q$%>toJH)OysYi?# z$v387uc*7{;j33dWmA{P=iC+7 z?$GFnPieu^BPL;7>Iq*~PdlMQ^mLed<+MpV5=nTsxqlmOiq4La79BH z5%KmgTNFB`jY`X^ml`WPPy9Dr@M~wW-?%Hbi zlz+tZ8Qe~(FAQ>(OHd<>lyn^(^a7C6i5A^j-=w=IP}OUj#I7=#bYqepN|KUJd|hRG zy=`{~nbn~{b~HX_!FcKVNqY5zG8yb3KEa#!>F~rW4l&zdu+xXRA_ud$lQy`{nFOTu zi{wyxb;#Rcb)+t{P+z5^?f3?}F;mzmJT8`WpE1t& zCh!OJC4RWscCJzK7HRBAdvYH zpZbg^jp50?RAkBny%W*Jk0So|gX=k3_F)Q)`z~+++?+zh!eUg{Sz8-@(cOb3*FKk| zcIpU8+cj1C<-NIz>Af1Rrj5$HKJAB{QcQ541he93U_vUTlY56paBZIxo_XVSQuSK7 z7mq9!9N|IUT3qW!_wi%0I=%Y}BO!r?M? zD~3HDiVH`K&0feWJOaEFZ=}`6@_jOicaSK&BOxJ1`|oLjI*_7znm(D9>oDVT(c$6G zOXg1o7I?!+_B$U|LHDo|i4|MVm%i~!H>rm%Z?*~Go~XaF{84T|oCI#;em=oGA|F{~ zlGB!_zs9IBldF|toIGi|pwQ-bb^i>{T6bf5JfM`q?|wzpYm4$xEJfL-;>R)^slrFB zaE27g?XM(y@<~$0K>xUQ;mLq#BKMP+aTy#X8%60K@4`(ny|S0cHm+RA;FN14x@LXP z;hzsdBOUtPR-$7+=xn4&Iui=}R-Xdin-f8&%pTTByly+lrPjne)uceum03W9`e@09 z-dBA}dQ{lA4m9^Od$$hG4badtY-A4o!4_WPT)JLB) zv0PUDHLND^#cTxV_~ zoc_4YPmc-@kw-{)LP!)Eg--wGn@ET9=AO?hP8W*FXax%+-?AiB9_17l?~3=ylHk0Q z;qAGdp0j4`XBcqRTbiIH^!&KuUf%!U;>GL2pMZ>wp8%3k-HA8usyPXh3}&wh9#q=l zoSkHCksfO|xQ?PJt4*g*mlC-gZ9rzIYkUUJK0jEgdwMoOyn5|(?Ipz|>9zqsE^dh$ zA7_s^!kQ5oBJ@Z04{3I(Gf#XIgylVvwnQ; z;oYVY`5r_=|6b_S8Dq$Z>%DsOLiC>sp6 z7ob1&eeOLpeusMn>5B9VDp%+u{yL<+?&HkQz+=KlUv2tYCg45IP*ih5^iO~wz4fsz zP7~Q%W@HX~_R42|>9WM+onZaGr#$^>ixIUc!6wnuzU&Ul9A^7>uTp;k@>$yw)gLnR zvx@pww~3MnfYZ2acaK!mn<}OLKKB=i( zA^>H~%LMG*a3psAU`CxywJZN9#L$Gd4MB{2uT|M(wN!W=<-9LjzwtqN3Uy;kMJgxR z0>rs$zI`4ZOWh_xV!?j6i6%iz|9+FFx!nO)WTEo_O$?*E5x5Z`Cb1aqt3Z$ ztxrXd1D~GnTNq*mQ(^bP%WAME;;_XOb%?(AZAc}&B_-AI0^c9GJF5SbeZ1f->+2Ol zPGgOhp%Hz$)LB-Jnvo6`oc)^QF|m5*eH%RhsBNJ7(Vn$v z+3Fd*?wr*vTHv8c1vXWC&u;gv@)E%tm`{|#O1r_MrMqB~YrI?YHAu9rufsA@U*GIN zV&PMAhTDxsJWG2p#@J5)0Zr#P@-uOw(`07;s zjaB4}cD1@5j9i9G`#|Ke<|p@4PoDPvRN9S9QmLwNHs z=L2#a;dajW7K&tR_%6BVH6!#Z-D>vPOmW*Ms|)6+@%?4WV8g+JC~jJx?_MvigE;hp zy!V3pFy0zqAO1*!)wCN?v?W$c96L~zo24sl4}lQ}3z@jM9S9tzY#bRek^TxZ;$8=K zNTWZ&9Heop$1t-Qa_+FRt%?#K>WaOKq9_YRm5nS*YbR8>IP|GSu!A zFd$sDq9@zOOJri-nnay~Jtf#SbNcn>q&a9`u*;d2z0%NqADG~W=be6w<tDiD{qh12fJ zqkF#43mo0UTd%Q?OsNxvQw_v554>ryoK%6Ger5jflxq@W)6dFRDaCA+mZ8(F!N+{5 zqn{{GGg-Bip^Mkv^&uAMHr`Xo%u+T(b9?!vY}u6hME7ljknMT z)zkYl6hA!+*DeDu8d)+BcBCed`Lgp3^qrvzH36d+#VPoGv#rl$B)qJOvPB;hxt*V8 zN?od4vBIge-@zw}|6>>CZ54A`=kV6Y48WmP{pEKl>FuI+RACUx|2^2(sz+EZI z&{4JPq&kBZ;u#(Sz~}oWIU!t`r;@F@vb&cr46^G=Y_sF zYkElJvG3?=u(E|Fg)NS3Ikveq+t;0KA{`00#3R0e7dJ3bP_@!<`V;O?ueKYwbxxM8 z?pSuZbuGufyvl#%2=^~rywSh^+OQ7)hs9fThQ|lxp2T3mCavUk0>+#MtwEm2g6`R$ zfIChHncS|Qo`gIPK72fItYX`cm^xN}aKt*MBYW^6&8uqmW%@#V*9 z*z!dNxe!oV6TlQpVq3gRc$48oGKg;}5BucrU~p2E&1aDq#QSBKX1VY!!4HyGc0q0N zUFup2L!8O#(#8aza;5!l<=18L!4L11Du~J+Ja_OVvTyJ=AJ{!fjKH3>J&4aOuuZNi z{3?qyoHzS!-TLgbF{>`^8)Elk^2l6G=(bfA%w;>RCI*$gdQnYc=KEV$wT<295&a)E zP5X^$SvM z>`J!;*Ss}Og6FbnPzR^j8MQXLQ_~@v`Yps-y0lZ4_>CW26LSV4BHXG+0Y5P4-&vmf zv196f@}4T|$`Zc&1LJ)8lN(7e*gjk)N=w2rfRnF3Mf2n-4MehAmULT4T=po4V3XQa z$5zy|((NL%6_XUF9o05{tT>#QV!D(6EXZc;sRP|1Brn{u{fPJEF3P zon+7kfhFPgSP|p(CE*nRXUj!YYj&Kj!Kva~fMc$e!xrNDtg&zU!vJT14lsbQ*xw&X zi$Br!R-3(}f1xm|L>J%80^vD6s^w;!V1>xeb0@*x=C73gWJwZkY5YMa`xU|3BSOy* zVYB}3uXas8Zp0SYfhHH@-*IdXx$k`vf}7A_m7R1iMwyTLZun+D<+e>RqK%JPYe_ei zrJ(xCZ#XzpvFrSVclYxH(vO(t44c7&hb`g`6E4WvAeYTTaDxk4C06qe`f_^rb{*;Z z8{_7_r@C9J^~;sAcR%sfO3b871-`GI@7K+%fLG}yr+WawJzqzMKr`-xYC3*+W@->X}e&yap+P`J|Lg;>QZh8EOT%71| zoVV+fLf%!Vs_fbu&7lNwJh%BmB{j=_ ztW6R*E8}+zlNVbLzdr-6=SQv83_mLYgEDe{5UbDC4e-Vu+oP3ZAdNDj- z>~8g~EIu~Bod!MEY}LV3?&$lch8U6R03Tk?I8@ELQlx^d9q?`zBrM9MAjUt>74sbD z6Q?CfCGh=cns3N)`FD<8li{CAk%ZHCLv)K=D?OTjWU&`2zx8wXAHP_0Qs?g_2zZ;> zcziYsGKGM#jvx;11kc9O5F>|!J9*m7zAWFJ=-{GGfe`hSn{e}IRW%TX)E(8dF z|6&q|1^$7BRb)SFE7ATcX-?PI+4>LA*!#p5GTGuZUoD{rW#GG@=+CxMu9mqF<61*E zns2m(slsV_hF4@SF@xwl226)c9@!SjeBq;Y`uJG&@(#yqU{d!dQHx4HdYuanCmVUS zpMVKLg)bHei|nazTvq0R8B=w(e*IWpr(bMa)WjrvZ(aAB(=yad4FFfj|yDSHLyudAT*l<(3zQF z_m1%WHZ9`YQubp{VIsaOp$^-3_CIc(Cm^K4AsNEN4(O7cDXLX#YR;y9$nF--6~D8s zS*o{nZR)&Ko8j&JhZa+3lar3F=R%(dC)$+?!MTm<@IXe9WL*1H56IiJ(LDnhZ9$hy z&R26CB@W3C%CJlvYANr%z9tArh-#Nfl5pA95XJVHDHeCZ9Mc*&s8-`tW}r_@$TFe#lg*}f=KMQhMxb_3nIV39xk2utca50F z784VXnO}f)IkM{jJXH=8Ho+e3Co+5rLagj1{&2&OeW)c-FlG{p>Y zU2Z%`9ZA9^Ydd7xkYS|!aU;AgU@|np#pCxA(0j9)^Yzs?FFWg`1$V)wdK~8xpEv=3 z-aA;C&^}WT!SSh`Vp1Az@(4xG_G`LRhyZui<_S3VZ8*loBn9JPNqmi$x@h_mh z7GFPG%F5ggx{8#|e{b0Es%hhWBkCII-%OBeyc(7k6Hd}xK32~vx1w@8gW&t{_BD)wVbH+Bc%b)$Mw2!bB7+w z(tEsnQiSnfczfzrWO7V#$U6|S&_$tQMkKWb;dhiu_w;)8*8C>`7*H=wIvHQ}$x$V` zh@dF>*n1*CR=TdJik*-OsQIfHQf2V!L!}K|&MlzHxQXtiQJ>6P7+=aS^#z5g0z6K+^a+(7oKN z{N)@n&6B1mx7@!P;T&1rd+mhw6R;bVlQiw0w{WkMrsF3di+PIVvPN73(s%q5@W3f3 zkL_B~-Az+%J*707J~S)fL8(olkfhtowC_1XBM>9YDs(hxDE`;Uh9Wqk0FvXnpsc+~ z2`6pW(-H8Q)l0-^SQIk~Qcp2BX(;5lpKQ?NOaf`HFo}PE_8_Hxd0+HUp-h>OqT`dX zIr3BxCwImmZTb{el-@Uezh>CO|MBH=qH6Y zX@}hT%h)a9Ygn6sJ1eqQ)=h=veQ|BhM6TTxhVg1f?{;^G+~hAOY@+DImUFIoDIS%X zNdg=q;&iO)wX}`;*o*T8Ms^_j=?g+a6G``X=(c8J1B^ddg;mzZr4PeBH_IL}I?mcV zdK*kR!_r;p1Gi9h@&`H7;LKx?;^$IQrEPD{45_Jh-`sP4P-&?=Mx;wF)AqYuvi?fdUB&H)JI?F{z z0NK2y6($<)AvN*xri{)@d!IY@!0PdZ(6%%4{&m(^(&gRi@!4=hfC{MJ*Q{c5OOri<4SDax&f$-#C8ODotKm z3g9IP7#wmsU>CK>7ycng#7>fDPU6rwkzt;0E_V)c=0|;+= zxb;l*TuL1*=sPF!&h*`4f+3vCLFkJB3-)N(Tj~@sQe3FT7qt&FXH-px>Ulk@@%afC zGJ$~5MDE=(#~@wY!tObn&k5at3k*mjDR#ycPIzmi7N)8fVQcf7tH!5 zWk$4F-%@qXdfAQRUwf3guNPfX2S`7}l8#Iso~|gf@oN%FD>tfLG?tq2kf#le<&fom zoq7`)Z^DuOp?Pl%ok)5nRUNI!RfKqqxJ69e$Lk?R@7S34m<^ugxN>SYJzlf!@=`bI zuJEY&k^c;$^T|&D;4DbC?8*udvx<6yIl_=bIe5(iCkJ-z38TGyBBd?59@PKI^Fsr# z$zzvA>e4=ZT4u6ur544IB4D4n!B0RD^QF4Qc8OoHalFRk-4;YbhA$8Cax5J4;0)@IJ%HE46%P)*T-`liC zmAD&cF;}_o0-(8Qm1mNmd4jf2HZ_+?uY$MrUSc_q_v=?zRf`jHRuEI)tu%hccQDCs z1?jxbVdCeu?+JE~Q~faP&Ssl_ldWEwtB1aDrj^j=NNxbxNsJZnQJvW9&M{(_2}WE~ zNI+syEeBs3>8XtBJJLHAR(o^(1^2_o8|wNi*FOgjfZvvIi3Ppi0NOiT<`=lkp?VF# z1;U>I=J=4neQHjk1l+Sc{T@1m%+)4_4wSvtPQ-^!ljzX8NQ6<%yJBk0-F{Dfhrf8cBDoOdwV$=!jDIr;0eJcUGg~9T4 z3!Vx}HvvM6aY0hr%+)bB@9%0FntLEH>_)rmhZ`Jc7o()i=@W$Bt+H4**<=UFT)yVj z5Gn5cEG_byOtD0N~og@YSY`o^x`jyXW z#aJ}AJJ72|?Xrsn=J|Sx=@}&akg^-iYkI@CM1*QS?90Hl z6@tN@Mv^wo2-%i1q5lQpKpwxhEP=qbEg>F=U|qcS^V^}LptxP7a)3cJ1bm$@*&jTv zHs2^O2Wx_e2m}`h_}0r$2TPW&Q-@GF1$aHfXQvB-T+mLs0(3_x0_O#ydU2$7wlot+ z=n&xi6n2`9mkG^lgwaV1w7#LIHArsLnSI0zZM^n6Ctt~2$g0%t>(0XGZO{NM1JS!Qd0!lFjS;2t5ansWc|j4fccz`8%H$6Kt`O5k z*Ocx6BYV(7MuGpt067r=0Rsa91Ox;E2nPTF0000100IL95g`&W1rQT3AR;nBBS3+% zLZK8hLr_s*VUZOUBw~Pq@c-HX2mu2D0Y3r%0D)7~#{ksxW&UAqvNYjRahU2P(YNkt zC2T_ODzlG%7*vu;E44^(%OKn?5yg6+3SIs};Wh1c$K;&g+?7|yB8w5^s+y^4P2N!O zWMnQG#x{;*4{)0*z9S7d^Oae~CZEdO1w~l;SLz!oTGmd`;Ct_TS-Pp?kwu2(RdE^W zH^5f$1Xl{;-7+GX195)UMQm`k?kcm6K2Iz-{;AF`H$3TT-%R_Bz10 zMeP@|s;`=(d;~G!zl4jf8O6*er!L8^4i_FdY8x22RlIxJ9I0iJW2xr;Dr%S0yHiyM z5M<52{vFOMJGF=o8hzB!J{Oihe!=8<6~efwfb`_qHNnE;!1-FmUB=kYD>79@T(t+z zdoWJ;U9F3UaVARC2qU$`V{6Tdk%8l*KhUY5d@j)c00HDVm419Li#nL-lhUJ=vNuz9 zPH_w(!%@Nj}OtXeoEeN2xEX0X2cUCeoW+sz26toZG1)Y@2Qn zB77fL-8$geO9*fw$@*q*LZj$Z&^`y~e{3rur{Bd450u%VMZ@ESYL#kxg_(ev5N{~t z&~8Q5<(nl@zCC(Dx$VrtMaJq!I6EjgwOIULbVr*>Qp6lAQ-G1Z8UBS$3*ml;_8QXT zWLsnyO4dNI@U?}<3Y&#~DM}7#8es{sd%Gu?7d8l%N4`ouNyqe57V6`OKgg)>lD_SoHX#ZTD4lk;o2^j;4^%n&#Dw zClC9hc9Im4>usE#*2vzB-$JK>@IOQQbo5eBuu)P&OfGU!*Dm-8tPKj>gE4b}oi3l% z{{VIUPbjE$o4H2|S+|BMG!*SOz0==(asuhi0CT@8>O1+^vJKNqYesPK`K*ItpAdMm zb6X=s6MYJv2f+Og>_r3RHfT_A#zZwrx{e~u7ENGod9|h6BO@E>&)GP+#_lU+9Xq5^ zQnj77lkAT!o~@A<=UqjAI}o_YO(Lzo?;o1#7P&||gG!WZ9U1;+50 zNzAxSERV|&S}tzvpg90e0�Fa#P&tH`#2P8=ics8Za{C1-9*k=pMm-VA(y_@K;e^ z;xTF<+#p+6+x|bgE-h0xs?R!e0r)e03Yr%}?JnhIOT%QFF2GSm1wI*)w7yST0^G|3 za`gF}>^A`cWChezWcrgM4BNfbd$6Q|%ojb1>L1!MHN+c*iot)zKQtV5DPz{%u(WIV z6MYK*01lf~lpH=9U>zn(bDt�&4?y=GNaQWM%{Pf8B4MQPVxyP{1P}BdzbklAY0u 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 X()`^3`Pe-9;lND>se)5}lRy92P}Yiv literal 0 HcmV?d00001 diff --git a/index.rst b/index.rst index 636519e82..b368c5883 100644 --- a/index.rst +++ b/index.rst @@ -7,7 +7,7 @@ :description: ESPHome Homepage - Reimagining DIY Home Automation. ESPHome is a framework that tries to provide the best possible use experience for using ESP8266 and ESP32 microcontrollers for Home Automation. Just write a simple YAML configuration file and get your own customized firmware. - :image: logo.png + :image: logo.svg .. image:: /images/logo-text.svg diff --git a/seo.py b/seo.py index 1255a66cf..f8efb19f4 100644 --- a/seo.py +++ b/seo.py @@ -1,4 +1,5 @@ import re +from pathlib import Path from docutils import nodes from docutils.parsers.rst import Directive, directives @@ -124,8 +125,16 @@ class SEODirective(Directive): image = self.options.get("image") if image is not None: + local_img = image if not image.startswith("/"): + local_img = f"/images/{image}" image = "/_images/" + image + p = Path(__file__).parent / local_img[1:] + if not p.is_file(): + raise ValueError(f"File {p} for seo tag does not exist {self.state.document}") + + if image.endswith(".svg"): + image = image[:-len(".svg")] + ".png" self.options["image"] = env.config.html_baseurl + image return [SEONode(**self.options)] diff --git a/svg2png.py b/svg2png.py index fe5165aeb..95c31e5e8 100644 --- a/svg2png.py +++ b/svg2png.py @@ -9,8 +9,6 @@ import sys to_p = Path("svg2png") to_p.mkdir(exist_ok=True) -for f in to_p.glob("*.png"): - f.unlink() images = [ f @@ -27,23 +25,19 @@ def worker(): break to = to_p / item.with_suffix(".png").name + if to.is_file(): + q.task_done() + continue args = [ "inkscape", - "-z", - "-e", - str(to.absolute()), + f"--export-filename={to.absolute()}", "-w", "800", - "-background", - "white", + "--export-background=white", str(item.absolute()), ] print("Running: {}".format(" ".join(shlex.quote(x) for x in args))) - proc = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) - if b"Bitmap saved as" not in proc.stdout: - print("Error!") - print(proc.stdout) - sys.exit(1) + subprocess.check_call(args) q.task_done() diff --git a/svg2png/canbus.png b/svg2png/canbus.png new file mode 100644 index 0000000000000000000000000000000000000000..6257437b0208181b96129548ffba8bdfabd3071e GIT binary patch literal 25130 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 literal 0 HcmV?d00001 diff --git a/svg2png/fingerprint.png b/svg2png/fingerprint.png new file mode 100644 index 0000000000000000000000000000000000000000..3f5524f72504dff525ecd1931ad68e09359bbea1 GIT binary patch literal 61324 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≫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 literal 0 HcmV?d00001 diff --git a/svg2png/improv.png b/svg2png/improv.png new file mode 100644 index 0000000000000000000000000000000000000000..2ac6dac8b37e83885cc23443b746a6ee9b76c182 GIT binary patch literal 18762 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 TKjOG635mLjw(?^o^Q-?K6$BB* literal 0 HcmV?d00001 diff --git a/svg2png/made-for-esphome-black-on-transparent.png b/svg2png/made-for-esphome-black-on-transparent.png new file mode 100644 index 0000000000000000000000000000000000000000..967538bd7d3598ee0d86ce9c29c69e5c55a5ae5b GIT binary patch literal 29662 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 Xfju=v>ouOu$zi0wRWEb>0l)tMqT6La literal 0 HcmV?d00001 diff --git a/svg2png/made-for-esphome-black-on-white.png b/svg2png/made-for-esphome-black-on-white.png new file mode 100644 index 0000000000000000000000000000000000000000..06edeec480a20d5c3976d6a8493f817cad4102a2 GIT binary patch literal 29945 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%0D@aQyAeWVYm6 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�uFol$PrvG z>&IZ|Cr7xr5A|)h)sgC!& zZg0xVgPgiT&u9~=%Z_ZY(wW)Who=v0L5G9XNNQ(iC)1nOVX+3P4qxNm!;=C`rN`GN z9-L-QR%X9+rs!HQ4zs0I7gAj>vZCL;mYEaKyCaB42K?c-HtZ>}4rROi_&NCAv8KCW zV+zxIox_q<)?dfPPmhr0 zM&-S=u3bBP;shCCvGyW53rK4vm`H61$Q6?%3p9-3N zBEjStwbc_$7=h)1TgpDWuSLs3)I0nHV)?wEGUAnZ#@P{JVfr9`Vg`kPmnfG?nwn-d zo4fXLy$$58IMFMtCp|)F2tcB?MT~srrf6oI;#5cYTYW^TuW5 zsv#g5w~TtZ{4qoKCWc*K{n_0biEoC)S6G0j13}aMgh$QX?9SctFMzlUcj{GrwPm7m z8UaytD%_*g{SQ0V<93$zeCh6fjwX20^av48)%g`vsu9K?)mzSGG-eNZIonCkeb%Qr z>c_=wk5#kd4$@?4_kmUUfzI)ugJGn@fhJpD=luTdKxqBdlVlIO(A--(vf=;bPoBsM z+^_3$*D~@03M-yVcaZgnp*)aw%9SdXzpb?O9oR3lEn;jIY;R%Q2%}o5nVFA-1*Au8 zA--liA^0$Nthx$X6iVi`UjF){al_}Ex6!dgN7Yeh0>3_8kYF8+J;>^PhK82b8z}b3 z(W5eB$yf2XFz|#>JZI|NBSzM?Qm`Tov1hxyjAnlS9^oKD9Km6f{3)0#Q+cURU0M-w zDSe;psFTKl`9IU|fBCd%rjX%s-PBZz^jhjn!#RPJN;@i4^74ZA@RhMlQ+)$3%ca6w_6l7N6id= zxNn*-nx;Me{~EjQK&sofuR%scA)%r~Wz;FFkP#Z18pdNDN<>I@C=|(7QCVf>$qtc~ z9;-nGLVY=@mrCb`6-W?Bii45cmo3OaJd_+*A%pjZR8;g9 zg>Bs!)cXVRbR&j(4m10pN*ErNauBWf0IDY?@2I6^D%UQ`4$bvZldsrz(9x)aeSdOF z>t9L0d>E@}E@^-*vT_p(f2wal)8Sps&3c1tcj_FJb+@6c$jAqHxgWHz%!XQEgor@A z5@0iE%7Y5n!B~UDmu(KRzI^pa^my6{LEE`{^&%9{j1q3FUETRslT9(`9jt6lwM?~VkFsGu z{r$w2&9BF3P@W#z5On#nG@VNFtuOKOIrG|wF$6wMv@EQ zk%F6pO5#r#dYT~0Bf6pdiBOgv8X_$Okx(eLdPvAnEJF)@rB;VcJ7`8TQQw0W;QtN2 z;S(TrK*T}zfd{ZZ11%Fd>kpxUhO1<_QZ1Iz(cN8hGaCnoriqCV(W3zZ z?#151HhNp|Pbw5^&F>{p2JG>4LDlH_t{C+Mf~rwME=oq~o<1!iU*G-i-Kn9ybkI{pRSFw1o5AeZUr2t6E{*OwY&M&ELL9LE&N$G{&3wEYP3lwUI2REF0j2 z7osr}u*MeI^}N!zSu3e8@?jDQ0*^^}3u8mfPE)n?e2ih7)^os9tbTpPVImXTj`dF; zc<>Noe|bZ1W+u*dKAB87yE2LyvLKKy_k{kZaBgPkDUiCf`1qGDw$o(~IIk zz_R=b4mhI#Gi8KyhA6e{+5GHf^wmmht12?te$OIfFwC3+xq1W7J519tdmJ=#3X*}9 zD+i6dtFI5HaY`Vjr5p&a9coQ=CJ@qqp<;li#bfmfKSZZ|feOOI%--=0@M_w-06pKR zwu_l1Rh_bmiX9iUsB7V#-n7a4X*z&N!eH0?M}=eMTX?wxDUd=u97;7ZTu2A`Oq7O@ z0J;2pfGK+_IvR&R6;Hj(VmeeiwF2R8S7tS2k$tpo_a=2Wtayj}Bz#cI&=_Xaty9Xi z>ror7+z8q8h4~PRXh@`|_MIl`camRtfA=n>*{U^a{!0*k_Wg}`rrq;6C3jh;kuFIy z%~iKUpuC~OYS1w-Jv&Qy?oYiDQ(Kdw$vs z=NLgN)5lad-a@_wmf~FflYC6sYcLqg=_?X4sX_%Of1i<{N|JUDlq6Ls^e45oH@QkZ zx9!%10B5ReSqM(FMnhd~u^TsUUba0_!$%04(CBChEh)TlE)(x{3fqxnC5Wat=c8KP zZLEC#ex{c6zr^tLAZ~l0RJabH7@GQ2d*Mxc-r5SNF;h+e@w~!cTEX`ZIH~}^d1iQ! z@SlFh2-YBCa`Z*hz`z{$K1buv%+4+&ze4SZD&|h?_zrhR=xsKkvxE93LOKKkvk5eG z9qz#h>brkaX`cnKdRFv*8TnRu{G`=G=X_FEcdM%ujw+IgLb5BJyIkRNU?jFb$c!Xi zC5~SBS5D3U7_wH?M>@vp_ng>%H|J-{cJ&Lb7OBN^!$s3D;zN2|?r{vTUw?hf?dM%? zY>@3nDZ1_=9>5X-SCBJs@?|*;9IL3V21aZ!P@JBYmgP8fb}Kh)Oasr{RNpT_(2VMH zNG^gG#;3k;-6@>4bPchQsbGre>>m8Th_BklXU^OJ;ZojL+`Z@S;VrYjp=@5MPrV8f ziAbx_hZeM<(3t|=C$_>YqzCBNRt#;&mL7Xsr% zr$?x!rb_@0Wq4M2GP%T!Tg|N_5)BMG&7Qfxf_qDP623X#dHVEey})TXt0rb}r!GV3 z&kGuEg@llh%4}d~m?B!*_NwaO+r_k33EYA(fI;)eGYtw?XBPipMd)*~v)~5OW?q3F zlpSDEIo%VhY;mW$wyO8jryJzEBOG=807SbafB3@-M{#Uw1dkE~>J?PC;Ab)Mf&1q{ z{W=L92F_eP-m}e zssJU43855?ZN#S!@c$yvF9P+`T=~EZx$!K+{#3boRT2B9paJ$C&^pT@_T>~5 z47{~Q>@nm{`fLM4S6$@9j+v_xQ@R~Onh4P{9*yZo0+JXK1LN#D8xMDrn#gJ{F3_4B zpL0jMBlygSl;=`+sif)o2RD3u`E1SzseSBU?5&qCUmlO>p*b+oioQ2)m;!$$GB?!0 zw>aWbWY>^9IAG@_se`0H01tO#kBbH}ghaw8W3C@t<4#2m(X3nwYz zLtVZkMH0I7RLW*z$t3TcW$zx>WQaSM@MCUAlO-W6IC7+}PwWz^&V`Nw3J{r-(8plX z@tNXUCvPW&LyLXTr^y3#x(W@^PHF}7aL?uA)Icon{uD9K7tE_xRYOs?lAnLuP0umD zgP-js8>TI?WsgsabNgBROxJxVR(+PO^5pir`hIQ)xmLXW-Fn|lFq<;i)=T)G7cU-& zb5OistXEf4^VZ9>-VH4e#fut}2vG%zgg7Zk2 zLJ7OLVVUbB`?_7rQN!L{{2fCfIXcaS$V}s_0nOFd-Cbb6f9S>lxM#)?rJ2tA@I=H#0!`g`_K%2P0hM}%my_t5U!&Hg85W)WZh$FhSRRKq zk3pwKlC~*)Tj3S01@;N_!~B61TEoO^`NUzO-zN^460K(){4!R)0M4$?eo4tu(iW?T z#-^rYGUk)Fi+_EY=uBV|MZ3WSggoMtYMsu(gUs5ePWANlnKdd33JP-KWg(u_SH3Ko zw_Zz^VDt0QE+HUs1kE6~!DxIX<&zLQSmXJQAOvmi z0NSiHe01*tSY`%N>dAS3&dMk+3lS6`e z`v2nHUEaXL%xr>`>%4kE!zT07)ynG1BWMfuO|;%`!&$2C;K^(B!1K}s4$Uf&`6F((MR1~Pt+0@g%47oxq!D$s#Ve;d<9zJ!;qY%t zM2G-(p*dc4S;FtH>>CuLI>9{Oo4Nuts&&lS!J)5S41~etRkZxC?$!e42>LNH_faO` z5$t0P=j)=%QR4$=mGYiHx5zA+gY}sRGEHLP-W2=W{~s^tJCKAr77RKAgBafvwuE# zkr!3+pikE*HB?sKK<|T}xR;Ggh-|pyZsl)8yndBDYB#4+1C17TG*t^E-dNpXZQ5E6!Ms~y2_wu!Y;TD z%WFKS!tkkifBkgc^=@15;;;+g*e$aH4HeNCrUA422}SUxiz|=fROjO56?KnBwIw?9 zoa!YTh6`6CXb#1V3C(O|;&Bj3$niGCGLpl*UZCmAc4&M6GDpg20*c71H@#|(mt5X? zI67?x;%gJYD z!yep+R`U3-5^Pk4>u>yHuYE_;VqRKW%A}J3l>RIJ)!QB{i5}i~_FxhgN~RpX1L-aOgc*!CQd7U&8cpF|pb0T`WiSP;*4i4U+{ez`A@h8EgWFzB~=2G1#=Jk7h3?hzV)h zL0JjX_c4NzM)qOe3V|SrCJQ;oKUzCVe34JHe?*=zddl-N$7!-~X+n6gAa5z@D~3*f z8hEQlJNnJXST3e-oACI7=qUn*EpS2+0F(IEM&tn?Rv<|tH{&dcjm4NdxIP7B5mBfD zdYu^dX;MOq3BLRlrs1%M4{w7N1@yTew3TUHA_94W`q&*q;lBTerc?4uZj7<=s?7MS#3#{Q#^O4+b zY3mQ1IMu#SPRh;<>W?q4I0#`}1E2}VQlHclTY(;MJ4a*BH-q<$A<4p7h`5oh>J)B-s+nJDaW&*0ir`{go!B!;67U(ovc9$wC zK-N@mj~f6!D2x;*I6nTB5Q(|#c1TFep5VhtR4`BGP$TvQ^x>Whj1X6X|KT$Ogj9zZ zbn#;VOz?s37==jU&Y0JRp?l@!k@k8o8$f7D*BbI1{(BIgAxbiEK%ViS8$8Y)nFAvQ zvQ3B}4u*4D{2>(*zJvppXssb1Z`s>Vr(c7i&E)6wC{r~7;$&^R0#SGAP(P(R)?rE^ zPKE;eK4kP;z1>`fCZDv-M0A8!*XrmAovqv;!sJl;DR80T==`#N0G8DXOcTV~325ta za&rGD1yuBvp=NeqFl0pHm$iQ491Y*5HSQX~p#BdGE^%$69e}){O{>Dd9@{pzaJ@ug z#%cj?4MzXECMy}VSH$XsA0zq~;6nH8T`@A&)YYM6Fao859zv>?bp>``0X_qrN5)0V*s1^CN<@{WGWw4{PX|&-t_gtZn*;OElhoAf;Mvjjkc9n$7YmIh6T9oe zHWB{lngo0c|C`YKQ03sUeep!l{J@dO2tnsceraa>7SUSTR>m3-YlOW^OcWurL~c5o zG;q2^0SEqSE&A%JgJFwqx4q&hrI;lT!21NKO}$1rOv>Wp9{5Stih48vFuS<#?Hjs*d;`8ic_i*liHU0(8VWx zaf@5gOJ3+-1A+>8d1z}GW9f?{{y4Qnzv;~3q}9-R>LLWaOKvvq3idqNTb7oV;p1YOjZ4+j&zb?=ng05$A@M6O z0~uC`8VZuO@TosnXc(Tr3{N&bNF37`6<6V5AyP%>ON;C;uiS=-Ps zh-Hl^9d3@C%EkMsDh$9=3PX^Q{~O~!A`)t4oc}ToPxpq0OX}*6*JAqZj^Noq(;Yw$ zZwlrWV5KTB9DGH@xCNdTWo&r^QT>4TBBBhw+%>X`-@D^$Vt+(MU8MK|1>`tz^tcx< zae~5`FwtmliQpES+044d3#6t_M94=EN{orW+jt$J5PZ|nL)nwD4{4p=k z$Y}9>fyi8=1f?!vAW?p#D2gjDSR&O1bFgv%^B)xy=w=SZm0DKBgX&11!FmDqt*yM1h_^huPfFVe- zS`SE;zy<>>4z zmpG))&C19xcPVW&N|)=;&1;6|(}uoblwjL;G;G$bJ)Tfw`rmb-02MY=*0|7LCRnt4 zas8+qfsQ5r^7$N2YIHd=IAr6)%8A`kZl=BOZ;bpfqc*vu;p-1yJb{HPqWOm06n5-5 zp2fgbtGY3VM+hRKoryy!v(!LK#q*zcl`U3|C~-3*Ted%c8~1@Af|WnSu-N5fj*L%b z^FAOkB_jX%lH~x@+BrD9bCE!KMME84F#{xhc}Sj3``K{55WeD7{%=*0TLI`}J9Z)RvTfOcl~O9R zli$SUS8Cxeef^OAcxdfyJ!sqktZi|*iZ~ay39W@yJ7`D&6jCm^4ZV~meC~MROJ;-p z{c*ul0Np-&edEMAyCqa)j-XH*en_#vx-bi9<1NeyY(lN7mX_|H<4z87ezIi$_`?w%FLFg_w z8sZz!zQWKJiVm0rCP4c_Xf*zdm?S^oZmF(9yzv|1JMbDD`S$f|qPPl!2~bIwPj_|3 zUx)n#a5W5uQZx*Df36XtULs=-7Ppq4DBy`64w2Md9{xN+D7J1Q@G_tbN95G%LpejP zeEZ`MuW|T-a-@QbLacuwTuTr=AQR8VwuAcD7*-9OC#4nUobbtZ$Uvg^dGOn`<%Z=N z|0&1eM2?Ma6A8EXa=T%vgFm_)o})(3I1$$+OBuiq5@wnPr;E>APFB`S@yudx7(7^| z5D-kNLCu&sw3S5li$n|dVXa3e=y(`%djx69RGoUwx2Z71V^ct{e*l+^blHjk27_pB z4OGG$h^M}_`_D~O!~76a!CJuuegD+?>$ny06|ghBD@?Bs>|_bMvib!E&(%QiH*ed< z0ya(wSz&rUK*kzm+2CX&I&5;b0>B8{ zvN0juyK+C|SvcfzyOSn5LI`BQxpQD{!F`W`H}w{`0QDN0Pr@7l(5ZR-S`}fyr0v9j zgZ>SP=%*(ID_A+dIP=m-q7C`o>1{AU;Y&`~LI((f9e{zOVbbKA-b*p2u;V$9X?iQnw`<+Dk5ig# zu#Kcw5M3s2Ks>a%Ch zhD^R=*Zl8es+G3RRUtXTPGnm(Xo7v;x zLq?LMYwu*Awnbm?);xcHiw0M0cY$MBL1Cd*p4HIy>W56i#^2+W@d~D_=C*L5yPu!2 zh`nE!w^LEsw>lK2C!N>5hk~Ntk5_w({>_`E8ylGCFKa#F_pRxT-))FZ%E-r4=@-g&q+J9TQhxl8#u!;P>v78>)hp%3} z;&P!>anCeu-}i9G?tO20b!jL_*Vfh!`(FI}4xfmwuCC*_cy<4;(a{@ypS}A3@Jn-2 z((zH-M!YyN(UEllv2^6=rGH<|OuV(Yd$KWl+x<-1+^lZBioRSU`xb9gcVi#?_}NAuZF&g|6a9i$1Vo8 zYvTx$&)>hRHvWC(pI?XY%BI%Vi;I&#|L-dYBkXP%8Ts7%`H8$EPMy@Js7PGr`gN}w znM3+t>pA}(H0gUdBSuYcy%I$;?|zeQ+{omS=7m4a%*_11{*<7R5)d4GNL7Hzai-tv z|K5+3)K)8NYs0VSN5{;PC<4~joFmRTsmJRG?W3bRYU2EF^7s-I7Un%S(oh@zkht-b zU$&!-?Ci6RayTO8@c)v>LE2-+Kd8#4`$tQE z|KBTecwO+`Q*Br1(*K40mZ2fm^#^IyK&Ag)1_mx^0pn}ww;uoBJ+-kB^6>Du^_ah6 zKAX*7ZEe0)FEA{OQ(B{d<&2Ho!i>egxlZopaNWzQhK4Yq;RoAxS|B@?uF}SkI8OI& zIc46>hnEiy4&JEnV+<-k^zWuAV4KUL+%~wi3dYAxo04-#xg|+TzJ1%@nxaSlQ7m+0 zv3QgH#0iz4|FS8~PKotD`|ow-vR_Jkyq~jw@@M|rKm3|of&v2{6uGQ&2nZ;|3xsNC z+}?faUKf|~u74Nr$typ_gX%xz3n#Jn@F<7JvUe6&#!M6GrhO1tga5k zMY-;aHUIA|`F9##N8_K*)2FntoBY?ZaaUJEihA~E;(Z5B-z#Zv*J>o^U0z3QN>$nUUaD+!`wv@Pw>aDAlj zpFcK9E5z%Gge0-Cbm7hTe`mVAzrVkCa`IV^+a}9Ycj32>DJHGS(bgmNnnlielI~t0*xRb-R*pMSDsp!09{HJXPh~w^cV1G`-IPkVNgau`x3BNP z@Yh%GtcGg1^oq{v8yM`}zyD#GH`SrDXPHS!Nwq6+QkZaDcWP*8XkNQkR#&&n($dml zgXf;$v&qvqC=MkZ9ZcNZ+&=#Pm0pze7B~hdhj&@LiM(rg z6`Lz)@`KNL?(1pf>S32|EQ8>kdgk%&!fVrG6DWfY4h~#B)gs$>?mS82A&mR@k#BFF z?Ye&7ZlGfK!tBsxl%)m+1HMCt9?D$2m=O>_eafsuXn1s#%gFS@wYlN1?FhWw?hYz_ zef>79_*Wa8jwb`7qg6N}sEiM4M6hP#t5d~y?%%)9RGyZRVX(2W!FTMKqG7~o^X}BU z-`=NT2kz2T*3>*n(oFL(G&KC+7ySBl{cuB614{fG

H|o>a%V;WUItsHK&aRT~P7 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 literal 0 HcmV?d00001 diff --git a/svg2png/midea.png b/svg2png/midea.png new file mode 100644 index 0000000000000000000000000000000000000000..04f7026ca9676060404b7383dba1db817bda68e1 GIT binary patch literal 27704 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 literal 0 HcmV?d00001 diff --git a/svg2png/restart-alert.png b/svg2png/restart-alert.png new file mode 100644 index 0000000000000000000000000000000000000000..d1d12de9fcaeb42d48744d9f0c0d0f3fa48351f3 GIT binary patch literal 25141 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 b4f>N#LM#kPQuTO?7KxhjX{9`c3x59xa-fD! literal 0 HcmV?d00001 diff --git a/web-api/index.rst b/web-api/index.rst index e09e4d538..4136fd079 100644 --- a/web-api/index.rst +++ b/web-api/index.rst @@ -3,7 +3,7 @@ Web Server API .. seo:: :description: Migration guide for installing ESPHome on ESPs running ESPEasy. - :image: espeasy.png + :image: espeasy.svg Since version 1.3, ESPHome includes a built-in web server that can be used to view states and send commands. In addition to the web-frontend available under the root index of the From 1c83e407fef2ac6e89e001d11bebeed8cfa3c577 Mon Sep 17 00:00:00 2001 From: Ryan Hoffman Date: Tue, 16 Nov 2021 13:30:47 -0500 Subject: [PATCH 08/34] Add BLE Binary Output Docs (#1417) Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com> --- components/output/ble_client.rst | 43 ++++++++++++++++++++++++++++++++ index.rst | 1 + 2 files changed, 44 insertions(+) create mode 100644 components/output/ble_client.rst diff --git a/components/output/ble_client.rst b/components/output/ble_client.rst new file mode 100644 index 000000000..38ef7111a --- /dev/null +++ b/components/output/ble_client.rst @@ -0,0 +1,43 @@ +BLE Client Binary Output +======================== + +.. seo:: + :description: Writes a binary value to a BLE device. + :image: bluetooth.svg + +The ``ble_client`` component is a output that can +write a binary value to service characteristics of +BLE devices. + +For more information on BLE services and characteristics, see +:doc:`/components/ble_client`. + +.. code-block:: yaml + + esp32_ble_tracker: + + ble_client: + - mac_address: FF:FF:20:00:0F:15 + id: itag_black + + output: + - platform: ble_client + ble_client_id: itag_black + service_uuid: "10110000-5354-4F52-5A26-4249434B454C" + characteristic_uuid: "10110013-5354-4f52-5a26-4249434b454c" + +Configuration variables: +------------------------ + +- **ble_client_id** (**Required**, :ref:`config-id`): ID of the associated BLE client. +- **service_uuid** (**Required**, UUID): UUID of the service on the device. +- **characteristic_uuid** (**Required**, UUID): UUID of the service's characteristic to write to. +- **id** (*Optional*, :ref:`config-id`): The ID to use for code generation, and for reference by dependent components. +- All other options from :ref:`Output `. + +See Also +-------- + +- :doc:`/components/output/index` +- :doc:`/components/ble_client` +- :ghedit:`Edit` diff --git a/index.rst b/index.rst index b368c5883..39363f29f 100644 --- a/index.rst +++ b/index.rst @@ -405,6 +405,7 @@ Output Components SM16716, components/output/sm16716, sm16716.svg SM2135, components/output/sm2135, sm2135.svg MCP4725, components/output/mcp4725, mcp4725.jpg + BLE Binary Output, components/output/ble_client, bluetooth.svg Modbus Output, components/output/modbus_controller, modbus.png Custom Output, components/output/custom, language-cpp.svg Template Output, components/output/template, description.svg From ee60f76e37ba9304f085d900c1d01b1b5a77b4f5 Mon Sep 17 00:00:00 2001 From: "Sergey V. DUDANOV" Date: Sat, 20 Nov 2021 23:33:19 +0400 Subject: [PATCH 09/34] Added note about nec protocol fix (#1618) Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com> --- components/remote_receiver.rst | 13 +++++++++++++ components/remote_transmitter.rst | 6 ++++++ 2 files changed, 19 insertions(+) diff --git a/components/remote_receiver.rst b/components/remote_receiver.rst index ef0ad8a79..5f45ba9b7 100644 --- a/components/remote_receiver.rst +++ b/components/remote_receiver.rst @@ -71,6 +71,13 @@ Automations: - **on_nec** (*Optional*, :ref:`Automation `): An automation to perform when a NEC remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::NECData` is passed to the automation for use in lambdas. + + .. note:: + + In version 2021.12, the order of transferring bits was corrected from MSB to LSB in accordance with the NEC standard. + Therefore, if the the configuration file has come from an earlier version of ESPhome, it is necessary to reverse the order of the address and command bits when moving to 2021.12 or above. + For example, address: 0x84ED, command: 0x13EC becomes 0xB721 and 0x37C8 respectively. + - **on_sony** (*Optional*, :ref:`Automation `): An automation to perform when a Sony remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::SonyData` is passed to the automation for use in lambdas. @@ -152,6 +159,12 @@ Remote code selection (exactly one of these has to be included): - **nec**: Trigger on a decoded NEC remote code with the given data. + .. note:: + + In version 2021.12, the order of transferring bits was corrected from MSB to LSB in accordance with the NEC standard. + Therefore, if the the configuration file has come from an earlier version of ESPhome, it is necessary to reverse the order of the address and command bits when moving to 2021.12 or above. + For example, address: 0x84ED, command: 0x13EC becomes 0xB721 and 0x37C8 respectively. + - **address** (**Required**, int): The address to trigger on, see dumper output for more info. - **command** (**Required**, int): The NEC command to listen for. diff --git a/components/remote_transmitter.rst b/components/remote_transmitter.rst index 8461c3a45..d887c7ff3 100644 --- a/components/remote_transmitter.rst +++ b/components/remote_transmitter.rst @@ -183,6 +183,12 @@ Configuration variables: This :ref:`action ` sends an NEC infrared remote code to a remote transmitter. +.. note:: + + In version 2021.12, the order of transferring bits was corrected from MSB to LSB in accordance with the NEC standard. + Therefore, if the the configuration file has come from an earlier version of ESPhome, it is necessary to reverse the order of the address and command bits when moving to 2021.12 or above. + For example, address: 0x84ED, command: 0x13EC becomes 0xB721 and 0x37C8 respectively. + .. code-block:: yaml on_...: From b04f0194b17021748878c8915aa670694241d78c Mon Sep 17 00:00:00 2001 From: Maurice Makaay Date: Tue, 23 Nov 2021 09:34:20 +0100 Subject: [PATCH 10/34] Extend DSMR docs with request_pin and request_interval options (#1596) --- components/sensor/dsmr.rst | 54 +++++++++++++++--- .../dsmr-request-pin-circuit-example.png | Bin 0 -> 73927 bytes 2 files changed, 46 insertions(+), 8 deletions(-) create mode 100755 components/sensor/images/dsmr-request-pin-circuit-example.png diff --git a/components/sensor/dsmr.rst b/components/sensor/dsmr.rst index 5a5612216..8a7fb3783 100644 --- a/components/sensor/dsmr.rst +++ b/components/sensor/dsmr.rst @@ -6,7 +6,7 @@ DSMR Component :image: dsmr.svg Component/Hub -************* +------------- The DSMR component connects to Dutch Smart Meters which comply to DSMR (Dutch Smart Meter Requirements), also known as ‘Slimme meter’ or ‘P1 port’. @@ -41,16 +41,22 @@ data which this component decodes and updates the configured sensors at the pace Configuration variables: -- **decryption_key** (*Optional*, string, :ref:`templatable `, 32 characters, case insensitive): The key to decrypt the - telegrams. Used in Lux only. +- **decryption_key** (*Optional*, string, :ref:`templatable `, 32 characters, case insensitive): + The key to decrypt the telegrams. Used in Lux only. - **gas_mbus_id** (*Optional*, integer): The id of the gas meter. Defaults to ``1``. -- **crc_check** (*Optional*, boolean): Specifies if the CRC check must be done. This is required to be set to false for - older DSMR versions as they do not provide a CRC. Defaults to ``true``. +- **crc_check** (*Optional*, boolean): Specifies if the CRC check must be done. This is required to be set to false + for older DSMR versions as they do not provide a CRC. Defaults to ``true``. - **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the UART hub. +- **request_pin** (*Optional*, :ref:`Pin Schema `): The pin that can be used for controlling + the P1 port's Data Request pin. Defaults to not using a Data Request pin. + See :ref:`Using the P1 Data Request pin `. +- **request_interval** (*Optional*, :ref:`config-time`): The minimum time between two telegram readings. + Defaults to ``0``, meaning that the pace at which the smart meter sends its data determines the update frequency. + This works best in combination with a ``request_pin``, but this option will work without one too. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID of the DSMR if you have multiple components. Sensor -****** +------ .. note:: Not all sensors are available on all devices. @@ -208,7 +214,7 @@ Luxembourg Text Sensor -*********** +----------- Configuration variables: @@ -240,7 +246,7 @@ Belgium - All other options from :ref:`Text Sensor `. Older DSMR meters support -************************* +------------------------- Version 2.2 is supported with the following configuration: @@ -272,6 +278,38 @@ Version 2.2 is supported with the following configuration: gas_delivered_text: name: "gas delivered raw" +.. _sensor-dsmr-request_pin: + +Using the P1 Data Request pin +----------------------------- + +From the P1 companion guide: The P1 port is activated (start sending data) by setting "Data Request" line high +(to +5V). While receiving data, the requesting OSM must keep the "Data Request" line activated (set to +5V). +To stop receiving data OSM needs to drop "Data Request" line (set it to "high impedance" mode). Data transfer +will stop immediately in such case. + +**Advantages when using a request pin:** + +- After reading a telegram, the dsmr component will stop the data transfer until the telegram has been + fully processed. This separates retrieving and processing data and can thus be seen as a form of + hardware flow control. +- The interval at which sensor readings must be updated can be controlled cleanly by only starting a data + transfer when needed. This configuration option ``request_interval`` can be used to define this interval. + +**Required hardware support** + +Many DSMR reader circuits link the +5V pin of the P1 port directly to its Data Request pin. Doing this will +make the smart meter send telegrams at a pace as defined by the smart meter firmware. For example many +DSMR v5 meters will send a telegram every second. +*Circuits that use this type of wiring cannot make use of the* ``request_pin`` *option.* + +However, when a circuit is used that allows switching the Data Request pin between +5V and high impedance +mode from a GPIO, then this GPIO can be configured as the ``request_pin``. + +Best results have been achieved by using an optocoupler circuit to handle the switching. Direct GPIO output +or a transistor-based circuit are not feasible options. Here's an example circuit design: + +.. figure:: images/dsmr-request-pin-circuit-example.png See Also diff --git a/components/sensor/images/dsmr-request-pin-circuit-example.png b/components/sensor/images/dsmr-request-pin-circuit-example.png new file mode 100755 index 0000000000000000000000000000000000000000..d900af748e9cb9b66c407c80c6fbabf88795c78b GIT binary patch literal 73927 zcmd?RcR1C5_&<&!C8dPOY*1$2M3IqFMn?7~$H+J&dy9xu?;h zv$KwIjNkL9KG)}u-(TNI&(VYj0Vfo*i|stP$H6JE|;~O@Pam)v*-o%|Div*O9}F zKk9Xjz?o2islm_9tPgmJzkh!4A*`8*h_#U%Y=Q7|^Yj1PFJ0?EIHKlas}3(_Jhd z$e8cW{Ky2%VgJ8JZPDGYsl+(JCF#CNHhSL$L-WBS~JCCy^ zdDjh==jwL7-hQ))hGaHfiX@|q&?s^czMYyOMnCTOXCoxKWv$BrFjs;3{ui~x4ViMT z6_n%#2(^QsXZXIxiDPwpb3I&bbAIoP$bV$K86}enzxsC`<=dlY;(zePB)cne>JDRL z{rn%)AF)$1an|ld$o-<|;SvwDQ9ro=V&&yyQ~sRu2VZ&-LX`kAATd z1XX_${XBHLF*eaUr^H`eD1ScSMuzLww0q8drav-DmHAKf4GNX@Yaw>A?Q2dStG3Ah~5m-Xj1$V?abM~PqE&P7u-O+xzLHQv{wEdcmEqCUe z9FH#IMj5??fymC_-s8N4zs7Pch?LuLNv1nqHd7wiA~j|!u{dUx87BZvJ%fU;i|L?w z<`vf3j^tEmub>@Qi;-sN`+SKTZ6Y>BRZ>e6SPEBT%D>tccpd|njbxX78sLISI)vFI z*!S*)?%VV?F0TcV{yX<9t%%o2f=(};4fG$t9MpvWJ*#~~*bOVlS3Aqpy{a_Vsj@zS ziqdqme-{xkPWkGexi>!+&BIqtW_){E+Y?`5g{6G-Z21-T-_S)SPD77RY6Kwxx?SH4 z#1>KVwLJ_-=EWk0e<~8Q@@sW*AXC%e%U=PSbN|Kn*S8%v7fEe0|clD80+he6G+u>9{B9-azFvi}Z;JP@Zs zyi2y|K1BChz~x;LOY7L*Ij<)465giy{c&2&wOy`)e&^)VUm#mZO71V@gvK>nC`c+@G-etPc_m*+MG_dBg-Klb;J@{8f!nbwa9x#JXS0*$p%9U^hq-F^DzB6N`_z{LT@I{M zg2V3ym3l85SYR~wm*=0u11KrF`A6yWZ|l37?uB;n=H2y>IXxZLX!ORge2m6_L|R97l=_ zlc?NB7T(&8fO3mSBp4@lg&zVeHzUC|8i(n{QnmbBpv>VhvfQnL%eUlR=E&%~U*9II zV{Pjlg|GQSA&B2ni^z3?_-(KmgKEx@i>&{gGruQ7&?=gXqy)%(K~8v_^?@y~zH?H! z(fdEMonsF7+Lv}aa$NkCp6+}@)!^TJ?T_~}Dl6`C+_?SN^6OxAnRD}w4>4-2Vy#uG zWcT&^u1RnAGRvir7+_N&{DG>8f0Xu1f%dJPr8}O-)tZ>M1{hZ|>aceob~q|N#7pw*2xVpq~`{@v3R zy5%+#I+}mR9_#Xm9hviQ*|6YBNNMn=e=g~UC_6sCI3rG=HZqP=?XB?bhyTXZfQKv| zEN4!7MT#HDh)kU&SnMs2f5T{L-QVhaiW;v*ZS~4`Cvf0|vTFXVHyk<7U~%lRxQ5J( ze}KJ7@^4*ijweT`0VVmNylT?f;J+*Q@N%RGrLHNPn`=Y-`fI(zW<+D-t_xc3;0X_)0;FK{oI%InyHci#JnB(6M8RLw_UOr=FT;i&ULl_ zUm-d0{@+kR^z2{smiz!~IWPI`5Fn#>nO~#lX{lm3)xs}{w9^m{t}(!eO!7Uq-d(Ii zWVuaJIW%E=x%ld&^t93YJ%@?H`_8>-0IEb(H$qb@c9x0 z(f+|4U9P)xBfU(o1fRZlEf?W&^KOP*O+FyzTtkUmXIqQ*?KMYfd}fBMzRhcKuF-L=*PA`Z_UEz2zH*$g1L1-o-c)_IagY%f)pFlb_z zPb=chXaAcqhP?WYQEJ7>yGWCq(U)Doa@d|`Y|LPdsdV69i>eykuOJ>i%{VLpGLxk3 zaafgmcqZ&f8CyL-5SJwLa8XpUOXIQ@EY+;#g7Z`I6*OB2Gf#yLPm-HuLnFO_dFaU8 zKuz^veSNuQ6q1bqEcZ+?@rn}qIyGn>!cruOp<}m?_R=d!?_FC_8)X*DNEWM2&AiL~ z%x(KsuD+l64M{6(;utF@a(}gn{QOy)g`;0O_Wm!Ar=i`jz@#JGqj)Ri79<* zwI13}2cbHnz_?8Tu9I&gBe5jL(Y3z68!1p9SrGn=r`ky+^Y9FVJkQE19=GFV&O@Hy z5Am*pn&;_i%E@mfZ)vp)SVbdMh2T)j-$skSo3K*+z#x800B^%2>NcsjrCOS?y@s6l z%+MV6f_a0C7=P*teIy%c`m~H+Z<$%6OQ10q0x0j)ZL2IM+GnsU)GY8G7w9ff(tE8v zTEy65jmg|=`0DO5d6w(mW$#KQ{t20S`SDVNzd)v(ETrvfPjmX$YtDq6B9J7KL*5xn zqxTR(+-Ftn+GagzA2ygK{qt?BTHb7u7Je=U)&51BID#qq-Au>?4BHaqL-zed#N5|{ zj$5@AKkqmnXLD*=jo(QkFt(T1enwaoZ6J&ew!d^nI|e@~rAvkWDsenjshtPiuguKhY4-1j5;wg77>QS=`h2lP*m>XN}%>E*Hzk=uJB| ze305%LP5e@n|wpW&c)wvKr-8$6_oVlY?m~`Bs?++bU5DsyMftWiCV?z8m)z{^e{I8 z6X2$e1JOZBxH_xhZL`UX*I9XV=WQZ{#g@Ou3L-p z2-O!V9O2!uN8c`)|5pJ`*kOD#{cLeSskSHiEjZ+>U0rdgAPzFR9<@SFv6C8SJ!UE{ zr?s!g$GQx{if+Hy*43kMtC<&QYFK{8(d9$2Hr|`E>w(gumi$_(*>3A?$6@GF_sa4& zUv?iDw{@mC#XEmC!xdjf3RUdW)}eM=#Et&HtmipTU( z37jSE93yLzC){DZ7Ilurh5E>zx%*8;A!gM{k>@^I}5%SBOQ z9&>W4&S1wHCT|ao9HWzf`eU7gUBi1~Sh2vHXt)AmiSxwUDTf#L=)yUQwXBz4ijazy zgEE$V-|-Btvsc!w7Vzs>rZSl1d@x_llnVsYTP;IIX}PQL)8!5m^dbMIR}MDZ^R44rE1UKK~32x|R5ZyM*N@1s#axKgCAj zyyO%bzVvQMbQFTzzhE32!^4(JeLS)4J;&A<&Nsg29}7IN{+0CHDCQi?HglQ3)Hh=m zWW`UjfD6LdSyIIcEB9|hrZKKbQja8(jqY%`XV;l}U35y!JepR~!oe^L-^J=Yb7`9F%_sa${`Iw-!w-3hRZ;t){d^os;-t#|F`DbQ(Ai+9LQqHY zpzead#2q=A%84bhpwM#l{0#HtjR4JsmCqd}O2(ho3>4}rIn33nk@m8 z6Hau?_sh;7(e}-Hr10pvy`QUI0IIcyDNfm43Ke@&DVbeTfNxVgR}y}+ukETOZUfDw zgxmPavrJ3TA!5I>wekH7YH!1ap9QyTgjLYgyHclF&n*b+&G(d`xYmwdyolSeoBd+o zQ!(ka7H|=_YkcN{dH1Fi-*W8v?Olkit>4)~_m1NvBBJm>ZavrnRf_i-Z7D3gNzt@( z-Jc0B)&);FcMxYKfqW5$Gf3p(9mXc?H}3GaxnPo4cN^XUq&A)CFEHF{>;7m9lKo&b z|HlV`Ag-}94DKz{wYxR<4&yDPnA zg~oh!zi3H-kz~eXFpGUUHa~!*$XiLkd-CW7#*Kw=`^aNAKD9E#B45vov}i3N(-c1M z^$|4QWAAmYA`=KTk|g&mB_R?`&}BP=dd*P^2jPk9$&+j(u+Ze5B>gW9B2l7_@1z4a zL@racUAWq#R`9E0mAZ#jXH;2;!eGT}(C{Io;j@?>{M)i#rn=Vbu$9R&i&^_Dh$XASP zc^lSSSs{ec5b-Wf99`Jh9;nqkaoMLJ^6`cFa1=MuS>rw*O{gSJeeS4!;IXFXeCHx? z)(>}P!VKJv?oYj}ey3gh=1hM(ybtY^IAUN=F{*X{_x6CnNN_j(`5{_r%mJjh56yRB z)bK$^hj02SM*r2>;RdH)--^gt@7$>h;}dvUQut_?#xx~e(mLxCbfmOeRhrV`KXdHt z+)uwu&s|4pa_zT{b5SUs%GovM((u)tk<8akHAY!?x%bM1%rTc1)|VR*u`A6Vl|L8| z5j9`MGu`PMHpN^`np~H6%4sn4u5P@HnNS-{nem5t)gq_4^_QTLm(KyWe`!?jq7|~t zmU$n>;qmmN+(ODat0hF@|fj@5rUk zg}{hw0Ls1jjN7DCTY&caJPk@K_4SJg-FEe_VVN)E4!!M4i8uy}Jw`vriF?-cL?^CT z%?@eSuEi-cw^$g`(Kb3P&(oHkH~mFQBw0{GmtZX(3?(jYI2;{?+v%32ggLeQ)lUk~ zcSj!YHPLvLTc~c2x{{jKFLbA@Uug5Py)e@240h0ij?|(sf5%>XjE~_RYDko-)uJ^g=6QW@Tfc z#cQ;LM3{#cqKJH zlV0(3A8DuvVm2e}ZL66mTDbmDiz2P|;71qzGcJk?yw%Mo=O4!@)r5%_?cvxkDXx>A z)hVAbTwKHO8{I4RCQq!rvK2-b#uUX$SEc-4Al#{_^B_!YTc& zSBRDj#4inMSR)~{@_V&1{lw}lk&kj|>ih@l3?+%3#`wf1-M^}&_X^mOyrdkr52a3(Fu_wU=2^>-RPfljjKa>hhEk6!iopKZfRZ%Kk`It6iyr0ca18)@h-4xC8<-k zvAWRgWl_F%%X`JWl(G`8d4-rrMi7@)Qk!b_BqT}D;-iR(Ii`J8P*%5cAc6!I$+aa~ z#WrZ&lPXp>4YA$|Y!}MrHNBB`;D3lB(jw9`^03 z<0q^+Ud#<4D2XH=m!;05A+>ZG+&M5hmC~{Wf%gWn0wDeAMsV@s+*<>$fQYo}+-GzN zdiNsG##ZegsZ7fVyL8?5CULyWQ^B}Les4@AE<%ewJKF6*lDOcREdhPfpZpVr%Fzat z{|RmPg!+Fb71HVrt?udFope8Qm=*_J^w^NroHcqPi-8y2Wyd{m9W{Obkze=co2Pz- z%jbxEo<-3Q*5Hc-AJg%+rCT5uF5>Ty+WpC%Z1pJm0VYWA& znz=FYRNb3yD5!NxDHH6vg;SzKL62?e>Ougi2JQv$0KUv5JI_ZNV^3}1TFwt`z*1s=sj*OKh=rSS>Nr&@)0E*0H`cYro5u=y$-TyxS! zLJ_l)vwS!^WX32B8xQ!`=b>M{ zjvu{MR?QAYs$5(d%#y4(zwTZ$74IhlRD<7=>W#u(`w z6XO^(dhCt>99g^Z`;ScN&?nut^>gB`r4K8G=Z2)MC1wh5JkkRZ;W`8p-y^O&Rx`>o z+n@+_J$7B34#tvDWgZ_1uix9J6->5!ZUQenYg{j*buI)-_X+39voX6|TpQlRf^X>| ziI>S!=Q@G9&^|*+pCOX8!QrDE73z->bc5TAGu^BgN21ewOQC~~%ZQtV0Ce4W;Ws97 z(5Nxab9aYKWsJW}vOM8_1ODJrvoDnuM~Dz5gG;u^Hy5)!dZd}LsQAKp_CNLI>L(9aJ~M7Sx4S>fIbGsn`iR3xG)ZfbV7V zWY_12Z580itE=s|yiic3D(H{EBcJE}qp#+5D-ky@x47y^-3LszZC!^uZurT$YOX70 z9J1P?P6h?R^TqXgAb&{<=q`2t#b$xCE^cx^_TWo|rPnou_>cv@b0YJO;dSU?6<-Az zJInefqJkR@29KV+DbT;6cb}?DR;i@}F5DeEbwOffIpd*{OM9^YCx!T`n?4f9;qzT~ zAju5mbV7WECat0SMKci}vUkxs7!OV1dE>TXUWf{5(BI#SG(+7DOs9RD74}2J`ifnF{+0^B>OP56mwC zy0;xT$Y}5?!;tMoiPD zeekDug{2})WHq0?H&RU4TVS!6lhY(3^7#-$0PCUG?@upZakHIwAFDRcUK%RQ7I92B zX%dq%>%Y0K7ORi^@6(QBrXfNedBk#PtE6M-rHwdzS4niOUsXxA52a&GB42JKzX=iGG@vq-x)6 z@ym;vnKX)~fF-PZG1p3lGQz~H%+}T*yk5Q*X920J z_?5oqaE;w^6yKbe9nIC&ECv*M3bhVmJ9kq+|0BOX&K{rnN$*U9+8Wi)%?KGKqb8a@ zbce#N=Pqn73@{1SR*|G;`%G7oV&0w=6k@G%wq1-=8uw-C6<_xB=r?X4S*+RGOiqBT z1iB)@d_=m5#?N9nkW@Xl^ESBvlFt0kYTWm0B6kRb^g};1+%CPGefh^2AH@ahva=)tQ66TA{|IZ?;1d^IQ#Y~2)o)Vlfa0UijXzy9MG{U zX)y6KFmu6P#}P}=a!kR!2qEqP1LfxN6bRtPbz^H+bN#eCOTw6_xoN3O#Sy`s< zMKDxJja93H;-&3x4ys=3=L%kaADX%q886I#WfE1Xeom?RA&4p0*4|X3INEFP34_QW zCSs_%?1c9^1!P4C8J0w~vpY#IA@`qG^tflGT4fPZ^Ip`;b0Ov)F)BA5or9^&|TDmgi2?*W~C|1-&k050Ecf%lJ>+ zZ?Aj}*EEbe*tVmPyh5|Uj{!^>lStLg%ab0|`%@L`HMc;m6POrLgNW8Ag!)~*Hfy@< zw~S>_wj`#GY69thwnwEyql{DXD{XmlPvipkO~_J2^AZraSaUMDA^Yq)+nr@%4XfNJY-AV=q0;} zkyTr-Tc$k>g!gvWpST%TMzUA?6Q!~FoFyXaf6t>Rd99S%Nc>Q_lOtveMlD%X-74x& z8h9uAo^HvPlsod{QRJnU;%Wkp#u#H7lMg-|j=oynPYQ^Nrmc3BK1RcSE)Q4VB*Mp+ zzU~F52AJ+Z6uKsb_1h0_W;g9Kfjt_q5 zcRXDlR#AxnT)Si=C{r4L@E5eLc~uhLsu)F_roA8;H=$E)+I{odVfxiBWd>2V~1uY<$= zgto)bip&dh?|~8%y@1~P4<=_EdAiC*fz~m`^VNmpR_rLQ7?nj>o2jtk94GQ)gjLT0 zg%Je<25A4fYAsU+O{f%GN)H<+p^~;XT9T%#zUiZokn!bK`tn`VYxQQ`HS3=5J+?y1 zjs3Z9emA=_8eJn<;GX5_4&pPB2_Vv&AG)VqUHNGwsyz#+b5Ot_p}M1@n)!q8@;Ln$ zi}8mR)6X{txwj$ zLl|3R<7M}*VIEMI{&|_0l8U28V$xmZDp2XRzGP4McEdRv;y@B1!`Xte8V;B%>{2|S z%1f>Ub<}AfoG5FCIz$S^j|OR4n&&69oYNeC??J*w5Y2MY4g@y*5#V<1GTfbQpT8(c z5~N)!!JhALCL^14FWxl~;!_e|WMX0IcwG|6jn}E((a_x6m<~pzNf+HE+ggzKJBPga zakwzEjX5$;^ORfnB8--$TlrJeVx|0wsKSSEvi|1e=CMd^ca&11v%`53PRg6(?jdZM-HFtyUGgyDIDKO_r$N{jl; zK%>W1n-mCn;pDyd4d|SYSe)nDqg-{a%Aal1EvVH>d5NQ0+N(aKto`E;O#IqMiU1-5 z;FgPRbMuD*`E+lBt=lA~asN>n(XWPcN8XnU^|V2GM-d7FKm#Eu5AQZF8Ho3#w6Kny zH;v(sBU z_ik?)NRkF{Q|mR<$;Fo`%nx>B0xsH7jG|{;chmvIsafv;a^EM+_En7S;jW&=_OG9C z(Lw_reb-E3J?cQ(k1T6q)$pl?_uN{nNp=C-D`hRnTK2&LQL`aV&9lEp3{mslMS)VZ zfq--RL?p%3hu%fZgzeUi>@Qc9h9=i}W(rS`uNqlU{3xm$6IJKtz&Pz3EKiK^OaYA~ zrv)n1R_cs8ON~NPbBI1!INAluOfV3*gJ*);Sac4M@mMMnp*K!_ ztQJ#JAfXuU5F!-4_jWWF*X#AK_#f}LQFH;>@=e82K$tY)-R*|4=4{<9bnf=Xn-mS3 z5JO!wa76`bfw&qXaOnt9sPzRsKZL zd@;{I-%W0)BsC4|U``Ngt*O~H*qd)O32+@&m|I_;SlEJup;qaj*7-q{ z-EfFRi5+M*0TcefK)8nO5b*&WQV@l~gx#q~j8LQT9D^Non!x8&?lIxj+~(YNT{mv9Xscb&k}gikyTez8v;^ed47k zHsmg4s66S-=eZT)j8%MmuqIlp%7Hdw&%VTz0SW6KJ5aAIsx0JBVWIao3mX+Niss(1 zq=+fVZx%0V?A+(q!e)gy*XCG@MtFu?WW4U-qDF`a*s<`!U zcbTrjhkpA~=v^Vht&fS=l{))=h;WP=cS(0HcdV+}i5^*`lfxy1cDKO*M6~2CzsD`A z-X%hTbl!!l_49+sE9DO`7*!uDW5A^y_;p|`YWefnNyW}59>GIC?4rx@B|V}0TbYmS zYuM`H3N4NPDc(KULgS-X>JU;FA zk>oaR6Ab?jYUv5xR9%aTxXw~a>7!Zd(;77qIX#Gh4caoG;6X}_vPQEeIVW$An*XU? zQe6cjc(8>e4PSdHQ)U`0%(@lKH-6eTmfB7zrRzDxZKLEtV8>Ltm%XVw9y=|m6MX{B zNZ(KN-USIid>E^0WnJ<+H+u~$3%S)+-8|o-^&9>!)0qhz+3&W=^$0!R`dNR~L}Q}t zhu^9~u1`4*u1u`bZW?jm(dU(LcRKsaU_U~$CTbq-UKt#<`ve#h$!XXm^{UYqyP1rZ z;MM(HB(c9SU%*J-Tu4aOn#j7V8v7q@oi>}K0V(csj;y?Wu#C&8G=f?h>D?8L_quP(keTFmPOIj2e6dfTDhrN&%_f^T?=l-8>_5EK>&)lcsgt&`QPzEzn?5w^aucS2Mxr<%kJXx#RQjEH%+N$2d zckiC;i{15gPJ&1Q7X3-Qc#PMdYBPddru zk5DVURG+L%S;~l<0F0V#p4ZVr)Yomv04BP!rx+&8|u zJ$XaV3guur+qbqfXkSt*kKL2mNQv$CTa!y!3F4XyJ+@0eXUG6I^}@ruRo~gOP&Sg* z;zzXpTH&c2CCgb;@3Ai~x(hn5$zk6%ogFIJ|EyEVocEC>xj?&2qssk5*b#l0n2>ZE zlkm-%UN0Rw{q6Tziu!q2vJ z9V=J0t>M>gW5&maN_c%JmTzOeb^2T&BT4*yo$@!e2iyC~t7DYA-7!HzlU~SX;e}S_ zbTN(74^h#d6?|P{9wzv@F-2s5w$cO3+22EW*S!meCa4aPp5J+>S{6udQCb-|lfjt16R6 zD-qF7#luCl*j@1z&ry8&E|Ya2By5x!>3Pusb-H?G(7Y)13%MSB5L(v5m6)sdNZk|9 zoNHUZnqH`j$CE^Jq^y7@Gu=EWMkLRmwt!QEJ2T_@??YJpJh^fFr?T|Q;8EYj?)*(NOz^o~}92^zqiE_bQok2rF%~Zk;LN-+>zWnzlP& zy*NyJiaL#nyMy_Ta|jkMw>?^F8pG_lt*ek2i*#=l&pLCtVE*rNc)@a%^BhV=oNa#P z)rxJln}{9nU4vran8Ih5mp7}odWr>2+Amg?RywUN<+<&=D>}uGL{n0d)FiU9vLg7E zdCQ?Zgl>m1Tf5lqOSRoK$OHTNcdJ3Zen~6*XvpH|mKca)-d3tx^XiThuIKJOderg9 zk@*k~`U|^4UXJZ#x?U7!Z=*gR(l+9_(Zcek^Xr{DNMUdSv?5->JhKS7CNK$swOwnE z(q#Td%Y&W(lqPT^cC284jN7^9z0rV1xrLRpiSzTrRNN?ve~{AePZv5+^14jWcES=m zQ8R$$a^OCDu#ggR@GG5k3A3xp`rXy8&+86+tlsb*Y3~r)gf3rW0d;YJ`O5Jahd|U|3Oql#0rwp zq0ei~JmtIgn4x#!z|xSe=g2~@;VOmc@g5|EmT%&xE>~cYe!|jRjFRTgk}3An!hk$) zf8tb=ev~f$Bg=6A5gvJJXH?67ao?WZs42>aSS9X18{%p`=On?msa%Iuhwm1nGzkds z$z2&q$Z!#MK0%cF&7Mv9(r}@Fviq9JP?7#bp$SO72^!KYC8_E_dj1W1`WjgjSN77V zxe_Y%N%ld}3(@6q*WV2@f*yNuUQP4_(GpP^04J`Jr&fA^6H}2ma`5M^DT&ez5zkH< zeiq5DUw~YoGT8V6_+CW)udPnB845A;L36 zRN7|+TdeDkIuAl;n1$CK7aDjbc;O3+11^a*fea7nX z@93jAoH+(^Is#F@pK7A7a-VAACrb<*JBDzKaava#N%1ZMBC=ScJ?V^A*nno1+FYk_ zS$VUjJag?7w8(HLPOCX2PG6f*QI*e=i&9fBHqd}#hF`UX?rhaCx|;B)=WDd?3Qdul zpH3s`^7qcv|Lz$7|9z?XTaxHNxmh>-L|@1n&DOJYYFDgopz1~}8tsnCkVYIIoVOgd z4ws8^(^AhD->?5shZisUM8h%=#8LN+BPB7rBEEXPQxEYM6J${JUAsl` zl$J+lokETPRkBl#6;nJmKYAUz`WI7VvCj7z7TWhRr5n^vT)y5pJBP82$+2G$cAWB` z@d*2aKA&A8R)`&4iSefx0e8&AHPfH-LY8{<6HqqG^q6S0L&m%XKr4m`8e^Wg|xoY@xS0C)6kAe+ygOWK_2Ar=`n z^sC>V+~V}40*L^UDG6^9Q4w);d+JAa^pnEyLL*!v$#ED{4d;c9mdf{v3G-x3y<~U) ztf~JXIsA{9$$`t^rx2cSHMjX@-edw|TrMx-O=2;GeL&NYXAooC>!>~fe8MZBl#bIu z=W+~cKiNF6rA3W9j*P@Vc7^Gl?uMx4y$^dc_juJzXmPpIs!*kh%kaIey&2VVyO~Rq zEePGsrPjs%8CHcvmoLM`^|xk@oy{Iciyv(Mn9wQzMYf8zt2FDalN&Ld)B&c9sBG_s zzZTmWR4deijsEkl02i={Qs#P}6mKOyP*oO+nNM=|+HpjkU9z^oz(dWts`LPGN)KgP z&NpsRS&QbrcdtWa@8^=+@qXk3@8b%@Tr`9r+zu6-dFjyU`T9%)ExYOT0heFgvkg_a z&UyJ^FPoi@PN1z{h*BT*9DpCe>_zb6lUN)}5umZl-615TjKh zbh}~?Uo7$eQ0Th z-mCcl)I8Bg2;v+O=uFk@GoWo^^#P=nrtW)&#Q^78Vd=}ns&>FyWD}fgZng-XB*vHX z)lFG3xAMX7@3Z&jhh_!caoz{Bk&}yQr{|D*oq$S`#oR$}ef{c#K4H~-jUi7a0Zo0! z51rB2w!(Q0-~-)o)^QtNhO*T$({AdiNX~qh*~=J zUdaCqctV*h;)PaOG);50%Mz14akrT~w~uY^c%Ne`PXRIc>?CG>u8~4_vG1uBBJa0c zH1{`g&rALE=7Nq~+I1(#EIfKuJ%1659s$Aph)#+Z7ju>z$nO1SIa!yS?`v)gvAq%K zFRYIgQhoO>{HggSY|_j0h)hsuYktH~6Y;+QTY)Z8Y-D4^AP_Y;@=ZkpggoGEWN}q|L0~Am78dp^m%Y3C9Xdvrar@{Kt=h4SpGhP zaM9Hge3sozC#NRwuF+&#iM9}ru72!Q1esIuJ3SN6pHSRxrjt%xxQRil_#ErjK`>FwZx7~W9NRpSu zgO!qH?Gq8M!zr2ypwAWb7t!zJ(t)S~?IDkkq#qOfl@=FQPVYtfJX1xKBO^YFdxDFa zdhbv6XQ^{vTy|Gnr6su=vwBa0Sm9c}7VIl1xBf}Mi9RVc1+2+2qXsgAc_W^OI#BeP zr^qfO-x$YbwT57$E}j*9RiKiord}BD{&W)Ih$#n&-k(z@uZ4tuxg;?T`k#2e$n)LF z;HPGnF;8LAdpJ;<3GRCl_@oa$Q1i}viA|0%yx1HlMhah7X@kuK*RiWO)P* z`>XPWI^a@*EPid7cC!TX5!}|B(2IX&I@J|tPPiP9dlOv18O-^j3&<>L68zpHIdJb% z!(w#|TEv;Ck{Kaz{4QZ}SU2nyNTD2meS6@s?0pDpr6cl3d7nW06Ca&abIQ+k<^qn} z3DjFb2LHuj>2~cwp4vBG&}#?(oc&!>KPom!5OiMq3(%^~Wvkp-95t`So4)|l9gDnS zSJ25=uRm#1_lIOl>N^fyaog-rr1u`Bdo$m~6_xCjQn#NK#vn+3vyt291YckO!1Lfg zp!b@#li?}XPxGEYCLtwLbV=>GF|tzAU^>)o6^;;p0evLcot7}+iWsPj)0Pt8zg(1j zzQ_Lf3(I=kSV6cm;`SZaCcmenL#5WE>>-T%!TF`=w!u7g$3H2<)hK_#;(Few4l(uz zG2Qe^e#Lbn{8I6te}{%kj<4pYL?S-{=fbT&=~PZks%wky&t4YW?lS>i{zu_67I*6~ z@qElQA!+bJJ+@SQp#35mm?R&I{k_ua!Dyr8aC@%p>Edx zj~3Ou?8I?{oYDHBD!gDDRN6@CKwSeEIh*VfDpU6Rs$`gixU`siUG_cI=(}Q`VY(p& z(!s;aD0zv&qg|zUAZH9~5ogD!oXS>`UG(|EYGvjuE4wZFWjt5$=i-J2QhIW0?DOK9 zn>$N$w3|R}ZYsp9y-E@Ph~TW;nDN#`IyDW!W|kTFjp2N(qqU+~tj=R@#&}WZ%!3{L z%X2J;X&~)ew&~~=r^Uw-HbB(gAr|Qp+??w%qmU`QI{WL;gr)0RO9LBtE(Gn09xk+6hP5fG5%BgO zmv~HbJ7cs$9`WnuA}ESUUA!mr5RyWHA#s{;wPBM1$2(kZK|^_C_(4v1mO-s&R3hVq zP!zB;^$N?keqPIebKd#xe8j0a5p6mRYopxPN$F546FiQ~>>)Q6XpO&{r_gXG(hIbT zM%SbQ1oNFBzSSam-t&(mTN&R<-f`yf03lJmQ0EwXU+9|4_AmRPZ%@T4PvM~CTkh}I zMKuWbdS}_hu%eVpewW9kuHk2?Z6_2W-TfJh>NXe`>pc^MuoF;-Ytr|5PY zTRASNy;XM^D%9=Q-zt6)=C{4kCg!-^k4OGl?S)p~&(0IDBt{#y%kDUr-LQGZ_%QKJ zk=NENCEX*iwbVwCRNlfEm`t^8FUDAP#oCBWeIQ$-%>{{Ip30r7!WYsscgaOI z+jR&CAmFk@8M^T%;p8L_OZ!?Bt>hFOK^sSSD?%ZSKVyFnVjJ-C{?upB0${6->uaB6QV$+4bS#m44vivX2NN<;G6LFGI~;6BN=Nw>YwXS0V0QP#u0v#c>gZ zrn`L_ys0kGB5L-t{sXtZ{U3uyZGBFmCUzaIhmhCu;8MY8DXQ-qT%d*L8Zof~e<>s% zx;y~l>P~ky>}S?P!8gjFW;>veuQ{3JPfj&xQ%eC7OSCXldb|7U+_nQt?TmApUHU zQPK&6R><3Vr;Vvm;HwhccAY5L{(UV(V=F?%T2bDgwI^#7+?(1~A#`^rUnG2Y!*apT zP*jncEW>@)@+5({zvR56mNrKS)cFE?#%QTDV&%WZ)k>_?b?pUkrMAJj2i#tq^0#4Y z{`XPgF_D*;)NUSv$g6B{Y#Nt3+@_70{uM{uIQ>) zi0Mzi9Z)7tJ!h$V(67e871W)@8QR7VKJ1s!)f-$I);)V^NeLUITi-&(-C`pmnD-_# z0mC|!`Qt9u`{cGld^x!JwDQjO6lO|pl!niD3umfif*y+hp2jOXp{`}vvp*QZ44c^7 zHHP@G2Wa0Hu%F-j%(v#ORyHrN)ITFudwkG)aE$jJ7kdmCwLXx%d^^Xy_Z*O*QjW{w z**9!rQ-SwHx)Y9L}yWpV)Sm@|lbMCVKOO2uPr@G4vLFzl(ODc5jkoQFrU^C*ab){OCoptB@9 zg{;1?L&SW-O&;-+q>_plL;|y^)(~OEzLn9F>ZryWqBvnft~KeD4aGQF4dy)3sq-j9 zKB$c5*&U!(O3Y#Lu931DnJCgnuDxTAa|DZ#z*z2_=6aCu zjZ=R~#Af`y6AeR&;|VwUI$E7fDxt4CEe>7Q;YQ{?XgG*J<5C|0k_?B+E=`_T8Ma^H zEUwv%WPiD*N{$&FHd~$vqnJE8r4c1xk49(or)Q!vu~N+38L<8TMxTPP z5P@*q0?AXGq7{SCOYk)bl~hlFRE!O;4NpZ(ei>mB8B{$vUftfC;W*$WB!G(I)n7mo zY`2R}prm2upEj>OIeuKP8#V?nOb1;?nH0PawQ_U!Sy&ALX&(A8EqcNWuZMLuJXaZy zDS0j6nJsiu%-6DHhR7r+~oRgFopT zfeqF0)r7BzBS2bL7v7!{L`}CZ;(TgDfgj3xaR^;-YZ=6WtRQf|9Q1^N$$8YC20T-G z2qB=g8H(5ARjyu@Lh40{c?2#CkZPcU!?_P<+$V7FVmNe=+d`5}9gqAzjI|A6dzx`w z=z&Y>yRW`FB`!NB>h{fEeTOuhZkt?Kw6J5oNiF9mEy-AVp=^G+z?{Urdo!|b%mrNL zeXNV0xW=Wvg0TNyABhq)?YydK3ZpXp`CWA|{e}GGaN41k3j~t{vda%Xy2=0TEZXOY zIOMG7HI^yH6WFmzbu2GqG;yCf{9*Fv|_bF z9{fADN;tu4t4pAtuIDTdlJ`u`F4)o)dO(VG`A5Ckzm!4HB8A|RlYG>9N2px~uL0qK%%t^$e} zNK1$0y@a&13DVsu-Q79sT=YBh%=`hvPd>ugXV+PK?X}+bT_HKv<5(Pw6uA)C&lHXc z?DvQVuQUk$KD@m0u67m(Z?z&9R|}0_Xi1~^CK)E4{z!@+dPUORx>vxD8w>$6{rL+E9zO0*eyuL$`Yrj`t3kk&FLn8NO>t~8);mWIa{JoFR{v&KKHaNJ++^XhLrk0DUC{?A=`!+a_N86e^kJOV>VwM#g{Xlr>@@I=)c1Je3>*D8TzE)eQ zS*LdKri_mE>5{|cqsdZ~;2eJF0eUHd!i!y0X$F^!Oc!#sRdp-Wfw?z*9jqUk>6C2xtZ9jf*`Z_W$ zOY@M}B-n5x8}KmY(UCzqI2-D@-<_JFX={aJ@tf;)H2dXOrkKD9Ug#rJ(|Lb@Im3@P zga?U(Z-no(@*!b)NM@jYl)(gW(3`XxdKM0E&1BglNl2XdkAXp}iVPbxRpj%Lg%P}M zLdE~!TA*0$d;*Q0sgK!<#gU{aCAGM$wYTzE^d$AqE8w>EdTI>n<54Qg5l>JGX^JV3H@ z10JrKxOE3GrTskk=P2;`5?HkN{K@ZeIcj1n!*4|It=(#0@6vG|V|qus6RBC7 zi9ZAfCvr6yL&k-rIOIk_JJ1nCS|EIvF;;6E8+eWxe5IDF{%$z4%&ngr7i@FjBA7fn zdO`$pXYl5;6ZF68P>VDWkbnLz=PK6`Qw4KSmnvu@*$IB+N z)9Xf!mrUv-EVhT=RM^es$6_JYTf8}Zirc6`*3rLDqcAi2S?pator_4b7`^XYixk+0 zpQ0?w@-qfA6!_IAYRY#)*IgwXud7$pp;g~?$}p8BfzPoio>1DQ?>YQh!L;w=pRdT% zsB>_@Q_M8Q$J~3%#|l?6g=jw{l!0~%W(i5(TW6iYmWF^YE=4DNXRf!?mKFa{93LE- z&waQTDm-I)3hLcg9URCms@QaXPqCW{EN_U}eFQc;Oh-U|BG&Um;73yY^oeD|wI}EY zIWEm#WIDdr%4%ljesy&LMSE677Vi5DhG?1m#e1QgP?7yFuUuA*)6OtTABO+0TSC&r zK%3cL)FWXWlC|gC)S}ZI=18y_`EPOGS(~VsT!l^v+eL|NC5FKcB9G?6cT$2FJk3hwC>9mjuA zn8hn`GALe#%@(;+Xoy#%lVn*m!|@IJa^mq;@bAS7mSc&4O!X zM+j@aYcKEM1}jSJt(>e++R2(&OwTv zHQ*y)`(&WB zAm1ol*rk(x1T#C#76)iGRNR9bAE;exm|ZfS%E`MA5qzgcN#A5OY-r1qqHCXdMVnlx z$alxnZ8N^)DC)rlm~;%Gx}axyCD3&$V_dLQ3Ll452vD!hmk#z~2Siuyzng23WHoAZ zzyZz{5v)2gH=(N2{5h0uZRg7~%cH=IAQjzv^y3u2geduiA;4&SL!_3Dj2&2(tHYdirALbqOeDEGRJ#3$%e7d zVTTK?ypH{sOZGEfoue#~17OSOZ@pP)*16u#@i6nLiHQuz3_ca)wQSq2*l+R7H7p7l zqTN_+6__56gmX9kv{jY)*`}ZW2t4Th42^tQNX0={&h=00dajXy5{&3I(?ScJ7e|qV ze1m`-0&RjBa>}(Gxi=WlQ*n|mlkqH5ar>?|pL?(0{Z#=hU*dScO3Y_DX)jnJMrMhs_uB11bC(M_AzTUQIyAG3UgDlAC z@(6}tUgPna0^gkp_a&d2cI+4|*6ZH_OpUanI`0%j`!kME)is_+Nk2k1McM9c+hi)w zy?op*t8Phwm8PZk^-ai_8K)M8bRtSGQ0P+xV%{b^@1j~b>t z>zai;FK1FPN7hKJb0zxu(G}Zcs57Sly7icYRCK2fVn&u#?@c}Sw_ru-<$km(D1Uk@ zr?b4nPlS4n=z=YZ_Nruc)O6=+j}3kc)0xhMJ<|IvOnW?YtI*?*_~20#9J27rgVFO1 zAFmljk0F1cIg+UzqLdkh+tu8v<$wtT5*-<8$aC3MGFN4$qbJ22*=s|(8K3+eI(Ib> zI(7f|-xQ>4O=WJWB5+GG6z1#lj&n9oZ0v2&3qf|{L9XkJier6+5=778O%!TVZXPbcsJr^sTcNXt*Y5`;FN7*tF3ke73jpGPO2(j~V7!ZeG zFS&6*@O7@oxi@BZ-+{AL-3VgstSWsw+{?k|(p>D*Y>hxguyn_tdL(-P2>mSp$ij~p z!R|(^-9)tWD=zs+Szw<6^51?6k41lBu(8k~@3On}qJj<6^;dWFPR{eMr$ny11CwL% zN3nr9PN^{l;m4mwLChF`9Nqb>ev8+tvVi5N9+8)>M>sVnisWys>BUXY^3~PW%*9V; zs#9qxi1sES>Ky8D5=Vb1sKd21Lb#W0w5d3MwM%~>P8WrU381cHUR_#N(E44fWgh}+ zY$c~b+k=hN@ZLKcN%FB;*SlVkw}Hv>fEd0fibRNbiSAp2S1)~`Ls*}QlMRvS`26In zgAgwQPbWhi0Tx6Oou?iCPdxXhXv5|d>myni!>rHoViI7dVCa!Kfz>H>wuDt=c*{{v zyelYHXsLu#$%Hip>x>cVdIpdd*)Z*E$W#E1<%Ir^V<0=I^{2`tMJ7oW#NGS=&x^{* zeqMo7k>N6w=BT&O<6nOZq@si=f{iT0bh84(;%kdQS#fo zL64S)QqD}=r|WvfkpGEx%1(R=ts+&)=3z(Uat{rYW zlxTr@fX6{UC4bkHe0@aGm5Y(Og?c`#%~AjwcI7f97p$9UtM|yx4^jxUERlx*nntOb ztfC`)DdPWHm_1j;D5n(wIdxYntDY~-q#6Qti{B$NwUeYS1&C}(MDW!1GhfuqZH;} z$PB9R~n}ep-@m`{^JqX81?FD_8$j34xgSU(rTUDmEL{-OtvBP4rfgL1j(3 z0N}oS#C-mpkFfi;v|L!RBQFXY$qx~{Ylgpp44G#gpXX8L$f>*@?x0yH z%c|<~y!Nc3G$_5^Zt(KqE*yy12*nu}8dRNO>x!rfA3HI$kx^l`wEioT(B`kH5yxt& z7w@}Fh3O_1*@82S*Wf#*nm$RJ7OicH1%7TDa4CMS*M$$5C;&xxp5kj;+CW{T+Qt7$ zJvLm{VmdXA8ih5>#@Ccmx}#TnI|lnQUjOm8@JwCdh;FylQH)-h;h)~ubj;|^uk0uJ zhYljlc{~p0ZO}6;#&clCn_0c3Uk$a+8!aG1=gzPO5)?$AgQ5`%{K>A+a(Vahjpovf zl|H{b%MAhT>>-l9&r8P(&kTAD?B=pZd!}{F*U+fsS@()-b01u>xIZFfKMTSE$XwfW zm1}QL(5Y@VXT{ppvf;H1d`;UHU&PdMIFfqY&}A>%(3!Ps7Rn!GX6p~wxqzLU>b3u& zd)v4&nc9+3q<%n1b8mk#C1XmnUpACdP<3+YmwyS#;$N#o&MSB=>+-ki>Y_pp$`Jdp zuJrJZ49M1jb=uoXVNLkxb91Egy(8LEu+?#TTQsv%G19|^b!jZDzG5;$G;_)R^wH(9 zVvc-%i(DM)@MH0%flN-nB$rjpDmXO0dQ-0E0y(UNUBKhd`oS;&@m-_L{SnhS>Bf?F z6U9o;^2W16|9ZpB+~ToQl<*N$&jz%)EB0BEl8Ua#hRCpgx?4j#jQx5ev1oaNb;R)6 zyZWf2X@A@@nbG|>Ic$&O4UVcp;1QXy4{yj8*pw?Nf2AABgD@a~#OXYxBlRB})w!=N zD4V{1q&hbDQq;M_uhe(*Givjd<~rtC8F7UX_YaM+Qp$@L-`oE*KBWu&SHc=HYp4 ziv+@wDxfrS=J+sw;^nA2*Z+N0_A6b_bL`Cqs;tk4(2me54&Oq4o%-+BYcnOR9yhdE zEP6)$Zu+h(N03~N5vTc14a6Dzpf(?txeT=io4)~!T_!ORDTXlZkqnFO0OhUZo0scX z-vRj1jy~!RAWxAgz|c`OH(U2A#5{#7alcz7~dAn@{jlc ze%_zIhn7b$D-*DTNkoBV-V<=JvPzhHHE(4)E}P(cT3V*>!=oom92UB1DKC@#ISFZr zLu2weDC)f+`=UbvM@8`dZY$+w1I-k}deHNLbCP*$g61JdC^Cq1pdN*Ei}>qzkYdmd z_)+Q%locP3xU90lSi-tWi#|1hZDZA+&((-ch>adV7ytxZ1bG)vJfxxmjXFQR)AjgFb)XF638M!LhkJ+uV_`epB5B%Q!v+e~>>xo0GIKsx zwuebUAX9bo+4fYnFg@P~xiQwqB>(1{oQ>P01r~&W3p$Mh;ZoOr4#_7^ z8uk5;&c{pv+4}X_tOVvn=KFlD#o}g#gy+crp2?T_)u)@UF5aNA1vOW;LTR(kVjses za4s;ttwf__JZ7@0+Kg!IDAn*IZf|aHF5h#9v+-MMZ@VSG^O#6;^-1b0h+t>Cs*+2w zX5A}`cP>Eww4M0+=WWrxOB#@Oe-=r^`MJCWauCS(CQc?CnwRT}>tB!NLr4}zQ< z9ZaN_9q9p}PCj3*DX=I8$h778(xP!1j{lJS4+BOT-vjQy&Ad3uKozX^I55_#B80tM zO<)KG0cfkP&)ViCkJ_;<*;TUsLRZ*yW(Vjoz>T@&a$V#&(L@U0U072IB533Hdb>@_%2W# zF4qGTRg2IfW_5e!&k05F=RlKOXSCXETt0!=Nct|Hm+{}VIcm@w&0hRl(0%GVX}{iS z^$Yq;{PGbDkci)-Ui7|-d`o$M!JpzetM` zEk0f-uQ*@_UC!GNx(3b@l1k#c_*ZfFa$w*UP|It}isg36<95!;d#2w(dfTDD19Z3* zymEGWdg+}cPrwGJs6X7`s9V3pBhJ%Q#3?b#7KMO;L`)i)4zF70?lbuZknJh{)9TH2 z9q1Ow=YaWWE3tKTRs7TW7t@KieyE=8Twk5bB&icHI(GX~x<2cr85PWM06utdJ>RU8 zJ;`8Qcs}--$%kj%RjPZ9(T)RYoKI`MklbP$i58yW=#cSx^h)ZdJ~A=$uEmYP?S+Zh{Abl? z=0L$Ha09r6HCU=89Yj>iYcg@)SQIjO4_I3J=bO506ZA`Y7~U^OCR*wz zU8{f?!SBoYvXqQr>>0d;{mDPFN*Xc`s}mk}07Gy9x~7@p5P;XIXu@ zbD$78uJU|xtrbH+)KRSCpKgEglu-b`thaKJMF`#5=B8T&S{kfDU+ zHFo$IaPXEt+mFc#7*n*jILt1R6&}M#_ZGxDF8k3|2)mEi4cgNO5*zDD%mgwNzn&k` zh1=loSN7LY%{7i9l1hO%6unKT19o)hU|zVyelNE3YzzG`{Qb{1*A(n}aZjdrLbh@g zi>syq;`yBmh#t;Ma$r_H-9j$_M5wn#_CGVWhZ{NaSVt;ocuXfTMC8_m^g6SBrRp;W zyUK#RRxKVSHEBPRi5|JCN;zNj|h^XmI8&Sbb=9tw|k=1R|8md+{mWb6n!X>wau;L6%v6^?%yK~%%3gGI2 zv%$3__?XhU=ix93>Sbp6$rc}zSKl5i=jPw@3ypfD9yw#^!_|H3CSSqN-dnx!31JSx z`zk7ug|}02HiEM~X6+_JVyc(V@Up8XoS$ijINK3!Ux#l;xKqgK=3SR9FTd;eRCL)_ zET+)*a2ltsr{VmGE?QbS62IJ<9NV_w@6l7lWVg~uY@!D&Nff>1=_ZK^N-iVQpCE(5 z0^tCOl3l`xmJpVymLgkprV3l(3$>q(XV1N&jx?MEAExQO-GO3*ZE?YRzRS}s)}HW7 zS|3;3K26x0|I*j?F+OKSKn7~qfCuL>*HpHV^~0gQiq1q8?fcJokr<_4HMAc2R{W*% zmrL4`91HsU!FqC(<<<<9VN0AE-lL#5?K<5j!?;OFDfSpL;lZ{gE#Jn-JKnt0J;{>z z#QLV+MNvHX19dC@I^cfAX(U(=j|8zcQc1p`*C20zT(po5w2Mnfd{Tn6l{b+pBh?9~#v1ltR z@`T9)qD;#^&NZjPu-ufQ;w|7FoW@b z8zqi(f=~P?Xubc9c67ggDa&$m<>ePpO-4qumZh2Rv;$}Zr@xO}b{tID z$zyYm#4WGGF45KUC=zqIBg~#*qTEM)rO{c4ZPCQmIjx4;m$|8HN@yW8iq# zIb~PB5x{bUhnMMkdCR8qvXm1aWh6|hGYd@tC&+@fIV!8F{(@vN^O9CUwt?nm%J&YeEomW&?UPiW&>}^pngl{J zuAEiKB$jKs&?#83duDxTUj2nq-;(fe<(He zfi<%UiRYMQwrdF9Br-lzig$QIr- zLs|L4Kqqs0Yf~F63xldP>ve2eZSu5tGn27Y4>_=h&d4xw$L}1m#|~C!NZdxsWt@1r z_ua>3@AHp5>+eUthhNCqeMPt0{WNR}s4&kUTB@ek>vo1e>Q=il7F6>T5nJWGyf@-s zV&*Gp`|?yLM^+g^V!~`9(Ie^WX5)>HofJ4K5OpkpPn1FwndlQq5;i#{FV)b+N{kRR zMA0LPB|r|}pX(_y^F_0{tlM?MjvmGvtN1(+TyrGLPThX;D(y)aJCcm`1(YYeS1DeB zme%!PFH`)6jDk!v^{0D9B+yzpzBPqN!TH6bJictSmprvXB6*Q;xR@KVYz$GON=a>7 zNnu((Y7bKG9;XGQ3cgiQe5-AXZOZMFtF2(!RIuVlqi?z7A(-M}BqU1z#GXc|t5e=< z(qXwNo<%h``TzJ;_kR(e0K10vy$6wHrCiH?Er>`_RNzPa?)kUo+I<~?Q`E!w*+D)x zY2%Y8-z&+;ObZykwc3Xi*J1pELFm{qsn}1D1<3EogAg&G_K*++JrR-DC#n2Uw)Xu1 zDWv5O7m${JfBiZ%`5`JWfeW}Vdq7a54?u=Lbn_$Jjw3Cbcz;h!()b^)$u_f z)CcIs8`U>DWo_x2xA9GY7!ibO9zV8T`rPjCR%ArTSQS zowOZd^Nv857m<_!8Yh1d-vlqx#4_^VsU0~5e!6$QCzs7W#^#L zN)4h_Fc4HXVlXKfjvYH+Uw!u#R;xY&S$;9d;X~(MKmX>_nV`zS1DaL%CJ^c&h7iX0 zt$PBu^5HV_w-{urK%|q%i}d>cF+MST&8Bk{L|$H<+o76|{*I5H0vR94^XK2TaLD+C zcOd`(3wZwDe>=;;_Jyp)_C6vzwu^M{fi#RT{l|zu&ZadvQ}!g1Sq3tq-N9av9dMr8 z(z`)oS$MHRE`&vKdUHey$a;!ArfvVR>6G395^|p=thNMl@`zo&b+fBNfL37g_eCo^ zv|BFb>3H2(@npg&KrO6{iox; z?UsrVfDqy`0>UmlV$~28GTphr#bYI+hCs7%Dn9c|&}bKOdlEYhUQq47Rq=aUAL+PV zK&^gTu0gILGxU2GV4({oflJxx{_XyCHOG2{+X$@i$(gK!j!Our*{O#QXc(JMU+<^{dMfo**LU=X);}9ce*#7!>r%MpN zQS7F{pE|C_`>hs*?&_&?_rK+AxbMvAPJKIGu|#$W4B2ZW#E+qno_zl8-v@lZG>1(} zzj7BVbt!yS<@-XjRK=P$LTi!+o&sPje92B)I`x=j%Kn#ORV0ag+i154t_jgWiosn0 zBZRBFzt;;h|0YlG7aR3Pg|h2<-$Y55y=J6Pk$;TSutdJ4c5fN_F;&ysi?{v5p-Be( z(I)=8V2h#U>yRm%Cbs{_sS+6O@i(+S!hqx`4D1b%>VWvPaQ@>vq6qS8x+}XJtIC11 z8B^*L9)+7CaJ$8$78mAA4io_@p9T9=tP}|$(|eyWd29{N zUBiEZ9UBKuhEfg{d+SPW5ZU6!G z=iI({PsnNUWPt$WfF_U?BF>hezR>q)sR~^L;#0rykiFS1T_Q^hm(}L8ZnRtoe=6if zZd~Q}=#2qEMT_3;gJS1}vO%{ykS*}l#ZRf)m6Ink|CzI2S-@^HSswkB+0)C@`Cr;h zrkQqJW_am;PLFxYwx_8*j9S&iAY@L;=W-E+;X^F2*oB`fUmpu*OucRXq)j_n^YZy9~!-~)rTgv1OnHOYeuV+S~(Mf)OeWgn6xw-sZXo;;IR4s)`OaO(In;iov9jI<#BTXy;yTVbk7ByXmy zc?e4q3nL>p)9s^r3xoSnQ7V~z3DJW5)h8f}i#NBoKI<3i+dsBO&Z_x8ue3w>5dPHi z*of6{09N=a;7zBO8tsLsf5(<+^FOc%a{K`NfdCcv@#pZ@p??;hB|Dg1TL~e6phE%N z$;@WqkBsuxA>}*$QBA`S3*&QYgQN=_gMXv_>>s5bi<0p7~0I!xOfbcQ;2WG;$2Q zaNqU+e7BDfcJ;yKv}MxnpG}1K86YR^gF3w@j~D-0ELkncrYi$zLwhW{A#|Z!6D$0r zXDm-&Dx&i37P>af%7Ilqf;(+Elfc&-iuOSi#+91CMfd{h8GeEEsOE^gH2>MH@{<=9 z%U+U2CIK5a9xP#T``5srAiGLxdEmQB77kMbf)nih06LxrpjYo`c&gCq!2U`{xDRm7 z{k({b>qN z9j(Tw`K*hrSe3392z2j!Zc35zcSKl9g~f&BwA0YhpMvxM!Ks6|Fk;@^0(+~eG#C2* z9k7g=!8W1!4fiBv?mTOqg>%R0$w|F%0 zlzr2kyTF!Ic3-Han~5k|ZMlmESSf<| z6Z#4wpN@oD;_+jSPP@<0mNcRSVnsI0#WR@>z-ClJ=%=CVWe;QBJLLR@Y)TabGhVZ( zD%fwFq@A&0R_FYpiwg|$I#|P*btV^Y43M*EI?&;}i?23znyUKwH+uoQrhwZ6li1Cm zz`*pqjjTA(niwUuKrmG*8O3PeWsH+rA3G(2KCkQMiwIW?Bv=FDX=W$)#lsW@>$@KX z9W7H+Vy4rl+iMX54n-qk?R^OYE?h8A;lVr8XQW=AkpZ4cd*RXP2($NXi+{8cUTaTr zeg(oFzxQ59vv9!W{__H9JWHll7pgq=7w1FCBYX5nWe7qO@^!?|#OvWp7u^0i;vXV3 zlU=@Ls0%+#7zQ?G}CeTMl^y zBx!fVV~^7bDJUmvB{;8SuGRnkbKL?iPv=4Y$~!EEolWby@Kz$EB7vr(gRT+RHf8b-gc+xSgh|8p%#qoIDhwmac`Tm^DBY11a3i8QQF|LUP z7IQx-1x-8qneUon5lBe0WJ{Q?Y*yJd$OBl`RURYlwSc_T(Kw7a&&@9iugC?KD=#8` z0LB>3Jo-QCU-X#xx}SAZ)wE?T(0;o3_U%Mt@uuFwm$~J!em!1L7>wRLa!%zTm}0nR zb&Z;yD}i%tW+GPAxbMrB%kb;8gA#&#fdi z1V|R?Q@`(q^<9r2M+yhEMmx%$5@uio@$c)rNGxGx;||{|ZPyF|bsEYiIH-K6%q5cM z>AB?N&>NHM6t?t9K$xwb@@P=-l26z<^Wh7hYT7e1h+Nkn?Ff}Sya6zZ2_W>X%669( zx3_0}z!^v>`Bec}*Xh~Z$eBPna`YRj_D2a4ZU@@o+L{H%kKfVsmI+b#meEW${icRnHXd!ID7$|EjzHwsu zQALpEYfC$1n?Q*!MWKhQ0C}ZK1y}-99~9@U*u7%WH%W4?yC&AN1C)<&M;FR*(bTbB ztNkS-2TH%KD`%^nG%FUk-m_mk&(V=rb*a@gC3aq9df14=5puU$6ETAKQldDO5DpEX zX>Y*ws8M*MOryZ<;d!ma^6|PSiVPGukmU!!(bVQh+2E}k7aN^TI_gRk{Vxr?kpSB8 z!9HtJ>;2>ONFdJJw?2t~QB2h!*OHb%{-cVz{U+TX2C% z&T3CeMYUL$G)}BQi|}?HN0e2(|RS^bz@I{FM=mV z1hF=>kAJvu<4ZQb)4HC2eL>`H|F~n)5@41wAN4dfFk*!6?rKssi+@CM>bZBQ6<=IC zM(Lq8#A)1g3Q>?ic>T=6!W+4anx2#KR^n$G42-YuXh@shBUh_US zLTLmCg#W>VUN7g^rZ{pwQV3z$5`A&eM|tDRNFNV<;hw*6hjy)AKU?9zwhw#J=nrxG z#2ad#D>n){o(JuznfGoR(DKI5$5ex8GM9V52rtKRF}>`EW`%uMK=Re1-tG-*_|oAD zN2r(eP<98iv4Vmpp`^pAwqudm*8wD3^kaM7KBVe9SuYD9eot8@S>Nz3TBan} zWyAguQ3wuQoAI-Pb7w9E;&xggV+Z>SR@&Czb`W}(=81QaRw5cwv}nzV=#5O!JGxT~ zb){B)Zo<8(-*jMhrz+1x&i)74S#JHx3QKz{RUK!i%8idfULLW{=BkysbY~z4gTOGhuck9IW1uxT%`IBMk`cMiXshaMJ*%v!80@PV0N<^Bt+P-iOXv7b z!R3$}Q#_QtGV(y$>~LMEU$M{Z+67S5{?5FnMy}C9*~HiH;g|0gr^0QM<<`elLnd)+sy?T8wrYg+m-}k zeMsh!5OXEx<4(V$?JKTI8d@42o1+*#E}#_3e_Tw#t#^E?y0g7Cfdfb#ZQJK3Ne4b$ zl`ldx@@sIq6`xk;3d1%9p4jBjGaB*fZ*N#-tu%_JLWVedXac?lyjTb08;dMN?IR!b z8Z-$gIMN9ghu@T)w_EO6=eEbzmoIxPpeSO&ag6gFuM5!e=%(!M;!vN6UDz8w8n1zW!>kH3W!dzHdFVQg8~e=A_?Hos^lP%|@H#Zj^9smFlXM4Ug#$0;m*u36kxF`B{AB*=k1Lx&bv%uE*a_Kfp?xSaw*OH0vT46Gui>^imAC92sB zTPrHs%1R3T{}Wrv#f$^lx0prl;oacTQHFf8u&O1N%b|gRQA-SL?P&FMugaJ7M83Ld z)Ca3(6C!nFVuT31lU|)qU&>_AF6e;3-CvZw-;K-G2qP`4IC!>z{H)+s+SA%S2+Raz z8wcds<5*EY5fV7DxFMfyHRJw|@STOQ%#!!k$9#dHd3kn&6=Mn4(b&WV@1&?uw%!ZN7E&fAuABoC?5a9qc>;BeUXF=1;&Sqmtu1oxA%$*!n3rF6b-26 zpM()0Mo`33>o2;GLo`mX)}V@*(fp~g{ku=68H63VZAQCYMgv9wukXCKp*tV+$xrXw zi*`gV5Q%wcUmkHKcV&L=RA3QFcEr(#ZfC*jf7S~DV#pwA*>6=zeV?imcfSa{vSOp@XWMnJD~C_`?rCPv#2nruFa~D z%{2l6{mOS`P&@{o<1x^G{_fC?I{cHK<``cD?T><0sr*(LVogfEL{O9Ef(-wm` z%aS=cVC~oU7lTByvR(JnS6k4PfG5X~+09-@in$vHXr7FRYN>(?!PgY*NIh03zwJ`f z55VZ9)z(?Mb{1SK7B??eb^?~k{3ET|3>E5Uu)crB45`U7mstl1@O;meL8v+@DXFA= zu?qr#aB7@IXYJ=9ngC=MZVErX83b}%>oCS*FbcU1p?AE3m#jK>XrBy}Hrch^(3-TL z+?*M%x9fY>QZ&(0P5KjIZJc1P(9er?5_g$qUUw$SzQNBggZNSN6&0T}t2O(JDbdOI zos3Fna}{kW&lU@Bz2pqfEE<;{ta^~cP?1B>e1$93q*;8rO$LE$7d8N__u_3?uj6u1 zH5rj8*-KSdF5a=!xk-42Ky;3PA(8B2Vz$2R!b&DoOPFGu3e`*m9fm8Ik0B8EDD3Z0 zK^SaSxCc7qd~ty#R3b@oVUOO?jA?}w4wRi*_mMk!>{vo)r>cn zK!Zr8*Jkvy%E5|10w+hSI;Y%%8)V+&=OuShow^)&ee7q5Lz4rZ!j2>>f4A9H^0Bee zpt3t&C_m8CMigE?NyXxl<#Auy%ha7f-EotMW=H2iuHk-$vt!@0^kb*y6X0n6LWyc_ z_#V+~wNY@jJ@s-(_2xw6-UbRc(-u(d5CW(CPV`k#e-V~`Yp+K+iJB;iP9$_B*2fA` zVZe9nXiE#5o=Op%pt;nSC_@QB9HA$_%Xf}lS~nwT>B{a0rQWKE-X$V>k8Y}&^Ew|a zi(kLjIn0J)ydNgXVnH3!7-*L5AeFEJrLgPW?)X{=VwIAd2qPfSHI(_(q}xW6jJib< zbQO~tgbRH*9uQK{${Gmivow&0UiA+a+5FnOFTqE2m^J-i&GP7a62b-r2{k~v7J~iC zbu;_*O~4-b^dmbfv99wBd)qTS5&SE%+U{$o>mmsf9wf;Q^c5?LhBOFqxg95N!!ZFs z&#`TNsmirC;cq(jLlY>^xJUCiOe;V8Y;hkVJ;O6YMSouMnl>lUq;L~FWamK(jGbG^ zV-(z5f>QG{nYo^g^W>7&-%mjO?-r;h1!p~gXDuNawrK(4Mpz}uh?{qMa#J?h*C)DT zNl_@hF#9&U`5R;x=<6dV$aePr95FWgC?!X?>c=}eqYu3o$Hbh5-`9C z>FA!AKSFOTLw)e;ED~0R9NUrJmj=(@)xRrRRa*FHL8^02F_hP`Zcnd1&qU{ZgSMmd zo%dzdKUA*8EwY66xK4V4=LvbFmy50tq!$YnhL#Wzj@aV*>_Zm~nlNJRbpyBk+DBRQ z`<&4HnciT}K=#W+1(rAiLhrL(tx6#+zM+p)Dmqx4yJho$b!j`(O62l><8Xo!SL zy6$U#vSA*3lw?Pl#E|mk;`2of=(>ifdpE)CU_k~=tbHi%K_7(NR|nJ8x7RWX`(!Q0 z%sN#TOj;k6L&;x4iLn1SsKGQcQ))L>V|g^&*ydnAVtw)xXpRCU$`r}u5q@82Or+FE zBkOs{gUp@#vFyDh+gOUhq{8?rL5zdx8{};>xbo8@X-NWX0#}&%9S8zRF zY(HsAmYOUUwz0j+2$*8ck&QFed{Q<*t4y|Q0{$hlRpHO1Sc3f2x$uVe)(1< z3nv?SIK8yK_MS0CW}@saA8>W_1_yQB{$vsa@cc3O9xh>YSw0=Atr7G(SharK(%15F zvY)(RGPsrrv+H{YH{Q_x*^9iz512EoVx#G4SN58_D5cdH<$~=x6X>As+gDG`edQq4 zNaGRmVx!@1nOM0hc_7)GQ%b6Q*KW3K5R&omM+QTv{Y=43L2r3mAmhb8*&H&X23T>6P4>1+rD5a%or|p`gCfpK9l32ck zOjc4c(aYAEFwYr$6vA9Fb(&6NQBQsgc*D~1vb}T%YKZPP)zcJk&JmgKZY|7D`;5&qj_;A8n`5Cbbzn-G zN#Q&&Mpv`-po{WM^8_TG;^rqTC55ujr$wk(V#)0VjR%!>irc$DM2u*e)YvpQBmQ7! z$Rl-{5nG|k zr>{~U{^?YSqiWB4T1&=f>EX8(fj0ZoQAznB$l_u=?SOK+D_~5Hb@*^?{bMRN4GlSh zbL6z#VoP1wSLGMVHX<*%EnZ}UXi&!Z9OwzR+BQZf+KlPBCb-?OYue?tNfap`B2*pg zaQ;m}3&I7Nezw$#l!ihZQTr8Tg3p7B_UZWcbvD>K*aCi^F1o5ZnjWkbA}DZfdn$2K zL3WMx3azNBx2%%V>4XHOqA_-cqH6br-3{Tv#@)G0{_<*nV8eyp@JaIg&fTiq83G*3kXXDE_ogBGi-^oYE-zBiv?&(``I0#cRho zO#&zM`k3wKwIr$7ij|A)OEhwfQtEY6H)U`7zgk_9hiZc(EUFGvN7i3au`ZOEhMdD` z_X0s}_6l52Q4|IdJgvA+qk>#RmPgXT%*s8r-X{uW!#SHfeF&T7dW}4r^KrR81v&++ zmu(G;92Or>E!A=;#ko0ik)jrl6TmTnp>IwPKP95ZCLeJ>*rc^1LVdwyHT9b9xLpvt zHa3vQ>qCnUB3zUv-aw4}f~{HH4?NZ0CM= z`QGR7wYm_Vl>yh=LGZM!fU63X$oj|oW<71{j+Jz(u%r6&9W43^E*-~+9gadQf`{wL zciA-bjBrJc;duSbosN^@3Zz#Q)6sGs&T~A^7#PFV2W_rhlYOP0JNhzPpHVYL$dC&4 z;WYl;grkk3r(`A?Vx<=bVr##7G1aFVL5udL$Ek16Q!%4iV#AM$f6Z%*dGP7wtY&WI z{T}54d$S_fegS63m3qTtC<@+C9|F(0qXhp64)M?lU<*mRM^dKX6veRwWc@*o;cfs zOknGJ_W|xv^}>3$hJNzKbh}cSA{`eIikO=aiJDHusdHJCt>L(hZ|WE}4j34g&GeVN zyrE&2VmGU%&iPdKX0F(xN$qTRe+hKqV6U@oJ6SuN27-3Ea;=O{Ya`TAVmB#}?YY=m z6H*eb&b7DW`Bc!%aDA42x#FPz#xK8z4=CgFSE}fu=W;y{hKRWI6`zA1BSclCy;5RB zz3a|p9m71nifpLIt<^yjqwj8egc{ag>u!jc>MeY~yLi{CXexQxpq@T4&wV}Nj+cS# zr+XfSjhW95_8J)FCC%Dya-se;;03o0hh979%|AsRPwU^(*n6F0kE*RBjQ?XATecda zx@#Jn@yj!x*t+(XK7-u*|6my@Nbu8N%IC40KB&$Ge1X_>YVUfht5P*TBY5^KV>2vr z^W6&ynvbEpFClvtb^AZ^fU#P~YFbA(JwdZ%jr@e=`rG|aHy6jDlcUhdSM`y#FOJg% z+omYM&dC|8XT7cPk)GDDJ}~O_Yvh%t_*b?xrH7xs>H$&uYdax4Tvj^%qYKP(u=yI= zMO=4Y95t+r30#}0)i&#pZWmnOhEZBy#!pislNsn}oZ+;(q|Qa`56Hgi*-OH^Ra<>n(;o&iO#gx@L8 zSf6&(-5%V1Vkm6;w7xF9^&L$3FF-ILJLHl`AMEm?HVH)PhVxQEigw$B0~&l z3e1;J>RbRU^3OBn>CQ?IZxkuHtK*VZbneE-R#@fS+4|d0ciUBW`bBnX*5}4z)@G6( zjZ`8Z+3Ul{6V$oxzVhJc)IBJ_p`P=j&Lx!7Y)+BjSQJ*D8Rz<;6WlW(9THW}UKQ z?AmoFQS>dRk{DV z_3My)iJwakSJkxuBm3QSYqFWMT!W{g*GP4$`G-337lXZRWU=bc{8wG~R3dfmRiWIk zY|61V{tXLC+_}svq=Fp5;{2rHpuG{h@akkh>`OAPPjA|12X!^x(mcHT8fV7^TUE$6(G5zNC?p)W^McmyWmj3kczTI!f0|mEky*0o; zp8XRMu_HbWp9=tWz?3xva;4;55Z0LgC@MPa1>gB9e#KDU7@Yfh#Ot&5Z-v3keHZ{@ zdA-LTvbU)4dkgjA`cxnPL|`oQyNf%WB7(MtX;71e=7xx|HWY zgKr~(N2yeS77h*H<95&d2<@H`Qn1+dqbSUmnto0F94O<&$(@HaoVb5Km>2Y(pK2EJ zay7rHU_uRvaw5kw1_kq>&#JmE$oJ_^cu8l*o7Y1y2=~LzQ76vjR+P`M8|};n9VhvR5g*(1IowDuTI7C zc8aGnt5=lgcH9q%5v~WEc=_QV3F*Od+Vt0Q$aT_rd~i#Wi&O{C?Qmx$TH8%1*jAVS z^rHl$I|F%u6X8y8$WV)Pp29FR%sGdH^~fRv#b`((mvm-@U1`U{H;3Al!tW93SEY<{ zvSAD5K{E$Cy09D|Rhc#QMVhEU7Mkn`J32LH!r z&3UEZ?kk0wB3l{51@@*rA)C>>-i4*SslAqkyNirqdDx2_opCBQD{W~FDm?(ZmVI$G zyyz`){@$WP8ec&|lz?MRU7|{oHKlr&bNsm)_1|^S2{%y#-(3juQER6g9_+X1wO!{T zyyAb1v)Cc}vhBqF6GJ^IoQmr2U}jo|TenieUn>~-(}g|!Siz8Lo})N9x05p zS2PB9ueX4FESQr?4d+xlOYgEe#ptp0ebHjNBN0`nQ|&G9F@fRGDKIxdjv9ua*T*V_ z{f?6MLLq4rr+(92dUBHFvmcpNDgrK?^5xv4Z&A^lt;8uyP0p=+P84bb+{O|$Cogzb zLB;#so1~YL`h0;2?2gRV`{+CGBdk!+J`wl#^FvC+-os!Z5DQWjcSc3Nyi~1Qy<3tA zJiAT!45&A~KRx7=G2pexQ1Gz+G>9UC#`C}x;?-1WJ{VU#^WJq8C3>?lLOj8ny;wC` zS2ct_+Ptr**lEEi3Y3XB4u|NxCaler(1Jeey%%6i*D+*#UtQQytU8(zIHzrUtNM4B zfo#m*>_9qy2cSBQ{C3BQ@yU3*@@#x>NZ6&C>v2Mux87BRs2GJ0GH@SEhc21hNDO`Q z(vVSx_J$Ewuh6=$2y-Qnf`Inf)_M!_?mu#PO05iyW5Docff3DnxjJ==fH#>d?)G)* z%D{*&Y8OBiw%pAF5q_L?=Y#h$WDm__jq?e7rGxs#kDwm%Pvpsqm2#&pN?C(TM39CY zcr}~eLd#hD!CbeJQTy)PRE*~QR6A18`|la+!L1{kOZ69iGh;ZcqFRzPeZ4*WNubD< zc$i#4fyIf2BI^qlt5fIF&1w@+BE>M`qn;7#vE1m8D1VM@=);YdV>^r&4WVRJ)$z}1 z#c%z-Pb%)5H@u~lC~1Mx$?|LC_#pF#i_R1%xKYEMIcDpE@tbZCue3fpfk+tX2F-aXjs{6a#m- z#edg_Bts0^zDq;R)US#T=%g$^ar|)56ZKsVw%z=F0$Kh~-t+3E4KkuZ;5ZIJ9nF=> z6bgP~2wl0irM*0pr7neP2AR+V4m%0l{+>jXq`NNCi-aUDr1w~xf`rKlpV7r*h`+Dd zwLqWjtv-)8a-M5W5Fdml`7uY6tE!^t5?hk6gAxelKL^M4fNu{d zvbxoU(d?{nr$TyNBV<^&nN@1M{iLIn%n{F#qk%!HFFg2;=aR5!jQsjPTruTdzSQzU zg`N4#k5d;zb{>gnLYAoh^3PqX`Zfj zrfc*$8QQe{z3$IZuw?M|vD6E2<*{NQ`ebt7Up*iDN-f!xl~?koCmgi)Gwp$0Bq4rc zkFm(D<@r)+pxf7h_yh4-^zd&n5zNF`b8~CfUhs({D^cP6`3{|$+!3Te^^>ae;>*v( z&bMOwbaN|TZ$TkA^V$DLb4&D8R}V5r_=yH}a6b6y%R$fyKghj3bW8uQZ1?|gvcJFD zV)-V{AP`S)9QwOopI=Z-M0pub;v)shU88}iix>w8h93k95noa?krb^CZeQesW0)5=2aV< z$~JX?WB*(_40oOfK)lM|TMFxLn0tj8J0cIBWsDHb+T7t&lYPeB&NQ#RLEWg#XV|nf zSV7=LAl5-2{e@Z*X?x3Vna|vbe0oIDp!m#(d$-sw|N0X9mdj~(jit&nIP{#Qv1tu8 z!ryLXvUwjkdI0TtM7(ww+!c#XLO&x zH*LNwQ|Qr{ZGEE4dNxKeyEDTikRsT2*q#IN`6zrD8nP`_Of`2W>f(e|`e2-*1)*zk8r z_a-NwrVWfEisPSE$$477ZufR zuj$$hJL_?}2zUOP0bCA7tlj(Uo>O=J2N&x|&Saq@h(Aw>LIa!#EEgm>YW|@Z`FYjd zJ~Bg-z#Mi#5)X2M@37D!D1}By0xjCW_g5HwuP&`Pw$YDwj_FIp5`+v&lm-ruiADk)DMM>>rI0!yR!adql)m0q5fp5(&P z&yS5xcE{)d$t)a6d5Lc*EMBY;@Z&QuS8}YsEoqmd3M7nO9hQfnD6t|5oO#*AMH-q70@;W>m~JB+c-|- zlq$TU7lzM&phwKI``$~LR%()xXSvLviKq-aUp6bfS4PAT=(tRW@O`6?>Z`^>1n?SL zR(6aqk=3RojQ{2JM{u(49G>M4bryE@xMPSvv?NTQ!)mnl+0SWXKdjPQiX`^1^=qeF zDI)TUuD+u`qS0F=Kh3mi=pYOU$3UmsK>65*t|Qcc2gAMU_)5hpc+)d4l;)KqlX!g> z#E(;C{`!!({^u9Vn=6=O2o<uYoZJ2{f0r^o~Ok|acMeb(EN zG~@_-;$7(Nd){?R7`m^-kf0{PPQADEZpU*~4@n!Zd%=*M+SXT2i!Jdgl3`A!(9mRP zuYmD8`p8iQgVK^Am+4sXLY3M8mSP*jM@Cvk~7*4tscP7aUYW%}%K|y0h zX60|L8qRk5CF2vvy2o{x`)6$AnW$O@YBqhv6J7f7Ws@pe&oGavLjJy|o=)4=DV zOGc}S>m&It*5!SVU*{O!@YK42a=iPW08-$^%dBXM2Tu!1}XNHR{Db0EKE_9E^bJ)|GUcZ`V4y&of?3*l^ zTEDGH!94BIq9Q*YbSIDBX@8exWg=Ju!=jTCfD1@TE}Q0bh*Je4;At(n0BF)m#Rd0I z-#ly0`mB#oGJv8p<)6o17Nb4iTNvUp%>v=K?u@e<6Sh50NWMu3{82E#@bET7!!Ip@ z^)w6q8BlB45>&Y-0k!(iU|s5S*u9e-GzrIKj9)MC&w4eUnGH+ge+_8_>&Nw(aoc)h zA{s_}G2h_o-yM(0uP+Io-+^G?g!ugljk-Kj05T&a%Xbr_CrvOD0&76slUeR ze>#sMv%H>Vbt@7;bmr%Tcty8G5dfeBxeiv<8fdJM)=`*aui@36M5J8zr}$Gl%uMj- zJHo=Da>J2h)oJ_;4zKw&>u#39`l2WtNGgYB^vV2b`<1Kf1jP|KF0c@`e>hc~TORYX z1PGAG}-&OV)SCeX{9KQuyD5aI=R_llW-hE<^|hy*s^@C^{2(1OFhdL%=xl z(uxw^7}Rf+Oc$i8WbK~eArEw(p!1l#khSvQoroRXNO(&{#oldg3=gs5%?cr_=oC?x z42zS`c*!gSM!p@3tl1L`q-#PmG{$$Iq*?jD#;@00(c#||B4_g$rhlrNJ`boxL|g-*atZo&AWf0uN@o&|1xR}-bY)))q*FuFbDIpDWWJq& zJ*8XLZ{n#sw&Srv#rW=N)XdM@!zJOaG7(Wx3SGHp0Xhdio9z$7c3ASNufX~a!+vGp zQAK)wI*iyYtf_3IP2O4D*qO))g5r>uw)vuovm!#}vd&CP*^OGWgV9gRxFCFjHOG;$savyqqPA9i&*Ma2 z%Tdv^vg9v>O47l1UWM;$ep4(Egg{V9cEqOr%SVy|->NsqB2Bh-fupT8!D`R|i_%2; zn+i?k+b1$Ayrnv)AmL8WC^K+8gRGNUHb`pyZNnwMx5p5V*`vUGrI81|HfMW7gZNEH z!o-aDa+;`^VsYs=aRm*0r9s}i#SKfN6DLFxw0!>-(_~jWxRn;E7Fq)18&-}4N%A_k zyy;3tLKH>y>SlYrc$8Jik3@HaVhgGE@*C7r%!2N@4GV)^K8~(aZJL1+l5Y3v6HveI zyf>>pjpzs(gIK_}lkP6U-xN{?k~2-jS2pri+HkDyoFZU-SY>LSKdB_7^Vy?Kx$ShQfeDyCipG zBA$iM@D&}O=hB%{DGvqysvk|C0ExMBwbHZrO}k>f0D`~$rh8rDsDbb$#0b$gA)d1k zweoLKZcvh$&4?n>rl?RWV@ywdelKl*rp(PQQa-Tq=&7ys;#g^m#s?fDZ)8eJ2RS;5 zK47j2sr$~|%d)>&Hof@*Rq^C_%an6&b7Z+IZ6l^rqYqmjOwV{xRLgu^jYox&xmr zYiZY~U+1ZUWJ8jDL}q4yHkODL)37}~u)k6So%iuOG|*O9{0!A66seV{0MM-7pJ;wf zMx@dh+B7@*ku*+ei;nvNpR1a>qy#YIF+O|CpVwibyAT&O;H>S4F0jtOFRiuqmyG6; z(AAaxhDa0{B8Va3IzpZ<=s+GiPpP{PTwY$P*UflQ;+iD*{gF*Jxe2T)>j?=3rMc=9 z4F#EK%Z~h*d$qmD(1>m|I>wm#J+702t!OrqLiN-ILE6jM;ukKMy9RHr=+|P*EY+=J z(WvQ91IL1>&0D_3Qc&r*FFD&uP$Rg(&<60b9yo~1M7LFJg*rpli%@<6{c5STa~~n( zs@~Nd%PGyCwSIAg5&1M-9+{&U?Y7yQAkH%E=Rk4UX|M9?&4ikLr$Sr@^ z=v68?Qe0CkjOpkyY3Gew8dY3h5T?ESPIfjk8P7~kHD;ZYfX5KX{NLWfsWUX*t}J6r zkL7bP!KoP*lSfimeO#ThR)WrGd4CGZ$UYC7=J@fUqBp8(9CJy`nNeDpNJ}Vc)ZHw_ z-rswHq6nfYH^Lj!hw%%?iMF1+KGG^XSo#xU)bJg5g2(kLpK+U)Td1n@lmmd zC>?c`y)a(k$#-LW_3jfI8P7DFZr8?-b{=`fT$iu>Nr-P0nH?h7$? zjd{_S3z+eVEQeT`oakXAB}P)ATmA^mxg|O*chT>+Mk{#T#@*N3BUCi@DW}@F!WgVi zPZkNAfnOS1sK^O78Zu{-bH1`^u@R}9eae{ojex*%BPR>2!Eyj?hf!^ubmM-V!3YIq zQ4Tu9+dIA?g%m{!<6&9#n(7#$hbfg#1M+u&1r7jN>-TiDX-bR z%>Dkh)2Ud6I%Bk65mMBXI&ELt+zQ-b7Qris-NqfN?lQ@2XBX|yA*YL-(oZ^xVY`9R z+;>95`VStdQ*CF+o!V~29G=+9yWBocX8HSPhIc%6sjUu0cL9v{{Z#q5(&n1oefhZN zY8ft^8*PHTx#YWPuFJ8~n|caJDDoIdL>*)QDnkje*B}7TJ~R zF`4Y1fYzpOoY`RrGVlEoBa-U6QxqOrQlh0=!2_J(4Vx<{md~fo(?F*#yd(+nqHYSB zc{pR&ICbl!S`eG1!tn_%D~d<}25C5~Pmu2qR{AG2H|DXi7?R|KpW^`HRluAWu~$6` z8eUKl0miGOqCscxb_bcK1;}}C6L!wAi=89;^4XXnvlDF|X`0N(s;ci@geCdHWmxS! zp)+M&r?$PWdo&}aD~|yq@zWrj3_*Dj&LM((9pVy~v~!U~1yd5_Xdv-8*7ce}8%pvx z{406#D1Sc6rkjy_ca5a6s?)tpHkwVP%6kp#Si*v$Xm~qVvpZ3I*G8<*HWTZYzbetU zCBe?eoNbq9(=9^FZH^_B(6iY0w4Ky>vgZ+*nIw1w@mcY|uUN$1!xh9-t{Wgp18f{( zA1>Qf^A$+W-fE1Md~M{Us1IOC&E}O=nAB(@Fs!`)%r&;awXaB9Z| zBid{ejBt47=YtiBS~%@TWB^ciJO|-0-{ZAWt1z0LkgJL%k`h69!KaHqsq=S~Iuh16;S>l;1krn2u!)UckDzeOQ#=uAXn*a< z=+v!9)o6wA^Vet@v1^Xd#1u$Z;!rB+21oeIL1sgy${c{?C$shsIm`XKnjXq_SfCM| zf)U#s-xMnxNGIYzPn2xp?g&UD$>f;>4|lh|5T})h|J=qKm;X?a=q?$75@F&xlk5&n zkEbZ?ALIZ5E#icdW8HIRstALpq%7{kcCLnM)>|%-&rcAT13&7X{V+SBx4ONUqj69L zKtl}Y=czn8n@P@w7VkPa{*q%6fm|B90s2hD9Qn~f9VY(B=f`E#&OMY~?X^zPK z-Bt~FU}h8?-obt5;F}?`bVIvRKip~5AiK9Pz(OrOR&Dl)N$MUEaECPm1&WGY~+?k9kf_|?}e|7SL+Di_Q*(Xrh@QE9OWDs$hRzb^>SDT(6 z&(cydnc;p>M2b5r^c7u;mQPJg^ISWF5z!oL;(>ZLD5*aMXu%7s<3t&em*Tmtgmtz= zQnC=b+C_!{HEfP1RYl*l_L_ggqgWSK7;9&3MhQpd2SdhuLx{rCh_Zv(#G3gAnqJt- zj3Yp$LfQJN)wE7zUiBH=nl8^QyR;Bj=ZENq$>b2*!7G9fo~iT}kb&t({3e0xp70Am z_MRzFymO#AEVm$6J*7M|pXjdOG$Eu1x}U0_;LVk}D_(A`3-fO#UXi43=QbyyT8dun z@2$uGBuuwRD#nS{l$nH4JS^G^_4S#%7wI~y;5L5-rv8FiI86+9fldqY7!df8rvT5~ z8dp{{I=CE-0aNyeyXr&{I!3E7L7?p|;d70c`b-k(P*Ys(+il!+Cd0NDPpqVYe$#g( z11j2%8M;Gbh53|9hr>Zx7$74Aq~$=rU^o8;1%C>a%drP`1OAU-UWVgB{j~O3sqHs(zK%jVwc@fr3~+sjE)B;7Q~g}N{H=I^TYEwZH4*Tj_f;b;TKfKfzx{u3f|F5=XE~b*!J_euk0~r< zvUl#|`D~UI(2_oPHd%2Z!^J42vAO`!rlO`!HiwBy6b12eL>M%+abe6(ZFyZ|dEI4M zgxjM(vhuQ-kjjb%#?t)On&PtJPXTlMn}=BQ^(a8aQ>;o-Tj+nA>h9`P=j`Q3`E9Nc z(II%c2Ff;tWA(D9B1@wMvQ>w)I2|mbN?jWbmj{9goG=$K!UdzfWc!`KC1d@L!*s$M zk}lXNVWq2`S$=G8pitM0BZn>jE^o-A-=J~%ANl{dVjf@z`o%I)78YHqVQmw;ODKZ|K%h^ z+>w2wC0T~g5JeDVg#x$|pITD!e1~L4oF4QM!^Qniz=Ad0(Cq>&UFEVG(#c`%*)ie= zU@(;St;CI)B>n!*p8r4*)Ts=V8i954nC*fU^*H%L=stkojszsC$2OFIxJ_t~HubYa zFq?qaKwx!JZX9)PEPQ_Cs2XrjgB1B&{CfBrqn^~e2|&bB5G++Qzkw<<^(C9!YpfgV zIVOBicX<`=QK7ne+rD?RQyVpA0&DC}-!(-srxDET#ODtA;Wm@9A{}l~g;*W*IcFA1Q_+?ERkj!nyAB1E>-2Bi92k%0BMCFCsw-Et zFy8aU%NtSbsIH1Sk^NlYQB-qeL!wWov?NLM^cGkk;c@2sIiDXt3$L6q^wP^yZ!RTy zHigbL8W+8fd9SB^9Hw0Ku1sq0sYjbtlOlppnbenJ{eZRHjnDXsvipKi;rb7+oyWL^ zbTpn)F8iL0XHkNLOGD`OMQ@!bsqMK!)YuShW1cL|XCB8jjra_@h(IJuc<5;TtMihw+&R$wNGvt=CP&avL#s#AUE>P1Z47dJh!CGnpJ;?&zF}2(f!wN)irHY! zutIkoCaUc3ZDyVyuFz{ql(Htie>Z)nu?VB*Cz^@HwZF3RVu?kQd59pr>ONajs2(2U zy7@UYz^1>%t^h_Fw9_c(KlqNdUADQ)1-fTWcy$Lnc216N9 zbn(?QgOX+>Ob0bM@R!4KL-^tUm-?6gFQ)0=itR$nR<#oF`wdlx8QOEAQGweWF#z$y zdySAF%X{9;_p4VhBJmA=_2G$;7bL?WpWU|T%s8^#ZTixpIW{mVW-NjbPu;LS|B@g) zn052=Ej4ttLIH}v_A`qi`r9`nm|uIETQBz=9Z#&X(**uOF2>h%ZGq2*L*r^%h%oSN z{!fxjya5)?cSm5nX#)BUk9#wNscn=%%>WyZ?wp9}v2Z5gSE{pJ<5-Jk9wMOYk>=yHTlM^D)d2}5j?|{oLNENo#VK9SfP15 zN`j2{^;khgD~0hp)BklX{h8(d0f(xas-BUVtv*^ILS>wgiZD(%ICo^7Jp*T$ghqUc z(n5tpNnuyW1tzn0L}*EUmu_z#lcaJuZQuI%)0lUyu{Y)Q<@*xH05@`ID#g271c4I{NDDk&_F)8n~!w|+)m@||J_ zLcYjk-*R;mkM!p*(>iyVgt*uhLndN(Hg~C8-fLjaVC9~kZ|QIA@96*0-{I57<*dvT2y-{&7u7!zJq>Y_e>~O3%_zQXdC(uGs)@W!LG_6FoX9G=JF4&S>%An3cM` z);&0uj*e6R^#zBw{Yxj1RF4yY77^21!&I(&ZmXxY?< ze{I|lpg1A~{l1mRKnltiyW1Ph&aKjx2Qf23At{Km4WB64ZA2O{I-6G`f0RyZEA?B*m=V3rJY!wAYA-&y`H%57EV88bKgb+{G&6MllaABjwj;AR%S023x=F`~i zE8p@^*q591s=S)x zj?v=v_`9A=-Nd;yKp8y$Z=%t?`}y&#Fp|NF zX6!>IeUn|OCK@{NRN1iMQ!-Q4F4KZvA3A2}q+fU1p1+$=i}^1d3i#c`Lz`||V}qZ1 zP-y88#i7a31kD#5Aq@NDwl)_YO}4N%LTlBy?EYpSPM};nX?6Ox;T1i8TcxM}G2 z*8^10{CCqGh9yuF4|2cMhB0YI{QkbrBkhTgc|5Ayu(h^5-jk1g`+gM_s)95Er`H-~C7znXNB9nYgo5f4R42|JlkiIM76S z%)dS}(Rt6Rza*e?dx4-+WMz+hn4)s^;6juo#nhY8RCdP?jJJc?@%8T!7)vZZN*`-*TnNnW|ZKi=OO zupuzUilu*z7&~eXEfJ_^DuQO85scR!KwLvSI#phYROkwK<7FPbh1f_|bQ2ykTSY%b zMNW8Y-JKgX;BIR70W7F_(^v)5RrQ3O)!mI@+Js;;R^{**D9VS(6E^0HRtSZVz3TnF zoC1qxKl7%Tb*I^!vx!fmZnh_<%ii`YSqNNcF77sY#3M#)_4xEVjId2C?wQJW=L4Ns z%2J6OfGQEB{eq>eyNzDq39zQeYpS;gN+R9PQm4#hii!>jJu3mg{zh` ztzABpnPvBW12dI-<6me}qKth1us$3dhRY$6pimyl|9H8Z*ys8!xRBT*VcY9;6GDE6 z>fa^{1HD)cjCw-vRi=^lu7Rg@XEj!w)Gb`Qi~?0f_u@o+WH&8qIHbLNIn-n4 zBAh3q@WR)Li3M?^9&m?9;{%YfxYO9x!h^Hi+sTnn%WQO>w13QR*;lsYj|sCiuzCVr9YE}k z8(T3)Vn`JOSlh~7XR#o11-`qUNZNBvG2E<|{C4txd^kv(;7lW?{z|juKt*}QV=6_w zWn6*rji`f&rDXY4Io>E;mO0NCb^S_#cuwd-TTEmrrI1R~dFjIV?-8Bd)2VwGiU7naDXOy7tW zsOZ^))lmIJHO<65M@>3dLz1jtcqnR2`5MpPL@QJ^Gle&5%jC(kxK(&DK$A zIx5FwWdd?^;MBgo1txLsq_J~`%d*O6#yGT5i-#PkNZU|cybb;J$Nb}9_TtI}fxxx?BTG*^PRRPfVRZA? zZO`D&4k=&Ss&sHVQMSi}IeXO9F-$aD& zgA3$7oqeT?3d_5amP${dOyS@{WCM-SmW1>Zz-7AHQzvm|ni%UAKdk>Xwtd*x2u>s8 zKS{%XwfixT47gf%SZGhSDr@JZA}w2*Q*Lk)rUEKG3XfKvIQy>!q;Ukta}CXZFaJSl zzrQlJ5B#!oa_1EtHuvS-W{4x?R!AZ zsnF@M6c`q8npFuR_SNZ5}7>(P~l!Y0EXDEoehzZt^ zbiep!VNmwX^An{Q%!%sFj0$LS5_w0285Dyill^2yY8lrSDi)g_zLrKEirX`#>dIbX zjs&qP8)ySk4nue>oT+A5ICul$T>fte5O}pH{>TIz*_Om5lwn*50ZRR`l z!lHj<>l;CkG&k_^4mXQ_p=XQa=IHAi1%CU-CdaAHtxE<9#*1ExnD3{SoZM+Iu_O1` z7>rK`1B)wus$L?CUMPn4Z(}YG{>NEWU^GMINnMQw-BMFQWhsqZvOTy&( zXGGOK941W4uFr@Yl!qHgjC&qB zanELK4@o(;|NG7b=2i&FUIp|h}8)hDZblj0b ze#mcMx3^$i7XIgjTkCptnW}55wIlh1tl@_I#(1BNfa`+c`~P_Q`**P__Lhua$aWn_yBTewayHSvHbcO$s>YW$W_bf)*s0^+ca8q#|~|j zuex^RNT?X7LxR|2-Ihf4C_ckeKLt@l#F-geuMgI<*#h$e3VHs;LrjZHDZt< z5H!W4DmtqZT_5PDNhyRtDga9)4AX{=XuSK+E&i8T`@ijC)>k020_EcL+utq4W01-w zUh~4!FtViR(NDE2y4hUEjvf0@;=Q@7I$9T&Zd~EE{N;o|1MFx4sAfz5pL(F)N+=a| zfFZPCv{&H{_4qYI5R#0g z%0<@1Q^W!<%9USJk8+>#x^Ks{YdUnZ)4aarSqk1$;)rLtD};nEpgqB%a_I%~Z;8{m z+GKugOpN(D9Z^L68)!QaVJO^Guy<>cbh^uQM@#hdbY~`z`Wz()cQ|aX&oA$7FG^~6 zgfIy38<)E*{gW;3vsILBSlZ&T*^~dU#jmO{lJ#YgZLdz8h}{+P6ZArbd+nb)Mrs4c zw-;+fktx6zix%53EuA35OJ3SuZCmVIbRUcz$_<&l=41!+xvrWXt3J!4E0%0CC^RK% z-arE~|8n0?c2&F+u#WC`Q5OSWQeP4oJ_t$W{<4c*kLXD0JuwV}F{Ji)R$AtuFN@}8 zj)5@rW|t5V8(2PIbDlUM-Mqg!d1YCz3^9nQC!OUU7+?Bj0k|!X7fUY5x zO)jlDs4o1%Y&PxaG*(|bRJc$P>YM{OCj}80@io+X7c5Y9%r35k>zhe{uwIlplNp)Kon8tt6FLO-6 zEX~0@0eB~ID!W^2`?AacLDR3?ZC%~m-x&5wZ0;@^DdJCFi8US%M;TgQou0|cJJqmD zG&lbD6#Y3qk;J{j9-kYk>c>#QJxh^W!eob0qdh_U0kKJ^WVwWsvvx6jhPp%EE1Hvb zv#o!|zXj9!y8ElCBl(5eu#7BjvlUazTvTS{+%gkrgW^ZxftR_b?-j<8p2c$AN__^c z{A;K&OczauS$AQp%xw1MG<_wv0HoSRvD{PAj(74$EOmeM728-q_S2GU#&ojiA>2UA z?srz{4l65vMVi(cAo$3 zGJ$7As>$wRfG#~2VunGt2qmQZms>(&d^t$x?`QSiMk>}%^99X?%gDsNIitqZ^TD9_ zV<^PIjPKk1QxfIED9#o)d_wK?5P}YTC^HP$e%Edm=%(GlFTP+ka^29%2Avqn%Uz)E zS9b%dY49CObVBXv_sYowC@vSp2A6o0&{DQV`x$E$9%Nw`4a9Intj!#T0I9R~W`YcWaEUYb@aJ^isTEjE$&BP6{|&yLY1DCQ77BJxGNt z7#K%-5A|K%tQ591FY4{;`mw(~ybtRfLY;DwlL~5%O4j*3MQiun=6de)KSxtgx=d@9 zg;3Pf=G<}tAWiIqUVjQkX|Z}cH$m2K2!9|I5s#-&wRwZRU2fvZdmHH$XPjmi&PpK0 ze~A*Vf~?0H8{L+EegQ^!dKN;QaiF7b{-oVXRJPHx6o3CB0(ha zX8el;EnihWkz-qtluJ{OFS8#5 zx7lW^%cJdS%958Ho+*8Qbrv#sU)0zjgb+S^r-&z&lghfCiLKo8sBt|G8J(sl-L+?bq)YQJPXX^sjYjLk0VcL?;LL< zCMvxa4c$@Dw$!H*e1;v*e)E9Z1WBHIs z$`TgESJ3=Bh*BCNB+Hrt?&x(G`}5(i9Y&41(EgVpy3S7SuP?O zmDdF^UvjG=>19aXp#FjHMb^{TD%sM}v2HHqutJhxoS>Bi%p-x?hMuykZ8uP3i46s%_y`zSiZ+?;Ipia9q6YX=m*c04yA7HOTSXw<@R~2aWHH}Y)w2FG zveFvHNz=^C_MB?7S`Xzf?FEi}%;P-ZCeTT_PL6zK3%=f+UNQ-mEtUfltl+AFdhWwM zqKbj6cfie#y*Ouom31+eSD(diXX)i3UMocmK&AGc+yEvx3`W&%d;Kes1H^n|;URPj z!j)`$3lyujW_Xax*}l75QL@lvAHa!op3JaveAa=8L+SQfhgHLRB+NE=dU(pp#w6)N zslR5@Fv`-@7uSnXbq0P5B(1FNQ7f<%ytCbqAa4}iZWr!0dZ_g0d1`HBmJ!aW#rCSC zZuY%j#pA#t3}6>20qe2azID;2qjFom)sd+_Fuo4E7*qI{bux56CUHrf0Es{UPeu^U|J5Ko+m>wh)>}{l$*l z%EcqPtMAV^K&}x1FaBLiZyl@npz3AZzlN&@QU-X5<9H6&+BEWrkR})6}St{kXTKZ1_ z64=6i-p$INgQ?F(ITd2(hN_Jr9-{R?4uO;Wdz^uvmmRt>SQmu~xnpwr4lF9Y6_I}Q z6#)Eq0l%5;UPOPm-OZM~!GXc_Od#dbT(v=2%$0_Er#+9f9;f4ChAB$tL1Ywijc|Zz z3xdq@i%UNK{V%{j*WoDygycDQvUDNry6QZ!Ro0lg#Q3f~T{G^2*~_FhmWNzS=K=g| zxC}-D$-20T6LaI0@meFM6>>^Ru6=}lW-EGv@}=F24EjPcM})lA=OPKPxD;t= zki~lKT6<{3={~d1Iwhx3Mr`ij}NVMm!>$CxJUB zhqj}@Lfv|(5|>lX=XRF&-c3k0W-8|$i%+#CN|s9Pu6A~m*cl>6FDM2Qza65T7uc>= z7yZJ3E{FN2TdTBi;`e6{G2IBl=E@{%wW}knWScJx;9vlQlqF|kXQs9!dS`X2{j1Se z*)1QNuIxytnB zH-ciaLYfEwO{WmLTA7ee6&O1(T0?*NLUV1Nc?bWZTYv5)LO^K-FrLvudmW9aW211)~bcaP;-($NvSf_dw8>I31S& zVN)_HQCgqtO^g?alc(h?O6&ad>#JSy*-R_PE$gF&u&f>z>F&AHV|?nMibl==t{az6 zgm{q4TG}YqD!x)q0|(AHA^U;1skQQMGe5XDA<=}FkYftPv_lwezjj3;4>^~ zsM+7MQKIC?aZkPQafh1;p#Ik8rO|rAN$=hY_q=&T7{xW1NhFNXN@&C*{9#w_+@*v;wz(ZUPH z(WF^9j#z(s3@;BgW(@Wz0fRc&7mLn8XhPK*7JL@im82hiFaY;+`+>!cuJl-mV{GMO zn(Ob%F-)vgGF@G&21!cIZ8%tuW-jPC-Zu8%di(NlsNeA25vfEeA+j}<41zQ{Ufpu5(@Iuk*+8@0j_# z^Uk|G&;8ubefMPAnAf2z@9C<3mXyia$h z3ZWeIa9K)jtQ4fVJ@ES*XMYA)814LU9;(O(oaLZ{0JFw`ItTqVf^MM>!k{%9w zCHvsZaSJn>R88;AE}6fzTM(g6YCDLH6j%ji_|0+6pXIjUhB-}k=AAG>$I>4=r9Dt; zh4P-o;U}?WAv6$5)}_97!7gj>%qiL>poF5xTDXj`$56*=J#s5!Y z6nF)9NG2*l1?jW?=I4DkX1)WhJ-@$z)w(lHl5{oX7~lz*RJ)677MsZAP7c?37Cs(n z9PeztMZxR6rHiM%E*2yOnF)bilRyOVzs%k1c&{n& z=Mn`r7vTWj9q;tz6sO}>+y_iFk<-fiA0NXH?6~_*({uuxUI3TN78A zCZ82brqyqC#Ty#~mBJQgins8N`mUbOh1 z-OK6(@&w`f<#$!~>-3;gnjb|vqndgh0P z8VWBH=mK!pEQp?c9Ikz_do>3(BP_W!Jf|fIESC;|&&_rN78mZ0hB*bZ4CSE4 z%U7c@%)f#yaRMJ7v z4V-XF#;et_`T;YqZSc#z21Rt7F{?IwN9uTu52kZJBw5+?TF=;aa&q?n0O{v>m>!quhXlAX?Q2&^780% zz-@6DG^vw}R9tJO2Sv$hfHl#udK#2@b6Z9ww<-`Mr;oMp;vo)|8cZxPgd0!5p1s|G z+5Y_&F%7D>1l8_t`@7~Q!VOiA zX%B+L16B&_f|!$c7r2-0$FPWvHvXV?@EvGqVmGi8ntbW-)oJ-HD2?6*Irq$m;!?^X z+f%Dk`I~ETN~edP>m~;Qo2C)E;=kdE%KxrtRGOabefSCSH}rr=Jo}HZ@&Bs+_y59v z{;$CF|C5(}ttGzG^3OG^!K!E>@1Zu+ekR_qu=DbRdvl#ozm15Q4j~Yiq&zcm?8$fo z0`io2e^9~r6Nlb?_#e6S%mV296fx8&Fks&WEu#H}U7W0yQS5BaW9FcbRO25biG(#; zlLhz_cyEw#j(}4KnnIlnzoWkK6u>#_W;rD3Y95HHsQ;z1MO@#UkM2wd*qS^L)B*ln z5-v$8Dwh9|XU{kcNw`F^{T>*qg!0O<=0ytqE&2(x^2pkX36!SGJKFcX(r4%YJDV!c zvhN97!V>1@(lqBfZ?Hv}{Z}K5umxH^p)J>ZqFn#7h=Y#<2f%g<_mq%hbx$MTDZ4X9 zJo2`9@7VPSv7J+&@LYO?_635oHrTVA`?Y4MWKHj->ueF`yBm=K>(AQ_;gLKy9|$(| z3cPga!??K${yzV=sIPJda2H7{q7tAjL_iR9h4Cxaq>x2&W)m65SxJRE8wiWy&>vu2DP$(V{PT3+({Lj!KKBM>T4Q6}X!Ry|gOp9O^ zc>m`$R&Fo9P5t8I81eAa(O%2{Z2U5DIC2-L>(E9IIRoTM;&Hi}fDpuH%_DcYuR&fl z)s!YP$4bUn9#p$RftL5Zf*5VJ(Dv6?=At32c9`@sj!S5h9%O^d_~<{<$dz|>M}i}I zi<8^m-he7Snv~;Ja5{=O-lri$>xZb#Kf3KTwhdHSfG}fwKRgVMf*w-ELF;WF=(8L1(FFS8U_`Pig8CTRvbyn)h|a?)wPNantwrbs znN)F=?Uky&7eqWet;>0+vWpWU@C`*yZ;u8^5BH^8QP*tT7$MMa={`|0ylDX&ZqrLv zlFnE}?vp2=@rzzSa6yQXJEHgBWm{J%mnh65dv>=A(t0#y%Qsii*J8ADG6NS2v$=h1 z50LS7o?V>3-zkY<9~U{ofr5_)pRdZpF78cDNCf?Sk3|rFET0sc^V0Cw4FiFDguP_) zM9p{tB}dA6VdY#pSauO7fM(PvvbeoN+`?j_5efvq#Tnb9*rA|8xiJ+ERexd1zPaV- z^qeZFUjpazS^Bt`@+=I0Zf8UHs&MWW!|_g2k_YamEz3u#$HFvwl>|0OguP?8X=bT^ zuB$(thG16=j(o%0$)|9{oijzUO;6w-KsaG#+n701x2goRUrLsNyk6j*{>*@lrg=5Y zgbAw86||-rUtD^&jwlwtMO5c}k7Ldt^lNfUou#ejaQ;rt$-GRM>-e>&U)iB$4Gu>K zfqc$ocWWRd6~Q*lQeb*Ra!uth<4A-h*f-bQhHbT(6+cVafXnq*MWCD6o8#a zbD!K;4!9mr3(COIIE4qORMNP=u?Y}a5#s)cw{0whAP9Z<0Xhw7t45f86xYs^-_PFI z8#o}mXiuLb6h5bfccy(XLL)Dm^W3d;=R<1eX`XZ;ymm`v&)p>A%?5}Q6aI`Z7$0FS zy)y1Q?PVgsLUHQV2~%NkSo;2M$nv_SkjNG>?F9I)+&>5GvCf1EOdz!+X9EJw^nS26 zN$)S^?B$p1U2<8QZI|{FpX3e}u^DF`?R}h9V%F7svcdYzKT!8ZkqW2y)mg*Ts_d#q zM{ue-E=8Xuk;3e?k|+1$f4u1uI7K+C&~>gqKP29Gfm>zGso2`; zb+PVcSZ`UX6dMq*q&#UgxM~B5SDmn14EOfN$`kg!rMU}gvl0FbV0Y6(XeJ~l)7S}T zCi)X!jZPt{$UkthdZ*~$sUb&5n?voDD1Wo4F-N$O;+BB+>Hg02bD80fw=zFtQl!=& zlHKrm^y{}z5?ve!J<1j>!@HZB!!<&(^ct7C@c7v+@4%p*j4S{1G;`AR^JapY(dN3D zsnSwxe4rVteY3~0MDQge8)zsS{*kDY-uJ;wk^WdJ-Q#k@Ym!NzY=gK5u9h5&I6mVB z4RrndN!8SLn&`R2`-eL5ZTw_jNUDO_4A68GIPO&!D>fUdxc*KxH>A~;FB;qw800o4 zsg-!_PNUPS7pbs#(C!Rj2*!ut9=MJ>O-*`CgBD{6Ho5}cS^zWBH=ne^U$=V!2vEUq zX=f8SKS7VS;3puWiq*@U?T!bc2M`98?sw31x!vv@+?6X>%;oc5%QwD;PDK|h)-y8G zK~x^&w9e*gMb31)f;Tdrqa3^u(4V2*J9PKZsoDT1nEd+tE548;q<|R9#?}Q{n@n>r zSrG+;mEKx$MetOy<>Bmmd`4AY3DQhTf*~SzRPwY~B-b8vanlsu{Jh2DU&h1F| z5@{3%X7PRKw00AlloQX6f?MXefNRil#|IcNE7dynsHw#G&;hOCM|}!=7b6G~z!cp=buurEfuJ32_ig0HQXHnnW&UP= z84-owD{a&G(KcOFSTa%NghWB0@r^>hK<*eck#*$}hTpWdT%3ml%YF=M`i%SVCSwCT z@xjPbR{HUElkQ;mMvtI9ks3jLp4fExE*Xa2NVZeAGL=?>9I{qyF6-QWDvL*Z$^y@G z*^N0wP}7*JB2tzI?E0GZ{mqrK+!3%~5q-p;BH_~saGqG;A3f1nhSt9j4%8IGrJ)Yi(^g+IueUm~fID^TIa5(n+Zce^PJ!6}t$PeTl~NbPV`)KNnTra}JRmER z+Y;+VZIr^Ni_1D?w6Xx#^73k-?-_VX&T;bxq zn$q@XCyFFBO6v^(WhOq^hQn{EJlY}?o_hISaZ(jY$TWrFs!5dBl9Q|QzO7&aJCJWK zN-#S8ttx11F-5%KhJUs8=A5yIa@YHEb>-c_nKSX=dS5*))pe&&?|4^~&hF-x?*JS) zOOInGDEly%xdXBazj)U*Akq-ea-s7fgLaCj=k6@NFiIrT!Uq;@yYEYEq)BOb*$rNg zFSkpWP+c6+zCc1w1iJ7NDWd#}#NcnLqk}SUSp9Xj8Ui9Npr^d;zZTuDkhXf%>Isq$Kg4W^6VD?Z5 zW!%1-M>1qmB7_?f;hf!`g@e^NOC6D2CdXZOUmDK zL&|>+x8Snj$|svuHumv_0h-;8b#3pItZy$igVr;KN0F26CwiYWVSKq#DqTWbb|@M~biBy9MeXshZ&Oxj=vJ z+k^95u;bDwtEWDX>wr)06WPXt;Q%{^$SUU4nQ(5%0~_HZFqZ*2o;Uy0HK7KKKh+|j z7nmt?GI)9z^66`77V9?3ixx!Rd?e!|ubUBLvmAsIz1PfVlw@;-ZZvMg;jhA3bg2y@ zHMjV54s|d!)5@$u_1qdBobUX0?I(0GK=5B-Xfx8K&;YN4dhe{#IWc=v1nxG*dvaV_ zzA5+EDOnx>$xQi^W{i_x?8u1$&YUcgY(U-YbMwx)>Q3^%^%A?|_cLDy33Z*{0SuV& z6aMeP&?e?O*Mo*Kh*BD>^~x=B?rF-Z+*Y^K;_U_#NTY5)=JhgNSeP70>+S6>4=@5M zVRz2UbW_)7-8xc#Ar)gT(^|qUHIgNqJleO2UC)lyj6(0#Rd6+nPoNyDPQqpV>F^D<&LiC}zj>`wpQ7VZ{)gWW21Yatg3Ja5D) zA6?U`Vszu4YrQP#pp?nfc}4>ui_y)g+*CA?(sXEMH^zy24D=RbdEKMfE0caI?3JWE zQBNKtY@9)zToFf6_f~^6`FsVoDtM`Wh6NFc;_k@PJ46sV6zgcH{=2#}ApH@Uxun#c z4fOfm441W4C>da@ob4K&K9eUbj&{=DEwQjU#0*xZ+sB#bS@8Efoh`Aull-qSkg0r2 z$5m$~x($rM@Gkkp_1?C7$r+^2MXxJJXo>ue*SZcxPgRnQlsCm$q?`2HDec5xEzTE)c%3^ z7)CI(+7R!i>1>rHfEbOvw`Lha$a{=c`!V-J;38som|mqCx?)G^et?1^H8d*6nS zP1SU?x9n4&vuW`tJ#ln#w!4NQqq6r3My?ZtpDEhv@5O*o+} zq}pPmoB{upn`Ams6Nm;8`<}$NXMRg1Oc*J#WRQQ`SSY`^OqxwPZ%l@h<=Law~iU*i}+gq^jaKfnV=U2i(D?$-ON?|64T-og%sAA) zDmf{R*2!%urpT`tt8H+85NcB49Q-Fm@=8;gc3@c!-Odx;+v8J?q~`+pGfnzAWf$hE z>?Rsf_k_*O-^*IC8a2mS?^@#hoeC)arNM7TY~B;uBZ% z@JkK45|~(xVL54MnV=+DwE654&?LJ)a+f$D&tp`KZ4%XYRDSx!5_h`A{CA!%FXn1W z{RnlE-t$TtNX{2O*4CqK5lXsoT#}=!xo(v6^+_&U%f!ab?kILn@i(}6qtzy%OjHu` zrnXirHD4E++)FIhO@${4o!ZQTzRxwudN|22bydJ z*0a-M&__9Vej6SQjpj&E(hDX|un@Ou9y zB&S0O<|&9?{DlUS9)By@W1%Va=H1$lb!yzHRk^&OmSpAJwniZ6?{gjQ&{fg&Sfi|v zEHmqwTT_-vsjpx4W*46H*D<}^yJuPu!&RHj<$`4}v~h<`fA4+@Q&fUo$^ixZsg_bJ zyeqL!CdkgrT4z`ySswhYSRAiPhEN%@p9iSP7-OSHE@E>B4lpPnYrhnjyjU!(#6Q_?I(0U z^N{w3SLMdWsJOs1n9xUCG3&)wBnGW8os3VU*9cyg=Aoj5 z*&J1Ksx@5o1Sbo`Ik?p(b+)X{D$B3l3Z>{YYC6+E*7(O5mLUD+n#jGTMy|ZXX4=HnZ;m-nhTK+k;D59&XjQ$xzhd$F+ zkx$M+BcY@jVCnZP^k~=R$Nj?`lp@dJHq)?wx>D^GE)+dBi%*pTvUGs{$T_-JBT$~v ztJ$&sd%4liUr#~g-WSUVTjbeAkym*bVN9bmLnz~nLyt6luJy)+t{A?(E4SaC#t&$?Z}pQrAgrdma(TipGIql2So5Do^C;No)|xz{{m$P>EE$Z3 zBsL|*-9DI?=&FtVYDeSm#_<5U)ZUaJq1x-gm8{xJ>8RJ#+<=& zCGm`;pF17>g;Zo{QRV?f9qy)Xwhy}m)BR!?q9Pi*SVm$%KqHkVhFLD%>6w5lM|Nhq zGk*7SHWG+6gL9dS1ySvfeo(|+apd;Zu3yp%yJfy6#Y!@bcoCc~gWcCXEXYef;Kc=J z${=I%ge*jV1|^efMU8$i_o>n^X6*PM((M#H-%A#i4Er3|7$154gyY$nAG-9U7vc;c zyH$~(CQ2+{P+88)&OGaaZE^$5MseS)8V@2GY7^ut8q_Cu+8aMO{eTkr5#Rb`piVs* zKGWgI$TjKW7pjbrOslH+H~Hh0Eh8meUQbNEiyVjF`H-=7M^;SDV-Z3V2;2N+VytR{ z7Rqs+{u~|+%EatWI%!F0ceky6eJaJJ%xw8zfHK}YsKN&~q3z>S14GMHZ}^bDNL&(9 zY{?4Yb1g@s-4V_&_{5R>PQ_DB-(TpQR_v~-%pW&t=s`|w-8e7#%@b!anA?#SxYxzZ z%o62f9LaacHH0yUD9pi&QIK=7VuwGm7AsNGx75epI!zb9uT(mnCY_?n+~1s6_w3vIkA`x%2U46RwJ*I=ZaXEa z(BPKdK3Gok1LCrD&L{hky!XijyI(p?CIUJW&z%^9$LBq!6&&fGQFhn9jMx?FUPPE# z3shLb8unjY7(J$@rb<*MQ1x^(`K`P+r{f%2dz*{!>wVX9R0eDB&TNm24eTTs*>C&uXu?a5|2DADlC*6J0xe!D+r0b~pvEOrPikzRf z$mBHYinFTREja!Q2Y#G5wM=RFWd{&KnZ?)k+X|CD}BDRZ%Il z!H)^E;6aRKe3{eG?wQwDy*O^3Ok7PA>p2=s>P0$ILW0L8V>na>PBWb7W}umTt7zch zk&2?8IIJLUw8HXa(;~%U)>3mR2T-uk!sUl(Q#JI8B^QyEHQKVorMXz3M5YJQe;YwDXU*J#8|jihV% zfd@e7*LWDim@kHA4vyIxF_hi|4?i`eb3wefgs#hBVDVQ(?SjXWh)S+# zqTi`7b$*kekuCaQaY{>sw-pH!AaRAI`_m4zCFKt7_>B-AAKuft(DgRuhWZSasNq&m zL-o;q=!=p_O#9+5nx>`b{fH~6H*!T6rR25bduxx}<9>^q)#rZ2eWTTUP9uu+RpF=_ zEKD=ZdMZbG#1Qv@C1b;qG0uDSNU+N8EGN+&lTNm*^R%!MsoIhbrFn`86^P+5*B?sPP8N4=Ry#@G_P|!F@+u}eZhSS-N)u+Goh(f# zbZ2moaHAqUFEV=#8OcieLLgkZ{H)HZfy>yrXtA=NWJ&UbyCCaXT6OHMx^nh_y?Xqk z38ms$Vs2c4HB%1yj$`+^A}e|6NDK$ zZy;L$nxQGzhpXBBwv3ADjjr`gb~c9?ztFplAeti_ek9AVebk>g?=N@Jro7eK9Qoe) z$vumiOR}TvFTHVBo|XS=$)hsqoUDz0PVP~rfwMb}o3UF{XIoNwX;rcaVPKwqlFtbp zt(_}Wn0jP?cOD#A(AwerBB#5OXY9Og4gi7I7%n@I>)!vlhbHqM^virP_Zmpoj0W|g zE@rioI~U`D<)8oyOU9#DXIrMw4RwHO-vOvsufF+AM0yeDsE99`VUnv2j`m+(?{f1g zEJ1=Ja)ij^C6-)fx(cL(72up7Dk@{k>s61+br6X2HB(#m6?onLARBdL6Qt8YpHFl@ zJAGOatct{Igod{z96E|mzc53Ag&vem@U1Enk{@_UzdLbe8R(31$#kPe?9qzq`Y|!< zNjlOl_~(ENP%w1U{2bs106T)lBey7u*F2d{!N=-97)3WoQz1tH{#pE@6ORUyN=-wz zq;#i)Ctf(M44&v@t1f@&Tk$ZmorV|CHST^xIr27~9yf5vO=mn#>asC6_bjly37|v5 z#&!6Xzhz6g%CUc{AT^9ZUR(+Fv(6O8MnLR;q8=nu6>;N;ZY9Z!D_>sf(U)x^b1(@< z79@`eZOmtaCl6EzN;pF4;lT1F=bZ4QqDn5;1#HH!1+McBuJj%e5AukiN(+l?Ph~Zd z#AU)@m}b|K@zpzhSm=0Csnb=@uF<}E=p9(I1Pc4+&6Ei1wCnc_##pbR3+P&U-FiFc zm;655(m+dS1UMU~FgjAU*g%0^a_ad(7oT#*q~7HzXFz;CN4;DKtZ3FI6W|(whhxmG z+Qi^N5iF;0>dkW}cmsf!Ca_jzR=a#QTK!l*IKhP`#zE&}d+YO%6Mar06EYK+&}$%{ zcrBi}tH#Z(@Cy`{|Auqje*B>B(DfL6odGnSOQH#!JoPb>r z!+RApIx{#zPr#2t1b#2*gl7c!=IBPj!c>wUKI_j`&!87fCFEuXv_V;VedTt4nsb#S zo78pWZ#oBmvrrTir3}{ld<%mCzlrCiQhS=o(p8UU>#9D872@orG8U9rcvIJ74Jg!% z#ZrxE75lSdOAWWDjuqe-Df$Rhi)h4{x8 zkOVHtBlTY{U6IcWbnII6yV;W}wLN}0|4rh#VKF15vee}7)6~2!!!x#B&DwCr=Sp#o zJ*jl>V21gILXvCEKvTO!LeYCaU$xuBrfN99_<}phT3tK2e>9+y%a;~*Rf0Cul(hth z=ubO2h-;daDhzLdMTyuoXJ-MlUE83j+Now`bGA}<8~;^#nEKNh?cy!zmXvmyq2y~q zr2a<((v-3yp*P{Q&-2?>Fm?Mi+j!6+$`;rMuW7JH4u0>(k!<0vEr>(RwEY=kNnQ5h{v^`|QJVv1^G&=vcD_ z-a5cE@)RG8O`3r6Tew*KLJia3nH*ECK9C?v{Z~QMHSL1F=zc%jaYoyonu#b9!A@B= zH=RO~VxZOff@`yceyiqA_REO`s&QDzv#$amH%`>U`7adQz29 zncGq8rQQ+=t3c9Z7_``=UYXC!ps8S>$f$!Urfy+1?O=TOUS7nTs%gU8r#OL^)sKJS z#~LgANkr}lrx838R%!cf11j>N^5K$A^EFXadaB&kZ!r(bd1nF9h9Swu1HOV}#z@6q z1$}$3GnmC8;{@WYmCq0npI6mo?caq}qRAaYJf_y}_qg7+TKcy>?jiE`tVnyFE@SBW z3x&6^Wn;KnfarSfFf;P(`!UC*caVkYEY(-_tJ?=}7bIR{bP=TOEsf8b_5A;qK4x@V zSU#Lr26%Da7Ot#eBZ^%X2MsM{Q={GlMYCj(rb+e}_yrokcJh^L?p`8lSi`pgz1_y^lB;wm zMyyL`EPvo{$GqS^S^;|k?1H(y!y#w~?17*YtEh>snLL<+yr&qZq zq=2kRZ!2OWxt}d$%{`;9Q&|M_HNw14(LP26-BH7ZsvJQT6ZiU>;U5DPz{3(GER?QATMoRS$8aVWAC zu^K@L9uMkz>~U+p;TJm&^1ZSrYH8GYIWuEv0qJe^Eyql2I8f4+=-IVYyCMg!p4B*q zac1s^>81n}egxlUyYVodL$m}Et)xWRd3nKcIZTLB8?axFXi}#B#7=OR^uZa_b?C2S zdsY^7R^ybdk7pgdJ=F>oZ@Ao-6_T>{If~u*m4-~$!joG;O|Y!FBF_YQb6|ui()dWT zt~0~+=zZAcZ5J750d4v~ZrPuHRBYdsz|^takRsFTj}j516n{M@e2kc)F4tPWK!K7H z;93CX`fg8(3@%+itmOYxnSsfCe&Dc@at7vfMqGSJFqpyMP5@CsH;rtE!kr3`K_Og$;FcJ=-ti}*3+ zJ9CCSG2Mf2sQ(Pi6cA~vpQaDwR;ojf^2R#%m)JF@B-764QVT2)>HXkojN#hLylyi@KdrLtyrsuGOYVb=|Ex6bK>)n&7S&+w!}2PV!Jl; zwm4pw0qcDQqN`rU(i6Z|D@`<@)DotXH>&&HkTD};CYzX16nh`O{l=5vtVyAavH zC`ZbZH($75hw@C7fJ{02lkSF3X9j`FYKneZNrImbxg%3Q4k)gcj9@&U8dZJxeB)8# z=W@rmEyb0E#(eT+Bl>H(w+fZ!mKgsb<>|+n$O{P~-;q{V54;sz8$*-)$#Oi)!*z$& zHfbyM8OQl^ug%Vt=)~4vP|#(=CmfEc&==rNaUx5!1|HQM2qV-x2j!r5A8C% z`|Y-CCOTOhgU7YBLSdA*jk^wuZC8N?(-yIi&u8Uv!?rI|#lnqkT46-($7=t?XD&$z zzTn<7t-zQ3s}rlw1K$HrnH6{O*@8IS(h%2aTTSjG zFm2+14R7p&ucQ2@oojT(JY)+Dq$VQX$7dZ%eg`(dRbI<`$M{XF91;rx9=Y6u>z)a~ zUE$PE&0B%~Y;4fp-Ed$PECp!xEtsa2;g2eVsKTG_aLg;G$g_9}cKx)tXL}CeCl z9Nnk;4L!GA{G9fzO+rREty%pj&cvtYuEVCHSGQ!>e%_P2Vr8DMn*duL6tk)TTK+~Q zQufQItpu}*+OeJOY>HY{Y+-o8atj%aWc>w+>+*Z=JJ6u7P^@J`E3O4FnolfpyTxQM!js3!<+ zK4C?|2yJFVL^VbO3YXrY43s=ELYzCT4U?HzEldhi}$+1K~rn|aOm z?p6Dbe*P>t${q6ytyRx(nyZxu)v_8;>}V>z&u% z1XlBCrk$m`Nzedk{lmR0PntZZa>~Np8|*=mjvAl%yz$HkCM`!yar@sG`TYG|bn7~H zpX=^7F5ufNT=R!`@#||QAH!3NPlNj(uQTDPG2ll@4vZ?vRNG6?%!(VTnXuj`JQ{{K zZLwKfZDSBF6eaWlQGB9k2TSPjTP*rHbV-EJvt9l054++klc&A%(D&xvy)5$AQu<>& zv8rK9D2X!NWlP<~!l0{(b!C8}8Om zBv@dQYRc$eC6YeM^0NhdC0zfeKA$zX_ON$>_y}oT=G8y1BdNCkU0O$%|B_8d?2?-Z z|E9`#sZtxovVOsCZUspg3SF1yeDtul`D>>AkKGM3GoJ{9hXC5hd3~_exAdZ{u|lau zf0yvlL2RM$y?L`q{lJ1y^@?0;tr8V)pq3h+ooT#hDEy08^hG^D)^72eaa}KMEh&Y+ zbZ;D544y73ejPooy!<Lfpv_B!gQ8JL!AK3M(x8z-=Bf7OaRX;l}oug3m zQL0~FW(k&w&IKQNmDr3JbryWjI@91iyGt0gV;JIc_J~? zfvYRUj@nJ2_77Z3MsAgq#Jylaw`obHg;EtRZp5q7=YO4-V$+f|M&UZSM8A}kRYn;6 zA<(kk1w3T>Jb*YY9Fw9bj1cg7{MS(%k-x5-!9@@L=>~?J0ld`s48;@OU;YS_1CEu( zaVsclz{)t=!v-ds`@9~!#Q2|bsYbBhW(n4JIHZfyWG)6@s`khG8@%VP;H^`hbT`za z8_3I7L7ED(LDAz1D7h5L@)yt+@DCBfK+PwB^8~)zADBlz1^wnKKl{34Tn3^5wX!`) z)S)jL7+Dq>(g>bx5nTTbAD~u^^sp%JrE>KVP`P{miv8V1PeJMRtAF^vceUY*Ll5jK z)g>L3c7iAMuKma0R$=I$>;$MO+C1gNm&<>L&U*js+0LV18lajQG!rnqMHj;Z4iJ5U zubbFksA=%-dYCZ#@?P9pM?#yWisesrXYTJNTr18B^O! zmG$dm9v!S7u!Qs#J5gs!U?ewQjg#=e-x~@w2J>5~h zdvM?nQaaY5st&z89Hyu$ljaXC!0WxrLBQ)j1Xh{X%--v=5xdhXt*6baF~d8YqK_Jb zYyYaeol%vvvql-s)XjH3JND~?*?0ftwV6utRt935B6p#rGM5NoRSRZ@mBZX|t{;v@ ziUB$i(B*x)mbIJ1BK63$h1-e|hz-7RW?e|-Ek*r%K{{fel+ga|C4R6JEMnBp<%$js zIWN}lNnHV;PazC|W)Mj0gYReKU$B5ul6lqH6bVg`!Raw*3y|+_5iV_fy8ylE32d<; z%>OM%$o+4N(%@ZS(yssa+e26#{tS!uSuuY;5;RA@{l6$ZUD*iAM2)|>`si^5?E`c) L4KzyCY(xJS?q3OU literal 0 HcmV?d00001 From 6e52f081fb67b4fef80fee14435af02eed923a93 Mon Sep 17 00:00:00 2001 From: Martin <25747549+martgras@users.noreply.github.com> Date: Wed, 24 Nov 2021 23:28:23 +0100 Subject: [PATCH 11/34] Add sdp800 to sdp3x documentation (#1646) --- components/sensor/sdp3x.rst | 11 ++++++----- index.rst | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/components/sensor/sdp3x.rst b/components/sensor/sdp3x.rst index 0ff717b27..4bbfd7159 100644 --- a/components/sensor/sdp3x.rst +++ b/components/sensor/sdp3x.rst @@ -1,14 +1,14 @@ -SDP3x Differential Pressure Sensor -================================== +SDP3x / SDP800 Series Differential Pressure Sensor +=================================================== .. seo:: - :description: Instructions for setting up the SDP3x Differential Pressure sensor. + :description: Instructions for setting up the SDP3x or SDP800 Series Differential Pressure sensor. :image: sdp31.jpg - :keywords: SDP3x, SDP31, SDP32 + :keywords: SDP3x, SDP31, SDP32, SDP800 Series, SDP810, SDP810 The SDP3x Differential Pressure sensor allows you to use your SDP3x (`datasheet `__, -`sparkfun `__) +`sparkfun `__) or SDP800 Series (`datasheet `__) sensors with ESPHome. .. figure:: images/sdp31.jpg @@ -35,6 +35,7 @@ Configuration variables: - **name** (**Required**, string): The name for this sensor. - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for lambdas/multiple sensors. - **address** (*Optional*, int): The I²C address of the sensor. Defaults to ``0x21``. +- **measurement_mode** (*Optional*): The measurement mode of the sensor. Valid options are ``differential_pressure`` and ``mass_flow``. Defaults to ``differential_pressure``. - **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``. - All other options from :ref:`Sensor `. diff --git a/index.rst b/index.rst index 39363f29f..4730dfd27 100644 --- a/index.rst +++ b/index.rst @@ -283,7 +283,7 @@ Environmental RuuviTag, components/sensor/ruuvitag, ruuvitag.jpg, Temperature & Humidity & Accelerometer SCD30, components/sensor/scd30, scd30.jpg, CO2 & Temperature & Humidity SCD4X, components/sensor/scd4x, scd4x.jpg, CO2 & Temperature & Humidity - SDP3x, components/sensor/sdp3x, sdp31.jpg, Pressure + SDP3x / SDP800 Series, components/sensor/sdp3x, sdp31.jpg, Pressure SHT3X-D, components/sensor/sht3xd, sht3xd.jpg, Temperature & Humidity SHT4X, components/sensor/sht4x, sht4x.jpg, Temperature & Humidity SHTCx, components/sensor/shtcx, shtc3.jpg, Temperature & Humidity From 36a7bdb78aaaa299c5d2dd3fe5aee932d366aa7f Mon Sep 17 00:00:00 2001 From: Maurice Makaay Date: Thu, 25 Nov 2021 12:03:24 +0100 Subject: [PATCH 12/34] Add documentation for max_telegram_size (#1594) --- components/sensor/dsmr.rst | 63 +++++++++++++++++++++++++++++++++++--- 1 file changed, 58 insertions(+), 5 deletions(-) diff --git a/components/sensor/dsmr.rst b/components/sensor/dsmr.rst index 8a7fb3783..b1fe62c9c 100644 --- a/components/sensor/dsmr.rst +++ b/components/sensor/dsmr.rst @@ -44,8 +44,10 @@ Configuration variables: - **decryption_key** (*Optional*, string, :ref:`templatable `, 32 characters, case insensitive): The key to decrypt the telegrams. Used in Lux only. - **gas_mbus_id** (*Optional*, integer): The id of the gas meter. Defaults to ``1``. -- **crc_check** (*Optional*, boolean): Specifies if the CRC check must be done. This is required to be set to false - for older DSMR versions as they do not provide a CRC. Defaults to ``true``. +- **crc_check** (*Optional*, boolean): Specifies if the CRC check must be done. This is required to be set to false for + older DSMR versions as they do not provide a CRC. Defaults to ``true``. +- **max_telegram_length** (*Optional*, integer): The size of the buffer used for reading DSMR telegrams. Increase + if you are reading from a smart meter that sends large telegrams. Defaults to ``1500``. - **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the UART hub. - **request_pin** (*Optional*, :ref:`Pin Schema `): The pin that can be used for controlling the P1 port's Data Request pin. Defaults to not using a Data Request pin. @@ -212,7 +214,6 @@ Luxembourg - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas. - All other options from :ref:`Sensor `. - Text Sensor ----------- @@ -278,10 +279,11 @@ Version 2.2 is supported with the following configuration: gas_delivered_text: name: "gas delivered raw" + .. _sensor-dsmr-request_pin: -Using the P1 Data Request pin ------------------------------ +P1 Data Request pin +------------------- From the P1 companion guide: The P1 port is activated (start sending data) by setting "Data Request" line high (to +5V). While receiving data, the requesting OSM must keep the "Data Request" line activated (set to +5V). @@ -311,6 +313,57 @@ or a transistor-based circuit are not feasible options. Here's an example circui .. figure:: images/dsmr-request-pin-circuit-example.png +.. _sensor-dsmr-improving_reader_results: + +Improving reader results +------------------------ + +When telegrams are sometimes missed or when you get a lot of CRC errors, then you might have to do some +changes to get better reader results. + +It is recommended to set the ``rx_buffer_size`` option of the UART bus to at least the maximum telegram size, +which defaults to 1500 bytes. The default UART read buffer is quite small an can easily overflow, causing +bytes of data getting lost. + +.. code-block:: yaml + + # Example configuration + uart: + pin: D7 + baud_rate: 115200 + rx_buffer_size: 1700 + + dsmr: + max_telegram_length: 1700 + +It's best when a hardware UART is used for reading the P1 data. Whether or not hardware UART is used can +be checked in the config dump that you get when connecting to the API logger. Example logging output: + +.. code-block:: text + + [02:38:37][C][uart.arduino_esp8266:095]: UART Bus: + [02:38:37][C][uart.arduino_esp8266:097]: RX Pin: GPIO13 + [02:38:37][C][uart.arduino_esp8266:099]: RX Buffer Size: 1500 + [02:38:37][C][uart.arduino_esp8266:101]: Baud Rate: 115200 baud + [02:38:37][C][uart.arduino_esp8266:102]: Data Bits: 8 + [02:38:37][C][uart.arduino_esp8266:103]: Parity: NONE + [02:38:37][C][uart.arduino_esp8266:104]: Stop bits: 1 + [02:38:37][C][uart.arduino_esp8266:106]: Using hardware serial interface. + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +When using an ESP8266, then GPIO13 (e.g. pin D7 on a D1 Mini) can be used for hardware RX. However, to +actually make it work, serial logging must be disabled to keep the hardware UART available for D7. + +.. code-block:: yaml + + # Example configuration for ESP8266 + logger: + baud_rate: 0 + level: DEBUG + + uart: + pin: GPIO13 + baud_rate: 115200 See Also -------- From 711cbc41f5b2158e8b01c6dd6edff63521b8e1d0 Mon Sep 17 00:00:00 2001 From: Maurice Makaay Date: Thu, 25 Nov 2021 12:54:48 +0100 Subject: [PATCH 13/34] Update uart debugger docs with new minimal config option (#1642) --- components/uart.rst | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/components/uart.rst b/components/uart.rst index 214842b34..148e51dc2 100644 --- a/components/uart.rst +++ b/components/uart.rst @@ -128,9 +128,14 @@ of the debugging feature. direction: BOTH dummy_receiver: false after: - bytes: 60 + delimiter: "\n" sequence: - - lambda: UARTDebug::log_hex(direction, bytes, ':'); + - lambda: UARTDebug::log_string(direction, bytes); + + # Minimal configuration example, logs hex strings by default + uart: + baud_rate: 9600 + debug: - **direction** (*Optional*, enum): The direction of communication to debug, one of: "RX" (receive, incoming), "TX" (send, outgoing) or "BOTH". Defaults to "BOTH". @@ -142,14 +147,14 @@ of the debugging feature. - **after** (*Optional*, mapping): The debugger accumulates bytes of communication. This option defines when to trigger publishing the accumulated bytes. The possible options are: - - **bytes** (*Optional*, int): Trigger after accumulating the specified number of bytes. Defaults to 256. + - **bytes** (*Optional*, int): Trigger after accumulating the specified number of bytes. Defaults to 150. - **timeout** (*Optional*, :ref:`config-time`): Trigger after no communication has been seen during the specified timeout, while one or more bytes have been accumulated. Defaults to 100ms. - **sequence** (*Optional*, string or list of bytes): Trigger after the specified sequence of bytes is detected in the communication. -- **sequence** (*Required*, :ref:`config-action`): Action(s) to perform for publishing debugging data. The - actions can make use of the following variables: +- **sequence** (*Optional*, :ref:`config-action`): Action(s) to perform for publishing debugging data. + Defaults to an action that logs the bytes in hex format. The actions can make use of the following variables: - **direction**: ``uart::UART_DIRECTION_RX`` or ``uart::UART_DIRECTION_TX`` - **bytes**: ``std::vector`` containing the accumulated bytes From e51bd800e97d42156d88b56e4e1e1f937e0ad309 Mon Sep 17 00:00:00 2001 From: Oxan van Leeuwen Date: Thu, 25 Nov 2021 21:35:38 +0100 Subject: [PATCH 14/34] Add map filter for text sensors (#1632) --- components/text_sensor/index.rst | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/components/text_sensor/index.rst b/components/text_sensor/index.rst index c2a643442..d5379c67d 100644 --- a/components/text_sensor/index.rst +++ b/components/text_sensor/index.rst @@ -142,6 +142,25 @@ Search the current value of the text sensor for a string, and replace it with an The arguments are a list of substitutions, each in the form ``TO_FIND -> REPLACEMENT``. +``map`` +******* + +Lookup the current value of the text sensor in a list, and return the matching item if found. +Does not change the value of the text sensor if the current value wasn't found. + + +.. code-block:: yaml + + # Example configuration entry + - platform: template + # ... + filters: + - map: + - high -> On + - low -> Off + +The arguments are a list of substitutions, each in the form ``LOOKUP -> REPLACEMENT``. + ``lambda`` ********** From e16e31733dd67f27f57a04598e1b005d7d2c8ef0 Mon Sep 17 00:00:00 2001 From: Oxan van Leeuwen Date: Thu, 25 Nov 2021 22:47:29 +0100 Subject: [PATCH 15/34] Fix mDNS icon (#1666) --- components/mdns.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/mdns.rst b/components/mdns.rst index 7ceb3994f..4abc18dbc 100644 --- a/components/mdns.rst +++ b/components/mdns.rst @@ -3,7 +3,7 @@ mDNS Component .. seo:: :description: Instructions for setting up the mDNS configuration for your ESP node in ESPHome. - :image: mdns.svg + :image: radio-tower.svg :keywords: WiFi, WLAN, ESP8266, ESP32, mDNS The ``mdns`` component makes the node announce itself on the local network using the multicast DNS (mDNS) protocol. From 22126d74939a2e08a2a9607ba623bc15b6b1489b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Panella?= Date: Thu, 25 Nov 2021 15:57:08 -0600 Subject: [PATCH 16/34] total_daily_energy: add restore option (#1656) Co-authored-by: Oxan van Leeuwen --- components/sensor/total_daily_energy.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/components/sensor/total_daily_energy.rst b/components/sensor/total_daily_energy.rst index 8dcd7f32a..36891f933 100644 --- a/components/sensor/total_daily_energy.rst +++ b/components/sensor/total_daily_energy.rst @@ -38,6 +38,9 @@ Configuration variables: to integrate over time. - **name** (**Required**, string): The name of the sensor. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. +- **restore** (*Optional*, boolean): Whether to store the intermediate result on the device so + that the value can be restored upon power cycle or reboot. + Defaults to ``true``. - **min_save_interval** (*Optional*, :ref:`config-time`): The minimum time span between saving updated values to storage. This is to keep wearout of memory low. Defaults to ``0s``. - **method** (*Optional*, string): The method to use for calculating the total daily energy. One of ``trapezoid``, ``left`` or ``right``. Defaults to ``right``. From ce04f780663ac473832181f2ba931730e4d46933 Mon Sep 17 00:00:00 2001 From: Martin <25747549+martgras@users.noreply.github.com> Date: Fri, 26 Nov 2021 00:49:07 +0100 Subject: [PATCH 17/34] document modbus fp32 datatype (#1590) Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com> --- .../binary_sensor/modbus_controller.rst | 5 +- components/modbus_controller.rst | 27 ++- components/number/modbus_controller.rst | 33 ++-- components/output/modbus_controller.rst | 26 +-- components/sensor/modbus_controller.rst | 167 ++++++++++++++++-- components/switch/modbus_controller.rst | 43 +++++ components/text_sensor/modbus_controller.rst | 9 +- 7 files changed, 257 insertions(+), 53 deletions(-) diff --git a/components/binary_sensor/modbus_controller.rst b/components/binary_sensor/modbus_controller.rst index 2b87ffc32..26e4cc589 100644 --- a/components/binary_sensor/modbus_controller.rst +++ b/components/binary_sensor/modbus_controller.rst @@ -23,7 +23,10 @@ Configuration variables: - **address**: (**Required**, integer): start address of the first register in a range - **bitmask** : some values are packed in a response. The bitmask is used to determined if the result is true or false - **skip_updates**: (*Optional*, integer): By default all sensors of of a modbus_controller are updated together. For data points that don't change very frequently updates can be skipped. A value of 5 would only update this sensor range in every 5th update cycle -- **force_new_range**: (*Optional*, boolean): If possible sensors with sequential addresses are grouped together and requested in one range. Setting `foce_new_range: true` enforces the start of a new range at that address. +- **force_new_range**: (*Optional*, boolean): If possible sensors with sequential addresses are grouped together and requested in one range. Setting ``force_new_range: true`` enforces the start of a new range at that address. +- **custom_data** (*Optional*, list of bytes): raw bytes for modbus command. This allows using non-standard commands. If ``custom_data`` is used ``address`` and ``register_type`` can't be used. + custom data must contain all required bytes including the modbus device address. The crc is automatically calculated and appended to the command. + See :ref:`modbus_custom_data` how to use ``custom_command`` - **lambda** (*Optional*, :ref:`lambda `): Lambda to be evaluated every update interval to get the new value of the sensor - **offset**: (*Optional*, integer): not required for most cases diff --git a/components/modbus_controller.rst b/components/modbus_controller.rst index 2fc7a9b9c..755afb794 100644 --- a/components/modbus_controller.rst +++ b/components/modbus_controller.rst @@ -7,10 +7,6 @@ Modbus Controller The ``modbus_controller`` component creates a RS485 connection to control a modbus device -.. warning:: - - If you are using the :doc:`logger` uart logging might interfere especially on esp8266. You can disable the uart logging with the ``baud_rate: 0`` option. - .. figure:: /images/modbus.png :align: center :width: 25% @@ -29,6 +25,25 @@ See [How is this RS485 Module Working?](https://electronics.stackexchange.com/qu The controller connects to the UART of the MCU. For ESP32 GPIO PIN 16 to TXD PIN 17 to RXD are the default ports but any other pins can be used as well . 3.3V to VCC and GND to GND. +.. note:: + + If you are using an ESP8266, serial logging may cause problems reading from UART. For best results, hardware serial is recommended. Software serial may not be able to read all received data if other components spend a lot of time in the ``loop()``. + + For hardware serial only a limited set of pins can be used. Either ``tx_pin: GPIO1`` and ``rx_pin: GPIO3`` or ``tx_pin: GPIO15`` and ``rx_pin: GPIO13``. + + The disadvantage of using the hardware uart is that you can't use serial logging because the serial logs would be sent to the modbus device and cause errors. + + Serial logging can be disabled by setting ``baud_rate: 0``. + + See :doc:`logger` for more details + + .. code-block:: yaml + + logger: + level: + baud_rate: 0 + + Configuration variables: ------------------------ @@ -42,8 +57,8 @@ Configuration variables: Because some modbus devices limit the rate of requests the interval between sending requests to the device can be modified. -Getting started with Home Assistant ------------------------------------ +Example +------- The following code create a modbus_controller hub talking to a modbus device at address 1 with 115200 bps diff --git a/components/number/modbus_controller.rst b/components/number/modbus_controller.rst index e669ff8c9..21036d07b 100644 --- a/components/number/modbus_controller.rst +++ b/components/number/modbus_controller.rst @@ -18,27 +18,32 @@ Configuration variables: - read: Read Input Registers - registers are 16-bit registers used for input, and may only be read - **address**: (**Required**, int): start address of the first register in a range - **value_type**: (**Required**): datatype of the mod_bus register data. The default data type for modbus is a 16 bit integer in big endian format (MSB first) - - U_WORD (unsigned float from 1 register =16bit - - S_WORD (signed float from one register) - - U_DWORD (unsigned float from 2 registers = 32bit) - - S_DWORD (unsigned float from 2 registers = 32bit) - - U_DWORD_R (unsigend float from 2 registers low word first ) - - S_DWORD_R (sigend float from 2 registers low word first ) - - U_QWORD (unsigned float from 4 registers = 64bit - - S_QWORD (signed float from 4 registers = 64bit - - U_QWORD_R (unsigend float from 4 registers low word first ) - - S_QWORD_R (sigend float from 4 registers low word first ) + - U_WORD (unsigned 16 bit integer from 1 register = 16bit) + - S_WORD (signed 16 bit integer from 1 register = 16bit) + - U_DWORD (unsigned 32 bit integer from 2 registers = 32bit) + - S_DWORD (signed 32 bit integer from 2 registers = 32bit) + - U_DWORD_R (unsigned 32 bit integer from 2 registers low word first) + - S_DWORD_R (signed 32 bit integer from 2 registers low word first) + - U_QWORD (unsigned 64 bit integer from 4 registers = 64bit) + - S_QWORD (unsigned 64 bit integer from 4 registers = 64bit) + - U_QWORD_R (unsigned 64 bit integer from 4 registers low word first) + - U_QWORD_R signed 64 bit integer from 4 registers low word first) + - FP32 (32 bit IEEE 754 floating point from 2 registers) + - FP32_R (32 bit IEEE 754 floating point - same as FP32 but low word first) - **skip_updates**: (*Optional*, integer): By default all sensors of of a modbus_controller are updated together. For data points that don't change very frequently updates can be skipped. A value of 5 would only update this sensor range in every 5th update cycle Note: The modbus_controller groups component by address ranges to reduce number of transactions. All compoents with the same address will be updated in one request. skip_updates applies for all components in the same range. - **register_count**: (*Optional*): only required for uncommon response encodings - The number of registers this data point spans. Default is 1 -- **force_new_range**: (*Optional*, boolean): If possible sensors with sequential addresses are grouped together and requested in one range. Setting `foce_new_range: true` enforces the start of a new range at that address. + The number of registers this data point spans. Overrides the defaults determined by ``value_type``. +- **force_new_range**: (*Optional*, boolean): If possible sensors with sequential addresses are grouped together and requested in one range. Setting ``force_new_range: true`` enforces the start of a new range at that address. - **offset**: (*Optional*, int): only required for uncommon response encodings offset from start address in bytes. If more than one register is read a modbus read registers command this value is used to find the start of this datapoint relative to start address. The component calculates the size of the range based on offset and size of the value type - **min_value** (*Optional*, float): The minimum value this number can be. - **max_value** (*Optional*, float): The maximum value this number can be. - **step** (*Optional*, float): The granularity with which the number can be set. Defaults to 1 +- **custom_data** (*Optional*, list of bytes): raw bytes for modbus command. This allows using non-standard commands. If ``custom_data`` is used ``address`` and ``register_type`` can't be used. + custom data must contain all required bytes including the modbus device address. The crc is automatically calculated and appended to the command. + See :ref:`modbus_custom_data` how to use ``custom_command`` - **lambda** (*Optional*, :ref:`lambda `): Lambda to be evaluated every update interval to get the new value of the sensor. - **write_lambda** (*Optional*, :ref:`lambda `): Lambda called before send. @@ -53,7 +58,7 @@ Parameters passed into the lambda - **x** (float): The parsed float value of the modbus data - **data** (std::vectoroffset]` to get the first response byte for your sensor. + note: because the response contains data for all registers in the same range you have to use ``data[item->offset]`` to get the first response byte for your sensor. - **item** (const pointer to a SensorItem derived object): The sensor object itself. Possible return values for the lambda: @@ -68,7 +73,7 @@ Possible return values for the lambda: - **x** (float): The float value to be sent to the modbus device - **payload** (`std::vector&payload`): empty vector for the payload. The lamdba can add 16 bit raw modbus register words. - note: because the response contains data for all registers in the same range you have to use `data[item->offset]` to get the first response byte for your sensor. + note: because the response contains data for all registers in the same range you have to use ``data[item->offset]`` to get the first response byte for your sensor. - **item** (const pointer to a SensorItem derived object): The sensor object itself. Possible return values for the lambda: diff --git a/components/output/modbus_controller.rst b/components/output/modbus_controller.rst index baec36459..166ba6021 100644 --- a/components/output/modbus_controller.rst +++ b/components/output/modbus_controller.rst @@ -13,20 +13,22 @@ Configuration variables: - **name** (**Required**, string): The name of the sensor. - **address**: (**Required**, int): start address of the first register in a range - **value_type**: (**Required**): datatype of the mod_bus register data. The default data type for modbus is a 16 bit integer in big endian format (MSB first) - - U_WORD (unsigned float from 1 register =16bit - - S_WORD (signed float from one register) - - U_DWORD (unsigned float from 2 registers = 32bit) - - S_DWORD (unsigned float from 2 registers = 32bit) - - U_DWORD_R (unsigend float from 2 registers low word first ) - - S_DWORD_R (sigend float from 2 registers low word first ) - - U_QWORD (unsigned float from 4 registers = 64bit - - S_QWORD (signed float from 4 registers = 64bit - - U_QWORD_R (unsigend float from 4 registers low word first ) - - S_QWORD_R (sigend float from 4 registers low word first ) + - U_WORD (unsigned 16 bit integer from 1 register = 16bit) + - S_WORD (signed 16 bit integer from 1 register = 16bit) + - U_DWORD (unsigned 32 bit integer from 2 registers = 32bit) + - S_DWORD (signed 32 bit integer from 2 registers = 32bit) + - U_DWORD_R (unsigned 32 bit integer from 2 registers low word first) + - S_DWORD_R (signed 32 bit integer from 2 registers low word first) + - U_QWORD (unsigned 64 bit integer from 4 registers = 64bit) + - S_QWORD (unsigned 64 bit integer from 4 registers = 64bit) + - U_QWORD_R (unsigned 64 bit integer from 4 registers low word first) + - U_QWORD_R signed 64 bit integer from 4 registers low word first) + - FP32 (32 bit IEEE 754 floating point from 2 registers) + - FP32_R (32 bit IEEE 754 floating point - same as FP32 but low word first) - **register_count**: (*Optional*): only required for uncommon response encodings The number of registers this data point spans. Default is 1 - **write_lambda** (*Optional*, :ref:`lambda `): - Lambda is evaluated before the modbus write command is created. The value is passed in as `float x` and an empty vector is passed in as `std::vector&payload` + Lambda is evaluated before the modbus write command is created. The value is passed in as ``float x`` and an empty vector is passed in as ``std::vector&payload`` You can directly define the payload by adding data to payload then the return value is ignored and the content of payload is used. - **multiply** (*Optional*, float): multiply the new value with this factor before sending the requests. Ignored if lambda is defined. - **offset**: (*Optional*, int): only required for uncommon response encodings @@ -40,7 +42,7 @@ All other options from :ref:`Output `. - **x** (float): The float value to be sent to the modbus device - **payload** (`std::vector&payload`): empty vector for the payload. The lamdba can add 16 bit raw modbus register words. - note: because the response contains data for all registers in the same range you have to use `data[item->offset]` to get the first response byte for your sensor. + note: because the response contains data for all registers in the same range you have to use ``data[item->offset]`` to get the first response byte for your sensor. - **item** (const pointer to a SensorItem derived object): The sensor object itself. Possible return values for the lambda: diff --git a/components/sensor/modbus_controller.rst b/components/sensor/modbus_controller.rst index 46017db43..427826c7f 100644 --- a/components/sensor/modbus_controller.rst +++ b/components/sensor/modbus_controller.rst @@ -14,29 +14,38 @@ Configuration variables: - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. - **name** (**Required**, string): The name of the sensor. - **register_type** (**Required**): type of the modbus register. - - coil: coils are also called discrete outout. Coils are 1-bit registers (on/off values) that are used to control discrete outputs. Read and Write access - - discrete_input: discrete input register (read only coil) are similar to coils but can only be read. - - holding: Holding Registers - Holding registers are the most universal 16-bit register. Read and Write access - - read: Read Input Registers - registers are 16-bit registers used for input, and may only be read + - coil: coils are also called discrete output. Coils are 1-bit registers (on/off values) that are used to control discrete outputs. Read and Write access. Modbus function code 1 (Read Coil Status) will be used + - discrete_input: discrete input register (read only coil) are similar to coils but can only be read. Modbus function code 2 (Read Input Status) will be used. + - holding: Holding Registers - Holding registers are the most universal 16-bit register. Read and Write access. Modbus function code 3 (Read Holding Registers) will be used. + - read: Read Input Registers - registers are 16-bit registers used for input, and may only be read. Modbus function code 4 (Read Input Registers) will be used. - **address**: (**Required**, int): start address of the first register in a range - **value_type**: (**Required**): datatype of the mod_bus register data. The default data type for modbus is a 16 bit integer in big endian format (MSB first) - - U_WORD (unsigned float from 1 register =16bit - - S_WORD (signed float from one register) - - U_DWORD (unsigned float from 2 registers = 32bit) - - S_DWORD (unsigned float from 2 registers = 32bit) - - U_DWORD_R (unsigend float from 2 registers low word first ) - - S_DWORD_R (sigend float from 2 registers low word first ) - - U_QWORD (unsigned float from 4 registers = 64bit - - S_QWORD (signed float from 4 registers = 64bit - - U_QWORD_R (unsigend float from 4 registers low word first ) - - S_QWORD_R (sigend float from 4 registers low word first ) + - U_WORD (unsigned 16 bit integer from 1 register = 16bit) + - S_WORD (signed 16 bit integer from 1 register = 16bit) + - U_DWORD (unsigned 32 bit integer from 2 registers = 32bit) + - S_DWORD (signed 32 bit integer from 2 registers = 32bit) + - U_DWORD_R (unsigned 32 bit integer from 2 registers low word first) + - S_DWORD_R (signed 32 bit integer from 2 registers low word first) + - U_QWORD (unsigned 64 bit integer from 4 registers = 64bit) + - S_QWORD (unsigned 64 bit integer from 4 registers = 64bit) + - U_QWORD_R (unsigned 64 bit integer from 4 registers low word first) + - U_QWORD_R signed 64 bit integer from 4 registers low word first) + - FP32 (32 bit IEEE 754 floating point from 2 registers) + - FP32_R (32 bit IEEE 754 floating point - same as FP32 but low word first)s - **bitmask**: (*Optional*) some values are packed in a response. The bitmask can be used to extract a value from the response. For example, if the high byte value register 0x9013 contains the minute value of the current time. To only exctract this value use bitmask: 0xFF00. The result will be automatically right shifted by the number of 0 before the first 1 in the bitmask. For 0xFF00 (0b1111111100000000) the result is shifted 8 posistions. More than one sensor can use the same address/offset if the bitmask is different. - **skip_updates**: (*Optional*, integer): By default all sensors of of a modbus_controller are updated together. For data points that don't change very frequently updates can be skipped. A value of 5 would only update this sensor range in every 5th update cycle Note: The modbus_controller groups component by address ranges to reduce number of transactions. All compoents with the same address will be updated in one request. skip_updates applies for all components in the same range. - **register_count**: (*Optional*): only required for uncommon response encodings - The number of registers this data point spans. Default is 1 -- **force_new_range**: (*Optional*, boolean): If possible sensors with sequential addresses are grouped together and requested in one range. Setting `foce_new_range: true` enforces the start of a new range at that address. + The number of registers this data point spans. Overrides the defaults determined by ``value_type``. + If no value for ``register_count`` is provided, it is calculated based on the register type. + + The default size for 1 register is 16 bits (1 Word). Some devices are not adhering to this convention and have registers larger than 16 bits. In this case ``register_count`` must be set. For example, if your modbus device uses 1 registers for a FP32 value instead the default of two set ``register_count: 2``. + +- **force_new_range**: (*Optional*, boolean): If possible sensors with sequential addresses are grouped together and requested in one range. Setting ``force_new_range: true`` enforces the start of a new range at that address. +- **custom_data** (*Optional*, list of bytes): raw bytes for modbus command. This allows using non-standard commands. If ``custom_data`` is used ``address`` and ``register_type`` can't be used. + custom data must contain all required bytes including the modbus device address. The crc is automatically calculated and appended to the command. + See :ref:`modbus_custom_data` how to use ``custom_command`` - **lambda** (*Optional*, :ref:`lambda `): Lambda to be evaluated every update interval to get the new value of the sensor. - **offset**: (*Optional*, int): only required for uncommon response encodings @@ -119,7 +128,7 @@ Parameters passed into the lambda - **x** (float): The parsed float value of the modbus data - **data** (std::vectoroffset]` to get the first response byte for your sensor. + note: because the response contains data for all registers in the same range you have to use ``data[item->offset]`` to get the first response byte for your sensor. - **item** (const pointer to a SensorItem derived object): The sensor object itself. Possible return values for the lambda: @@ -127,6 +136,130 @@ Possible return values for the lambda: - ``return ;`` the new value for the sensor. - ``return NAN;`` if the state should be considered invalid to indicate an error (advanced). +.. _modbus_custom_data: + +Using custom_data +----------------- + +``custom_data`` can be used to create an arbitrary modbus command. Combined with a lambda any response can be handled. +This example re-implements the command to read the registers 0x156 (Total active energy) and 0x158 Total (reactive energy) from a SDM-120. +SDM-120 returns the values as floats using 32 bits in 2 registers. + + .. code-block:: yaml + + modbus: + send_wait_time: 200ms + uart_id: mod_uart + id: mod_bus + + modbus_controller: + - id: sdm + address: 2 + modbus_id: mod_bus + command_throttle: 100ms + setup_priority: -10 + update_interval: 30s + sensors: + - platform: modbus_controller + modbus_controller_id: sdm + name: "Total active energy" + id: total_energy + # address: 0x156 + # register_type: "read" + ## reimplement using custom_command + # 0x2 : modbus device address + # 0x4 : modbus function code + # 0x1 : high byte of modbus register address + # 0x56: low byte of modbus register address + # 0x00: high byte of total number of registers requested + # 0x02: low byte of total number of registers requested + custom_command: [ 0x2, 0x4, 0x1, 0x56,0x00, 0x02] + value_type: FP32 + unit_of_measurement: kWh + accuracy_decimals: 1 + + - platform: modbus_controller + modbus_controller_id: sdm + name: "Total reactive energy" + # address: 0x158 + # register_type: "read" + custom_command: [0x2, 0x4, 0x1, 0x58, 0x00, 0x02] + ## the command returns an float value using 4 bytes + lambda: |- + ESP_LOGD("Modbus Sensor Lambda","Got new data" ); + union { + float float_value; + uint32_t raw; + } raw_to_float; + if (data.size() < 4 ) { + ESP_LOGE("Modbus Sensor Lambda", "invalid data size %d",data.size()); + return NAN; + } + raw_to_float.raw = data[0] << 24 | data[1] << 16 | data[2] << 8 | data[3]; + ESP_LOGD("Modbus Sensor Lambda", "FP32 = 0x%08X => %f", raw_to_float.raw, raw_to_float.float_value); + return raw_to_float.float_value; + unit_of_measurement: kVArh + accuracy_decimals: 1 + + +.. note:: **Optimize modbus communications** + + ``register_count`` can also be used to skip a register in consecutive range. + + An example is a SDM meter: + + .. code-block:: yaml + + - platform: modbus_controller + name: "Voltage Phase 1" + address: 0 + register_type: "read" + value_type: FP32 + + - platform: modbus_controller + name: "Voltage Phase 2" + address: 2 + register_type: "read" + value_type: FP32 + + - platform: modbus_controller + name: "Voltage Phase 3" + address: 4 + register_type: "read" + value_type: FP32 + + - platform: modbus_controller + name: "Current Phase 1" + address: 6 + register_type: "read" + value_type: FP32 + accuracy_decimals: 1 + + Maybe you don’t care about the Voltage value for Phase 2 and Phase 3 (or you have a SDM-120). + Of course, you can delete the sensors your don’t care about. But then you have a gap in the addresses. The configuration above will generate one modbus command `read multiple registers from 0 to 6`. If you remove the registers at address 2 and 4 then 2 commands will be generated `read register 0` and `read register 6`. + To avoid the generation of multiple commands and reduce the amount of uart communication ``register_count`` can be used to fill the gaps + + .. code-block:: yaml + + - platform: modbus_controller + name: "Voltage Phase 1" + address: 0 + unit_of_measurement: "V" + register_type: "read" + value_type: FP32 + register_count: 6 + + - platform: modbus_controller + name: "Current Phase 1" + address: 6 + register_type: "read" + value_type: FP32 + + Because `register_count: 6` is used for the first register the command “read registers from 0 to 6” can still be used but the values in between are ignored. + **Calculation:** FP32 is a 32 bit value and uses 2 registers. Therefore, to skip the 2 FP32 registers the size of these 2 registers must be added to the default size for the first register. + So we have 2 for address 0, 2 for address 2 and 2 for address 4 then ``register_count`` must be 6. + + See Also -------- - :doc:`/components/modbus_controller` diff --git a/components/switch/modbus_controller.rst b/components/switch/modbus_controller.rst index 1e2545fc5..06d26b913 100644 --- a/components/switch/modbus_controller.rst +++ b/components/switch/modbus_controller.rst @@ -21,6 +21,49 @@ Configuration variables: To get the value of the coil register 2 can be retrived using address: 2 / offset: 0 or address: 0 / offset 2 - **bitmask** : some values are packed in a response. The bitmask is used to determined if the result is true or false - **skip_updates**: (*Optional*, integer): By default all sensors of of a modbus_controller are updated together. For data points that don't change very frequently updates can be skipped. A value of 5 would only update this sensor range in every 5th update cycle +- **use_write_multiple**: (*Optional*, boolean): By default the modbus command ``Force Single Coil`` (function code 5) is used to send state changes to the device. If your device only supports ``Force Multiple Coils`` (function code 15) set this option to true. +- **custom_data** (*Optional*, list of bytes): raw bytes for modbus command. This allows using non-standard commands. If ``custom_data`` is used ``address`` and ``register_type`` can't be used. + custom data must contain all required bytes including the modbus device address. The crc is automatically calculated and appended to the command. + See :ref:`modbus_custom_data` how to use ``custom_command`` +- **lambda** (*Optional*, :ref:`lambda `): + Lambda to be evaluated every update interval to read the status of the switch. +- **write_lambda** (*Optional*, :ref:`lambda `): Lambda called before send. + Lambda is evaluated before the modbus write command is created. + +**Parameters passed into write_lambda** + +- **x** (float): The float value to be sent to the modbus device + +- **payload** (`std::vector&payload`): empty vector for the payload. If payload is set in the lambda it is sent as a custom command and must include all required bytes for a modbus request + note: because the response contains data for all registers in the same range you have to use ``data[item->offset]`` to get the first response byte for your sensor. +- **item** (const pointer to a Switch derived object): The sensor object itself. + +Possible return values for the lambda: + + - ``return ;`` the new value for the sensor. + - ``return ; and fill payload with data`` if the payload is added from the lambda then these bytes will be sent + +**Example** + +.. code-block:: yaml + + switch: + - platform: modbus_controller + modbus_controller_id: epever + id: enable_load_test + register_type: coil + address: 2 + name: "enable load test mode" + write_lambda: |- + ESP_LOGD("main","Modbus Switch incoming state = %f",x); + // return false ; // use this to just change the value + payload.push_back(0x1); // device address + payload.push_back(0x5); // force single coil + payload.push_back(0x00); // high byte address of the coil + payload.push_back(0x6); // low byte address of the coil + payload.push_back(0xFF); // ON = 0xFF00 OFF=0000 + payload.push_back(0x00); + **Example** diff --git a/components/text_sensor/modbus_controller.rst b/components/text_sensor/modbus_controller.rst index 51ef36880..4674504ad 100644 --- a/components/text_sensor/modbus_controller.rst +++ b/components/text_sensor/modbus_controller.rst @@ -25,9 +25,12 @@ Configuration variables: - **raw_encode**: (*Optional*, NONE , HEXBYTES, COMMA) If the response is binary it can't be published directly. Since a text sensor only publishes strings the binary data can encoded - HEXBYTES: 2 byte hex string. 0x2011 will be sent as "2011". - COMMA: Byte values as integers, delimited by a coma. 0x2011 will be sent as "32,17" -- **force_new_range**: (*Optional*, boolean): If possible sensors with sequential addresses are grouped together and requested in one range. Setting `foce_new_range: true` enforces the start of a new range at that address. +- **force_new_range**: (*Optional*, boolean): If possible sensors with sequential addresses are grouped together and requested in one range. Setting ``force_new_range: true`` enforces the start of a new range at that address. +- **custom_data** (*Optional*, list of bytes): raw bytes for modbus command. This allows using non-standard commands. If ``custom_data`` is used ``address`` and ``register_type`` can't be used. + custom data must contain all required bytes including the modbus device address. The crc is automatically calculated and appended to the command. + See :ref:`modbus_custom_data` how to use ``custom_command`` - **lambda** (*Optional*, :ref:`lambda `): - Lambda to be evaluated every update interval to get the new value of the sensor + Lambda to be evaluated every update interval to get the new value of the text_sensor - **offset**: (*Optional*, integer): not required in most cases offset from start address in bytes. If more than one register is read a modbus read registers command this value is used to find the start of this datapoint relative to start address. The component calculates the size of the range based on offset and size of the value type @@ -37,7 +40,7 @@ Parameters passed into the lambda - **x** (std:string): The parsed float value of the modbus data - **data** (std::vectoroffset]` to get the first response byte for your sensor. + note: because the response contains data for all registers in the same range you have to use ``data[item->offset]`` to get the first response byte for your sensor. - **item** (const pointer to a SensorItem derived object): The sensor object itself. Possible return values for the lambda: From bb1435b35cc7df25125f68f49e229c1ea77d0c1a Mon Sep 17 00:00:00 2001 From: Maurice Makaay Date: Mon, 29 Nov 2021 16:40:59 +0100 Subject: [PATCH 18/34] Improve dsmr telegram timeouts (#1650) --- components/sensor/dsmr.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/components/sensor/dsmr.rst b/components/sensor/dsmr.rst index d21cc1a5e..8e3a4fef8 100644 --- a/components/sensor/dsmr.rst +++ b/components/sensor/dsmr.rst @@ -53,8 +53,11 @@ Configuration variables: the P1 port's Data Request pin. Defaults to not using a Data Request pin. See :ref:`Using the P1 Data Request pin `. - **request_interval** (*Optional*, :ref:`config-time`): The minimum time between two telegram readings. - Defaults to ``0``, meaning that the pace at which the smart meter sends its data determines the update frequency. + Defaults to ``0ms``, meaning that the pace at which the smart meter sends its data determines the update frequency. This works best in combination with a ``request_pin``, but this option will work without one too. +- **receive_timeout** (*Optional*, :ref:`config-time`): The timeout on incoming data while reading a telegram. + When no new data arrive within the given timeout, the device will consider the current telegram a loss and + starts looking for the header of the next telegram. Defaults to ``200ms``. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID of the DSMR if you have multiple components. Sensor From 2c6552dcb6650e4911fd0e17b102ef6d187bd7ae Mon Sep 17 00:00:00 2001 From: mechanarchy <1166756+mechanarchy@users.noreply.github.com> Date: Tue, 30 Nov 2021 02:52:34 +1100 Subject: [PATCH 19/34] Add 'include_internal' option to web_server (#1572) --- components/web_server.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/components/web_server.rst b/components/web_server.rst index fdc4ff25a..9c1c83b7f 100644 --- a/components/web_server.rst +++ b/components/web_server.rst @@ -50,6 +50,8 @@ Configuration variables: - **username** (**Required**, string): The username to use for authentication. - **password** (**Required**, string): The password to check for authentication. +- **include_internal** (*Optional*, boolean): Whether ``internal`` entities should be displayed on the + web interface. Defaults to ``false``. - **ota** (*Optional*, boolean): Turn on or off the OTA feature inside webserver. Strongly not suggested without enabled authentication settings. Default: `true` - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. From ecef9f316c5ccda0dcdfde91d18f8985f3054a19 Mon Sep 17 00:00:00 2001 From: dentra Date: Mon, 29 Nov 2021 22:08:56 +0300 Subject: [PATCH 20/34] Tuya automation and text sensor support (#1684) --- components/text_sensor/tuya.rst | 35 ++++++++++++++++++ components/tuya.rst | 65 +++++++++++++++++++++++++++++++++ index.rst | 1 + 3 files changed, 101 insertions(+) create mode 100644 components/text_sensor/tuya.rst diff --git a/components/text_sensor/tuya.rst b/components/text_sensor/tuya.rst new file mode 100644 index 000000000..49c1a32ad --- /dev/null +++ b/components/text_sensor/tuya.rst @@ -0,0 +1,35 @@ +Tuya Text Sensor +================ + +.. seo:: + :description: Instructions for setting up a Tuya device sensor. + :image: tuya.png + +The ``tuya`` text sensor platform creates a sensor from a tuya component +and requires :doc:`/components/tuya` to be configured. + +You can create the text sensor as follows: + +.. code-block:: yaml + + # Create a sensor + text_sensor: + - platform: "tuya" + name: "MyTextSensor" + sensor_datapoint: 18 + +Configuration variables: +------------------------ + +- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. +- **name** (**Required**, string): The name of the sensor. +- **sensor_datapoint** (**Required**, int): The datapoint id number of the sensor. +- All other options from :ref:`Text Sensor `. + +See Also +-------- + +- :doc:`/components/tuya` +- :doc:`/components/text_sensor/index` +- :apiref:`tuya/text_sensor/tuya_text_sensor.h` +- :ghedit:`Edit` diff --git a/components/tuya.rst b/components/tuya.rst index 1ea533f78..b14446926 100644 --- a/components/tuya.rst +++ b/components/tuya.rst @@ -60,6 +60,70 @@ Configuration variables: - **ignore_mcu_update_on_datapoints** (*Optional*, list): A list of datapoints to ignore MCU updates for. Useful for certain broken/erratic hardware and debugging. +Automations: + +- **on_datapoint_update**: (*Optional*): An automation to perform when a Tuya datapoint update is received. See :ref:`tuya-on_datapoint_update`. + +Tuya Automation +--------------- + +.. _tuya-on_datapoint_update: + +``on_datapoint_update`` +*********************** + +This automation will be triggered when a a Tuya datapoint update is received. +A variable ``x`` is passed to the automation for use in lambdas. +The type of ``x`` variable is depending on ``datapoint_type`` configuration variable: + +- *raw*: ``x`` is ``std::vector`` +- *string*: ``x`` is ``std::string`` +- *bool*: ``x`` is ``bool`` +- *int*: ``x`` is ``int`` +- *uint*: ``x`` is ``uint32_t`` +- *enum*: ``x`` is ``uint8_t`` +- *bitmask*: ``x`` is ``uint32_t`` +- *any*: ``x`` is :apistruct:`tuya::TuyaDatapoint` + +.. code-block:: yaml + + tuya: + on_datapoint_update: + - sensor_datapoint: 6 + datapoint_type: raw + then: + - lambda: |- + ESP_LOGD("main", "on_datapoint_update %s", hexencode(x).c_str()); + id(voltage).publish_state((x[0] << 8 | x[1]) * 0.1); + id(current).publish_state((x[3] << 8 | x[4]) * 0.001); + id(power).publish_state((x[6] << 8 | x[7]) * 0.1); + - sensor_datapoint: 7 # sample dp + datapoint_type: string + then: + - lambda: |- + ESP_LOGD("main", "on_datapoint_update %s", x.c_str()); + - sensor_datapoint: 8 # sample dp + datapoint_type: bool + then: + - lambda: |- + ESP_LOGD("main", "on_datapoint_update %s", ONOFF(x)); + - sensor_datapoint: 6 + datapoint_type: any # this is optional + then: + - lambda: |- + if (x.type == tuya::TuyaDatapointType::RAW) { + ESP_LOGD("main", "on_datapoint_update %s", hexencode(x.value_raw).c_str()); + } else { + ESP_LOGD("main", "on_datapoint_update %hhu", x.type); + } + +Configuration variables: + +- **sensor_datapoint** (*Required*, int): The datapoint id number of the sensor. +- **datapoint_type** (*Required*, string): The datapoint type one of *raw*, *string*, *bool*, *int*, *uint*, *enum*, *bitmask* or *any*. +- See :ref:`Automation `. + + See Also -------- @@ -69,5 +133,6 @@ See Also - :doc:`/components/climate/tuya` - :doc:`/components/binary_sensor/tuya` - :doc:`/components/sensor/tuya` +- :doc:`/components/text_sensor/tuya` - :apiref:`tuya/tuya.h` - :ghedit:`Edit` diff --git a/index.rst b/index.rst index 9f5fb9b61..6b4cd2ec8 100644 --- a/index.rst +++ b/index.rst @@ -524,6 +524,7 @@ Text Sensor Components Template Text Sensor, components/text_sensor/template, description.svg Custom Text Sensor, components/text_sensor/custom, language-cpp.svg Nextion Text Sensor, components/text_sensor/nextion, nextion.jpg + Tuya Text Sensor, components/text_sensor/tuya, tuya.png Climate Components ------------------ From f25e069bb99980f8b11ebe2c8b329582ca3ea23f Mon Sep 17 00:00:00 2001 From: Jesse Hills <3060199+jesserockz@users.noreply.github.com> Date: Tue, 30 Nov 2021 14:25:33 +1300 Subject: [PATCH 21/34] Create docs for Button core, restart, template (#1681) Co-authored-by: Franck Nijhof --- components/button/index.rst | 118 +++++++++++++++++++++++++++++++++ components/button/restart.rst | 31 +++++++++ components/button/template.rst | 32 +++++++++ components/index.rst | 1 + components/switch/restart.rst | 2 +- index.rst | 9 +++ 6 files changed, 192 insertions(+), 1 deletion(-) create mode 100644 components/button/index.rst create mode 100644 components/button/restart.rst create mode 100644 components/button/template.rst diff --git a/components/button/index.rst b/components/button/index.rst new file mode 100644 index 000000000..deafe84f0 --- /dev/null +++ b/components/button/index.rst @@ -0,0 +1,118 @@ +Button Component +================ + +.. seo:: + :description: Instructions for setting up button components in ESPHome. + :image: folder-open.svg + +ESPHome has support for components to create a button entity. A button entity is +basically a momentary switch with no state and can be triggered by either YAML or +the user/frontend. + +.. note:: + + Home Assistant Core 2021.12 or higher is required for ESPHome button entities to work. + +.. _config-button: + +Base Button Configuration +------------------------- + +All buttons in ESPHome have a name and an optional icon. + +.. code-block:: yaml + + # Example button configuration + button: + - platform: ... + name: Livingroom Lazy Mood + id: my_button + + # Optional variables: + icon: "mdi:emoticon-outline" + on_press: + - logger.log: "Button pressed" + +Configuration variables: + +- **name** (**Required**, string): The name for the button. +- **icon** (*Optional*, icon): Manually set the icon to use for the button in the frontend. +- **internal** (*Optional*, boolean): Mark this component as internal. Internal components will + not be exposed to the frontend (like Home Assistant). Only specifying an ``id`` without + a ``name`` will implicitly set this to true. +- **disabled_by_default** (*Optional*, boolean): If true, then this entity should not be added to any client's frontend, + (usually Home Assistant) without the user manually enabling it (via the Home Assistant UI). +- **entity_category** (*Optional*, string): The category of the entity. + See https://developers.home-assistant.io/docs/core/entity/#generic-properties + for a list of available options. Set to ``""`` to remove the default entity category. + +Automations: + +- **on_press** (*Optional*, :ref:`Automation `): An automation to perform + when the button is pressed. See :ref:`button-on_press`. + +MQTT options: + +- All other options from :ref:`MQTT Component `. + +Button Automation +----------------- + +.. _button-on_press: + +``on_press`` +************ + +This automation will be triggered when the button is pressed. + +.. code-block:: yaml + + button: + - platform: template + # ... + on_press: + then: + - logger.log: Button Pressed + +Configuration variables: see :ref:`Automation `. + +.. _button-press_action: + +``button.press`` Action +*********************** + +This is an :ref:`Action ` for pressing a button in an Automation. + +.. code-block:: yaml + + - button.press: my_button + +Configuration variables: + +- **id** (**Required**, :ref:`config-id`): The ID of the button to set. + +.. _button-lambda_calls: + +lambda calls +************ + +From :ref:`lambdas `, you can press a button. + +- ``press()``: Press the button. + + .. code-block:: cpp + + // Within lambda, press the button. + id(my_button).press(); + +See Also +-------- + +- :apiref:`button/button.h` +- :ghedit:`Edit` + +.. toctree:: + :maxdepth: 1 + :glob: + + * diff --git a/components/button/restart.rst b/components/button/restart.rst new file mode 100644 index 000000000..9f7f1ce2f --- /dev/null +++ b/components/button/restart.rst @@ -0,0 +1,31 @@ +Restart Button +============== + +.. seo:: + :description: Instructions for setting up buttons that can remotely reboot the ESP in ESPHome. + :image: restart.svg + +The ``restart`` button platform allows you to restart your node remotely +through Home Assistant. + +.. code-block:: yaml + + # Example configuration entry + button: + - platform: restart + name: "Living Room Restart" + +Configuration variables: +------------------------ + +- **name** (**Required**, string): The name for the button. +- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. +- All other options from :ref:`Button `. + +See Also +-------- + +- :doc:`/components/switch/restart` +- :doc:`template` +- :apiref:`restart/button/restart_button.h` +- :ghedit:`Edit` diff --git a/components/button/template.rst b/components/button/template.rst new file mode 100644 index 000000000..959edfa91 --- /dev/null +++ b/components/button/template.rst @@ -0,0 +1,32 @@ +Template Button +=============== + +.. seo:: + :description: Instructions for setting up template buttons that can execute arbitrary actions when pressed. + :image: description.svg + +The ``template`` button platform allows you to create simple buttons out of just actions. Once defined, +it will automatically appear in Home Assistant as a button and can be controlled through the frontend. + +.. code-block:: yaml + + # Example configuration entry + button: + - platform: template + name: "Template Button" + on_press: + - logger.log: Button Pressed + +Configuration variables: +------------------------ + +- **name** (**Required**, string): The name of the switch. +- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. +- All other options from :ref:`Button `. + +See Also +-------- + +- :doc:`/guides/automations` +- :doc:`/components/button/index` +- :ghedit:`Edit` diff --git a/components/index.rst b/components/index.rst index 94727541d..3bc1dc371 100644 --- a/components/index.rst +++ b/components/index.rst @@ -14,6 +14,7 @@ Components select/index sensor/index switch/index + button/index display/index text_sensor/index stepper/index diff --git a/components/switch/restart.rst b/components/switch/restart.rst index 5ab846890..15dcabb65 100644 --- a/components/switch/restart.rst +++ b/components/switch/restart.rst @@ -32,5 +32,5 @@ See Also - :doc:`shutdown` - :doc:`safe_mode` - :doc:`template` -- :apiref:`restart/restart_switch.h` +- :apiref:`restart/switch/restart_switch.h` - :ghedit:`Edit` diff --git a/index.rst b/index.rst index 6b4cd2ec8..44158b5bf 100644 --- a/index.rst +++ b/index.rst @@ -458,6 +458,15 @@ Switch Components BLE Client Switch, components/switch/ble_client, bluetooth.svg Nextion Switch, components/switch/nextion, nextion.jpg +Button Components +----------------- + +.. imgtable:: + + Button Core, components/button/index, folder-open.svg + Template Button, components/button/template, description.svg + Restart Button, components/button/restart, restart.svg + Fan Components -------------- From 960f0c2304ad06f3c359def8298013db427ebd55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Panella?= Date: Tue, 30 Nov 2021 09:08:06 -0600 Subject: [PATCH 22/34] cse7766: add energy sensor (#1679) --- components/sensor/cse7766.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/components/sensor/cse7766.rst b/components/sensor/cse7766.rst index 0d2108051..c6172b471 100644 --- a/components/sensor/cse7766.rst +++ b/components/sensor/cse7766.rst @@ -38,7 +38,8 @@ Additionally, you need to set the baud rate to 4800. name: "Sonoff Pow R2 Voltage" power: name: "Sonoff Pow R2 Power" - + energy: + name: "Sonoff Pow R2 Energy" .. note:: The configuration above should work for Sonoff POWs (R2). @@ -52,6 +53,8 @@ Configuration variables: :ref:`Sensor `. - **voltage** (*Optional*): Use the voltage value of the sensor in V (RMS). All options from :ref:`Sensor `. +- **energy** (*Optional*): Use the total energy value of the sensor in Wh. + All options from :ref:`Sensor `. - **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``. - **uart_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`UART Component ` if you want From 158466485a7e5a3c8b666e607d03c7f1ec0aab30 Mon Sep 17 00:00:00 2001 From: puuu Date: Wed, 1 Dec 2021 00:24:22 +0900 Subject: [PATCH 23/34] Describe unit_of_measurement for number component (#1672) --- components/number/index.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/components/number/index.rst b/components/number/index.rst index 6a64463c0..7ffcc3f0f 100644 --- a/components/number/index.rst +++ b/components/number/index.rst @@ -42,6 +42,8 @@ Configuration variables: See https://developers.home-assistant.io/docs/core/entity/#generic-properties for a list of available options. Requires Home Assistant 2021.11 or newer. Set to ``""`` to remove the default entity category. +- **unit_of_measurement** (*Optional*, string): Manually set the unit + of measurement for the number. Automations: From da3b0b8a65d09f2583fe531632bc783d885b39fb Mon Sep 17 00:00:00 2001 From: Jesse Hills <3060199+jesserockz@users.noreply.github.com> Date: Wed, 1 Dec 2021 04:30:28 +1300 Subject: [PATCH 24/34] Add docs for button device_class (#1685) --- components/button/index.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/components/button/index.rst b/components/button/index.rst index deafe84f0..b1f460df8 100644 --- a/components/button/index.rst +++ b/components/button/index.rst @@ -45,6 +45,9 @@ Configuration variables: - **entity_category** (*Optional*, string): The category of the entity. See https://developers.home-assistant.io/docs/core/entity/#generic-properties for a list of available options. Set to ``""`` to remove the default entity category. +- **device_class** (*Optional*, string): The device class for the button. + See https://developers.home-assistant.io/docs/core/entity/button/#available-device-classes + for a list of available options. Automations: From 61f7d35bc2d68be86125a36a331c5ab3ff6e3e30 Mon Sep 17 00:00:00 2001 From: Jesse Hills <3060199+jesserockz@users.noreply.github.com> Date: Wed, 1 Dec 2021 08:11:44 +1300 Subject: [PATCH 25/34] Add doc for number mode (#1689) --- components/number/index.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/components/number/index.rst b/components/number/index.rst index 7ffcc3f0f..aedf60267 100644 --- a/components/number/index.rst +++ b/components/number/index.rst @@ -43,7 +43,11 @@ Configuration variables: for a list of available options. Requires Home Assistant 2021.11 or newer. Set to ``""`` to remove the default entity category. - **unit_of_measurement** (*Optional*, string): Manually set the unit - of measurement for the number. + of measurement for the number. Requires Home Assistant Core 2021.12 or newer. +- **mode** (*Optional*, string): Defines how the number should be displayed in the frontend. + See https://developers.home-assistant.io/docs/core/entity/number/#properties + for a list of available options. Requires Home Assistant Core 2021.12 or newer. + Defaults to ``"auto"``. Automations: From a3b83f21b9fbefb14756f70b3ecc693eb4822e42 Mon Sep 17 00:00:00 2001 From: mechanarchy <1166756+mechanarchy@users.noreply.github.com> Date: Wed, 1 Dec 2021 15:10:30 +1100 Subject: [PATCH 26/34] Add Git credential config docs (#1683) --- components/external_components.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/components/external_components.rst b/components/external_components.rst index 852459333..67b951e8c 100644 --- a/components/external_components.rst +++ b/components/external_components.rst @@ -42,6 +42,8 @@ Configuration variables: - **url** (**Required**, url): HTTP git repository url. See :ref:`external-components_git`. - **ref** (*Optional*, string): Git ref (branch or tag). If not specified the default branch is used. + - **username** (*Optional*, string): Username for the Git server, if one is required + - **password** (*Optional*, string): Password for the Git server, if one is required local options: @@ -182,6 +184,12 @@ folder and components will then be loaded from this local copy. The local path o varies per repository name and ref name, so repositories with different refs are considered different repositories and updated independently. +If required, you can supply a username and password to use when authenticating with the remote git +server using the ``username`` and ``password`` fields. This is most useful when combined with the +``!secret`` feature, to load the values in from a ``secrets.yaml`` file. This is not a comprehensive +security measure; your username and password will necessarily be stored in clear text within the +``.esphome`` directory. + .. _external-components_refresh: Refresh From 6e7e9e785f17e131868837ff97803d7eafd16bc5 Mon Sep 17 00:00:00 2001 From: Oxan van Leeuwen Date: Wed, 1 Dec 2021 20:45:53 +0100 Subject: [PATCH 27/34] Expand uart invert feature to ESP8266 (#1692) Co-authored-by: Leon Loopik <489021+Lewn@users.noreply.github.com> --- components/uart.rst | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/components/uart.rst b/components/uart.rst index fb5d94fd3..b2402110b 100644 --- a/components/uart.rst +++ b/components/uart.rst @@ -51,8 +51,8 @@ Configuration variables: ------------------------ - **baud_rate** (**Required**, int): The baud rate of the UART bus. -- **tx_pin** (*Optional*, :ref:`config-pin`): The pin to send data to from the ESP's perspective. -- **rx_pin** (*Optional*, :ref:`config-pin`): The pin to receive data on from the ESP's perspective. +- **tx_pin** (*Optional*, :ref:`config-pin`): The pin to send data to from the ESP's perspective. Use the full pin schema and set ``inverted: true`` to invert logic levels. +- **rx_pin** (*Optional*, :ref:`config-pin`): The pin to receive data on from the ESP's perspective. Use the full pin schema and set ``inverted: true`` to invert logic levels. - **rx_buffer_size** (*Optional*, int): The size of the buffer used for receiving UART messages. Increase if you use an integration that needs to read big payloads from UART. Defaults to ``256``. - **data_bits** (*Optional*, int): The number of data bits used on the UART bus. Options: 5 to 8. Defaults to 8. - **parity** (*Optional*): The parity used on the UART bus. Options: ``NONE``, ``EVEN``, ``ODD``. Defaults to ``NONE``. @@ -60,10 +60,6 @@ Configuration variables: - **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this UART hub if you need multiple UART hubs. - **debug** (*Optional*, mapping): Options for debugging communication on the UART hub, see :ref:`uart-debugging`. -ESP32 options: - -- **invert** (*Optional*, boolean): Invert the logic levels of the RX and TX pins. Options: ``true`` or ``false``. Defaults to ``false``. - .. _uart-hardware_uarts: Hardware UARTs From e473f659fdb1ddfd75f0654764d7f0ca06a34b8b Mon Sep 17 00:00:00 2001 From: Oxan van Leeuwen Date: Wed, 1 Dec 2021 20:55:32 +0100 Subject: [PATCH 28/34] Support setting manual_ip under networks option (#1687) --- components/wifi.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/components/wifi.rst b/components/wifi.rst index 4633f5564..e30213b96 100644 --- a/components/wifi.rst +++ b/components/wifi.rst @@ -190,6 +190,16 @@ Configuration variables: - **ssid** (*Optional*, string): The SSID or WiFi network name. - **password** (*Optional*, string): The password to use for authentication. Leave empty for no password. +- **manual_ip** (*Optional*): Manually configure the static IP of the node when using this network. Note that + when using different static IP addresses on each network, it is required to set ``use_address``, as ESPHome + cannot infer to which network the node is connected. + + - **static_ip** (**Required**, IPv4 address): The static IP of your node. + - **gateway** (**Required**, IPv4 address): The gateway of the local network. + - **subnet** (**Required**, IPv4 address): The subnet of the local network. + - **dns1** (*Optional*, IPv4 address): The main DNS server to use. + - **dns2** (*Optional*, IPv4 address): The backup DNS server to use. + - **eap** (*Optional*): See :ref:`eap`. - **channel** (*Optional*, int): The channel of the network (1-14). If given, only connects to networks that are on this channel. From 6da37521fccab5712366196b8b260ed47701d731 Mon Sep 17 00:00:00 2001 From: Paul Nicholls Date: Thu, 2 Dec 2021 15:27:01 +1300 Subject: [PATCH 29/34] Update Tuya Cover docs to reflect enhancements to the component (#1578) --- components/cover/tuya.rst | 45 +++++++++++++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/components/cover/tuya.rst b/components/cover/tuya.rst index 7542f11d2..ad6744f22 100644 --- a/components/cover/tuya.rst +++ b/components/cover/tuya.rst @@ -29,7 +29,7 @@ the config and it will list the possible devices for you in the config log. # Make sure you can upload new firmware OTA ota: - # My dimmer used the hardware serial port on the alternate pins + # My cover used the hardware serial port on the alternate pins uart: rx_pin: GPIO13 tx_pin: GPIO15 @@ -38,7 +38,7 @@ the config and it will list the possible devices for you in the config log. # Register the Tuya MCU connection tuya: -Here is an example output for a Tuya dimmer: +Here is an example output for a Tuya M515EGWT (motor for chain roller blinds): .. code-block:: text @@ -51,7 +51,7 @@ Now you can create the cover. .. code-block:: yaml - # Create a cover using the dimmer + # Create a cover using the datapoint from above cover: - platform: "tuya" name: "motor1" @@ -62,13 +62,46 @@ Configuration variables: - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. - **name** (**Required**, string): The name of the cover. +- **control_datapoint** (*Optional*, int): The datapoint id number for sending control commands. - **position_datapoint** (**Required**, int): The datapoint id number of the cover position value. +- **position_report_datapoint** (*Optional*, int): The datapoint id number of the cover position report value, if separate from position_datapoint. +- **direction_datapoint** (*Optional*, int): The datapoint id number for setting the direction of travel. - **min_value** (*Optional*, int, default 0): The lowest position value, meaning cover closed. -- **max_value** (*optional*, int, default 255): the highest position value, meaning cover opened. -- **invert_position** (*optional*, boolean): invert the meaning of ``min_value`` and ``max_value``. - When set to ``true``, ``min_value`` will mean opened and ``max_value`` is closed. +- **max_value** (*Optional*, int, default 100): the highest position value, meaning cover opened. +- **invert_position** (*Optional*, boolean): Sets the direction of travel to be inverted, if direction_datapoint is configured. - All other options from :ref:`Cover `. +Supported devices +----------------- + +Tuya cover devices known to be supported by this integration: + +- Tuya ``M515EGWT`` (motor for bead chain roller blinds) + + - Only the ``position`` datapoint (2) is used for this device. + - Datapoint 5's function is not currently known. + +- Zemismart ``ZM79E-DT`` (curtain motor) + + - Supported datapoints: ``control`` (1), ``position`` (2), ``position_report`` (3) and ``direction`` (5). + - The direction of travel is persisted to the Tuya MCU, so doesn't need to be set if you've already configured it via the remote control. + +If you have a Tuya cover device that isn't listed above, it may still work - but you'll need to determine which datapoints it uses +(and what their IDs are) for yourself. + +Restore modes +------------- + +The default restore mode (``RESTORE``) attempts to restore the state on startup, but doesn't instruct the cover to move to that state. + +``RESTORE_AND_CALL`` additionally instructs the cover to move to the restored state - which might not work, depending on your device (see note below). + +The Tuya MCU usually reports its position on startup, so ``NO_RESTORE`` will likely also appear to restore its state - but may take slightly longer. + +Note that if your Tuya cover device uses relative position sensing (such as the ZM79E-DT), it can't tell if the cover was moved while not powered up. +This means that moving the cover while the device is powered off will result in its position not matching the reported/requested state. +In this condition, it will go into an error / uncalibrated state when it next tries to go in one direction (as it can't move as far as it wants to), requiring an open/close cycle to recalibrate. + See Also -------- From e47b5909655ebfea1c19bc94ec50ee08df826259 Mon Sep 17 00:00:00 2001 From: Martin <25747549+martgras@users.noreply.github.com> Date: Thu, 2 Dec 2021 03:44:48 +0100 Subject: [PATCH 30/34] Document modbus_controller response_size changes (#1691) --- components/binary_sensor/modbus_controller.rst | 6 ++++++ components/number/modbus_controller.rst | 6 +++++- components/sensor/modbus_controller.rst | 7 ++++--- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/components/binary_sensor/modbus_controller.rst b/components/binary_sensor/modbus_controller.rst index 26e4cc589..b97d1d723 100644 --- a/components/binary_sensor/modbus_controller.rst +++ b/components/binary_sensor/modbus_controller.rst @@ -23,6 +23,12 @@ Configuration variables: - **address**: (**Required**, integer): start address of the first register in a range - **bitmask** : some values are packed in a response. The bitmask is used to determined if the result is true or false - **skip_updates**: (*Optional*, integer): By default all sensors of of a modbus_controller are updated together. For data points that don't change very frequently updates can be skipped. A value of 5 would only update this sensor range in every 5th update cycle +- **register_count**: (*Optional*): only required for uncommon response encodings or to :ref:`optimize modbus communications` + The number of registers this data point spans. Overrides the defaults determined by ``value_type``. + If no value for ``register_count`` is provided, it is calculated based on the register type. + + The default size for 1 register is 16 bits (1 Word). Some devices are not adhering to this convention and have registers larger than 16 bits. In this case ``register_count`` and ``response_size`` must be set. For example, if your modbus device uses 1 registers for a FP32 value instead the default of two set ``register_count: 1`` and ``response_size: 4``. +- **response_size**: (*Optional*): Size of the response for the register in bytes. Defaults to register_count*2. - **force_new_range**: (*Optional*, boolean): If possible sensors with sequential addresses are grouped together and requested in one range. Setting ``force_new_range: true`` enforces the start of a new range at that address. - **custom_data** (*Optional*, list of bytes): raw bytes for modbus command. This allows using non-standard commands. If ``custom_data`` is used ``address`` and ``register_type`` can't be used. custom data must contain all required bytes including the modbus device address. The crc is automatically calculated and appended to the command. diff --git a/components/number/modbus_controller.rst b/components/number/modbus_controller.rst index 21036d07b..b4198d02e 100644 --- a/components/number/modbus_controller.rst +++ b/components/number/modbus_controller.rst @@ -33,8 +33,12 @@ Configuration variables: - **skip_updates**: (*Optional*, integer): By default all sensors of of a modbus_controller are updated together. For data points that don't change very frequently updates can be skipped. A value of 5 would only update this sensor range in every 5th update cycle Note: The modbus_controller groups component by address ranges to reduce number of transactions. All compoents with the same address will be updated in one request. skip_updates applies for all components in the same range. -- **register_count**: (*Optional*): only required for uncommon response encodings +- **register_count**: (*Optional*): only required for uncommon response encodings or to :ref:`optimize modbus communications` The number of registers this data point spans. Overrides the defaults determined by ``value_type``. + If no value for ``register_count`` is provided, it is calculated based on the register type. + + The default size for 1 register is 16 bits (1 Word). Some devices are not adhering to this convention and have registers larger than 16 bits. In this case ``register_count`` and ``response_size`` must be set. For example, if your modbus device uses 1 registers for a FP32 value instead the default of two set ``register_count: 1`` and ``response_size: 4``. +- **response_size**: (*Optional*): Size of the response for the register in bytes. Defaults to register_count*2. - **force_new_range**: (*Optional*, boolean): If possible sensors with sequential addresses are grouped together and requested in one range. Setting ``force_new_range: true`` enforces the start of a new range at that address. - **offset**: (*Optional*, int): only required for uncommon response encodings offset from start address in bytes. If more than one register is read a modbus read registers command this value is used to find the start of this datapoint relative to start address. The component calculates the size of the range based on offset and size of the value type diff --git a/components/sensor/modbus_controller.rst b/components/sensor/modbus_controller.rst index 427826c7f..9d70ebe13 100644 --- a/components/sensor/modbus_controller.rst +++ b/components/sensor/modbus_controller.rst @@ -36,12 +36,12 @@ Configuration variables: - **bitmask**: (*Optional*) some values are packed in a response. The bitmask can be used to extract a value from the response. For example, if the high byte value register 0x9013 contains the minute value of the current time. To only exctract this value use bitmask: 0xFF00. The result will be automatically right shifted by the number of 0 before the first 1 in the bitmask. For 0xFF00 (0b1111111100000000) the result is shifted 8 posistions. More than one sensor can use the same address/offset if the bitmask is different. - **skip_updates**: (*Optional*, integer): By default all sensors of of a modbus_controller are updated together. For data points that don't change very frequently updates can be skipped. A value of 5 would only update this sensor range in every 5th update cycle Note: The modbus_controller groups component by address ranges to reduce number of transactions. All compoents with the same address will be updated in one request. skip_updates applies for all components in the same range. -- **register_count**: (*Optional*): only required for uncommon response encodings +- **register_count**: (*Optional*): only required for uncommon response encodings or to :ref:`optimize modbus communications` The number of registers this data point spans. Overrides the defaults determined by ``value_type``. If no value for ``register_count`` is provided, it is calculated based on the register type. - The default size for 1 register is 16 bits (1 Word). Some devices are not adhering to this convention and have registers larger than 16 bits. In this case ``register_count`` must be set. For example, if your modbus device uses 1 registers for a FP32 value instead the default of two set ``register_count: 2``. - + The default size for 1 register is 16 bits (1 Word). Some devices are not adhering to this convention and have registers larger than 16 bits. In this case ``register_count`` and ``response_size`` must be set. For example, if your modbus device uses 1 registers for a FP32 value instead the default of two set ``register_count: 1`` and ``response_size: 4``. +- **response_size**: (*Optional*): Size of the response for the register in bytes. Defaults to register_count*2. - **force_new_range**: (*Optional*, boolean): If possible sensors with sequential addresses are grouped together and requested in one range. Setting ``force_new_range: true`` enforces the start of a new range at that address. - **custom_data** (*Optional*, list of bytes): raw bytes for modbus command. This allows using non-standard commands. If ``custom_data`` is used ``address`` and ``register_type`` can't be used. custom data must contain all required bytes including the modbus device address. The crc is automatically calculated and appended to the command. @@ -201,6 +201,7 @@ SDM-120 returns the values as floats using 32 bits in 2 registers. unit_of_measurement: kVArh accuracy_decimals: 1 +.. _modbus_register_count: .. note:: **Optimize modbus communications** From 1f06a986eae27bc90d92a96f6b771bc111d45b00 Mon Sep 17 00:00:00 2001 From: Jesse Hills <3060199+jesserockz@users.noreply.github.com> Date: Thu, 2 Dec 2021 19:38:50 +1300 Subject: [PATCH 31/34] Bump version to 2021.12.0b1 --- Doxygen | 2 +- Makefile | 2 +- _static/version | 2 +- conf.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Doxygen b/Doxygen index aabf3a3f3..a725b7e65 100644 --- a/Doxygen +++ b/Doxygen @@ -38,7 +38,7 @@ PROJECT_NAME = "ESPHome" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 2021.12.0-dev +PROJECT_NUMBER = 2021.12.0b1 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/Makefile b/Makefile index a3947eab0..76a34c0e2 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ ESPHOME_PATH = ../esphome -ESPHOME_REF = dev +ESPHOME_REF = 2021.12.0b1 .PHONY: html html-strict cleanhtml deploy help webserver Makefile netlify netlify-api api netlify-dependencies svg2png copy-svg2png minify diff --git a/_static/version b/_static/version index f69ab25f7..07ff6d5b4 100644 --- a/_static/version +++ b/_static/version @@ -1 +1 @@ -2021.12.0-dev \ No newline at end of file +2021.12.0b1 \ No newline at end of file diff --git a/conf.py b/conf.py index d26a45b71..a2808ed2f 100644 --- a/conf.py +++ b/conf.py @@ -69,7 +69,7 @@ author = "Otto Winter" # The short X.Y version. version = "2021.12" # The full version, including alpha/beta/rc tags. -release = "2021.12.0-dev" +release = "2021.12.0b1" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From 73214b17ef6f0b939017243614584524f5b3a026 Mon Sep 17 00:00:00 2001 From: Jesse Hills <3060199+jesserockz@users.noreply.github.com> Date: Thu, 2 Dec 2021 20:13:27 +1300 Subject: [PATCH 32/34] Update changelog for 2021.12.0b1 --- _static/changelog-2021.12.0.png | Bin 0 -> 41298 bytes changelog/2021.12.0.rst | 201 ++++++++++++++++++++++++++++++++ changelog/index.rst | 2 +- 3 files changed, 202 insertions(+), 1 deletion(-) create mode 100644 _static/changelog-2021.12.0.png create mode 100644 changelog/2021.12.0.rst diff --git a/_static/changelog-2021.12.0.png b/_static/changelog-2021.12.0.png new file mode 100644 index 0000000000000000000000000000000000000000..69b0a665917cff7db1acc594ee2604103cdb893b GIT binary patch literal 41298 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%0ApVR6oW#8@E|DLV!~JC5qVzk# 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 literal 0 HcmV?d00001 diff --git a/changelog/2021.12.0.rst b/changelog/2021.12.0.rst new file mode 100644 index 000000000..f37f37d21 --- /dev/null +++ b/changelog/2021.12.0.rst @@ -0,0 +1,201 @@ +ESPHome 2021.12.0 - 11th December 2021 +====================================== + +.. seo:: + :description: Changelog for ESPHome 2021.12.0. + :image: /_static/changelog-2021.12.0.png + :author: ESPHome + :author_twitter: @esphome_ + +.. imgtable:: + :columns: 3 + + Button Core, components/button/index, folder-open.svg + Template Button, components/button/template, description.svg + Restart Button, components/button/restart, restart.svg + BLE Binary Output, components/output/ble_client, bluetooth.svg + Tuya Text Sensor, components/text_sensor/tuya, tuya.png + SDP800 Series, components/sensor/sdp3x, sdp31.jpg, Pressure + + +State of the Open Smart Home +---------------------------- + +Today is the `State of the Open Smart Home `__ hosted by Nabu Casa, Home Assistant & ESPHome +and we’ll be joined by our friends from WLED, Z-Wave JS, Stanford’s OVAL lab and Northeastern University to talk about our work on making this vision a reality. + +Where: YouTube + +When: Today, Saturday, December 11, at 11am PST / 8pm CET + +.. raw:: html + + + +Buttons +------- + +This release brings :doc:`buttons from Home Assistant. Many times there have been questions on how to simply trigger automations +from the Home Assistant frontend with a button so here you go. Here is a very simple example: + +.. code:: yaml + + button: + - platform: template + name: Test Button + on_press: + then: + - logger.log: "The button was pressed!!!" + +Multiple WiFi networks with static IP +------------------------------------- + +This release has a fix that allows using multiple networks each with their own static IP address configuration. +When using these options, you **must** also set ``wifi`` -> ``use_address`` when installing new firmware as ESPHome +cannot know which IP address to use automatically. + +NEC remote protocol +------------------- + +In this version, the order of transferring bits was corrected from MSB to LSB in accordance with the NEC standard. +Therefore, if the the configuration file has come from an earlier version of ESPhome, it is necessary to reverse +the order of the address and command bits when moving to 2021.12 or above. +For example, address: ``0x84ED``, command: ``0x13EC`` becomes ``0xB721`` and ``0x37C8`` respectively. + +Tuya Covers +----------- + +:esphomepr:`2637` adds new functionality to the Tuya cover component, but at the same time removes the "soft" +inversion of the direction. Instead, it seems that most if not all tuya covers have a "hidden" datapoint that +sets the direction on the secondary MCU. See the :doc:`documentation ` for the new +configuration options. + + +Full list of changes +-------------------- + +New Features +^^^^^^^^^^^^ + +- Add map filter for text sensors :esphomepr:`2761` by :ghuser:`oxan` (new-feature) + +New Components +^^^^^^^^^^^^^^ + +- Add ble_client binary_output :esphomepr:`2200` by :ghuser:`tekmaven` (new-integration) +- Add support for button entities :esphomepr:`2824` by :ghuser:`jesserockz` (new-integration) + +Breaking Changes +^^^^^^^^^^^^^^^^ + +- Fix NEC protocol implementation :esphomepr:`2534` by :ghuser:`dudanov` (breaking-change) +- Tuya Cover improvements :esphomepr:`2637` by :ghuser:`pauln` (breaking-change) + +All changes +^^^^^^^^^^^ + +- Defines tidy :esphomepr:`2696` by :ghuser:`jesserockz` +- pmsx003: add support for new PMS5003S device :esphomepr:`2710` by :ghuser:`NeoAcheron` +- Add climate on_state trigger :esphomepr:`2707` by :ghuser:`dudanov` +- Add greeyac protocol to IR Climate / HeatpumpIR :esphomepr:`2694` by :ghuser:`cmroche` +- Fix rom/rtc.h deprecation compile warning for debug component :esphomepr:`2520` by :ghuser:`mmakaay` +- Drop unused constants from const.py :esphomepr:`2718` by :ghuser:`oxan` +- Install test requirements in lint Docker image :esphomepr:`2719` by :ghuser:`oxan` +- Clean-up MAC address helpers :esphomepr:`2713` by :ghuser:`oxan` +- Provide an option to select unique_id generator :esphomepr:`2701` by :ghuser:`kbialek` +- Ignore secrets yaml on command line :esphomepr:`2715` by :ghuser:`cvwillegen` +- Allow for subsecond sampling of hmc5883l :esphomepr:`2735` by :ghuser:`jaharkes` +- Change log level from DEBUG to INFO for sniffing services of `rf_bridge` :esphomepr:`2736` by :ghuser:`nagyrobi` +- Add ble_client binary_output :esphomepr:`2200` by :ghuser:`tekmaven` (new-integration) +- Remove duplicated const data in esp8266 boards :esphomepr:`2740` by :ghuser:`jesserockz` +- Move to use improv lib from platformio :esphomepr:`2741` by :ghuser:`jesserockz` +- Add max_telegram_length option to dsmr :esphomepr:`2674` by :ghuser:`mmakaay` +- Changed LUT for DKE epaper on ttgo t5 2.13inch to improve partial rfresh :esphomepr:`2475` by :ghuser:`spattinson` +- Fix NEC protocol implementation :esphomepr:`2534` by :ghuser:`dudanov` (breaking-change) +- Remove arduino dependency from hm3301 :esphomepr:`2745` by :ghuser:`martgras` +- Add retry handler :esphomepr:`2721` by :ghuser:`martgras` +- Introduce str_snprintf helper function :esphomepr:`2780` by :ghuser:`oxan` +- Prettier date time display after time sync :esphomepr:`2778` by :ghuser:`cvwillegen` +- Fix distorted gif frames when resizing :esphomepr:`2774` by :ghuser:`davet2001` +- fixed wrong setup-usage tc9548a :esphomepr:`2766` by :ghuser:`andreashergert1984` +- Relax the icon validator to allow non-mdi icons :esphomepr:`2764` by :ghuser:`paulmonigatti` +- Bump black from 21.10b0 to 21.11b1 :esphomepr:`2760` by :ghuser:`dependabot[bot]` +- Update aht10.cpp to address issue #1635 :esphomepr:`2675` by :ghuser:`krunkel` +- Add support for P1 Data Request pin control :esphomepr:`2676` by :ghuser:`mmakaay` +- Allow specifying the dashboard bind address :esphomepr:`2787` by :ghuser:`jesserockz` +- remove LEDC_HIGH_SPEED_MODE for C3, S2, S3 :esphomepr:`2791` by :ghuser:`martgras` +- Fix LEDC resolution calculation on ESP32-C3/S2/S3 :esphomepr:`2794` by :ghuser:`rsumner` +- Add support for sdp8xx :esphomepr:`2779` by :ghuser:`martgras` +- Allow empty UART debug: option, logging in hex format by default :esphomepr:`2771` by :ghuser:`mmakaay` +- Bump pylint from 2.11.1 to 2.12.1 :esphomepr:`2798` by :ghuser:`dependabot[bot]` +- Fix CI cache key for test3.yaml compile :esphomepr:`2757` by :ghuser:`oxan` +- Drop obsolete comment from CI workflow file :esphomepr:`2758` by :ghuser:`oxan` +- Cache virtualenv instead of pip cache between CI runs :esphomepr:`2759` by :ghuser:`oxan` +- Add map filter for text sensors :esphomepr:`2761` by :ghuser:`oxan` (new-feature) +- Only match GCC warnings from ESPHome source files in CI :esphomepr:`2756` by :ghuser:`oxan` +- Correct constant for dynamic I2S bus in NeoPixelBus :esphomepr:`2797` by :ghuser:`oxan` +- Consistently format errors in CI scripts :esphomepr:`2762` by :ghuser:`oxan` +- Cancel previous workflows for PRs and branches :esphomepr:`2800` by :ghuser:`jesserockz` +- total_daily_energy: allow to disable restore mode :esphomepr:`2795` by :ghuser:`ianchi` +- Modbus_controller: Add custom command. :esphomepr:`2680` by :ghuser:`martgras` +- Fix usage of deprecated climate method in anova :esphomepr:`2801` by :ghuser:`oxan` +- Make clang-tidy suggest stdint.h int types :esphomepr:`2820` by :ghuser:`oxan` +- Fixed data type inside fast_random_8() routine :esphomepr:`2818` by :ghuser:`anatoly-savchenkov` +- Improve DSMR read timeout handling :esphomepr:`2699` by :ghuser:`mmakaay` +- Optionally show internal components on the web server :esphomepr:`2627` by :ghuser:`mechanarchy` +- Fix custom mode_state_topic :esphomepr:`2827` by :ghuser:`definitio` +- Add support for button entities :esphomepr:`2824` by :ghuser:`jesserockz` (new-integration) +- Tuya text_sensor and raw data usage :esphomepr:`1812` by :ghuser:`dentra` +- Fix 8266 SPI Clock Polarity Setting :esphomepr:`2836` by :ghuser:`kbx81` +- Fix too-broad matcher for custom CI script :esphomepr:`2829` by :ghuser:`oxan` +- cse7766: add energy sensor :esphomepr:`2822` by :ghuser:`ianchi` +- Burst read for BME280, to reduce spurious spikes :esphomepr:`2809` by :ghuser:`CarlosGS` +- Bump aioesphomeapi from 10.2.0 to 10.6.0 :esphomepr:`2840` by :ghuser:`dependabot[bot]` +- Button device class :esphomepr:`2835` by :ghuser:`jesserockz` +- Implement unit_of_measurement for number component :esphomepr:`2804` by :ghuser:`puuu` +- Number mode :esphomepr:`2838` by :ghuser:`jesserockz` +- Bump esphome-dashboard to 20211201.0 :esphomepr:`2842` by :ghuser:`jesserockz` +- Allow Git credentials to be loaded from secrets :esphomepr:`2825` by :ghuser:`mechanarchy` +- Fix compile warning in Tuya automations :esphomepr:`2837` by :ghuser:`oxan` +- Add problem matcher for Python formatting errors :esphomepr:`2833` by :ghuser:`oxan` +- Fix CI check for Windows line endings :esphomepr:`2831` by :ghuser:`oxan` +- Don't enable namespace comment clang-tidy check twice :esphomepr:`2830` by :ghuser:`oxan` +- ESP32 Deep Sleep: correct level value :esphomepr:`2812` by :ghuser:`jhamhader` +- Fix OTA updates on esp8266 by declaring arch_get_cpu_cycle_count IRAM_ATTR and HOT :esphomepr:`2843` by :ghuser:`Doridian` +- Fix compilation using subprocesses :esphomepr:`2834` by :ghuser:`oxan` +- Expand uart invert feature to ESP8266 :esphomepr:`1727` by :ghuser:`Lewn` +- Support setting manual_ip under networks option :esphomepr:`2839` by :ghuser:`oxan` +- Enable a bunch of clang-tidy checks :esphomepr:`2149` by :ghuser:`oxan` +- Set ESP32 watchdog to loop task :esphomepr:`2846` by :ghuser:`oxan` +- Tuya Cover improvements :esphomepr:`2637` by :ghuser:`pauln` (breaking-change) +- Fix wifi not working with manual_ip using esp-idf :esphomepr:`2849` by :ghuser:`Maelstrom96` +- modbus_controller: bugfix: enable overriding calculated register size :esphomepr:`2845` by :ghuser:`martgras` + +Past Changelogs +--------------- + +.. toctree:: + :maxdepth: 1 + + 2021.11.0 + 2021.10.0 + 2021.9.0 + 2021.8.0 + v1.20.0 + v1.19.0 + v1.18.0 + v1.17.0 + v1.16.0 + v1.15.0 + v1.14.0 + v1.13.0 + v1.12.0 + v1.11.0 + v1.10.0 + v1.9.0 + v1.8.0 + v1.7.0 diff --git a/changelog/index.rst b/changelog/index.rst index c3815151c..5691d5838 100644 --- a/changelog/index.rst +++ b/changelog/index.rst @@ -2,7 +2,7 @@ Changelog ========= .. redirect:: - :url: /changelog/2021.11.0.html + :url: /changelog/2021.12.0.html .. toctree:: :glob: From c907ce454ef45f3764b0e8ef07665be114ac2ab1 Mon Sep 17 00:00:00 2001 From: Jesse Hills <3060199+jesserockz@users.noreply.github.com> Date: Thu, 2 Dec 2021 20:24:06 +1300 Subject: [PATCH 33/34] Update supporters for 2021.12.0b1 --- guides/supporters.rst | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/guides/supporters.rst b/guides/supporters.rst index b7a1fcb23..84ced7979 100644 --- a/guides/supporters.rst +++ b/guides/supporters.rst @@ -190,6 +190,7 @@ Contributors - `Farzad E. (@dnetguru) `__ - `DrZoid (@docteurzoidberg) `__ - `Dominik (@DomiStyle) `__ +- `Mark Dietzer (@Doridian) `__ - `Jiang Sheng (@doskoi) `__ - `Robert Schütz (@dotlambda) `__ - `Daniel Hyles (@DotNetDann) `__ @@ -335,6 +336,7 @@ Contributors - `Jej (@jej) `__ - `Jérôme Laban (@jeromelaban) `__ - `Jesse Hills (@jesserockz) `__ +- `Yuval Brik (@jhamhader) `__ - `Jim Bauwens (@jimbauwens) `__ - `Jérémy JOURDIN (@JJK801) `__ - `Jonathan Jefferies (@jjok) `__ @@ -403,6 +405,7 @@ Contributors - `lcavalli (@lcavalli) `__ - `lein1013 (@lein1013) `__ - `Riku Lindblad (@lepinkainen) `__ +- `Leon Loopik (@Lewn) `__ - `Luca Gugelmann (@lgugelmann) `__ - `Juraj Liso (@LiJu09) `__ - `Lazar Obradovic (@lobradov) `__ @@ -449,6 +452,7 @@ Contributors - `Me No Dev (@me-no-dev) `__ - `Alexandr Zarubkin (@me21) `__ - `Joseph Mearman (@Mearman) `__ +- `mechanarchy (@mechanarchy) `__ - `Bas (@Mechazawa) `__ - `Mechotronic (@Mechotronic) `__ - `MeIchthys (@meichthys) `__ @@ -458,6 +462,7 @@ Contributors - `Michael Gorven (@mgorven) `__ - `mhentschke (@mhentschke) `__ - `Michaël Arnauts (@michaelarnauts) `__ +- `michaelmeller (@michaelmeller) `__ - `micw (@micw) `__ - `Pauline Middelink (@middelink) `__ - `Mikko Tervala (@MikkoTervala) `__ @@ -471,7 +476,6 @@ Contributors - `mknjc (@mknjc) `__ - `Maurice Makaay (@mmakaay) `__ - `mmanza (@mmanza) `__ -- `mnaz (@mnaz) `__ - `Michael Nieß (@mniess) `__ - `Matt N. (@mnoorenberghe) `__ - `monkeyclass (@monkeyclass) `__ @@ -756,4 +760,4 @@ Contributors - `ZTX18 (@ZTX18) `__ - `Christian Zufferey (@zuzu59) `__ -*This page was last updated November 29, 2021.* +*This page was last updated December 2, 2021.* From 848cf0646e4380b747ed940d09da686af41e834b Mon Sep 17 00:00:00 2001 From: Jesse Hills <3060199+jesserockz@users.noreply.github.com> Date: Thu, 2 Dec 2021 21:07:33 +1300 Subject: [PATCH 34/34] Fix reference --- changelog/2021.12.0.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog/2021.12.0.rst b/changelog/2021.12.0.rst index f37f37d21..66ae4e1f9 100644 --- a/changelog/2021.12.0.rst +++ b/changelog/2021.12.0.rst @@ -39,7 +39,7 @@ When: Today, Saturday, December 11, at 11am PST / 8pm CET Buttons ------- -This release brings :doc:`buttons from Home Assistant. Many times there have been questions on how to simply trigger automations +This release brings :doc:`buttons ` from Home Assistant. Many times there have been questions on how to simply trigger automations from the Home Assistant frontend with a button so here you go. Here is a very simple example: .. code:: yaml