Aktuelle Firmware auf dem Shelly?
Jawohl. 1.7.1
Gibt es noch einen weiteren Router im MESH, den der Shelly sieht?
Vermutlich. Wie bekomme ich die Liste, welche APs er mit welcher Qualität sieht? Unter Einstellungen/WLAN sehe ich nur die aktuelle Verbindung. Unter Diagnostic sehe ich den Scan, aber nicht, welche Alternativen er sieht. Hilft es, den Debuglevel irgendwo zu erhöhen?
was ist dazwischen? Stahlbeton? Dann kann das schonmal passieren.
Ne, das ist die Hauswand, und das sollten Ytong-Steine sein. Außerdem sieht er noch bestimmt den 1200ax-Repeater im 1. OG, der ist nicht weit.
Was nach dem restart des shellys passieren kann, ist das die Fritzbox per Beamforming das Wlansignal so ausrichtet das der shelly einen guten Pegel bekommt.
Aber warum hilft es nicht, wenn der Watchdog einen Reboot macht? Sicherung für 5 Sekunden raus und wieder rein bringt den Empfang zuverlässig zurück, aber der Watchdog Reboot, der vermutlich alle 4 Minuten geschieht, wenn kein Empfang ist, hat über 12 Stunden nicht geholfen?!? Glaube eher, dass da etwas hing, aber um das zu überprüfen, muss es erst mal wieder passieren. Auch um das Log der Fritzbox (bzw. des entsprechenden AP) zu prüfen.
Was bei dir helfen könnte wäre ein Access Point im EG. Bei mir hab ich eine ähnliche Konstellation. ein Shelly Uni Plus in der Garage und quasi gleich daneben im Keller die Fritzbox. Der Uni verbindet sich immer zum 1200AX im EG quer durchs Haus und hat dann auch eine Stabile Verbindung.
Herzlichen Dank für die Anregung! Ich habe 4 AP. Die 7530ax im Keller ist DSL-Zugang und Mesh-Master. Die 7490 im Wohnzimmer ist für Telefonie zuständig und von der Garage maximal entfernt. Der 1200ax im OG ist der dritte im Bunde, und Nummer 4 ist der DVB-C-Repeater, der Out Of Support ist. Leider kann ich ihn nicht durch eine Cable-Fritzbox ersetzen, weil die TV-Empfang nur im Intranet weitergegeben wird, wenn man auch Internet via Kabel bekommt. Ich möchte ihn (oder Ersatz) aber für TV-Empfang als IPTV-Broadcaster haben. Nun war der WLAN-Teil des DVB-C-Repeaters, weil ich mit WLAN Probleme hatte, ausgeschaltet. Da mittlerweile klar ist, dass der DVB-C-Repeater nicht die Ursache ist, konnte ich ihn gestern auf deine Anregung hin wieder aktivieren. Er ist im EG am Ende der Garage. Leider ist der Empfang dadurch nicht besser geworden.
3 AP in Reichweite 5-10 Meter, ohne nennenswerte Hindernisse, und trotzdem grausiger Empfang. Ob eine Antenne falsch verdrahtet ist oder ein Empfangsteil defekt? Ich überlege, einen anderen Shelly dort zu testen.
Mehr wie -80 machen Probleme und der ist öfters nicht erreichbar oder es dauert länger.
Bei einem Neustart ist das so, der baut die Verbindung neu auf und nach einer gewissen Zeit wird die schlechter.
Aber wieso hilft dann der Watchdog-Neustart nicht? OK, ich muss erst rausfinden, ob der überhaupt stattfindet oder ob dass Teil hängt - coming soon. Je nachdem, wann es wieder auftritt.
Welches WiFi ist eingestellt?
Manche kommen mit WifI 6 zurecht, manche nicht.
Ich habe das 2,4GHz Band bei meiner 7690 getrennt und 2,4GHz auf WiFi 4 eingestellt.
Der 7530ax kann gar kein Wifi 6, meine ich. Auf jeden Fall möchte ich nicht wegen einem einzelnen Shelly das ganze Netz umkonfigurieren.
@borsti0 Jawohl, die Tests mache ich, wenn es das nächste Mal passiert, danke für die Ideen! Erfahrungsgemäß passiert das immer dann, wenn man unterwegs zu einem Termin ist, spät dran und nur noch kurz was aus der Garage holen will ... wir werden sehen. Den Watchdog hatte ich als watchdog.js.txt beim ersten Beitrag angehängt. Als watchdog.js aktiviert und bei Reboot automatisch starten. Huch, er ist nicht mehr da? Komisch. Hier ist er:
// timm@ganske.org 2025
// thanks to https://shelly-forum.com/thread/19203-shelly-watchdog-restart/
// This script tries to execute HTTP GET requests within a set time, against a set of endpoints
// After certain number of failures the script resets the shelly
let doPrintArr = []; // Delayed output because Shelly does not output multiple consecutive print()
let doPrintLast = Date()-1000*Shelly.getComponentStatus('sys').uptime+5000; // last output time, initial last reboot+ 4-5 seconds
let doPrintDelay = 70; // not working with 30ms! Seems 50 is ok. But since firmware 1.6 the value needs to be higher.
function doPrint(myString)
{
let now=Date();
let noTimer=(doPrintArr.length===0); // Nothing to print means, no timer was scheduled.
if(myString) doPrintArr.push(now.toISOString()+" "+myString); // Add output to the end of output queue.
if(now-doPrintLast >= doPrintDelay) // Not too fast! Circular buffers rotates slowly.
{
let line=doPrintArr[0]; // Avoid print/slice-race
doPrintArr=doPrintArr.slice(1);
doPrintLast=now;
print(line);
}
if(doPrintArr.length && (!myString || noTimer)) // Timer needed when: More output exists and we are in timer event or first timer needed
Timer.set(doPrintDelay-(now-doPrintLast)+1, false, doPrint, null);
}
let CONFIG = {
endpoints: [
"http://fritz.box",
],
//number of failures that trigger the reset
numberOfFails: 3,
//time in seconds after which the http request is considered failed
httpTimeout: 20,
//time in seconds to retry a "ping"
pingTime: 120,
};
let endpointIdx = 0;
let failCounter = 0;
let pingTimer = null;
function pingEndpoints() {
Shelly.call(
"http.get",
{ url: CONFIG.endpoints[endpointIdx], timeout: CONFIG.httpTimeout },
function (response, error_code, error_message) {
//http timeout, magic number, not yet documented
if (error_code === -114) {
doPrint("Failed to fetch "+ CONFIG.endpoints[endpointIdx]);
failCounter++;
doPrint("Rotating through endpoints");
endpointIdx++;
endpointIdx = endpointIdx % CONFIG.endpoints.length;
} else {
doPrint("ping ok");
failCounter = 0;
}
if (failCounter >= CONFIG.numberOfFails) {
doPrint("Too many fails, resetting...");
failCounter = 0;
Timer.clear(pingTimer);
Shelly.call("Shelly.Reboot");
}
}
);
}
doPrint("Start watchdog timer");
pingTimer = Timer.set(CONFIG.pingTime * 1000, true, pingEndpoints);
Alles anzeigen