add esphome notes
This commit is contained in:
179
active/device_esphome/esphome.md
Normal file
179
active/device_esphome/esphome.md
Normal file
@@ -0,0 +1,179 @@
|
||||
# ESP32
|
||||
|
||||
- [ESP32](#esp32)
|
||||
- [Install](#install)
|
||||
- [Devices](#devices)
|
||||
- [Lilygo tdongle](#lilygo-tdongle)
|
||||
- [Local Flashing](#local-flashing)
|
||||
- [Adding a New Device](#adding-a-new-device)
|
||||
- [Controlling Home Assistant](#controlling-home-assistant)
|
||||
- [Configuration Sections](#configuration-sections)
|
||||
- [esphome](#esphome)
|
||||
- [esp32](#esp32-1)
|
||||
- [logger](#logger)
|
||||
- [api](#api)
|
||||
- [wifi](#wifi)
|
||||
- [ota](#ota)
|
||||
- [captive portal](#captive-portal)
|
||||
- [button](#button)
|
||||
- [i2s audio](#i2s-audio)
|
||||
- [microphone](#microphone)
|
||||
- [speaker](#speaker)
|
||||
- [media player](#media-player)
|
||||
- [voice assistant](#voice-assistant)
|
||||
- [micro wake word](#micro-wake-word)
|
||||
- [light](#light)
|
||||
- [binary sensor](#binary-sensor)
|
||||
- [lambda](#lambda)
|
||||
|
||||
## Install
|
||||
|
||||
```bash
|
||||
# Check that you have python 3.11 installed
|
||||
uv python list --only-installed
|
||||
|
||||
# Create the venv (python 3.11 is recommended in the docs)
|
||||
uv venv --python 3.11
|
||||
|
||||
# Install esphome
|
||||
uv pip install esphome wheel pip
|
||||
source .venv/bin/activate
|
||||
```
|
||||
|
||||
## Devices
|
||||
|
||||
### Lilygo tdongle
|
||||
|
||||
Display: 80 X 160
|
||||
|
||||
## Local Flashing
|
||||
|
||||
Make sure your permissions are set correctly
|
||||
|
||||
```bash
|
||||
sudo usermod -a -G dialout ducoterra
|
||||
```
|
||||
|
||||
Then "run" your config file
|
||||
|
||||
```bash
|
||||
cd active/device_esp32
|
||||
uv venv
|
||||
uv pip install esphome
|
||||
source .venv/bin/activate
|
||||
|
||||
esphome run m5stack-atom-echo.yaml
|
||||
```
|
||||
|
||||
## Adding a New Device
|
||||
|
||||
1. Create a new yaml configuration file called "my-device-device-type.yaml"
|
||||
|
||||
## Controlling Home Assistant
|
||||
|
||||
<https://esphome.io/components/api/#api-actions>
|
||||
|
||||
## Configuration Sections
|
||||
|
||||
<https://esphome.io/components/>
|
||||
|
||||
### esphome
|
||||
|
||||
### esp32
|
||||
|
||||
<https://esphome.io/components/esp32/#configuration-variables>
|
||||
|
||||
### logger
|
||||
|
||||
<https://esphome.io/components/logger/>
|
||||
|
||||
### api
|
||||
|
||||
<https://esphome.io/components/api/>
|
||||
|
||||
### wifi
|
||||
|
||||
<https://esphome.io/components/wifi/>
|
||||
|
||||
### ota
|
||||
|
||||
<https://esphome.io/components/ota/>
|
||||
|
||||
<https://esphome.io/components/ota/esphome/>
|
||||
|
||||
### captive portal
|
||||
|
||||
<https://esphome.io/components/captive_portal/>
|
||||
|
||||
### button
|
||||
|
||||
<https://esphome.io/components/button/>
|
||||
|
||||
### i2s audio
|
||||
|
||||
<https://esphome.io/components/i2s_audio/>
|
||||
|
||||
### microphone
|
||||
|
||||
<https://esphome.io/components/microphone/>
|
||||
|
||||
<https://esphome.io/components/microphone/i2s_audio/>
|
||||
|
||||
### speaker
|
||||
|
||||
<https://esphome.io/components/speaker/i2s_audio/>
|
||||
|
||||
### media player
|
||||
|
||||
<https://esphome.io/components/media_player/speaker/>
|
||||
|
||||
Sometimes you'll need to convert media files to supported encoders.
|
||||
|
||||
```bash
|
||||
ffmpeg -i input.flac output.wav
|
||||
```
|
||||
|
||||
To play media on other devices from home assistant, put the
|
||||
|
||||
```yaml
|
||||
action: media_player.play_media
|
||||
target:
|
||||
entity_id: media_player.kitchen_google_home
|
||||
data:
|
||||
media_content_type: "audio/wav"
|
||||
media_content_id: "media-source://media_source/local/wake_word_triggered.wav"
|
||||
```
|
||||
|
||||
### voice assistant
|
||||
|
||||
<https://esphome.io/components/voice_assistant/>
|
||||
|
||||
In Home Assistant's configuration.yaml, add the following to listen to
|
||||
audio recordings of your voice request:
|
||||
|
||||
```bash
|
||||
assist_pipeline:
|
||||
debug_recording_dir: /share/assist_pipeline
|
||||
```
|
||||
|
||||
### micro wake word
|
||||
|
||||
<https://esphome.io/components/micro_wake_word/>
|
||||
|
||||
### light
|
||||
|
||||
<https://esphome.io/components/light/#light-effects>
|
||||
|
||||
### binary sensor
|
||||
|
||||
<https://esphome.io/components/binary_sensor/>
|
||||
|
||||
### lambda
|
||||
|
||||
<https://esphome.io/automations/templates/#config-lambda>
|
||||
|
||||
> id(...) is a helper function that makes ESPHome fetch an object with the
|
||||
> supplied ID (which you defined somewhere else, like top_end_stop ) and lets
|
||||
> you call any of ESPHome’s many APIs directly. For example, here we’re
|
||||
> retrieving the current state of the end stop using .state and using it to
|
||||
> construct our cover state.
|
||||
Reference in New Issue
Block a user