Hallo,
normaler Weise sollte das so gehen, wie @koyaanisqatsi geschrieben hat,
aber ich gestehe, meine Gehirnwindungen haben da ähnliche Probleme.
hatte ähnliches Problem mit meiner Aussenbeleuchtung.
Habe das dann auf meine Art so gelöst:
2 Pseudoschalter, die nichts schalten sondern nur einen Zähler rauf / runter zählen.
Beispiel:
1. Pseudoschalter ist mein Zeitschalter, schaltet von 5:30 bis 23:00 Uhr ein,
2. Pseudoschalter ist mein Dämmerungsschalter, schaltet von Sonnenuntergang bis Sonnenaufgang ein,
als 3. Schalter ein Pseudoschalter, welcher den Zähler auswertet.
nur wenn der Zähler auf
2 steht geht das Licht wirklich an!
für dich müsste dann nur ein 3. Pseudoschalter dazu, der den Zähler um 1 erhöht, wenn Handy im Wlan.
Auswertung, schalten dann nur wenn der Zähler auf
3 steht!
Zeitschalter
PHP:
<?php
echo "FN#Zeitschalter#";
/*
+---------------------------------------------------------------------+
| |
| SensorAndSwitch Automation Pro |
| PseudoGeräte-Script |
| =============================================================== |
| -> Schalter |
| Dieses Script soll Pseudozähler.php aufrufen |
| |
+---------------------------------------------------------------------+
Pfad für Statusdatei in "conf/statuspfad.php" angegeben !
*/
include __DIR__."/../include/psg.php";
include __dir__."/../conf/statuspfad.php";
# $gerarray=getGerInfo(substr(basename(__FILE__,".php"),3));
$Statusdatei=$Statuspfad."statushelfer1.txt"; #hier Namen für Status-Datei eingeben
$Zaehlerdatei=$Statuspfad."zaehler.txt";
$dateihandle=fopen($Zaehlerdatei,"r+");
$a = fread($dateihandle, 50);
rewind($dateihandle);
$Status="S##E##";
if (!file_exists($Statusdatei)) {
$fd=fopen($Statusdatei,"w");
$Status="S#0#";
fputs($fd,$Status);
fclose($fd);
}
if ($_GET["info"]=="status") {
$fd=fopen($Statusdatei,"r");
$xml=fgets($fd);
fclose($fd);
if (strpos($xml,"1")) {
$Status="S#1#";
}
if (strpos($xml,"0")) {
$Status="S#0#";
}
}
if ($_GET["schalter"]=="1") {
$fd=fopen($Statusdatei,"w");
$a++;
fwrite($dateihandle,$a);
fclose($dateihandle);
$Status="S#1#";
fputs($fd,$Status);
fclose($fd);
}
if ($_GET["schalter"]=="0") {
$fd=fopen($Statusdatei,"w");
$a--;
fwrite($dateihandle,$a);
fclose($dateihandle);
$Status="S#0#";
fputs($fd,$Status);
fclose($fd);
}
echo "P#".'1. Helfer Zeit - '.$a." Gerät(e) an *html#";
echo $Status;
exit;
?>
Dämmerungsschalter
PHP:
<?php
echo "FN#D-Schalter#";
/*
+---------------------------------------------------------------------+
| |
| SensorAndSwitch Automation Pro |
| PseudoGeräte-Script |
| =============================================================== |
| -> Schalter |
| Dieses Script soll Pseudozähler.php aufrufen |
| |
+---------------------------------------------------------------------+
*/
include __DIR__."/../include/psg.php";
include __dir__."/../conf/statuspfad.php";
$Statusdatei=$Statuspfad."statushelfer2.txt"; #hier Namen für Status-Datei eingeben
$Zaehlerdatei=$Statuspfad."zaehler.txt";
$dateihandle=fopen($Zaehlerdatei,"r+");
$a = fread($dateihandle, 50);
rewind($dateihandle);
$Status="S##E##";
if (!file_exists($Statusdatei)) {
$fd=fopen($Statusdatei,"w");
$Status="S#0#";
fputs($fd,$Status);
fclose($fd);
}
if ($_GET["info"]=="status") {
$fd=fopen($Statusdatei,"r");
$xml=fgets($fd);
fclose($fd);
if (strpos($xml,"1")) {
$Status="S#1#";
}
if (strpos($xml,"0")) {
$Status="S#0#";
}
}
if ($_GET["schalter"]=="1") {
$fd=fopen($Statusdatei,"w");
$a++;
fwrite($dateihandle,$a);
fclose($dateihandle);
$Status="S#1#";
fputs($fd,$Status);
fclose($fd);
}
if ($_GET["schalter"]=="0") {
$fd=fopen($Statusdatei,"w");
$a--;
fwrite($dateihandle,$a);
fclose($dateihandle);
$Status="S#0#";
fputs($fd,$Status);
fclose($fd);
}
echo "P#". '2. Helfer SA / SU - '.$a." Gerät(e) an *html#";
echo $Status;
exit;
?>
Sensor-Zähler
PHP:
<?php
echo "FN#Sensor-Zähler#";
/*
+---------------------------------------------------------------------+
| |
| SensorAndSwitch PSG-Script |
| =============================================================== |
| Pseudo-Sensor |
| --------------------------------------------------------------- |
| |
+---------------------------------------------------------------------+
*/
include __DIR__."/../include/psg.php";
include __dir__."/../conf/statuspfad.php";
$Zaehlerdatei=$Statuspfad."zaehler.txt";
$dateihandle=fopen($Zaehlerdatei,"r+");
$a = fread($dateihandle, 50);
rewind($dateihandle);
$Status=$a;
$ver="V#*$a#";
$echo='P#'.$Status.'*Zähler#'.$ver;
echo $echo;
1. und 2. Script ist gleich, nur ein anderer Name zur Auswahl in sasapui
3. Script müsste nur noch die Wlan Abfrage mit dem Zähler kombiniert werden.
das
$Statuspfad. eventuell raus nehmen ist speziel nur für mich.
der Pseudo-Sensor sollte dann unter Schalttyp bei der Schalterfassung erscheinen.
Edit:
Wlan Abfrage ist ganz einfach, das gleiche Script wie bei 1. und 2. kopieren, mit anderen Namen speichen.
dann bei schalten nach Schalterposition (W-Lan Handy an) das 3. Script schalten.