bei mir sind ein paar Shelly-Geräte mittlerweile offline. So auch mein „Licht Terrasse“. Shelly-Leuchtmittel raus- und wieder reindrehen brachte keinen Erfolg. Auch nicht, den Leitungsschutzschalter aus- und wieder einzuschalten. Immerhin wollte ich „Lichterkette“ und „BWM Gang“ (ist ein Shelly Plus 2PM“ auch wieder in Gang bringen. Zugriff per IP-Adresse ist übrigens auch nicht möglich.
Ich würde sie reseten. Entweder direkt am Gerät wenn du dran kommst oder falls nicht und die Funktion ist nicht deaktiviert kannst du sie 5 mal stromlos schalten.
Hatte denselben Fehler, dass alle Shelly Geräte offline waren und weder über Cloud, noch über die IP zu erreichen waren.
Über Home Assistant konnte ich sie aber schalten.
Nun hat ein Aus-bzw. Einschalten des Leitungsschutzschalters den kompletten Strom getrennt und nachdem alles wieder online war, waren die Shelly’s plötzlich wieder einsatzbereit.
Auch mich hat dieses Thema zur Verzweiflung getrieben. Meine Vermutung war, dass die Stärke des WLAN Signals nicht ausreichend ist. Wiederholt habe ich verschiedene Repeater im Haus verteilt um die Shelly Geräte die eben auch über das Haus verteilt sind gleichmäßig mit ausreichenden Empfangsstärke zu erreichen erreichen. Das Problem wanderte somit mit der Platzierung von Repeatern und am Ende blieben immer wieder einzelne Shelly Geräte die nach kurzer Zeit offline gingen.
Dafür habe ich mir nun 2 Hilfsmittel geschaffen um das Problem besser zu verstehen.
Nach wegnehmen und wieder einschalten vom Strom waren die Shelly Geräte die fest in Dosen in der Wand verbaut sind wieder erreichbar.
Bei neueren Shelly Geräten kann man sich ein Skipt erstellen das den WLAN Empfang immer wieder prüft und sobald der Shelly vom Netz geht selbständig das Gerät rebootet.
Hier ein Beispiel:
Timer.set(60000, true, function () {
Shelly.call("Sys.GetStatus", {}, function (res) {
if (!res.wifi || !res.wifi.connected) {
print("WLAN getrennt – Neustart");
// Beispiel: HTTP-Request an Webhook oder Benachrichtigungsdienst
HTTP.get("http://192.168.178.60/notify?device=Shelly1PMMini&event=reboot", null, function (result, error_code, response) {
print("Benachrichtigung gesendet:", result);
});
// Neustart auslösen
Shelly.call("Shelly.Reboot");
}
});
});
Die zweite Massnahme ist ein Monitor der die RSSI Werte die unter einem bestimmten Limit liegen an Homeassitant meldet. Dafür habe ich mir eine Automation geschrieben die in YAML wie folgt aussieht.
alias: RSSI Übersicht (dynamisch)
description: ""
triggers:
- minutes: /30
trigger: time_pattern
actions:
- data:
title: WLAN-Status
message: |
{% for s in states.sensor
if '_rssi' in s.entity_id and s.state | int < -60 %}
{{ s.name }}: {{ s.state }} dBm {% endfor %}
action: persistent_notification.create
mode: single
Das Ergebnis in den HA Benachteiligungen sieht dann wie folgt aus:
Hallo, bin aufgrund des gleichen Problems auf diesen Eintrag und deinen Lösungsvorschlag gelandet. Was mir nicht klar ist wo du das Script im Shelly anlegst. Kannst du was dazu sagen?
Hi, ich hatte schon in einem anderen Beitrag darauf hingewiesen, das man sehen sollte was für eine FritzBox da verbaut ist. Ich vermute das es eine 7590 ist die macht nach einer gewissen Zeit Probleme mit dem Wlan, spreche da aus Erfahrung weil meine auch schleichend gestorben ist. Wlan wird erst schlechter und irgendwann ist es dann ganz weg. Der Fehler ist aber schon länger bekannt und wurde aber hier noch nicht darauf hingewiesen.
Meine Erfahrung mit AVM und Shelly war durchwachsen. Mein Setup war FritzBox 7590 und Repeater 2400, per MESH/WPS verbunden hat sich der Shelly immer auf die Fritzbox eingewählt. Ich hab den Repeater dann als Brücke verbunden, mit selber SSID und Kennwort, dass war das beste für diverse Shelly Geräte. Meiner Recherche und Erfahrung nach könnte es am 802.11k oder 802.11v liegen. Mittlerweile hab ich aber alles auf Unifi umgestellt.
Hallo Andreas, das Skipt wird direkt in das Shelly Gerät geschrieben. Das funktioniert natürlich nur bei neueren Shelly Geräten Gen 2 und höher die Skripting auch unterstützen.
Entweder direkt über die IP Adresse oder Shelly Cloud auf das Gerät zugreifen und den Bereich Skripting aufrufen {}
Das Skript dann als “neues Skript erstellen” anlegen und benennen ( bei mir “WLAN Watchdog”. Das Skript selbst habe ich nochmal überarbeitet.
// WLAN-Watchdog für Shelly Gen2+
let wifiLossTime = 300; // Zeit in Sekunden bis zum Reboot
let checkInterval = 10; // Prüfintervall in Sekunden
let lostTimeCounter = 0;
let apEnabled = true;
function checkWiFi() {
Shelly.call(“WiFi.GetStatus”, {}, function (res, err) {
if (err) {
print(“❌ Fehler beim WLAN-Status:”, JSON.stringify(err));
return;
}
if (res.status === "got ip") {
lostTimeCounter = 0;
print("✅ WLAN verbunden");
if (apEnabled) {
Shelly.call("WiFi.SetConfig", {"config":{ "ap": {"enable": false}}}, function (res, err) {
if (err) {
print("❌ Fehler beim Deaktivieren des AP:", JSON.stringify(err));
} else {
print("🔄 AP deaktiviert");
apEnabled = false;
}
});
}
} else {
lostTimeCounter += checkInterval;
print("⚠️ WLAN getrennt seit " + lostTimeCounter + " Sekunden");
if (!apEnabled) {
Shelly.call("WiFi.SetConfig", {"config":{ "ap": {"enable": true}}}, function (res, err) {
if (err) {
print("❌ Fehler beim Aktivieren des AP:", JSON.stringify(err));
} else {
print("🔄 AP aktiviert");
apEnabled = true;
}
});
}
if (lostTimeCounter >= wifiLossTime) {
print("🚨 WLAN zu lange getrennt – Neustart...");
Shelly.call("Shelly.Reboot", {});
}
}
});
Wichtig hierbei, dass der Check vom Shelly selbst gemacht wird den potentiell fehlt die Verbindung zum Netzwerk. Entsprechend wird die Entscheidung für einen Reboot im Device selbst getroffen und ausgelöst.
Die entsprechenen Ausgaben aus dem Skript werden ausschliesslich im Outputfenster des Shelly Geräts selbst ausgegeben.
Mein Netzwerk betreibe ich mit einer FritzBox 7590 und mehreren Fritz Repeatern die im Mesh verschaltet sind und dennoch sind einige Geräte hartnäckig und lassen sich nur schwer im Netzwerk betreiben. Das Skript ist nur eine Krücke um nicht ständig Sicherungen zu schalten da die Shellys in Unterputzdosen verbaut sind.
@martin.baeuerle lieber Martin, ganz ganz herzlichen Dank für deine ausführliche Antwort. Ich habe auch immer wieder Shellys die offline gehen, trotz mehrere Repeater und Mesh. Ich werde versuchen das mal in einem der shellys zu programmieren. Lieben Dank nochmals und Gruß Andreas
Danke für das Skript. Ich habe bei mir das Problem bei drei Shelly verschiedenen Tipps (2x mini Gen3, 1x miniPM).
Ich habe das Skript gerade auf zwei davon ausprobiert und leider hat es wohl nicht funktioniert, denn die DHCP-Leases sind gerade ausgelaufen.
Irgendwie klingt das nicht so optimal, habe auch FB7590 mit Repeater 2400 und habe vor die Rolladen und Lichter mit Shelly’s zu steuern. Muss man sich über Alternativen Gedanken machen oder bekommt man die Shelly’s in den Griff?
Wären die vlt. von Bosch besser? Sind teurer und auch größer in der Dimension, also noch mehr Gefummel in den Dosen?
Habe vor die Rolläden mit Shelly Plus 2PM und die Lichter über Shelly Dimmer zu steuern.
Viele Menschen setzen hier Shelly im höheren zweistelligen bis teilweise unteren dreistelligen Bereich ein und berichten nicht von nennenswerten Problemen.
Ich nutze seit Jahren Shelly verschiedenster Art und Generationen und habe keine Probleme. Da ist die Frage, ob es wirklich an den Geräten oder eher dem eigenen Netzwerk und Problemen in diesem liegt.
Ich habe hier auch fast 100 Shelly’s (Gen1-3 und verschiedene Typen) im Einsatz und überwache mit HA alle ob Sie mit der Cloud verbunden sind, da ich sehr gerne noch über die Shelly-App einiges steuere, trotz HA.
Wenn mal ein Shelly >30s die Cloud-Verbindung verliert, dann liegt es zu 99% daran, dass Alterco mal wieder an den Cloud-Servern “rumbastelt” oder zu <1% daran, dass etwas in meinem Netzwerk nicht stimmt oder ich gerade mal wieder einen Repeater update.
Auch bei fehlender Cloud-Verbinung sind die Teile noch im WLAN und über HA und meine Automatisierungen in Node-Red und ALEXA (ich habe die Shelly-HA-Entität in ALEXA und nicht die von Shelly über den Shelly-Skill) erreich- und steuerbar.
Also würde ich mich @tarag anschließen und den Fehler im eigenen Netzwerk suchen!
Hier mal einige Tipps:
feste IP für die Shelly
AP-Roaming im Shelly GUI aktivieren
Shelly mit HA überwachen, damit Du analysieren kannst, ob es alle Shelly’s gleichzeitig oder nur einzelne sind
Habe hier seit guten 8 Jahren noch alte Shelly 2.5 erster Generation im Einsatz. Von insgesamt 8 sind doch 5 am Leben.
Der ein oder andere säuselt schon etwas. was darauf hin deutet das bald der Kondensator dahin ist. diesen könnte man tatsächlich sogar selbst austauschen:
Aber ansonsten kenne ich da keine Problerme mit Shellies.
Von meinen alten 1, oder 1pm ist noch nie einer auffällig geworden.
Ich setze hier auch mittlerwiele über 40 Shellies ein und bin da eher zufrieden mit der Haltbarkeit.
Hallo zusammen, habe das selbe Problem, deshalb wollte das o. e. Skript testen. Bei mir gab es bei einem der Shelly 2PM Gen4 Fehlermeldungen, deshalb habe ich diesen komplett werksresettet, den AP und Bluetooth aktiviert lassen, später den AP mit starkem Passwort versehen, damit man jederzeit wieder darauf zugreifen kann, falls WLAN Verbindung ausfällt. Zusätzlich habe ich das Skript mit KI prüfen lassen, die Fehler behoben, den Teil mit der AP Aktivierung entfernt und auf den 2PM hochgeladen, hier der Code für alle, die die selben Probleme haben:
// WLAN-Watchdog für Shelly 2PM Gen4, erstellt mit ChatGPT
let wifiLossTime = 300; // Zeit in Sekunden bis zum Reboot
let checkInterval = 30; // Prüfintervall 30 Sekunden
let lostTimeCounter = 0;
function checkWiFi() {
Shelly.call("WiFi.GetStatus", {}, function(res, err) {
if (err) {
print("❌ Fehler beim WLAN-Status:", JSON.stringify(err));
return;
}
if (res.status === "got_ip") {
lostTimeCounter = 0;
print("✅ WLAN verbunden");
} else {
lostTimeCounter += checkInterval;
print("⚠️ WLAN getrennt seit " + lostTimeCounter + " Sekunden");
if (lostTimeCounter >= wifiLossTime) {
print("🚨 WLAN zu lange getrennt – Neustart...");
Shelly.call("Shelly.Reboot", {});
}
}
});
}
// Prüfe WLAN alle `checkInterval` Sekunden
Timer.set(checkInterval * 1000, true, checkWiFi);
Wo trage ich dein Script denn ein?
Ich habe einen Shelly Dimmer 2 der immer wieder ausfällt.
Wenn ich die Sicherung für den Raum herausnehme und nach kurzer Zeit wieder aktiviere, dann ist er wieder verbunden.
Das wurde hier schon beschrieben - aber ganz einfach, gehe in die Weboberfläche deines Shellys, dann auf Scripts, Code eintragen, Namen vergeben, speichern und neustarten. Das wars: