Esphome based smart home control panel
996
stars
5,666
commits
C++
primary language
Sep 14, 2026
updated

Turn an affordable touchscreen into a simple smart home control panel.
EspControl lets you put the Home Assistant controls you use every day onto a dedicated screen: lights by the door, heating in the hallway, garage controls in the utility room, room temperatures on a desk, or a tidy bedside panel for scenes and alarms.
You do not need to write code, edit YAML, or build your own ESPHome setup. Install the firmware from a web browser, connect the screen to WiFi, add it to Home Assistant, then choose what appears on the display from the screen's built-in setup page.
Documentation and install guide: jtenniswood.github.io/espcontrol
EspControl works with devices and helpers that are already in Home Assistant, including:
If Home Assistant can see it, EspControl is designed to make it easier to put that control or information on a touchscreen.

After that, the panel runs on its own. You can still change the layout at any time from a phone, tablet, or computer browser.
Start here: Install EspControl
EspControl supports several low-cost ESP32 touchscreens. Larger screens give you more room for controls; smaller screens are useful beside doors, on desks, or in individual rooms.
| 10.1" JC8012P4A1 | 7" JC1060P470 | 4.3" JC4880P443 | 4" ESP32-P4 86 Panel | 4" 4848S040 | |
|---|---|---|---|---|---|
| Image | Image pending | ![]() | ![]() | Image pending | ![]() |
| Layout | 1280x800 landscape · 20 card slots | 1024x600 landscape · 15 card slots | 480x800 portrait · 6 card slots | 720x720 square · 9 card slots | 480x480 square · 9 card slots |
| Processor | ESP32-P4 | ESP32-P4 | ESP32-P4 | ESP32-P4 | ESP32-S3 |
| Panel | AliExpress ~£40 | AliExpress ~£40 | AliExpress ~£24 | AliExpress ~£45 | AliExpress ~£16 |
| 3D mount | MakerWorld | MakerWorld | MakerWorld | MakerWorld | MakerWorld |
See the screen guides for full details on each model.
After changing card configuration, the web setup page, or generated device files, run:
npm run check:productnpm run check:fastnpm run check:web-browser-smokenpm run docs:buildUse npm run check:product as the focused product preflight when changing shared schema,
card behavior, web setup behavior, device metadata, generated outputs, backup compatibility,
or release-facing metadata.
See Product Source Map for the files that should be edited by hand and the generated outputs that should be rebuilt instead of manually changed.
EspControl is licensed under the PolyForm Noncommercial License 1.0.0.
In plain terms, you can view, change, and share the software for non-commercial purposes. Commercial use needs separate permission from the project owner.
This is a source-available non-commercial license rather than an OSI-approved open source license, because the standard open source definition does not allow restrictions on commercial use.
Required notice: see NOTICE.
If EspControl is useful in your home, you can support ongoing development by buying me a coffee.
C++
38.1%
TypeScript
19.9%
Python
18.5%
C
14.8%
JavaScript
8.3%
Esphome based smart home control panel
996
stars
5,666
commits
C++
primary language
Sep 14, 2026
updated

Turn an affordable touchscreen into a simple smart home control panel.
EspControl lets you put the Home Assistant controls you use every day onto a dedicated screen: lights by the door, heating in the hallway, garage controls in the utility room, room temperatures on a desk, or a tidy bedside panel for scenes and alarms.
You do not need to write code, edit YAML, or build your own ESPHome setup. Install the firmware from a web browser, connect the screen to WiFi, add it to Home Assistant, then choose what appears on the display from the screen's built-in setup page.
Documentation and install guide: jtenniswood.github.io/espcontrol
EspControl works with devices and helpers that are already in Home Assistant, including:
If Home Assistant can see it, EspControl is designed to make it easier to put that control or information on a touchscreen.

After that, the panel runs on its own. You can still change the layout at any time from a phone, tablet, or computer browser.
Start here: Install EspControl
EspControl supports several low-cost ESP32 touchscreens. Larger screens give you more room for controls; smaller screens are useful beside doors, on desks, or in individual rooms.
| 10.1" JC8012P4A1 | 7" JC1060P470 | 4.3" JC4880P443 | 4" ESP32-P4 86 Panel | 4" 4848S040 | |
|---|---|---|---|---|---|
| Image | Image pending | ![]() | ![]() | Image pending | ![]() |
| Layout | 1280x800 landscape · 20 card slots | 1024x600 landscape · 15 card slots | 480x800 portrait · 6 card slots | 720x720 square · 9 card slots | 480x480 square · 9 card slots |
| Processor | ESP32-P4 | ESP32-P4 | ESP32-P4 | ESP32-P4 | ESP32-S3 |
| Panel | AliExpress ~£40 | AliExpress ~£40 | AliExpress ~£24 | AliExpress ~£45 | AliExpress ~£16 |
| 3D mount | MakerWorld | MakerWorld | MakerWorld | MakerWorld | MakerWorld |
See the screen guides for full details on each model.
After changing card configuration, the web setup page, or generated device files, run:
npm run check:productnpm run check:fastnpm run check:web-browser-smokenpm run docs:buildUse npm run check:product as the focused product preflight when changing shared schema,
card behavior, web setup behavior, device metadata, generated outputs, backup compatibility,
or release-facing metadata.
See Product Source Map for the files that should be edited by hand and the generated outputs that should be rebuilt instead of manually changed.
EspControl is licensed under the PolyForm Noncommercial License 1.0.0.
In plain terms, you can view, change, and share the software for non-commercial purposes. Commercial use needs separate permission from the project owner.
This is a source-available non-commercial license rather than an OSI-approved open source license, because the standard open source definition does not allow restrictions on commercial use.
Required notice: see NOTICE.
If EspControl is useful in your home, you can support ongoing development by buying me a coffee.
C++
38.1%
TypeScript
19.9%
Python
18.5%
C
14.8%
JavaScript
8.3%