Updates and changelog

This commit is contained in:
Otto Winter 2019-02-22 21:17:31 +01:00
parent aa8bf64f91
commit 81b578a931
No known key found for this signature in database
GPG Key ID: DB66C0BE6013F97E
9 changed files with 185 additions and 23 deletions

View File

@ -13,20 +13,25 @@ Changelog - Version 1.11.0
Home Assistant Binary Sensor, components/binary_sensor/homeassistant, home-assistant.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
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
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>`__
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/>`__,
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
----------------------------
@ -34,26 +39,74 @@ Installation Methods Changed
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>`__,
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
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
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
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
----------------
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:
----------------------
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
----------

View File

@ -348,6 +348,75 @@ And then later in code:
// Draw the image my_image at position [x=0,y=0]
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
--------

View File

@ -5,11 +5,6 @@ Nextion TFT LCD Display
:description: Instructions for setting up Nextion TFT LCD displays
: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/>`__,
`iTead <https://www.itead.cc/display/nextion.html>`__)
with ESPHome.

View File

@ -59,6 +59,7 @@ Configuration variables:
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
See :ref:`display-engine` for more information.
- **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.
See Also

View File

@ -62,6 +62,7 @@ Configuration variables:
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
See :ref:`display-engine` for more information.
- **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
to use multiple SPI buses.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.

View File

@ -90,6 +90,7 @@ Configuration variables:
- **lambda** (*Optional*, :ref:`lambda <config-lambda>`): The lambda to use for rendering the content on the display.
See :ref:`display-engine` for more information.
- **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
to use multiple SPI buses.
- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation.

View File

@ -6,11 +6,6 @@ Ethernet Component
:image: ethernet.png
: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.
Ethernet for ESP8266 is not supported.

View File

@ -5,11 +5,6 @@ PMSX003 Particulate Matter Sensor
:description: Instructions for setting up PMSX003 Particulate matter sensors
: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
(`datasheet <http://www.aqmd.gov/docs/default-source/aq-spec/resources-page/plantower-pms5003-manual_v2-3.pdf>`__)
sensors with ESPHome.

View File

@ -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
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
---------