ESPHome 1.18.0 adds fingerprint readers, BME680 integration, and a BLE client
Disclosure: This post contains affiliate links. If you click through and make a purchase, I will earn a commission, at no additional cost to you. Read my full disclosure here.
ESPHome version 1.18.0 has just been released and with it, the transition to Nabu Casa is starting to take shape. After several 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 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 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.
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, 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 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 of 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.
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.
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.
About Liam Alexander Colman
Liam Alexander Colmanis an experienced Home Assistant user who has been utilizing the platform for a variety of projects over an extended period. His journey began with a Raspberry Pi, which quickly grew to three Raspberry Pis and eventually a full-fledged server. Liam's current operating system of choice is Unraid, with Home Assistant comfortably running in a Docker container. With a deep understanding of the intricacies of Home Assistant, Liam has an impressive setup, consisting of various Zigbee devices, and seamless integrations with existing products such as his Android TV box. For those interested in learning more about Liam's experience with Home Assistant, he shares his insights on how he first started using the platform and his subsequent journey.