ESPHome version 1.18.0 has just been released and with it, the transition to Nabu Casa is starting to take shape. After a number of lacklustre releases, ESPHome version 1.18.0 is a throwback to the good old days, when every release brought massive changes.
This update includes a fully featured integration of the Bosch BME680 sensor, making the use of complex formulas redundant, support for GROW fingerprint readers that come in various shapes and sizes, a BLE client and sensor, and much more. Read on to find out why the latest release of ESPHome has me excited!
A more fully fledged BME680 integration using BSEC
The BME680 (buy on AliExpress) is a remarkable multisensor featuring not just an ambient temperature, a relative humidity, and a barometric pressure sensor but also one that measures gas resistance. It allows you to build a personal air quality tracker using a single multisensor. The raw gas resistance data coming from the BME680 might not be of use, but it allows the calculation of the Indoor Air Quality (IAQ), CO2 equivalents, and VOC equivalents. Previously a rather complex formula was needed for that function, but now ESPHome has access to Bosch’ official proprietary algorithms.
The Bosch Sensortec Environmental Cluster (BSEC) is a software library with which ESPHome can use everything the BME680 has to offer, unlocking all of its features. You could now build your very own climate and air quality monitor using just an ESP8266 board (buy on AliExpress) and this sensor. Just keep in mind that even with the BSEC, the BME680 can’t replace everything, and you might still want to add a PM2.5 sensor such as the HM3301 (buy on AliExpress).
ESPHome finally supports GROW fingerprint readers
It’s been a long time coming, but now we finally have it at our disposal: support for fingerprint readers. The currently supported fingerprint readers come from Hangzhou Grow Technology Co., Ltd (GROW), a Chinese company specializing in optical and capacitive sensors.
The most popular reader for ESPHome projects will most likely be the R503 (buy on AliExpress), a capacitive model from GROW. It has a rugged metal body with panel-mounting, allowing makers to easily add it to projects. It can store up to 200 fingerprints and has an onboard DSP chip that does the image rendering, calculation, feature-finding, and searching. To help you find the fingerprint reader, it can be illuminated using the built-in Bicolour Aura LED. The same LED can be changed to a defined colour whenever an action is performed, and it supports effects!
Alternatives such as the optical R307 fingerprint reader from GROW (buy on AliExpress) also exist and are supported in this ESPHome release. But compared to its capacitive brethren, it is bulkier and less good-looking. In addition, it is also slower than the capacitive alternative.
The implementation of GROW fingerprint readers in your ESPHome projects won’t be the simplest of jobs, though it should be doable thanks to the extensive documentation on the ESPHome website. Make sure to read it carefully before you start hacking, as some actions can render the fingerprint reader unusable.
ESPHome can now be a BLE client
The final addition to ESPHome version 1.18.0 I want to take a deep-dive in to is the Bluetooth Low Energy (BLE) client and sensor. Using the BLE client, BLE devices that are not protected (i.e. they don’t need a PIN to connect to an app on your phone) by a password can be connected to an ESP32 board.
At this point a quick explainer on what a BLE client even is, might help you better understand this feature. BLE uses the concept of a server and a client. A server is a device that provides data. Examples are heart rate monitors (HRM), OBD2 car diagnostic adapters, or tags. These all have one thing in common: They collect data from a device (yes, I did just describe the human body as a device) and serve it to a client. In most cases, the client is a smartphone app. For example, the Polar app will collect data from an HRM and tag, the Car Scanner ELM OBD2 app will be served by the adapter.
Picture the app being replaced by an ESP32 board, and you will know how this new feature works. Your HRM, tag, or ODB2 adapter could be providing data to Home Assistant via ESPHome on an ESP32, instead of an app. Off the top of my head, this could be used to change the colours of the lights in your home gym depending on how hard your heart is currently working. Or if it were possible to connect ODB2 adapter, you could be notified about error codes and visit a mechanic.
To actually use the data collected by the client, the BLE sensor is needed. The BLE sensor can query BLE devices for specific values of service characteristics.
Everything else included in ESPHome 1.18.0
ESPHome 1.18.0 adds support for the SGP40 (buy on AliExpress), a digital VOC (volatile organic compounds) sensor from Sensirion, a Swiss company known for making high-quality, but also expensive, sensors. The SHT4X are a series of temperature and humidity sensors from Sensirion which are commonly found on Adafruit boards. It uses the I2C interface for easy reading.
Speaking of the I²C interface, you can now finally expand the number of available channels to ESPHome using the TCA9548A I²C Multiplexer. This multiplexer adds eight separate I²C channels to be used in your projects.
Also included in this release is the ability to track the open-source soil moisture and ambient temperature/humidity sensor, b-parasite. You will need an ESP32 board for this integration, as the b-parasite communicates using BLE. It contains a soil moisture sensor and a Sensirion SHTC3 and is powered by a CR2032 coin cell. Its functionality is very similar to Xiaomi’s MiFlora sensor.
Ultrasonic distance sensors, such as the HC-SR04 (buy on AliExpress), have been supported by ESPHome for some time now. These are now joined by the TOF10120 time of flight distance sensor. This sensor is sealed, making it useful for moist environments. Additionally, it is smaller and is significantly faster than ultrasonic sensors. It uses I²C to interface with your ESP8266/ESP32 board. But the higher cost of the TOF10120 will most likely make it more of a niche sensor for the time being.
The SM2135 LED driver is used in a number of commercially available bulbs and by supporting it, ESPHome can now be hacked on to even more off-the-shelf devices.
The External Components feature doesn’t necessarily add any functionality, but it makes sharing components much easier. Using it, you can easily import external components from GitHub and local sources. It will likely take some time until this feature will be made use off to its full potential, but just as Blueprints in Home Assistant, it could further open up ESPHome to the community.