Inhaltsverzeichnis:

Raspberry Pi Neustart Router - Gunook
Raspberry Pi Neustart Router - Gunook

Video: Raspberry Pi Neustart Router - Gunook

Video: Raspberry Pi Neustart Router - Gunook
Video: How to access home network from internet with Raspberry Pi and Zerotier 2024, November
Anonim
Raspberry Pi Neustart Router
Raspberry Pi Neustart Router
Raspberry Pi Neustart Router
Raspberry Pi Neustart Router

Ist Ihnen schon einmal aufgefallen, dass Sie nicht mehr mit dem Internet verbunden sind?

Ist es frustrierend, morgens aufzustehen und den Router neu starten zu müssen, um das Internet wiederherzustellen?

Nun, das ist mir öfter passiert, als es mir lieb ist.

Anfang des Jahres war ich für 3 Wochen außerhalb der Stadt und am ersten Tag trennte sich mein Router vom Internet! Das bedeutete, dass ich keine Verbindung zu den Dingen in meinem Haus hatte, auf die ich mich regelmäßig „einchecken“muss – z. B. Nest-Thermostat, Arlo-Kameras … Da ich nicht zu Hause war, konnte ich meinen Router nicht neu starten. Ich wollte wirklich keinen Nachbarn stören, um an meinem Sicherheitssystem vorbeizukommen und dann meinen Router zu finden und ihn neu zu starten. Ich dachte auch daran, den Stromversorger anzurufen und ihn für etwa 5 Minuten den Strom zu meinem Haus unterbrechen zu lassen - mein S. O. nicht genehmigt..:(Als ich zurückkam, fing ich an, nach einer guten Lösung zu suchen, konnte aber nichts umfassend genug für das finden, was ich brauchte. Zuerst kaufte ich einfach eine digitale zeitgesteuerte Steckdosenleiste und stellte sie so ein, dass sie den Router um 2:00 Uhr morgens für 5 Minuten ausschaltete. Leider hatte ich ein paar Morgen kein Internet - eine Überprüfung der Router-Protokolle für diese Tage ergab, dass das Internet gegen 4:00 Uhr morgens "getrennt" wurde und mein Router keine Verbindung herstellen würde, es sei denn, ich habe ihn neu gestartet.

Mit einem zusätzlichen Raspberry Pi und einigen Python-Fähigkeiten beschloss ich, zu prüfen, wie es bei meinem Dilemma helfen könnte, und kam auf diese Lösung.

Ich habe es getestet und installiert und so weit so gut!

Grundsätzlich prüft der Raspberry Pi alle 2 Minuten, ob eine Internetverbindung über einen "Ping" zu 2 verschiedenen Websites besteht. Solange mindestens einer von ihnen antwortet, sind wir alle gut. Wenn keine "Pings" zurückgegeben werden, schaltet der Pi die Stromversorgung des internen USB-Hubs ab, was wiederum dazu führt, dass das Iot Power Relay den Router ausschaltet. Nach 2 Minuten schaltet der Pi den internen USB-Hub ein, wodurch das Iot Power Relay den Router einschaltet. Es wartet dann 4 Minuten, bevor es die 2-minütige Internetverbindungsprüfung fortsetzt.

Ich musste auch bedenken, dass es in meiner Gegend vielleicht einen Ausfall gibt und das Internet für eine Weile ausfallen wird - selten, aber es kommt vor (zumindest in meiner Gegend …) und ich wollte nicht, dass der Router alle 6. neu startet auf 8 Minuten, also habe ich eine Flagge gesetzt, die den nächsten Neustart in diesem Fall um 1 Stunde verschieben würde.

Lieferungen

Ausrüstungsliste:

  1. Iot Power Relay für Raspberry Pi (Bild oben)
  2. USB 2.0 A Schraubklemmenblock-Anschluss (wenn Sie Ihr eigenes USB -> Steckerleistenkabel herstellen möchten, auch oben abgebildet)
  3. Kabel mit 2 oder mehr leitenden Drähten oder ein altes / zusätzliches USB-Kabel, das Sie verwenden können. Ich habe ein altes Stereo-Phonosteckerkabel verwendet und die Stecker abgeschnitten.
  4. Raspberry Pi Model 3+ (Sie könnten ein Model 4 verwenden und einzelne Ports steuern - ich verwende ein Model 3)

Ich kann eine kleine Provision für meine Unterstützung, Empfehlung, mein Testimonial und/oder meinen Link zu den oben aufgeführten Produkten verdienen.

Schritt 1: Bauen und verbinden Sie die Hardware

Bauen und verbinden Sie die Hardware
Bauen und verbinden Sie die Hardware

Ich habe mein Kabel gebaut, um den Pi mit dem Leistungsrelais zu verbinden.

Ich habe den USB-Schraubklemmenblock mit 2 Drähten verwendet, die an die + und gnd-Steckplätze angeschlossen sind. Sie sollten sie auf dem Stecker sehen können. Siehe das Bild mit den roten (+) und weißen (-) Pfeilen zu den Steckplätzen.

Das andere Ende habe ich mit dem Leistungsrelais verbunden. Der grüne Teil an der Seite des Leistungsrelais wird einfach herausgezogen und dann können Sie die Drähte in die Schlitze stecken und dann festschrauben. Siehe das Bild mit den roten (+) und weißen (-) Pfeilen zu den Drähten.

Hinweis: Wenn Sie ein vorhandenes USB-Kabel verwenden, haben Sie normalerweise 4 Drähte am anderen Ende - das rote ist die (+5 V) und das schwarze ist die (-) Masse. Sie werden nur diese 2 für das Leistungsrelais verwenden.

Zum Testen habe ich eine Tischlampe an eine der mit 'normally off' gekennzeichneten Steckdosen angeschlossen. Dies wird durch den USB-Power-Status gesteuert. Ich habe den Raspberry Pi in die 'Always-On'-Steckdose gesteckt, eingesteckt und für den nächsten Schritt eingeschaltet.

Schritt 2: Software installieren

Pi einrichten:

Es gibt einige Websites, die Sie bei Bedarf bei der erstmaligen Einrichtung Ihres RPi unterstützen.

Lebenshacker

Raspberry Pi-Organisation

Ich habe meins 'headless' eingerichtet und verwende VNC, um eine Verbindung zu ihm herzustellen. Die obigen Links zeigen, wie das geht.

Software-Setup:

  1. Installieren Sie uhubctl (siehe https://github.com/mvp/uhubctl), das zum Ein- und Ausschalten des USB-Hubs verwendet wird.
  2. Laden Sie die Software herunter, die ich von meiner GitHub-Seite geschrieben habe, und installieren Sie sie: RPi Router Reboot software.
  3. Richten Sie internet-monitor.service ein und registrieren Sie es, wenn Sie diesen beim Start des Raspberry Pi als Dienst ausführen möchten.

Schritt 3: Test- und Betriebsdetails

Das Python-Hauptprogramm rpi-internet-monitor.py kann zu Debug- und Testzwecken mit 1 oder 2 Parametern ausgeführt werden.

Öffnen Sie eine Terminalsitzung in dem Ordner, in dem Sie den Code abgelegt haben, und führen Sie den folgenden Befehl aus:

:~/Documents/RebootRouter $ python3 rpi-internet-monitor.py -debug -test

Hinweis - Dies druckt Debugging-Informationen aus und schaltet die Lampe aus und wieder ein, da getestet wird, dass keine Internetverbindung besteht. Sie können einfach -debug verwenden und die Nachrichten anzeigen. Sie können nicht einfach -test verwenden, es muss der zweite Parameter nach -debug sein.

Sie können die KONSTANTEN im oberen Teil des Programms auf beliebige Werte ändern. Der erste Satz wird mit dem Parametersatz -test ausgeführt, der zweite Satz wird in allen anderen Fällen verwendet.

Ich habe einen Dienst eingerichtet, um dies beim Booten auszuführen, damit es immer auf meinem Raspberry Pi läuft.

Öffnen Sie internet-monitor.service und bearbeiten Sie die Zeilen ExecStart und WorkingDirectory mit Ihren vollständigen Pfaden zum Python-Code. Speicher die Datei.

Kopieren Sie die Datei in den Ordner systemd/system:

:~/Documents/RebootRouter $ sudo cp internet-monitor.service /etc/systemd/system/internet-monitor.service

Testen Sie, ob der Dienst ohne Fehler gestartet wird:

:~/Documents/RebootRouter $ sudo systemctl starte internet-monitor.service

Aktivieren Sie den Dienst zum Starten beim Booten:

:~/Documents/RebootRouter $ sudo systemctl enable internet-monitor.service

Wenn alles gut geht, können Sie jetzt alles zusammensetzen und das Iot Power Relay ausschalten, die Lampe trennen, den Router anschließen und das Power Relay wieder einschalten. Ihr Router sollte neu starten und überwacht jetzt das Internet.

Nachdem ich alles angeschlossen hatte, machte ich noch einen Test - ich trennte mein Internetkabel von der Wand und wartete; Natürlich ging der Router aus und wieder ein. Es blieb an und nach 10 Minuten oder so habe ich das Kabel wieder an der Wand angeschlossen und hatte das Internet - es lief bisher gut….:)

Empfohlen: