<?php
/*
+---------------------------------------------------------------------+
| |
| SensorAndSwitch Automation Pro (User Interface) (sasapui) |
| =============================================================== |
| Bearbeitung der Konfigurationsdatei |
| |
| (C)2014/15 BlueDragon !
| |
+---------------------------------------------------------------------+
*/
error_reporting(0);
define ("PRG","SensorAndSwitch Automation Pro (UI)");
include __DIR__."/include/vercpr.php";
include __DIR__."/include/environ.php";
include __DIR__."/include/functions.php";
include __DIR__."/include/geraete.php";
ob_start();
ConfDat();
ConfDefault();
$Wt=array("*","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag");
ConfIn();
$Conf["PRG"]=PRG;
$Conf["VER"]=intval(str_replace(".","",substr(VER,2)));
ConfDef();
date_default_timezone_set(ZEITZONE);
HTMLKopf();
HTMLBodyTop();
session_start();
ZeitErmitteln();
GeraeteErmitteln();
SchaltlisteEinlesen();
printf('<h1><center><table><tr>');
if ($Conf["UPFENSTER"]=="nein") {
printf ('<td><h1><a href="sasap.php">-</a></h1></td>');
printf('<td><a href="'.$Conf["EURL"].'"><img style="height:20px;" src="'.PIC.'home.png"></a></td>');
}
printf('<td><img style="height:50px;" src="'.PIC.'logo.png"></td><td>'.PRG.' '.VER.'<br />'.CPR.'</td>');
printf (
'</tr></table></h1>'
);
printf ('<form name="sas" method="POST" action='.$PHP_SELF.'>');
$Sel=WahlSchalterliste();
$SI=AuswahlSchaltdatenErmitteln();
SchaltdatenErfassen();
printf ('<hr>');
AuswahlButton();
Entscheidung();
printf ('</form>');
HTMLBodyBottom();
ob_end_flush();
exit;
function GeraeteErmitteln() {
/*************************/
global $GerListARR,$WGerListe,$WGerListeP,$WGerListeO,$WGerListe7,$WGerListe8,$WGerListe9,$WGerListe9a;
global $fbARR,$psARR,$GerARRDat;
$Sort="name";
alleGeraeteX();
sortGeraete();
foreach ($GerListARR as $nr => $GerInfo) {
if ($GerInfo["NoAuto"]!="1") {
$GWatt=0;
foreach ($GerListARR as $nrD => $GerInfoD) {
if ($GerInfo["Typ"]=="Gruppe" and $GerInfo["Name"]==$GerInfoD["MemberOf"] and $GerInfoD["Typ"]=="Gerät") {
$GWatt+=$GerInfoD["Watt"];
}
}
if ($GerInfo["Typ"]=="Gruppe") {
$GerListARR[$nr]["Watt"]=sprintf('%.3f',($GWatt));
}
$WGerListe[$nr]=array($GerInfo["Name"],$GerInfo["Typ"].": ".$GerInfo["Name"]);
if ($GerListARR[$nr]["FBITP"]=="1" and strtoupper($GerListARR[$nr]["PSensor"][1])!="HTML") {
$WGerListeP[$nr]=array($GerInfo["Name"],$GerInfo["Typ"].": ".$GerInfo["Name"]);
}
if ($GerListARR[$nr]["FBITO"]=="1") {
$WGerListeO[$nr]=array($GerInfo["Name"],$GerInfo["Typ"].": ".$GerInfo["Name"]);
}
if ($GerListARR[$nr]["FBIT7"]=="1") {
$WGerListe7[$nr]=array($GerInfo["Name"],$GerInfo["Typ"].": ".$GerInfo["Name"]);
}
if ($GerListARR[$nr]["FBIT8"]=="1") {
$WGerListe8[$nr]=array($GerInfo["Name"],$GerInfo["Typ"].": ".$GerInfo["Name"]);
}
if ($GerListARR[$nr]["FBIT9"]=="1") {
$WGerListe9[$nr]=array($GerInfo["Name"],$GerInfo["Typ"].": ".$GerInfo["Name"]);
$WGerListe9a[$nr]=array($GerInfo["Name"],$GerInfo["Typ"].": ".$GerInfo["Name"]);
}
}
}
$WGerListe9[$nr+2]=array("-","nichts");
}
function SchaltdatenErfassen() {
/****************************/
global $Sel,$SI,$Schaltliste;
global $Zeit,$SoWi,$SonnenAufgang,$SonnenUntergang;
global $WGerListe,$WGerListeP,$WGerListeO,$WGerListe7,$WGerListe8,$WGerListe9,$WGerListe9a;
global $WWochentag,$WTypen,$WSchalter,$WSchalterToggle,$WAktiv,$WSonnenaufgang,$WSonnenuntergang,$WBedingung,$WKette;
if ($_POST["FSel"]==$Sel) {
if (isset($_POST["FSI06"])) {
$SI[6]=$_POST["FSI06"];
$SI[5]="";
$SI[7]="";
$SI[8]="";
$SI[9]="";
$SI[10]="";
}
}
$SI[6]=strtoupper($SI[6]);
if ($SI[6]=="X") {
$SI[7]=substr("****".$SI[7],-4);
}
if ($SI[6]=="X" or $SI[6]=="A" or $SI[6]=="U") {
$SI[8]=substr("*".$SI[8],-1);
$SI[9]=substr($SI[9]."********",0,8);
}
if ($SI[6]=="X" or $SI[6]=="A" or $SI[6]=="U" or $SI[6]=="O" or $SI[6]=="T" or $SI[6]=="W" or $SI[6]=="P" or $SI[6]=="S") {
printf ('<hr><p>Schalttyp: ');
printf ('<select onchange="sas.submit();" name="FSI06" size="1">');
foreach ($WTypen as $nr => $WX) {
if ($SI[6]==$WX[0]) {$selected=' selected="selected"';} else {$selected='';}
printf ('<option value="'.$WX[0].'"'.$selected.'>'.$WX[1].'</option>');
}
printf ('</select>');
printf ('<input type="hidden" name="FSel" value="'.$Sel.'">');
printf ('</p>');
}
printf ('<hr>');
if ($SI[1]=="K" and $SI[2]==0) {
printf ('<p id="binfo">Nächster Schaltzeitpunkt: '.$Schaltliste[$Sel][7].'</p>');
}
printf ('<p>');
if ($SI[6]=="X" or $SI[6]=="A" or $SI[6]=="U" or $SI[6]=="O" or $SI[6]=="T" or $SI[6]=="W" or $SI[6]=="P" or $SI[6]=="S") {
printf (' [SCHID:'.$SI[0].'] ');
printf ('<select name="FSI01" size="1">');
foreach ($WKette as $nr => $WX) {
if ($SI[1]==$WX[0]) {$selected=' selected="selected"';} else {$selected='';}
printf ('<option value="'.$WX[0].'"'.$selected.'>'.$WX[1].'</option>');
}
printf ('</select>, SCHID des Folgekettengliedes ');
printf ('<input type="text" name="FSI02" size="5" value="'.$SI[2].'">, Delay <input type="text" name="FSI03" size="5" value="'.$SI[3].'">, +Zufall <input type="text" name="FSI04" size="5" value="'.$SI[4].'">');
printf (' <br />');
}
if ($SI[6]=="X") {
printf (' Wenn es ');
printf ('<input type="text" name="FSI071" maxlength="2" size="2" value="'.substr($SI[7],0,2).'">:<input type="text" name="FSI072" maxlength="2" size="2" value="'.substr($SI[7],2,2).'"> Uhr ist');
}
if ($SI[6]=="A" or $SI[6]=="U") {
printf (' Wenn es ');
printf ('<input type="text" name="FSI072" maxlength="4" size="4" value="'.abs($SI[7]).'"> Min.');
}
if ($SI[6]=="A") {
printf (' ');
printf ('<select name="FSI071" size="1">');
foreach ($WSonnenaufgang as $nr => $WX) {
if (substr(sprintf('%+d',$SI[7]),0,1)==$WX[0]) {$selected=' selected="selected"';} else {$selected='';}
printf ('<option value="'.$WX[0].'"'.$selected.'>'.$WX[1].'</option>');
}
printf ('</select> ist');
}
if ($SI[6]=="U") {
printf (' ');
printf ('<select name="FSI071" size="1">');
foreach ($WSonnenuntergang as $nr => $WX) {
if (substr(sprintf('%+d',$SI[7]),0,1)==$WX[0]) {$selected=' selected="selected"';} else {$selected='';}
printf ('<option value="'.$WX[0].'"'.$selected.'>'.$WX[1].'</option>');
}
printf ('</select> ist');
}
if ($SI[6]=="X" or $SI[6]=="A" or $SI[6]=="U") {
printf (' </p><p> am Wochentag ');
printf ('<select name="FSI08" size="1">');
foreach ($WWochentag as $nr => $WX) {
if ($SI[8]==$WX[0]) {$selected=' selected="selected"';} else {$selected='';}
printf ('<option value="'.$WX[0].'"'.$selected.'>'.$WX[1].'</option>');
}
printf ('</select>,');
}
if ($SI[6]=="X" or $SI[6]=="A" or $SI[6]=="U") {
printf (' den ');
printf ('<input type="text" name="FSI091" maxlength="2" size="2" value="'.substr($SI[9],0,2).'">.<input type="text" name="FSI092" maxlength="2" size="2" value="'.substr($SI[9],2,2).'">.<input type="text" name="FSI093" maxlength="4" size="4" value="'.substr($SI[9],4,4).'">, ');
}
if ($SI[6]=="O") {
printf (' Wenn ');
printf ('<select name="FSI09" size="1">');
foreach ($WGerListeO as $nr => $WX) {
if ($SI[9]==$WX[0] or substr($SI[9],0,1)==$WX[0]) {$selected=' selected="selected"';} else {$selected='';}
printf ('<option value="'.$WX[0].'"'.$selected.'>'.$WX[1].'</option>');
}
printf ('</select>');
}
if ($SI[6]=="T") {
printf (' Wenn ');
printf ('<select name="FSI09" size="1">');
foreach ($WGerListe8 as $nr => $WX) {
if ($SI[9]==$WX[0] or substr($SI[9],0,1)==$WX[0]) {$selected=' selected="selected"';} else {$selected='';}
printf ('<option value="'.$WX[0].'"'.$selected.'>'.$WX[1].'</option>');
}
printf ('</select>');
}
if ($SI[6]=="P") {
printf (' Wenn ');
printf ('<select name="FSI09" size="1">');
foreach ($WGerListeP as $nr => $WX) {
if ($SI[9]==$WX[0] or substr($SI[9],0,1)==$WX[0]) {$selected=' selected="selected"';} else {$selected='';}
printf ('<option value="'.$WX[0].'"'.$selected.'>'.$WX[1].'</option>');
}
printf ('</select>');
}
if ($SI[6]=="W") {
printf (' Wenn ');
printf ('<select name="FSI09" size="1">');
foreach ($WGerListe7 as $nr => $WX) {
if ($SI[9]==$WX[0] or substr($SI[9],0,1)==$WX[0]) {$selected=' selected="selected"';} else {$selected='';}
printf ('<option value="'.$WX[0].'"'.$selected.'>'.$WX[1].'</option>');
}
printf ('</select>');
}
if ($SI[6]=="S") {
printf (' Wenn ');
printf ('<select name="FSI09" size="1">');
foreach ($WGerListe9a as $nr => $WX) {
if ($SI[9]==$WX[0] or substr($SI[9],0,1)==$WX[0]) {$selected=' selected="selected"';} else {$selected='';}
printf ('<option value="'.$WX[0].'"'.$selected.'>'.$WX[1].'</option>');
}
printf ('</select>');
}
if ($SI[6]=="O") {
printf (' ');
printf ('<select name="FSI07" size="1">');
foreach ($WBedingung as $nr => $WX) {
if ($SI[7]==$WX[0]) {$selected=' selected="selected"';} else {$selected='';}
printf ('<option value="'.$WX[0].'"'.$selected.'>'.$WX[1].'</option>');
}
printf ('</select>');
}
if ($SI[6]=="O") {
printf (' ');
printf ('<input type="text" name="FSI08" maxlength="4" size="4" value="'.$SI[8].'"> Einheiten ist,');
}
if ($SI[6]=="T") {
printf (' ');
printf ('<select name="FSI07" size="1">');
foreach ($WBedingung as $nr => $WX) {
if ($SI[7]==$WX[0]) {$selected=' selected="selected"';} else {$selected='';}
printf ('<option value="'.$WX[0].'"'.$selected.'>'.$WX[1].'</option>');
}
printf ('</select>');
}
if ($SI[6]=="T") {
printf (' ');
printf ('<input type="text" name="FSI08" maxlength="4" size="4" value="'.$SI[8].'"> °C warm ist,');
}
if ($SI[6]=="P") {
printf (' ');
printf ('<select name="FSI07" size="1">');
foreach ($WBedingung as $nr => $WX) {
if ($SI[7]==$WX[0]) {$selected=' selected="selected"';} else {$selected='';}
printf ('<option value="'.$WX[0].'"'.$selected.'>'.$WX[1].'</option>');
}
printf ('</select>');
}
if ($SI[6]=="P") {
printf (' ');
printf ('<input type="text" name="FSI08" maxlength="4" size="4" value="'.$SI[8].'"> ist,');
}
if ($SI[6]=="W") {
printf (' ');
printf ('<select name="FSI07" size="1">');
foreach ($WBedingung as $nr => $WX) {
if ($SI[7]==$WX[0]) {$selected=' selected="selected"';} else {$selected='';}
printf ('<option value="'.$WX[0].'"'.$selected.'>'.$WX[1].'</option>');
}
printf ('</select>');
}
if ($SI[6]=="W") {
printf (' ');
printf ('<input type="text" name="FSI08" maxlength="4" size="4" value="'.$SI[8].'"> Watt verbraucht,');
}
if ($SI[6]=="S") {
printf (' ');
printf ('<select name="FSI07" size="1">');
foreach ($WAktiv as $nr => $WX) {
if ($SI[7]==$WX[0]) {$selected=' selected="selected"';} else {$selected='';}
printf ('<option value="'.$WX[0].'"'.$selected.'>'.$WX[1].'</option>');
}
printf ('</select>');
}
if ($SI[6]=="S") {
printf (' ist und Schalter ');
printf ('<select name="FSI08" size="1">');
foreach ($WSchalter as $nr => $WX) {
if ($SI[8]==$WX[0]) {$selected=' selected="selected"';} else {$selected='';}
printf ('<option value="'.$WX[0].'"'.$selected.'>'.$WX[1].'</option>');
}
printf ('</select>,');
}
if ($SI[6]=="X" or $SI[6]=="A" or $SI[6]=="U" or $SI[6]=="O" or $SI[6]=="T" or $SI[6]=="W" or $SI[6]=="P" or $SI[6]=="S") {
printf (' </p><p> dann schalte von ');
printf ('<select name="FSI10" size="1">');
foreach ($WGerListe9 as $nr => $WX) {
if ($SI[10]==$WX[0] or substr($SI[10],0,1)==$WX[0]) {$selected=' selected="selected"';} else {$selected='';}
printf ('<option value="'.$WX[0].'"'.$selected.'>'.$WX[1].'</option>');
}
printf ('</select>');
}
if ($SI[6]=="X" or $SI[6]=="A" or $SI[6]=="U" or $SI[6]=="O" or $SI[6]=="T" or $SI[6]=="W" or $SI[6]=="P" or $SI[6]=="S") {
printf (' den Schalter ');
printf ('<select name="FSI05" size="1">');
foreach ($WSchalterToggle as $nr => $WX) {
if ($SI[5]==$WX[0]) {$selected=' selected="selected"';} else {$selected='';}
printf ('<option value="'.$WX[0].'"'.$selected.'>'.$WX[1].'</option>');
}
printf ('</select>.');
}
printf (' </p>');
}
function Entscheidung() {
/*********************/
global $Sel,$SI,$pseudoURL;
if ($_POST["Löschen"]=="Löschen") {
$_SESSION['button']="CLEAR";
$Text='Schaltvorgang "'.SchaltlisteElDel($Sel).'" wurde gelöscht.';
$_SESSION['inhalt']=$Text;
session_write_close();
header("Location: ".$_SERVER["PHP_SELF"]);
}
if ($_POST["OK"]=="OK") {
$_SESSION['button']="OK";
$SI[1]=$_POST["FSI01"];
$SI[2]=$_POST["FSI02"];
$SI[3]=$_POST["FSI03"];
$SI[4]=$_POST["FSI04"];
$SI[5]=$_POST["FSI05"];
$SI[6]=$_POST["FSI06"];
$SI[6]=strtoupper($SI[6]);
if ($SI[6]=="X") {
$SI[7]=$_POST["FSI071"].$_POST["FSI072"];
$SI[8]=$_POST["FSI08"];
$SI[9]=$_POST["FSI091"].$_POST["FSI092"].$_POST["FSI093"];
$SI[10]=$_POST["FSI10"];
}
if ($SI[6]=="A" or $SI[6]=="U") {
$SI[7]=intval($_POST["FSI071"].$_POST["FSI072"]);
$SI[8]=$_POST["FSI08"];
$SI[9]=$_POST["FSI091"].$_POST["FSI092"].$_POST["FSI093"];
$SI[10]=$_POST["FSI10"];
}
if ($SI[6]=="W") {
$SI[7]=$_POST["FSI07"];
$SI[8]=str_replace(',', '.',$_POST["FSI08"]);
$SI[9]=$_POST["FSI09"];
$SI[10]=$_POST["FSI10"];
}
if ($SI[6]=="P") {
$SI[7]=$_POST["FSI07"];
$SI[8]=str_replace(',', '.',$_POST["FSI08"]);
$SI[9]=$_POST["FSI09"];
$SI[10]=$_POST["FSI10"];
}
if ($SI[6]=="O") {
$SI[7]=$_POST["FSI07"];
$SI[8]=str_replace(',', '.',$_POST["FSI08"]);
$SI[9]=$_POST["FSI09"];
$SI[10]=$_POST["FSI10"];
}
if ($SI[6]=="T") {
$SI[7]=$_POST["FSI07"];
$SI[8]=str_replace(',', '.',$_POST["FSI08"]);
$SI[9]=$_POST["FSI09"];
$SI[10]=$_POST["FSI10"];
}
if ($SI[6]=="S") {
$SI[7]=$_POST["FSI07"];
$SI[8]=$_POST["FSI08"];
$SI[9]=$_POST["FSI09"];
$SI[10]=$_POST["FSI10"];
}
if ($SI[6]=="X") {
$SI[7]=substr("****".$SI[7],-4);
}
if ($SI[6]=="X" or $SI[6]=="A" or $SI[6]=="U") {
$SI[8]=substr("*".$SI[8],-1);
$SI[9]=substr($SI[9]."********",0,8);
}
if ($Sel!=0) {
$Text='Schaltvorgang "['.SchaltlisteElAdd($SI).']" wurde geändert.';
}
else {
$Text='Schaltvorgang "['.SchaltlisteElAdd($SI).']" wurde hinzugefügt.';
}
$_SESSION['inhalt']=$Text;
session_write_close();
header("Location: ".$_SERVER["PHP_SELF"]);
}
if (isset($_SESSION['button'])) {
$button=$_SESSION['button'];
if ($button=="OK") {
printf ('<hr><p id="binfo">'.$_SESSION['inhalt'].'<p>');
}
if ($button=="CLEAR") {
printf ('<hr><p id="binfo">'.$_SESSION['inhalt'].'<p>');
}
session_unset();
}
}
function AuswahlButton() {
/**********************/
global $Sel,$Conf;
printf ('<p>');
if ($Sel!=0) {
printf ('<input id="buttonloeschen" type="submit" value="Löschen" name="Löschen">');
}
printf (' ');
printf ('<input id="buttonok" type="submit" value="OK" name="OK">');
printf ('</p>');
}
function AuswahlSchaltdatenErmitteln() {
/************************************/
global $Sel;
global $Schaltliste,$AlleSchaltdaten;
$ASD="";
foreach ($AlleSchaltdaten as $nr => $SD) {
if ($Schaltliste[$Sel][0]==$SD) {
$ASD=$SD;
}
}
if (substr($ASD,0,1)=="#") {
$ASD="0,K,0,0,0,0,X,****,*,********,";
}
return explode(",",trim($ASD));
}
function WahlSchalterliste() {
/**************************/
global $Sel;
global $Schaltliste,$AlleSchaltdaten;
printf ('<h2>Schaltliste:</h2>');
$CLi=count($Schaltliste);
if ($CLi>15) {
$CLi=15;
}
printf ('<select onchange="sas.submit();" name="FSchalterliste" size="'.$CLi.'">');
if (!isset($Sel)) {
$Sel=0;
}
if (isset($_POST['FSchalterliste'])) {
$Sel=$_POST['FSchalterliste'];
}
foreach ($Schaltliste as $nr => $SL ) {
$selected="";
if ($Sel==$nr) {
$selected=' selected="selected"';
}
printf ('<option value="'.$nr.'"'.$selected.'>'.$SL[1].'</option>');
}
printf ('</select>');
return $Sel;
}
function SchaltlisteElAdd($El) {
/****************************/
global $Sel;
global $SchaltConfigPro;
global $Schaltliste,$AlleSchaltdaten;
$SelX=$Sel;
if ($Sel==0) {
$neueSCHID=false;
$SCHID=1;
while (!$neueSCHID) {
$belegt=false;
foreach ($AlleSchaltdaten as $n => $Schaltdaten) {
$AlleSchaltdaten[$n]=trim($AlleSchaltdaten[$n]);
$SI=explode(",",trim($Schaltdaten));
if ($SI[0]==$SCHID) {
$belegt=true;
}
}
if (!$belegt) {
$neueSCHID=true;
$El[0]=$SCHID;
break;
}
$SCHID+=1;
}
}
$iEl=implode(",",$El);
if ($Sel==0) {
$AlleSchaltdaten=array_merge(array_slice($AlleSchaltdaten,0,1),(array)$iEl,array_slice($AlleSchaltdaten,1));
}
else {
$AlleSchaltdaten=array_merge(array_slice($AlleSchaltdaten,0,$Sel),(array)$iEl,array_slice($AlleSchaltdaten,$Sel+1));
}
$Status=$El[0];
foreach ($AlleSchaltdaten as $n => $Schaltdaten) {
if ($n==0) {
$Typ1[$n]="0";
$Typ2[$n]="0";
$Typ3[$n]="0";
$Typ4[$n]="0";
$Typ5[$n]="0";
}
else {
$SI=explode(",",trim($Schaltdaten));
$Typ1[$n]=strtolower($SI[6]);
$Typ2[$n]=$SI[7];
$Typ3[$n]=$SI[8];
$Typ4[$n]=$SI[9];
$Typ5[$n]=$SI[10];
}
}
array_multisort($Typ1,SORT_ASC,$Typ2,SORT_ASC,$Typ3,SORT_ASC,$Typ4,SORT_ASC,$Typ5,SORT_ASC,$AlleSchaltdaten);
$fp=fopen($SchaltConfigPro,"w");
for ($i=0;$i<count($AlleSchaltdaten);$i++) {
if ($i!=0) {
fputs($fp,"\n");
}
fputs($fp,trim($AlleSchaltdaten[$i]));
}
fclose($fp);
SchaltlisteEinlesen();
return $Status;
}
function SchaltlisteElDel($El) {
/****************************/
global $SchaltConfigPro;
global $Schaltliste,$AlleSchaltdaten;
$Status=$Schaltliste[$El][1];
unset ($AlleSchaltdaten[$Schaltliste[$El][2]]);
$AlleSchaltdaten=array_merge($AlleSchaltdaten);
foreach ($AlleSchaltdaten as $n => $Schaltdaten) {
if ($n==0) {
$Typ1[$n]="0";
$Typ2[$n]="0";
$Typ3[$n]="0";
$Typ4[$n]="0";
$Typ5[$n]="0";
}
else {
$SI=explode(",",trim($Schaltdaten));
$Typ1[$n]=strtolower($SI[6]);
$Typ2[$n]=$SI[7];
$Typ3[$n]=$SI[8];
$Typ4[$n]=$SI[9];
$Typ5[$n]=$SI[10];
}
}
array_multisort($Typ1,SORT_ASC,$Typ2,SORT_ASC,$Typ3,SORT_ASC,$Typ4,SORT_ASC,$Typ5,SORT_ASC,$AlleSchaltdaten);
$fp=fopen($SchaltConfigPro,"w");
for ($i=0;$i<count($AlleSchaltdaten);$i++) {
if ($i!=0) {
fputs($fp,"\n");
}
fputs($fp,trim($AlleSchaltdaten[$i]));
}
fclose($fp);
SchaltlisteEinlesen();
return $Status;
}
function SchaltlisteEinlesen() {
/****************************/
global $SchaltConfigPro;
global $GerListARR,$WGerListe,$WGerListeP,$WGerListeO,$WGerListe7,$WGerListe8,$WGerListe9,$WGerListe9a;
global $Schaltliste,$AlleSchaltdaten;
global $Zeit,$SonnenAufgang,$SonnenUntergang,$SonnenAufgangM,$SonnenUntergangM;
global $WWochentag,$WTypen,$WSchalter,$WSchalterToggle,$WAktiv,$WSonnenaufgang,$WSonnenuntergang,$WBedingung,$WKette;
global $Wt;
$AlleSchaltdaten=file($SchaltConfigPro);
$Liste=array();
$ListeDAT=array();
$nn=-1;
$AlleSchaltdaten[0]="# ".PRG." ".VER." ".CPR;
foreach ($AlleSchaltdaten as $n => $Schaltdaten) {
if ($n==0) {
$Typ1[$n]="0";
$Typ2[$n]="0";
$Typ3[$n]="0";
}
else {
$SI=explode(",",trim($Schaltdaten));
$Typ1[$n]=strtolower($SI[6]);
$Typ2[$n]=$SI[7];
$Typ3[$n]=$SI[8];
}
}
array_multisort($Typ1,SORT_ASC,$Typ2,SORT_ASC,$Typ3,SORT_ASC,$AlleSchaltdaten);
foreach ($AlleSchaltdaten as $n => $Schaltdaten) {
$AlleSchaltdaten[$n]=trim($AlleSchaltdaten[$n]);
$GD=array();
$GDX=array();
$SI=explode(",",trim($Schaltdaten));
$SI[6]=strtoupper($SI[6]);
if ($SI[5]=="0" or $SI[5]=="1" or $SI[5]=="T") {
$Schaltzeit="0000000000000";
if ($SI[5]=="0") {
$Schalter="aus";
}
if ($SI[5]=="1") {
$Schalter="an";
}
if ($SI[5]=="T") {
$Schalter="toggle";
}
$Geraet=$SI[10];
if ($SI[6]=="X") {
foreach ($GerListARR as $nr => $inhalt) {
if ($inhalt["Name"]==$SI[10]) {
$GD["Aktiv"]=$inhalt["Aktiv"];
$GD["Name"]=$inhalt["Name"];
$GD["AIN"]=$inhalt["AIN"];
$GD["Temp"]=$inhalt["Temp"];
$GD["Watt"]=$inhalt["Watt"];
$GD["PSensor"]=$inhalt["PSensor"];
$GD["Schalter"]=$inhalt["Schalter"];
}
}
$SI[7]=substr("****".$SI[7],-4);
$SI[8]=substr("*".$SI[8],-1);
$SI[9]=substr($SI[9]."********",0,8);
$Schaltzeit=$SI[7].$SI[8].$SI[9];
for($i=0;$i<=12; ++$i) {
if (substr($Schaltzeit,$i,1)=="*") {
$Schaltzeit=substr_replace($Schaltzeit,substr($Zeit,$i,1),$i,1);
}
}
}
if ($SI[6]=="A") {
foreach ($GerListARR as $nr => $inhalt) {
if ($inhalt["Name"]==$SI[10]) {
$GD["Aktiv"]=$inhalt["Aktiv"];
$GD["Name"]=$inhalt["Name"];
$GD["AIN"]=$inhalt["AIN"];
$GD["Temp"]=$inhalt["Temp"];
$GD["Watt"]=$inhalt["Watt"];
$GD["PSensor"]=$inhalt["PSensor"];
$GD["Schalter"]=$inhalt["Schalter"];
}
}
$SI[8]=substr("*".$SI[8],-1);
$SI[9]=substr($SI[9]."********",0,8);
$Schaltzeit="0000".$SI[8].$SI[9];
$Abweichung=$SI[7];
for($i=0;$i<=12; ++$i) {
if (substr($Schaltzeit,$i,1)=="*") {
$Schaltzeit=substr_replace($Schaltzeit,substr($Zeit,$i,1),$i,1);
}
}
$SAA=date("HiNdmY",(mktime(substr($SonnenAufgang,0,2),substr($SonnenAufgang,2,2),0,substr($Schaltzeit,7,2),substr($Schaltzeit,5,2),substr($Schaltzeit,9,4)))+(60*$Abweichung));
if (strpos($SI[9],"*")===false) {$Stern="nein";} else {$Stern="ja";}
if (substr($Zeit,9,4).substr($Zeit,7,2).substr($Zeit,5,2).substr($Zeit,4,1).substr($Zeit,0,4)>substr($SAA,9,4).substr($SAA,7,2).substr($SAA,5,2).substr($SAA,4,1).substr($SAA,0,4) and $Stern=="ja") {
$Schaltzeit=date("HiNdmY",(mktime(substr($SonnenAufgangM,0,2)+24,substr($SonnenAufgangM,2,2),0,substr($Schaltzeit,7,2),substr($Schaltzeit,5,2),substr($Schaltzeit,9,4)))+(60*$Abweichung));
}
else {
if (substr($Zeit,9,4).substr($Zeit,7,2).substr($Zeit,5,2)<substr($SAA,9,4).substr($SAA,7,2).substr($SAA,5,2) and $Stern=="ja") {
$Schaltzeit=date("HiNdmY",(mktime(substr($SonnenAufgangM,0,2),substr($SonnenAufgangM,2,2),0,substr($Schaltzeit,7,2),substr($Schaltzeit,5,2),substr($Schaltzeit,9,4)))+(60*$Abweichung));
}
else {
$Schaltzeit=date("HiNdmY",(mktime(substr($SonnenAufgang,0,2),substr($SonnenAufgang,2,2),0,substr($Schaltzeit,7,2),substr($Schaltzeit,5,2),substr($Schaltzeit,9,4)))+(60*$Abweichung));
}
}
}
if ($SI[6]=="U") {
foreach ($GerListARR as $nr => $inhalt) {
if ($inhalt["Name"]==$SI[10]) {
$GD["Aktiv"]=$inhalt["Aktiv"];
$GD["Name"]=$inhalt["Name"];
$GD["AIN"]=$inhalt["AIN"];
$GD["Temp"]=$inhalt["Temp"];
$GD["Watt"]=$inhalt["Watt"];
$GD["PSensor"]=$inhalt["PSensor"];
$GD["Schalter"]=$inhalt["Schalter"];
}
}
$SI[8]=substr("*".$SI[8],-1);
$SI[9]=substr($SI[9]."********",0,8);
$Schaltzeit="0000".$SI[8].$SI[9];
$Abweichung=$SI[7];
for($i=0;$i<=12; ++$i) {
if (substr($Schaltzeit,$i,1)=="*") {
$Schaltzeit=substr_replace($Schaltzeit,substr($Zeit,$i,1),$i,1);
}
}
$SUA=date("HiNdmY",(mktime(substr($SonnenUntergang,0,2),substr($SonnenUntergang,2,2),0,substr($Schaltzeit,7,2),substr($Schaltzeit,5,2),substr($Schaltzeit,9,4)))+(60*$Abweichung));
if (strpos($SI[9],"*")===false) {$Stern="nein";} else {$Stern="ja";}
if (substr($Zeit,9,4).substr($Zeit,7,2).substr($Zeit,5,2).substr($Zeit,4,1).substr($Zeit,0,4)>substr($SUA,9,4).substr($SUA,7,2).substr($SUA,5,2).substr($SUA,4,1).substr($SUA,0,4) and $Stern=="ja") {
$Schaltzeit=date("HiNdmY",(mktime(substr($SonnenUntergangM,0,2)+24,substr($SonnenUntergangM,2,2),0,substr($Schaltzeit,7,2),substr($Schaltzeit,5,2),substr($Schaltzeit,9,4)))+(60*$Abweichung));
}
else {
if (substr($Zeit,9,4).substr($Zeit,7,2).substr($Zeit,5,2)<substr($SUA,9,4).substr($SUA,7,2).substr($SUA,5,2) and $Stern=="ja") {
$Schaltzeit=date("HiNdmY",(mktime(substr($SonnenUntergangM,0,2),substr($SonnenUntergangM,2,2),0,substr($Schaltzeit,7,2),substr($Schaltzeit,5,2),substr($Schaltzeit,9,4)))+(60*$Abweichung));
}
else {
$Schaltzeit=date("HiNdmY",(mktime(substr($SonnenUntergang,0,2),substr($SonnenUntergang,2,2),0,substr($Schaltzeit,7,2),substr($Schaltzeit,5,2),substr($Schaltzeit,9,4)))+(60*$Abweichung));
}
}
}
if ($SI[6]=="S" or $SI[6]=="W" or $SI[6]=="O" or $SI[6]=="T" or $SI[6]=="P") {
foreach ($GerListARR as $nr => $inhalt) {
if ($inhalt["Name"]==$SI[10]) {
$GD["Aktiv"]=$inhalt["Aktiv"];
$GD["Name"]=$inhalt["Name"];
$GD["AIN"]=$inhalt["AIN"];
$GD["Temp"]=$inhalt["Temp"];
$GD["Watt"]=$inhalt["Watt"];
$GD["PSensor"]=$inhalt["PSensor"];
$GD["Schalter"]=$inhalt["Schalter"];
}
}
foreach ($GerListARR as $nr => $inhalt) {
if ($inhalt["Name"]==$SI[9]) {
$GDX["Aktiv"]=$inhalt["Aktiv"];
$GDX["Name"]=$inhalt["Name"];
$GDX["AIN"]=$inhalt["AIN"];
$GDX["Temp"]=$inhalt["Temp"];
$GDX["Watt"]=$inhalt["Watt"];
$GDX["PSensor"]=$inhalt["PSensor"];
$GDX["Schalter"]=$inhalt["Schalter"];
}
}
if ($SI[6]=="S") {
if ($SI[7]==$GDX["Aktiv"] and $SI[8]==$GDX["Schalter"]) {
$Schaltzeit=$Zeit;
}
if ($SI[7]==$GDX["Aktiv"] and $GDX["Aktiv"]=="0") {
$Schaltzeit=$Zeit;
$GDX["Aktiv"]="0";
$GDX["Schalter"]="2";
$GDX["Watt"]="-";
$GDX["Temp"]="-";
$GDX["PSensor"][0]="-";
}
}
if ($SI[6]=="W" and $GDX["Aktiv"]=="1" and $GDX["Schalter"]>0) {
if ($SI[7]==">" and $GDX["Watt"]>$SI[8]) {
$Schaltzeit=$Zeit;
}
if ($SI[7]==">=" and $GDX["Watt"]>=$SI[8]) {
$Schaltzeit=$Zeit;
}
if ($SI[7]=="=" and $GDX["Watt"]==$SI[8]) {
$Schaltzeit=$Zeit;
}
if ($SI[7]=="==" and $GDX["Watt"]==$SI[8]) {
$Schaltzeit=$Zeit;
}
if ($SI[7]=="<" and $GDX["Watt"]<$SI[8]) {
$Schaltzeit=$Zeit;
}
if ($SI[7]=="<=" and $GDX["Watt"]<=$SI[8]) {
$Schaltzeit=$Zeit;
}
}
if ($SI[6]=="T" and $GDX["Aktiv"]=="1") {
if ($SI[7]==">" and $GDX["Temp"]>$SI[8]) {
$Schaltzeit=$Zeit;
}
if ($SI[7]==">=" and $GDX["Temp"]>=$SI[8]) {
$Schaltzeit=$Zeit;
}
if ($SI[7]=="=" and $GDX["Temp"]==$SI[8]) {
$Schaltzeit=$Zeit;
}
if ($SI[7]=="==" and $GDX["Temp"]==$SI[8]) {
$Schaltzeit=$Zeit;
}
if ($SI[7]=="<" and $GDX["Temp"]<$SI[8]) {
$Schaltzeit=$Zeit;
}
if ($SI[7]=="<=" and $GDX["Temp"]<=$SI[8]) {
$Schaltzeit=$Zeit;
}
}
if ($SI[6]=="O" and $GDX["Aktiv"]=="1") {
if ($SI[7]==">" and $GDX["Einheiten"]>$SI[8]) {
$Schaltzeit=$Zeit;
}
if ($SI[7]==">=" and $GDX["Einheiten"]>=$SI[8]) {
$Schaltzeit=$Zeit;
}
if ($SI[7]=="=" and $GDX["Einheiten"]==$SI[8]) {
$Schaltzeit=$Zeit;
}
if ($SI[7]=="==" and $GDX["Einheiten"]==$SI[8]) {
$Schaltzeit=$Zeit;
}
if ($SI[7]=="<" and $GDX["Einheiten"]<$SI[8]) {
$Schaltzeit=$Zeit;
}
if ($SI[7]=="<=" and $GDX["Einheiten"]<=$SI[8]) {
$Schaltzeit=$Zeit;
}
}
if ($SI[6]=="P" and $GDX["Aktiv"]=="1") {
if ($SI[7]==">" and $GDX["PSensor"][0]>$SI[8]) {
$Schaltzeit=$Zeit;
}
if ($SI[7]==">=" and $GDX["PSensor"][0]>=$SI[8]) {
$Schaltzeit=$Zeit;
}
if ($SI[7]=="=" and $GDX["PSensor"][0]==$SI[8]) {
$Schaltzeit=$Zeit;
}
if ($SI[7]=="==" and $GDX["PSensor"][0]==$SI[8]) {
$Schaltzeit=$Zeit;
}
if ($SI[7]=="<" and $GDX["PSensor"][0]<$SI[8]) {
$Schaltzeit=$Zeit;
}
if ($SI[7]=="<=" and $GDX["PSensor"][0]<=$SI[8]) {
$Schaltzeit=$Zeit;
}
}
}
$SI[11]=substr($Schaltzeit,9,4).substr($Schaltzeit,7,2).substr($Schaltzeit,5,2).substr($Schaltzeit,4,1).substr($Schaltzeit,0,4);
$SI[12]=substr($Schaltzeit,0,2).":".substr($Schaltzeit,2,2)." ".substr($WWochentag[substr($Schaltzeit,4,1)][1],0,2).", ".substr($Schaltzeit,5,2).".".substr($Schaltzeit,7,2).".".substr($Schaltzeit,9,4);
$SI[13]=substr($Zeit,9,4).substr($Zeit,7,2).substr($Zeit,5,2).substr($Zeit,4,1).substr($Zeit,0,4);
if (strpos($SI[9],"*")===false) {$Stern="nein";} else {$Stern="ja";}
if ($Schaltzeit=="0000000000000") {
$SI[12]="bei erfüllter Bedingung";
}
else {
if ($SI[13]>$SI[11] and $Stern=="ja") {
$SI[12]="bei erfüllter Platzhalterersetzung (heute nicht)";
}
if (($SI[13]>$SI[11]) and ($SI[6]=="X" or $SI[6]=="A" or $SI[6]=="U") and $Stern=="ja") {
$SI[12]="bei erfüllter Platzhalterersetzung (heute nicht)";
}
if (($SI[13]>$SI[11]) and ($SI[6]=="X" or $SI[6]=="A" or $SI[6]=="U") and $Stern=="nein") {
$SI[12]="Schaltzeitpunkt überschritten!";
}
}
}
if (substr($SI[5],0,1)=="#") {
$SI[6]="";
}
if ($nn==-1) {
$nn++;
$Liste[$nn]="--- neuer Eintrag ---";
$SI[6]="-";
}
if ($SI[6]=="X") {
$nn++;
$WTA=$SI[8];
if ($WTA!="*") {
$WTA="am ".$Wt[$SI[8]].", den";
}
else {
$WTA="an jedem Wochentag am";
}
$Liste[$nn]="[".$SI[0]."] ".$SI[1]." [".$SI[2]."] ".$SI[3].",".$SI[4]." - Zeitpunkt: "."(".$SI[10].")"." um ".substr($SI[7],0,2).":".substr($SI[7],2,2)." ".$WTA." ".substr($SI[9],0,2).".".substr($SI[9],2,2).".".substr($SI[9],4,4);
if ($SI[5]=="0") {
$Liste[$nn]=$Liste[$nn]." ausschalten.";
}
if ($SI[5]=="1") {
$Liste[$nn]=$Liste[$nn]." einschalten.";
}
if ($SI[5]=="T") {
$Liste[$nn]=$Liste[$nn]." umschalten.";
}
$ListeDAT[$n]=$Liste[$nn];
}
if ($SI[6]=="A") {
$nn++;
$WTA=$SI[8];
if ($WTA!="*") {
$WTA="am ".$Wt[$SI[8]].", den";
}
else {
$WTA="an jedem Wochentag am";
}
$Liste[$nn]="[".$SI[0]."] ".$SI[1]." [".$SI[2]."] ".$SI[3].",".$SI[4]." - Sonnenaufgang: "."(".$SI[10].")";
if (intval($SI[7])==0) {
$Liste[$nn]=$Liste[$nn]." zum Sonnenaufgang ";
}
if (intval($SI[7])>0) {
$Liste[$nn]=$Liste[$nn]." ".abs($SI[7])." Min. nach Sonnenaufgang ";
}
if (intval($SI[7])<0) {
$Liste[$nn]=$Liste[$nn]." ".abs($SI[7])." Min. vor Sonnenaufgang ";
}
$Liste[$nn]=$Liste[$nn]." ".$WTA." ".substr($SI[9],0,2).".".substr($SI[9],2,2).".".substr($SI[9],4,4);
if ($SI[5]=="0") {
$Liste[$nn]=$Liste[$nn]." ausschalten.";
}
if ($SI[5]=="1") {
$Liste[$nn]=$Liste[$nn]." einschalten.";
}
if ($SI[5]=="T") {
$Liste[$nn]=$Liste[$nn]." umschalten.";
}
$ListeDAT[$n]=$Liste[$nn];
}
if ($SI[6]=="U") {
$nn++;
$WTA=$SI[8];
if ($WTA!="*") {
$WTA="am ".$Wt[$SI[8]].", den";
}
else {
$WTA="an jedem Wochentag am";
}
$Liste[$nn]="[".$SI[0]."] ".$SI[1]." [".$SI[2]."] ".$SI[3].",".$SI[4]." - Sonnenuntergang: "."(".$SI[10].")";
if (intval($SI[7])==0) {
$Liste[$nn]=$Liste[$nn]." zum Sonnenuntergang ";
}
if (intval($SI[7])>0) {
$Liste[$nn]=$Liste[$nn]." ".abs($SI[7])." Min. nach Sonnenuntergang ";
}
if (intval($SI[7])<0) {
$Liste[$nn]=$Liste[$nn]." ".abs($SI[7])." Min. vor Sonnenuntergang ";
}
$Liste[$nn]=$Liste[$nn]." ".$WTA." ".substr($SI[9],0,2).".".substr($SI[9],2,2).".".substr($SI[9],4,4);
if ($SI[5]=="0") {
$Liste[$nn]=$Liste[$nn]." ausschalten.";
}
if ($SI[5]=="1") {
$Liste[$nn]=$Liste[$nn]." einschalten.";
}
if ($SI[5]=="T") {
$Liste[$nn]=$Liste[$nn]." umschalten.";
}
$ListeDAT[$n]=$Liste[$nn];
}
if ($SI[6]=="W") {
$nn++;
$Liste[$nn]="[".$SI[0]."] ".$SI[1]." [".$SI[2]."] ".$SI[3].",".$SI[4]." - Verbrauch: "."(".$SI[10].")";
if ($SI[5]=="0") {
$Liste[$nn]=$Liste[$nn]." ausschalten,";
}
if ($SI[5]=="1") {
$Liste[$nn]=$Liste[$nn]." einschalten,";
}
if ($SI[5]=="T") {
$Liste[$nn]=$Liste[$nn]." umschalten.";
}
$Liste[$nn]=$Liste[$nn]." wenn (".$SI[9].") ".$SI[7]." ".number_format($SI[8],3,",",".")." Watt verbraucht.";
$ListeDAT[$n]=$Liste[$nn];
}
if ($SI[6]=="T") {
$nn++;
$Liste[$nn]="[".$SI[0]."] ".$SI[1]." [".$SI[2]."] ".$SI[3].",".$SI[4]." - Temperatur: "."(".$SI[10].")";
if ($SI[5]=="0") {
$Liste[$nn]=$Liste[$nn]." ausschalten,";
}
if ($SI[5]=="1") {
$Liste[$nn]=$Liste[$nn]." einschalten,";
}
if ($SI[5]=="T") {
$Liste[$nn]=$Liste[$nn]." umschalten.";
}
$Liste[$nn]=$Liste[$nn]." wenn (".$SI[9].") ".$SI[7]." ".number_format($SI[8],3,",",".")." °C warm ist.";
$ListeDAT[$n]=$Liste[$nn];
}
if ($SI[6]=="O") {
$nn++;
$Liste[$nn]="[".$SI[0]."] ".$SI[1]." [".$SI[2]."] ".$SI[3].",".$SI[4]." - Einheiten: "."(".$SI[10].")";
if ($SI[5]=="0") {
$Liste[$nn]=$Liste[$nn]." ausschalten,";
}
if ($SI[5]=="1") {
$Liste[$nn]=$Liste[$nn]." einschalten,";
}
if ($SI[5]=="T") {
$Liste[$nn]=$Liste[$nn]." umschalten.";
}
$Liste[$nn]=$Liste[$nn]." wenn (".$SI[9].") ".$SI[7]." ".number_format($SI[8],3,",",".")." Einheiten ist.";
$ListeDAT[$n]=$Liste[$nn];
}
if ($SI[6]=="P") {
$nn++;
$Liste[$nn]="[".$SI[0]."] ".$SI[1]." [".$SI[2]."] ".$SI[3].",".$SI[4]." - Sensor: "."(".$SI[10].")";
if ($SI[5]=="0") {
$Liste[$nn]=$Liste[$nn]." ausschalten,";
}
if ($SI[5]=="1") {
$Liste[$nn]=$Liste[$nn]." einschalten,";
}
if ($SI[5]=="T") {
$Liste[$nn]=$Liste[$nn]." umschalten.";
}
$Liste[$nn]=$Liste[$nn]." wenn (".$SI[9].") ".$SI[7]." ".number_format($SI[8],3,",",".")." ".$GDX["PSensor"][1]." ist.";
$ListeDAT[$n]=$Liste[$nn];
}
if ($SI[6]=="S") {
$nn++;
$Liste[$nn]="[".$SI[0]."] ".$SI[1]." [".$SI[2]."] ".$SI[3].",".$SI[4]." - Schalterposition: "."(".$SI[10].")";
if ($SI[5]=="0") {
$Liste[$nn]=$Liste[$nn]." ausschalten,";
}
if ($SI[5]=="1") {
$Liste[$nn]=$Liste[$nn]." einschalten,";
}
if ($SI[5]=="T") {
$Liste[$nn]=$Liste[$nn]." umschalten.";
}
$Liste[$nn]=$Liste[$nn]." wenn (".$SI[9].")";
if ($SI[7]=="0") {
$Liste[$nn]=$Liste[$nn]." inaktiv und";
}
if ($SI[7]=="1") {
$Liste[$nn]=$Liste[$nn]." aktiv und";
}
if ($SI[8]=="0") {
$Liste[$nn]=$Liste[$nn]." ausgeschaltet ist.";
}
if ($SI[8]=="1") {
$Liste[$nn]=$Liste[$nn]." eingeschaltet ist.";
}
$ListeDAT[$n]=$Liste[$nn];
}
if ($SI[6]!="") {
$Schaltliste[$nn][0]=trim($Schaltdaten);
$Schaltliste[$nn][1]=$Liste[$nn];
if ($SI[12]=="Schaltzeitpunkt überschritten!") {
$Schaltliste[$nn][1]="(".$Liste[$nn].")";
}
$Schaltliste[$nn][2]=$n;
$Schaltliste[$nn][3]=$SI[6];
$Schaltliste[$nn][4]=$SI[5];
$Schaltliste[$nn][5]=$SI[10];
$Schaltliste[$nn][6]=$SI[11];
$Schaltliste[$nn][7]=$SI[12];
$Schaltliste[$nn][8]=substr($Schaltzeit,9,4).substr($Schaltzeit,7,2).substr($Schaltzeit,5,2).substr($Schaltzeit,0,4);
}
}
}
function ZeitErmitteln() {
/**********************/
global $Zeit,$SoWi,$SonnenAufgang,$SonnenUntergang,$SonnenAufgangM,$SonnenUntergangM;
global $WWochentag,$WTypen,$WSchalter,$WSchalterToggle,$WAktiv,$WSonnenaufgang,$WSonnenuntergang,$WBedingung,$WKette;
$ZeitG=date("HiNdmYI");
$Zeit=substr($ZeitG,0,13);
$ZeitM=date("HiNdmYI",mktime(substr($Zeit,0,2)+24,substr($Zeit,2,2),0,substr($Zeit,7,2),substr($Zeit,5,2),substr($Zeit,9,4)));
$DST=substr($ZeitG,13,1)*1;
$DSTM=substr($ZeitM,13,1)*1;
if ($DST==1) {$SoWi="Sommerzeit";} else {$SoWi="Winterzeit";}
$GMT=$DST+1;
$GMTM=$DSTM+1;
$SonnenAufgang = substr(date_sunrise(mktime(substr($Zeit,0,2),substr($Zeit,2,2),0,substr($Zeit,7,2),substr($Zeit,5,2),substr($Zeit,9,4)), SUNFUNCS_RET_STRING, BREITENGRAD, LAENGENGRAD, ZENITA, $GMT),0,2).substr(date_sunrise(mktime(substr($Zeit,0,2),substr($Zeit,2,2),0,substr($Zeit,7,2),substr($Zeit,5,2),substr($Zeit,9,4)), SUNFUNCS_RET_STRING, BREITENGRAD, LAENGENGRAD, ZENITA, $GMT),3,2);
$SonnenUntergang = substr(date_sunset(mktime(substr($Zeit,0,2),substr($Zeit,2,2),0,substr($Zeit,7,2),substr($Zeit,5,2),substr($Zeit,9,4)), SUNFUNCS_RET_STRING, BREITENGRAD, LAENGENGRAD, ZENITU, $GMT),0,2).substr(date_sunset(mktime(substr($Zeit,0,2),substr($Zeit,2,2),0,substr($Zeit,7,2),substr($Zeit,5,2),substr($Zeit,9,4)), SUNFUNCS_RET_STRING, BREITENGRAD, LAENGENGRAD, ZENITU, $GMT),3,2);
$SonnenAufgangM = substr(date_sunrise(mktime(substr($Zeit,0,2),substr($Zeit,2,2),0,substr($Zeit,7,2),substr($Zeit,5,2),substr($Zeit,9,4))+60*60*24, SUNFUNCS_RET_STRING, BREITENGRAD, LAENGENGRAD, ZENITA, $GMTM),0,2).substr(date_sunrise(mktime(substr($Zeit,0,2),substr($Zeit,2,2),0,substr($Zeit,7,2),substr($Zeit,5,2),substr($Zeit,9,4))+60*60*24, SUNFUNCS_RET_STRING, BREITENGRAD, LAENGENGRAD, ZENITA, $GMTM),3,2);
$SonnenUntergangM = substr(date_sunset(mktime(substr($Zeit,0,2),substr($Zeit,2,2),0,substr($Zeit,7,2),substr($Zeit,5,2),substr($Zeit,9,4))+60*60*24, SUNFUNCS_RET_STRING, BREITENGRAD, LAENGENGRAD, ZENITU, $GMTM),0,2).substr(date_sunset(mktime(substr($Zeit,0,2),substr($Zeit,2,2),0,substr($Zeit,7,2),substr($Zeit,5,2),substr($Zeit,9,4))+60*60*24, SUNFUNCS_RET_STRING, BREITENGRAD, LAENGENGRAD, ZENITU, $GMTM),3,2);
$WWochentag=array(
array("*","jedem"),
array("1","Montag"),
array("2","Dienstag"),
array("3","Mittwoch"),
array("4","Donnerstag"),
array("5","Freitag"),
array("6","Samstag"),
array("7","Sonntag")
);
$WTypen=array(
array("X","Zeitpunkt"),
array("A","Sonnenaufgang"),
array("U","Sonnenuntergang"),
array("T","Temperatur"),
array("W","Verbrauch"),
array("O","Pseudo-Einheiten"),
array("P","Pseudo-Sensor"),
array("S","Schalterposition")
);
$WSchalter=array(
array("0","aus"),
array("1","an")
);
$WSchalterToggle=array(
array("0","aus"),
array("1","an"),
array("T","toggle")
);
$WAktiv=array(
array("0","inaktiv"),
array("1","aktiv")
);
$WSonnenaufgang=array(
array("-","vor Sonnenaufgang"),
array("+","nach Sonnenaufgang")
);
$WSonnenuntergang=array(
array("-","vor Sonnenuntergang"),
array("+","nach Sonnenuntergang")
);
$WBedingung=array(
array(">","größer"),
array(">=","größergleich"),
array("=","gleich"),
array("<","kleiner"),
array("<=","kleinergleich"),
array("!0<=","ungleich 0 und kleinergleich")
);
$WKette=array(
array("K","Kettenstartglied"),
array("+","Kettenfolgeglied"),
array("I","inaktives Kettenstartglied")
);
return true;
}
function HTMLKopf() {
/*****************/
printf ('<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>'.PRG.'</title>
<link rel="shortcut icon" href="images/sas.ico">
<style type="text/css">
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote,pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {
margin:0;
padding:0;
border:0;
outline:0;
font-size:100%%;
vertical-align:baseline;
background:transparent;
}
body {
line-height:1;
}
ol, ul {
list-style:none;
}
blockquote, q {
quotes:none;
}
blockquote:before, blockquote:after, q:before, q:after {
content:"";
content:none;
}
:focus {
outline:0;
}
ins {
text-decoration:none;
}
del {
text-decoration:line-through;
}
table {
border-collapse:collapse;
border-spacing:0;
}
#seite {
display:table;
overflow:hidden;
margin:0px auto;
}
*:first-child+html #seite {
position:relative;
}
* html #seite {
position:relative;
}
#container {
display:table-cell;
vertical-align: middle;
}
*:first-child+html #container {
position:absolute;
top:50%%;
}
* html #container {
position:absolute;
top:50%%;
}
*:first-child+html #inhalt {
position:relative;
top:-50%%;
}
* html #inhalt {
position:relative;
top:-50%%;
}
html, body {
height:100%%;
}
body {
margin:0;
padding:0;
font-family:"Arial";
color:#00AAAA;
background-color:#112222;
font-size:18px;
text-align:center;
}
#seite {
height:100%%;
}
#container {
padding:0px;
}
table, tr, td {
border:1px solid #007777;
margin-bottom:10px;
padding:3px;
spacing:3px;
border-collapse:collapse;
vertical-align:middle;
}
img {
height:50px;
}
div {
border:0px;
border-style:solid;
border-color:red;
}
a {
border:1px;
border-style:solid;
border-color:#00AAAA;
background-color:#007755;
padding-top:0px;
padding-bottom:0px;
padding-left:10px;
padding-right:10px;
background-size:cover;
text-decoration:none;
border-radius:10px;
color:#00FFFF;
}
a:hover {
border-radius:10px;
color:#112222;
background-color:#00AAAA;
text-decoration:none;
box-shadow:0px 0px 20px #007777,0px 0px 20px #007777,0px 0px 20px #007777;
}
seite {
width:1200px;
}
#hgr {
position:relative;
left:0px;
top:0px;
width:1200px;
height:780px;
border-radius:10px;
padding:10px;
border:2px;
border-style:solid;
border-color:#009999;
color:#00FFFF;
font-size:16px;
text-align:center;
background-color:#001111;
text-decoration:none;
text-shadow:0px 0px 20px #00BBBB,0px 0px 20px #00BBBB;
}
#buttonwahl {
padding-bottom:15px;
position:relative;
width:140px;
text-align:right;
text-decoration:none;
text-shadow:0px 0px 20px #00BBBB,0px 0px 20px #00BBBB,0px 0px 20px #00BBBB;
}
h1 {
font-size:20px;
text-shadow:0px 0px 20px #00BBBB,0px 0px 20px #00BBBB,0px 0px 20px #00BBBB;
}
h2 {
font-size:16px;
}
h3 {
font-size:22px;
}
h1,h2,h3 {
margin-top:3px;
margin-bottom:3px;
text-decoration:none;
}
input {
font-family:"Courier";
padding-left:5px;
padding-right:5px;
}
input,select {
margin-top:3px;
margin-bottom:3px;
border-radius:10px;
font-size:16px;
color:#112222;
background-color:#008888;
text-decoration:none;
}
#binfo {
border-radius:10px;
padding:5px;
margin:15px;
border:2px;
border-style:solid;
border-color:#009999;
color:#00FFFF;
position:relative;
font-size:12px;
text-align:center;
background-color:#002222;
text-decoration:none;
text-shadow:0px 0px 20px #00BBBB,0px 0px 20px #00BBBB,0px 0px 20px #00BBBB;
}
#buttonok {
font-family:"Arial";
border-style:solid;
border-color:#006600;
color:#00FF00;
position:relative;
width:140px;
font-size:24px;
text-align:center;
background-color:#004400;
text-decoration:none;
text-shadow:0px 0px 20px #00BB00,0px 0px 20px #00BB00,0px 0px 20px #00BB00;
}
#buttonok:hover {
border-color:#00BB00;
color:#CCFFCC;
}
#buttonok:active {
border-color:#00FF00;
color:#CCFFCC;
}
#buttonloeschen {
font-family:"Arial";
border-style:solid;
border-color:#660000;
color:#FF0000;
position:relative;
width:140px;
font-size:24px;
text-align:center;
background-color:#440000;
text-decoration:none;
text-shadow:0px 0px 20px #BB0000,0px 0px 20px #BB0000,0px 0px 20px #BB0000;
}
#buttonloeschen:hover {
border-color:#BB0000;
color:#FFCCCC;
}
#buttonloeschen:active {
border-color:#FF0000;
color:#FFCCCC;
}
hr {
border-color:#006666;
color:#006666;
}
</style>
</head>');
}
function HTMLBodyTop () {
/******************/
printf (
'<body>
<div id="seite">
<div id="container">
<div id="inhalt">
<div id="hgr">');
}
function HTMLBodyBottom() {
/***********************/
printf (
'</div>
</div>
</div>
</div>
</body>
</html>');
}
?>