Shelly-Gerät offline und keine Verbindung mehr möglich

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.

Mit freundlichen Grüßen
Martin

:crayon:by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)
s.a.: (Neues Update & Features - Hier in der Community 🫶)

1 „Gefällt mir“