41 lines
1.4 KiB
Markdown
41 lines
1.4 KiB
Markdown
|
+++
|
||
|
date = "2020-02-01T00:02:42+02:00"
|
||
|
title = "ESPHome as a Ruuvi bridge"
|
||
|
highlight = true
|
||
|
draft = false
|
||
|
+++
|
||
|
|
||
|
[ESPHome](https://esphome.io/) is a framework for building custom home
|
||
|
automation that runs on an ESP8266 or
|
||
|
[ESP32][esp32]. It's pretty cool - you
|
||
|
select and configure components by writing a [YAML
|
||
|
file][cfg], which
|
||
|
then drives host side [Python
|
||
|
snippets][snip]
|
||
|
to configure and bind the device side code, which is then built and
|
||
|
pushed using [PlatformIO](https://platformio.org/).
|
||
|
|
||
|
[esp32]: https://en.wikipedia.org/wiki/ESP32
|
||
|
[cfg]: https://esphome.io/cookbook/display_time_temp_oled.html
|
||
|
[snip]: https://github.com/esphome/esphome/blob/dev/esphome/components/ruuvitag/sensor.py
|
||
|
|
||
|
Some nice touches:
|
||
|
|
||
|
- It integrates with [Home Assistant](https://home-assistant.io/)
|
||
|
and has automatic discovery
|
||
|
- It can drive displays, including [rendering TTF files][ttf]
|
||
|
host side to give nice fonts device side
|
||
|
- It looks reasonably composable so, for example, you can have
|
||
|
multiple Bluetooth broadcast parsers
|
||
|
|
||
|
[ttf]: https://esphome.io/cookbook/display_time_temp_oled.html#define-the-fonts
|
||
|
I used this to bridge between [Ruuvi tags](https://ruuvi.com/) and my
|
||
|
Home Assistant instance. Home Assistant then re-exports everything to
|
||
|
[Prometheus](https://prometheus.io/).
|
||
|
|
||
|
It also gave me a reason to break out the 3D printer and make a case
|
||
|
for the ESP-WROOM-32 based
|
||
|
[Lolin32](https://wiki.wemos.cc/products:lolin32:lolin32):
|
||
|
|
||
|

|