Ein stabiles WLAN ist essenziell für viele smarte Automatisierungen, doch was passiert, wenn das Signal abreißt? In diesem Beitrag zeige ich dir, wie du mit Shelly Scripting die Signalstärke deines WLANs überwachen und bei einem Verbindungsverlust automatisch ein Relais deaktivieren kannst.
Diese Funktion ist besonders nützlich für sicherheitskritische Anwendungen oder Geräte, die nicht unbeaufsichtigt weiterlaufen sollen, wenn die Netzwerkverbindung unterbrochen wird. Mit einem einfachen Script kannst du sicherstellen, dass dein Shelly eigenständig auf WLAN-Ausfälle reagiert und sich entsprechend verhält – ganz ohne zusätzliche Hardware oder manuelles Eingreifen.
Inhaltsverzeichnis
- Einsatzmöglichkeiten für die intelligente Relaissteuerung bei Netzwerkausfall
- Wenn das WLAN ausfällt: Der Heizlüfter bleibt unkontrolliert an
- Schaltungsaufbau: Shelly Plug S & Shelly Plus 1 mit Temperatursensor
- Shelly Script – Plug S temperaturgesteuert mit DS18B20
- Shelly Script – Plug S abschalten, wenn das WLAN ausfällt
Einsatzmöglichkeiten für die intelligente Relaissteuerung bei Netzwerkausfall
Ein Shelly Script zur automatischen Deaktivierung eines Relais bei WLAN-Verlust kann in verschiedenen Szenarien sinnvoll sein. Hier sind vier praxisnahe Beispiele:
- Sicherheitsabschaltung für smarte Heizgeräte
- Falls ein WLAN-gesteuertes Heizgerät oder eine elektrische Heizung über Shelly geschaltet wird, könnte ein Verbindungsverlust bedeuten, dass die Steuerung nicht mehr erreichbar ist. Das Script kann dafür sorgen, dass sich das Relais bei einem WLAN-Ausfall automatisch abschaltet, um eine unkontrollierte Erwärmung zu verhindern.
- Pumpensteuerung in der Hausautomation
- Viele smarte Garten- oder Heizkreispumpen werden über WLAN gesteuert. Falls das Netzwerk ausfällt, könnte eine Pumpe dauerhaft weiterlaufen, was unnötige Energieverschwendung oder sogar Schäden verursachen kann. Das Script stellt sicher, dass die Pumpe nur dann aktiv bleibt, wenn eine stabile Verbindung besteht.
- Notabschaltung für 3D-Drucker oder Maschinen
- Ein über Shelly gesteuerter 3D-Drucker oder eine CNC-Maschine könnte im Falle eines Netzwerkausfalls unbeaufsichtigt weiterlaufen. Das Script kann in solchen Fällen eine Sicherheitsabschaltung einleiten, um Fehlproduktionen oder sogar Brände zu vermeiden.
- Licht- oder Alarmsteuerung bei Netzwerkausfällen
- Smarte Lichter oder Alarmsysteme, die auf Netzwerkinformationen oder Steuerbefehle angewiesen sind, könnten im Falle eines WLAN-Abbruchs in einem falschen Zustand bleiben (z. B. Alarm dauerhaft aktiv). Mit dem Shelly Script kann eine definierte Abschaltlogik umgesetzt werden, um Fehlalarme oder unnötigen Stromverbrauch zu vermeiden.
Diese Beispiele zeigen, wie wichtig eine intelligente Reaktion auf Netzwerkausfälle sein kann, um sowohl Sicherheit als auch Energieeffizienz in einem Smart Home zu gewährleisten.
Wenn das WLAN ausfällt: Der Heizlüfter bleibt unkontrolliert an
Ein kleiner Heizlüfter, der über einen Shelly Plug S gesteuert wird, kann effizient für eine temperaturabhängige Regelung genutzt werden. Die eigentliche Temperaturmessung erfolgt dabei nicht am Plug selbst, sondern über einen DS18B20-Sensor, der an einem Shelly Plus 1 mit AddOn angeschlossen ist. Basierend auf den Sensordaten wird der Heizlüfter automatisch ein- oder ausgeschaltet.
Doch was passiert, wenn das WLAN-Signal abbricht? Da der Shelly Plug S seine Steuerbefehle über das Netzwerk erhält, könnte der Heizlüfter eingeschaltet bleiben, selbst wenn die gewünschte Temperatur längst erreicht wurde. Dies führt zu unnötigem Stromverbrauch und kann im schlimmsten Fall ein Überhitzungsrisiko darstellen.
Um dieses Problem zu verhindern, setzen wir ein Shelly Script ein, das regelmäßig die WLAN-Signalstärke überprüft. Sobald die Verbindung verloren geht oder das Signal zu schwach wird, schaltet das Script das Relais automatisch aus, sodass der Heizlüfter nicht unkontrolliert weiterläuft.
Schaltungsaufbau: Shelly Plug S & Shelly Plus 1 mit Temperatursensor
Nun werfen wir einen Blick auf den Aufbau der Schaltung. Der Shelly Plug S dient als Schaltaktor für den Heizlüfter, während der Shelly Plus 1 mit AddOn die Temperaturmessung übernimmt. Der Temperatursensor DS18B20 ist am AddOn des Shelly Plus 1 angeschlossen und misst die Umgebungstemperatur. Basierend auf diesen Daten wird der Heizlüfter gesteuert.
Diese Kombination ermöglicht eine flexible und präzise Temperaturregelung, ist jedoch von einer stabilen WLAN-Verbindung abhängig. Im nächsten Schritt zeige ich, wie wir sicherstellen, dass der Heizlüfter bei einem Netzwerkausfall automatisch deaktiviert wird.
Benötigte Ressourcen für dieses Projekt
Für den Aufbau der Schaltung habe ich nachfolgende Komponenten verwendet:
- einen Shelly Plus 1 Gen2*,
- ein Shelly AddOn*,
- einen Temperatursensor DS18B20*,
- ein Shelly Plug S Gen3*
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Shelly Script – Plug S temperaturgesteuert mit DS18B20
Der Shelly Plus 1 mit AddOn und angeschlossenem DS18B20-Temperatursensor übernimmt die Temperaturmessung und steuert den Shelly Plug S entsprechend der erfassten Werte. Sinkt die Temperatur unter einen definierten Grenzwert, wird der Plug S eingeschaltet, um beispielsweise einen Heizlüfter zu aktivieren. Sobald die Temperatur den oberen Grenzwert überschreitet, schaltet der Shelly Plus 1 den Plug S wieder aus, um Energie zu sparen und eine Überhitzung zu vermeiden.
// Basis-URL für den Shelly Plug S, der den Heizlüfter steuert. // Die IP-Adresse muss dem Shelly Plug S in deinem Netzwerk entsprechen. // Der Parameter "turn=" wird später mit "on" oder "off" ergänzt. let urlHeater = "http://192.168.178.91/relay/0?turn="; // Temperaturgrenzen für das Ein- und Ausschalten des Heizlüfters. // Sobald die Temperatur unter HEATER_ON_TEMP fällt, wird der Heizlüfter eingeschaltet. // Sobald die Temperatur über HEATER_OFF_TEMP steigt, wird der Heizlüfter ausgeschaltet. const let HEATER_ON_TEMP = 17; // Heizlüfter einschalten bei weniger als 17°C. const let HEATER_OFF_TEMP = 20; // Heizlüfter ausschalten bei mehr als 20°C. // Variable zur Speicherung des aktuellen Heizlüfter-Zustands. // Sie verhindert unnötige HTTP-Anfragen, wenn der Status unverändert bleibt. let heaterON = false; // HTTP-Parameter für die Anfrage an den Shelly Plug S. let parameter = { method: "GET", // HTTP-Methode: GET wird genutzt, um den Schaltbefehl zu senden. url: "", // Die URL wird dynamisch gesetzt, abhängig davon, ob der Heizlüfter an- oder ausgeschaltet wird. headers: { "Content-Type": "application/json" } // Optionaler Header für den Request. }; /** * Funktion zur Überprüfung der Raumtemperatur und Steuerung des Heizlüfters. */ function handleHeater() { // Abrufen der aktuellen Temperatur vom DS18B20-Sensor am Shelly Plus 1 mit AddOn. let temperaturJson = Shelly.getComponentStatus("temperature:100"); print("Raumtemperatur ist: " + temperaturJson.tC + "°C"); // Prüfen, ob die Temperatur unterhalb der Einschaltschwelle liegt. if (temperaturJson.tC < HEATER_ON_TEMP) { print("Temperatur kleiner als " + HEATER_ON_TEMP + "°C. Heizlüfter wird aktiviert!"); heaterON = true; // Heizlüfter als eingeschaltet markieren. callUrl(); // HTTP-Anfrage zum Einschalten senden. } // Prüfen, ob die Temperatur oberhalb der Ausschaltschwelle liegt. else if (temperaturJson.tC > HEATER_OFF_TEMP) { print("Temperatur größer als " + HEATER_OFF_TEMP + "°C. Heizlüfter wird deaktiviert!"); heaterON = false; // Heizlüfter als ausgeschaltet markieren. callUrl(); // HTTP-Anfrage zum Ausschalten senden. } } /** * Funktion zum Senden des HTTP-Requests an den Shelly Plug S, um das Relais zu schalten. */ function callUrl() { // Dynamisches Setzen der URL je nach aktuellem Status des Heizlüfters. parameter.url = urlHeater + (heaterON ? "on" : "off"); print(parameter.url); // Debugging: Die generierte URL ausgeben. // HTTP-Request an den Shelly Plug S senden. Shelly.call( "HTTP.Request", parameter, function(result, error_code, error_message) { if (error_code != 0) { print("Fehler beim Senden der Daten: " + error_message); // Fehlerbehandlung. } else { print("Daten erfolgreich gesendet."); // Erfolgreiche Anfrage bestätigen. } } ); } // Einrichten eines Timers, der alle 2500 Millisekunden (2,5 Sekunden) die Temperatur prüft. // Falls eine Änderung festgestellt wird, wird der Heizlüfter entsprechend ein- oder ausgeschaltet. Timer.set(2500, true, handleHeater);
Shelly Script – Plug S abschalten, wenn das WLAN ausfällt
Es gibt mehrere Möglichkeiten, um festzustellen, ob die WLAN-Verbindung unterbrochen wurde. Zwei der wichtigsten Indikatoren sind:
1️⃣ Der RSSI-Wert – Dieser gibt die Signalstärke der Verbindung in dBm an. Ein stark negativer Wert (z. B. unter -85 dBm) kann auf eine instabile Verbindung oder einen bevorstehenden Abbruch hindeuten.
2️⃣ Die IP-Adresse – Ein Shelly erhält normalerweise eine dynamische IP-Adresse vom Router per DHCP. Ist keine IP-Adresse zugewiesen, bedeutet dies, dass das Gerät nicht mehr mit dem Netzwerk verbunden ist.
➡ Der einfachste Weg, um einen WLAN-Ausfall zu erkennen, ist zu überprüfen, ob dem Shelly aktuell eine IP-Adresse zugewiesen wurde. Dies funktioniert jedoch nur, wenn der Shelly seine IP dynamisch vom Router erhält. Falls eine statische IP-Adresse konfiguriert wurde, bleibt diese auch bei einem WLAN-Abbruch bestehen, was zu einer falschen Erkennung führen kann.
// Ein Timer wird gesetzt, der alle 2000 Millisekunden (2 Sekunden) ausgeführt wird. Timer.set(2000, true, function() { // Abrufen des aktuellen WLAN-Status vom Shelly-Gerät. let wifiStatus = Shelly.getComponentStatus("wifi"); // Überprüfen, ob der Shelly noch eine gültige IP-Adresse im WLAN besitzt. // Falls `sta_ip` nicht vorhanden oder leer ist, bedeutet das, dass der Shelly keine Verbindung mehr zum WLAN hat. if (!wifiStatus.sta_ip) { // Definieren der Parameter zum Ausschalten des Relais. let shellyParameter = { id: 0, // Das Relais mit der ID 0 wird angesprochen. on: false // Das Relais wird ausgeschaltet. }; // Senden des Befehls an den Shelly, um das Relais zu deaktivieren. Shelly.call("Switch.Set", shellyParameter); } });



Fazit: Mehr Sicherheit und Effizienz mit Shelly Scripting für die Relaissteuerung
Mit Shelly Scripting lässt sich die Relaissteuerung intelligent erweitern, um auf Netzwerkausfälle zu reagieren. In diesem Beitrag habe ich gezeigt, wie du mithilfe eines einfachen Scripts dein Shelly Plug S automatisch abschalten kannst, wenn das WLAN ausfällt. So verhinderst du, dass Verbraucher wie ein Heizlüfter unnötig weiterlaufen, falls keine Verbindung mehr besteht.
Diese Methode verbessert nicht nur die Sicherheit, sondern hilft auch, Energie zu sparen. Shelly Scripting bietet damit eine leistungsstarke Möglichkeit, individuelle Automatisierungen zu erstellen, die weit über die Standardfunktionen hinausgehen.
🔜 Im nächsten Beitrag zeige ich dir weitere spannende Automatisierungen mit Shelly – bleib dran! 🚀