Hallo,
nachdem ich diese Lösung nun lange verwendet habe und mich immer über die Antwortzeiten von Fhem geärgert habe
(Fhem steht während der SSL Kommunikation und wartet auf Antwort da in der hier beschriebenen Weise als Blocking
programmiert.
Hier eine andere Variante dazu. Dies ist ein Script, welches auf der Fritzbox läuft, selbst die anwesenden Phones sucht
und dann per wget einen Dummy auf der Box setzt. Zusätzlich fragt das Sript hier einen Dummy SetRuhe ab und setzt
dementsprechend ein Dummy Ruhe. Das Ganze benötigt auf meiner 7390 leider eine vollständige WGet Implementierung.
Das ist die WGetn die er vom Stick lädt. Die reine Meldung der Mobiltelefone kann ohne Stick komplett aus der
Debug.cfg laufen.
#!/bin/sh
sleep 20
USBSTICK=$(mount | grep /var/media/ftp/ | sed -e "s|^.*ftp/||g" -e "s/ .*$//")
while !(test -f /var/media/ftp/$USBSTICK/wgetn); do
sleep 1
done
while true; do
local looptime=55
landevicelist() {
local count=0
local maxcount=$(ctlmgr_ctl r landevice settings/landevice/count)
while [ $count -lt $maxcount ] ; do
local name=$(ctlmgr_ctl r landevice settings/landevice$count/name)
if [ $name = android-8594d8381b97869 ]
then
local active=$(ctlmgr_ctl r landevice settings/landevice$count/active)
if [ $active -eq 1 ] ; then
wget -q -O /dev/null 'http://192.168.0.10:8085/fhem?cmd=set%20Wlan_Status_Stefanie%201'
else
wget -q -O /dev/null 'http://192.168.0.10:8085/fhem?cmd=set%20Wlan_Status_Stefanie%200'
fi
elif [ $name = iPhonevonafohl ] ; then
local active=$(ctlmgr_ctl r landevice settings/landevice$count/active)
if [ $active -eq 1 ] ; then
wget -q -O /dev/null 'http://192.168.0.10:8085/fhem?cmd=set%20Wlan_Status_Andreas%201'
else
wget -q -O /dev/null 'http://192.168.0.10:8085/fhem?cmd=set%20Wlan_Status_Andreas%200'
fi
fi
: $((count++))
done
}
landevicelist
if [ $(/var/media/ftp/$USBSTICK/wgetn -q "http://192.168.0.10:8085/fhem?cmd=getstate%20SetRuhe" -O - | grep state) = state:1 ]
then
ctlmgr_ctl w box settings/night_time_control_enabled 1
ctlmgr_ctl w box settings/night_time_control_ring_blocked 1
ctlmgr_ctl w box settings/night_time_control_on_time 23:59
ctlmgr_ctl w box settings/night_time_control_off_time 00:00
local dectcnt=0
local maxdectcnt=$(ctlmgr_ctl r telcfg settings/Foncontrol/User/count)
while [ $dectcnt -lt $maxdectcnt ] ; do
ctlmgr_ctl w telcfg settings/Foncontrol/User$dectcnt/RingAllowed 0
ctlmgr_ctl w telcfg settings/Foncontrol/User1/NoRingWithNightSetting 0
ctlmgr_ctl w telcfg settings/Foncontrol/User$dectcnt/NoRingTime 00002359
: $((dectcnt++))
done
wget -q -O /dev/null 'http://192.168.0.10:8085/fhem?cmd=set%20Ruhe%201'
else
ctlmgr_ctl w box settings/night_time_control_enabled 0
ctlmgr_ctl w box settings/night_time_control_ring_blocked 0
ctlmgr_ctl w box settings/night_time_control_on_time 23:59
ctlmgr_ctl w box settings/night_time_control_off_time 00:00
local dectcnt=0
local maxdectcnt=$(ctlmgr_ctl r telcfg settings/Foncontrol/User/count)
while [ $dectcnt -lt $maxdectcnt ] ; do
ctlmgr_ctl w telcfg settings/Foncontrol/User$dectcnt/RingAllowed 1
ctlmgr_ctl w telcfg settings/Foncontrol/User1/NoRingWithNightSetting 1
ctlmgr_ctl w telcfg settings/Foncontrol/User$dectcnt/NoRingTime 00000000
: $((dectcnt++))
done
wget -q -O /dev/null 'http://192.168.0.10:8085/fhem?cmd=set%20Ruhe%200'
fi
sleep $looptime
done
Gruß Andreas