Skip to content

About

Repository contains ESP32 software written with ArduinoIDE platform and PlatformIO pluggin, which allows to create multi-node home light + peripherals, wirelessly controlled system.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

311 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Polska

HomeControlStation Logo

Decentralized, Serverless Smart Home Network Powered Exclusively by ESP32

PlatformIO ESP32 Network No Central Hub License

No Raspberry Pi. No Home Assistant. Just standalone ESP32 microcontrollers communicating directly with each other.

www.homecontrolstation.pl



🌟 Welcome to True Edge of Home Controls

HomeControlStation completely flips the traditional smart home model upside down. Instead of relying on a dedicated server, hub, or central PC, this system operates entirely as a decentralized, distributed ESP32 node network.

Built for PlatformIO and Arduino IDE, every single ESP32 runs standalone firmware equipped with its own web stack, hardware state manager, and local network control routines.

  • ESP32-S3 required for Master node



✨ System Architecture & Highlights

  • 🚫 Serverless & Decentralized: No host PC / RPI required
  • 👑 Master / Slave Topology: One node acts as the primary gateway while lightweight slave nodes seamlessly join the HCS network.
  • 🌐 Embedded Web Interface: Configured nodes serve a local, high-speed interface via home.local accessible across your local network using web browser on any device.
  • 🛠 Dynamic Pin Mapping: Define relay switches, sensors, or dimmers directly on pinouts via software without rewriting code for every hardware variant.

⚡ Quick Setup & User Experience Flow

  1. Flash Firmware: Flash the HomeControlStation firmware onto your ESP32 device using PlatformIO or Arduino IDE.
  2. Wi-Fi & Master Configuration: Connect to the temporary Access Point network broadcasted by the ESP32, configure the node as Master, and enter your home Wi-Fi credentials.
  3. GPIO Pin Assignment: Navigate to http://home.local within your home network and configure the GPIO pins to run the end device in your desired hardware type (e.g., relay, sensor, switch).
  4. Local Network Control: Use the device remotely across your home network directly from the main page.
  5. Add a Slave Device: Take another ESP32 device, follow the initial configuration steps, and assign it as a Slave within your HomeControlStation network.
  6. Slave Hardware Setup: Configure the Slave's GPIO pins to run another end device in another location or room.
  7. Distributed Automation: Enjoy using the powerful distributed architecture of HomeControlStation with zero external server dependencies!



📸 Media, Demos & Showcase

System demo

HomeControlStation usage

Setup video guide

HomeControlStation guide



Check also

New to the project? Start with the architecture and end-to-end flow guide for the Platform/Devices boundary, build-time generation, runtime lifecycle, and ESP32 UDP network diagrams.

Adding hardware support? Follow Adding a new device type for the C++ interface, JSON metadata, services, generated UI, byte layouts, and optional advanced controls.

Building a device preset? The concrete devices compiled into a firmware image are the package directories currently present under include/devices/ and src/device/. Use the additive activation helper documented in DevicesPredefined to copy complete opt-in packages, then run platformio run.

Guition 4-inch display target

The ESP32-S3 480x480 Guition terminal is integrated as the optional DisplayS34inch PlatformIO environment:

pio run -e DisplayS34inch

The target uses the same HomeControlStation operating system, device manager, configuration, remote-control, and master/slave networking infrastructure as the other environments. It adds the Guition panel/touch driver and runs the display client application. Display-free targets do not compile or link the LVGL, Arduino GFX, GT911, or display-client implementation.

The display is a UI role, not a restricted network role. Its HCS configuration can therefore still host local devices and select master or slave operation. The display role only determines that the local display endpoint uses DisplayClient instead of DisplayServer.


Built for Builders. Powered by ESP32. Fully Local.
Found this project helpful? Give it a ⭐ on GitHub!

About

Repository contains ESP32 software written with ArduinoIDE platform and PlatformIO pluggin, which allows to create multi-node home light + peripherals, wirelessly controlled system.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages