

The Shelly Pro 3 is a versatile smart relay designed for remote control and automation of electrical devices. Manufactured by Shelly, this device features Wi-Fi connectivity and is compatible with a wide range of home automation systems, including MQTT, REST API, and popular platforms like Home Assistant. With three independent relay channels, the Shelly Pro 3 is ideal for controlling lighting, appliances, and other electrical loads in residential, commercial, or industrial environments.








| Parameter | Specification |
|---|---|
| Manufacturer | Shelly |
| Model | Pro 3 |
| Power Supply | 110-240V AC, 50/60Hz |
| Maximum Load per Channel | 16A |
| Total Device Load | 48A |
| Connectivity | Wi-Fi 802.11 b/g/n (2.4 GHz) |
| Control Channels | 3 independent relay channels |
| Operating Temperature | -20°C to +40°C |
| Dimensions | 90mm x 52mm x 57mm |
| Certifications | CE, RoHS |
The Shelly Pro 3 features terminal blocks for wiring connections. Below is the pin configuration:
| Pin Label | Description |
|---|---|
| L | Live input for the device |
| N | Neutral input for the device |
| O1 | Output for Channel 1 |
| O2 | Output for Channel 2 |
| O3 | Output for Channel 3 |
| I1 | Input for Channel 1 (manual switch control) |
| I2 | Input for Channel 2 (manual switch control) |
| I3 | Input for Channel 3 (manual switch control) |
Wiring the Device:
Powering On:
Connecting to Wi-Fi:
Configuring Automation:
The Shelly Pro 3 can be controlled via MQTT, which can be integrated with an Arduino UNO using an Ethernet or Wi-Fi shield. Below is an example of Arduino code to send MQTT commands to the Shelly Pro 3:
#include <PubSubClient.h>
#include <WiFi.h>
// Wi-Fi credentials
const char* ssid = "YourWiFiSSID";
const char* password = "YourWiFiPassword";
// MQTT broker details
const char* mqtt_server = "192.168.1.100"; // Replace with your MQTT broker IP
const int mqtt_port = 1883;
const char* mqtt_user = "mqtt_user"; // Replace with your MQTT username
const char* mqtt_password = "mqtt_pass"; // Replace with your MQTT password
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
Serial.begin(115200);
// Connect to Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi connected");
// Connect to MQTT broker
client.setServer(mqtt_server, mqtt_port);
while (!client.connected()) {
if (client.connect("ArduinoClient", mqtt_user, mqtt_password)) {
Serial.println("Connected to MQTT broker");
} else {
Serial.print("Failed to connect, rc=");
Serial.print(client.state());
delay(2000);
}
}
}
void loop() {
// Example: Turn on Channel 1 of Shelly Pro 3
if (client.connected()) {
client.publish("shellypro3/relay/0/command", "on");
delay(5000); // Wait 5 seconds
client.publish("shellypro3/relay/0/command", "off");
delay(5000); // Wait 5 seconds
}
}
Device Not Connecting to Wi-Fi:
Relay Channels Not Responding:
Device Overheating:
MQTT Commands Not Working:
Can the Shelly Pro 3 be used outdoors?
Does the Shelly Pro 3 support dimming?
Can I control the Shelly Pro 3 without the internet?
Is the Shelly Pro 3 compatible with voice assistants?
This concludes the documentation for the Shelly Pro 3. For further assistance, refer to the official Shelly support resources.