mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-01-31 12:49:34 +00:00
71fe020f84
git-svn-id: https://svn.fhem.de/fhem/trunk@3 2b470e98-0d58-463d-a4d8-8e2adae1ed80
241 lines
8.4 KiB
PHP
241 lines
8.4 KiB
PHP
<HTML>
|
|
<HEAD>
|
|
</HEAD>
|
|
<BODY>
|
|
<TITLE>
|
|
FS 20 Haussteuerrung
|
|
</TITLE>
|
|
</BODY>
|
|
|
|
<?PHP
|
|
|
|
function is_posint($a) {
|
|
return (((string)$a === (string)(int)$a) && ((int)$a >= 0));
|
|
}
|
|
|
|
function print_options($name, $device, $dimmable, $href)
|
|
{
|
|
echo "<A href=\"fs20.php?device=$device&state=toggle&command=set\">";
|
|
echo "$name</A>";
|
|
echo "<FORM action=\"fs20.php\">";
|
|
echo "<SELECT size=1 name=\"state\">";
|
|
echo "<OPTION value=\"off\" selected>Off";
|
|
if ( $dimmable ) {
|
|
echo "<OPTION value=\"dimup\">Up";
|
|
echo "<OPTION value=\"dimdown\">Down";
|
|
echo "<OPTION value=\"dim06%\">6%";
|
|
echo "<OPTION value=\"dim12%\">12%";
|
|
echo "<OPTION value=\"dim18%\">18%";
|
|
echo "<OPTION value=\"dim25%\">25%";
|
|
echo "<OPTION value=\"dim31%\">31%";
|
|
echo "<OPTION value=\"dim37%\">37%";
|
|
echo "<OPTION value=\"dim43%\">43%";
|
|
echo "<OPTION value=\"dim50%\">50%";
|
|
echo "<OPTION value=\"dim56%\">56%";
|
|
echo "<OPTION value=\"dim62%\">62%";
|
|
echo "<OPTION value=\"dim68%\">68%";
|
|
echo "<OPTION value=\"dim75%\">75%";
|
|
echo "<OPTION value=\"dim81%\">81%";
|
|
echo "<OPTION value=\"dim87%\">87%";
|
|
echo "<OPTION value=\"dim93%\">93%";
|
|
}
|
|
echo "<OPTION value=\"dim100%\">100%";
|
|
echo "</SELECT>";
|
|
echo "<INPUT type=\"hidden\" name=\"device\" value=\"$device\">";
|
|
echo "<INPUT type=\"hidden\" name=\"command\" value=\"set\">";
|
|
echo "<BR>";
|
|
echo "<INPUT type=\"submit\" name=\"dim\" value=\"Dim\">";
|
|
echo "</FORM>";
|
|
}
|
|
|
|
|
|
function generate_random()
|
|
{
|
|
$devices=array("dg.gang", "dg.wand", "dg.dusche", "dg.bad", "dg.reduit", "dg.eltern", "dg.kino", "og.gang", "og.bad.links", "og.bad.rechts", "og.bad.sterne", "og.bad.decke", "og.stefan.decke", "og.stefan.pult", "og.sandra.decke", "og.kind.r", "og.kind.l", "eg.sitzplatz", "eg.wohnzimmer", "eg.bar", "eg.tisch", "eg.decke", "eg.kueche", "eg.bahnlicht", "eg.bad", "eg.gang", "eg.og.treppe", "ug.gast", "ug.gast.dose", "ug.aussen", "ug.gang", "ug.eg.treppe");
|
|
|
|
#number of events (min - max)
|
|
$event_min=isset($_GET['event_min']) ? $_GET['event_min'] : 5;
|
|
$event_max=isset($_GET['event_max']) ? $_GET['event_max'] : 20;
|
|
|
|
#maximum delay in minutes
|
|
$delay_min=isset($_GET['delay_min']) ? $_GET['delay_min'] : 0;
|
|
$delay_max=isset($_GET['delay_max']) ? $_GET['delay_max'] : 240;
|
|
|
|
#minimum and maximum ontime in minutes
|
|
$ontime_min=isset($_GET['ontime_min']) ? $_GET['ontime_min'] : 5;
|
|
$ontime_max=isset($_GET['ontime_max']) ? $_GET['ontime_max'] : 60;
|
|
|
|
$variant=isset($_GET['variant']) ? $_GET['variant'] : "onoff";
|
|
|
|
echo "<H2>Random event generator (\"holiday-function\")</H2>";
|
|
echo "<FORM action=\"fs20.php\">";
|
|
echo "<TABLE>";
|
|
echo "<TR><TD>Number of events:</TD><TD><INPUT type=\"text\" size=\"3\" name=\"event_min\" value=\"$event_min\">-";
|
|
echo "<INPUT type=\"text\" size=\"3\" name=\"event_max\" value=\"$event_max\">";
|
|
if ( $event_min > $event_max ) { echo " : <FONT color=\"red\">min has to be <= max</FONT>"; unset($_GET['random']); }
|
|
if ( !is_posint($event_min)) { echo " : <FONT color=\"red\">min has to be a integer</FONT>"; unset($_GET['random']); }
|
|
if ( !is_posint($event_max)) { echo " : <FONT color=\"red\">max has to be a integer</FONT>"; unset($_GET['random']); }
|
|
echo "</TD></TR>";
|
|
echo "<TR><TD>Delay from now:</TD><TD><INPUT type=\"text\" size=\"3\" name=\"delay_min\" value=\"$delay_min\">-";
|
|
echo "<INPUT type=\"text\" size=\"3\" name=\"delay_max\" value=\"$delay_max\">Min.";
|
|
if ( $delay_min > $delay_max ) { echo " : <FONT color=\"red\">min has to be <= max</FONT>"; unset($_GET['random']); }
|
|
if ( !is_posint($delay_min)) { echo " : <FONT color=\"red\">min has to be a integer</FONT>"; unset($_GET['random']); }
|
|
if ( !is_posint($delay_max)) { echo " : <FONT color=\"red\">max has to be a integer</FONT>"; unset($_GET['random']); }
|
|
echo "</TD></TR>";
|
|
echo "<TR><TD>Time to keep on:</TD><TD><INPUT type=\"text\" size=\"3\" name=\"ontime_min\" value=\"$ontime_min\">-";
|
|
echo "<INPUT type=\"text\" size=\"3\" name=\"ontime_max\" value=\"$ontime_max\">Min.";
|
|
if ( $ontime_min > $ontime_max ) { echo " : <FONT color=\"red\">min has to be <= max</FONT>"; unset($_GET['random']); }
|
|
if ( !is_posint($ontime_min)) { echo " : <FONT color=\"red\">min has to be a integer</FONT>"; unset($_GET['random']); }
|
|
if ( !is_posint($ontime_max)) { echo " : <FONT color=\"red\">max has to be a integer</FONT>"; unset($_GET['random']); }
|
|
echo "</TD></TR>";
|
|
echo "<TR><TD colspan=\"2\">Varant: <SELECT size=1 name=\"variant\">";
|
|
echo "<OPTION value=\"onoff\"";
|
|
printf("%s", $variant == "onoff" ? " selected" : "");
|
|
echo ">on / off";
|
|
echo "<OPTION value=\"oft\"";
|
|
printf("%s", $variant == "oft" ? " selected" : "");
|
|
echo ">on-for-timer";
|
|
echo "</SELECT>";
|
|
echo "<INPUT type=\"submit\" name=\"random\" value=\"Generate!\">";
|
|
echo "</TD></TR></TABLE>";
|
|
echo "</FORM><P>";
|
|
|
|
if ( isset($_GET['random'])) {
|
|
$event=rand($event_min, $event_max);
|
|
echo "Just copy lines below into FHZ1000 command window";
|
|
echo "<pre>";
|
|
for($i=0; $i<$event; $i++) {
|
|
|
|
$starttime=rand($delay_min, $delay_max);
|
|
$hour=intval($starttime/60);
|
|
$minute=intval($starttime%60);
|
|
$second=rand(0,59);
|
|
|
|
$ontime=rand($ontime_min, $ontime_max);
|
|
|
|
$dev=$devices[array_rand($devices)];
|
|
|
|
if ($variant == "oft") {
|
|
printf("at +%02d:%02d:%02d set %s on-for-timer %d<br>", $hour, $minute, $second, $dev, $ontime);
|
|
} elseif ($variant == "onoff") {
|
|
$offtime=$starttime + $ontime;
|
|
$hour_off=intval($offtime / 60);
|
|
$minute_off=intval($offtime % 60);
|
|
$second_off=rand(0,59);
|
|
printf("at +%02d:%02d:%02d set %s on<br>", $hour, $minute, $second, $dev);
|
|
printf("at +%02d:%02d:%02d set %s off<br>", $hour_off, $minute_off, $second_off, $dev);
|
|
}
|
|
}
|
|
echo "<pre>";
|
|
}
|
|
}
|
|
|
|
?>
|
|
|
|
|
|
<H1>
|
|
FS 20 Haussteuerrung
|
|
</H1>
|
|
Quicklinks:
|
|
<A HREF="#EG">EG</A>
|
|
<A HREF="#GE">Generic</A>
|
|
<A HREF="#RA">Random</A>
|
|
|
|
<HR>
|
|
|
|
<A name="EG">
|
|
<H2>EG</H2>
|
|
</A>
|
|
|
|
<TABLE background=images/EG.gif width=567 height=589 border=0>
|
|
<TR height=100 align=center><TD width=55></TD><TD width=70></TD><TD width=25></TD><TD width=100></TD><TD width=60></TD><TD width=25></TD><TD width=70></TD><TD width=25></TD><TD width=70></TD><TD></TD></TR>
|
|
<TR height=120 align=center><TD></TD><TD colspan=2>
|
|
<?PHP print_options("BAR", "eg.bar", TRUE, "EG"); ?>
|
|
</TD><TD></TD><TD colspan=4>
|
|
<?PHP print_options("WOHNZIMMER", "eg.wohnzimmer", TRUE, "EG"); ?>
|
|
</TD><TD></TD><TD></TD></TR>
|
|
<TR height=20></TR>
|
|
<TR height=70 align=center><TD></TD><TD>
|
|
<?PHP print_options("BAD", "eg.bad", FALSE, "EG"); ?>
|
|
</TD><TD></TD><TD colspan=2>
|
|
<?PHP print_options("GANG", "eg.gang", TRUE, "EG"); ?>
|
|
</TD><TD></TD><TD>
|
|
<?PHP print_options("TREPPE", "eg.og.treppe", FALSE, "EG"); ?>
|
|
</TD><TD></TD><TD></TD><TD></TD></TR>
|
|
<TR height=20></TR>
|
|
<TR height=70 align=center><TD></TD><TD colspan=2>
|
|
<?PHP print_options("KUECHE", "eg.kueche", TRUE, "EG"); ?>
|
|
</TD><TD></TD><TD colspan=3>
|
|
<?PHP print_options("ESSTISCH", "eg.tisch", TRUE, "EG"); ?>
|
|
</TD><TD></TD><TD>
|
|
<?PHP print_options("BAHNLICHT", "eg.bahnlicht", FALSE, "EG"); ?>
|
|
</TD><TD></TD></TR>
|
|
<TR height=20 align=center></TR>
|
|
<TR height=70 align=center><TD></TD><TD></TD><TD></TD><TD></TD><TD colspan=3>
|
|
<?PHP print_options("DECKE", "eg.decke", FALSE, "EG"); ?>
|
|
</TD><TD></TD><TD>
|
|
<?PHP print_options("SITZPLATZ", "eg.sitzplatz", FALSE, "EG"); ?>
|
|
</TD><TD></TD></TR>
|
|
<TR></TR>
|
|
</TABLE>
|
|
|
|
<HR>
|
|
|
|
<A name="GE">
|
|
<H2>Send generic command:</H2>
|
|
<FORM action="fs20.php">
|
|
<?PHP
|
|
echo "<INPUT type=\"textarea\" cols=\"80\" rows=\"5\" name=\"generic\"";
|
|
printf("value=\"%s\">", isset($_GET['generic']) ? $_GET['generic'] : "");
|
|
?>
|
|
<INPUT type="submit" name="submit" value="send">
|
|
</FORM>
|
|
|
|
<HR>
|
|
|
|
<A name="RA">
|
|
<?PHP
|
|
generate_random();
|
|
|
|
//execute command
|
|
unset($cmdline);
|
|
|
|
if (isset($_GET['generic'])) {
|
|
$cmdline=explode("\n", $_GET['generic']);
|
|
} elseif (isset($_GET['device']) && isset($_GET['state']) && isset($_GET['command'])) {
|
|
$cmdline=array($_GET['command']." ".$_GET['device']." ".$_GET['state']);
|
|
}
|
|
|
|
if (isset($cmdline)) {
|
|
array_push($cmdline, "quit");
|
|
echo "<HR><H2>Last command</H2>";
|
|
echo "<TABLE><TR valign=top><TD>send:</TD><TD>";
|
|
foreach($cmdline as $line) {
|
|
echo "$line<br>";
|
|
}
|
|
echo "</TD></TR></TABLE>";
|
|
echo "<H3><Output></H3>";
|
|
$fp = fsockopen("localhost", 7072, $errno, $errstr, 10);
|
|
if (!$fp) {
|
|
echo "$errstr ($errno)<br>\n";
|
|
} else {
|
|
foreach($cmdline as $line) {
|
|
fwrite($fp, $line."\n");
|
|
}
|
|
echo "<pre>";
|
|
while (!feof($fp)) {
|
|
echo htmlentities(fgets($fp));
|
|
}
|
|
echo "</pre>";
|
|
fclose($fp);
|
|
}
|
|
|
|
echo "<HR>";
|
|
|
|
}
|
|
|
|
?>
|
|
|
|
</BODY>
|
|
</HTML>
|