ESPHome - working from the command line
See also
Installing
Install the python3-pip package (if not installed):
sudo apt install python3-pip
It is recommended to install ESPHome in the user’s home directory. To install ESPHome just execute the command:
pip3 install --user esphome
The ESPHome project will be installed in the directory $HOME/.local/
.
You must add the path to the executable files ESPHome to the environment variable $PATH
:
export PATH=$PATH:$HOME/.local/bin
To avoid setting the environment variable $PATH
every time you reboot your computer, run
echo 'export PATH=$PATH:$HOME/.local/bin' >> $HOME/.bashrc
Creating configuration files
To build ESPHome projects, create a separate directory in which to build the firmware, for example:
mkdir ~/esphome
cd ~/esphome
You can use a step-by-step command to create a new configuration file, for example:
esphome e1-test.yaml wizard
Specify nodemcu-32s
as the platform name for the controllers JetHub E1 . After executing this command the configuration file e1-test.yaml
will be created which will be used to compile the firmware for the ESP32 microcontroller.
Hint
You can also create a configuration file in a text editor.
An example of a minimum ESPHome configuration file for an E1-CPU processor module:
Note
Enter the correct ssid
and password
to connect the controller to the Wi-Fi network.
esphome:
name: e1-test
platform: ESP32
board: nodemcu-32s
wifi:
ssid: "***"
password: "***"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "E1-Test Fallback Hotspot"
password: "wDZE2YhcmW89"
captive_portal:
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
This example will configure the connection of the controller via Wi-Fi (section wifi
), integration with Home Assistant (section api
) and configured the firmware update over the network (section ota
).
Note
Note the name
field in the esphome
section. It specifies the name of the controller, is displayed on the network, and must be unique.
In this example, the controller name is e1-test
.
Firmware Recording
Connect the controller with a MicroUSB cable to the computer before flashing.
Assembly and firmware can be done with a single command:
esphome e1-test.yaml run
When flashing, the controller will automatically be put into software download mode, you do not need to press the button on the housing. When selecting the software flashing method, select the serial port that corresponds to the connected controller, e.g: Serial port /dev/ttyUSB0
.
It is necessary to rebuild and write the firmware after changes have been made to the configuration file.
Possible problems during flashing
No access to the serial port
Warning
The user under which the work is done (controller firmware) must be a member of the group dialout
.
To add the current user to the dialout
group run the command:
sudo usermod -a -G dialout $USER
After that, you need to log in again.
Problem on Ubuntu 22.04
On Ubuntu 22.04 there may be a problem accessing the port because of a conflict with BRLTTY (support for Braille displays).
See also
Problem description: Unable to use USB dongle based on USB-serial converter chip.
One solution is to remove this package from the system:
sudo apt remove brltty
After that it is necessary to reboot the system.