/webfrontend/pgm4/fs20.php
PHP | 240 lines | 204 code | 32 blank | 4 comment | 25 complexity | 8ee6e186724c06752f8fff680744234f MD5 | raw file
Possible License(s): GPL-2.0
- <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>