ESPHome 2022.11.0 - 16th November 2022
======================================

.. seo::
    :description: Changelog for ESPHome 2022.11.0.
    :image: /_static/changelog-2022.11.0.png
    :author: Jesse Hills
    :author_twitter: @jesserockz

.. imgtable::
    :columns: 4

    RP2040, components/rp2040, rp2040.svg
    WL-134 Pet Tag Sensor , components/text_sensor/wl_134, fingerprint.svg, dark-invert
    Ethernet Info, components/text_sensor/ethernet_info, ethernet.svg, dark-invert
    Atlas Scientific Peristaltic Pump, components/ezo_pmp, ezo-pmp.jpg
    ADC128S102, components/sensor/adc128s102, adc128s102.png
    Daikin BRC, components/climate/climate_ir, air-conditioner-ir.svg, dark-invert
    Display Menu Core, components/display_menu/index, folder-open.svg, dark-invert
    LCD Menu, components/display_menu/lcd_menu, lcd_menu.png


Raspberry Pi Pico-W
-------------------

What can I say... I (Jesse) started working on making ESPHome run on the original Raspberry Pi
Pico one random weekend just for fun with no real intention of taking it further myself.
Little did I know there would be a Raspberry Pi Pico-W released earlier this year which sparked
up interest in continuing that PR and almost fully implementing RP2040 and the Pico-W as
a supported platform in ESPHome.

There are things that have not been tested, and most likely things that will not work, so
please `create or search for an issue <https://github.com/esphome/issues/issues>`__ if this is the case.

Looking forward to seeing peoples projects built on these boards running ESPHome.

Script Parameters
-----------------

Thanks :ghuser:`jimtng` for taking the time to implement a feature requested by many people over time.
Parameters on scripts are now a thing.

.. code-block:: yaml

    script:
      - id: push_button
        parameters:
          button: int
        then:
          - logger.log:
              format: "Button %d pressed"
              args: [ button ]

    on_...:
      - script.execute:
          id: push_button
          button: 1

    on_...:
      - script.execute:
          id: push_button
          button: 2

LCD Menu
--------

Another great feature added this release is the LCD Menu. This allows a user to build a simple (or complex)
menu system on an lcd display within ESPHome YAML, with support for switches, numbers, selects etc.
Thanks :ghuser:`numo68`.

Preserving User WiFi Credentials
--------------------------------

If you purchase a device, or install ESPHome on a device that does not have Wi-Fi credentials pre-configured from YAML,
ESPHome will now preserve any credentials entered via the :doc:`/components/captive_portal`, :doc:`/components/improv_serial`
or :doc:`/components/esp32_improv` components after an OTA update of the firmeware is done. It is possible they can survive
flashing via serial, but only if the flash was not erased first, which it is in the case of using ESPHome to flash.

Products that use `ESP Web Tools <https://esphome.github.io/esp-web-tools>`__ are able to specify in the manifest that the flash
should not be erased when installing the firmware and this is a way to provide updates for a device that was sold.

Running ESPHome on lower powered machines
-----------------------------------------

People have noticed that trying to compile their projects on machine such as the Raspberry Pi 3 would crash either the whole machine
or the ESPHome add-on, or Home Assistant. This is due to having less RAM and CPU power available to run all of the things at the same time.
A new config option has been added as per the example below that should help to allow compiling on machines such as Raspberry Pi 3.
By default ESPHome tries to compile using all of the processor cores, and this allows you to limit it to a lower amount.

.. code-block:: yaml

    esphome:
      ...
      compile_process_limit: 1

Release 2022.11.1 - November 17
-------------------------------

- Support ADC on RP2040 :esphomepr:`4040` by :ghuser:`jesserockz`

Release 2022.11.2 - November 23
-------------------------------

- Fix rp2040 pwm to use pico-sdk, not mbed :esphomepr:`4059` by :ghuser:`jesserockz`
- Update web_server index :esphomepr:`4060` by :ghuser:`jesserockz`
- rp2040_pwm frequency is per pair of pins :esphomepr:`4061` by :ghuser:`jesserockz`
- Avoid 128bit uuid loop for 16/32 bit uuids :esphomepr:`4068` by :ghuser:`bdraco`
- Avoid creating a new espbt::ESPBTUUID each loop when registering for notify :esphomepr:`4069` by :ghuser:`bdraco`

Release 2022.11.3 - November 24
-------------------------------

- fix missing library :esphomepr:`4051` by :ghuser:`ssieb`
- Fix units for refresh: never :esphomepr:`4048` by :ghuser:`bkaufx`
- Don't convert climate temperature step :esphomepr:`4082` by :ghuser:`jesserockz`

Release 2022.11.4 - December 1
------------------------------

- current-based cover fix copy paste mistake :esphomepr:`4124` by :ghuser:`jesserockz`
- Dashboard fix relative url after login :esphomepr:`4103` by :ghuser:`ngraziano`
- Fix queuing scripts not compiling :esphomepr:`4077` by :ghuser:`jesserockz`

Release 2022.11.5 - December 6
------------------------------

- Fix board pin alias lookup :esphomepr:`4147` by :ghuser:`jesserockz`

Full list of changes
--------------------

New Features
^^^^^^^^^^^^

- Allow preserving WiFi credentials entered with captive_portal :esphomepr:`3813` by :ghuser:`kuba2k2` (new-feature)

New Components
^^^^^^^^^^^^^^

- Add support for wl-134 :esphomepr:`3569` by :ghuser:`hobbypunk90` (new-integration)
- New platform ethernet_info from component text_sensor :esphomepr:`3811` by :ghuser:`gtjadsonsantos` (new-integration)
- Implementation for Atlas Scientific Peristaltic Pump :esphomepr:`3528` by :ghuser:`carlos-sarmiento` (new-integration)
- Add adc128s102 sensor :esphomepr:`3822` by :ghuser:`DeerMaximum` (new-integration)
- Added component Daikin BRC to support ceiling cassette heatpumps :esphomepr:`3743` by :ghuser:`hagak` (new-integration)
- Initial Support for RP2040 platform :esphomepr:`3284` by :ghuser:`jesserockz` (new-integration)
- Implement a simple LCD menu :esphomepr:`3406` by :ghuser:`numo68` (new-integration)

Breaking Changes
^^^^^^^^^^^^^^^^

- Don't Use Base Network Manual IP for WiFi AP :esphomepr:`3902` by :ghuser:`bkaufx` (breaking-change)

Beta Changes
^^^^^^^^^^^^

- Update set-output to use new GITHUB_OUTPUT :esphomepr:`4008` by :ghuser:`jesserockz`
- Add cover toggle support to current based cover :esphomepr:`3950` by :ghuser:`maringeph`
- Add option for dashboard command to only generate the project and supporting files :esphomepr:`3981` by :ghuser:`jesserockz`
- Fix local webserver based on esphome/esphome-webserver#17 :esphomepr:`3958` by :ghuser:`RoboMagus`
- fix to_lower filter :esphomepr:`4015` by :ghuser:`ssieb`
- Mark webserver and captive portal as not available on rp2040 :esphomepr:`4023` by :ghuser:`jesserockz`
- Fix time components on rp2040 :esphomepr:`4024` by :ghuser:`jesserockz`
- Mark mqtt as unavailable on rp2040 :esphomepr:`4025` by :ghuser:`jesserockz`
- Update_interval less that 1 second in QMC5883L integration :esphomepr:`4031` by :ghuser:`2mikrobi`
- Always save user wifi credentials if non in config :esphomepr:`4036` by :ghuser:`jesserockz`
- bump nginx-light 1.18.0-6.1+deb11u2 to 1.18.0-6.1+deb11u3 :esphomepr:`4034` by :ghuser:`johnmoxley`

All changes
^^^^^^^^^^^

- Update the ibeacon code :esphomepr:`3859` by :ghuser:`fhriley`
- Don't Use Base Network Manual IP for WiFi AP :esphomepr:`3902` by :ghuser:`bkaufx` (breaking-change)
- Allow preserving WiFi credentials entered with captive_portal :esphomepr:`3813` by :ghuser:`kuba2k2` (new-feature)
- Add support for wl-134 :esphomepr:`3569` by :ghuser:`hobbypunk90` (new-integration)
- New platform ethernet_info from component text_sensor :esphomepr:`3811` by :ghuser:`gtjadsonsantos` (new-integration)
- Implementation for Atlas Scientific Peristaltic Pump :esphomepr:`3528` by :ghuser:`carlos-sarmiento` (new-integration)
- Add adc128s102 sensor :esphomepr:`3822` by :ghuser:`DeerMaximum` (new-integration)
- Added component Daikin BRC to support ceiling cassette heatpumps :esphomepr:`3743` by :ghuser:`hagak` (new-integration)
- Bump platformio from 6.0.2 to 6.1.4 :esphomepr:`3711` by :ghuser:`dependabot[bot]`
- Add API interface to request a complete device config as JSON. :esphomepr:`3911` by :ghuser:`RoboMagus`
- Initial Support for RP2040 platform :esphomepr:`3284` by :ghuser:`jesserockz` (new-integration)
- Bump esphome-dashboard to 20221020.0 :esphomepr:`3920` by :ghuser:`jesserockz`
- Fix missing dependencies for heatpumpir :esphomepr:`3933` by :ghuser:`jesserockz`
- Update the PR template :esphomepr:`3934` by :ghuser:`jesserockz`
- Fix error with require_framework_version and rp2040 :esphomepr:`3923` by :ghuser:`jesserockz`
- Make mDNS on rp2040 work :esphomepr:`3936` by :ghuser:`jesserockz`
- Send manufacturer name via API :esphomepr:`3938` by :ghuser:`jesserockz`
- Update base platformio board for rp2040 :esphomepr:`3937` by :ghuser:`jesserockz`
- Implement different random for rp2040 :esphomepr:`3939` by :ghuser:`jesserockz`
- add proper device class to uptime :esphomepr:`3928` by :ghuser:`nagyrobi`
- Show local mac when scanning wifi :esphomepr:`3635` by :ghuser:`cvwillegen`
- Prefix devcontainer image with ghcr.io :esphomepr:`3942` by :ghuser:`jesserockz`
- Implement InterruptLock for RP2040 :esphomepr:`3945` by :ghuser:`jesserockz`
- Implement RP2040 preferences :esphomepr:`3946` by :ghuser:`jesserockz`
- Fix filesystem size for RP2040 OTA :esphomepr:`3947` by :ghuser:`jesserockz`
- Bump esphome/Improv to 1.2.3 :esphomepr:`3948` by :ghuser:`jesserockz`
- Add core config option to limit compile process count :esphomepr:`3952` by :ghuser:`jesserockz`
- Some RP2040 wifi changes for AP mode :esphomepr:`3953` by :ghuser:`jesserockz`
- Update rp2040 to latest framework release from GitHub :esphomepr:`3954` by :ghuser:`jesserockz`
- [SM300D2] Reduce log severity for successful reads :esphomepr:`3955` by :ghuser:`pauln`
- Fix imports for rp2040 with no wifi :esphomepr:`3956` by :ghuser:`jesserockz`
- Allow using LED pin on rpi pico-w :esphomepr:`3957` by :ghuser:`jesserockz`
- Fix RP2040 SPISettings :esphomepr:`3960` by :ghuser:`jesserockz`
- Make some minor changes to I²C so rp2040 works :esphomepr:`3959` by :ghuser:`jesserockz`
- Bump tornado from 6.1 to 6.2 :esphomepr:`3620` by :ghuser:`dependabot[bot]`
- Bump pytest-cov from 3.0.0 to 4.0.0 :esphomepr:`3922` by :ghuser:`dependabot[bot]`
- Remove gitpod :esphomepr:`3964` by :ghuser:`balloob`
- Bump pyupgrade from 3.0.0 to 3.2.0 :esphomepr:`3973` by :ghuser:`dependabot[bot]`
- Bump pytest from 7.1.3 to 7.2.0 :esphomepr:`3966` by :ghuser:`dependabot[bot]`
- Bump actions/stale from 5 to 6 :esphomepr:`3841` by :ghuser:`dependabot[bot]`
- Bump pylint from 2.15.3 to 2.15.5 :esphomepr:`3978` by :ghuser:`dependabot[bot]`
- Bump pytest-mock from 3.8.2 to 3.10.0 :esphomepr:`3877` by :ghuser:`dependabot[bot]`
- Allow multiple bluetooth proxy connections :esphomepr:`3971` by :ghuser:`jesserockz`
- Always use gh releases in base platformio file for rp2040 :esphomepr:`3988` by :ghuser:`jesserockz`
- Allow the use of multiple RDM6300 devices :esphomepr:`3989` by :ghuser:`mbardeen`
- Bump aioesphomeapi from 10.13.0 to 11.4.2 :esphomepr:`3987` by :ghuser:`dependabot[bot]`
- rp2040: Set watchdog to reboot properly :esphomepr:`3991` by :ghuser:`jesserockz`
- RP2040 uart support :esphomepr:`3990` by :ghuser:`jesserockz`
- add uart number to LOGCONFIG :esphomepr:`3996` by :ghuser:`tomaszduda23`
- Implement a simple LCD menu :esphomepr:`3406` by :ghuser:`numo68` (new-integration)
- Lint updates :esphomepr:`3992` by :ghuser:`jesserockz`
- Bump zeroconf from 0.39.1 to 0.39.4 :esphomepr:`3979` by :ghuser:`dependabot[bot]`
- Bump black from 22.8.0 to 22.10.0 :esphomepr:`3986` by :ghuser:`dependabot[bot]`
- Skip validation of defined pins :esphomepr:`3999` by :ghuser:`jenscski`
- Bump pytest-asyncio from 0.19.0 to 0.20.1 :esphomepr:`4003` by :ghuser:`dependabot[bot]`
- Bump aioesphomeapi from 11.4.2 to 11.4.3 :esphomepr:`4002` by :ghuser:`dependabot[bot]`
- Bump platformio from 6.1.4 to 6.1.5 :esphomepr:`4004` by :ghuser:`dependabot[bot]`
- Enable calibration, callbacks and custom commands for EZO sensors :esphomepr:`3910` by :ghuser:`gvdhoven`
- Bump esphome-dashboard to 20221109.0 :esphomepr:`4006` by :ghuser:`jesserockz`
- Add support for parameters in scripts :esphomepr:`3538` by :ghuser:`jimtng`
- Update set-output to use new GITHUB_OUTPUT :esphomepr:`4008` by :ghuser:`jesserockz`
- Add cover toggle support to current based cover :esphomepr:`3950` by :ghuser:`maringeph`
- Add option for dashboard command to only generate the project and supporting files :esphomepr:`3981` by :ghuser:`jesserockz`
- Fix local webserver based on esphome/esphome-webserver#17 :esphomepr:`3958` by :ghuser:`RoboMagus`
- fix to_lower filter :esphomepr:`4015` by :ghuser:`ssieb`
- Mark webserver and captive portal as not available on rp2040 :esphomepr:`4023` by :ghuser:`jesserockz`
- Fix time components on rp2040 :esphomepr:`4024` by :ghuser:`jesserockz`
- Mark mqtt as unavailable on rp2040 :esphomepr:`4025` by :ghuser:`jesserockz`
- Update_interval less that 1 second in QMC5883L integration :esphomepr:`4031` by :ghuser:`2mikrobi`
- Always save user wifi credentials if non in config :esphomepr:`4036` by :ghuser:`jesserockz`
- bump nginx-light 1.18.0-6.1+deb11u2 to 1.18.0-6.1+deb11u3 :esphomepr:`4034` by :ghuser:`johnmoxley`

Past Changelogs
---------------

- :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`
