+++ 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): ![Case](./case.jpg)