Hallo!
Es ist schon eine Weile her, dass ich ein Problem mit einigen Z-Wave-Geräten hatte.
Wenn ich Google mit der Stimme bitte, etwas auszuschalten, antwortet sie „OK, ich schalte aus“, aber nichts passiert. Wenn ich es aber über die App (Google oder Gladys) mache, funktioniert es.
Manchmal geht das Licht aus, schaltet sich aber sofort wieder ein und geht dann wieder aus, kurz gesagt, ein Durcheinander ^^'.
Beim Überprüfen habe ich dies in meinen Logs gefunden, aber ich habe nie direkt nach einem „Zwischenfall“ danach geschaut.
Dieser Fehler ist eher klar, es handelt sich um ein DNS-Problem.
Interessant ist, dass man etwas bemerkt: Es gibt Dutzende von DNS-Auflösungsanfragen hintereinander, ohne die TTL zu respektieren, die ich angeben, denn manchmal gibt es 2 Anfragen in derselben Sekunde!
Daraus schließe ich, dass Gladys die Adresse des Gateway-Servers bei jeder Anfrage erneut anfordert. Nicht verrückt!
Bei der Untersuchung scheint es sich um ein bekanntes Problem im Internet zu handeln:
Während der Arbeit an einem großen Node eCOM-Backend mit viel Verkehr fanden wir von Zeit zu Zeit den Fehler getaddrinfo EAI_AGAIN in unseren Logs, eine schnelle Google-Suche erklärt, dass dies bedeutet, dass unser DNS-Server unsere Anfrage derzeit nicht bedienen kann.
Im Großen und Ganzen scheint das Docker-Image Node.js Alpine, das wir als Basis für Gladys verwenden (siehe Dockerfile), kein Paket zu haben, das den DNS-Cache verwaltet, und somit führt jede Anfrage ihre eigene DNS-Auflösung durch: ein bisschen schwer ^^
Ich untersuche weiter das Problem, um das richtige Paket für die Docker-Seite hinzuzufügen.
Lokal könnte der DNS-Resolver ins Stocken geraten, weil er mit zu vielen Anfragen in kurzer Zeit überfordert ist
AdGuard könnte mit der Last nicht klarkommen, da es, wie man sieht, für jede Anfrage kontaktiert wird
Nur um sicherzugehen, dass das Problem bei uns und nicht bei deiner Installation liegt, was hast du genau für eine DNS-Konfiguration auf deinem Pi gemacht?
Jetzt verstehe ich besser, warum das TTL nicht eingehalten wird (sowohl im Docker-Alpine-Image als auch im Debian von Raspberry Pi OS). Es ist kein Bug, sondern „by design“ bei den meisten Linux-Systemen.
@spenceur Könntest du in Gladys vorübergehend die Verwendung deines Adguard deaktivieren (und durch einen beliebten DNS wie Cloudflare DNS (1.1.1.1) ersetzen) und prüfen, ob die Fehler weiterhin auftreten?
→ Wenn die Fehler weiterhin auftreten, bedeutet das, dass dein Adguard nicht schuld ist. Vielleicht sind wir bei Gladys zu aggressiv in der Häufigkeit der Aufrufe des Gladys Gateway für den Google Home reportState.
→ Wenn keine Fehler mehr auftreten, liegt das Problem bei deinem Adguard, der manchmal nicht reagiert.
PS: Wenn du den DNS änderst, vergiss nicht, zu überprüfen, ob der neue DNS auch tatsächlich verwendet wird.