Das Ausführen eines Skripts auf Ihrem Computer ist viel einfacher und auf jeden Fall sauberer als das Einrichten eines Webservers, der darauf wartet, dass ein Telefon mit ihm spricht. Deshalb gehe ich zu Ihrer ersten Idee.
Annahmen:
- Sie haben root-Zugriff.
/etc/init.d/motion
wird zum Starten und Stoppen verwendetmotion
.systemctl start|stop motion.service
zumsystemd
- Sie stellen eine Verbindung zu demselben Netzwerk her wie Ihr Telefon
eth0
. - Ihre Cron-Implementierung verwendet den
crontab
Befehl.
Abrufen der MAC-Adresse:
Erhalten Sie arp-scan
und laufen arp-scan -I eth0 -l -r 10
als root. (Ich fand -r 10
es wichtig, immer mein Android-Handy zu erkennen.)
Dadurch wird eine Liste der Geräte in Ihrem Netzwerk angezeigt. Die dritte Spalte sollte die Identifizierung Ihres Telefons erleichtern. Nehmen wir an, wir bekommen 01:01:01:01:01:01
.
Skript es:
Führen Sie arp-scan -I eth0 -l -r 10 | grep -q '01:01:01:01:01:01'
als root aus. Dies wird 0
nur dann angezeigt, wenn das Telefon angeschlossen ist.
Führen Sie crontab -e
als root aus und hängen Sie diese Zeile an, um zu prüfen, ob Ihr Telefon jede Minute mit dem Netzwerk verbunden ist:
* * * * * arp-scan -I eth0 -l -r 10 | grep -q '01:01:01:01:01:01' && /etc/init.d/motion stop || /etc/init.d/motion start
Speichern Sie die Datei und beenden Sie den Editor.
Denken Sie daran, dass wir nicht prüfen müssen, ob motion
wir selbst laufen. Das Serviceskript erledigt dies intern.