- Home
- Installations
- Shelly to Shelly without Wi-Fi
Installations
Shelly to Shelly without Wi-Fi
Link Shelly devices where there is no router — one device's access point is the network.
Updated August 2026
When this is the answer
A shed at the end of the garden. A boat. A site hut. A summer house where the router is switched off for eight months of the year.
Every Shelly hosts its own access point, and that access point is a network. One device becomes the host, the others join it, and they talk to each other over it — with no router, no internet and no cloud account involved in daily operation.
The catch is in the title. You still need Wi-Fi once, at the start, to update firmware. After that the installation runs on its own.
And it does not scale. A Shelly access point accepts four clients. That is the ceiling for the whole approach, not a limit of any one method below — a fifth device simply cannot join. Where more are needed, the answer is a small router in the building, not this guide.
Prepare the devices first
Do this while a normal network is available. Once the devices are in the shed, going back to update them means carrying them home again.
- Join each device’s access point and open
http://192.168.33.1 - Go to Settings → Wi-Fi → Wi-Fi 1, connect it to a network with internet, and save
- Go to Settings → Firmware and update to the latest stable version
- Disconnect it from that network again
Do it for every device that will be part of the installation. See the web interface.
Building the network
One device is the master: it hosts the access point everything else joins. Choose the one in the most central position, and preferably one that is always powered.
On the master
- Join its access point and open
http://192.168.33.1 - Settings → Access Point — set a password and save
- Settings → Range extender — enable it, save, and reboot when asked
The range extender is what allows other Shelly devices to connect to it as clients. Without it, the access point serves phones and laptops only.
On each slave
- Join that device’s own access point and open
http://192.168.33.1 - Settings → Access Point — set a password and save
- Settings → Wi-Fi → Wi-Fi 1 — enable it, choose the master’s access point, enter the password you just set on the master, and save
The device reboots and joins the master. It is now reachable at an address on the master’s network — typically 192.168.33.2, 192.168.33.3 and upward, in the order they joined.
Note the addresses as you go. They are what the actions in the next step point at, and finding them again means logging into the master and listing its clients.
Linking the switches
With the network up, the devices control each other with the same HTTP actions used on any network — see webhooks and HTTP requests.
For two devices that should always match, each needs two actions.
On the master, under Settings → Actions → New action, select the output:
http:/rpc/Switch.Set?id=0&on=true
http:/rpc/Switch.Set?id=0&on=falseOne action fires when the output turns on, the other when it turns off.
On the slave, the mirror image, pointing back at the master:
http:/rpc/Switch.Set?id=0&on=true
http:/rpc/Switch.Set?id=0&on=falseFour actions in total, and the two relays now follow each other in both directions. Either switch controls the light.
On a Gen1 device the address is the same but the command is not — use http://192.168.33.3/relay/0?turn=on instead. See webhooks and HTTP requests for the full difference between the two formats.
The simpler route — a script
Where the slaves only need to follow the master — no two-way sync — a script on the master replaces all of it.
It finds every device connected to the access point by itself and sets them to match. Nothing has to be told an IP address, and adding a device means joining it to the network and nothing else.
/**
* Access point switch sync.
*
* Runs on the master device — the one whose access point the others join.
* Whenever its switch changes, every device connected to that access point
* is set to the same state.
*
* One-way only: the slaves follow the master, not the other way round.
* For two-way sync, use the paired actions described in the guide.
*
* Switch components only, not Light.
* Up to four connected devices.
*/
// ===== CONFIGURATION =====
let SWITCH_ID = 0; // which output the others follow
let TARGET = "/rpc/Switch.Set?id=0&on="; // what to call on each client
// ===== END CONFIGURATION =====
function sendToClients(state) {
Shelly.call("Wifi.ListAPClients", {}, function (result, err) {
if (err) {
print("Could not list access point clients: " + JSON.stringify(err));
return;
}
let clients = result.ap_clients;
if (!clients || clients.length === 0) {
print("No devices connected to the access point");
return;
}
print("Syncing " + clients.length + " device(s) to " + (state ? "on" : "off"));
for (let i = 0; i < clients.length; i++) {
let ip = clients[i].ip;
if (!ip) continue;
Shelly.call("HTTP.GET", { url: "http://" + ip + TARGET + (state ? "true" : "false") },
function (res, code, msg) {
if (code) print("Failed to reach " + ip + ": " + msg);
});
}
});
}
Shelly.addStatusHandler(function (status) {
if (status.component !== "switch:" + SWITCH_ID) return;
if (typeof status.delta.output === "undefined") return;
sendToClients(status.delta.output);
});
print("Access point switch sync running on switch " + SWITCH_ID);Install it on the master as described in how to add a script, and enable run on startup.
Steps 1 to 3 above are still required — the script needs the network to exist before it can find anything on it.
What you give up
Worth saying to the customer before they discover it:
- No schedules. Without an internet connection the devices cannot set their clocks, so anything time-based is unavailable.
- No app control unless the phone is joined to the master’s access point — which means no internet on the phone at the same time.
- No remote access, no notifications, no scenes. All of those live in the cloud.
- No firmware updates until the installation is brought back to a network.
What you keep is the part that matters in a shed: the switches work, they work instantly, and they keep working.
Tips & best practices
- Set access point passwords on every device. An open access point in a boat marina is an open access point.
- Write the addresses on the enclosure. In two years nobody will remember which device is
.3. - Choose a permanently powered device as master. If the master is on a circuit that gets switched off, the whole network goes with it.
- Test both directions before leaving, if you built the four actions. It is easy to create three and notice only from one end.
- Bring the devices home to update. Plan it as a service visit rather than discovering it on site.