Skip to Content

RGB and Tunable White LED Controller for Home Assistant — RGB-621-R1, DIN Rail, Modbus RTU

DIN-rail RGB and tunable white LED controller for Home Assistant and ESPHome. Five low-side PWM channels - red, green, blue, cool white and warm white - for 12 or 24 V common-anode strip, with 12-bit gamma-corrected dimming exposed on Modbus as both 0-255 and 0-4095. One dry-contact relay rated 3 A at 250 V AC switches the strip supply, and two IEC 61131-2 compliant 24 V inputs take wall buttons. Modbus RTU slave on RS-485.

Manufacturer: HomeMaster Internal Reference: HM-RGB-621-R1 Mfr. Part#N: RGB-621-R1 Barcode: 5940031101756

110.00 110.00 VAT included

Returns & Warranty Conditions
Shipping & Availability
We ship orders within 1–2 business days for items in stock.
For out-of-stock products, ships within 1–2 business days after restock
Shipping times will automatically update once the product becomes available.


v0.1.0 is deprecated — use v0.2.0. v0.1.0 remains available for existing installs but is no longer maintained.

RGB and tunable white LED controller for Home Assistant

The HomeMaster RGB-621-R1 is a DIN-rail LED strip controller for a wired smart home running Home Assistant. Five low-side PWM channels drive RGB plus tunable white — red, green, blue, cool white and warm white — on 12 or 24 V common-anode strip, and the module is a Modbus RTU slave on RS-485, so an ESPHome controller exposes the light to Home Assistant natively, with no cloud service, no MQTT broker and no vendor gateway.

Dimming is 12-bit with gamma correction, which is what the eye actually notices: the difference between 8-bit and 12-bit shows up at the bottom of the range, where an 8-bit channel steps visibly and a gamma-corrected 12-bit one keeps going down smoothly. Modbus exposes both resolutions, 0–255 and 0–4095, so a simple integration and a fine one can talk to the same module.

A dry-contact relay on board switches the strip's own power supply, which is what keeps a driver from idling at low output when the light is nominally off, and two 24 V IEC 61131-2 inputs take wall buttons directly. Button behaviour — gestures, hold-to-dim, scene recall and relay follow — is configured in WebConfig and stored in the module's flash, so a wall press still changes the light when the controller or the Home Assistant server is offline.

The HomeMaster RGB-621-R1 is a smart RGB + CCT LED controller module designed for HomeMaster automation systems and other Modbus RTU networks. It features five high-current PWM outputs with 12-bit + gamma-corrected smooth dimming for RGB and Tunable White (CCT) LED control, two IEC 61131-2 compliant digital inputs for wall switches or sensors, and one relay output for switching external loads or LED drivers.

Powered by the Raspberry Pi RP2350A microcontroller, the module supports RS-485 (Modbus RTU) communication and configuration via WebConfig over USB-C — no drivers or external software required. Configuration is stored in on-device flash (LittleFS) and survives power loss and reboots. It connects directly to HomeMaster MicroPLC and MiniPLC controllers or operates as a standalone Modbus slave in any automation network.

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.

Local logic keeps running even if the network or the Home Assistant server goes down — the controller does the thinking, the server only visualizes.

HomeMaster RGB-621-R1 RGB+CCT LED control module
DIN rail • 24 V DC • Modbus RTU • USB-C WebConfig

Quick Overview

  • RGB + CCT LED control module for Modbus automation systems
  • DIN-rail form factor with 24 V DC supply
  • 5 PWM outputs (R, G, B, CW, WW), 2 IEC 61131-2 digital inputs, 1 relay
  • RS-485 Modbus RTU communication
  • Local configuration via USB-C WebConfig interface
  • Surge-protected inputs and outputs with an IEC 61131-2 input front end

Typical Applications

  • RGB and tunable white (CCT) lighting control
  • Ambient and architectural lighting
  • LED strip and fixture dimming
  • Scene control with wall switch inputs
  • Daylight and human-centric lighting
  • Status indicators and alarm signaling
  • Building and home automation
  • PLC lighting expansion module

Tech Specs

Technical Specifications
SpecificationDetails
MicrocontrollerRP2350A dual-core microcontroller
StorageExternal QSPI Flash (32 Mbit)
Power Input24 V DC nominal (18–30 V DC recommended)
Input Protection24 V logic: reverse polarity diode (STPS340U), TVS surge suppression, EMI filtering. LED PS: 10 A fuse, ideal-diode stage (LM74610 + N-channel MOSFET), TVS surge suppression
Main Logic SupplyBuck regulator 24 V → 5 V (~4.96 V nominal), 3.3 V LDO regulator
LED Outputs5 × low-side MOSFET outputs (AP9990GH-HF, R, G, B, CW, WW)
LED Output VoltageExternal 12–24 V DC supply
LED PS input (shared)Separate 12/24 V supply, fused at 10 A per module. The 10 A budget may be drawn by one channel or split across any number of channels in use. Strip load depends on length and W/m — not a fixed module wattage.
Any single PWM channel10 A — same shared budget as the module; no channel-specific ceiling below 10 A
LED strip sizingSize external LED PSU for strip length and W/m. Do not share LED PS with module logic V+/0V.
PWM Frequency≈1 kHz (1000 Hz), fixed — all five channels
Digital Inputs2 × IEC 61131-2 compliant 24 V digital inputs (ISO1212 front-end) (DIx + GND), dry-contact (module-wetted); per-channel PTC fuse, TVS surge suppression, reverse-polarity protection, EMI filtering
Relay Outputs* Dry-contact relay output (C / NO). 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 Interface2 buttons, 8 LEDs (power, 2 user, RX, TX, 1× relay, 2× DI)
CommunicationRS-485 Modbus RTU (MAX485, half-duplex), non-isolated; TVS surge protection, PTC fuses, common-mode choke, fail-safe biasing
USBUSB-C, 5 V logic, ESD protected
Typical Power Consumption0.2–0.5 W (logic only); maximum approximately 1 W
Modbus Address Range1–247 (default: 3); 248–255 are reserved by the Modbus specification — values outside 1–247 are clamped
Modbus Baud Rate9600–115200 (default: 19200)

Note: Relay outputs are not internally fused. Use external overcurrent protection per applicable standards and installation requirements.

Installation, Environmental & Mechanical

Installation, Environmental & Mechanical Specifications
Category Specification Details
Terminal Specifications Terminal type Pluggable screw terminal blocks, 5.08 mm pitch
Wire cross-section0.2–2.5 mm² (AWG 24–12)
Tightening torque0.4–0.6 Nm
Environmental Ratings Operating temperature0 °C to +40 °C
Storage temperature−10 °C to +55 °C
Relative humidity0–90 % RH, non-condensing
Ingress protectionIP20 (inside cabinet only)
Maximum altitude2000 m
Pollution degree2
Mechanical & Packaging Product dimensions 52.5 × 90 × 59 mm (L × W × H)
DIN width3 modules (3 × 17.5 mm)
Mounting35 mm DIN rail (EN 50022)
EnclosurePC/ABS, UL94-V0
Net weightTBD
Gross weightTBD
Pack size140 × 125 × 94 mm (L × W × H)
NotesAll 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.

HomeMaster RGB-621-R1 mechanical drawing (front and side view) with dimensions in mm
Mechanical drawing: front view + side view + DIN-clip depth (all dimensions in mm).

Home Assistant / Modbus / Web Config Integration

The RGB-621-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)

  1. Mount & Power – Mount the module on a DIN rail and connect 24 V DC.
  2. Connect USB-C – Connect USB-C cable to the module.
  3. Open WebConfig – Open WebConfig page in Chrome or Edge browser.
  4. Connect Device – Click Connect and select the device.
  5. Configure – Set Modbus address and baud rate.
  6. Test I/O – Test LED channels, relay, and digital inputs.
  7. Save & Disconnect – Save settings and disconnect USB-C.

Features:

  • Driverless browser-based configuration
  • Live configuration and diagnostics
  • Persistent flash storage
  • No external software required

WebConfig v0.2.0 — gesture engine, hold-to-dim, scenes, 12-bit gamma, and relay FOLLOW (USB-C; settings stored in flash).

RGB-621-R1 WebConfig v0.2.0 — connection, Modbus, and live light levels RGB-621-R1 WebConfig v0.2.0 — wall-switch inputs, gestures, and engine timings RGB-621-R1 WebConfig v0.2.0 — PWM channel trim, fade, and power-on RGB-621-R1 WebConfig v0.2.0 — hold-to-dim timing and scene presets RGB-621-R1 WebConfig v0.2.0 — relay FOLLOW, user LEDs, and gamma output quality

Minimal ESPHome YAML (Controller side)

Use this on the MiniPLC/MicroPLC (ESPHome). It enables the RS-485 bus and imports the RGB-621-R1 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:
  rgb1:
    url: https://github.com/isystemsautomation/homemaster-dev
    ref: main
    files:
      - path: RGB-621-R1/Firmware/v0.2.0/default_rgb_621_r1_plc/default_rgb_621_r1_plc.yaml
        vars:
          rgb_prefix: "RGB#1"
          rgb_id: rgb_1
          rgb_address: 3
    refresh: 1d

ESPHome 2026.7.0 raised the Modbus client defaultsturnaround_time from 100 ms to 600 ms and send_wait_time from 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.

rgb_address must match the Modbus address configured in WebConfig.

Full Modbus register map and integration details are in the RGB-621-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.

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: how many relay channels you need and what should switch the load and wiring a new house before the walls close.

Frequently asked questions

Which LED strips does it work with?

Constant-voltage, common-anode strip at 12 or 24 V DC — RGB, RGB plus cool and warm white, or tunable white alone using just the CW and WW channels. The five outputs are low-side MOSFET sinks: the strip's positive rail goes to the LED supply, each colour's negative to a channel terminal. Addressable strip such as WS2812 or SK6812 is a different technology and is not what this module drives.

How does it get into 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 light then appears in Home Assistant over the native ESPHome API. No MQTT broker, no hand-written Modbus register map.

Will the strip make an audible whine?

It can. PWM runs at a fixed frequency of about 1 kHz, which is inside the audible range, and some strips and power supplies react to that with a faint tone at certain brightness levels — this is a property of the strip and its driver as much as of the controller. If it matters in a bedroom, test the specific strip and supply before committing to them. We would rather say this here than have you find out after installation.

Why 12-bit if Home Assistant only sends 0–255?

Because the low end is where dimming falls apart. Eight bits gives 255 steps spread linearly across a response the eye reads logarithmically, so the last few percent arrive in visible jumps. Twelve bits with gamma correction puts far more steps where perception is most sensitive. The module publishes both scales on Modbus — 0–255 and 0–4095 — so an integration can use whichever it supports.

How much LED load can it take?

The module path is fused at 10 A, from an external 12–24 V LED supply that is separate from the module's own 24 V DC power. That 10 A is a shared budget: one channel may take the full 10 A, or the current may be split across however many channels you use. Terminal blocks and board heat dissipation sit above the fuse; size the external LED PSU for strip length and W/m.

Can it control colour temperature without RGB?

Yes. Use the CW and WW channels alone for a tunable-white fixture and leave the R, G and B channels unconnected. The relay and the digital inputs work the same way in that configuration.

Do I have to use HomeMaster controllers?

No. The module is a standard Modbus RTU slave on RS-485, address 1–247 (default 3) and baud 9600–115200 (default 19200). Any Modbus master reaches it: a third-party PLC, a SCADA system, or your own ESP32 with an RS-485 transceiver.

Is the RS-485 port isolated?

No. The digital inputs use an ISO1212 IEC 61131-2 front end, which conditions the input but is not galvanic isolation, and the RS-485 transceiver shares the device's logic ground. What is present is transient protection — TVS diodes, resettable PTC fuses and fail-safe biasing. Run COM to every node on the bus, and fit an external RS-485 isolator where the bus crosses into a separate electrical installation.

Documentation

The RGB-621-R1 is open-source hardware. Hardware and firmware files are available.

Hardware Documentation

File Description Link
Field board schematic RGB-621-R1 field I/O / power stage RGB-621-R1-FieldBoard.pdf
MCU board schematic RGB-621-R1 controller / MCU board RGB-621-R1-MCUBoard.pdf
Datasheet (RGB-621-R1) Module specifications and electrical characteristics Download datasheet (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_RGB-621-R1.pdf
Datasheet Technical specifications and electrical characteristics RGB-621-R1_Datasheet.pdf

Firmware & Software

Resource Description Link
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

Cabling and Wirings

Power Supply

Module power (V+ / 0V): The RGB-621-R1 logic and communication operate from 24 V DC SELV/PELV only. Connect +24 V and 0 V (GND) to the terminals marked V+ and 0V (top block).

LED power (+ / −): The LED supply terminals (LED PS or + / on the top block) accept 12 V or 24 V DC. Use a separate supply for the LED strip; supported LED strips are 12/24 V DC common-anode.

Power Input
ParameterSpecification
Module (V+ / 0V)24 V DC nominal (18–30 V DC recommended) — logic and module only
LED supply (+ / −)12 V or 24 V DC — for LED strip; separate from module power
ProtectionPTC fuses, reverse polarity (STPS340U), TVS (SMBJ33A)
Ground referenceField return GND_FUSED; do not bridge to logic GND externally
24 V DC power supply wiring: V+ and 0V terminals
Connect + to V+ and to 0V.

Terminal Block Layout

Top row (LED PS | 24Vdc | RELAY | DI 24Vdc)

PosLabelGroupFunction
1+LED_PSLED PSU positive (12 or 24 V)
2-LED_PSLED PSU negative
3V+POWER24 V DC input
40VPOWER24 V DC return
5NORELAYRelay normally open
6CRELAYRelay common
7I1DIInput 1
8GNDDIInput return
9I2DIInput 2

Bottom row (LED | RS-485)

PosLabelGroupFunction
1+LED_OUTCommon anode for all channels
2RLED_OUTRed channel
3GLED_OUTGreen channel
4BLED_OUTBlue channel
5CWLED_OUTCool white channel
6WWLED_OUTWarm white channel
7COMRS485RS-485 signal reference
8ARS485RS-485 data +
9BRS485RS-485 data -

Ports & service interfaces

IdTypeNote
USB-CUSB-C is for WebConfig setup and firmware update. It may be connected at any time, including while the module is powered from its 24 V supply. Not a field power or data bus.

Housing notes

  • Relay is SPST-NO. There is no NC terminal - this is not an SPDT equivalent.
  • LED channels are labelled R G B CW WW, not CH1..CH5.
  • Common anode: one + terminal shared by all five channels.
  • The LED strip needs its own PSU on LED PS. The module supply cannot power it.

Top block: LED + / − (12 or 24 V DC LED supply), V+ / 0V (24 V DC module supply), Relay NO/C, I1 / GND / I2 (digital inputs). Bottom block: R, G, B, CW, WW (low-side PWM), COM (LED + common, 12/24 V), A, B, COM (RS-485).

RGB-621-R1 front view: power, relay, inputs (top); PWM and RS-485 (bottom)
Front view: power, relay, inputs (top); PWM and RS-485 (bottom).

LED Output Wiring

LED channels (R, G, B, CW, WW) are low-side PWM sinks (AP9990GH-HF). Connect the LED strip + to COM (positive from your 12 or 24 V LED supply) and each color cathode to its channel. Supported LED strips: 12/24 V DC common-anode. LED PS accepts 12 or 24 V DC, fused at 10 A per module (shared across channels). Size the external LED PSU for strip length and W/m. Do not share with module logic supply.

LED Strip Connections

RGB Connection

  • Connect the LED strip common positive (12/24 V) to the COM terminal.
  • Connect individual channels: R → Red, G → Green, B → Blue.
  • All outputs are low-side switching (sinking), meaning the module controls the negative side of each LED channel.

RGB + CW Connection

  • Same as RGB, with an additional CW → Cool White channel.
  • Used for tunable white + RGB applications.

RGB + CW + WW (RGBCCT)

  • Full 5-channel configuration: R, G, B, CW, WW.
  • LED strip must be common-anode (shared positive via COM).
  • This is the native operating mode of the module.

CWWW (Dual White)

  • Only CW and WW channels are used.
  • Allows color temperature control (CCT) without RGB.
RGB LED strip wiring: +, R, G, B
RGB (4-wire) LED strip connection.
RGB + Cool White LED strip wiring
RGB + CW (5-wire) LED strip connection.
CCT / Tunable White (CW + WW) LED strip wiring
CCT / Tunable White (CW + WW) connection.
Full RGBCCT (6-wire) LED strip wiring
Full RGBCCT (6-wire) LED strip connection.

Relay Wiring

Dry-contact relay output (C / NO). Rated load (system limit): 3 A @ 250 V AC (resistive); max 750 VA @ 250 V AC, 90 W @ 30 V DC. For inductive loads, add an external flyback diode or RC snubber. Keep relay conductors away from signal wiring.

⚠️ External protection required: The relay output MUST be protected by an external fuse or circuit breaker sized for the load and wiring. Relay output circuits are not internally fused. External overcurrent protection is mandatory for safe operation.

⚠️ Hazardous voltage: Relay terminals may carry mains AC or high-voltage DC depending on the connected load. Installation and servicing must be performed by qualified personnel in accordance with local electrical codes.

Relay wiring: NO and C to external load
Relay normally open (NO) and common (C) connection to load.

Digital Input Wiring

Inputs use an ISO1212 IEC 61131-2 digital-input front-end (not galvanic isolation). Connect potential-free (dry) contacts — wall switches, push buttons, or relay / open-collector / transistor outputs that simply close I1/I2 to GND. 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). Each input has a PTC fuse, TVS, and reverse protection.

Digital inputs I1, I2 and GND with dry-contact switches
Dry-contact wiring to I1 and I2 (common GND).

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 COM-A-B. 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.

RS-485 Front End
ItemValue
TransceiverMAX485CSA+T, half-duplex
Galvanic isolationNone — the transceiver shares the device's logic ground
Common-mode range−7 V … +12 V referred to the device's own ground (MAX485 limit)
TerminalsA / B / COM
Surge protection3 × SMAJ6.8CA TVS (A–COM, B–COM, A–B)
Overcurrent2 × resettable PTC, 1.5 A hold, in series with A and B
EMI filteringCommon-mode choke on the A/B pair; COM referenced through 1 MΩ ∥ 4.7 nF
Idle stateFail-safe biasing on board — do not add external bias resistors
Termination120 Ω 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.
RS-485 bus wiring: A, B, COM and 120 Ω termination
Connect A, B, and COM to the bus; external 120 Ω at both bus ends.

Cable Recommendations & Shield Grounding

General Routing Rules

  • Route low-level signal cables (RS-485, DI) separately from power and LED wiring.
  • If crossing power cables is unavoidable, cross at 90°.
  • Keep cable runs as short as practical; avoid parallel runs with high-current conductors.

RS-485 (Modbus) Cable

  • Twisted pair recommended (120 Ω characteristic impedance).
  • Shielded cable recommended in industrial environments.
  • Use one twisted pair for A/B and a third conductor for COM. COM must be run to every node.
  • Examples: J-Y(ST)Y 2×2×0.5 mm² or LI2YCY PiMF 2×2×0.50.

Shield Grounding

  • Bond cable shield(s) to cabinet PE/EMC ground at one end (PLC side recommended).
  • Do not connect shields directly to signal terminals (A/B/COM).

System Architecture & Pinout

RGB-621-R1 System Block Diagram
System block diagram.
RGB-621-R1 MCU Pinout
RP2350A MCU pinout.
RGB-621-R1 Field Board
Field board layout.
RGB-621-R1 MCU Board
MCU board layout.

Safety and Installation Notes

  • Module logic: use only SELV/PELV 24 V DC on V+ / 0V. LED supply (+ / −) can be 12 or 24 V DC.
  • Install inside control cabinet; protect wiring terminals from accidental contact.
  • Each module must have its own 24 V DC supply for V+ / 0V; do not bridge GND_FUSED and logic GND externally.
  • Never connect mains voltage to any terminal.
  • Use upstream fusing and snubbers for inductive loads on the relay.
  • Size LED supply and wiring for the strip load (length × W/m), within the LED PS ceiling of 10 A per module (shared across channels in use).
  • Installation and servicing by qualified personnel only.

Compliance & Certifications

The RGB-621-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)

Licensing. Hardware design files — schematics, PCB layouts and bills of materials — are published under CERN-OHL-W v2. Firmware and the ESPHome integration packages are published under the MIT licence. Full terms are in the LICENSE files in the HOMEMASTER repository.