Shelly S4SW-002P16EU-COVER
| Model | S4SW-002P16EU-COVER |
| Vendor | Shelly |
| Description | 2PM Gen4 (Cover mode) |
| Exposes | cover (state, position, tilt), wifi_status, ip_address, dhcp_enabled, wifi_config |
| Picture | ![]() |
Notes
Zigbee / Matter mode
The device ships in Matter mode by default. To use the device with Zigbee2MQTT, switching to Zigbee mode is required. This can either be done via the Web UI, or by pressing the button on the back of the device 5 times. Afterwards, the device will start pairing mode for 3 minutes. To restart pairing mode, press the button three times again.
Usage scenarios
The Shelly 2PM Gen4 device allows two different usage scenarios that appear as separate devices in Zigbee2MQTT:
- Cover Control (
S4SW-002P16EU-COVER) - This device supports window covering controls with lift and tilt functionality with power monitoring - Switch Control (
S4SW-002P16EU-SWITCH) - Provides dual switch functionality with power monitoring
The usage is automatically detected based on the endpoint configuration. For now, changing usage is only possible through Shelly WebUI.
Cover Mode Features
When operating in cover mode, this device provides:
- Window covering controls (lift and tilt)
- Position feedback
- State reporting (OPEN/CLOSE)
Vendor product page: Shelly 2PM Gen4
Maintenance and factory reset
To enable the on-device access point and bluetooth for maintenance, press and hold the button on the back of the device for 5 seconds. Doing so for 10 seconds will trigger a factory reset.
Options
How to use device type specific configuration
invert_cover: Inverts the cover position, false: open=100,close=0, true: open=0,close=100 (default false). The value must betrueorfalsecover_position_tilt_disable_report: Do not publish set cover target position as a normal 'position' value (default false). The value must betrueorfalse
Exposes
Cover
The current state of this cover is in the published state under the state property (value is OPEN or CLOSE). To control this cover publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"state": "OPEN"}, {"state": "CLOSE"}, {"state": "STOP"}. It's not possible to read (/get) this value. To change the position publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"position": VALUE} where VALUE is a number between 0 and 100. To change the tilt publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"tilt": VALUE} where VALUE is a number between 0 and 100.
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

