Raspberry Pi per DTMF zb Runterfahren!!

Antworten
Benutzeravatar
dj1jay
Site Admin
Beiträge: 10
Registriert: Sa Okt 09, 2021 9:09 am
Wohnort: Meiningen
Kontaktdaten:

Raspberry Pi per DTMF zb Runterfahren!!

Beitrag von dj1jay »

Hier eine weitere Möglichkeit, den Raspberry fernzusteuern. Die Möglichkeit via SSH ist ja jeden bekannt. Die Option des Webinterfaces / Dashboards nicht jedermanns Sache 😂

Diese Möglichkeit ist nicht nur für den DjSpot sondern Svxlink allgemein.
Es ist vieles möglich, zb svxlink neu starten, Raspberry Neu starten / Reboot usw.
Bei Internetverlust hilf kein SSH oder Dashboard, wenn man zb. auf der Autobahn unterwegs ist DTMF Befehl gesendet schon gehts wieder.😃

Was ist zu tun ??

per SSH einloggen (bei Schreibgeschützten Image, Schreibfähigkeit herstellen)

danach

Code: Alles auswählen

 
cd /usr/share/svxlink/events.d/local
falls das Verzeichnis "local" nicht besteht, bitte mit mkdir local erstellen.

Neue Datei erstellen

Code: Alles auswählen

nano controll.tcl
mit folgenden Inhalt

Code: Alles auswählen


namespace eval Logic {
  # variable for Logic.tcl (muss im namespace Logic definiert werden)
  variable ignore_dtmf 0;
  # DTMF Eingabe sperren
  proc dtmf_cmd_received {cmd} {
     puts "DTMF command received: $cmd";
     variable ignore_dtmf;
     if {$cmd == "999"} {
         set ignore_dtmf 1;
         return 1;
     }

# Raspberry pi Herunterfahren
  if {$cmd == "0774"} {
    puts "Halting RPi: $cmd";
    playMsg "Core" "unknown_command"
    exec shutdown -h now &
    return 1
  }

  # Raspberry pi Neustarten
  if {$cmd == "54321"} {
    puts "Rebooting RPi: $cmd";
    playMsg "Core" "unknown_command"
    exec reboot &
    return 1
  }

  # Svxlink neustarten (Restart)
  if {$cmd == "9876"} {
    puts "Rebooting RPi: $cmd";
    playMsg "Core" "unknown_command"
    exec service svxlink restart &
    return 1
  }
    # DTMF Eingabe einschalten
     if {$ignore_dtmf} {
      if {$cmd == "998"} {
         set ignore_dtmf 0;
         return 1;
      } elseif {$cmd == ""} {
         return 1;
      }
     }
   return 0;
 }
}

danach svxlink neu starten und testen.

Bitte denkt daran Rufzeichen nennen vor DTMF Eingabe😉

Es können auch andere Befehle eingesetzt werden, der Spielwiese sind hier keine Grenzen gesetzt.

Viel Spass beim nachbauen.

Vy 73 Jens, dj1jay

(gefunden im Svxlink Forum)
OM > Jens, dj1jay
QTH > Meiningen
Sysop von DB0MGN | DB0FTS

FM-FunkNetz / Thueringen.link Sysop ;)
Antworten