Modbus relay and digital input module for Home Assistant
The HomeMaster DIO-430-R1 is a DIN-rail relay and digital input module for a wired smart home running Home Assistant. It carries three SPDT dry-contact relays and four IEC 61131-2 compliant 24 V digital inputs, and speaks Modbus RTU over RS-485 — so an ESPHome relay module in this system needs no cloud, no MQTT broker and no vendor hub. The relays drive heating loads directly — circulation pumps, zone valves, DHW diverters — and the digital inputs accept a dry contact from a boiler or an external thermostat.
Relays are rated 3 A at 250 V AC resistive as a system limit — the board rating governs, not the contact rating of the relay itself. Use an upstream fuse or breaker per channel, and drive anything heavier or inductive through a contactor.
What the module does on its own matters as much as what it reports. Press counting on the dry-contact inputs — single, double, triple and hold — is evaluated on the module, so it does not depend on how often the Modbus master polls. Input-to-relay mapping and the hardware interlock between outputs are stored in the module's flash and keep running when the network, the controller or the Home Assistant server is unavailable.
The HomeMaster DIO-430-R1 is a professional, open-source DIN-rail digital I/O module designed for reliable digital input monitoring and relay-based control in building automation and light industrial panels. It provides IEC 61131-2 compliant 24 V digital inputs (ISO1212 front-end), relay outputs, RS-485 Modbus communication, and USB-C configuration interface.
Engineered for control cabinet automation and flexible deployment, the module operates from a 24 V DC supply and integrates seamlessly with HomeMaster MicroPLC, MiniPLC, or any Modbus RTU master controller. It supports both centralized control via Modbus and standalone local logic with persistent configuration stored in onboard flash memory.
Through a MiniPLC or MicroPLC running ESPHome, the module appears in Home Assistant over the native ESPHome API — no MQTT broker, no Modbus register mapping in Home Assistant and no custom converters. Entities are ready to use within seconds, with low latency and no cloud.
What the DIO-430-R1 does
The DIO-430-R1 is a small DIN-rail module that turns things on and off. It has 3 relay outputs (for lights, pumps, fans, valves — anything you'd normally switch) and 4 inputs (for wall switches, push-buttons, or simple on/off sensors like a door contact).
It works two ways at the same time: on its own — flip the wall switch and the light turns on, even if your smart home or network is down; and through Home Assistant — control the same outputs from your phone, voice, or automations. Whoever acts last wins, so the wall switch and your phone never fight each other.
You set up what each input does right in your web browser over a USB-C cable — no app and no account. Then you connect it to Home Assistant through a MicroPLC/MiniPLC controller using a single 2-wire RS-485 link.
Quick Overview
- Smart digital I/O expansion module for Modbus automation systems
- DIN-rail form factor with 24 V DC supply
- 4 IEC 61131-2 compliant 24 V digital inputs (ISO1212 front-end) and 3 relay outputs
- RS-485 Modbus RTU communication
- Local configuration via USB-C WebConfig interface
- Persistent onboard logic and configuration storage
Typical Applications
- Digital input monitoring
- Lighting control systems
- HVAC automation
- Alarm and security systems
- Motor and pump control
- Building management systems (BMS)
- PLC I/O expansion module
- SCADA remote I/O node
- Circulation pump switching
- Zone valve control
- Boiler or thermostat dry-contact input
Tech Specs
| Specification | Details |
|---|---|
| Microcontroller | RP2350A dual-core microcontroller |
| Flash Memory | External QSPI Flash (W25Q32JV) |
| Power Input | 24 V DC nominal (V+ / 0V) |
| Digital Inputs | 4 × IEC 61131-2 compliant 24 V digital inputs (ISO1212 front-end) (DIx + GNDx), dry-contact (module-wetted); per-channel PTC fuse, TVS surge suppression, reverse-polarity protection, EMI filtering |
| Relay Outputs |
3 × SPDT dry-contact relays. Rated load (system limit): 3 A @ 250 V AC (resistive); max 750 VA @ 250 V AC, 90 W @ 30 V DC. Relay components (informative only) rated up to 16 A @ 250 V AC (resistive); rating does not apply to the complete module. |
| User Interface | 3 buttons (2 user-configurable), 13 LEDs (power, 3 user LEDs, RX, TX, 3× relay, 4× DI) |
| Communication | RS-485 Modbus RTU (MAX485, half-duplex), non-isolated; TVS surge protection, PTC fuses, common-mode choke, fail-safe biasing |
| USB | USB-C (ESD protected), configuration and firmware upload |
| Storage | LittleFS persistent configuration storage |
| Modbus Address Range | 1–247 (default: 3) |
| Modbus Baud Rate | 9600–115200 (default: 19200) |
Installation, Environmental & Mechanical
| Category | Specification | Details |
|---|---|---|
| Terminal Specifications | Terminal type | Pluggable screw terminal blocks, 5.08 mm pitch |
| Terminal pitch | 5.08 mm | |
| Wire cross-section | 0.2–2.5 mm² (AWG 24–12) | |
| Conductor type | Solid or stranded copper | |
| Stranded wire | Ferrules recommended | |
| Tightening torque | 0.4 Nm (max) | |
| Environmental Ratings | Operating temperature | 0 °C to +40 °C |
| Storage temperature | −10 °C to +55 °C | |
| Relative humidity | 0–90 % RH, non-condensing | |
| Ingress protection | IP20 (inside cabinet) | |
| Installation | Indoor control cabinet only; not for outdoor or exposed installation | |
| Terminal protection | All wiring terminals must be protected against accidental contact | |
| Mechanical & Packaging | Product dimensions | 71.5 × 90 × 59 mm (L × W × H) |
| DIN width | 4 modules (4 × 17.5 mm) | |
| Mounting | 35 mm DIN rail | |
| Enclosure | PC/ABS industrial enclosure | |
| Net weight | TBD | |
| Gross weight | TBD | |
| Pack size | 140 × 125 × 94 mm (L × W × H) | |
| Notes | All dimensions in millimeters |
Install only inside a control cabinet with ventilation; the cabinet must include a protective front plate covering all module connection terminals and a closing protective door; not for outdoor or exposed installation.
All wiring terminals must be protected against accidental contact by an insulating front plate, wiring duct, or terminal cover. Exposed live terminals are not permitted.
Home Assistant / Modbus / Web Config Integration
The DIO-430-R1 supports flexible integration with:
- HomeMaster MicroPLC and MiniPLC controllers
- PLC and SCADA systems via Modbus RTU
- Home Assistant using ESPHome or Modbus integration
- Direct USB-C configuration using browser-based WebConfig tool
Configuration parameters are stored persistently in onboard flash and automatically restored at power-up.
Quick Setup Process (USB-C WebConfig)
- Mount & Power – Mount the module on a DIN rail and connect power.
- Connect USB-C – Connect USB-C cable to the module.
- Open WebConfig – Open WebConfig page in any Chromium-based browser (Chrome, Edge, Opera, Brave, Vivaldi).
- Connect Device – Click Connect and select the device.
- Configure – Configure Modbus address and baud rate.
- Map I/O – Configure input-to-relay mapping and LED behavior.
- Save & Disconnect – Save settings and disconnect USB-C.
Firefox: experimental only (Nightly with the Web Serial flag); Safari and stable Firefox not supported.
Features:
- Driverless browser-based configuration
- Live configuration updates
- Persistent flash storage
- No external software required
WebConfig Configuration Options
- Modbus address (1–247) and baud rate (9600–115200)
- Relay: enable / invert / power-on / auto-off
- Interlock: relay pair with dead-time pause
- Timing: long-press, multi-click gap, debounce, link timeout
- Buttons: short/long-press actions and targets
- LEDs: steady/blink and source mapping
- Persistent save to flash and restore on boot
WebConfig provides I/O mapping and configuration settings (stored persistently in flash).
Minimal ESPHome YAML (Controller side)
Use this on the MiniPLC/MicroPLC (ESPHome). It enables the RS-485 bus and imports a ready-made DIO package.
uart:
id: uart_modbus
tx_pin: 17
rx_pin: 16
baud_rate: 19200
parity: NONE
stop_bits: 1
modbus:
id: modbus_bus
uart_id: uart_modbus
turnaround_time: 100ms
send_wait_time: 250ms
packages:
dio1:
url: https://github.com/isystemsautomation/homemaster-dev
ref: main
files:
- path: DIO-430-R1/Firmware/v0.2.0/default_dio_430_r1_plc/default_dio_430_r1_plc.yaml
vars:
dio_prefix: "DIO#1" # shown in Home Assistant entity names
dio_id: dio_1 # internal unique id
dio_address: 4 # Modbus address set in WebConfig for this DIO
refresh: 1d
ESPHome 2026.7.0 raised the Modbus client defaults —
turnaround_timefrom 100 ms to 600 ms andsend_wait_timefrom 250 ms to 2000 ms (PR #11969).At the 600 ms default the bus carries only about 1.5 Modbus transactions per second, whatever the UART speed, because the controller stays silent for 600 ms after every response. Two modules on one RS-485 bus become slow to respond. With three or more, one module can stop being polled altogether — with no timeout and no CRC error in the log.
On ESPHome 2026.7.0 and newer, set both values explicitly as shown above. On earlier releases these were the defaults and the two lines are not required.
dio_address must match the Modbus address configured in WebConfig.
Full Modbus addressing, register map, and advanced integration details are available in the DIO-430-R1 README.
The module needs a Modbus master on the bus. In a HomeMaster system that is the MiniPLC or the MicroPLC — both run ESPHome and connect to Home Assistant over the native API. To work out how many modules a panel needs and how wide it comes out, use the System Builder.
Circulation pumps, zone valves and boiler interlocks wire to the relay contacts and digital inputs you would use for any other load — the module does not prescribe a particular actuator or thermostat model.
New to this kind of system? Two guides cover the ground: building a Home Assistant automation system and a wired ESPHome smart home.
Going deeper on this module: relay channels and loads in a DIN panel, wired roller shutters and where the interlock belongs and what still works when Home Assistant is down. Related modules: STR-3221-R1, AIO-422-R1 and the OpenTherm Gateway.
Documentation
The DIO-430-R1 is open-source hardware. Hardware and firmware files are available.
Hardware Design Files
| File | Description | Link |
|---|---|---|
| Field Board Schematic | Digital input and relay interface | DIO-430-R1-FieldBoard.pdf |
| MCU Board Schematic | Controller and communication circuitry | DIO-430-R1-MCUBoard.pdf |
| Relay Board Schematic | Relay extension and output circuitry | DIO-430-R1-RelayBoard.pdf |
Compliance Documents
| File | Description | Link |
|---|---|---|
| EU Declaration of Conformity (DoC) | Signed EU Declaration of Conformity per Reg. (EC) 765/2008 and Decision 768/2008/EC | DoC_DIO-430-R1.pdf |
| Datasheet | Technical specifications and electrical characteristics | DIO-430-R1_Datasheet.pdf |
Firmware & Software
| Resource | Description | Link |
|---|---|---|
| Firmware v0.2.0 (UF2) | Pre-built firmware — drag-and-drop upgrade (BOOT: hold 1+2+3, release 1, then release 2+3 together → RPI-RP2 drive) | DIO-430-R1.uf2 |
| Firmware Source Code | Firmware and configuration tools | GitHub repository |
| Integration Guide | Setup and configuration documentation | README.md |
| WebConfig Tool | Browser-based configuration interface | Built-in USB interface |
Power Supply
The DIO-430-R1 is powered from a regulated 24 V DC supply.
Power Input Specifications
| Input Option | Terminals | Range | Notes |
|---|---|---|---|
| 24 V DC | V+ / 0V | 24 V DC | Fused and protected input |
Power input includes:
- Reverse polarity protection
- Surge protection
- TVS suppression
- EMI filtering
- Internal fuse protection
Protection circuits including TVS and fuse components are shown in the schematic.
24 V DC Input (V+ / 0V)
- Use a regulated 24 V DC supply
- Install 0.5 A fuse/breaker upstream of V+
- Observe polarity: V+ / 0V
- Route power wiring away from low-level signal wiring
Inputs & Outputs
Digital Inputs (4 channels)
| Channel | Pin | Type | Voltage | Description |
|---|---|---|---|---|
| DI1 | IN1 / GND1 | IEC 61131-2 front-end | Dry contact (module-wetted) | IEC 61131-2 digital input (ISO1212 front-end) |
| DI2 | IN2 / GND2 | IEC 61131-2 front-end | Dry contact (module-wetted) | IEC 61131-2 digital input (ISO1212 front-end) |
| DI3 | IN3 / GND3 | IEC 61131-2 front-end | Dry contact (module-wetted) | IEC 61131-2 digital input (ISO1212 front-end) |
| DI4 | IN4 / GND4 | IEC 61131-2 front-end | Dry contact (module-wetted) | IEC 61131-2 digital input (ISO1212 front-end) |
Connect potential-free (dry) contacts — wall switches, push buttons, or relay / open-collector / transistor outputs that simply close INx to GNDx. The module supplies the wetting current from its own 24 V rail; do not feed external voltage into the input. Three-wire sensors must be powered from your own supply, with their switching output wired to the input (the module provides no sensor-supply rail).
Features:
- IEC 61131-2 digital-input front-end using ISO1212 receivers; PTC fuse, TVS surge and reverse-polarity protection per channel
- Dry contact inputs only (voltage-free contact closure). Do not apply external voltage.
- TVS and fuse protection per channel
- Noise-protected inputs
Confirmed in field board schematic.
Do not apply external voltage to INx/GNDx; use voltage-free contacts only.
Relay Outputs
The DIO-430-R1 provides 3 SPDT mechanical relays (HF115F-005-1ZS3) for switching AC or DC loads. Each relay provides SPDT switching contacts (NO / NC / COM) available on the relay output terminals and is driven via optocoupler-isolated control circuitry.
Rating: 3 A MAX continuous per output (board/system limit) is the only usable output rating. Loads above 3 A must use an external contactor or power relay. The relay component may be rated higher, but this does not change the 3 A system limit.
⚠️ External protection required: Every relay output MUST be protected by an external fuse or circuit breaker (≤ 3 A per channel). Relay output circuits are not internally fused. External overcurrent protection is mandatory for safe operation.
Relay Specifications
| Channel | Contacts | Type | Rating | Description |
|---|---|---|---|---|
| Relay 1 | NO / NC / COM | SPDT | 3 A MAX per output (system rating) Relay contact rating higher (component only) |
General purpose relay output 1 (NO/NC/COM) |
| Relay 2 | NO / NC / COM | SPDT | 3 A MAX per output (system rating) Relay contact rating higher (component only) |
General purpose relay output 2 (NO/NC/COM) |
| Relay 3 | NO / NC / COM | SPDT | 3 A MAX per output (system rating) Relay contact rating higher (component only) |
General purpose relay output 3 (NO/NC/COM) |
Relay Wiring Examples
- Each relay has COM / NO / NC terminals
- Use NO for default OFF loads
- Use NC for default ON loads
- ⚡ Loads may carry hazardous voltage
- Supports AC and DC switching (DC and inductive loads require derating)
⚠️ Common protection warning: If a single common fuse or circuit breaker is used to protect multiple relay outputs, the protective device shall NOT be sized by summing relay outputs. The rating of the common protective device shall not exceed 3 A MAX per output (board/system limit).
For inductive or DC loads (contactors, solenoids, motors), use appropriate suppression (RC snubbers, MOVs, or flyback diodes). Loads exceeding the recommended PCB current limit shall be switched using external contactors or wiring methods that bypass PCB copper paths.
User Interface
| Component | Quantity | Description |
|---|---|---|
| Buttons | 3 | 3 buttons (2 user-configurable; third used for firmware-update combo) |
| LEDs | 13 | Power, 3 user LEDs, RX, TX, 3× relay, 4× DI status indicators |
Communication & Protocols
- Modbus RTU (RS-485) – UART-based communication for expansion modules and field devices
RS-485 / Modbus RTU
Terminal order differs across the HomeMaster range. Always read the silkscreen - do not wire by habit from another module. On this module the order is B-A-COM. Swapping A and B damages nothing but the node will not communicate. COM is required on every node.
All HomeMaster controllers and modules share the same RS-485 front end.
| Item | Value |
|---|---|
| Transceiver | MAX485CSA+T, half-duplex |
| Galvanic isolation | None — the transceiver shares the device's logic ground |
| Common-mode range | −7 V … +12 V referred to the device's own ground (MAX485 limit) |
| Terminals | A / B / COM |
| Surge protection | 3 × SMAJ6.8CA TVS (A–COM, B–COM, A–B) |
| Overcurrent | 2 × resettable PTC, 1.5 A hold, in series with A and B |
| EMI filtering | Common-mode choke on the A/B pair; COM referenced through 1 MΩ ∥ 4.7 nF |
| Idle state | Fail-safe biasing on board — do not add external bias resistors |
| Termination | 120 Ω at the two physical ends of the bus only |
Bus wiring rules — apply to every device on the bus:
- One twisted pair for A/B, 120 Ω characteristic impedance.
- Run COM to every node. Required, not optional: the ports are not isolated, and COM is what bounds the common-mode voltage the transceivers see.
- Prefer one power supply for the whole bus, distributed in star topology. With separate supplies, additionally tie the 0 V references together at a single point.
- Bond the cable shield to cabinet PE at one end only. Never land a shield on A, B or COM.
- Where the bus crosses into a different electrical installation with its own earthing reference — a utility or billing meter, another building, another cabinet's PE system — fit an external galvanic RS-485 isolator at that boundary. The on-board components are transient protection, not isolation, and will not survive a sustained ground-potential difference.
Cable Recommendations & Shield Grounding
General Routing Rules
- Route signal wiring (DI, RS-485) separately from relay load wiring and mains bundles
- Avoid parallel runs with contactor/motor/VFD cables; cross at 90° if needed
- Keep cable runs as short as practical; use cable ducts for segregation
- Label cables and provide strain relief at terminals
Digital Inputs (DI) Cable
- Use 2-core twisted pair per DI channel (INx + GNDx)
- Recommended wire size: 0.2–0.75 mm² (AWG 24–18) (compatible with 5.08 mm terminals)
- For long runs/noisy environments: shielded twisted pair
- Keep DI runs away from relay outputs/contactors; avoid long parallel routing with high-current wiring
- Inputs intended for dry contact (voltage-free) only. Do not apply external voltage.
RS-485 (Modbus) Cable
- Use twisted pair for A/B
- Prefer shielded twisted pair in industrial/noisy panels
- Use a daisy-chain bus (no stubs)
- Use 120 Ω termination at both physical ends
- Run COM/GND reference alongside A/B (same cable or adjacent pair) where required
Shield Grounding
- Terminate cable shield at ONE END ONLY (typically PLC/controller cabinet end) to prevent ground loops
- Bond shield to PE/EMC grounding via grounding bar or EMC clamp (short, low-impedance connection)
- Do not connect shields to signal terminals (A/B/COM, INx/GNDx)
- Keep shield terminations short (avoid long pigtails)
- Maintain separation from relay/mains wiring to reduce EMI coupling
Connectors & terminal map
Top row (24Vdc | RELAY OUTPUT)
| Pos | Label | Group | Function |
|---|---|---|---|
| 1 | 0V | POWER | 24 V DC return |
| 2 | V+ | POWER | 24 V DC input |
| 3 | NO | RELAY1 | Relay 1 normally open |
| 4 | C | RELAY1 | Relay 1 common |
| 5 | NC | RELAY1 | Relay 1 normally closed |
| 6 | NO | RELAY2 | Relay 2 normally open |
| 7 | C | RELAY2 | Relay 2 common |
| 8 | NC | RELAY2 | Relay 2 normally closed |
| 9 | NO | RELAY3 | Relay 3 normally open |
| 10 | C | RELAY3 | Relay 3 common |
| 11 | NC | RELAY3 | Relay 3 normally closed |
Bottom row (RS-485 | DI 24Vdc)
| Pos | Label | Group | Function |
|---|---|---|---|
| 1 | B | RS485 | RS-485 data - |
| 2 | A | RS485 | RS-485 data + |
| 3 | COM | RS485 | RS-485 signal reference |
| 4 | GND | DI1 | DI1 return |
| 5 | I.1 | DI1 | DI1 input |
| 6 | GND | DI2 | DI2 return |
| 7 | I.2 | DI2 | DI2 input |
| 8 | GND | DI3 | DI3 return |
| 9 | I.3 | DI3 | DI3 input |
| 10 | GND | DI4 | DI4 return |
| 11 | I.4 | DI4 | DI4 input |
Ports & service interfaces
| Id | Type | Note |
|---|---|---|
| USB-C | D+, D−, VBUS, GND | Not for field powering |
Housing notes
- GND precedes the signal on every DI pair. DIM prints the opposite order - do not wire by habit.
- Power reads 0V then V+. Most other modules read V+ first.
- Relays are SPDT. System limit 3 A @ 250 VAC regardless of the relay component rating.
System Architecture & Pinout
Safety and Installation Notes
- Use only SELV 24 V DC power supply
- Install inside control cabinet
- Protect wiring terminals from accidental contact
- Follow 3 A MAX per output system rating; use an external contactor/power relay for loads above 3 A.
- Use snubbers for inductive loads
- Install proper upstream fuse protection
Compliance & Certifications
The DIO-430-R1 module is CE marked. ISYSTEMS AUTOMATION S.R.L. (HomeMaster® brand) maintains the technical documentation and a signed EU Declaration of Conformity (DoC) available for download in the Documents and Resources section above.
- EMC Directive 2014/30/EU — EN 55032:2015 (Class B emissions), EN 55035:2017 (immunity), tested by Idvorsky Laboratories Ltd. (Job #1648)
- Low Voltage Directive 2014/35/EU — EN 62368-1:2020 + A11:2020, in-house dielectric and isolation testing by ISYSTEMS AUTOMATION compliance laboratory
- RoHS Directive 2011/65/EU — EN IEC 63000 technical documentation
- HomeMaster® — registered EU trademark (EUTM No. 019082911, EUIPO, registered 15 January 2025)
Frequently asked questions
How does it connect to Home Assistant?
Through a Modbus master on the RS-485 bus. In a HomeMaster system that is the MiniPLC or the MicroPLC running ESPHome; the relays and inputs then appear in Home Assistant over the native ESPHome API. No MQTT broker, no Modbus register mapping written by hand — a ready-made ESPHome package is published for the module.
I need 16 relays. Can this do that?
Not in one module — this one has three. Channel count is built up on the bus instead: several DIO-430-R1 modules share the same RS-485 pair, each with its own Modbus address. Where the requirement is many inputs rather than many outputs, the ALM-173-R1 carries 17 opto-isolated inputs. The System Builder works out how many modules a given number of circuits comes to, and what that costs in DIN width and bus load.
Will the relays keep working if Home Assistant goes down?
The input-to-relay mapping you configure lives in the module's flash and is executed by the module, so a local button keeps switching its relay with the server offline. Two things to know: the relays hold their last state while the controller is unreachable, and after a power cycle of the module itself all relays come up open.
What can the digital inputs be connected to?
Dry contacts — wall buttons, door and window contacts, float switches, auxiliary contacts of a contactor. The inputs are module-wetted 24 V and IEC 61131-2 compliant, with an ISO1212 front end. Press logic is configured in WebConfig, so one button can carry several functions by press pattern.
Do I have to use HomeMaster controllers?
No. The module is a standard Modbus RTU slave. Any Modbus master reaches it — a third-party PLC, a SCADA system, or your own ESP32 with an RS-485 transceiver. That is the point of using a standard bus rather than a proprietary one: the module is not locked to the controller it was bought with.
How is it configured?
Over USB-C from a browser using WebConfig — Web Serial, no driver and no vendor application. Modbus address (1–247, default 3) and baud rate (9600–115200, default 19200), input mapping, press logic, LED sources and the output interlock are set there and stored in on-device flash (LittleFS).
Is the RS-485 port isolated?
No. It has transient protection — TVS diodes, resettable PTC fuses, a common-mode choke and fail-safe biasing — but that is surge protection, not galvanic isolation. Run COM to every node on the bus. Where the bus crosses into a separate electrical installation with its own earthing reference, fit an external galvanic RS-485 isolator at that boundary.
Is it open source?
The hardware is published under CERN-OHL-W v2, the firmware and ESPHome packages under MIT. Schematics, board data and the EU Declaration of Conformity are in the Documentation section above.
Build Guides & Tutorials
Step-by-step projects that use the DIO-430-R1.
Fireplace and heating automation where DIO-430-R1 relay outputs drive the backup pump and the gas-boiler trigger over Modbus.
Related products
These other products might interest you





