Shelly S4EM-001PXCEU16
| Model | S4EM-001PXCEU16 |
| Vendor | Shelly |
| Description | EM Mini Gen4 |
| Exposes | power, voltage, ac_frequency, current, energy, produced_energy, wifi_status, ip_address, dhcp_enabled, wifi_config |
| Picture | ![]() |
Notes
Zigbee / Matter mode & pairing
The device ships in Matter mode by default. To use the device with Zigbee2MQTT, switching to Zigbee mode is required. This can be done by pressing the button on the back of the device 5 times fast enough (at 0.5 second intervals or so). The blinking red light will pause blinking temporarily. Afterwards, the device will start pairing mode for 2 minutes. To restart pairing mode, press the button three times again.
Maintenance and factory reset
In Zigbee mode, to enable the on-device access point and bluetooth for maintenance, press and hold the button on the back of the device for 3 seconds. Doing so for 10 seconds will trigger a factory reset.
When the access point is enabled, it exposes a Wifi access point that you can access without password. After connecting, open http://192.168.33.1 in your browser to access the maintenance. Recommend setting a password if you keep the access point enabled. You can also see the current voltage, current & power consumption through this interface.
Options
How to use device type specific configuration
power_calibration: Calibrates the power value (percentual offset), takes into effect on next report of device. The value must be a number.power_precision: Number of digits after decimal point for power, takes into effect on next report of device. This option can only decrease the precision, not increase it. The value must be a number with a minimum value of0and with a maximum value of3voltage_calibration: Calibrates the voltage value (percentual offset), takes into effect on next report of device. The value must be a number.voltage_precision: Number of digits after decimal point for voltage, takes into effect on next report of device. This option can only decrease the precision, not increase it. The value must be a number with a minimum value of0and with a maximum value of3ac_frequency_calibration: Calibrates the ac_frequency value (absolute offset), takes into effect on next report of device. The value must be a number.ac_frequency_precision: Number of digits after decimal point for ac_frequency, takes into effect on next report of device. This option can only decrease the precision, not increase it. The value must be a number with a minimum value of0and with a maximum value of3current_calibration: Calibrates the current value (percentual offset), takes into effect on next report of device. The value must be a number.current_precision: Number of digits after decimal point for current, takes into effect on next report of device. This option can only decrease the precision, not increase it. The value must be a number with a minimum value of0and with a maximum value of3energy_calibration: Calibrates the energy value (percentual offset), takes into effect on next report of device. The value must be a number.energy_precision: Number of digits after decimal point for energy, takes into effect on next report of device. This option can only decrease the precision, not increase it. The value must be a number with a minimum value of0and with a maximum value of3
Exposes
Power (numeric)
Instantaneous measured power. Value can be found in the published state on the power property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"power": ""}. It's not possible to write (/set) this value. The unit of this value is W.
Voltage (numeric)
Measured electrical potential value. Value can be found in the published state on the voltage property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"voltage": ""}. It's not possible to write (/set) this value. The unit of this value is V.
AC frequency (numeric)
Measured electrical AC frequency. Value can be found in the published state on the ac_frequency property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"ac_frequency": ""}. It's not possible to write (/set) this value. The unit of this value is Hz.
Current (numeric)
Instantaneous measured electrical current. Value can be found in the published state on the current property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"current": ""}. It's not possible to write (/set) this value. The unit of this value is A.
Energy (numeric)
Sum of consumed energy. Value can be found in the published state on the energy property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"energy": ""}. It's not possible to write (/set) this value. The unit of this value is kWh.
Produced energy (numeric)
Sum of produced energy. Value can be found in the published state on the produced_energy property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"produced_energy": ""}. It's not possible to write (/set) this value. The unit of this value is kWh.
Wi-Fi status (text)
Current connection status. Value can be found in the published state on the wifi_status property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"wifi_status": ""}. It's not possible to write (/set) this value.
IP address (text)
IP address currently assigned to the device. Value can be found in the published state on the ip_address property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"ip_address": ""}. It's not possible to write (/set) this value.
DHCP enabled (binary)
Indicates whether DHCP is used to automatically assign network settings. Value can be found in the published state on the dhcp_enabled property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"dhcp_enabled": ""}. It's not possible to write (/set) this value. If value equals true dHCP enabled is ON, if false OFF.
Wi-Fi Configuration (composite)
Can be set by publishing to zigbee2mqtt/FRIENDLY_NAME/set with payload {"wifi_config": {"enabled": VALUE, "ssid": VALUE, "password": VALUE, "static_ip": VALUE, "net_mask": VALUE, "gateway": VALUE, "name_server": VALUE}} To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"wifi_config": ""}.
enabled(binary): Enable/disable Wi-Fi connectivity allowed values:trueorfalsessid(text): Name (SSID) of the Wi-Fi network to connect topassword(text): Password for the selected Wi-Fi networkstatic_ip(text): Manually assigned IP address (used when DHCP is disabled)net_mask(text): Subnet mask for the static IP configurationgateway(text): Default gateway address for static IP configurationname_server(text): Name server address for static IP configuration

