Klingt gut.
Habe mal angefangen. Nicht über den ggf. unschönen Shellscript-Programmierstil beschweren ;-). Ein neues Image für die Box mit udpsvd muss ich erst noch bauen. Ebenso den Teil auf dem Pi.
Das Aktivieren bzw. Deaktivieren je nach Timestamp der semaphore Datei klappt damit schon ganz gut, soweit ich sehen kann. Großartig quittieren oder so brauch ich für meinen Anwendungsfall nicht, denke ich.
Womit polle ich auf der Fritzbox? cronjob? Wenn ich gerade nicht verquer denke, müsste es ja theoretisch ausreichen, diesen nur alle z.B. 30 Minuten oder so laufen zu lassen. Ich würde dann bei eintreffendem UDP-Paket im update_semaphore Script dann nicht nur den Timestamp der Datei aktualisieren sondern anschließend gleich das check_semaphore Script ausführen, so dass das Deaktivieren der VPN-Verbindung sofort passiert, da dies "zeitkritischer" ist, als der andere Fall, bei dem die Verbindung wieder aktiviert wird. Wenn ich den Pi von zuhause wieder mit nach Extern nehme, brauche ich die aktivierte VPN-Verbindung ja erst frühestens 30 Minuten später.
Dann werde ich mich demnächst mal mit dem UDP-Teil beschäftigen...
Habe mal angefangen. Nicht über den ggf. unschönen Shellscript-Programmierstil beschweren ;-). Ein neues Image für die Box mit udpsvd muss ich erst noch bauen. Ebenso den Teil auf dem Pi.
Code:
[U][I]check_semaphore.sh[/I][/U]
#!/bin/bash
# calculate time (in seconds) since semaphore file was last accessed
tsla=`expr $(date +%s) - $(date +%s -r semaphore)`
# if file has not been accessed for > 60 seconds, activate VPN connection, otherwise deactivate it
if [ $tsla -gt 60 ]
then
# heartbeat signal has not been received for >60 seconds, so activate VPN connection
# (Raspberry Pi not present)
echo "vpn:settings/connection0/activated=1" | ./set.lua
else
# semaphore file has been accessed during the last 60 seconds
# Raspberry Pi is present, deactivate VPN connection
echo "vpn:settings/connection0/activated=0" | ./set.lua
fi
[U][I]update_semaphore.sh[/I][/U]
#!/bin/sh
touch semaphore
Das Aktivieren bzw. Deaktivieren je nach Timestamp der semaphore Datei klappt damit schon ganz gut, soweit ich sehen kann. Großartig quittieren oder so brauch ich für meinen Anwendungsfall nicht, denke ich.
Womit polle ich auf der Fritzbox? cronjob? Wenn ich gerade nicht verquer denke, müsste es ja theoretisch ausreichen, diesen nur alle z.B. 30 Minuten oder so laufen zu lassen. Ich würde dann bei eintreffendem UDP-Paket im update_semaphore Script dann nicht nur den Timestamp der Datei aktualisieren sondern anschließend gleich das check_semaphore Script ausführen, so dass das Deaktivieren der VPN-Verbindung sofort passiert, da dies "zeitkritischer" ist, als der andere Fall, bei dem die Verbindung wieder aktiviert wird. Wenn ich den Pi von zuhause wieder mit nach Extern nehme, brauche ich die aktivierte VPN-Verbindung ja erst frühestens 30 Minuten später.
Dann werde ich mich demnächst mal mit dem UDP-Teil beschäftigen...
Zuletzt bearbeitet: