mirror of
https://github.com/esphome/esphome-docs.git
synced 2025-01-22 21:41:39 +01:00
Updates and changelog
This commit is contained in:
parent
aa8bf64f91
commit
81b578a931
@ -13,20 +13,25 @@ Changelog - Version 1.11.0
|
|||||||
Home Assistant Binary Sensor, components/binary_sensor/homeassistant, home-assistant.svg
|
Home Assistant Binary Sensor, components/binary_sensor/homeassistant, home-assistant.svg
|
||||||
Light Partition, components/light/partition, color_lens.svg
|
Light Partition, components/light/partition, color_lens.svg
|
||||||
|
|
||||||
|
Release 1.11.0 is here, and it has been a busy few weeks :)
|
||||||
|
|
||||||
|
First of all, thank you all for the amazing support on discord, twitter, twitch, etc.
|
||||||
|
Seeing how much people can accomplish with this tool is really inspiring!
|
||||||
|
|
||||||
TODO, intro; camera support deferred :(, but hopefully ready soon; faster release schedule
|
TODO, intro; camera support deferred :(, but hopefully ready soon; faster release schedule
|
||||||
|
|
||||||
ESPHome Rename Completed
|
ESPHome Rename Completed
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
Back in 1.10.0, I decided to rename the project from esphomelib to ESPHome. This release
|
Back in 1.10.0, it was decided to rename the project from esphomelib to ESPHome. This release
|
||||||
has seen **massive** refactors to allow this rename. Literally thousands of files had
|
has seen **massive** refactors to allow this rename. Literally thousands of files had
|
||||||
to be changed, often with lots of manual action required. Now a rename might not seem
|
to be changed, often with lots of manual action required. Now a rename might not seem
|
||||||
too exciting for the user, but consider this: Lots of ancient code got revised and cleaned up,
|
too exciting for you the user, but consider this: Lots of ancient code got revised and cleaned up,
|
||||||
the ESPHome source got moved to a `dedicated Github Organization <https://github.com/esphome>`__
|
the ESPHome source got moved to a `dedicated Github Organization <https://github.com/esphome>`__
|
||||||
and many other organizational changes were made which will enable faster feature development.
|
and many other organizational changes were made which will enable faster feature development.
|
||||||
|
|
||||||
As an example, ESPHome's documentation now gets built and served by `Netlify <https://www.netlify.com/>`__,
|
As an example, ESPHome's documentation now gets built and served by `Netlify <https://www.netlify.com/>`__,
|
||||||
so all documentation contributions will now get a preview of the changes on a deploy website.
|
so all documentation contributions will now get a preview of the changes on a preview website.
|
||||||
|
|
||||||
Installation Methods Changed
|
Installation Methods Changed
|
||||||
----------------------------
|
----------------------------
|
||||||
@ -34,26 +39,74 @@ Installation Methods Changed
|
|||||||
Because of this rename, ESPHome's installation methods have also changed (breaking change!).
|
Because of this rename, ESPHome's installation methods have also changed (breaking change!).
|
||||||
|
|
||||||
- **Hass.io**: The Hass.io addon repository has moved to `https://github.com/esphome/hassio <https://github.com/esphome/hassio>`__,
|
- **Hass.io**: The Hass.io addon repository has moved to `https://github.com/esphome/hassio <https://github.com/esphome/hassio>`__,
|
||||||
please remove the old addon repository and add the new repository. During beta period, install beta version of addon.
|
please remove the old addon repository and add the new repository.
|
||||||
|
|
||||||
- **pip-based installs**: The new installation command is ``pip2 install esphome`` and
|
- **pip-based installs**: The new installation command is ``pip2 install esphome`` and
|
||||||
the ``esphomeyaml`` command now is called ``esphome``. Or ``pip2 install --pre esphome`` during beta period.
|
the ``esphomeyaml`` command now is called ``esphome``.
|
||||||
|
|
||||||
- **docker-based installs**: The docker image has moved to ``esphome/esphome``. So now you need
|
- **docker-based installs**: The docker image has moved to ``esphome/esphome``. So now you need
|
||||||
to use ``docker run --rm -it esphome/esphome livingroom.yaml run``. Or ``docker run --rm -it esphome/esphome:beta ...`` during beta period
|
to use ``docker run --rm -it esphome/esphome livingroom.yaml run``. The dashboard view
|
||||||
|
now uses mDNS to show online/offline status of ESPs, so you need to add ``--net=host`` for
|
||||||
|
that to work.
|
||||||
|
|
||||||
All old installation methods will no longer receive updates (and potentially be removed
|
All old installation methods will no longer receive updates (and potentially be removed
|
||||||
in the future).
|
in the future).
|
||||||
|
|
||||||
|
Local mDNS Responder
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Up until now, many users had to set static IPs for all ESP nodes in order to be able to connect to
|
||||||
|
them. That was not a good user experience and this project is committed to providing the best
|
||||||
|
possible user experience. So now ESPHome bundles its own mDNS responder so static IPs are no
|
||||||
|
longer necessary (ref: :esphomepr:`386`)! 🎉
|
||||||
|
|
||||||
|
|
||||||
|
Faster Release Cycle
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
One of the big things that needs to be changed with this project is the release cycle.
|
||||||
|
For one thing there's all contributions by you the users that potentially have to wait
|
||||||
|
before users can use it. But it also makes releasing small tweaks or fixes much more difficult.
|
||||||
|
|
||||||
|
I know I've said this before, but I want to move ESPHome to a quicker and more regular release
|
||||||
|
interval. As a start, I've set my personal due date for the next release to be in two weeks.
|
||||||
|
Going forward, I want to have a regular release interval of 3 weeks (remind me of this if I forget :)
|
||||||
|
|
||||||
|
Also, you might have seen me post a picture of an ESP32 camera integration for ESPHome. Don't worry,
|
||||||
|
I've made that a top priority for the next release, but I've hit some road blocks that would have
|
||||||
|
prevented it from working in a stable way for this release (and I needed to finally get this darn
|
||||||
|
release out).
|
||||||
|
|
||||||
Breaking Changes
|
Breaking Changes
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
TODO: Copy breaking changes from PR descriptions
|
- Template Switches no longer restore their state by default :corepr:`503`
|
||||||
|
- Removed heartbeat filter from binary sensors :corepr:`454`
|
||||||
|
- ``optimistic`` mode for template platforms has been split off into ``optimistic`` and
|
||||||
|
``assumed_state`` options :corepr:`455`
|
||||||
|
- ``run_cycles`` has been removed from deep_sleep :esphome:`353`
|
||||||
|
|
||||||
Other notable changes:
|
Other notable changes:
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
TODO
|
- Added GPIO Switch interlocking :corepr:`482`
|
||||||
|
- Added light partition platform which allows you to split an addressable light into partitions
|
||||||
|
and combine them :corepr:`501`
|
||||||
|
- Added ``wait_until`` action :corepr:`508`
|
||||||
|
- Added template publish actions, which allow you to manually push a state to a template
|
||||||
|
platform :corepr:`453`
|
||||||
|
- Added support for SI7021 sensors (found in Sonoff TH modules) :esphomepr:`375`
|
||||||
|
- MQTT is no longer compiled into firmwares that do no use it, should save a bit of space
|
||||||
|
:corepr:`430`, :corepr:`409`
|
||||||
|
- Added ``use_address`` option to ``wifi:`` which overrides the address ESPHome connects to :corepr:`484`
|
||||||
|
- Added display pages, which allow you to have a display that periodically switches between
|
||||||
|
different pages of content :corepr:`507`
|
||||||
|
- Added two new IR codecs: IR5 and JVC :corepr:`502`, :corepr:`493`
|
||||||
|
- Added option to use alternative hardware UART interfaces for logging :corepr:`483`
|
||||||
|
- All log strings are stored in flash now, so that saves a few kb of IRAM on ESP8266s :corepr:`432`
|
||||||
|
- Fixed ESP8266s with CSE7766 rebooting often
|
||||||
|
- Fixed using MQTT and native API at the same time
|
||||||
|
- Personal information is now automatically redacted from dashboard logs :corepr:`488`
|
||||||
|
|
||||||
Beta Fixes
|
Beta Fixes
|
||||||
----------
|
----------
|
||||||
|
@ -348,6 +348,75 @@ And then later in code:
|
|||||||
// Draw the image my_image at position [x=0,y=0]
|
// Draw the image my_image at position [x=0,y=0]
|
||||||
it.image(0, 0, id(my_image));
|
it.image(0, 0, id(my_image));
|
||||||
|
|
||||||
|
.. _display-pages:
|
||||||
|
|
||||||
|
Display Pages
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Certain display types also allow you to show "pages". With pages you can create drawing lambdas
|
||||||
|
that you can switch between. For example with pages you can set up 3 screens, each with
|
||||||
|
different content, and switch between them on a timer.
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
display:
|
||||||
|
- platform: ...
|
||||||
|
# ...
|
||||||
|
id: my_display
|
||||||
|
pages:
|
||||||
|
- id: page1
|
||||||
|
lambda: |-
|
||||||
|
it.print(0, 10, id(my_font), "This is page 1!");
|
||||||
|
- id: page2
|
||||||
|
lambda: |-
|
||||||
|
it.print(0, 10, id(my_font), "This is page 2!");
|
||||||
|
|
||||||
|
You can then switch between these with three different actions:
|
||||||
|
|
||||||
|
**show_next** / **show_prev**: Shows the next or previous page, wraps around at the end.
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
on_...:
|
||||||
|
- display.page.show_next: my_display
|
||||||
|
- display.page.show_prev: my_display
|
||||||
|
|
||||||
|
# For example cycle through pages on a timer
|
||||||
|
interval:
|
||||||
|
- interval: 5s
|
||||||
|
then:
|
||||||
|
- display.page.show_next: my_display
|
||||||
|
- component.update: my_display
|
||||||
|
|
||||||
|
**display.page.show**: Show a specific page
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
on_...:
|
||||||
|
- display.page.show: page1
|
||||||
|
|
||||||
|
# Templated
|
||||||
|
- display.page.show: !lambda |-
|
||||||
|
if (id(my_binary_sensor).state) {
|
||||||
|
return id(page1);
|
||||||
|
} else {
|
||||||
|
return id(page2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
To trigger a redraw right after the page show use a :ref:`component.update <component-update_action>`
|
||||||
|
action:
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
# For example cycle through pages on a timer
|
||||||
|
interval:
|
||||||
|
- interval: 5s
|
||||||
|
then:
|
||||||
|
- display.page.show_next: my_display
|
||||||
|
- component.update: my_display
|
||||||
|
|
||||||
See Also
|
See Also
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
@ -5,11 +5,6 @@ Nextion TFT LCD Display
|
|||||||
:description: Instructions for setting up Nextion TFT LCD displays
|
:description: Instructions for setting up Nextion TFT LCD displays
|
||||||
:image: nextion.jpg
|
:image: nextion.jpg
|
||||||
|
|
||||||
.. warning::
|
|
||||||
|
|
||||||
This integration is experimental as I don't have the hardware to test it (yet).
|
|
||||||
If you can verify it works (or if it doesn't), notify me on `discord <https://discord.gg/KhAMKrd>`__.
|
|
||||||
|
|
||||||
The ``nextion`` display platform allows you to use Nextion LCD displays (`datasheet <https://nextion.itead.cc/resources/datasheets/>`__,
|
The ``nextion`` display platform allows you to use Nextion LCD displays (`datasheet <https://nextion.itead.cc/resources/datasheets/>`__,
|
||||||
`iTead <https://www.itead.cc/display/nextion.html>`__)
|
`iTead <https://www.itead.cc/display/nextion.html>`__)
|
||||||
with ESPHome.
|
with ESPHome.
|
||||||
|
@ -59,6 +59,7 @@ Configuration variables:
|
|||||||
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
||||||
See :ref:`display-engine` for more information.
|
See :ref:`display-engine` for more information.
|
||||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
||||||
|
- **pages** (*Optional*, list): Show pages instead of a single lambda. See :ref:`display-pages`.
|
||||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||||
|
|
||||||
See Also
|
See Also
|
||||||
|
@ -62,6 +62,7 @@ Configuration variables:
|
|||||||
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
||||||
See :ref:`display-engine` for more information.
|
See :ref:`display-engine` for more information.
|
||||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``5s``.
|
||||||
|
- **pages** (*Optional*, list): Show pages instead of a single lambda. See :ref:`display-pages`.
|
||||||
- **spi_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`SPI Component <spi>` if you want
|
- **spi_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`SPI Component <spi>` if you want
|
||||||
to use multiple SPI buses.
|
to use multiple SPI buses.
|
||||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||||
|
@ -90,6 +90,7 @@ Configuration variables:
|
|||||||
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
|
||||||
See :ref:`display-engine` for more information.
|
See :ref:`display-engine` for more information.
|
||||||
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``10s``.
|
- **update_interval** (*Optional*, :ref:`config-time`): The interval to re-draw the screen. Defaults to ``10s``.
|
||||||
|
- **pages** (*Optional*, list): Show pages instead of a single lambda. See :ref:`display-pages`.
|
||||||
- **spi_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`SPI Component <spi>` if you want
|
- **spi_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`SPI Component <spi>` if you want
|
||||||
to use multiple SPI buses.
|
to use multiple SPI buses.
|
||||||
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.
|
||||||
|
@ -6,11 +6,6 @@ Ethernet Component
|
|||||||
:image: ethernet.png
|
:image: ethernet.png
|
||||||
:keywords: Ethernet, ESP32
|
:keywords: Ethernet, ESP32
|
||||||
|
|
||||||
.. warning::
|
|
||||||
|
|
||||||
This integration is experimental as I don't have the hardware to test it (yet).
|
|
||||||
If you can verify it works (or if it doesn't), notify me on `discord <https://discord.gg/KhAMKrd>`__.
|
|
||||||
|
|
||||||
This core ESPHome component sets up ethernet connections for ESP32s.
|
This core ESPHome component sets up ethernet connections for ESP32s.
|
||||||
Ethernet for ESP8266 is not supported.
|
Ethernet for ESP8266 is not supported.
|
||||||
|
|
||||||
|
@ -5,11 +5,6 @@ PMSX003 Particulate Matter Sensor
|
|||||||
:description: Instructions for setting up PMSX003 Particulate matter sensors
|
:description: Instructions for setting up PMSX003 Particulate matter sensors
|
||||||
:image: pmsx003.png
|
:image: pmsx003.png
|
||||||
|
|
||||||
.. warning::
|
|
||||||
|
|
||||||
This integration is experimental as I don't have the hardware to test it (yet).
|
|
||||||
If you can verify it works (or if it doesn't), notify me on `discord <https://discord.gg/KhAMKrd>`__.
|
|
||||||
|
|
||||||
The ``pmsx003`` sensor platform allows you to use your PMS5003, PMS7003, ... particulate matter
|
The ``pmsx003`` sensor platform allows you to use your PMS5003, PMS7003, ... particulate matter
|
||||||
(`datasheet <http://www.aqmd.gov/docs/default-source/aq-spec/resources-page/plantower-pms5003-manual_v2-3.pdf>`__)
|
(`datasheet <http://www.aqmd.gov/docs/default-source/aq-spec/resources-page/plantower-pms5003-manual_v2-3.pdf>`__)
|
||||||
sensors with ESPHome.
|
sensors with ESPHome.
|
||||||
|
@ -200,6 +200,58 @@ Some steps that can help with the issue:
|
|||||||
- The issue seems to be happen with cheap boards more frequently. Especially the "cheap" NodeMCU
|
- The issue seems to be happen with cheap boards more frequently. Especially the "cheap" NodeMCU
|
||||||
boards from eBay sometimes have quite bad antennas.
|
boards from eBay sometimes have quite bad antennas.
|
||||||
|
|
||||||
|
Docker Reference
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Install versions:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
# Stable Release
|
||||||
|
docker pull esphome/esphome
|
||||||
|
# Beta
|
||||||
|
docker pull esphome/esphome:beta
|
||||||
|
# Dev version
|
||||||
|
docker pull esphome/esphome:dev
|
||||||
|
|
||||||
|
Command reference:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
# Start a new file wizard for file livingroom.yaml
|
||||||
|
docker run --rm -v "${PWD}":/config -it esphome/esphome livingroom.yaml wizard
|
||||||
|
|
||||||
|
# Compile and upload livingroom.yaml
|
||||||
|
docker run --rm -v "${PWD}":/config -it esphome/esphome livingroom.yaml run
|
||||||
|
|
||||||
|
# View logs
|
||||||
|
docker run --rm -v "${PWD}":/config -it esphome/esphome livingroom.yaml logs
|
||||||
|
|
||||||
|
# Map /dev/ttyUSB0 into container
|
||||||
|
docker run --rm -v "${PWD}":/config --device=/dev/ttyUSB0 -it esphome/esphome ...
|
||||||
|
|
||||||
|
# Start dashboard on port 6052
|
||||||
|
docker run --rm -v "${PWD}":/config --net=host -it esphome/esphome
|
||||||
|
|
||||||
|
And a docker compose file looks like this:
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
version: '3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
esphome:
|
||||||
|
image: esphome/esphome
|
||||||
|
volumes:
|
||||||
|
- ./:/config:rw
|
||||||
|
network_mode: host
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
ESPHome uses mDNS to show online/offline state in the dashboard view. So for that feature
|
||||||
|
to work you need to enable host networking mode
|
||||||
|
|
||||||
Donations
|
Donations
|
||||||
---------
|
---------
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user