Scripte für Router

From
Revision as of 07:09, 6 January 2026 by 62.91.65.109 (talk) (Created page with "=== Scripte === <pre> Einwahl ins Mobilfunknetz via digitalen Eingang (DI) steuern Aufgabe: Durch Schalten des serienmäßigen, digitalen on-board Eingangs (= BIN0) soll die...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Scripte


Einwahl ins Mobilfunknetz via digitalen Eingang (DI) steuern

Aufgabe: Durch Schalten des serienmäßigen, digitalen on-board Eingangs (= BIN0) soll die Interneteinwahl des Routers gesteuert werden.

Anmerkungen: Der digitale on-board Eingang (DI) ist zum Aktivieren mit GND zu verbinden. Über einen Schalter kann der DI geschlossen und wieder geöffnet werden.

Die digitalen Eingänge des (optionalen) I/O-Erweiterungsmoduls XC-CNT (BIN1 ... BIN4) können analog genutzt werden.

Lösung: Der digitale on-board Eingang des Routers wird alle 5 Sekunden kontrolliert und falls dieser geschlossen wurde, der Einwahlvorgang ins Internet gestartet. Nach dem Öffnen des digitalen Eingangs, wird die Mobilfunkverbindung zum Internet wieder abgebaut.

Das Menü "Startup Script" ist wie folgt anzupassen (alte Version):

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here.

# Mobilfunkverbindung beenden
service ppp stop

# Pollintervall [s] festlegen
POLLINTERVALL=5

# Zyklische Abfrage des digitalen on-board Eingangs (BIN0)
while true
do
io get bin0
VAL=$?
if [ "$VAL" != "$OLD" ]; then
if [ "$VAL" = "0" ]; then
service ppp start
else
service ppp stop
fi
OLD=$VAL
fi
sleep $POLLINTERVALL
done


### eine neuere Version des Scripts.

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here.

# Pollintervall [s] festlegen
POLLINTERVALL=5

# Zyklische Abfrage des digitalen on-board Eingangs (BIN0)
while true
do
  if (io get bin0) && !(ifconfig  grep -q usb0); then 
    service ppp start
    while true
    do
      if (ifconfig  grep -q usb0); then
        break
      fi 
      sleep 1
    done
    led on
  fi

  if !(io get bin0) && (ifconfig  grep -q usb0); then 
    service ppp stop
    ifconfig usb0 down
    while true
    do
      if !(ifconfig  grep -q usb0); then
        break
      fi 
      sleep 1
    done
    led off
  fi

  sleep $POLLINTERVALL
done