I have been looking for a long time for a way to get dry contacts (also called potential free) with NO (Normally Open) and NC (Normally Closed) outputs, as SONOFF 4CH modules (Pro or Standard version) do excellently.
This type of dry contact equipment is extremely versatile. It allows the control of electrical appliances or lamps, but also watering valves regardless of their supply voltage (12V, 24V, 230V …), or to send a short pulse to open an automatic gate, actuate an electric waste or trigger a siren. The dry contact works without injecting any voltage specific to the module, it only connects or disconnects two wires according to the NO/NC state, which avoids any risk of electrical conflict between the module and the controlled device.
I ordered this Zigbee module to test it. These tests are not sponsored: I bought this product with my own money, sometimes recovered through resales such as those available in my garage sale.
The documentation indicates that the voltage supported on dry contacts can be up to 240V maximum, with a capacity of 10 A (i.e. 2200 W at 220 V for a resistive load such as a radiator). For inductive or capacitive loads such as LEDs, the limit is 220 W maximum at 220 V, because these loads generate peaks of current at start-up that could damage the relay if the power is too high.
Choice of the suitable model
There are two models depending on the power supply available: ZG-001 running in 7-32V DC (ideal for low voltage power supplies such as gate or alarm 12V power supply), and TYZG-002 (or ZG-002) accepting 85-250V AC (perfect for 230V direct mains power supply). I chose the TYZG-002 for my tests because it easily fits into a standard home installation.
Both models also have a USB 5V power supply via micro-USB connector, useful for tabletop testing or a PoE splitter power supply from an Ethernet network.


Outputs of the case in detail

This module offers a single relay output equipped with three screw-in terminals:
- COM : common terminal, mandatory for any connection. This is the shared reference point between NO and NC.
- NC : Normally closed. At rest (relay not activated), NC is connected to COM, forming a closed circuit. Ideal for fail-safe security where the stop must be the default position.
- NO : Normally open. At rest, NO is isolated from COM. When the relay is activated, NO connects to COM. Perfect for on-demand commands.
When the relay is activated (via Zigbee or physical button), the states are reversed: NC isolates and NO connects to COM. The relay is a standard electromechanical component with a typical service life of 100 000 cycles, largely sufficient for domestic use.
Where to buy this equipment?
Here is the link to the page dedicated to TYZG-002 (or ZG-002). I referenced the sellers and prices.
Integration with Zigbee2MQTT
I activate the pairing mode in Zigbee2MQTT (click on ‘Permit Join’), then I feed the module under 230V. Pairing is done in seconds without further intervention.
I have renamed the ‘Came Impulsion Portal’ equipment for its use in order to control an automatic short-pulse portal.

The module appears as ‘TS0001’ with these properties and commands:

Available controls and sensors
State
Type: ON/OFF binary switch.
Role: activates or disables the relay (commands the NO-COM or NC-COM connection). The displayed state corresponds to the actual position of the relay, editable by Zigbee or a physical button connected to the module inputs.
Electrical measurements
I did not test these features, because I didn't know them before pairing. Doubts persist about their reliability, as this module is mainly a dry relay with no obvious current shunt. I don't think that's going to bring up any data.
power
Type: digital in watts (W).
Role: instantaneous power measured on the load connected to the relay.
current
Type: digital in amperes (A).
Role: instantaneous current passing through the relay.
voltage
Type: digital in volts (V).
Role: measured mains voltage (approximately 230V).
energy
Type: digital in kWh (cumulative).
Role: total energy consumed since the last reset or installation.
switch_type
Type: enum text: toggle | state | momentary.
Role: configures the behaviour of a connected physical button:
- toggle : bistable switch, each press reverses the state.
- state : follows the position of the button (ON so high, OFF so low), for back and forth.
- momentary : momentary pusher, sends a pulse ON then OFF quickly. Ideal for portals or waste.
Change this value via the Zigbee2MQTT interface if the commands do not respond. 
power_outage _memory
Type: enum text: | off | restore.
Role: behaviour of the relay after sector shutdown:
- on : always ON on the running return.
- off : always OFF at the current return.
- restore : reverts to the pre-cut state (internal memory).
linkquality
Type: Digital LQI (0-255).
Role: Zigbee signal quality. Value >120 indicates excellent binding.
Use in Home Assistant
The equipment appears automatically via the Zigbee2MQTT integration.

I have deactivated unnecessary entities to simplify. 

