diff --git a/Doxygen b/Doxygen index e5bdbca6f..5919da5be 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 = 2024.3.2 +PROJECT_NUMBER = 2024.4.0 # 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 45a50bfcc..a9de01bb5 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ ESPHOME_PATH = ../esphome -ESPHOME_REF = 2024.3.2 +ESPHOME_REF = 2024.4.0 .PHONY: html html-strict cleanhtml deploy help live-html Makefile netlify netlify-api api netlify-dependencies svg2png copy-svg2png minify diff --git a/_static/changelog-2024.4.0.png b/_static/changelog-2024.4.0.png new file mode 100644 index 000000000..96c8a876e Binary files /dev/null and b/_static/changelog-2024.4.0.png differ diff --git a/_static/version b/_static/version index 4951ec3fc..d6d6d28db 100644 --- a/_static/version +++ b/_static/version @@ -1 +1 @@ -2024.3.2 \ No newline at end of file +2024.4.0 \ No newline at end of file diff --git a/changelog/2024.4.0.rst b/changelog/2024.4.0.rst new file mode 100644 index 000000000..81da40897 --- /dev/null +++ b/changelog/2024.4.0.rst @@ -0,0 +1,210 @@ +ESPHome 2024.4.0 - 17th April 2024 +================================== + +.. seo:: + :description: Changelog for ESPHome 2024.4.0. + :image: /_static/changelog-2024.4.0.png + :author: Jesse Hills + :author_twitter: @jesserockz + +.. imgtable:: + :columns: 4 + + Template Datetime Time, components/datetime/template, description.svg, dark-invert + SUN-GTIL2 inverter, components/sun_gtil2, sun_1000g2.png + AT581X, components/at581x, at581x.png + JSN-SR04T, components/sensor/jsn_sr04t, jsn-sr04t-v3.jpg + + Daikin ARC, components/climate/climate_ir, air-conditioner-ir.svg, dark-invert + HHCCJCY10 (MiFlora Pink), components/sensor/xiaomi_hhccjcy10, xiaomi_hhccjcy10.jpg + TLC5971, components/output/tlc5971, tlc5971.jpg + Dooya, components/remote_transmitter, remote.svg + + +Time Entities +------------- + +ESPHome now has support for ``time`` entities that can be set from the frontend (like Home Assistant). THis allows you to set a timer to execute future automations on device. + +ESPHome Dates require Home Assistant 2024.4 or later. + + +Voice Assistant Audio +--------------------- + +This release adds support for sending and receiving audio to/from voice assistants via the API. Currently ESPHome sends and receives the Voice Assistant audio bytes +via a UDP socket which can be unreliable and insecure. Beginning with Home Assistant 2024.5, both sides will automatically recognise that they both support API Audio and will +use that route instead. This is more reliable because the ESPHome API uses a TCP socket, so packet order and delivery is guaranteed, and if you use API Encryption, +your audio will also be encrypted in transit. + + +Full list of changes +-------------------- + +New Components +^^^^^^^^^^^^^^ + +- Add sun_gtil2 component (for SUN-1000G2 / SUN-2000G2 grid tie inverters) :esphomepr:`4958` by :ghuser:`Mat931` (new-integration) +- Add support for AT581x component :esphomepr:`6297` by :ghuser:`X-Ryl669` (new-integration) +- Add new Component: Ultrasonic Distance Sensor JSN-SR04T :esphomepr:`6023` by :ghuser:`Mafus1` (new-integration) +- feat: Add Daikin ARC (tested on Daikin ARC472A62) :esphomepr:`6429` by :ghuser:`magicbear` (new-integration) +- add support for Tuya pink version of miflora :esphomepr:`5402` by :ghuser:`fariouche` (new-integration) +- Implemented support for the TLC5971 as an output component :esphomepr:`6494` by :ghuser:`IJIJI` (new-integration) + +Breaking Changes +^^^^^^^^^^^^^^^^ + +- Add support for new modes in Tuya Climate :esphomepr:`5159` by :ghuser:`moriahmorgan` (breaking-change) +- IPv6 string representation follows RFC5952 :esphomepr:`6449` by :ghuser:`HeMan` (breaking-change) + +Beta Changes +^^^^^^^^^^^^ + +- Add dooya remote transmitter test :esphomepr:`6508` by :ghuser:`jesserockz` +- ads1115: remove auto-load and split sensor into platform folder :esphomepr:`5981` by :ghuser:`jesserockz` (new-platform) +- Bump esphome-dashboard to 20240412.0 :esphomepr:`6517` by :ghuser:`jesserockz` +- Fix missing ifdefs in voice assistant :esphomepr:`6520` by :ghuser:`jesserockz` +- Fix project version longer than 30 characters breaking compilation :esphomepr:`6535` by :ghuser:`jesserockz` +- Fix no-release bug on ft6x36 :esphomepr:`6527` by :ghuser:`clydebarrow` + +All changes +^^^^^^^^^^^ + +- Bump docker/login-action from 3.0.0 to 3.1.0 :esphomepr:`6367` by :ghuser:`dependabot[bot]` +- Bump peter-evans/create-pull-request from 6.0.1 to 6.0.2 :esphomepr:`6361` by :ghuser:`dependabot[bot]` +- Bump docker/build-push-action from 5.2.0 to 5.3.0 in /.github/actions/build-image :esphomepr:`6373` by :ghuser:`dependabot[bot]` +- Bump docker/setup-buildx-action from 3.1.0 to 3.2.0 :esphomepr:`6372` by :ghuser:`dependabot[bot]` +- Fix deep_sleep for ESP32-C6 :esphomepr:`6377` by :ghuser:`ferrets6` +- Fix keeloq for IDF 5+ :esphomepr:`6382` by :ghuser:`kbx81` +- Fix Nextion set_component_picture call :esphomepr:`6378` by :ghuser:`edwardtfn` +- Add line_at_angle method to Display component :esphomepr:`6381` by :ghuser:`deisterhold` +- Check generated proto files are as expected if any are modified in PRs :esphomepr:`6254` by :ghuser:`jesserockz` +- ld2420: fix energy mode documentation :esphomepr:`6225` by :ghuser:`andresv` +- Add actions for component tests A, B and C :esphomepr:`6256` by :ghuser:`kbx81` +- Add some components to the new testing framework (V) :esphomepr:`6231` by :ghuser:`kbx81` +- Add some components to the new testing framework (X,Y,Z) :esphomepr:`6233` by :ghuser:`kbx81` +- Add some components to the new testing framework (E) :esphomepr:`6176` by :ghuser:`kbx81` +- Make SPI compile with IDF >= 5.0 :esphomepr:`6383` by :ghuser:`HeMan` +- Fix esp32-camera test yaml :esphomepr:`6398` by :ghuser:`kbx81` +- Bump pytest-asyncio from 0.23.5.post1 to 0.23.6 :esphomepr:`6402` by :ghuser:`dependabot[bot]` +- Bump actions/cache from 4.0.1 to 4.0.2 in /.github/actions/restore-python :esphomepr:`6403` by :ghuser:`dependabot[bot]` +- Bump actions/cache from 4.0.1 to 4.0.2 :esphomepr:`6404` by :ghuser:`dependabot[bot]` +- Bump ESP8266 Arduino versions :esphomepr:`5359` by :ghuser:`HeMan` +- Allow accept/reject delta to be specified. :esphomepr:`5060` by :ghuser:`cvwillegen` +- Allow setting htop for ledc :esphomepr:`6340` by :ghuser:`Gagootron` +- sm2135: add separate_modes option to support different chip variants :esphomepr:`6152` by :ghuser:`jasperro` +- AHT10: fix temperature-only operation; add warning/error messages :esphomepr:`6405` by :ghuser:`clydebarrow` +- Add support for new modes in Tuya Climate :esphomepr:`5159` by :ghuser:`moriahmorgan` (breaking-change) +- Add sun_gtil2 component (for SUN-1000G2 / SUN-2000G2 grid tie inverters) :esphomepr:`4958` by :ghuser:`Mat931` (new-integration) +- SPI: Make some validation failures give more useful messages. :esphomepr:`6413` by :ghuser:`clydebarrow` +- Bump aioesphomeapi from 23.1.1 to 23.2.0 :esphomepr:`6412` by :ghuser:`dependabot[bot]` +- Add check for use of GPIOXX in config :esphomepr:`6419` by :ghuser:`clydebarrow` +- WireGuard for esp8266 :esphomepr:`6365` by :ghuser:`droscy` +- setup.cfg: drop duplicate, underintended trove classifier :esphomepr:`6421` by :ghuser:`mweinelt` +- Store preferences in disk file on host platform :esphomepr:`6428` by :ghuser:`clydebarrow` +- Add support for AT581x component :esphomepr:`6297` by :ghuser:`X-Ryl669` (new-integration) +- Add some components to the new testing framework (F) :esphomepr:`6177` by :ghuser:`kbx81` +- Add get_contrast() and get_brightness() to SSD1306 class to get protected variables :esphomepr:`6435` by :ghuser:`benediktkr` +- Add new Component: Ultrasonic Distance Sensor JSN-SR04T :esphomepr:`6023` by :ghuser:`Mafus1` (new-integration) +- Add some components to the new testing framework (G) :esphomepr:`6178` by :ghuser:`kbx81` +- Add some components to the new testing framework (K) :esphomepr:`6186` by :ghuser:`kbx81` +- Add some components to the new testing framework (N) :esphomepr:`6210` by :ghuser:`kbx81` +- Add some components to the new testing framework (Q) :esphomepr:`6218` by :ghuser:`kbx81` +- Add some components to the new testing framework (U) :esphomepr:`6230` by :ghuser:`kbx81` +- Fix spacing in new test yaml :esphomepr:`6441` by :ghuser:`kbx81` +- Add some components to the new testing framework (W) :esphomepr:`6232` by :ghuser:`kbx81` +- Add some components to the new testing framework (L) :esphomepr:`6195` by :ghuser:`kbx81` +- feat: Add Daikin ARC (tested on Daikin ARC472A62) :esphomepr:`6429` by :ghuser:`magicbear` (new-integration) +- Disable truthy yamllint rule :esphomepr:`6442` by :ghuser:`jesserockz` +- Add get_size method to QR Code header :esphomepr:`6430` by :ghuser:`deisterhold` +- Minor change to support sht85 sensor :esphomepr:`6415` by :ghuser:`mrtoy-me` +- IPv6 string representation follows RFC5952 :esphomepr:`6449` by :ghuser:`HeMan` (breaking-change) +- Bump actions/setup-python from 5.0.0 to 5.1.0 :esphomepr:`6437` by :ghuser:`dependabot[bot]` +- Bump actions/setup-python from 5.0.0 to 5.1.0 in /.github/actions/restore-python :esphomepr:`6438` by :ghuser:`dependabot[bot]` +- Optimize QMC5883L: Read registers only for enabled sensors :esphomepr:`6458` by :ghuser:`tronikos` +- minor refactor to allow commit hash as ref value. :esphomepr:`6446` by :ghuser:`LelandSindt` +- TMP117 fix polling period config :esphomepr:`6452` by :ghuser:`mrtoy-me` +- Bump Arduino Pico Framework to 3.7.2 and Platform to 1.12.0 :esphomepr:`6386` by :ghuser:`HeMan` +- Display menu: Allow "left" key to exit current menu if not editing :esphomepr:`6460` by :ghuser:`jesserockz` +- Fix NOLINT on inclusive-language check :esphomepr:`6464` by :ghuser:`jesserockz` +- Add yamllint to dev requirements :esphomepr:`6466` by :ghuser:`jesserockz` +- Add temperature for QMC5883L :esphomepr:`6456` by :ghuser:`tronikos` +- web_server: Return early if no clients connected :esphomepr:`6467` by :ghuser:`jesserockz` +- ESP32 Arduino WiFi: misc bug fixes :esphomepr:`6470` by :ghuser:`paravoid` +- Replace std::regex with sscanf calls :esphomepr:`6468` by :ghuser:`jesserockz` +- Include "Failed" status in config log. :esphomepr:`6482` by :ghuser:`clydebarrow` +- Fix Microphone IsCapturingCondition :esphomepr:`6490` by :ghuser:`RaymiiOrg` +- Remove misleading tag/line in messages :esphomepr:`6495` by :ghuser:`clydebarrow` +- Send/Receive Voice Assistant audio via API :esphomepr:`6471` by :ghuser:`jesserockz` +- Datetime date initial value fix :esphomepr:`6483` by :ghuser:`RFDarter` +- If the loop() took more than the required time, don't delay further :esphomepr:`6496` by :ghuser:`clydebarrow` +- Bump LibreTiny version to 1.5.1 :esphomepr:`6500` by :ghuser:`kuba2k2` +- Internal temperature: Support Beken platform :esphomepr:`6491` by :ghuser:`Mat931` +- Bump docker/setup-buildx-action from 3.2.0 to 3.3.0 :esphomepr:`6502` by :ghuser:`dependabot[bot]` +- add support for Tuya pink version of miflora :esphomepr:`5402` by :ghuser:`fariouche` (new-integration) +- Add MAC address to WiFi config reply :esphomepr:`6489` by :ghuser:`cvwillegen` +- Adds i2c timeout config :esphomepr:`4614` by :ghuser:`tracestep` +- Add ABB-Welcome / Busch-Welcome Door Intercom Protocol :esphomepr:`4689` by :ghuser:`Mat931` +- Add support for time entities :esphomepr:`6399` by :ghuser:`jesserockz` +- Fix Match by IRK :esphomepr:`6499` by :ghuser:`MRemy2` +- Add rmt_channel to remote_transmitter and remote_receiver :esphomepr:`6497` by :ghuser:`jesserockz` (new-integration) +- Rework tlc5947 to remove AUTO_LOAD :esphomepr:`6503` by :ghuser:`jesserockz` +- UART: ignore require_tx/rx if not a native uart implementation :esphomepr:`6504` by :ghuser:`jesserockz` +- esp32_rmt_led_strip bugfixes :esphomepr:`6506` by :ghuser:`Mat931` +- Implemented support for the TLC5971 as an output component :esphomepr:`6494` by :ghuser:`IJIJI` (new-integration) +- Add Dooya protocol to remote_base :esphomepr:`6488` by :ghuser:`bukureckid` +- Only give error for connected sensors at startup :esphomepr:`6474` by :ghuser:`leejoow` +- Webserver float to string fix :esphomepr:`6507` by :ghuser:`RFDarter` +- Add dooya remote transmitter test :esphomepr:`6508` by :ghuser:`jesserockz` +- ads1115: remove auto-load and split sensor into platform folder :esphomepr:`5981` by :ghuser:`jesserockz` (new-platform) +- Bump esphome-dashboard to 20240412.0 :esphomepr:`6517` by :ghuser:`jesserockz` +- Fix missing ifdefs in voice assistant :esphomepr:`6520` by :ghuser:`jesserockz` +- Fix project version longer than 30 characters breaking compilation :esphomepr:`6535` by :ghuser:`jesserockz` +- Fix no-release bug on ft6x36 :esphomepr:`6527` by :ghuser:`clydebarrow` + +Past Changelogs +--------------- + +- :doc:`2024.3.0` +- :doc:`2024.2.0` +- :doc:`2023.12.0` +- :doc:`2023.11.0` +- :doc:`2023.10.0` +- :doc:`2023.9.0` +- :doc:`2023.8.0` +- :doc:`2023.7.0` +- :doc:`2023.6.0` +- :doc:`2023.5.0` +- :doc:`2023.4.0` +- :doc:`2023.3.0` +- :doc:`2023.2.0` +- :doc:`2022.12.0` +- :doc:`2022.11.0` +- :doc:`2022.10.0` +- :doc:`2022.9.0` +- :doc:`2022.8.0` +- :doc:`2022.6.0` +- :doc:`2022.5.0` +- :doc:`2022.4.0` +- :doc:`2022.3.0` +- :doc:`2022.2.0` +- :doc:`2022.1.0` +- :doc:`2021.12.0` +- :doc:`2021.11.0` +- :doc:`2021.10.0` +- :doc:`2021.9.0` +- :doc:`2021.8.0` +- :doc:`v1.20.0` +- :doc:`v1.19.0` +- :doc:`v1.18.0` +- :doc:`v1.17.0` +- :doc:`v1.16.0` +- :doc:`v1.15.0` +- :doc:`v1.14.0` +- :doc:`v1.13.0` +- :doc:`v1.12.0` +- :doc:`v1.11.0` +- :doc:`v1.10.0` +- :doc:`v1.9.0` +- :doc:`v1.8.0` +- :doc:`v1.7.0` diff --git a/changelog/index.rst b/changelog/index.rst index b69188536..5c6ee1940 100644 --- a/changelog/index.rst +++ b/changelog/index.rst @@ -2,7 +2,7 @@ Changelog ========= .. redirect:: - :url: /changelog/2024.3.0.html + :url: /changelog/2024.4.0.html .. toctree:: :glob: diff --git a/components/at581x.rst b/components/at581x.rst new file mode 100644 index 000000000..06b33c213 --- /dev/null +++ b/components/at581x.rst @@ -0,0 +1,194 @@ +AirTouch AT581x Radar +===================== + +.. seo:: + :description: Instructions for setting up AirTouch AT581x Radar + :image: at581x.png + :keywords: radar + +The `AirTouch AT581x radar `__ +(aka ``AT581x``) is a familly of 5.8GHz radar which can be used for human presence detection. It can detect tiny movements +and compared to a PIR sensor **it can detect presence continuously**. This can be useful, for example, to turn +the lights on when you enter a room, keep them on as long as you are there (without waving your hands at the +sensor) and turn them off almost immediately after you leave the room. + +They are ultra-low power (as low as 40µA of current consumption) and are extremely simple to use, yet can be setup by I2C. +It's installed in many low cost appliance, like the ESP32S3-BOX-3, and can be found by many different manufacturer or reference, +like the MoreSense MS58-3909S68U4. + +It is possible to use this sensor with only a single GPIO pin; however, if you wish to change its settings, +a :doc:`/components/i2c` component (and its requisite GPIO pins) is required in your device's configuration. + +.. figure:: ../images/at581x.png + :align: center + :width: 75% + + AirTouch AT581x Radar / presence detection sensor + +.. code-block:: yaml + + # Example configuration entry + at581x: + id: "Radar" + i2c_id: bus_a + + binary_sensor: + - platform: gpio + pin: GPIO21 + name: "Radar motion" + + switch: + # Switch to turn on/off RF emission + - platform: at581x + at581x_id: "Radar" + name: "Enable Radar" + +.. _at581x-component: + +Component/Hub +------------- + +You need to have the hub component (``at581x:`` entry) defined to be able to change the sensor's +settings, get it listed as an motion entity or being able to turn on/off the radio frequency emmission. +A :doc:`/components/binary_sensor/gpio` alone could be sufficient if you only want +to determine presence/occupancy. When you define ``at581x:`` you'll need to have a ``i2c:`` entry in +your configuration with both the SDA and SCL pins defined. + +Multiple instances of this component may be defined if multiple :doc:`/components/i2c` components are available: + +.. code-block:: yaml + + at581x: + - id: mmWave_1 + i2c_id: bus_a + address: 0x28 + - id: mmWave_2 + i2c_id: bus_a + address: 0x29 + ... + +Configuration variables: +************************ + +- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. Necessary if you want + to define multiple instances of this component. +- **i2c_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :doc:`/components/i2c` if you want + to use multiple I2C buses. + +.. _at581x-binary_sensor: + +Binary Sensor +------------- + +The state of the radar detection is available via its GPIO pin. It's required to use a GPIO binary sensor to monitor the motion status + +.. code-block:: yaml + + binary_sensor: + - platform: gpio + name: "Human in front" + pin: GPIO21 + +Configuration variables: +************************ + +- Refer to other options from :ref:`Binary Sensor ` and :doc:`GPIO Binary Sensor `. + +.. _at581x-switch: + +Switch +------ + +:ref:`Switch components ` are used to enable/disable radio frequency hardware. + +.. code-block:: yaml + + switch: + - platform: at581x + at581x_id: Radar + name: "Enable Radar" + +Configuration variables: +************************ + +- **at581x_id** (*Optional*, :ref:`config-id`): The ID of the AT581x component defined above. + Required when multiple instances of the ``at581x`` component are defined. +- All other options from :ref:`Switch `. + +.. _at581x-actions: + +Actions +------- + +.. _at581x-action_settings: + +``at581x.settings`` Action +************************** + +.. warning:: + + The hardware frontend reset option is only required to reset the frontend in case it is struck, before sending the + new configuration. However, a frontend reset is always performed after changing the settings. + +The radar has several settings which can be changed. These settings are not saved in non-volatile memory +and need to be set on each boot. + +The settings action allows changing of any number of the radar's internal parameters/settings. With this +action, any unspecified parameters will remain unchanged. + +.. code-block:: yaml + + on_...: + - at581x.settings: + id: "Waveradar" + hw_frontend_reset: false + frequency: 5800MHz + sensing_distance: 200 # 0-1023 + poweron_selfcheck_time: 2000ms + protect_time: 1s + trigger_base: 500ms + trigger_keep: 10s + stage_gain: 3 # 0-12 the higher the value the smaller the gain + power_consumption: 70µA + + +Configuration variables: +```````````````````````` + +- **id** (*Optional*, :ref:`config-id`): Manually specify the ID of the sensor on which settings should be + changed. If only one radar is defined, this is optional. +- **hw_frontend_reset** (*Optional*, boolean): If set to true, a reset of the analog frontend will be performed before + changing other options. Ignored if not set or set to ``false``. Upon applying the settings a frontend reset + will be performed anyway, this is only useful if the sensor is not answering or locked up. +- **frequency** (*Optional*, int): Any of the possible frequencies (5696, 5715, 5730, 5748, 5765, 5784, 5800, 5819, 5836, 5851, 5869, 5888) in MHz. +- **sensing_distance** (*Optional*, int): A unitless number, in range 0-1023, specifying the maximum distance to detect motion +- **poweron_selfcheck_time** (*Optional*, int): The delay to perform self check and calibration on power on. Recommanded not to change this +- **protect_time** (*Optional*, int): The delay after an end-of-trigger event where the detection will not trigger anymore. Max 65535ms +- **trigger_base** (*Optional*, int): The delay while a detection must be active to change the state of the sensor. Max 65535ms +- **trigger_keep** (*Optional*, int): The delay that the output will stay high after a detection event. This is usually what you want to change. +- **stage_gain** (*Optional*, int): The analog gain to use for threshold test. Any value in range 0-12, with 12 being the lowest gain and 0 the highest +- **power_consumption** (*Optional*, int): Any of the possible power profile (48, 56, 63, 70, 77, 91, 105, 115, 40, 44, 47, 51, 54, 61, 68, 78) in µA + + +``at581x.reset`` Action +*********************** + +Restart the sensor. + +.. code-block:: yaml + + on_...: + at581x.reset: + +Configuration variables: +```````````````````````` + +- **id** (*Optional*, :ref:`config-id`): Manually specify the ID of the AT581x component. Useful when multiple instances of this component are defined. + +See Also +-------- +- :ref:`I2C bus ` +- :ref:`Binary Sensor ` +- :doc:`GPIO Binary Sensor ` +- :ref:`config-id` +- :ghedit:`Edit` diff --git a/components/climate/climate_ir.rst b/components/climate/climate_ir.rst index fc392c452..249f181a4 100644 --- a/components/climate/climate_ir.rst +++ b/components/climate/climate_ir.rst @@ -27,6 +27,8 @@ submit a feature request (see FAQ). +---------------------------------------+---------------------+----------------------+ | Daikin | ``daikin`` | yes | +---------------------------------------+---------------------+----------------------+ +| :ref:`Daikin ARC` | ``daikin_arc`` | yes | ++---------------------------------------+---------------------+----------------------+ | :ref:`Daikin BRC` | ``daikin_brc`` | yes | +---------------------------------------+---------------------+----------------------+ | :ref:`Delonghi` | ``delonghi`` | yes | @@ -222,6 +224,21 @@ Configuration variables: header_high: 3265us # AC Units from LG in Brazil, for example use these timings header_low: 9856us +.. _daikin_arc: + +``daikin_arc`` Climate +------------------------- + +The Daikin ARC remotes are used by the japanese model of Daikin. + +.. code-block:: yaml + + # Example configuration entry + climate: + - platform: daikin_arc + name: "AC" + sensor: room_temperature + .. _daikin_brc: ``daikin_brc`` Climate diff --git a/components/climate/tuya.rst b/components/climate/tuya.rst index fe48beb1b..1879bc2a3 100644 --- a/components/climate/tuya.rst +++ b/components/climate/tuya.rst @@ -39,8 +39,10 @@ Based on this, you can create the climate device as follows: switch_datapoint: 1 target_temperature_datapoint: 3 current_temperature_datapoint: 4 - eco_datapoint: 7 - eco_temperature: 20 °C + preset: + eco: + datapoint: 8 + temperature: 28 Configuration variables: ------------------------ @@ -50,22 +52,46 @@ Configuration variables: - **supports_heat** (*Optional*, boolean): Specifies if the device has a heating mode. Defaults to ``true``. - **supports_cool** (*Optional*, boolean): Specifies if the device has a cooling mode. Defaults to ``false``. - **switch_datapoint** (**Required**, int): The datapoint id number of the climate switch (device on/off). -- **active_state_datapoint** (*Optional*, int): The datapoint id number of the active state - :ref:`see below `. -- **active_state_heating_value** (*Optional*, int): The active state datapoint value the device reports when heating. Defaults to ``1`` - :ref:`see below `. -- **active_state_cooling_value** (*Optional*, int): The active state datapoint value the device reports when cooling - :ref:`see below `. +- **active_state** (*Optional*): Configuration for the Active State Configuration. + + - **datapoint** (**Required**, int): The datapoint id number of the active state - :ref:`see below `. + - **heating_value** (*Optional*, int): The active state datapoint value the device reports when heating. Defaults to ``1`` - :ref:`see below `. + - **cooling_value** (*Optional*, int): The active state datapoint value the device reports when cooling - :ref:`see below `. + - **drying_value** (*Optional*, int): The active state datapoint value the device reports when in drying mode. + - **fanonly_value** (*Optional*, int): The active state datapoint value the device reports when in Fan Only mode. +- **preset** (*Optional*): Configuration for presets. + + - **eco** (*Optional*): Configuration for Eco preset. + + - **datapoint** (**Required**, int): The datapoint id number of the Eco action. + - **temperature** (*Optional*, int): Temperature setpoint for Eco preset. + - **sleep** (*Optional*): Configuration for Sleep preset + + - **datapoint** (**Required**, int): The Datapoint id number of the Sleep Action +- **swing_mode** (*Optional*): Configuration for the swing (oscillation) modes. + + - **vertical_datapoint** (*Optional*, int): The datapoint id number of the vertical swing action. + - **horizontal_datapoint** (*Optional*, int): The datapoint id number of the horizontal swing action. +- **fan_mode** (*Optional*): Configuration for fan modes/fan speeds. + + - **datapoint** (**Required**, int): The datapoint id number of the Fan value state. + - **auto_value** (*Optional*, int): The datapoint value the device reports when the fan is on ``auto`` speed. + - **low_value** (*Optional*, int): The datapoint value the device reports when the fan is on ``low`` speed. + - **medium_value** (*Optional*, int): The datapoint value the device reports when the fan is on ``medium`` speed. + - **middle_value** (*Optional*, int): The datapoint value the device reports when the fan is on ``middle`` speed. (May set to device's ``high`` value if you have a ``Turbo`` option). + - **high_value** (*Optional*, int): The datapoint value the device reports when the fan is on ``high`` speed. (Sometimes called ``Turbo``). - **heating_state_pin** (*Optional*, :ref:`config-pin`): The input pin indicating that the device is heating - :ref:`see below `. Only used if **active_state_datapoint** is not configured. - **cooling_state_pin** (*Optional*, :ref:`config-pin`): The input pin indicating that the device is cooling - :ref:`see below `. Only used if **active_state_datapoint** is not configured. - **target_temperature_datapoint** (**Required**, int): The datapoint id number of the target temperature. - **current_temperature_datapoint** (**Required**, int): The datapoint id number of the current temperature. - **temperature_multiplier** (*Optional*, float): A multiplier to modify the incoming and outgoing temperature values - :ref:`see below `. -- **eco_datapoint** (*Optional*, int): The datapoint id number of the eco mode state. -- **eco_temperature** (*Optional*, float): The target temperature the controller uses while the eco mode is active. + - **reports_fahrenheit** (*Optional*, boolean): Set to ``true`` if the device reports temperatures in Fahrenheit. ESPHome expects all climate temperatures to be in Celcius, otherwise unexpected conversions will take place when it is published to Home Assistant. Defaults to ``false``. If the device has different multipliers for current and target temperatures, **temperature_multiplier** can be replaced with both of: -- **current_temperature_multiplier** (*Optional*, float): A multiplier to modify the current temperature value. -- **target_temperature_multiplier** (*Optional*, float): A multiplier to modify the target temperature value. + - **current_temperature_multiplier** (*Optional*, float): A multiplier to modify the current temperature value. + - **target_temperature_multiplier** (*Optional*, float): A multiplier to modify the target temperature value. - All other options from :ref:`Climate `. diff --git a/components/datetime/index.rst b/components/datetime/index.rst index 2b0713d41..26ff54eea 100644 --- a/components/datetime/index.rst +++ b/components/datetime/index.rst @@ -83,6 +83,9 @@ you can get the value as a ESPTime object from the trigger with ``x``. Configuration variables: See :ref:`Automation `. +Date Automation +--------------- + .. _datetime-date_set_action: ``datetime.date.set`` Action @@ -151,12 +154,85 @@ advanced stuff (see the full API Reference for more info). // For example, create a custom log message when a value is received: ESP_LOGI("main", "Value of my datetime: %04d-%02d-%02d", id(my_date).year, id(my_date).month, id(my_date).day); +Time Automation +--------------- + +.. _datetime-time_set_action: + +``datetime.time.set`` Action +**************************** + +This is an :ref:`Action ` for setting a datetime time state. +The ``time`` provided can be in one of 3 formats: + +.. code-block:: yaml + + # String time + - datetime.time.set: + id: my_time + time: "12:34:56" + + # Individual time parts + - datetime.time.set: + id: my_time + time: + hour: 12 + minute: 34 + second: 56 + + # Using a lambda + - datetime.time.set: + id: my_time + time: !lambda |- + // Return an ESPTime struct + return {.second: 56, .minute: 34, .hour: 12}; + +Configuration variables: + +- **id** (**Required**, :ref:`config-id`): The ID of the datetime to set. +- **time** (**Required**, string, time parts, :ref:`templatable `): + The value to set the datetime to. + + +.. _datetime-time-lambda_calls: + +lambda calls +************ + +From :ref:`lambdas `, you can call several methods on all datetimes to do some +advanced stuff (see the full API Reference for more info). + +- ``.make_call()``: Make a call for updating the datetime value. + + .. code-block:: cpp + + // Within lambda, set the time to 12:34:56 + auto call = id(my_time).make_call(); + call.set_date("12:34:56"); + call.perform(); + + Check the API reference for information on the methods that are available for + the ``TimeCall`` object. + +- ``.hour``: Retrieve the current hour of the ``time``. It will be ``0`` if no value has been set. +- ``.minute``: Retrieve the current minute of the ``time``. It will be ``0`` if no value has been set. +- ``.second``: Retrieve the current second of the ``time``. It will be ``0`` if no value has been set. +- ``.state_as_esptime()``: Retrieve the current value of the datetime as a :apistruct:`ESPTime` object. + + .. code-block:: cpp + + // For example, create a custom log message when a value is received: + ESP_LOGI("main", "Value of my datetime: %0d:%02d:%02d", id(my_time).hour, id(my_time).minute, id(my_time).second); + + See Also -------- - :apiref:`DateTimeBase ` - :apiref:`DateEntity ` - :apiref:`DateCall ` +- :apiref:`TimeeEntity ` +- :apiref:`TimeCall ` - :ghedit:`Edit` .. toctree:: diff --git a/components/datetime/template.rst b/components/datetime/template.rst index b2eca7772..3619db27e 100644 --- a/components/datetime/template.rst +++ b/components/datetime/template.rst @@ -10,8 +10,8 @@ using :ref:`lambdas `. .. code-block:: yaml - # Example configuration entry datetime: + # Example Date - platform: template id: my_date type: date @@ -20,10 +20,19 @@ using :ref:`lambdas `. initial_value: "2024-01-30" restore_value: true + # Example Time + - platform: template + id: my_time + type: time + name: Pick a Time + optimistic: yes + initial_value: "12:34:56" + restore_value: true + Configuration variables: ------------------------ -- **type** (*Required*, enum): The type of the datetime. Can only be ``date``. +- **type** (*Required*, enum): The type of the datetime. Can be one of ``date`` or ``time``. - **lambda** (*Optional*, :ref:`lambda `): Lambda to be evaluated every update interval to get the current value of the datetime. - **set_action** (*Optional*, :ref:`Action `): The action that should @@ -39,15 +48,29 @@ Configuration variables: - **initial_value** (*Optional*, string): The value to set the state to on setup if not restored with ``restore_value``. Can be one of: - - A string in the format ``%Y-%m-%d``, eg: ``"2023-12-04"``. - - An object including ``year``, ``month``, ``day``. + - For ``type: date``: - .. code-block:: yaml + - A string in the format ``%Y-%m-%d`` , eg: ``"2023-12-04"``. + - An object including ``year``, ``month``, ``day``. - initial_value: - year: 2023 - month: 12 - day: 4 + .. code-block:: yaml + + initial_value: + year: 2023 + month: 12 + day: 4 + + - For ``type: time``: + + - A string in the format ``%H:%M:%S`` , eg: ``"12:34:56"``. + - An object including ``hour``, ``minute``, ``second``. + + .. code-block:: yaml + + initial_value: + hour: 12 + minute: 34 + second: 56 - All other options from :ref:`Datetime `. diff --git a/components/display/index.rst b/components/display/index.rst index 3f8ef5a40..d6f443eba 100644 --- a/components/display/index.rst +++ b/components/display/index.rst @@ -106,7 +106,7 @@ Now that you know a bit more about ESPHome's coordinate system, let's draw some // and a filled triangle ! it.filled_triangle(115, 5, 95, 25, 125, 70); - // Regular Polygons? Let's draw a filled, pointy-topped hexagon inscribed in a circle + // Regular Polygons? Let's draw a filled, pointy-topped hexagon inscribed in a circle // centered on [170,45] with a radius of 20 it.filled_regular_polygon(170, 45, 20, EDGES_HEXAGON); // and the outline of flat-topped octagon around it! @@ -610,6 +610,12 @@ To draw the QR-code, call the ``it.qr_code`` function from your render lambda: // Draw the QR-code at position [x=50,y=0] with white color and a 2x scale it.qr_code(50, 0, id(homepage_qr), Color(255,255,255), 2); + // Draw the QR-code in the center of the screen with white color and a 2x scale + auto size = id(homepage_qr).get_size() * 2; // Multiply by scale + auto x = (it.get_width() / 2) - (size / 2); + auto y = (it.get_height() / 2) - (size / 2); + it.qr_code(x, y, id(homepage_qr), Color(255,255,255), 2); + .. _display-image: diff --git a/components/i2c.rst b/components/i2c.rst index 9e16eacdb..48176e248 100644 --- a/components/i2c.rst +++ b/components/i2c.rst @@ -37,6 +37,9 @@ Configuration variables: Defaults to ``true``. - **frequency** (*Optional*, float): Set the frequency the I²C bus should operate on. Defaults to ``50kHz``. Values are ``10kHz``, ``50kHz``, ``100kHz``, ``200kHz``, ... ``800kHz`` +- **timeout** (*Optional*, :ref:`config-time`): Set the I²C bus timeout. + Defaults to the framework defaults (``100us`` on ``esp32`` with ``esp-idf``, ``50ms`` on ``esp32`` with ``Arduino``, + ``1s`` on ``esp8266`` and ``1s`` on ``rp2040``). Maximum on ``esp-idf`` is 13ms. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID for this I²C bus if you need multiple I²C buses. .. note:: diff --git a/components/images/sun_gtil2_controller_board.png b/components/images/sun_gtil2_controller_board.png new file mode 100644 index 000000000..869a676c1 Binary files /dev/null and b/components/images/sun_gtil2_controller_board.png differ diff --git a/components/images/sun_gtil2_display_board.png b/components/images/sun_gtil2_display_board.png new file mode 100644 index 000000000..39c05fea8 Binary files /dev/null and b/components/images/sun_gtil2_display_board.png differ diff --git a/components/images/sun_gtil2_schematic.png b/components/images/sun_gtil2_schematic.png new file mode 100644 index 000000000..347311f25 Binary files /dev/null and b/components/images/sun_gtil2_schematic.png differ diff --git a/components/light/esp32_rmt_led_strip.rst b/components/light/esp32_rmt_led_strip.rst index 45df3de40..8c4a67c2e 100644 --- a/components/light/esp32_rmt_led_strip.rst +++ b/components/light/esp32_rmt_led_strip.rst @@ -24,10 +24,14 @@ Configuration variables - **pin** (**Required**, :ref:`config-pin`): The pin for the data line of the light. - **num_leds** (**Required**, int): The number of LEDs in the strip. - **rmt_channel** (**Required**, int): The RMT channel to use. If using multiple strips, you need to use different channels. - - **ESP32**: ``0`` to ``7`` - - **ESP32-S2**: ``0`` to ``3`` - - **ESP32-S3**: ``0`` to ``3`` - - **ESP32-C3**: ``0`` or ``1`` + + .. csv-table:: + :header: "ESP32 Variant", "Channels" + + "ESP32", "0, 1, 2, 3, 4, 5, 6, 7" + "ESP32-S2", "0, 1, 2, 3" + "ESP32-S3", "0, 1, 2, 3" + "ESP32-C3", "0, 1" - **chipset** (**Required**, enum): The chipset to apply known timings from. Not used if specifying the timings manually, see below. - ``WS2812`` diff --git a/components/output/images/tlc5971.jpg b/components/output/images/tlc5971.jpg new file mode 100644 index 000000000..a5215f8a4 Binary files /dev/null and b/components/output/images/tlc5971.jpg differ diff --git a/components/output/ledc.rst b/components/output/ledc.rst index fe6dd62ab..305b84350 100644 --- a/components/output/ledc.rst +++ b/components/output/ledc.rst @@ -83,6 +83,11 @@ channel 0, 2, 4, 6 for each output. This will prevent issues that arise from aut which chooses adjacent channels with shared timers. See `Issue #3114 `__ for more details. +- **phase_angle** (*Optional*, float): Set a phase angle to the other channel of this timer. + Range 0-360°, defaults to 0° + +Note: this variable is only available for the esp-idf framework + Recommended frequencies ----------------------- diff --git a/components/output/sm2135.rst b/components/output/sm2135.rst index 120cef50b..2ff9a1488 100644 --- a/components/output/sm2135.rst +++ b/components/output/sm2135.rst @@ -68,6 +68,9 @@ Configuration variables: - **rgb_current** (*Optional*, current): The current used for the RGB channel. Defaults to ``20mA``. Can be one of ``10mA``, ``15mA``, ``20mA``, ``25mA``, ``30mA``, ``35mA``, ``40mA``, ``45mA``. +- **separate_modes** (*Optional*, bool): Use separate RGB/CW modes instead of writing all 5 values as RGB. + Defaults to ``true``, keep it at ``true`` if your SM2135 chip variant does not support simultaneous CW and RGB modes (e.g. SM2135E). + Set this to ``false`` when your SM2135 chip variant supports having CW and RGB leds on at the same time (e.g. SM2135EH/SM2135EJ). .. _sm2135-output: diff --git a/components/output/tlc5971.rst b/components/output/tlc5971.rst new file mode 100644 index 000000000..0a371c761 --- /dev/null +++ b/components/output/tlc5971.rst @@ -0,0 +1,101 @@ +TLC5971 LED driver +================== + +.. seo:: + :description: Instructions for setting up TLC5971 LED drivers in ESPHome. + :image: tlc5971.jpg + :keywords: tlc5971, + +.. _tlc5971-component: + +Component/Hub +------------- +.. figure:: images/tlc5971.jpg + :align: center + :width: 75.0% + + Adafruit's TLC59711 board + +This component represents a chain of `TLC5971 12-Channel, 16-Bit PWM LED Drivers `_, +which is used e.g. on this `board from Adafruit `_. + +To use the channels of this components, you first need to setup the +global ``tlc5971`` hub and give it an id, and then define the +:ref:`individual output channels `. + +.. code-block:: yaml + + # Example configuration entry + tlc5971: + data_pin: GPIO12 + clock_pin: GPIO14 + + # Individual outputs + output: + - platform: tlc5971 + id: output_red + channel: 0 + - platform: tlc5971 + id: output_green + channel: 1 + - platform: tlc5971 + id: output_blue + channel: 2 + +Configuration variables: +************************ + +- **data_pin** (**Required**, :ref:`Pin Schema `): The pin connected to DIN. +- **clock_pin** (**Required**, :ref:`Pin Schema `): The pin connected to CLK. +- **num_chips** (*Optional*, int): Number of chips in the chain. Must be + in range from 1 to 85. Defaults to 1. +- **id** (*Optional*, :ref:`config-id`): The id to use for + this ``tlc5971`` component. Use this if you have multiple TLC5971 chains + connected at the same time. + +.. _tlc5971-output: + +Output +------ + +The tlc5971 output component exposes a tlc5971 channel of a global +:ref:`tlc5971-component` as a float output. + +.. code-block:: yaml + + # Example configuration entry + tlc5971: + data_pin: GPIO12 + clock_pin: GPIO14 + + # Individual outputs + output: + - platform: tlc5971 + id: output_red + channel: 0 + - platform: tlc5971 + id: output_green + channel: 1 + - platform: tlc5971 + id: output_blue + channel: 2 + +Configuration variables: +************************ + +- **id** (**Required**, :ref:`config-id`): The id to use for this output component. +- **channel** (**Required**, int): Chose the channel of the TLC5971 chain of + this output component. +- **tlc5971_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the + :ref:`TLC5971-component`. + Use this if you have multiple TLC5971 chains you want to use at the same time. +- All other options from :ref:`Output `. + +See Also +-------- + +- :doc:`/components/output/index` +- :doc:`/components/light/monochromatic` +- :doc:`/components/power_supply` +- :apiref:`tlc5971/tlc5971.h` +- :ghedit:`Edit` diff --git a/components/remote_receiver.rst b/components/remote_receiver.rst index b74b4c694..d3eb1f6f5 100644 --- a/components/remote_receiver.rst +++ b/components/remote_receiver.rst @@ -30,12 +30,14 @@ Configuration variables: - **dump** (*Optional*, list): Decode and dump these remote codes in the logs (at log.level=DEBUG). Set to ``all`` to dump all available codecs: + - **abbwelcome**: Decode and dump ABB-Welcome codes. Messages are sent via copper wires. See :ref:`remote_transmitter-transmit_abbwelcome` - **aeha**: Decode and dump AEHA infrared codes. - **byronsx**: Decode and dump Byron SX doorbell RF codes. - **canalsat**: Decode and dump CanalSat infrared codes. - **canalsatld**: Decode and dump CanalSatLD infrared codes. - **coolix**: Decode and dump Coolix infrared codes. - **dish**: Decode and dump Dish infrared codes. + - **dooya**: Decode and dump Dooya RF codes. - **drayton**: Decode and dump Drayton Digistat RF codes. - **jvc**: Decode and dump JVC infrared codes. - **keeloq**: Decode and dump KeeLoq RF codes. @@ -61,6 +63,17 @@ Configuration variables: decoding process. Defaults to ``25%``. - **buffer_size** (*Optional*, int): The size of the internal buffer for storing the remote codes. Defaults to ``10kB`` on the ESP32 and ``1kB`` on the ESP8266. +- **rmt_channel** (*Optional*, int): The RMT channel to use. Only on **esp32**. + The following ESP32 variants have these channels available: + + .. csv-table:: + :header: "ESP32 Variant", "Channels" + + "ESP32", "0, 1, 2, 3, 4, 5, 6, 7" + "ESP32-S2", "0, 1, 2, 3" + "ESP32-S3", "4, 5, 6, 7" + "ESP32-C3", "2, 3" + - **memory_blocks** (*Optional*, int): The number of RMT memory blocks used. Only used on ESP32 platform. Defaults to ``3``. - **filter** (*Optional*, :ref:`config-time`): Filter any pulses that are shorter than this. Useful for removing @@ -79,6 +92,9 @@ Configuration variables: Automations: ------------ +- **on_abbwelcome** (*Optional*, :ref:`Automation `): An automation to perform when a + ABB-Welcome code has been decoded. A variable ``x`` of type :apiclass:`remote_base::ABBWelcomeData` + is passed to the automation for use in lambdas. - **on_aeha** (*Optional*, :ref:`Automation `): An automation to perform when a AEHA remote code has been decoded. A variable ``x`` of type :apiclass:`remote_base::AEHAData` is passed to the automation for use in lambdas. @@ -98,6 +114,9 @@ Automations: dish network remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::DishData` is passed to the automation for use in lambdas. Beware that Dish remotes use a different carrier frequency (57.6kHz) that many receiver hardware don't decode. +- **on_dooya** (*Optional*, :ref:`Automation `): An automation to perform when a + Dooya RF remote code has been decoded. A variable ``x`` of type :apistruct:`remote_base::DooyaData` + is passed to the automation for use in lambdas. - **on_drayton** (*Optional*, :ref:`Automation `): An automation to perform when a Drayton Digistat RF code has been decoded. A variable ``x`` of type :apistruct:`remote_base::DraytonData` is passed to the automation for use in lambdas. @@ -207,6 +226,21 @@ Configuration variables: Remote code selection (exactly one of these has to be included): +- **abbwelcome**: Trigger on a decoded ABB-Welcome code with the given data. + + - **source_address** (**Required**, int): The source address to trigger on, see :ref:`remote_transmitter-transmit_abbwelcome` + for more info. + - **destination_address** (**Required**, int): The destination address to trigger on, see + :ref:`remote_transmitter-transmit_abbwelcome` for more info. + - **three_byte_address** (**Optional**, boolean): The length of the source and destination address. ``false`` means two bytes + and ``true`` means three bytes. Defaults to ``false``. + - **retransmission** (**Optional**, boolean): ``true`` if the message was re-transmitted. Defaults to ``false``. + - **message_type** (**Required**, int): The message type to trigger on, see :ref:`remote_transmitter-transmit_abbwelcome` + for more info. + - **message_id** (**Optional**, int): The random message ID to trigger on, see dumper output for more info. Defaults to any ID. + - **data** (**Optional**, 0-7 bytes list): The code to listen for. Usually you only need to copy this directly from the + dumper output. Defaults to ``[]`` + - **aeha**: Trigger on a decoded AEHA remote code with the given data. - **address** (**Required**, int): The address to trigger on, see dumper output for more info. @@ -243,6 +277,13 @@ Remote code selection (exactly one of these has to be included): - **address** (*Optional*, int): The number of the receiver to target, between 1 and 16 inclusive. Defaults to ``1``. - **command** (**Required**, int): The Dish command to listen for, between 0 and 63 inclusive. +- **dooya**: Trigger on a decoded Dooya RF remote code with the given data. + + - **id** (**Required**, int): The 24-bit ID code to trigger on. + - **channel** (**Required**, int): The 8-bit channel to listen for. + - **button** (**Required**, int): The 4-bit button to listen for. + - **check** (**Required**, int): The 4-bit check to listen for. Includes an indication that a button is being held down. + - **drayton**: Trigger on a decoded Drayton Digistat RF remote code with the given data. - **address** (**Required**, int): The 16-bit ID code to trigger on, see dumper output for more info. @@ -304,6 +345,8 @@ Remote code selection (exactly one of these has to be included): - **data** (**Required**, string): The code to listen for, see :ref:`remote_transmitter-transmit_raw` for more info. Usually you only need to copy this directly from the dumper output. + - **delta** (**Optional**, integer): This parameter allows you to manually specify the allowed difference + between what Pronto code is specified, and what IR signal has been sent by the remote control. - **raw**: Trigger on a raw remote code with the given code. @@ -432,3 +475,4 @@ See Also - `IRRemoteESP8266 `__ by `Mark Szabo-Simon `__ - :apiref:`remote/remote_receiver.h` - :ghedit:`Edit` + diff --git a/components/remote_transmitter.rst b/components/remote_transmitter.rst index 53666ab9b..5d34b30b3 100644 --- a/components/remote_transmitter.rst +++ b/components/remote_transmitter.rst @@ -43,6 +43,17 @@ Configuration variables: - **carrier_duty_percent** (*Optional*, int): How much of the time the remote is on. For example, infrared protocols modulate the signal using a carrier signal. Set this to ``50%`` if you're working with IR LEDs and to ``100%`` if working with other things like 433MHz transmitters. +- **rmt_channel** (*Optional*, int): The RMT channel to use. Only on **esp32**. + The following ESP32 variants have these channels available: + + .. csv-table:: + :header: "ESP32 Variant", "Channels" + + "ESP32", "0, 1, 2, 3, 4, 5, 6, 7" + "ESP32-S2", "0, 1, 2, 3" + "ESP32-S3", "0, 1, 2, 3" + "ESP32-C3", "0, 1" + - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. Use this if you have multiple remote transmitters. @@ -78,6 +89,56 @@ Configuration variables: If you're looking for the same functionality as is default in the ``rpi_rf`` integration in Home Assistant, you'll want to set the **times** to 10 and the **wait_time** to 0s. +.. _remote_transmitter-transmit_abbwelcome: + +``remote_transmitter.transmit_abbwelcome`` Action +************************************************* + +This :ref:`action ` sends a ABB-Welcome message to the intercom bus. The +message type, addresses, address length and data can vary a lot between ABB-Welcome +systems. Please refer to the received messages while performing actions like ringing a +doorbell or opening a door. + +.. code-block:: yaml + + on_...: + - remote_transmitter.transmit_abbwelcome: + source_address: 0x1001 # your indoor station address + destination_address: 0x4001 # door address + three_byte_address: false # address length of your system + message_type: 0x0d # unlock door, on some systems 0x0e is used instead + data: [0xab, 0xcd, 0xef] # message data, see receiver dump + +Configuration variables: + +- **source_address** (**Required**, int):The source address to send the command from, + see received messages for more info. For indoor stations the last byte of the address + represents the apartment number set by the dials on the back of the indoor station and is + transmitted in hexadecimal format. +- **destination_address** (**Required**, int): The destination address to send the command to, + see received messages for more info. +- **three_byte_address** (**Required**, int): The destination address to send the command to, + see received messages for more info. +- **three_byte_address** (**Optional**, boolean): The length of the source and destination address. ``false`` + means two bytes and ``true`` means three bytes. Please check the received messages to see which address length + is used by your system. For example, ``[XXXX > XXXX]`` appears in the receiver log for two byte addresses and + ``[XXXXXX > XXXXXX]`` for three byte addresses. Defaults to ``false``. +- **retransmission** (**Optional**, boolean): Should only be ``true`` if this message has been transmitted + before with the same ``message_id``. Typically, messages are transmitted up to three times with a 1 second + interval if no reply is received. Defaults to ``false``. +- **message_type** (**Required**, int): The message type, see dumper output for more info. + The highest bit indicates a reply. +- **message_id** (**Optional**, int): The message ID, see dumper output for more info. + Defaults to a randomly generated ID if this message is not a reply or retransmission. +- **data** (**Optional**, 0-7 bytes list): The code to send. + Usually you only need to copy this directly from the dumper output. Defaults to ``[]`` + +.. note:: + + ABB-Welcome messages are sent over the two-wire bus of your intercom system. + A custom receiver and transmitter circuit is required. + `More info `__ + .. _remote_transmitter-transmit_aeha: ``remote_transmitter.transmit_aeha`` Action @@ -212,6 +273,30 @@ Configuration variables: You can find a list of commands in the `LIRC project `__. +.. _remote_transmitter-transmit_dooya: + +``remote_transmitter.transmit_dooya`` Action +********************************************** + +This :ref:`action ` sends a Dooya RF remote code to a remote transmitter. + +.. code-block:: yaml + + on_...: + - remote_transmitter.transmit_dooya: + id: 0x001612E5 + channel: 142 + button: 12 + check: 3 + +Configuration variables: + +- **id** (**Required**, int): The 24-bit ID to send. Each remote has a unique one. +- **channel** (**Required**, int): The 8-bit channel to send, between 0 and 255 inclusive. +- **button** (**Required**, int): The 4-bit button to send, between 0 and 15 inclusive. +- **check** (**Required**, int): The 4-bit check to send. Includes an indication that a button is being held down. See dumper output for more info. +- All other options from :ref:`remote_transmitter-transmit_action`. + .. _remote_transmitter-transmit_drayton: ``remote_transmitter.transmit_drayton`` Action @@ -267,7 +352,7 @@ This :ref:`action ` sends KeeLoq RF remote code to a remote trans code: '0xd19ef0a9' repeat: times: 3 - wait_time: 15ms + wait_time: 15ms Configuration variables: diff --git a/components/sensor/images/jsn-sr04t-v3-mode-select-pads.jpg b/components/sensor/images/jsn-sr04t-v3-mode-select-pads.jpg new file mode 100644 index 000000000..1e3594eba Binary files /dev/null and b/components/sensor/images/jsn-sr04t-v3-mode-select-pads.jpg differ diff --git a/components/sensor/images/jsn-sr04t-v3.jpg b/components/sensor/images/jsn-sr04t-v3.jpg new file mode 100644 index 000000000..43a4847ac Binary files /dev/null and b/components/sensor/images/jsn-sr04t-v3.jpg differ diff --git a/components/sensor/images/xiaomi_hhccjcy10.jpg b/components/sensor/images/xiaomi_hhccjcy10.jpg new file mode 100644 index 000000000..691d6bf5a Binary files /dev/null and b/components/sensor/images/xiaomi_hhccjcy10.jpg differ diff --git a/components/sensor/internal_temperature.rst b/components/sensor/internal_temperature.rst index 2aca16fab..066aafecf 100644 --- a/components/sensor/internal_temperature.rst +++ b/components/sensor/internal_temperature.rst @@ -2,12 +2,12 @@ Internal Temperature Sensor =========================== .. seo:: - :description: Instructions for setting up the integrated temperature sensor of the ESP32 and RP2040. + :description: Instructions for setting up the integrated temperature sensor of the ESP32, RP2040 and BK72XX. :image: thermometer.svg :keywords: esp32, rp2040, cpu, internal, temperature The ``internal_temperature`` sensor platform allows you to use the integrated -temperature sensor of the ESP32 and RP2040 chip. +temperature sensor of the ESP32, RP2040 and BK72XX chip. .. note:: diff --git a/components/sensor/jsn_sr04t.rst b/components/sensor/jsn_sr04t.rst new file mode 100644 index 000000000..700701255 --- /dev/null +++ b/components/sensor/jsn_sr04t.rst @@ -0,0 +1,66 @@ +JSN-SR04T Waterproof Ultrasonic Range Finder +============================================ + +.. seo:: + :description: Instructions for setting up JSN-SR04T waterproof ultrasonic distance sensor in ESPHome. + :image: jsn-sr04t-v3.jpg + :keywords: JSN-SR04T + +This sensor allows you to use the JSN-SR04T Waterproof Ultrasonic Range Finder **in Mode 1 and 2** +with ESPHome to measure distances. This sensor can measure +ranges between 25 centimeters and 600 centimeters with a resolution of 1 millimeter. + +Configure the JSN-SR04T for mode 1: + - **V1.0 and V2.0**: Add a 47k resistor to pad R27. + - **V3.0**: Short pad M1 or add 47k resistor to pad mode. + +Configure the JSN-SR04T for mode 2: + - **V1.0 and V2.0**: Add a 120k resistor to pad R27. + - **V3.0**: Short pad M2 or add 120k resistor to pad mode. + +.. figure:: images/jsn-sr04t-v3-mode-select-pads.jpg + :align: center + :width: 50.0% + + JSN-SR04T Waterproof Ultrasonic Range Finder Mode Select Pads. + +In mode 1 the module continuously takes measurements approximately every 100mS and outputs the distance on the TX pin at 9600 baud. +In this mode :ref:`sensor-filters` are highly recommended. + +In mode 2 the module takes a measurement only when a trigger command of 0x55 is sent to the RX pin on the module. +The module then outputs the distance on its TX pin. The frequency of the measurements can be set with the **update_interval** option. + +To use the sensor, first set up an :ref:`uart` with a baud rate of 9600 and connect the sensor to the specified pin. + +.. figure:: images/jsn-sr04t-v3.jpg + :align: center + :width: 70.0% + + JSN-SR04T Waterproof Ultrasonic Range Finder. + +.. code-block:: yaml + + # Example configuration entry + sensor: + - platform: "jsn_sr04t" + name: "Distance" + update_interval: 1s + + +Configuration variables: +------------------------ + +- **name** (**Required**, string): The name of the sensor. +- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the + sensor. Defaults to ``60s``. Not applicable in mode 1. +- **uart_id** (*Optional*, :ref:`config-id`): The ID of the :ref:`UART bus ` you wish to use for this sensor. + Use this if you want to use multiple UART buses at once. +- All other options from :ref:`Sensor `. + +See Also +-------- + +- :ref:`uart` +- :ref:`sensor-filters` +- :apiref:`jsn_sr04t/jsn_sr04t.h` +- :ghedit:`Edit` diff --git a/components/sensor/qmc5883l.rst b/components/sensor/qmc5883l.rst index 62582cf96..5157490ae 100644 --- a/components/sensor/qmc5883l.rst +++ b/components/sensor/qmc5883l.rst @@ -33,6 +33,10 @@ configuration for this sensor to work. name: "QMC5883L Field Strength Z" heading: name: "QMC5883L Heading" + temperature: + name: "QMC5883L Temperature" + filters: + - offset: 34.0 range: 200uT oversampling: 512x update_interval: 60s @@ -49,6 +53,10 @@ Configuration variables: :ref:`Sensor `. - **heading** (*Optional*): The heading of the sensor in degrees. All options from :ref:`Sensor `. +- **temperature** (*Optional*): The temperature of the sensor. Per the datasheet: + "Temperature sensor gain is factory-calibrated, but its offset has not been compensated, only relative + temperature value is accurate". Above example has an offset that you need to calibrate. All options from + :ref:`Sensor `. - **range** (*Optional*): The range parameter for the sensor. - **oversampling** (*Optional*): The oversampling parameter for the sensor. - **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``. diff --git a/components/sensor/sht3xd.rst b/components/sensor/sht3xd.rst index 0c076edb2..3f71cad44 100644 --- a/components/sensor/sht3xd.rst +++ b/components/sensor/sht3xd.rst @@ -2,16 +2,17 @@ SHT3X-D Temperature+Humidity Sensor =================================== .. seo:: - :description: Instructions for setting up SHT31-D/SHT3x temperature and humidity sensors + :description: Instructions for setting up SHT31-D/SHT3x and SHT85 temperature and humidity sensors :image: sht3xd.jpg The ``sht3xd`` sensor platform Temperature+Humidity sensor allows you to use your Sensirion SHT31-D/SHT3x (`datasheet `__, -`Adafruit`_ ) sensors with -ESPHome. The :ref:`I²C Bus ` is -required to be set up in your configuration for this sensor to work. +`Adafruit`_ ) and SHT85 (`datasheet `__, +`Sensirion`_ ) sensors with Esphome. +The :ref:`I²C Bus ` is required to be set up in your configuration for this sensor to work. .. _Adafruit: https://www.adafruit.com/product/2857 +.. _Sensirion: https://sensirion.com/products/catalog/SHT85/ .. figure:: images/temperature-humidity.png :align: center @@ -32,20 +33,20 @@ required to be set up in your configuration for this sensor to work. Configuration variables: ------------------------ -- **temperature** (**Required**): The information for the temperature sensor. +- **temperature** (*Optional*): The information for the temperature sensor. - **name** (**Required**, string): The name for the temperature sensor. - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas. - All other options from :ref:`Sensor `. -- **humidity** (**Required**): The information for the humidity sensor. +- **humidity** (*Optional*): The information for the humidity sensor. - **name** (**Required**, string): The name for the humidity sensor. - **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for use in lambdas. - All other options from :ref:`Sensor `. - **address** (*Optional*, int): Manually specify the I²C address of the sensor. - Defaults to ``0x44``. + Defaults to ``0x44``. For SHT3x, an alternate address can be ``0x45`` while SHT85 supports only address ``0x44`` - **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``. - **heater_enabled** (*Optional*, bool): Turn on/off heater at boot. diff --git a/components/sensor/xiaomi_hhccjcy10.rst b/components/sensor/xiaomi_hhccjcy10.rst new file mode 100644 index 000000000..d70aad5e8 --- /dev/null +++ b/components/sensor/xiaomi_hhccjcy10.rst @@ -0,0 +1,51 @@ +HHCCJCY10 Xiaomi MiFlora (Pink version) +======================================= + + +.. seo:: + :description: Instructions for setting up a Xiaomi MiFlora HHCCJCY10 (Pink) using ESPHome. + :image: xiaomi_hhccjcy10.jpg + +MiFlora, tuya (pink) version, measures temperature, moisture, ambient light and nutrient levels in the soil. + +.. figure:: images/xiaomi_hhccjcy10.jpg + :align: center + :width: 60.0% + +.. code-block:: yaml + + sensor: + - platform: xiaomi_hhccjcy10 + mac_address: '94:2B:FF:5C:91:61' + temperature: + name: "Xiaomi HHCCJCY10 Temperature" + moisture: + name: "Xiaomi HHCCJCY10 Moisture" + illuminance: + name: "Xiaomi HHCCJCY10 Illuminance" + conductivity: + name: "Xiaomi HHCCJCY10 Soil Conductivity" + battery_level: + name: "Xiaomi HHCCJCY10 Battery Level" + +Configuration variables: +------------------------ + +- **mac_address** (**Required**, string): The MAC address of the device. +- **temperature** (*Optional*): The temperature sensor. + All options from :ref:`Sensor `. +- **moisture** (*Optional*): The moisture sensor. + All options from :ref:`Sensor `. +- **illuminance** (*Optional*): The illuminance sensor. + All options from :ref:`Sensor `. +- **conductivity** (*Optional*): The conductivity sensor. + All options from :ref:`Sensor `. +- **battery_level** (*Optional*): The battery level sensor. + All options from :ref:`Sensor `. + + +See Also +-------- + +- :doc:`ble_client` +- :ghedit:`Edit` diff --git a/components/sun_gtil2.rst b/components/sun_gtil2.rst new file mode 100644 index 000000000..e62e91d1f --- /dev/null +++ b/components/sun_gtil2.rst @@ -0,0 +1,145 @@ +SUN_GTIL2 Grid Tie Inverter +=========================== + +.. seo:: + :description: Instructions for reading data from a SUN-1000G2 grid tie inverter using ESPHome + :keywords: sun-1000g2, sun-2000g2, sun1000, sun2000, sun-1000gtil2, sun-2000gtil2 + +The ``sun_gtil2`` component allows you to get voltage, power and temperature readings from your ``SUN-1000G2`` +or ``SUN-2000G2`` grid tie inverter. This is done by reading the UART data transmitted from the inverter's +controller board to the display board. + +.. note:: + + You need to open your inverter to apply this modification. Use at your own risk! If you want to connect your + inverter via the (more limited) external RS232 interface you should use the + :doc:`Modbus ` component instead. + +.. figure:: images/sun_gtil2_controller_board.png + :align: center + :width: 50.0% + + Pinout of the inverter's controller board + +.. figure:: images/sun_gtil2_display_board.png + :align: center + :width: 50.0% + + Pinout of the inverter's display board + +.. figure:: images/sun_gtil2_schematic.png + :align: center + :width: 75.0% + + Simplified connection diagram + +As the data is read from the inverter using UART, you need to have an :ref:`UART bus ` in your +configuration with the ``rx_pin`` connected to the TX pin of the inverter's controller board. Additionally, you +need to set the ``baud_rate`` to 9600. + + + +The inverter will report new measurements approximately every 1.3 seconds. + +Component/Hub +------------- + +.. code-block:: yaml + + # Example configuration entry + sun_gtil2: + uart_id: control_to_display + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ + +- **id** (**Required**, :ref:`config-id`): The id to use for this component. +- **uart_id** (*Optional*): The UART Bus ID for receiving messages sent from the inverter's controller to the display. + +Sensor +------ + +.. code-block:: yaml + + # Example configuration entry + sensor: + - platform: sun_gtil2 + temperature: + id: gtil_temperature + name: "Heatsink Temperature" + filters: + - throttle_average: 30s + dc_voltage: + id: gtil_dc_voltage + name: "DC Voltage" + filters: + - throttle_average: 30s + ac_voltage: + id: gtil_ac_voltage + name: "AC Voltage" + filters: + - throttle_average: 30s + ac_power: + id: gtil_ac_power + name: "AC Power" + dc_power: + id: gtil_dc_power + name: "DC Power" + limiter_power: + id: gtil_limiter_power + internal: True + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ + +- **sun_gtil2_id** (*Optional*): Manually specify the ID of the sun_gtil2 instance if there are multiple. + +- **temperature** (*Optional*): The temperature of your inverter's heatsink. + All options from :ref:`Sensor `. + +- **dc_voltage** (*Optional*): The voltage of your DC source. (battery or solar panels) + All options from :ref:`Sensor `. + +- **ac_voltage** (*Optional*): The grid voltage measured by the inverter. + All options from :ref:`Sensor `. + +- **dc_power** (*Optional*): The inverter's input power. + All options from :ref:`Sensor `. + +- **ac_power** (*Optional*): The inverter's output power. + All options from :ref:`Sensor `. + +- **limiter_power** (*Optional*): The power measured by the inverter's "Internal" limiter. + All options from :ref:`Sensor `. + +Text Sensor +----------- + +.. code-block:: yaml + + # Example configuration entry + text_sensor: + - platform: sun_gtil2 + state: + id: gtil_state + name: "State" + serial_number: + id: gtil_serial_number + internal: True + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ + +- **sun_gtil2_id** (*Optional*): Manually specify the ID of the sun_gtil2 instance if there are multiple. + +- **state** (*Optional*): The inverter's state. + All options from :ref:`Text Sensor `. + +- **serial_number** (*Optional*): The inverter's serial number. + All options from :ref:`Text Sensor `. + +See Also +-------- + +- :ref:`sensor-filters` +- :ghedit:`Edit` diff --git a/components/wireguard.rst b/components/wireguard.rst index 3cd03749b..73a3b83c2 100644 --- a/components/wireguard.rst +++ b/components/wireguard.rst @@ -6,12 +6,12 @@ WireGuard Component .. seo:: :description: Instructions to setup WireGuard for your ESP board. - :keywords: WireGuard, VPN, ESP32 + :keywords: WireGuard, VPN |wireguard|_ is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. This component uses a **custom** implementation not developed by original authors and currently -available for **ESP32 platform only**. +available for ESP32 and ESP8266 platforms *only*. Please note that *"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.* See @@ -146,7 +146,7 @@ Configuration variables Static routes and outgoing connections -------------------------------------- -Currently there is no way on ESP32 devices to configure static routes for +Currently there is no way on ESP devices to configure static routes for network interfaces, so the ``peer_allowed_ips`` list is used only to allow (or drop) packets that pass through the VPN tunnel, not to define static routes for remote hosts. diff --git a/conf.py b/conf.py index 4fa5828c4..d469d628a 100644 --- a/conf.py +++ b/conf.py @@ -67,9 +67,9 @@ author = "ESPHome" # built documents. # # The short X.Y version. -version = "2024.3" +version = "2024.4" # The full version, including alpha/beta/rc tags. -release = "2024.3.2" +release = "2024.4.0" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/guides/supporters.rst b/guides/supporters.rst index 901329910..0027f01fe 100644 --- a/guides/supporters.rst +++ b/guides/supporters.rst @@ -228,6 +228,7 @@ Contributors - `bwynants (@bwynants) `__ - `c0ffeeca7 (@c0ffeeca7) `__ - `Captain Haddock (@ca-haddock) `__ +- `Caleb Gabbie (@calebgab) `__ - `Cal Howard (@calhoward) `__ - `callacomp (@callacomp) `__ - `Callum Gare (@callumgare) `__ @@ -390,7 +391,6 @@ Contributors - `Marcos Pérez Ferro (@djwmarcx) `__ - `Dan Mannock (@dmannock) `__ - `Dmitriy Lopatko (@dmitriy5181) `__ -- `Farzad E. (@dnetguru) `__ - `Tristan Rowley (@doctea) `__ - `DrZoid (@docteurzoidberg) `__ - `DominikBitzer (@DominikBitzer) `__ @@ -432,6 +432,7 @@ Contributors - `Ettore Beltrame (@E440QF) `__ - `Earle F. Philhower, III (@earlephilhower) `__ - `Ermanno Baschiera (@ebaschiera) `__ +- `ebw44 (@ebw44) `__ - `Robert Resch (@edenhaus) `__ - `Niclas Larsson (@edge90) `__ - `EdJoPaTo (@EdJoPaTo) `__ @@ -467,12 +468,13 @@ Contributors - `Eric Hiller (@erichiller) `__ - `Ernst Klamer (@Ernst79) `__ - `Eduardo Roldan (@eroldan) `__ +- `ervede (@ervede) `__ - `escoand (@escoand) `__ -- `Eric Severance (@esev) `__ - `esphomebot (@esphomebot) `__ - `espressif2022 (@espressif2022) `__ - `Daniel Dunn (@EternityForest) `__ - `EtienneMD (@EtienneMD) `__ +- `etzisim (@etzisim) `__ - `Evan Coleman (@evandcoleman) `__ - `Clemens Kirchgatterer (@everslick) `__ - `Everything Smart Home (@EverythingSmartHome) `__ @@ -483,7 +485,6 @@ Contributors - `Fabian Affolter (@fabaff) `__ - `Fabian (@Fabian-Schmidt) `__ - `Fabian Muehlberger (@fabianmuehlberger) `__ -- `Federico Ariel Castagnini (@facastagnini) `__ - `C W (@fake-name) `__ - `Fabian Bläse (@fblaese) `__ - `Fabian Berthold (@fbrthld) `__ @@ -528,6 +529,7 @@ Contributors - `Aljaž Srebrnič (@g5pw) `__ - `Alex Hermann (@gaaf) `__ - `Gabe Cook (@gabe565) `__ +- `Gábor Poczkodi (@gabest11) `__ - `gazoodle (@gazoodle) `__ - `gcopeland (@gcopeland) `__ - `Greg Cormier (@gcormier) `__ @@ -630,6 +632,7 @@ Contributors - `Fredrik Gustafsson (@jagheterfredrik) `__ - `jakehdk (@jakehdk) `__ - `Jake Shirley (@JakeShirley) `__ +- `Jonathan Kollasch (@jakllsch) `__ - `jakub-medrzak (@jakub-medrzak) `__ - `James Hirka (@jameshirka) `__ - `James Lakin (@jamesorlakin) `__ @@ -855,6 +858,7 @@ Contributors - `Michal Fapso (@michalfapso) `__ - `Michał (@michau-krakow) `__ - `Michel Munzert (@michelde) `__ +- `michlann (@michlann) `__ - `micw (@micw) `__ - `Pauline Middelink (@middelink) `__ - `Joel Midstjärna (@midstar) `__ @@ -879,7 +883,9 @@ Contributors - `Moriah Morgan (@moriahmorgan) `__ - `moritzj29 (@moritzj29) `__ - `Chris Laplante (@mostthingsweb) `__ +- `Michael P. Flaga (@mpflaga) `__ - `MrEditor97 (@mreditor97) `__ +- `MRemy2 (@MRemy2) `__ - `Mariusz Kryński (@mrk-its) `__ - `Michael Davidson (@MrMDavidson) `__ - `mrred2k (@mrred2k) `__ @@ -1030,6 +1036,7 @@ Contributors - `Pascal Vizeli (@pvizeli) `__ - `Alex (@pxe-la) `__ - `[pʲɵs] (@pyos) `__ +- `Peter Zich (@pzich) `__ - `Qc (@qc24) `__ - `Quinn Casey (@qcasey) `__ - `qianh-wan (@qianh-wan) `__ @@ -1115,6 +1122,7 @@ Contributors - `scamiv (@scamiv) `__ - `Nils Schulte (@Schnilz) `__ - `Wolle (@schreibfaul1) `__ +- `Scobber (@Scobber) `__ - `Ville Skyttä (@scop) `__ - `Dan (@ScrewLooseDan) `__ - `Sean True (@seantrue) `__ @@ -1310,6 +1318,7 @@ Contributors - `Artur 'Wodor' Wielogorski (@wodor) `__ - `Rick van Hattem (@wolph) `__ - `workingmanrob (@workingmanrob) `__ +- `Dawid Wróbel (@wrobelda) `__ - `Sven Serlier (@wrt54g) `__ - `Wolfgang Tremmel (@wtremmel) `__ - `Jiangang Wu (@wujiangang) `__ @@ -1336,4 +1345,4 @@ Contributors - `Christian Zufferey (@zuzu59) `__ - `Zynth-dev (@Zynth-dev) `__ -*This page was last updated April 4, 2024.* +*This page was last updated April 17, 2024.* diff --git a/images/at581x.png b/images/at581x.png new file mode 100644 index 000000000..25558063b Binary files /dev/null and b/images/at581x.png differ diff --git a/images/jsn-sr04t-v3.jpg b/images/jsn-sr04t-v3.jpg new file mode 100644 index 000000000..a1990876e Binary files /dev/null and b/images/jsn-sr04t-v3.jpg differ diff --git a/images/sun_1000g2.png b/images/sun_1000g2.png new file mode 100644 index 000000000..34e9aa633 Binary files /dev/null and b/images/sun_1000g2.png differ diff --git a/images/tlc5971.jpg b/images/tlc5971.jpg new file mode 100644 index 000000000..df739673c Binary files /dev/null and b/images/tlc5971.jpg differ diff --git a/images/xiaomi_hhccjcy10.jpg b/images/xiaomi_hhccjcy10.jpg new file mode 100644 index 000000000..691d6bf5a Binary files /dev/null and b/images/xiaomi_hhccjcy10.jpg differ diff --git a/index.rst b/index.rst index f3d2346d6..3c8d4b96d 100644 --- a/index.rst +++ b/index.rst @@ -234,6 +234,7 @@ Bluetooth Low Energy (BLE) Mopeka Standard Check LP, components/sensor/mopeka_std_check, mopeka_std_check.jpg, tank level RuuviTag, components/sensor/ruuvitag, ruuvitag.jpg, Temperature & Humidity & Accelerometer Xiaomi BLE, components/sensor/xiaomi_ble, xiaomi_mijia_logo.jpg, Various + HHCCJCY10 (MiFlora Pink), components/sensor/xiaomi_hhccjcy10, xiaomi_hhccjcy10.jpg, Soil moisture & Temperature & Light Alpha3, components/sensor/alpha3, alpha3.jpg @@ -258,7 +259,7 @@ Distance Ultrasonic Sensor, components/sensor/ultrasonic, ultrasonic.jpg, Acoustic distance VL53L0x, components/sensor/vl53l0x, vl53l0x.jpg, IR optical distance Zio Ultrasonic Sensor, components/sensor/zio_ultrasonic, zio_ultrasonic.jpg, Acoustic distance - + JSN-SR04T, components/sensor/jsn_sr04t, jsn-sr04t-v3.jpg, Acoustic distance Electricity *********** @@ -319,6 +320,7 @@ Environmental ENS160, components/sensor/ens160, ens160.jpg, CO2 & Air Quality ENS210, components/sensor/ens210, ens210.jpg, Temperature & Humidity HDC1080, components/sensor/hdc1080, hdc1080.jpg, Temperature & Humidity + HHCCJCY10 (MiFlora Pink), components/sensor/xiaomi_hhccjcy10, xiaomi_hhccjcy10.jpg, Soil moisture & Temperature & Light HTE501, components/sensor/hte501, HTE501.png, Temperature & Humidity Honeywell ABP, components/sensor/honeywellabp, honeywellabp.jpg, Pressure & Temperature Honeywell ABP2 I2C, components/sensor/honeywellabp2_i2c, honeywellabp.jpg, Pressure & Temperature @@ -517,6 +519,7 @@ Presence Detection .. imgtable:: DFRobot mmWave Radar, components/dfrobot_sen0395, dfrobot_sen0395.jpg + AT581X, components/at581x, at581x.png LD2410, components/sensor/ld2410, ld2410.jpg LD2420, components/sensor/ld2420, ld2420.jpg Seeed Studio MR24HPC1 mmWave, components/seeed_mr24hpc1, seeed-mr24hpc1.jpg @@ -553,6 +556,7 @@ Output Components PCA9685, components/output/pca9685, pca9685.jpg TLC59208F, components/output/tlc59208f, tlc59208f.jpg TLC5947, components/output/tlc5947, tlc5947.jpg + TLC5971, components/output/tlc5971, tlc5971.jpg MY9231/MY9291, components/output/my9231, my9231.svg SM16716, components/output/sm16716, sm16716.svg SM2135, components/output/sm2135, sm2135.svg @@ -933,6 +937,7 @@ Miscellaneous Components PipSolar - compatible PV Inverter, components/pipsolar, pipsolar.jpg Grow Fingerprint Reader, components/fingerprint_grow, fingerprint.svg, dark-invert SML, components/sml, sml.svg + SUN-GTIL2 inverter, components/sun_gtil2, sun_1000g2.png Atlas Scientific Peristaltic Pump, components/ezo_pmp, ezo-pmp.jpg Resol VBus, components/vbus, resol_deltasol_bs_plus.jpg WireGuard, components/wireguard, wireguard_custom_logo.svg