ESPHome 2022.1.0 - 19th January 2022
====================================

.. seo::
    :description: Changelog for ESPHome 2022.1.0.
    :image: /_static/changelog-2022.1.0.png
    :author: ESPHome
    :author_twitter: @esphome_

.. imgtable::
    :columns: 4

    BL0940, components/sensor/bl0940, bl0940.png
    BMP388 and BMP390, components/sensor/bmp3xx, bmp388.jpg
    CD74HC4067, components/sensor/cd74hc4067, cd74hc4067.jpg
    ESP32 Native CAN Bus, components/canbus, canbus.svg
    Growatt Solar, components/sensor/growatt_solar, growatt.jpg
    INA260, components/sensor/ina260, ina260.jpg
    Inkplate 10, components/display/inkplate6, inkplate6.jpg
    Kalman Combinator, components/sensor/kalman_combinator, function.svg
    MCP3204, components/sensor/mcp3204, mcp3204.jpg
    MCP47A1, components/output/mcp47a1, mcp47a1.svg
    Midea IR Climate, components/climate/ir_climate, air-conditioner-ir.svg
    Safe Mode Button, components/button/safe_mode, restart-alert.svg
    Shutdown Button, components/button/shutdown, power_settings.svg
    Tuya Number, components/number/tuya, tuya.png


HAPPY NEW YEAR!!


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

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

- Support different run duration for non-timer wakeup :esphomepr:`2861` by :ghuser:`jhamhader` (new-feature)
- Add light.on_state trigger :esphomepr:`2868` by :ghuser:`tony-fav` (new-feature)
- Support inkplate10 :esphomepr:`2937` by :ghuser:`jesserockz` (new-feature)

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

- Add growatt modbus sensor :esphomepr:`2922` by :ghuser:`leeuwte` (new-integration)
- Add Tuya Number support :esphomepr:`2765` by :ghuser:`frankiboy1` (new-integration)
- Add shutdown and safe_mode button :esphomepr:`2918` by :ghuser:`jsuanet` (new-integration)
- INA260 Current and Power Sensor support :esphomepr:`2788` by :ghuser:`MrEditor97` (new-integration)
- Improve PSRAM support :esphomepr:`2884` by :ghuser:`oxan` (new-integration)
- Add bl0940 component used by e.g. tuya devices :esphomepr:`1904` by :ghuser:`tobias-` (new-integration)
- Add support for BMP388 / BMP 390 pressure and temperature sensor  :esphomepr:`2716` by :ghuser:`martgras` (new-integration)
- Add MCP47A1 DAC output :esphomepr:`3014` by :ghuser:`jesserockz` (new-integration)
- Create new kalman_combinator component :esphomepr:`2965` by :ghuser:`Cat-Ion` (new-integration)
- New Midea IR component, improvements and fixes :esphomepr:`2847` by :ghuser:`dudanov` (new-integration)
- MCP3204 4-channel 12-bit ADC component :esphomepr:`2895` by :ghuser:`rsumner` (new-integration)
- Add cd74hc4067 multiplexer :esphomepr:`2431` by :ghuser:`asoehlke` (new-integration)
- Native ESP32 CAN support :esphomepr:`1629` by :ghuser:`Sympatron` (new-integration)

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

- Modbus: use multiply for publishing number :esphomepr:`2916` by :ghuser:`martgras` (breaking-change)
- Upgrade ArduinoJson to 6.18.5 and migrate code :esphomepr:`2844` by :ghuser:`jesserockz` (breaking-change)

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

- Add factory to download name :esphomepr:`3040` by :ghuser:`balloob`
- Bump dashboard to 20220113.2 :esphomepr:`3041` by :ghuser:`balloob`

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

- Add a simple helper to remap values :esphomepr:`2850` by :ghuser:`jesserockz`
- Bump pylint from 2.12.1 to 2.12.2 :esphomepr:`2858` by :ghuser:`dependabot[bot]`
- Support different run duration for non-timer wakeup :esphomepr:`2861` by :ghuser:`jhamhader` (new-feature)
- Drop len parameter from parse_number() :esphomepr:`2883` by :ghuser:`oxan`
- Drop unused xSemaphoreWait define :esphomepr:`2888` by :ghuser:`oxan`
- Move i2c scan to setup :esphomepr:`2869` by :ghuser:`martgras`
- Introduce hex parsing & formatting helper functions  :esphomepr:`2882` by :ghuser:`oxan`
- Add light.on_state trigger :esphomepr:`2868` by :ghuser:`tony-fav` (new-feature)
- Reduce timing noise in duty_cycle :esphomepr:`2881` by :ghuser:`CarlosGS`
- Turn verbose a debug statement in bme280 :esphomepr:`2906` by :ghuser:`CarlosGS`
- Add reset_duration option for waveshare epaper HAT rev 2.1 :esphomepr:`1481` by :ghuser:`owenb321`
- Log the actual value in modbus number :esphomepr:`2901` by :ghuser:`jesserockz`
- Add gpio 12 to strapping pin list :esphomepr:`2902` by :ghuser:`martgras`
- Added access to ble_scan_result_evt_param as get_scan_result :esphomepr:`2854` by :ghuser:`myhomeiot`
- fix multi-line comment warning/error :esphomepr:`2891` by :ghuser:`martgras`
- Bump black from 21.11b1 to 21.12b0 :esphomepr:`2879` by :ghuser:`dependabot[bot]`
- Adding Pascal unit to constants :esphomepr:`2914` by :ghuser:`jddonovan`
- quantile filter support :esphomepr:`2900` by :ghuser:`konikvranik`
- ESP32 CAM add Automatic Exposure Control option :esphomepr:`2892` by :ghuser:`sveip`
- Modbus: use multiply for publishing number :esphomepr:`2916` by :ghuser:`martgras` (breaking-change)
- Add growatt modbus sensor :esphomepr:`2922` by :ghuser:`leeuwte` (new-integration)
- Add Tuya Number support :esphomepr:`2765` by :ghuser:`frankiboy1` (new-integration)
- Support inverted tm1637 display :esphomepr:`2878` by :ghuser:`jlsjonas`
- Fix tm1637 bootloop :esphomepr:`2929` by :ghuser:`jlsjonas`
- Add shutdown and safe_mode button :esphomepr:`2918` by :ghuser:`jsuanet` (new-integration)
- Support inkplate10 :esphomepr:`2937` by :ghuser:`jesserockz` (new-feature)
- bang_bang: respect set cool- and heat-only modes :esphomepr:`2926` by :ghuser:`sairon`
- Update curl package version in docker :esphomepr:`2939` by :ghuser:`jesserockz`
- Change HDC1080 init instruction failure from error to warning :esphomepr:`2927` by :ghuser:`grob6000`
- Add option to load docker image when building :esphomepr:`2938` by :ghuser:`jesserockz`
- Disable nightly dev build :esphomepr:`2943` by :ghuser:`jesserockz`
- Revert "Disable nightly dev build" :esphomepr:`2944` by :ghuser:`jesserockz`
- Remove Content-Length header from camera snapshot response :esphomepr:`2860` by :ghuser:`DotNetDann`
- ST7920 ESP32 fix :esphomepr:`2962` by :ghuser:`marsjan155`
- Fix switch log state if inverted :esphomepr:`2960` by :ghuser:`hobbyquaker`
- Add pin aliases for featheresp32-s2 :esphomepr:`2970` by :ghuser:`arunderwood`
- INA260 Current and Power Sensor support :esphomepr:`2788` by :ghuser:`MrEditor97` (new-integration)
- Upgrade ArduinoJson to 6.18.5 and migrate code :esphomepr:`2844` by :ghuser:`jesserockz` (breaking-change)
- Don't use pyproject.toml for esphome build :esphomepr:`2980` by :ghuser:`agners`
- Explicitly use overloaded begin() for I2C master initialization :esphomepr:`2978` by :ghuser:`agners`
- Use template path :esphomepr:`2961` by :ghuser:`balloob`
- Fix compile error for idf projects with ArduinoJson 6 :esphomepr:`2979` by :ghuser:`martgras`
- Modbus: fix response parsing error for coil write :esphomepr:`2986` by :ghuser:`martgras`
- Change unset ESPHOME_LOG_LEVEL fallback to NONE :esphomepr:`2982` by :ghuser:`dbuezas`
- Add SH1107_128x64 to the ssd1306 component :esphomepr:`2967` by :ghuser:`arunderwood`
- Add logging for some Nextion errors that didn't have any :esphomepr:`2957` by :ghuser:`masto`
- Fix HTTPRequestComponent::get_string return value :esphomepr:`2987` by :ghuser:`martgras`
- Improve PSRAM support :esphomepr:`2884` by :ghuser:`oxan` (new-integration)
- Support ISR based pulse counter on ESP32-C3 :esphomepr:`2983` by :ghuser:`agners`
- Use to_string() from STL when available :esphomepr:`2992` by :ghuser:`oxan`
- Set UTF-8 encoding and version for prometheus /metrics :esphomepr:`2993` by :ghuser:`MyIgel`
- Introduce bit_cast() backport :esphomepr:`2991` by :ghuser:`oxan`
- Apply --no-use-pep517 for docker images :esphomepr:`2985` by :ghuser:`jesserockz`
- Dont validate baud_rate for sim800l platform :esphomepr:`2945` by :ghuser:`jesserockz`
- Modbus: add binary output :esphomepr:`2931` by :ghuser:`martgras`
- Add bl0940 component used by e.g. tuya devices :esphomepr:`1904` by :ghuser:`tobias-` (new-integration)
- Honor user set values for col/row start for INITR_MINI_160X80. :esphomepr:`2976` by :ghuser:`gonzalop`
- Fix clang-tidy with multiple ESP32 toolchains installed :esphomepr:`2998` by :ghuser:`oxan`
- Set correct include_dir in platformio.ini  :esphomepr:`2999` by :ghuser:`oxan`
- SGP40 - Reduce delay in measurement :esphomepr:`2996` by :ghuser:`martgras`
- atc mithermometer: Add possibility to report signal strength :esphomepr:`3000` by :ghuser:`mknjc`
- Support clang-tidy for ESP32 variants :esphomepr:`3001` by :ghuser:`oxan`
- Fix SlowPWM output switch at the end of period :esphomepr:`2984` by :ghuser:`Chupaka`
- Add support for BMP388 / BMP 390 pressure and temperature sensor  :esphomepr:`2716` by :ghuser:`martgras` (new-integration)
- Clean-up reverse_bits helpers :esphomepr:`3011` by :ghuser:`oxan`
- Convert clamp() helper to backport of std::clamp() :esphomepr:`3010` by :ghuser:`oxan`
- Introduce str_lower_case() and str_upper_case() helpers :esphomepr:`3008` by :ghuser:`oxan`
- Drop uint{32,64}_to_string() helper functions :esphomepr:`3009` by :ghuser:`oxan`
- Bump PlatformIO to 5.2.4 and zeroconf to 0.37.0 :esphomepr:`3007` by :ghuser:`oxan`
- Offset bugfix in Modbus Text Sensor :esphomepr:`3006` by :ghuser:`stegm`
- Add MCP47A1 DAC output :esphomepr:`3014` by :ghuser:`jesserockz` (new-integration)
- Bump docker dependencies :esphomepr:`3019` by :ghuser:`OttoWinter`
- Fix register ranges in modbus controller :esphomepr:`2981` by :ghuser:`stegm`
- Add restore_mode to output switch :esphomepr:`3016` by :ghuser:`joshuaspence`
- Add turn_on/off trigger to slow_pwm :esphomepr:`2921` by :ghuser:`martgras`
- Convert is_callable to a backport of std::is_invocable :esphomepr:`3023` by :ghuser:`oxan`
- Create new kalman_combinator component :esphomepr:`2965` by :ghuser:`Cat-Ion` (new-integration)
- New Midea IR component, improvements and fixes :esphomepr:`2847` by :ghuser:`dudanov` (new-integration)
- Extend esp32_camera with requester to improve performance :esphomepr:`2813` by :ghuser:`ayufan`
- MCP3204 4-channel 12-bit ADC component :esphomepr:`2895` by :ghuser:`rsumner` (new-integration)
- Adding sdm_meter ability to report total power :esphomepr:`2959` by :ghuser:`MiKuBB`
- [Modbus_controller] Fix binary sensor lambda :esphomepr:`3020` by :ghuser:`martgras`
-  Clean-up random helper functions  :esphomepr:`3022` by :ghuser:`oxan`
- Fix display picture for nextion display :esphomepr:`3018` by :ghuser:`lhoracek`
- Fix heatpumpir codegen min/max temperatures :esphomepr:`3025` by :ghuser:`jeffborg`
- Add an action for pzemac to reset the total energy :esphomepr:`2480` by :ghuser:`nuttytree`
- Nexa 433MHz RF protocol :esphomepr:`2037` by :ghuser:`GruffyPuffy`
- Deprecate virtual methods to set entity properties :esphomepr:`3021` by :ghuser:`oxan`
- Run post scripts for factory binaries for flashing :esphomepr:`3003` by :ghuser:`jesserockz`
- Add cd74hc4067 multiplexer :esphomepr:`2431` by :ghuser:`asoehlke` (new-integration)
- Native ESP32 CAN support :esphomepr:`1629` by :ghuser:`Sympatron` (new-integration)
- [Modbus_controller] Fix duplicate cmd check :esphomepr:`3031` by :ghuser:`martgras`
- Introduce big- and little-endian integer types :esphomepr:`2997` by :ghuser:`oxan`
- Generate basic config for esphome-web devices :esphomepr:`3036` by :ghuser:`jesserockz`
- Bump esphome-dashboard to 20220113.1 :esphomepr:`3038` by :ghuser:`jesserockz`

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

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