# esphomeyaml for [esphomelib](https://github.com/OttoWinter/esphomelib)

### Getting Started Guide: https://esphomelib.com/esphomeyaml/getting-started.html

### Available Components: https://esphomelib.com/esphomeyaml/index.html

esphomeyaml is the solution for your ESP8266/ESP32 projects with Home Assistant. It allows you to create **custom firmwares** for your microcontrollers with no programming experience required. All you need to know is the YAML configuration format which is also used by Home Assistant.

esphomeyaml will:

 * Read your configuration file and warn you about potential errors (like using the invalid pins.)
 * Create a custom C++ sketch file for you using esphomeyaml's powerful C++ generation engine.
 * Compile the sketch file for you using [platformio](http://platformio.org/).
 * Upload the binary to your ESP via Over the Air updates.
 * Automatically start remote logs via MQTT.

And all of that with a single command 🎉:

```bash
esphomeyaml configuration.yaml run
```

## Features

 * **No programming experience required:** just edit YAML configuration
    files like you're used to with Home Assistant.
 * **Flexible:** Use [esphomelib](https://github.com/OttoWinter/esphomelib)'s powerful core to create custom sensors/outputs.
 * **Fast and efficient:** Written in C++ and keeps memory consumption to a minimum.
 * **Made for Home Assistant:** Almost all Home Assistant features are supported out of the box. Including RGB lights and many more.
 * **Easy reproducible configuration:** No need to go through a long setup process for every single node. Just copy a configuration file and run a single command.
 * **Smart Over The Air Updates:** esphomeyaml has OTA updates deeply integrated into the system. It even automatically enters a recovery mode if a boot loop is detected.
 * **Powerful logging engine:** View colorful logs and debug issues remotely.
 * **Open Source**
 * For me: Makes documenting esphomelib's features a lot easier.

## Special Thanks

Special Thanks to the Home Assistant project. Lots of the code base of esphomeyaml is based off of Home Assistant, for example the loading and config validation code.