ESPHome Links

ESPs are the eyes and ears of TechnoCore. They aren't mandatory, but I'd highly recommend looking around ESPHome's Documentation to see what is possible and how it works.

Note: I'm still exploring how to manage the ESPs in a sane and DRY way. Here are the methods I've employed:

  • Mounted the /config folder to a folder on the server, and then used NextCloud to sync changes between my local machine and the server. This is my current solution.
  • Mounted the /config folder to a folder on the server, and then used sshfs to mount that folder on my local machine. To do this, you'll need to setup passwordless ssh to your server, and the add something like the following to your /etc/fstab: technocore@technocore:/home/technocore/technocore/esphome/config /home/spencer/src/technocore/hals fuse.sshfs noauto,x-systemd.automount,_netdev,users,idmap=user,allow_other,reconnect 0 0 This worked OK when I was on the local network, but broke when I left the network.
  • Used the text editor from within ESPHome. This worked OK, but doesn't have a way of editing files in folders, nor of creating symlinks.

Service Information

Seedships: ESPHome
ESPHome Documentation
ESPHome's GitHub Repo
TechnoCore's ESPHome GitHub Repo


Getting Started


Meat of how to program ESPs. Not very long.


How to manipulate and correct readings

Configuration Types

Good bit on using substitutions


ESPHome supports most of Home Assistant's !directives (!include, !secret... etc.). Home Assistant's page about !directives


Settings for premade devices

Think smartplugs, lights, and wall switches.

!import other files:

Battery powered ESP32 deep sleep (BME200)


List of 3rd party devices that ESP Home supports (Teckin, Sonoff...)


Calibrate Teckin with ESPHome

Example calibrating a sensor

A sensor with a "baseline" built in for calibration

C++ Tips:

String to int: atoi(myString.c_str())

const char[] vs std::string


How to use specific esphome-core version.

Increase the number of inotify watchers in order to get Guard to work:

Considerations for setting up ESPHome as a stand alone service