Status der Internetverbindung

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
SaschaQ
Beiträge: 202
Registriert: 2. Mär 2020 13:50
Answers: 0

Status der Internetverbindung

Beitrag von SaschaQ »

Hallo zusammen,

ich möchte gerne mit OpenHab meine Internetverbindung überwachen und im Fehlerfall per schaltbarer Steckdose das Modem einmal aus und nach 10 Sekunden wieder einschalten.

Habt ihr eine Idee wie ich das realisieren kann?

Viele Grüße
Sascha

Benutzeravatar
udo1toni
Beiträge: 15243
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Status der Internetverbindung

Beitrag von udo1toni »

Du kannst dafür das Network Binding nutzen und eine externe IP anpingen. Es bietet sich an, dazu eines der Gateways zu nutzen, die Dein Provider Dir zuweist (kannst Du über einen Trace Befehl herausfinden). Wenn Du ein Gerät gefunden hast, welches pingbar ist, legst Du ein Thing an, welches regelmäßig ein Ping anfordert (meinetwegen alle 60 Sekunden) und wenn dieses auf OFF springt, löst Du eine Rule aus, die den Reset ausführt. Z.B. so:

Code: Alles auswählen

rule "Reset Modem"
when
    Item InternetPing changed from ON to OFF
then
    if(tModemReset !== null)  // Rule wurde doppelt getriggert, 
        return;               // also Abbruch

    tModemReset = createTimer(now,[
        if(ModemPower.state == OFF) {
            ModemPower.sendCommand(ON)
            tModemReset = null
        } else {
            ModemPower.sendCommand(OFF)
            tModemReset.reschedule(now.plusSeconds(10))
        }
    ])
end
Je nach verwendetem Modem gibt es evtl. auch eine bessere Möglichkeit, den Zustand zu erfassen. Ich habe z.B. ein Vigor 165 und betreibe es als reines Modem vor einer OpnSense. Ich habe zusätzlich zum PPPoE noch eine WAN-DMZ eingerichtet, über welche ich die Weboberfläche des Modems erreichen kann. Zusätzlich habe ich eine Portfreigabe eingerichtet, so dass das Vigor sein Syslog an einen Syslog Server senden kann. Der Syslog Server ist fester Bestandteil jeder GNU/Linux Distribution und muss nur aktiviert werden. Fortan werden alle empfangenen Logs in einem extra Verzeichnis für den Host abgelegt.
Auf dem Rechner, auf dem der Syslog Server läuft, habe ich noch ein Python Script als Service laufen, welches das Syslog vom Modem überwacht und bei ankommenden Logs diese unverzüglich per MQTT versendet.
Ab dieser Stelle ist es nur noch eine Fingerübung :)

Lohn der Arbeit: Ich kann meinem Provider jeden Verbindungsabbruch nachweisen, mitsamt ausgehandelter Geschwindigkeiten :) Ich habe Super Vectoring mit nominell 250/40 MBit/s, wobei ich im Schnitt etwa 205/42 MBit/s erreiche, was top ist. Leider habe ich aber auch Tage, an denen ich bis zu 25 Verbindungsabbrüche habe, und mit VoIP als einzige Telefonverbindung ist das völlig inakzeptabel...
Nun ja, Glasfaser ist bestellt und wird hoffentlich noch dieses Jahr ausgebaut...
(ganz am Rande... vorher hatte ich 100/40, da gab es auch schon die gleichen Probleme, und selbst als es noch DSL mit 16/(ähh... 1,5?) war, war die Verbindung immer mal wieder gestört. Aber damals lief Telefon noch über ISDN und war nur zweimal mit betroffen, und bei der ISDN-Störung kam die Telekom innerhalb eines Arbeitstages und reparierte den Anschluss...)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten