Shelly til Shelly Standalone uden Wi-fi (men med Wi-fi)
Introduktion:
Selvom du befinder dig i et område uden Wi-Fi-dækning, er det faktisk muligt at få to eller flere Shelly-enheder til at integrere med hinanden baseret på Actions (webhooks) og range extender funktionen. I dette eksempel vil vi bruge to Shelly Plus 1PM-enheder. Den ene med range extender aktiveret kalder vi Master. Den anden kalder vi Slave.
Note:
Da vi bruger enhederne uden internetforbindelse, er det ikke muligt at bruge Schedule funktionen.
*Update* Script Version (Kun på engelsk for nu)
If you just want a simple follow function where one or more relays (up to four) automatically mirror the state of a master relay. this can now be done easily with a script.
Note: This script only mirrors the ON/OFF status from one relay to others. If you need two-way synchronization (where both relays follow each other), you still need to follow the original guide below.
Script - Access Point Switch Sync (Click to expand)
Access Point Switch Sync script:
Detects all devices connected to the Shelly’s access point.
Sends the current switch state (on/off) to each connected client.
Automatically keeps all connected devices synchronized.
Supports up to 4 clients per access point
Tested with FW 1.7.1
Setup steps
Enable Range extender mode on your Shelly device (Settings → Wi-Fi → Access Point → Enable)
Upload the script under (Settings → Scripts → Add new script → Paste code → Save & Enable) Note: make sure to toggle “Run on startup”
Connect other Shellys to this AP (they will act as clients).
Works only with channel ID:0 (can be adjustet in script settings)
/*
Automatically detects all devices connected to the access point
and synchronizes the switch state with them.
!!Script can handle max 4 connected devices!!
*/
try {
// CONFIG
let SWITCH_ID = 0; // which relay we follow
let TARGET_ENDPOINT = "/rpc/Switch.Set?id=0&on="; // webhook path
function sendToClients(state) {
print("Fetching AP clients...");
Shelly.call("Wifi.ListAPClients", {}, function(result, err) {
if (err) {
print("Error getting AP clients:", JSON.stringify(err));
return;
}
let clients = result.ap_clients;
if (!clients || clients.length === 0) {
print("No clients connected to AP");
return;
}
print("Found", clients.length, "clients");
for (let i = 0; i < clients.length; i++) {
let ip = clients[i].ip;
if (!ip) continue;
let url = "http://" + ip + TARGET_ENDPOINT + (state ? "true" : "false");
print("-> Sending command to", ip, ":", url);
Shelly.call("HTTP.GET", { url: url }, function(res, err) {
if (err) {
print("Error sending to", ip, ":", JSON.stringify(err));
} else {
print("Response from", ip, ":", JSON.stringify(res));
}
});
}
});
}
// Event listener
Shelly.addEventHandler(function(event) {
if (event.component === "switch:" + SWITCH_ID &&
event.info && event.info.event === "toggle") {
let newState = event.info.state; // true = on, false = off
print("Switch", SWITCH_ID, "toggled. New state:", newState);
sendToClients(newState);
}
});
print("Follow script started. Waiting for toggle events...");
} catch (e) {
print("Error in follow script:", e.message || e);
}
The originale guide fra webinterface starter her:
Trin 1: Opdater Firmwaren
Det er altid en god idé at opdatere firmwaren til den nyeste version. For at gøre dette skal enhederne være tilsluttet et Wi-Fi-netværk med internetadgang. Udfør dette trin for alle enheder.
1. Log ind på enhedens access point og gå til den web interface ved at skrive 192.168.33.1 i en browser.
2. Gå til Settings -> Wi-fi og Enable Wi-fi 1. Vælg et Wi-fi netværk med internet forbindelse og tast password ind. Save settings.
3. Når den er forbundet til netværket Gå til Settings -> Firmware. søg efter og opdater til seneste stabile.
Trin 2: Opsæt Master. AP password og aktiver Range Extender
1. Log ind på Master enhedens Wi-Fi network og tilgå web interfacet med adressen 192.168.33.1 Gå til Settings -> Access Point og giv det et password. Save settings.
2. Gå til Settings -> Range extender og enable range extender. Save settings og reboot, når den spørg efter det.
Trin 3: Opsæt Slave. AP password og opret forbindelse til Master
1. Log ind på Slave enhedens Wi-Fi network og tilgå web interfacet med adressen 192.168.33.1 Gå til Settings -> Access Point og giv det et password. Save settings.
2. Gå til Settings -> Wi-fi og Enable Wi-fi 1. Vælg Master’ens Wi-fi netværk og skriv password. Save settings.
3. OBS!! Når en Shelly enhed forbinder til en anden Shelly’s access point, vil den ikke længere kunne tilgås med adressen 192.168.33.1, når du er forbundet direkte til dens wifi. I stedet for skal der bruges 192.168.34.1
Trin 4: Se enheder der er forbundet til Range Extenderen
1. Log ind på Master enhedens Wi-fi og tilgå dens web interface med adressen 192.168.33.1
2. Gå til Settings – Range extender.
3. Find Slavens Ip adresse.
Forklaring
Som du kan se, så er der to forbundne enheder, men vi har kun forbundet en enhed?
Når man slår range extender funktionen til på en enhed, så viser den sig selv som forbundet.
Kig efter MAC adressen for at finde den der er din slave. Du kan så kopiere Slavens interne ip adresse og sætte den ind i et nyt browser vindue for at tilgå dens web interface.
Ud fra denne information, ved vi nu , hvilke ip adresser vi ska bruge til Actions/webhook kommandoerne. Master = 192.168.33.1 Slave = 192.168.33.3
Trin 5: Eksempel på at tænde flere Shelly'er sammen med actions
Der er mange måde du kan vælge at styre lyset på. I det følgende eksempel, vil jeg vise, hvor simpelt det er er tænde flere shelly’er sammen ved hjælp af actions. På denne måde vil den ene altid være tændt/slukket baseret på den anden enhed og omvendt.
Note: Dette eksempel kræver, man bruger afbryderen som kiptænding, så, hvis du har en alm. afbryder, så skal der en fjeder i.
1. Både Master og Slave skal sættes til Button-momentary input mode
Gå til Home -> Input -> Settings -> Input/Output settings.
Sæt Input mode til Button
Sæt Output type til Momentary Switch
2. Opret actions på Master enhed
Gå til Actions -> New Action – Select Output – Create action.
Opret to actions. When it’s ON then Turn Slave ON When it’s OFF then Turn Slave OFF