Temat: Harmonogram wł./Wył. Sieci wifi
Witam!
Przedstawiam kolejny mini dodatek jakim jest możliwość ustawienia harmonogramu wł./wył. z przegladarki.
A wygląda to tak:
w katalogu /www tworzymy plik wifiharm.sh a w nim:
#!/usr/bin/haserl
<?
echo "Content-type: text/html"
echo ""
?>
<html>
<head>
<title>Harmonogram WiFi</title>
</head>
<body>
<div align="center">
<table bgcolor="yellow" border="2" cellpadding="7">
<form name="lisalrm" action="/cgi-bin/setwifiharm.sh" method="get" enctype="text/plain" >
<tr><th align="center">Ustaw Czas</th><th>Wybierz stan</th></tr>
<tr><td align="center">
<select name="hours" >
<option value="0">0</option><option value="1">1</option>
<option value="2">2</option><option value="3">3</option>
<option value="4">4</option><option value="5">5</option>
<option value="6">6</option><option value="7">7</option>
<option value="8">8</option><option value="9">9</option>
<option value="10">10</option><option value="11">11</option>
<option value="12">12</option><option value="13">13</option>
<option value="14">14</option><option value="15">15</option>
<option value="16">16</option><option value="17">17</option>
<option value="18">18</option><option value="19">19</option>
<option value="20">20</option><option value="21">21</option>
<option value="22">22</option><option value="23">23</option>
</select>
<select name="minutes" >
<option value="0">0</option><option value="1">1</option><option value="2">2</option><option value="3">3</option>
<option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option>
<option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option>
<option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option>
<option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option>
<option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option>
<option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option>
<option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option>
<option value="32">32</option><option value="33">33</option><option value="34">34</option><option value="35">35</option>
<option value="36">36</option><option value="37">37</option><option value="38">38</option><option value="39">39</option>
<option value="40">40</option><option value="41">41</option><option value="42">42</option><option value="43">43</option>
<option value="44">44</option><option value="45">45</option><option value="46">46</option><option value="47">47</option>
<option value="48">48</option><option value="49">49</option><option value="50">50</option><option value="51">51</option>
<option value="52">52</option><option value="53">53</option><option value="54">54</option><option value="55">55</option>
<option value="56">56</option><option value="57">57</option><option value="58">58</option><option value="59">59</option>
</select><td><input type="radio" name="activ" value="on" checked="check"/>Wl.<input type="radio" name="activ" value="off"/>Wyl.</td>
</td></tr>
<tr><td align="center">
<iframe src="cgi-bin/wifiharm/readharm.sh" width="230" height="150" frameborder="0">td>
<td align="center"><input type="submit" value="Dodaj" id="wpisz"/></td>
</form>
<tr><td colspan="2" align="center">
<form name="delwifiharm" action="/cgi-bin/delwifiharm.sh" method="get" enctype="text/plain" >
<select name="lstwifiharm" >
<?
/www/cgi-bin/lstwifiharm.sh
?>
</select> <input type="submit" name="usuwanie" value="Usun" onclick="return confirm('Na pewno chcesz usunac ?');"/>
</form>
</td></tr>
</table>
</div>
</body>
</html>
w katalogu /cgi-bin/ tworzymy kolejno pliki:
delwifiharm.sh
#!/usr/bin/haserl
<?
echo "Content-type: text/html"
echo ""
?>
<html>
<head>
<meta http-equiv="refresh" content="0; URL=/wifiharm.sh" />
</head>
<body>
<?
god=`echo $GET_lstwifiharm | cut -d " " -f 1 | cut -d : -f 1`
min=`echo $GET_lstwifiharm | cut -d " " -f 1 | cut -d : -f 2`
set=`echo $GET_lstwifiharm | cut -d " " -f 2`
if [ "$set" == "Wlacz" ]; then
sed -i "/$min $god \* \* \* wifi up/d" /etc/crontabs/root
/etc/init.d/cron restart
else
sed -i "/$min $god \* \* \* wifi down/d" /etc/crontabs/root
/etc/init.d/cron restart
fi
?>
</body>
</html>
lstwifiharm.sh
#!/usr/bin/haserl
<?
file=/etc/crontabs/root
for plik in `cat $file | sed 's/ /#/g' | grep "wifi"` ; do
H=`echo $plik | cut -d "#" -f 2`
M=`echo $plik | cut -d "#" -f 1`
stan=`echo $plik | grep up | wc -l`
if [ "$stan" == "1" ]; then
echo "<option>$H:$M Wlacz Wifi</option>"
else
echo "<option>$H:$M Wylacz Wifi</option>"
fi
done
?>
readharm.sh
#!/usr/bin/haserl
<?
echo "Content-type: text/html"
echo ""
?>
<html>
<head>
</head>
<body bgcolor="yellow">
<?
file=/etc/crontabs/root
for plik in `cat $file | sed 's/ /#/g' | grep "wifi"` ; do
hour=`echo $plik | cut -d "#" -f 2`
minute=`echo $plik | cut -d "#" -f 1`
if [ "$minute" -lt "10" ] ;then
M=`echo $minute | sed -e s/^/0/`
else
M=$minute
fi
if [ "$hour" -lt "10" ] ;then
H=`echo $hour | sed -e s/^/0/`
else
H=$hour
fi
stan=`echo $plik | grep up | wc -l`
if [ "$stan" == "1" ]; then
echo "$H:$M Wlacz Wifi <br />"
else
echo "$H:$M Wylacz Wifi <br />"
fi
done
?>
</body>
</html>
setwifiharm.sh
#!/usr/bin/haserl
<?
echo "Content-type: text/html"
echo ""
?>
<html>
<head>
<meta http-equiv="refresh" content="0; URL=/wifiharm.sh" />
</head>
<body>
<?
if [ "$GET_activ" == "on" ]; then
echo "$GET_minutes $GET_hours * * * wifi up" >> /etc/crontabs/root
/etc/init.d/cron restart
else
echo "$GET_minutes $GET_hours * * * wifi down" >> /etc/crontabs/root
/etc/init.d/cron restart
fi
?>
</body>
</html>
Dla wszystkich plików nadajemy uprawnienia chmod 755
Edytując /www/basic.sh wyszukujemy sekcję " id='wifi_isolate_container' "
i przed /div zamykajacym wstawiamy
<script type="text/javascript">
// Popup window code
function newPopup(url) {
popupWindow = window.open(
url,'popUpWindow','height=250,width=250,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=yes')
}
</script>
<br><a href="JavaScript:newPopup('/wifiharm.sh');">Harmonogram WiFi</a>
Pojawi się wtedy w GUI w zakładce ustawień wifi link do harmonogramu który będzie widoczny
pod ustawieniami na samym dole.
Od teraz wystarczy wejść na stronę /http://ip_routera/wifiharm.sh
gdzie można ustawić harmonogram włączenia sieci lub usunąć wybraną opcję.
Wyłączenie interfejsu chwilkę trwa więc proszę cierpliwie czekać przy testowaniu.
Sugestie dla poprawek mile widziane.
-----------------edit 25/03/2013---------------
mała poprawka:
dodając kolejny harmonogram do listy tabelka nie rozciąga się tylko pokazuje sie pasek przewijania co poprawia wygląd.
Raspberry Pi + HDMI-VGA + Lcd Controller + Lcd z laptopa = Pogodynka
