249 lines
13 KiB
ReStructuredText
249 lines
13 KiB
ReStructuredText
Changelog - Version 1.10.0
|
|
==========================
|
|
|
|
.. seo::
|
|
:description: Changelog for esphomelib version 1.10.0.
|
|
:image: /_static/changelog-1.10.0.png
|
|
:author: Otto Winter
|
|
:author_twitter: @OttoWinter_
|
|
|
|
.. imgtable::
|
|
|
|
Native API, components/api, server-network.svg, dark-invert
|
|
Dashboard+Hass.io Add-On Updates, guides/getting_started_hassio, home-assistant.svg, dark-invert
|
|
Better Custom Components, components/sensor/custom, language-cpp.svg, dark-invert
|
|
|
|
APDS9960, components/sensor/apds9960, apds9960.jpg
|
|
MAX31855, components/sensor/max31855, max31855.jpg
|
|
ULN2003, components/stepper/index, stepper.svg
|
|
|
|
NeoPixelBus Light, components/light/neopixelbus, color_lens.svg, dark-invert
|
|
ESP32 Ethernet, components/ethernet, ethernet.svg, dark-invert
|
|
Home Assistant Sensor, components/sensor/homeassistant, home-assistant.svg, dark-invert
|
|
|
|
|
|
Native API
|
|
----------
|
|
|
|
This release brings with it lots of goodies, but most important is the :doc:`native API </components/api>`.
|
|
MQTT has been the only way this project communicated with Home Assistant for a while now. And MQTT is a great protocol
|
|
to get started, but it always had problems:
|
|
|
|
- Another service to install - Users would need to install an MQTT broker in order to get started.
|
|
- MQTT Discovery - Home Assistant's MQTT discovery has been great, but always had problems like retained messages etc.
|
|
- Inefficient - A typical MQTT message for sending a binary sensor state is about 70 bytes long, and the MQTT library
|
|
we used was quite inefficient with runtime memory allocation too.
|
|
|
|
So I decided to do something against that: ESPHome now features a native protocol (based on TCP+protocol buffers)
|
|
that addresses these issues and has a
|
|
`component on the Home Assistant <https://rc--home-assistant-docs.netlify.com/components/esphome/>`__
|
|
side too.
|
|
|
|
**Does this mean MQTT will be removed?**
|
|
|
|
No! MQTT is an awesome protocol with easy integration for many tools like Node-RED and custom MQTT clients.
|
|
This native API is only for replacing communications with Home Assistant, so *if* anything gets removed it's
|
|
MQTT auto discovery for Home Assistant. Of course both can be used together at the same time too.
|
|
|
|
**Should I switch to the native API immediately?**
|
|
|
|
You definitely can, but a word of warning first: The MQTT implementation has seen tons of fixes for small quirks
|
|
in how the ESP SDK works. From my own testing, the native API seems to be quite stable - but I'm sure it'll take a bit
|
|
of time to find+fix some final bugs.
|
|
|
|
**How do I migrate from MQTT?**
|
|
|
|
First, make sure you run at least Home Assistant 0.85.0 (currently a
|
|
`beta release <https://www.home-assistant.io/docs/installation/updating/#run-the-beta-version>`__).
|
|
Then, go through the migration guide here (removed).
|
|
|
|
Python 3 Compatibility
|
|
----------------------
|
|
|
|
PlatformIO has finally implemented `python 3 support <https://github.com/platformio/platformio-core/issues/895>`__
|
|
after some quick changes, ESPHome is now also compatible with python 3.5+. So with this new release
|
|
you can try ESPHome with Python 3 already. Just make sure to install the development version of platformio first:
|
|
|
|
.. code-block:: bash
|
|
|
|
pip3 install -U https://github.com/platformio/platformio-core/archive/develop.zip
|
|
|
|
I don't particularly like python 2, and in a year's time support for it will officially be ended. So the plan for
|
|
ESPHome is to drop python 2 as soon as possible. Once platformio releases version 4.0 (with python 3 support), I
|
|
will go through and check everything still works. Maybe ESPHome will support python 2 for 1 or 2 releases after that
|
|
but really I want to drop support for python 2 as soon as possible.
|
|
|
|
Dashboard & Hass.io Addon Updates
|
|
---------------------------------
|
|
|
|
The dashboard and Hass.io addon have seen a lot of ❤️ in this release: The dashboard has seen tons of small
|
|
changes to make the user experience better and the Hass.io addon has been completely re-written with the
|
|
`Hass.io Community Addon Images <https://github.com/hassio-addons>`__ as the base.
|
|
|
|
- The dashboard now features a built-in YAML editor.
|
|
- Configuration wizard now shows a list of boards directly, so you just have to choose them from a dropdown.
|
|
- Hass.io Addon: You can log in using your Home Assistant credentials now.
|
|
- And many more changes (colored logs, auto-scroll, node status, update notifications, ...)
|
|
|
|
Rename: esphome{lib, yaml} -> ESPHome
|
|
-------------------------------------
|
|
|
|
The name esphomelib and esphomeyaml were too technical, and this project has changed a lot since the first
|
|
published release (the yaml part didn't even exist back then). So ... the project is being re-branded slightly:
|
|
|
|
- esphomeyaml -> ESPHome
|
|
- esphomelib -> ESPHome Core
|
|
- esphomedocs -> ESPHome Docs
|
|
|
|
As you see, the yaml project is now getting the "fancy" name, because that's by far the best way to use this framework.
|
|
As part of this change, using the _core_ framework directly from code (without YAML) is being deprecated, the API docs
|
|
have long been inaccurate now and users should really switch over to ESPHome through YAML
|
|
|
|
Of course that doesn't mean you won't be able to write custom code. In fact, this release also contains lots of
|
|
new guides and changes to make creating custom components much easier. The goal is to have a project where users
|
|
can use YAML for the boring boilerplate code but can completely customize everything with custom components.
|
|
|
|
This migration is of course huge - almost every single file in the code+docs base has esphome{lib, yaml} somewhere
|
|
in it, so it will take time until the next release for this to be finished.
|
|
|
|
Breaking Changes
|
|
----------------
|
|
|
|
- Previously, esphomelib would by default only publish every 15th sensor value in order to provide averaged values.
|
|
However, that often confused users and I now decided to remove it **and** set the default update interval of
|
|
all components to ``60s`` instead of the previous ``15s``. You can get back the old behavior by setting
|
|
|
|
.. code-block:: yaml
|
|
|
|
sensor:
|
|
- platform: ... # enter platform here
|
|
# other settings
|
|
update_interval: 15s
|
|
filters:
|
|
- sliding_window_moving_average: {}
|
|
|
|
- The fastled effects have been renamed to ``addressable_`` for the new
|
|
:doc:`Neopixelbus </components/light/neopixelbus>` integration. See the validation error message
|
|
for more info.
|
|
|
|
Other notable changes:
|
|
----------------------
|
|
|
|
- You can now configured multiple WiFi networks to connect to. The best one will be chosen automatically.
|
|
This is along with a *complete* rewrite of the WiFi component which now interacts directly with the ESP SDK.
|
|
(:ref:`wifi-networks`)
|
|
- GPIO Switches have a new option ``restore_mode`` to configure how their values should be restored on boot.
|
|
(:doc:`/components/switch/gpio`)
|
|
- Added :doc:`/components/substitutions` to reduce repeating across configs.
|
|
- Validation error messages are now displayed even better. Now all errors are shown with the exact context
|
|
where the error appeared. Try it, it's so much better. Next step will be to upgrade to a better YAML reader
|
|
to provide better error messages when the YAML syntax is invalid.
|
|
- Added a bunch of guides (and helpers) for creating custom components. Also new: ``esphomeyaml.libraries``,
|
|
``esphomeyaml.includes`` and ``esphomeyaml.platformio_options`` (:doc:`/components/esphome`)
|
|
- Saved a lot of flash space on ESP8266 boards. Previously, platformio would allocate about 1/4 of flash for SPIFFS,
|
|
but esphomelib doesn't use that so now you have that as extra storage. Thanks `@brandond <http://github.com/brandond>`
|
|
- You can now use Home Assistant to get time in ESPHome, so no more need for SNTP. See :doc:`/components/time/index`.
|
|
|
|
Release 1.10.1 - January 13
|
|
---------------------------
|
|
|
|
- docs: Fix substitutions example & api intro text :docspr:`117` by :ghuser:`thubot`
|
|
- lib: Fix while action not resetting is_running :libpr:`378`
|
|
- lib: Fix remote transmitter ESP32 repeat wait :libpr:`376`
|
|
- lib: Fix addressable lights :libpr:`375`
|
|
- yaml: Fix ESP32 not decoding stacktrace on broken PC :yamlpr:`330`
|
|
- docs: Fixed missing link to BME cookbook :docspr:`120` by :ghuser:`Mynasru`
|
|
- lib: Fix addressable flicker effect :libpr:`383`
|
|
- lib: NeoPixelBus: fix handling of white color component :libpr:`384` by :ghuser:`badbadc0ffee`
|
|
- lib: Fix trigger not being optional :libpr:`381`
|
|
- docs: Add WiFi fast connect :docspr:`121`
|
|
- yaml: Fix AsyncTCP compilation on ESP32 with Arduino breaking change :yamlpr:`334`
|
|
- yaml: Fix show logs with MQTT and dashboard :yamlpr:`332`
|
|
- lib: Add WiFi fast connect mode :libpr:`385`
|
|
- lib: Fix API Server has deep sleep :libpr:`386`
|
|
- yaml: Introduce wifi fast connect mode :yamlpr:`333`
|
|
- lib: Fix GPIO Switch not handling inverted :libpr:`387`
|
|
- lib: Expose NeoPixelBus Controller :libpr:`388`
|
|
- yaml: Pin platformio platforms :yamlpr:`335`
|
|
- lib: Fix ble tracker compile error :libpr:`390`
|
|
|
|
All changes
|
|
-----------
|
|
|
|
- docs: CSE7766 Update Interval :docspr:`91`
|
|
- docs: add baud_rate; typo on sensor type :docspr:`90` by :ghuser:`drewp`
|
|
- docs: Fix docs for LCD display strftime :docspr:`95`
|
|
- lib: Make CSE7766 a polling sensor :libpr:`305`
|
|
- lib: Supply clang-format file for contributors :libpr:`290`
|
|
- yaml: Time SNTP validate server format :yamlpr:`254`
|
|
- yaml: Fix GPIO input schema validator :yamlpr:`253`
|
|
- lib: Implement custom sensor platform :libpr:`274`
|
|
- lib: Only compile code stuff if necessary :libpr:`309`
|
|
- yaml: [Huge] Util Refactor, Dashboard Improvements, Hass.io Auth API, Better Validation Errors, Conditions, Custom Platforms, Substitutions :yamlpr:`234`
|
|
- docs: Fix copy paste error :docspr:`100` by :ghuser:`oscar-b`
|
|
- lib: Fix large JSON payloads being cut off :libpr:`323` by :ghuser:`quazzie`
|
|
- docs: Add Wikipedia link to tz database zones list :docspr:`105` by :ghuser:`apeeters`
|
|
- docs: Add pins for Shelly 2 :docspr:`103` by :ghuser:`oscar-b`
|
|
- lib: Native Esphomelib API :libpr:`322`
|
|
- yaml: Add native ESPHome API :yamlpr:`265`
|
|
- lib: Add support for MAX31855 sensor :libpr:`310` by :ghuser:`sherbang`
|
|
- docs: Documentation for MAX31855 sensor :docspr:`97` by :ghuser:`sherbang`
|
|
- lib: Fix typo in Output Switch :libpr:`307`
|
|
- lib: Fix PCA9685 with many channels :libpr:`304`
|
|
- docs: Fixed typo in Sonoff R2 Cover example :docspr:`112` by :ghuser:`voicevon`
|
|
- lib: Dump native API Server config on boot :libpr:`338` by :ghuser:`voicevon`
|
|
- lib: Split Automation headers from implementation :libpr:`349`
|
|
- lib: Travis update :libpr:`350`
|
|
- lib: Fix API Server logs :libpr:`347`
|
|
- lib: WiFi Better logging for ESP8266 :libpr:`346`
|
|
- lib: API Server Watchdog :libpr:`345`
|
|
- lib: GPIO Switch Restore Mode :libpr:`344`
|
|
- lib: Fix Remote Receiver Overflow for ESP8266 :libpr:`348`
|
|
- yaml: Api fixes :yamlpr:`289`
|
|
- yaml: Fix host network :yamlpr:`280`
|
|
- yaml: Fix ESP8266 verbose logging :yamlpr:`291`
|
|
- yaml: API Server Watchdog :yamlpr:`290`
|
|
- lib: Implement Addressable Lights Base :libpr:`243`
|
|
- yaml: Disable SPIFFS to save flash space :yamlpr:`288`
|
|
- yaml: Fix MQTT message trigger :yamlpr:`282`
|
|
- yaml: GPIO Switch Restore Mode :yamlpr:`287`
|
|
- yaml: Addressable Lights :yamlpr:`294`
|
|
- yaml: Toggle Auto-Update Check With Environment Variable :yamlpr:`292`
|
|
- yaml: Make compatible with python 3 :yamlpr:`281`
|
|
- docs: Fix copy/paste error in turn_off_action :docspr:`113` by :ghuser:`wutr`
|
|
- yaml: GPIO Switch Fix restore_mode validator :yamlpr:`296` by :ghuser:`yottatsa`
|
|
- yaml: Fixes for Python 3 Compatibility :yamlpr:`297`
|
|
- lib: Stop old template action when new one is started :libpr:`354`
|
|
- lib: Add APDS-9960 support :libpr:`286`
|
|
- lib: Change default update interval to 60 seconds :libpr:`356`
|
|
- lib: ESP32 Ethernet support :libpr:`288`
|
|
- lib: Add ULN2003 support :libpr:`301`
|
|
- lib: Add clean discovery option to simplify transition to native API :libpr:`357`
|
|
- yaml: Add clean MQTT discovery option for native API :yamlpr:`302`
|
|
- yaml: Add APDS9960 Support :yamlpr:`300`
|
|
- lib: Add neopixelbus component :libpr:`352`
|
|
- yaml: Add neopixelbus component :yamlpr:`303`
|
|
- yaml: Add support for MAX31855 sensor :yamlpr:`258` by :ghuser:`sherbang`
|
|
- yaml: ULN2003 Support :yamlpr:`304`
|
|
- yaml: Add ESP32 Ethernet Support :yamlpr:`301`
|
|
- docs: total_daily_energy doesn't have pin option :docspr:`114` by :ghuser:`oscar-b`
|
|
- docs: Getting started HassIO - USD device discovery :docspr:`110` by :ghuser:`DavidDeSloovere`
|
|
- docs: Mismatch in example and text :docspr:`109` by :ghuser:`wellsi`
|
|
- docs: BME280 environment cookbook entry :docspr:`107` by :ghuser:`Mynasru`
|
|
- docs: Update getting_started_command_line.rst :docspr:`102` by :ghuser:`doskoi`
|
|
- docs: Updated the multi click example code block :docspr:`92` by :ghuser:`cooljimy84`
|
|
- docs: Add step to setting up devices :docspr:`101` by :ghuser:`magnusoverli`
|
|
- yaml: Update beta config :yamlpr:`305`
|
|
- yaml: Fix component.update action :yamlpr:`308`
|
|
- yaml: OTA don't error when upgrading from no password to password mode :yamlpr:`309`
|
|
- yaml: use full space on small devices :yamlpr:`310` by :ghuser:`escoand`
|
|
- lib: Fix interval compilation error :libpr:`364`
|
|
- yaml: Fix interval trigger :yamlpr:`313`
|
|
|
|
Past Changelogs
|
|
---------------
|
|
|
|
- :doc:`v1.9.0`
|
|
- :doc:`v1.8.0`
|
|
- :doc:`v1.7.0`
|