HOMEMASTER
HomeMaster is an open-source platform for local-first smart home automation using ESP32-based devices like MiniPLC and MicroPLC. This repository includes firmware, schematics, and documentation for creating modular, cloud-free automation systems fully compatible with Home Assistant via ESPHome
Install / Use
/learn @isystemsautomation/HOMEMASTERREADME
🚧 Project Status: Under Active Development & Testing
Important Notice: This documentation, hardware designs, and firmware are for the pre-release version of the HomeMaster system. All information is preliminary and may contain errors or be subject to change.
- Hardware: Modules are currently in the prototyping and testing phase. Final production versions may differ.
- Firmware: Firmware is under active development and is considered beta. Features, configurations, and stability are being refined.
Please use this information for evaluation and development purposes only
HOMEMASTER – Modular, Resilient Smart Automation System
Releases: see the latest tagged build on GitHub Releases. Versioning uses YYYY‑MM.
Fully open‑source hardware, firmware, and configuration tools.
🛠️ Hardware Guide
HomeMaster is an industrial‑grade, modular automation system for smart homes, labs, and professional installations. It features:
- ESP32‑based PLC controllers (MiniPLC & MicroPLC) — same platform & memory class
- A family of smart I/O modules (energy monitoring, lighting, alarms, analog I/O, etc.)
- RS‑485 Modbus RTU communication
- ESPHome compatibility for Home Assistant
- USB‑C & WebConfig UI for driverless configuration
Local resilience: Modules include onboard logic and continue functioning even if the controller or network is offline.
System Architecture
%%{init: {"flowchart":{"htmlLabels":true,"nodeSpacing":50,"rankSpacing":60}}}%%
flowchart TD
%% Classes
classDef hub fill:#EDEFFB,stroke:#6B72FF,stroke-width:1.2px,color:#111,font-weight:bold;
classDef big fill:#EDEFFB,stroke:#1F35FF,stroke-width:3px,color:#111,font-weight:bold,font-size:28px;
classDef mod fill:#FFFffC,stroke:#E0B100,stroke-width:1.2px,color:#111,font-weight:bold,font-size:22px;
classDef ghost fill:transparent,stroke:transparent,color:transparent;
%% Double-sized HA and PLC (bigger font + extra line breaks)
HA["Home Assistant<br/><br/>"]:::big --> PLC["MiniPLC / MicroPLC<br/><br/>"]:::big
PLC --> RS485[RS-485 Bus]:::hub
%% Subgraph with taller nodes; extra <br/> increases node height
subgraph Mods["<br/>"]
ENM[ENM‑223‑R1<br>⚡ Energy Meter]:::mod
ALM[ALM‑173‑R1<br>🚨 Alarm I/O]:::mod
DIM[DIM‑420‑R1<br>💡 AC Dimmer]:::mod
AIO[AIO‑422‑R1<br>🌡️ Analog I/O]:::mod
RGB[RGB‑621‑R1<br>🎨 LED Controller]:::mod
DIO[DIO‑430‑R1<br>🔌 Digital I/O]:::mod
STR[STR‑3221‑R1<br>💫 Staircase LED]:::mod
WLD[WLD‑521‑R1<br>💧 Leak Detection]:::mod
SP1["<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>"]:::ghost
end
style Mods fill:#FFFFFF,stroke:#E0B100,stroke-width:1.5px, font-weight:bold,font-size:22px
%% Edges
RS485 --> ENM
RS485 --> ALM
RS485 --> DIM
RS485 --> AIO
RS485 --> RGB
RS485 --> DIO
RS485 --> STR
RS485 --> WLD
🎯 Quick Module Selector
- 💡 Lighting Control → DIM‑420‑R1, RGB‑621‑R1, STR‑3221‑R1
- ⚡ Measurment & Protecion → ENM‑223‑R1 , WLD‑521‑R1
- 🚨 Security/Alarms → ALM‑173‑R1
- 🔌 General I/O → DIO‑430‑R1, AIO‑422‑R1
Controller Comparison
| Feature / Use Case | 🟢 MiniPLC <br> <a href="./MiniPLC/"><img src="./MiniPLC/Images/MiniPLC2.png" alt="MiniPLC" height="140"/></a> | 🔵 MicroPLC <br> <a href="./MicroPLC/"><img src="./MicroPLC/Images/MicroPLC.png" alt="MicroPLC" height="140"/></a> | |--------------------|----------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------| | Size | Full‑width DIN enclosure | Compact DIN enclosure | | Onboard I/O | 6× Relays, 4× DI, 2× RTD, 2× AI/O, Display, RTC | 1× Relay, 1× DI, 1‑Wire, RTC | | Connectivity | Ethernet, USB‑C, Wi‑Fi, BLE + Improv | USB‑C, Wi‑Fi, BLE + Improv | | Storage | microSD card slot | Internal flash only | | Ideal For | Full homes, labs, HVAC/solar, automation pros | Makers, room‑level, modular expansion setups | | Power Input | AC/DC wide range or 24 VDC | 24 VDC only |
Module Overview
| Image | Module | Inputs | Outputs | Key Features | Best For | |---|---|---|---|---|---| | <a href="./ENM-223-R1/"><img src="./ENM-223-R1/Images/photo1.png" alt="ENM‑223‑R1" height="80"/></a> | ENM‑223‑R1 | 3‑Phase CTs | 2 Relays | Per‑phase power metrics | Solar, grid monitoring | | <a href="./ALM-173-R1/"><img src="./ALM-173-R1/Images/photo1.png" alt="ALM‑173‑R1" height="80"/></a> | ALM‑173‑R1 | 17 DI | 3 Relays | AUX power, alarm logic | Security systems | | <a href="./DIM-420-R1/"><img src="./DIM-420-R1/Images/photo1.png" alt="DIM‑420‑R1" height="80"/></a> | DIM‑420‑R1 | 4 DI | 2 Dimming | Phase‑cut dimming | Lighting control | | <a href="./AIO-422-R1/"><img src="./AIO-422-R1/Images/photo1.png" alt="AIO‑422‑R1" height="80"/></a> | AIO‑422‑R1 | 4 AI + 2 RTD | 2 AO | 0‑10V I/O, PT100/1000 | HVAC, sensors | | <a href="./DIO-430-R1/"><img src="./DIO-430-R1/Images/photo1.png" alt="DIO‑430‑R1" height="80"/></a> | DIO‑430‑R1 | 4 DI | 3 Relays | Override buttons, logic mapping | General control | | <a href="./RGB-621-R1/"><img src="./RGB-621-R1/Images/photo1.png" alt="RGB‑621‑R1" height="80"/></a> | RGB‑621‑R1 | 2 DI | 5 PWM + 1 Relay | RGB+CCT, smooth fades | Color lighting | | <a href="./STR-3221-R1/"><img src="./STR-3221-R1/Images/photo1.png" alt="STR‑3221‑R1" height="80"/></a> | STR‑3221‑R1 | 3 DI | 32 LED Channels | Animated sequences | Architectural lighting | | <a href="./WLD-521-R1/"><img src="./WLD-521-R1/Images/photo1.png" alt="WLD‑521‑R1" height="80"/></a> | WLD‑521‑R1 | 5 DI + Temp | 2 Relays | Leak detection, pulse metering | Safety systems |
Recommended Setups
- 🏠 Starter (Lighting + I/O) — MicroPLC + DIO‑430‑R1 + RGB‑621‑R1
Basic lighting control, wall switch input, RGB strip control - ⚡ Energy Monitoring — MicroPLC + ENM‑223‑R1
Track grid power, solar production, or 3‑phase loads - 🧪 Professional Lab — MiniPLC + AIO‑422‑R1 + DIO‑430‑R1
Complex automation with analog, temperature, safety logic - 💧 Safety & Leak Detection — MicroPLC + WLD‑521‑R1 + ALM‑173‑R1
Leak sensors, alarm inputs, auto‑valve control - 🌈 Advanced Lighting — MiniPLC + RGB‑621‑R1 + DIM‑420‑R1 + STR‑3221‑R1
Complete lighting control with scenes and animations
🚀 Quick Start
5‑Minute Setup
- Power the controller — ESPHome is pre‑installed on MiniPLC and MicroPLC.
- Join Wi‑Fi with Improv — Use Improv (BLE or Serial) to set Wi‑Fi and adopt the device.
- Wire RS‑485 — A/B differential pair; 120 Ω termination at both bus ends.
- Configure each module — Connect via USB‑C and use WebConfig to set Modbus address and module settings (calibration, mapping, rules).
- Open Home Assistant — Add the ESPHome controller; modules appear as entities via the controller config.
⚙️ Configuration
Compatibility
| Component | Home Assistant | ESPHome | Standalone | |---|---|---|---| | All Modules | ✅ Full | ✅ Native | ✅ Basic | | MiniPLC | ✅ Full | ✅ Pre‑installed | ✅ Full | | MicroPLC | ✅ Full | ✅ Pre‑installed | ✅ Basic |
Controller Setup
All HomeMaster controllers come with ESPHome pre‑installed and support Improv onboarding:
- Power on the controller
- Connect via improv-wifi.com (BLE or USB)
- Enter Wi‑Fi credentials
- Appears in ESPHome Dashboard & Home Assistant
Module Configuration (WebConfig)
Each module includes USB WebConfig — no drivers needed:
- Set Modbus address and baud rate
- Configure relay behavior and input mappings
- Perform calibration and live diagnostics
- Adjust alarm thresholds and LED modes
💡 WebConfig works in Chrome/Edge — just plug in USB‑C and click Connect
Networking
- RS‑485 Modbus:
19200 8N1(default), 120 Ω termination required - Wi‑Fi: Both controllers; Improv onboarding
- Ethernet: MiniPLC only for stable connections
- USB‑C: Configuration and programming
🔧 Advanced
Firmware Development
All HomeMaster controllers
