diff --git a/_static/changelog-1.14.0.png b/_static/changelog-1.14.0.png new file mode 100644 index 000000000..cbf8ae3cb Binary files /dev/null and b/_static/changelog-1.14.0.png differ diff --git a/changelog/images/github-1000-stars.png b/changelog/images/github-1000-stars.png new file mode 100644 index 000000000..91082c214 Binary files /dev/null and b/changelog/images/github-1000-stars.png differ diff --git a/changelog/images/vscode-validation.png b/changelog/images/vscode-validation.png new file mode 100644 index 000000000..affb2cdce Binary files /dev/null and b/changelog/images/vscode-validation.png differ diff --git a/changelog/v1.14.0.rst b/changelog/v1.14.0.rst index 4deedb8a4..2860538b2 100644 --- a/changelog/v1.14.0.rst +++ b/changelog/v1.14.0.rst @@ -1,5 +1,5 @@ -Changelog - Version 1.14.0 - TBD Update Date -============================================ +Changelog - Version 1.14.0 - November 1 +======================================= .. seo:: :description: Changelog for ESPHome version 1.14.0. @@ -10,34 +10,161 @@ Changelog - Version 1.14.0 - TBD Update Date .. imgtable:: :columns: 5 - ADE7953, components/sensor/ade7953, ade7953.svg - ATM90E32, components/sensor/atm90e32, atm90e32.jpg + Captive Portal, components/captive_portal, wifi-strength-alert-outline.svg + Visual Studio Code Plugin, https://marketplace.visualstudio.com/items?itemName=ESPHome.esphome-vscode, visual-studio-code.svg + SIM800L, components/sim800l, sim800l.jpg + DFPlayer, components/dfplayer, dfplayer.svg AS3935, components/sensor/as3935, as3935.jpg + + ATM90E32, components/sensor/atm90e32, atm90e32.jpg PZEM004T, components/sensor/pzem004t, pzem004t.svg PZEM AC, components/sensor/pzemac, pzemac.svg PZEM DC, components/sensor/pzemdc, pzemdc.svg + ADE7953, components/sensor/ade7953, ade7953.svg + SenseAir, components/sensor/senseair, senseair_s8.jpg SCD30, components/sensor/scd30, scd30.jpg SHTCx, components/sensor/shtcx, shtc3.jpg STS3X, components/sensor/sts3x, sts3x.jpg SGP30, components/sensor/sgp30, sgp30.jpg + Tx20, components/sensor/tx20, tx20.jpg VL53L0x, components/sensor/vl53l0x, vl53l0x.svg Xiaomi CGG1, components/sensor/xiaomi_cgg1, xiaomi_cgg1.jpg Xiaomi LYWSD02, components/sensor/xiaomi_lywsd02, xiaomi_lywsd02.jpg - Xiaomi LYWSDCGQ, components/sensor/xiaomi_lywsdcgq, xiaomi_lywsdcgq.jpg ZyAura, components/sensor/zyaura, zgm053.jpg + TLC59208F, components/output/tlc59208f, tlc59208f.jpg SM16716, components/output/sm16716, sm16716.svg Tuya Dimmer, components/light/tuya, brightness-medium.svg SSD1325, components/display/ssd1325, ssd1325.jpg Yashima IR Remote, components/climate/yashima, air-conditioner.svg + MCP23008 I/O Expander, components/mcp230xx, mcp230xx.svg SX1509 I/O Expander, components/sx1509, sx1509.jpg - SIM800L, components/sim800l, sim800l.jpg - DFPlayer, components/dfplayer, dfplayer.svg - Captive Portal, components/captive_portal, wifi-strength-alert-outline.svg - Visual Studio Code Plugin, TODO, visual-studio-code.svg + +So... it's been a while since the last release... + +But today - november 1 - the wait has finally ended! We're proud to announce ESPHome 1.14, +a release with the most features additions to date thanks to a ton of contributors! + +Captive Portal +************** + +First, we've heard your feedback in the feature request tracker. One of the highest requested +features has been to add a WiFi captive portal (also called "WiFiManager") capability to ESPHome. + +.. figure:: /components/images/captive_portal-ui.png + :align: center + :width: 60.0% + +With the new :doc:`captive portal ` component you can set up a fallback +WiFi hotspot that gets created if the ESP fails to connect to the WiFi network. If you're creating +a new device this is automatically enabled. To add this feature existing devices check out the +:doc:`captive portal example `. + +VSCode Plugin & New Integrations +******************************** + +:ghuser:`glmnet` has been very active in the ESPHome community - he not only managed a ton +of bug reports and feature requests, he also implemented some very interesting features: + +- ESPHome now has a working VSCode plugin with live config validation support! + Check out the `ESPHome plugin on the VSCode marketplace `__. +- The new :doc:`SIM800L integration ` lets you send SMS and + with :doc:`DF-Player ` you can play some music from your ESP 🎵 + +.. figure:: images/vscode-validation.png + :align: center + :width: 60.0% + +Thank you :ghuser:`glmnet` for your work! + +New Sensors +*********** + +As you can see in the grid at the top of this page, there's been no shortage of sensors either! +There are all kinds of new sensor types here: from :doc:`lightning detectors ⚡️ `, +the laser distance measuring :doc:`vl53l0x ` to various environmental +sensors (thanks :ghuser:`TheEggi`, :ghuser:`valordk`!). + +In list of supported power measuring chips has grown a lot with the 3-channel :doc:`ATM90E32 `, +various PZEM-004Ts and the power monitoring chip in the :doc:`Shelly 2.5 ` +(thanks :ghuser:`thompsa`` :ghuser:`tsunglung`!). + +Of course there's a lot more features in this release that didn't fit here anymore. +Just to name a few: new Xiaomi BLE devices are supported, the +:doc:`Tuya MCU protocol ` (thanks :ghuser:`ssieb` and :ghuser:`brandond`!) has been added and major +architectural parts of the ESPHome native API have changed to allow for faster +development. + +Oh, and before we forget: ESPHome has reached 1.000 stars on GitHub! + +.. figure:: images/github-1000-stars.png + :align: center + :width: 75.0% + +As always, thanks to all contributors, bug reporters and patrons! Without you this would not +be possible! + +Breaking Changes +---------------- + +- We have deprecated support for Python 2 installs. 1.14.x will still work with Python 2, + but will print a warning. Starting with 1.15.0, ESPHome will require at least Python 3.6. + Note: The Docker/Hass.io addon images already use Python 3 (:esphomepr:`784`, :esphomepr:`774`). + +- The ``xiaomi_`` BLE platforms have been renamed to match their model numbers (:esphomepr:`755`). + + - ``xiaomi_mijia`` -> :doc:`xiaomi_lywsdcgq ` + - ``xiaomi_miflora`` -> :doc:`xiaomi_hhccjcy01 ` + +- As part of the addition of the captive portal component, the default ``reboot_timeout`` for + ``wifi`` has been increased to 15 minutes from the previous 5 minutes (:esphomepr:`624`). + +Notable Changes & New Features +------------------------------ + +- Dashboard Interface: Add an "Update all" button (:esphomepr:`615`). +- Uploads over USB are now about 4 times faster (:esphomepr:`761`). +- `ESPHome-Flasher v1.2.0 `__ has been + released with fixes for ESP32s and faster uploads. +- All :doc:`native API ` communication stubs are now automatically + generated using automated scripts. This is a big step towards making the API more flexible, for + example cross-device communication (:esphomepr:`633`). +- :ref:`Sensors ` have a new ``force_update`` option (:esphomepr:`783`). +- Add GPIO Switch :ref:`interlock_wait_time ` (:esphomepr:`777`). +- Add a configurable priority for WiFi network selection (:esphomepr:`658`, :doc:`docs `). +- Add :ref:`script.wait ` action (:esphomepr:`778`). +- Dashboard Interface: Add an interface for editing ``secrets.yaml`` (:esphomepr:`672` by :ghuser:`Anonym-tsk`). +- Dashboard Interface: Authorization by username and password for non-Hass.io installs + (:esphomepr:`668` by :ghuser:`Anonym-tsk`). +- Dashboard Interface: The material icons font is now shipped with ESPHome + (:esphomepr:`703` by :ghuser:`Anonym-tsk`). +- Add :ref:`output.ledc.set_frequency ` action (:esphomepr:`754`). +- Changing from an effect to a static color for addressable light now + has per-LED transitions (:esphomepr:`750`). +- Add :ref:`rotary_encoder.set_value ` action (:esphomepr:`747`). +- You can now specify per-device descriptions in the dashboard interface + (:esphomepr:`707` by :ghuser:`Anonym-tsk`, :doc:`docs `). +- The :doc:`SPI bus ` now sends data over the hardware SPI bus if possible. + This can result in significant speedups for displays (:esphomepr:`623`). +- Add ``delayed_on_off`` binary_sensor filter (:esphomepr:`700` by :ghuser:`kepten`, + :ref:`docs `). +- Implement ``median`` sensor filter (:esphomepr:`697` by :ghuser:`jvanderneutstulen`, + :ref:`docs `). +- A function scheduler now handles all of ESPHome's timeout/interval calls, replacing the + previous per-component implementation (:esphomepr:`609`). +- Add support for calibrating MH-Z19 sensors (:esphomepr:`683` by :ghuser:`Anonym-tsk`, :doc:`docs `). +- Add BLE scan parameters for improving BLE detection percentage + (:esphomepr:`769`, :doc:`docs `). +- Add configurable ignore bits to rc_switch_raw codes (:esphomepr:`650` by :ghuser:`mtl010957`, + :doc:`docs `). +- Add IR receiver support for coolix climate devices (:esphomepr:`645` by :ghuser:`glmnet`, :doc:`docs `). +- Add :ref:`calibrate_polynomial ` sensor filter (:esphomepr:`642`). +- Allow setting the initial mode of HLW8012 sensors (:esphomepr:`611` by :ghuser:`brandond`, :doc:`docs `). +- Add tilt actions to :doc:`template cover ` (:esphomepr:`577` by :ghuser:`mtl010957`). +- Add backlight handling for lcd_pcf8574 (:esphomepr:`573` by :ghuser:`adarazs`, :doc:`docs `). All changes ----------- diff --git a/components/output/ledc.rst b/components/output/ledc.rst index d8b23d65b..ed7c10f5d 100644 --- a/components/output/ledc.rst +++ b/components/output/ledc.rst @@ -43,6 +43,27 @@ Advanced options: channel `__ to use. Two adjacent channels share the same timer. Defaults to an automatic selection. +.. _output-ledc-set_frequency_action: + +``output.ledc.set_frequency`` Action +------------------------------------ + +This :ref:`Action ` allows you to manually change the frequency of an LEDC +channel at runtime. Use cases include controlling a passive buzzer (for pitch control). + +.. code-block:: yaml + + on_...: + - output.ledc.set_frequency: + id: ledc_output + frequency: 100Hz + +Configuration variables: + +- **id** (**Required**, :ref:`config-id`): The ID of the LEDC output to change. +- **frequency** (**Required**, :ref:`templatable `, float): The frequency + to set in hertz. + See Also -------- diff --git a/components/sensor/index.rst b/components/sensor/index.rst index 15599a80a..0b88d9908 100644 --- a/components/sensor/index.rst +++ b/components/sensor/index.rst @@ -171,6 +171,8 @@ The arguments are a list of data points, each in the form ``MEASURED -> TRUTH``. then fit a linear equation to the values (using least squares). So you need to supply at least two values. +.. _sensor-calibrate_polynomial: + ``calibrate_polynomial`` ************************ diff --git a/components/sensor/rotary_encoder.rst b/components/sensor/rotary_encoder.rst index e44060644..f3ff07e27 100644 --- a/components/sensor/rotary_encoder.rst +++ b/components/sensor/rotary_encoder.rst @@ -61,6 +61,8 @@ Configuration variables: the knob further will not increase the number. Defaults to no maximum. - All other options from :ref:`Sensor `. +.. _sensor-rotary_encoder-set_value_action: + ``sensor.rotary_encoder.set_value`` Action ------------------------------------------ diff --git a/components/wifi.rst b/components/wifi.rst index fafb4e1f6..69f0af536 100644 --- a/components/wifi.rst +++ b/components/wifi.rst @@ -171,6 +171,9 @@ Configuration variables: This can be used to further restrict which networks to connect to. - **hidden** (*Optional*, boolean): Whether this network is hidden. Defaults to false. If you add this option you also have to specify ssid. +- **priority** (*Optional*, float): The priority of this network. After each time, the network with + the highest priority is chosen. If the connection fails, the priority is decreased by one. + Defaults to ``0``. .. _wifi-connected_condition: diff --git a/github.py b/github.py index df18d5233..60f5633c3 100644 --- a/github.py +++ b/github.py @@ -120,10 +120,13 @@ class ImageTableDirective(Table): continue name, page, image = row link = page.strip() - if not link.startswith('http') and not link.startswith('/'): - link = '/{}'.format(link) - if '.html' not in link: - link += '.html' + if link.startswith('http'): + pass + else: + if not link.startswith('/'): + link = '/{}'.format(link) + if '.html' not in link: + link += '.html' items.append({ 'name': name.strip(), 'link': link, diff --git a/guides/automations.rst b/guides/automations.rst index ba8394ff4..b3da766cc 100644 --- a/guides/automations.rst +++ b/guides/automations.rst @@ -360,12 +360,13 @@ All Actions - :ref:`globals.set ` - :ref:`remote_transmitter.transmit_* ` - :ref:`climate.control ` -- :ref:`output.esp8266_pwm.set_frequency ` +- :ref:`output.esp8266_pwm.set_frequency ` / :ref:`output.ledc.set_frequency ` - :ref:`sensor.integration.reset ` - :ref:`display.page.show_* ` - :ref:`uart.write ` - :ref:`sim800l.send_sms ` - :ref:`mhz19.calibrate_zero ` / :ref:`mhz19.abc_enable ` / :ref:`mhz19.abc_disable ` +- :ref:`sensor.rotary_encoder.set_value ` .. _config-condition: diff --git a/svg2png/air-conditioner-ir.png b/svg2png/air-conditioner-ir.png new file mode 100644 index 000000000..5c183ef76 Binary files /dev/null and b/svg2png/air-conditioner-ir.png differ diff --git a/svg2png/arduino_logo.png b/svg2png/arduino_logo.png new file mode 100644 index 000000000..6887d8c07 Binary files /dev/null and b/svg2png/arduino_logo.png differ diff --git a/svg2png/visual-studio-code.png b/svg2png/visual-studio-code.png new file mode 100644 index 000000000..395cd150b Binary files /dev/null and b/svg2png/visual-studio-code.png differ